Djangoの国際化(i18n)で多言語化(後半)
Djangoの国際化(i18n)で多言語化(後半) 前回からの続きです。 コードはGitHubリポジトリにあげています。 上記コードを実行すると、locale/en/LC_MESSAGES/django.poが生成されま […]
Filter by Category
Djangoの国際化(i18n)で多言語化(後半) 前回からの続きです。 コードはGitHubリポジトリにあげています。 上記コードを実行すると、locale/en/LC_MESSAGES/django.poが生成されま […]
Djangoの国際化(i18n)で多言語化(前半) Djangoの国際化(i18n)で日本語と英語の多言語化サイトを構築します。 コードはGitHubリポジトリにあげています。 開発環境 ソースコード multiling […]
前回からの続きです。
コードは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/
http://127.0.0.1:8000/en/
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。
メーリングリストに登録するとファントムの最新情報をお届けします
お客様のメールアドレスを共有することはありません
Comments