рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдЙрд╕рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, Django рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдкрд░ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЧрд╛рдЗрдб рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИредрдпрд╣рд╛рдБ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рдмрд╛рдд рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХрд┐рд╕реА рднреА рдкрд╛рдпрдерди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдордВрдЪ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ ред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкрд╛рдардХ рдХреЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдордХрд╛рдЬреА Django рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ (рдЖрдк рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде )ред рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ Django (рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд╛рдпрдерди-рдЖрдзрд╛рд░рд┐рдд рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░ рдкрд╣рд▓реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
gettext
pip install gettext
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб , рдФрд░ рдлрд┐рд░ рдЗрд╕ рд▓реЗрдЦ рдкрд░ рд▓реМрдЯреЗрдВредрдмреБрдирд┐рдпрд╛рджреА рдХрд╛рдо рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕
рддреЛ, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ Django рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ mysite
, рдФрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ polls
ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП:/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
polls/
migrations/
__init__.py
admin.py
models.py
tests.py
views.py
рд╣рдорд╛рд░реЗ рдХрд╛рдо рдХрд╛ рдкрд╣рд▓рд╛ рдЪрд░рдг рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд░рд┐рдп рд╣реИ рдпрд╛ рдирд╣реАрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ mysite/settings.py
:
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг
рдЕрдм рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдореНрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ polls/templates/polls/index.html
:
<h1>Welcome to our site!</h1>
<p>Here you find polls.</p>
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
{% load i18n %}
<h1>{% trans 'WelcomeHeading' %}</h1>
<p>{% trans 'WelcomeMessage' %}</p>
рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдФрд░ рд╕рднреА рдкрд╛рдареЛрдВ рдХреЛ рджреГрд╢реНрдп рдирд┐рд░реНрдорд╛рдгреЛрдВ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ trans 'SomeTranslationKeyName'
ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдЕрдиреБрд╡рд╛рдж рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрд╡рд╛рдж рдЧреНрд░рдВрдереЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд╛рда рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреБрд╡рд╛рдж рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИредрдкрд╛рдпрдерди рдХреЛрдб рдореЗрдВ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг
рдпрджрд┐ рдЖрдк рдкрд╛рдпрдерди рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рддрд╛рд░ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ polls/views.py
), рддреЛ рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ ugettext
ред рдЙрд╕рдХреЗ рд▓рд┐рдП, рдЬреЛ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЖрдк рдПрдХ рдЙрдкрдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ _
ред рдпрд╣рд╛рдБ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ views.py
:
from django.http import HttpResponse
from django.utils.translation import ugettext as _
def index(request):
output = _('StatusMsg')
return HttpResponse(output)
рдЕрдиреБрд╡рд╛рдж рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдирд╛
рдЕрдм рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ polls/locale
рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ polls
рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:django-admin makemessage -l de
рдпрд╣рд╛рдВ de
рдЖрдк рдЙрд╕ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрд▓ рдХреЛрдб рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ gettext
рд╕рд╛рде -рдлрд╛рдЗрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛ polls/locale/de/LC_MESSAGES/django.po
:
...
msgid "WelcomeHeading"
msgstr ""
msgid "WelcomeMessage"
msgstr ""
рдЕрдм рдЖрдк рдЗрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрди рдлреАрдб рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
...
msgid "WelcomeHeading"
msgstr "Willkommen auf unserer Seite!"
msgid "WelcomeMessage"
msgstr "Hier findet Ihr Umfragen."
рдЬрдм рдЕрдиреБрд╡рд╛рдж рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ рд╕рдм рдХреБрдЫ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:$ django-admin compilemessages
рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЪрд▓рд╛рдПрдВ polls
редрдЕрдиреБрд╡рд╛рдж рдХреА рд╕рдВрдЪрд╛рд▓рдирд╢реАрд▓рддрд╛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднрд╛рд╖рд╛ рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ mysite/settings.py
ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
LANGUAGE_CODE = 'de'
рдпрджрд┐ рдЖрдк рдЕрдм рдХрд┐рд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдЬрд░реНрдорди рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЛ рдЧрддрд┐ рджреЗрдВ
рдпрджрд┐ рдЖрдк рд╕реНрдерд╛рдиреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ * .po рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ! рдЖрдкрдХреЛ рдмрд╕ рдХреБрдВрдЬрд┐рдпрд╛рдБ WelcomeHeading
рдФрд░ WelcomeMessage
рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдмрдирд╛рдиреЗ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ * .po-files рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдпрд╛рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдорд╛рд░реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ Phrase Client
, рддреЛ рдЖрдкрдХрд╛ рдХрд╛рдо рдФрд░ рднреА рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ .phraseapp.yml
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ :
phraseapp:
access_token: <your access token>
project_id: <your project's id on PhraseApp>
file_format: po
pull:
targets:
file: "polls/locale/<locale_code>/LC_MESSAGES/django.po
рдлрд┐рд░ рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:phraseapp pull && django-admin compilemessages
рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рднреА рдЕрдиреБрд╡рд╛рдж рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗредрдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЗ Django рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ рдЗрди-рдХреЙрдирдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рд░реНрдп рдХреЛ рдФрд░ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ django-phrase
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ pip
:pip install django-phrase
рдлрд┐рд░ рдЬрдм рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддрдм рдХреЗрд╡рд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ In-Context-Editor
:<!-- polls/templates/polls/index.html -->
{% load i18n %}
{% load phrase_i18n %}
{% phrase_javascript %}
<h1>{% trans 'WelcomeHeading' %}</h1>
<p>{% trans 'WelcomeMessage' %}</p>
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ phrase_i18n
рдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП i18n
редрдЕрдВрдд рдореЗрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдЬреЛрдбрд╝реЗрдВ:
PHRASE_ENABLED = True
PHRASE_PROJECT_ID = 'YOUR_PROJECT_ID'
PHRASE_PREFIX = '{{__'
PHRASE_SUFFIX = '__}}'
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рдм рдХреБрдЫ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛редрд╕реНрдерд╛рди рдЪрдпрди
рдЖрдорддреМрд░ рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ mysite/settings.py
рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝реЙрд░реНрдо рдореЗрдВ рд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ :
from django.utils.translation import ugettext_lazy as _
...
MIDDLEWARE_CLASSES = (
...,
'django.middleware.locale.LocaleMiddleware',
...,
)
...
LANGUAGE_CODE = 'en-us'
LANGUAGES = (
('en-us', _('English')),
('de', _('German')),
)
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд╛рди рд╣реИ German
, рддреЛ рдЙрд╕реЗ рдПрдХ рдЕрдиреБрд╡рд╛рдж рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ de
ред рдЕрдиреНрдпрдерд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ en-us
ред рдЖрдк рдЗрд╕ рддрдВрддреНрд░ рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ curl
:curl http://localhost:8000/polls -H "Accept-Language: de"
рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП:<h1>Willkommen auf unserer Seite!</h1>
<p>Hier findet Ihr Umfragen.</p>
рд╕рд╛рд░рд╛рдВрд╢
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ Django рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреА рдореВрд▓ рдмрд╛рддреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреАред рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╕реЗрд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА, рдЬреЛ рдХрд╛рдо рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдФрд░ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдЬреЛ рд╕реАрдЦрд╛ рд╣реИ рд╡рд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИредрдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдЕрдкрдиреЗ рдкрд╛рдпрдерди рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?