为特定目录创建消息i18n或排除目录

时间:2012-06-14 15:36:19

标签: python django terminal internationalization

我的网站结构如下所示:

project
--apps
----app1
----app2
--docs
--templates
----module1
----module2
----module3

我该怎么办

django-admin.py makemessages --locale=en

在所有应用和模板目录上,但遗漏了module1和module3?

2 个答案:

答案 0 :(得分:5)

我编写了一个简短的脚本来遍历项目目录中的文件夹,并在文件夹包含locale文件夹时创建翻译。该脚本可以轻松修改,以便在需要时排除应用程序/目录

我的项目文件夹结构是

Project
--App1
----locale
--App2
----locale
--ProjectRoot - settings.py file is in ProjectRoot folder
----locale
etc

此脚本(run_makemessages.py)位于Project文件夹

import os
project_root = "/path/to/your/Project"
dirs = os.listdir(project_root)
for app in dirs:
    app_path = os.path.join(project_root, app)
    locale_path = os.path.join(app_path, "locale")
    if(os.path.exists(locale_path)): #modify this condition for exclusion of specific folders
        os.chdir(app_path)
        os.system("django-admin.py makemessages -a --no-wrap")

并使用python run_makemessages.py调用 - 即直接调用它,不使用django-admin或manage.py

答案 1 :(得分:2)

我认为你不能,除非你自己编写命令,这可能会花费你更多的时间,然后通过访问所需应用程序的文件夹并从那里运行../manage.py makemessages -l XX来单独执行它们