結論から言えば、PHP と Laravel を理解していて、英語を翻訳できる人なら、人手でメッセージを翻訳して置き換えることは可能です。
Laravel の場合、多言語化ファイルは、resources/lang/ にあります。
Asgard CMS の言語ファイルディレクトリ(resources/lang/)をみた感じでは、
- en (英語)
- ko (韓国語)
- zh (中国語-簡体字)
のメッセージファイルがあるようですので、ここに ja ディレクトリを作って、中に同じフォーマットで、翻訳したメッセージファイルを用意することになります。
多言語化ファイル翻訳の手順としては...
- resources/lang/ の中に ja ディレクトリを新規に作ります。
- 英語メッセージディレクトリ( resources/lang/en )の中のPHPファイルを ja ディレクトリの中にコピーします。
- 日本語メッセージディレクトリ( resources/lang/ja )の中のファイルをエディタで開き、英語のメッセージを日本語に訳します。
例えば、 resources/lang/en/auth.php をコピーしたファイル resources/lang/ja/auth.php をエディタで開くと、以下のようなファイルです。(コメント部分省略)
<?php
return [
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
];
このファイルの場合、メッセージは、'failed' => 'These credentials do not match our records.'
や 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.'
です。
言語ファイルの項目は、1行ずつ 'キー名' => 'メッセージ'
の構造になっていますので、「=>」の右側の英語メッセージを翻訳して、日本語メッセージに置き換えます。(左側は、プログラムからメッセージを呼び出すための「キー」なので、変更してはダメです。)
また、2行目に :で始まる単語「:seconds」がありますが、これは、プログラムから置き換えるために定義された「プレースホルダ」ですから変更してはいけません。(下記「多言語化」ドキュメントの「翻訳文字列中のパラメータ置換」参照)
「These credentials do not match our records. 」だと直訳だと「資格情報が一致しません。」でしょうか。
参考:
Laravel 5.5 多言語化
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/07 03:11
2018/02/07 04:22 編集