前々回、前回とDjangoで作っていたサイトの多言語化を進めてきました。
今回は、静的なページの多言語化設定の実装手順について書いていきたいと思います。
手順
テキストのマークアップ
多言語化したいテキストをマークアップしていきましょう。
例えば、こんな感じ。
ポイントになるのは{% trans "清重 影織" %}と、{% trans "きよしげ かげおり" %}という部分です。
このパスにあるフォルダ内に翻訳情報を格納していきます、と指定しています。
それぞれダブルクオーテーションで囲まれた部分が、翻訳したい箇所です。
今回の例では、「清重影織」の名前と読み仮名の部分を英訳しよう、ということですね。
設定ファイルへの追記
次にsettings.pyに以下を追記します。
フォルダ作成
次に、プロジェクト直下と、アプリケーションディレクトリ内に「locale」という名前のディレクトリを作成します。
プロジェクト全体に関わる情報の翻訳は前者に、アプリ内の翻訳は後者に保存されます。
基本的には後者を触ることが多いはずです。
基本的には後者を触ることが多いはずです。
今回の例で、名前の翻訳などは後者に当たるわけですね。
データ作成
ここまでできたら、翻訳したい言語のデータを作っていきます。
$ python manage.py makemessages -l en
とコマンドを叩きましょう。
このenの部分は、翻訳したい言語に合わせて変えていきます。
今回は英語なのでenですね。
すると、先ほど作ったlocaleフォルダ内に、django.poというファイルができているはずです。
これが翻訳ファイルですので、msgstrの部分を埋めていきましょう。
英語にふりがなはないので、ふりがなの部分はスペースを一つ入れておきました。翻訳を埋めて保存したら、
$ python manage.py compilemessages
を叩くと、サイトに反映されます。
もし、さらにマークアップの追加があった場合は、再び
$ python manage.py makemessages -l en
をすると、poファイルがアップデートされます。
コマンドを叩いても、これまで書いた翻訳は消えないので安心してください。
まとめ
これで、静的ページも無事に多言語化できましたね。
めでたしめでたし。
翻訳作業が割と膨大なので、もう少し時間がかかるかもしれませんが、近日サイトをアップデート予定です。
思ったよりサクッとできたので良かったです!
わっしょい!
わっしょい!
0 コメント