I have configured my django LANGUAGES like
import os
from django.utils.translation import gettext_lazy as _
from config.settings.base import BASE_DIR
LANGUAGE_CODE = "en"
USE_I18N = True
LANGUAGES = (
("uz", _("Uzbek")),
("uz-cyrl", _("Cyrillic")),
("ru", _("Russian")),
("en", _("English")),
("ar", _("Arabic")),
)
LOCALE_PATHS = [os.path.join(BASE_DIR, "locale")]
I have translated texts in all .po files and compiled them. In local runserver it works with Accept-Language: uz-cyrl properly, but through docker-compose it returns uz translation instead, what might be the reason?
I have used different base docker images like python3.11-slim, python3.11 itself but not worked.
I have configured my django LANGUAGES like
import os
from django.utils.translation import gettext_lazy as _
from config.settings.base import BASE_DIR
LANGUAGE_CODE = "en"
USE_I18N = True
LANGUAGES = (
("uz", _("Uzbek")),
("uz-cyrl", _("Cyrillic")),
("ru", _("Russian")),
("en", _("English")),
("ar", _("Arabic")),
)
LOCALE_PATHS = [os.path.join(BASE_DIR, "locale")]
I have translated texts in all .po files and compiled them. In local runserver it works with Accept-Language: uz-cyrl properly, but through docker-compose it returns uz translation instead, what might be the reason?
I have used different base docker images like python3.11-slim, python3.11 itself but not worked.
Share Improve this question edited Feb 18 at 7:37 Arabboy Mamadaliev asked Feb 17 at 16:07 Arabboy MamadalievArabboy Mamadaliev 112 bronze badges New contributor Arabboy Mamadaliev is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct. 2- Can you explain what you mean by 'it returns uz'? As the code you show is obviously not returning anything. – ruud Commented Feb 18 at 9:11
- @ruud I translated texts inside code for all languages, when I request api with Accept-Language: uz-cyrl, it should return translation of text in uz-cyrl, but it return translation of text in uz, that's my point – Arabboy Mamadaliev Commented Feb 18 at 9:28
1 Answer
Reset to default 1Finally, I found the reason. When I execute
python manage.py makemessages -l uz-cyrl
It raise like
invalid locale uz-cyrl, did you mean uz_CYrl?
so I execute
python manage.py makemessages -l uz_CYrl
and it created uz_CYrl folder inside locale folder, it works in Windows and Mac locally but in docker-compose running project returns uz translation instead of uz-cyrl always.
When I execute makemessages command inside container and it raise different
invalid locale uz-cyrl, did you mean uz_Cyrl?
So I changed folder name from uz_CYrl to uz_Cyrl and it works both local and through docker-compose also.
So I understand that uz-cyrl translation .po and .mo files should be inside uz_Cyrl folder not uz_CYrl.