Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

I18n stopped working

I always use this script to compile django.po and it was always working:

#!/bin/sh
django-admin.py makemessages -a
django-admin.py compilemessages

Suddenly it stopped working, with this error:

$ i18n.sh
Traceback (most recent call last):
  File "c:/Python34/Scripts/django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "c:\Python34\lib\site-packages\django\core\management\__init__.py", line
385, in execute_from_command_line
    utility.execute()
  File "c:\Python34\lib\site-packages\django\core\management\__init__.py", line
377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "c:\Python34\lib\site-packages\django\core\management\base.py", line 288,
 in run_from_argv
    self.execute(*args, **options.__dict__)
  File "c:\Python34\lib\site-packages\django\core\management\base.py", line 338,
 in execute
    output = self.handle(*args, **options)
  File "c:\Python34\lib\site-packages\django\core\management\base.py", line 533,
 in handle
    return self.handle_noargs(**options)
  File "c:\Python34\lib\site-packages\django\core\management\commands\makemessag
es.py", line 283, in handle_noargs
    potfiles = self.build_potfiles()
  File "c:\Python34\lib\site-packages\django\core\management\commands\makemessag
es.py", line 299, in build_potfiles
    file_list = self.find_files(".")
  File "c:\Python34\lib\site-packages\django\core\management\commands\makemessag
es.py", line 358, in find_files
    ignored_roots = [os.path.normpath(p) for p in (settings.MEDIA_ROOT, settings
.STATIC_ROOT)]
  File "c:\Python34\lib\site-packages\django\core\management\commands\makemessag
es.py", line 358, in <listcomp>
    ignored_roots = [os.path.normpath(p) for p in (settings.MEDIA_ROOT, settings
.STATIC_ROOT)]
  File "c:\Python34\lib\ntpath.py", line 491, in normpath
    if path.startswith(special_prefixes):
AttributeError: 'NoneType' object has no attribute 'startswith'
processing file django.po in c:\Users\Debora\workspace\opti\opti2.0\project\loca
le\pt_BR\LC_MESSAGES

Anyone has got any ideas?

I don't know what caused this. recently I updated django 1.7 to 1.7.1, installed some packages unrelated, that's what I remember doing that could have affected.

like image 668
giancarloap Avatar asked Oct 31 '14 13:10

giancarloap


2 Answers

Had the same issue after upgrading to Django 1.7

I fixed it by specifying the settings module each time I run django-admin.py:

cd ~/myproject/myproject # where the ``locale`` folder exists
PYTHONPATH=~/myproject django-admin.py makemessages --settings=myproject.settings -l <language>

Update: It is a bug fixed in Django 1.7.2 see: https://docs.djangoproject.com/en/1.7/releases/1.7.2/ https://code.djangoproject.com/ticket/23717

like image 149
stefanos Avatar answered Sep 29 '22 08:09

stefanos


first Define your local path for makemessages

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

In terminal

$python manage.py makemessages -l pl

go the folder and open the file edit the .po file

Then in terminal

$python manage.py compilemessages

it works fine in Django 1.7 and upgraded too.

i think it may help you.

like image 23
the-run Avatar answered Sep 29 '22 08:09

the-run