Finally, 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.