前の記事でGAE/Pの標準環境にて国際化に対応した際の記事を書いたのですが、実際にGAE上にデプロイして動かしてみると何点かエラーが出たので、追加したいと思います。
■UnicodeDecodeErrorの発生
実際にアップロードして、.poファイルで日本語が定義しているmsgidが存在するページを開いた際に同様のエラーが発生しました。これは、.poファイルの文字コードが設定されていなかった為に起こったようです。下記が、現在の.poファイルになります。
msgid "" msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Last-Translator: Tatsuya Fukata <tatsuya .fukata@gmail.com>\n" "Report-Msgid-Bugs-To: Tatsuya Fukata </tatsuya><tatsuya .fukata@gmail.com>\n" "Language-Team: Japanese\n" "Project-Id-Version: MapShare\n" msgid "Spot" msgstr "スポット" msgid "Spot List" msgstr "スポット一覧" msgid "other" msgstr "その他" </tatsuya> |
■DJANGO_SETTINGS_MODULEの未設定
次に、何度かデプロイしている間に上記のようなエラーが発生するようになりました。実際に使われているのは前の記事で作成したクラス「I18NRequestHandler」のファイル内で同様の記述が存在します。直接キーを指定している部分を下記のように修正して、エラーが出なくなりました。
#os.environ['DJANGO_SETTINGS_MODULE'] = 'conf.settings' os.environ.__setitem__('DJANGO_SETTINGS_MODULE', 'conf.settings') |
まだ、完全に国際化に対応されていないかもしれませんが、何かエラーが発生したら随時載せていきたいと思います。