开发者

Django doesn't create translation .po files

开发者 https://www.devze.com 2023-02-02 10:30 出处:网络
I have my translation strings only in templates (stored in the project_dir/Templates), I tried running the $ django-admin.py createmessages -l ru both in the project root directory and in the app dire

I have my translation strings only in templates (stored in the project_dir/Templates), I tried running the $ django-admin.py createmessages -l ru both in the project root directory and in the app directories that use templates with trans. strings. It created folders locale/ru/LC_MESSAGES but the folders were empty. I tried to add the django.po files manually (with the syntax mentioned in the l10n docs). And ran the createmessages -a and compilemessages commands. It created the .mo files, but the translations didn't appear in the browser.

  1. As I created the .po files manually I had no lines starting with #. What should I write开发者_如何学Go there?
  2. My template files are in different folder than the .py files for apps. Should I put some extra links to them?


did you try :

python manage.py makemessages -a 

from project root and app ?

this should create a .po that you have to edit. be sure to remove 'fuzzy' stuff everywhere.

then :

python manage.py compilemessages

You need to restart the server


For newer versions of Django (e.g. 3.2):

  1. in the root directory create folder "locale"

  2. run command django-admin makemessages -l ru

  3. update your language files (located in the locale folder)

  4. run django-admin compilemessages

  5. Configure the LOCALE_PATHS in settings.py, otherwise you won't see the translations:

    LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale')]

    LANGUAGE_CODE = 'ru'


To fix empty po files:

  1. Make sure you did the needed changes for the templates as mentioned in the documentation. Please make sure that you are checking the correct documentation version for your project.
  2. You can add a locale directory in your templates directory and add its path to the LOCALE_PATHS list. (Optional, but helpful to make sure that the template directory is included in step 4)
  3. Go to the project_dir (you should run the next command in a parent directory of the files to be translated)
  4. Run the command django-admin makemessages -l ru
0

精彩评论

暂无评论...
验证码 换一张
取 消