Djangoの国際化(i18n)で多言語化(後半)


press
Djangoの国際化(i18n)で多言語化(後半)

Djangoの国際化(i18n)で多言語化(後半)

前回からの続きです。

コードはGitHubリポジトリにあげています。

django-admin makemessages -l en --no-location

上記コードを実行すると、locale/en/LC_MESSAGES/django.poが生成されます。このファイルが翻訳ファイルとなっています。
(en)とすることで英語用ファイルが生成されます。
(–no-location)とすることで翻訳する文章の位置が非表示になります。非表示にしないと修正のたびに位置が変更になりファイルの視認性が下がります。

GNU gettextがインストールされていないと以下のエラーが出るので、こちらを参考にしてください。

 CommandError: Can't find msguniq. Make sure you have GNU gettext tools 0.15 or newer installed.

locale/en/LC_MESSAGES/django.po

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""

...
msgid "国際化"
msgstr "Internationalization"

msgid "English"
msgstr ""

msgid "Japanese"
msgstr ""

msgid "ハロー・ワールド"
msgstr "Hello, world!"
...

翻訳したい文章をmsgstrの部分に記入します。(今回は「国際化」と「ハロー・ワールド!」を「Internationalization」と「Hello, world!」に翻訳します)

django-admin compilemessages

上記コードを実行すると、locale/en/LC_MESSAGES/django.moが生成されて翻訳完了です。

最終的なディレクトリ構造

.
├── app
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── locale
│   └── en
│       └── LC_MESSAGES
│           ├── django.mo
│           └── django.po
├── manage.py
├── multilingualization
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── requirements.txt
└── templates
    └── index.html

動作確認

python manage.py runserver

http://127.0.0.1:8000/

Djangoの国際化(i18n)で多言語化

http://127.0.0.1:8000/en/

Djangoの国際化(i18n)で多言語化

株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    Show Comments (0)

    Comments

    Related Articles

    Django

    Vue.jsとDjango REST FrameworkでSPA構築〜後半〜

    Vue.jsとDjango REST FrameworkでSPA構築〜後半〜 前半に続き、後半はフロントエンド側(Vue.js)の実装を進めていきます。 コードはGitHubリポジトリにあげています。 開発環境 PC: […]

    Posted on by press
    Django

    40分でUbuntu Nginx PostgreSQL Django Gunicornの環境構築

    40分でUbuntu Nginx PostgreSQL Django Gunicornの環境構築 VPSへのログイン(新規タブ) OSの初期設定(アップデート、アップグレード) 新規ユーザーを追加 新しく追加したユーザー […]

    Posted on by press

    最新情報をお届けします!

    メーリングリストに登録するとファントムの最新情報をお届けします

    お客様のメールアドレスを共有することはありません