[GAE/P]国際化に対応してみました 〜その2〜


前の記事で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')

まだ、完全に国際化に対応されていないかもしれませんが、何かエラーが発生したら随時載せていきたいと思います。

関連記事