django-modeltranslation icon indicating copy to clipboard operation
django-modeltranslation copied to clipboard

Default language doesn't work

Open igor-zmitrovich opened this issue 6 years ago • 3 comments

Hello!

I have problem with default language which doesn't seem to work properly.

I'm using: Django==2.1.4 django-modeltranslation==0.13.

Here is my settings:

LANGUAGE_CODE = 'en'

LANGUAGES = (
    ('pl', _('Polish')),
    ('en', _('English')),
    ...
)
MODELTRANSLATION_LANGUAGES = ('pl', 'en', 'ru', 'es', 'de', 'fr', 'it', 'pt')
MODELTRANSLATION_DEFAULT_LANGUAGE = 'pl'

Here is model registering:

@register(MyModel)
class MyModelTranslationOptions(TranslationOptions):
    fields = ('name', 'slug',)

Here is output from Django shell:

In [1]: MyModel.objects.last().name                                                                                                                                       
Out[1]: 'name_en'

In [2]: MyModel.objects.last().name_en                                                                                                                                    
Out[2]: 'name_en'

In [3]: MyModel.objects.last().name_pl                                                                                                                                    
Out[3]: 'name_pl'

In [4]: settings.MODELTRANSLATION_DEFAULT_LANGUAGE                                                                                                                           
Out[4]: 'pl'

In [5]: from modeltranslation import settings as s                                                                                                                           

In [6]: s.DEFAULT_LANGUAGE                                                                                                                                                   
Out[6]: 'pl'

Why does my app return English field version, but not Polish one? Maybe I'm doing something wrong?

igor-zmitrovich avatar Feb 23 '19 14:02 igor-zmitrovich

Honestly i don't know why it does not work in your case.

Take a look at modeltranslation.utils.get_language and examine it with debugger.

last-partizan avatar Feb 23 '19 17:02 last-partizan

This could be caused by #508. @commadot does your field has a default value?

flixx avatar Apr 26 '19 11:04 flixx

probably, you have 'django.middleware.locale.LocaleMiddleware' in middleware which activates 'en' for given thread

ReadMost avatar Aug 18 '21 04:08 ReadMost

@igor-zmitrovich sorry...what was the solution?

karonator avatar Jan 24 '23 23:01 karonator