Frage

Ich habe ein Problem, wenn ich meine Anwendung zu lokalisieren. Es ist in zwei Sprachen verfügbar: Englisch und Deutsch. Das Problem erscheint, wenn der Browser die Sprache eingestellt Englisch (USA) und in meinen Einstellungen hat Datei wird auf ‚de‘ und umgekehrt. Einige Felder erscheinen in Englisch, andere in Deutsch. Mein Modell enthält CharField, DecimalField und Datefield-Feldtypen.

models.py:

from django.db import models  
from django.utils.translation import ugettext as _  

class Test(models.Model):  
    test_number = models.CharField(_('Test number'), max_length=20)  
    test_date = models.DateField()  
    test_price = models.DecimalField(_('Test price'), max_digits=16, decimal_places=2, null=True, blank=True)  

forms.py:

class TestForm(ModelForm):
    test_date = forms.DateField(label=_('Booking date'), widget=AdminDateWidget)

settings.py

USE_L10N = True  
USE_I18N = True  

TIME_ZONE = 'Europe/Berlin'  
LANGUAGE_CODE = 'de'

TEMPLATE_CONTEXT_PROCESSORS = (  
    "django.core.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.request",    
)  

MIDDLEWARE_CLASSES = (  
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.core.files.uploadhandler.MemoryFileUploadHandler',
    'django.core.files.uploadhandler.TemporaryFileUploadHandler',
    'django.middleware.transaction.TransactionMiddleware',
    'pagination.middleware.PaginationMiddleware',    
)

Englisch ist die Sprache, die browser.The Etiketten der Felder gesetzt test_number und test_price in Deutsch erscheinen und das Etikett von test_date in Englisch. Wenn ich _ ( ‚Test Nummer‘) von models.py entfernen und als Label-Attribut in dem Nachspiel forms.py es funktioniert. Ist es nicht eine andere Art und Weise, dies zu tun?

War es hilfreich?

Lösung

Ändern die Deklaration "von django.utils.translation Import ugettext als _" auf "aus django.utils.translation Import ugettext_lazy als _" scheint das Problem zu lösen.

Andere Tipps

Double Ihre .po Datei:. Sollte es nicht haben keine 'Fuzzy' Status

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top