Django翻译与py2exe
我刚刚用py2exe把我的django应用程序编译成了一个exe文件。但是我不知道怎么让django的翻译功能正常工作(我指的是内置的翻译,而不是我自己的翻译文件)。在我的设置文件中有设置LANGUAGE_CODE,我还尝试在py2exe的选项中引入django.utils.translation和django.conf.locale.pl。我也试过,但没能通过py2exe的setup中的data_files导入django/conf/locale/pl里的LC_MESSAGE文件。我觉得LC_MESSAGE文件是主要问题,但我不知道怎么把它们放进我的编译中。有没有办法改变py2exe编译项目的语言?怎么导入语言文件?我的py2exe设置文件和这个链接类似:http://misunderstandings.wordpress.com/2008/06/26/django-desktop-app/。
编辑:我在这里贴出我尝试导入翻译工具的代码行:
'django.utils.translation.*',
'django.conf.locale.pl.*',
我还尝试过:
'django.utils.translation.trans_null',
'django.utils.translation.trans_real',
'django.utils.translation.__init__',
'django.conf.locale.pl.__init__',
'django.conf.locale.pl.formats',
但正如我所想的那样,这似乎没什么用。在build\bdist.win-amd64\winexe\collect-2.7\django目录下,有conf/locale和utils/translation两个文件夹,里面有正确的文件。但当然没有LC_MESSAGE文件夹。我尝试用以下方式导入它:
py2exe_data_files += add_path_tree( python_path, 'lib\site-packages\django\conf\locale\pl' )
我检查过,它能找到这个文件夹里的文件,但对它们没有任何操作。
我的setup文件(比较长,所以我放在sourcepod上):http://www.sourcepod.com/fcmpkn17-5519
也许我忘了包含什么,但我不知道可能是什么..
1 个回答
终于解决了!而且方法非常简单……
正如这个链接所说,我们可以把地区文件放到不同的本地化文件夹里。所以我把所有的地区文件从django/conf复制到了我的模板文件夹里。
在我的py2exe的setup.py文件中,这一行代码会把它和模板一起复制到我的编译文件里:
py2exe_data_files += add_path_tree( '', 'templates' )
最后一步就是在设置文件中设置地区路径:
LOCALE_PATHS = (
'templates/locale',
)