Ich habe eine einfache Website erstellt, um die Internationalisierung zu testen, aber ich kann es nicht so machen, wie ich es wollte. Ich möchte Nachrichten in meinem views.py ändern, ohne die request.LANGUAGE_CODE (die korrekt angezeigt wird) zu überprüfen.Django Internationalisierung (I18N) Text nicht ändern
ich zu dem URLs mit dem Präfix gehe /en/ und /pt-br/ aber nicht den Text in der Vorlage ändern.
ich versucht mit
django-admin makemessages --locale=pt_BR
Ich habe die Linien
#: mytest/views.py:7
msgid "Welcome to my site."
msgstr "Bem vindo ao meu site."
lief
django-admin compilemessages --locale=pt_BR
PS: (auch wenn es falsch ist, habe ich versucht django-admin makemessages/compilemessages --locale = pt-br auch)
Was ich in settings.py geändert (hinzugefügt meine app, fügte einige Internalisierung Einstellungen locale Middleware, hinzugefügt)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mytest'
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
# Internationalization
# https://docs.djangoproject.com/en/1.10/topics/i18n/
LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale/translations/'),
]
LANGUAGE_CODE = 'en-us'
from django.utils.translation import ugettext_lazy as _
LANGUAGES = [
('pt-br', _('Portuguese')),
('en', _('English')),
]
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
views.py
from django.shortcuts import render
from django.utils.translation import ugettext_lazy as _
def index(request):
print(request.LANGUAGE_CODE) #this shows correctly the prefix in the url
output = _("Welcome to my site.")
context = {"test_translate": output}
return render(request, "mytest/index.html", context)
urls.py
from django.conf.urls.i18n import i18n_patterns
from mytest import views
urlpatterns = [
]
urlpatterns += i18n_patterns(
url(r'^$', views.index, name='index'),
)