这是我的django-project
下面将其从英语翻译成法语。 *我用姜戈4.2.1:
django-project
|-core
| |-settings.py
| └-urls.py
|-my_app1
| |-views.py
| └-urls.py
|-my_app2
└-locale
└-fr
└-LC_MESSAGES
|-django.po
└-django.mo
而且,这是core/settings.py
below:
# "core/settings.py"
MIDDLEWARE = [
...
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
from django.utils.translation import gettext_lazy as _
LANGUAGES = (
('en', _('English')),
('fr', _('French'))
)
And, 获取文本() https://docs.djangoproject.com/en/4.2/ref/utils/#django.utils.translation.gettext用于翻译Test
to Examen
in my_app1/views.py
如下所示:
# "my_app1/views.py"
from django.shortcuts import render
from django.utils.translation import gettext as _
def test(request): # ↓ Here ↓
return HttpResponse(_("Test"))
And, hello/world/
路径为test()
被设定为urlpatterns
in my_app1/urls.py
如下所示:
# "my_app1/urls.py"
from django.urls import path
from . import views
app_name = "my_app1"
urlpatterns = [
# ↓ ↓ Here ↓ ↓
path("hello/world/", views.test, name="test")
]
And, my_app1/
路径为my_app1
被设定为urlpatterns
with i18n_patterns() https://docs.djangoproject.com/en/4.2/topics/i18n/translation/#language-prefix-in-url-patterns如下所示:
# "core/urls.py"
from django.urls import path, include
from django.conf.urls.i18n import i18n_patterns
urlpatterns = i18n_patterns(
# ↓ Here ↓
path("my_app1/", include('my_app1.urls'))
)
And, "Anglais"
, "Français"
and "Examen"
设置为"English"
, "French"
and "Test"
分别在locale/fr/LC_MESSAGES/django.po
如下所示:
# "locale/fr/LC_MESSAGES/django.po"
...
#: .\core\settings.py:140
msgid "English"
msgstr "Anglais" # Here
#: .\core\settings.py:141
msgid "French"
msgstr "Français" # Here
#: .\my_app1\views.py:5
msgid "Test"
msgstr "Examen" # Here
...
然后,我可以将英语翻译成法语,如下所示:
http://localhost:8000/fr/my_app1/hello/world/
现在,如何将上面的英文网址翻译为下面的法文网址?
http://localhost:8000/fr/mon_app1/bonjour/monde/