前回の記事「Kayのログインフォームをカスタマイズする(1) 継承元のテンプレートファイルを変更する « 山本隆の開発日誌」の続き。
Google App Engine用フレームワークKayのデータストアを利用した認証を使用したときのログインフォームをカスタマイズする方法を紹介します。
文言の日本語化する
初期値の状態では、ログインフォームの文言は「user name」や「password」のように英語になっています。
ログインフォームの文言を日本語化するには、Kayのメッセージ国際化の機能を使用します。
※参考:12. メッセージ国際化 — Kay v0.10.0 documentation
※参考:Google App Engine用フレームワーク Kay の国際化の機能を有効にする « 山本隆の開発日誌
settings.py
USE_I18N = True
これだけでログインフォームの文言が日本語化されます。
メッセージを変更したい場合は、メッセージ国際化の機能を使って変更します。
たとえばフォームのタイトル「Kay ログインフォーム」を変更したい場合は次のようにします。
- カタログファイルの雛型を作成します。
python manage.py extract_messages myapp
カタログファイルが myapp/i18n/messages.pot に作成されます。
-
カタログファイルを編集します。
myapp/i18n/messages.pot に次の行を追加します。
msgid "Kay Login Form" msgstr ""
変更したい文言のmsgidは myproject/kay/auth/templates/loginform.html を参照して確認します。
-
雛型から日本語の翻訳を追加します。
python manage.py add_translations myapp -l ja
日本語の翻訳ファイルが myapp/i18n/ja/LC_MESSAGES/messages.po に作成されます。
-
日本語の翻訳ファイルを編集します。
msgid "Kay Login Form" msgstr "MyApp ログインフォーム"
ファイルの文字コードはUTF-8で保存します。
-
翻訳ファイルをコンパイルします。
python manage.py compile_translations myapp
コンパイルされたファイルが myapp/i18n/ja/LC_MESSAGES/messages.mo に作成されます。
ログインフォームにアクセスすると、文言が変わっていること確認できます。
Pingback: 山本隆の開発日誌