エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


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」に関する記事一覧
 
 

 - CakePHP 3.x 4.x 5.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP 2.3 Search Pluginで検索処理 その6ORDER、sortソートの機能

CakePHPの検索プラグイン Search Pluginの検索処理の中で order、ソートについての解説です。

CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説

CakePHP3でOGPを設定する方法を解説。fetch、assignを使用しレイアウトファイルに編集した変数にテンプレートファイルから値を指定する。これを利用してOGPを編集する。

CakePHP4系、5系でカラムを指定して値があるかないかのチェックする
CakePHP4系、CakePHP5系のexists()でカラムを指定して値の有無をチェックする方法解説

CakePHP4、5で指定したカラムに特定の値に該当のレコードの有無をチェックするにはexists()を使う。単純にカラムを指定する方法から複数条件をand、orで探すこともできる。

CakePHP3で「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」などのエラーが出たときの確認するポイント
CakePHP3で「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」などのエラーが出たときの確認するポイント

CakePHP3の開発で発生する「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」のエラーには特有の原因もあるため、その説明と対処方法の解説。

CakePHP3でassociatedを使って関連データをまとめて保存する方法(hasOne、hasMany、belongsTo)

CakePHP3で関連データをまとめて保存する方法。hasOne、hasMany、belongsTo等の関連データはassociatedを追加することでまとめて保存することができます。

CakePHP3のfriendsofcake/searchでツリーカテゴリーの子階層も含めて検索する方法
CakePHP3のfriendsofcake/searchでツリーカテゴリーの子階層も含めて検索する方法

CakePHP3のツリービヘイビアを使ったツリーカテゴリーの子階層も含めての検索を検索プラグイン「friendsofcake/search」を使って実現する方法を解説しました。

Google Analytics APIを CakePHP3で動かしてレポートデータを取得する方法の解説
Google Analytics APIを CakePHP3で動かしてレポートデータを取得する方法の解説

CakePHP3で Google Analytics APIからレポートデータを取得する処理の解説。PHPのサンプルソースをCakePHP3で動くように改造。加えて、ディメンションやメトリックスを条件に設定する方法なども。

CakePHP4で公開側と管理側のデザインテンプレートを分ける方法・setLayout()
CakePHP4で公開側と管理側のデザインテンプレートを分ける方法・setLayout()

CakePHP4でデフォルトのレイアウトファイル「default.php」は管理側に使用し、これとは別のデザインを公開側のページに設定したい、を実装する方法を解説。

CakePHP4、5のユーザ認証でID、PASS以外の削除フラグなども条件加える方法
CakePHP4、5のユーザ認証でID、PASS以外の削除フラグなども条件加える方法

CakePHP4系、5系ではAuthenticationを使用してログイン認証を行う。その認証でID、PASS以外の削除フラグなどの条件を加えたいときの対応方法について解説。

CakePHP4のFrozenDateで1ヵ月前、先月、今月1日、来月末の日付などを算出する方法
CakePHP4のFrozenDateで1ヵ月前、先月、今月1日、来月末の日付などを算出する方法

CakePHPには「FrozenDate」の日付を扱う関数が用意されている。これを利用して、1ヶ月後、月末日、月初日、5日後などを指定して日付を取得できる。それを解説。