Django国际化
我遇到了一个和这里类似的问题,链接是为什么Django不从另一个目录的模板文件生成本地化文件?
不过我不太明白解决方案是什么。我的文件结构是:
Project
App1
locale
templates
App2
locale
templates
templates
somefilethatneedstranslation.html
现在当我从App1运行这个命令时:
python ../manage.py App1 -l nl
它会在App1的本地化文件夹里为App1的模板生成一个po文件,这个过程很顺利。
但是我希望我的全局模板也能被翻译……需要注意的是:我不想在项目根目录下创建一个本地化文件夹,所以我尝试从App1的模板文件夹添加一个符号链接,但这样并没有把翻译结果添加到App1/locale/po文件里。
这是来自App1文件夹的内容:
ln -s ../templates/locale/* translations
python ../manage.py App1 -l nl --symlinks
我漏掉了什么吗?
注意:
这是来自模板文件夹的内容:
python ../manage.py templates -l nl
这样做可能有效,但显然模板并不是一个已安装的应用,看来我漏掉了一些明显的东西……
1 个回答
6
完整的弃用信息(在翻译文档中也有解释)是:
项目目录中的翻译不再支持。请使用 LOCALE_PATHS 设置。
这个信息可能有点让人困惑。虽然项目目录中自动发现翻译的功能被弃用了,但使用 LOCALE_PATHS
来指向项目级别的语言文件夹是完全可以的。
如果你有项目级别的模板,那么把这些模板放在某个特定应用的语言位置进行翻译就没有意义了:应该保持一个项目级别的语言目录,并在 LOCALE_PATHS 中引用它。