CakePHP3のプラグイン「CakeDC/Users」を日本語化・翻訳ファイルもダウンロード可
2019/04/29
CakePHP3のプラグイン「CakeDC/Users」を日本語化する
CakePHP3を日本語化する翻訳ファイルと設置手順
CakePHP 3.6以降用の CakeDC/Usersの翻訳ファイル
20190428_CakeDC-Users_翻訳ファイル
上記のファイルをダウンロードし、下記の場所に設置します。
/src/Locale/ja/Users.po
これだけで CakeDC/Usersのメッセージが日本語で表示されるようになります。
翻訳ファイルはキャッシュされている可能性が高いため、動作確認する前にキャッシュをクリアすることをおススメします。
キャッシュのクリア方法は、CakePHP 3.3以降であれば、ルートフォルダでコマンド「bin/cake cache clear_all」を実行する方法が一番簡単で確実です。
詳しくは、下記の記事を参照してください。
CakePHP3、CakePHP4のキャッシュをクリアする方法「bin/cake cache clear_all」を使う
CakePHP3を日本語化(多言語化)する仕組みとプラグイン「CakeDC/Users」
下記の記事で、CakePHP3で表示されるメッセージを日本語化(多言語化)する方法を解説しました。
CakePHP3のメッセージ日本語化の設定(国際化と地域化の機能の使い方の解説)
ですが、上記の記事で解説をした翻訳ファイル「default.pot」を生成するコマンド「bin/cake i18n」を実行しても、CakePHP3で表示されるメッセージのすべてのメッセージの翻訳ファイルを生成してくれるわけではありません。
具体的には、生成される翻訳ファイル「/src/Locale/default.pot」には、プラグイン「CakeDC/Users」の処理で使用されるメッセージは入っていません。。
プラグイン「CakeDC/Users」は、プラグイン用の別の翻訳ファイルを持っているためです。
「CakePHP3のメッセージ日本語化の設定(国際化と地域化の機能の使い方の解説)」の記事でも紹介しましたが、「CakeDC/Users」のメッセージは「__d('CakeDC/Users','*****')
」という形式で記述されているため、「default.pot」には出力されません。
「CakeDC/Users」の翻訳ファイルは、プラグイン独自で持っているので、個別に対応してね!という具合なのです。
というわけで、「CakeDC/Users」が持っている翻訳ファイルを利用して日本語に翻訳を行います。
「CakeDC/Users」があらかじめ持っている翻訳ファイルは下記になります。
/vendor/cakedc/users/src/Locale/Users.pot
上記のファイルの名前を替えて、下記の通りに設置します。(拡張子は「.pot」から「.po」に変更します。)
/src/Locale/ja/Users.po
これで日本語に翻訳していく準備は整いましたが、この時点では英語のメッセージに対する日本語の対訳が編集されていないため、日本語には変換されません。
個別に日本語の訳を追加していくと、日本語を追加したところから日本語に変換されたメッセージが表示されるようになります。
ただ、自分で日本語訳を編集していく方法もありますが、私が翻訳したファイルを最初に紹介していますので、それを使ってみるのもいいんじゃないかと思います。
そのうえで、日本語の訳が気に入らないところだけ変更する、という方法が効率的だと思います。
また、先にも書きましたが、翻訳ファイルはキャッシュされる可能性が高いため、動作確認する前にキャッシュをクリアすることをおススメします。
キャッシュのクリア方法は、ルートフォルダでコマンド「bin/cake cache clear_all」を実行する方法が一番簡単で確実です。
詳しくは、下記の記事を参照してください。
CakePHP3、CakePHP4のキャッシュをクリアする方法「bin/cake cache clear_all」を使う
CakeDC/Usersは多言語化対応されている
ちなみに、よくよく確認すると、多言語化の
/vendor/cakedc/users/src/Locale/
フォルダの中には、「ar_OM」「es」「fr_FR」といったフォルダとそれぞれの言語に翻訳された翻訳ファイル「.po」「.mo」が生成されています。
つまりは、英語以外のいくつかの言語には対応しているけれど、日本語には対応してないよ、ということなのです。
CakeDC/Usersの翻訳ファイルを作った経緯
私は、「URL短縮サービス・TTTオンライン(https://ttt.onl)」を作成するときに始めてこの「CakeDC/Users」の翻訳ファイルを作成しました。
一部にサービス名を記載したメッセージがありましたので、その辺りを修正したものが先にも紹介していた「CakeDC/Users」の日本語翻訳ファイルです。
20190428_CakeDC-Users_翻訳ファイル
この日本語翻訳ファイルは、直訳ではなく意訳をしているところが多くあります。
理由は、Webサービスの利用者に対して、柔らかい表現でメッセージを伝えたいと考えているためです。
例えば、「入力が間違っています」ではなく、「正しい値を入力してください」といった感じです。
また、一般ユーザが見るメッセージでは技術的な表現も避けています。
例えば「token」「Validation」と言った単語があります。
我々エンジニアであれば「トークン」「バリデーション」という表現で伝わりますが、一般ユーザには馴染みがない単語だと思いますので、そのままの単語は使わず、一般ユーザにも伝わる表現に置き換えています。
直訳でいいならば、Google翻訳を利用して翻訳すれば済む話なので、こうやって翻訳ファイルを公開するならば、なにかプラスアルファがあるといいな、と思ったからでもあります。
CakePHP3のプラグイン「CakeDC/Users」に関連する記事は以下となります。
CakePHP3のユーザ管理・ログイン認証プラグインCakeDC/Usersのインストール解説・3.6以降対応
CakePHP3のCakeDC/Usersの画面、メール本文テンプレートのカスタマイズ方法解説
CakePHP3のCakeDC/Usersのログイン後のリダイレクトとユーザ権限管理の設定解説
CakePHP3のCakeDC/UsersのUserHelperでログアウトやreCAPTCHAをカスタマイズ
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定
CakePHP3のCakeDC/Usersでログインユーザの所有レコードのみ更新、削除する権限管理の設定方法
CakePHP3の関連記事
CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールするCakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
その他の「CakePHP3」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
CakePHP3でOGPを設定する方法を解説。fetch、assignを使用しレイアウトファイルに編集した変数にテンプレートファイルから値を指定する。これを利用してOGPを編集する。
-
-
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でCSVファイルをアップロードしレコードを追加、更新する処理の作成方法の解説。モデルとは直接関連しないフォームからCSVファイルをアップロードするため汎用的に使用可能。
-
-
CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。
-
-
CakePHP4系でJSONレスポンスの処理ではwithStringBodyを使う。3との違い解説
responseの値を指定する方法は3系では「body」だが、4系では「withStringBody」になりる。加えてJSON形式なら「withType」で指定するなど4系では結構異なる処理がある。
-
-
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakeDC謹製Usersプラグインの紹介。Usersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。
-
-
CakePHP3ログファイルへの出力・$this->log()、独自ログへの出力方法の解説
コントロール、モデルの変数の中身を見るときはログに出力する方法が有効です。$this->log()を利用すると変数だけじゃなく、連想配列、オブジェクトも簡単にログ出力ができます。
-
-
Windows上のXAMPP環境のCakePHPのコマンド実行時に環境変数を指定する方法
CakePHP4のコマンド(シェル)に対して、環境変数を指定して実行する方法を解説。LinuxとWindows上のXAMPPとでは記述方法が異なるため、Windowsのsetコマンドについても詳細解説。
-
-
CakePHP4で複数の引数(パラメータ)を付与してコマンドを実行する方法
CakePHP4でコマンドを実行する際に引数(パラメータ)をコマンド内で受け取る処理について解説。複数個の引数にも対応する記述方法も解説。
-
-
getParam('action')
で取得するアクション名は別関数に移動しても不変CakePHP4系、5系では「getParam()」で処理中のアクション名を取得できる。そのアクションから別関数を呼び出してた関数でアクション名を調べたが同一の名称だった。
-
-
CakePHP5でヘルパーから他のヘルパーを読み込む方法・CakePHP4からの変更点
CakePHP5のヘルパーで他のヘルパーを読み込む方法を解説。公式の日本語CookbookはCakePHP4のソースのままで間違っているため注意が必要。CakePHP4からの移行の際も同じ点に注意が必要。