Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为特定目录或排除目录生成消息i18n_Python_Django_Terminal_Internationalization - Fatal编程技术网

Python 为特定目录或排除目录生成消息i18n

Python 为特定目录或排除目录生成消息i18n,python,django,terminal,internationalization,Python,Django,Terminal,Internationalization,我的网站结构如下所示: project --apps ----app1 ----app2 --docs --templates ----module1 ----module2 ----module3 我怎么跑 django-admin.py makemessages --locale=en 在所有应用程序和模板目录上,但不包括module1和module3?我认为您不能,除非您编写自己的命令,这可能会花费您更多的时间,然后通过访问所需的应用程序文件夹并从那里运行。/manage.py mak

我的网站结构如下所示:

project
--apps
----app1
----app2
--docs
--templates
----module1
----module2
----module3
我怎么跑

django-admin.py makemessages --locale=en

在所有应用程序和模板目录上,但不包括module1和module3?

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

我认为您不能,除非你自己写命令,这可能会花费您更多的时间,然后通过访问所需应用程序的文件夹并运行
。/manage.py makemessages-l XX
,分别执行这些操作。如果文件夹中包含区域设置文件夹,我已经编写了一个短脚本来迭代项目目录中的文件夹,并创建翻译。如果需要,可以轻松修改脚本以排除应用程序/目录

我的项目文件夹结构是

Project
--App1
----locale
--App2
----locale
--ProjectRoot - settings.py file is in ProjectRoot folder
----locale
etc
此脚本(
run\u makemessages.py
)位于
项目
文件夹中

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,我编写了一个简短的脚本,在项目目录中的文件夹上迭代,如果文件夹包含区域设置文件夹,则创建翻译。如果需要,可以轻松修改脚本以排除应用程序/目录

我的项目文件夹结构是

Project
--App1
----locale
--App2
----locale
--ProjectRoot - settings.py file is in ProjectRoot folder
----locale
etc
此脚本(
run\u makemessages.py
)位于
项目
文件夹中

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

为什么您的templates文件夹中有python(?)模块?它们是外部django模块/应用程序的模板…这远远不能回答您的问题,但是你可以运行makemessages,只翻译你感兴趣的短语,而不去理会其他人。这是一个拖累,特别是对于大型项目,但是在开始翻译之前,您可以对要排除的模块的路径进行简单搜索并删除它们:)不幸的是,对于这种“手动”工作流,项目太大了。为什么有python(?)您的templates文件夹中的模块?它们是外部django模块/应用程序的模板…这远不是对您的问题的回答,但您始终可以运行makemessages,只翻译您感兴趣的短语,而不必理会其他短语。这是一个拖累,特别是对于大型项目,但是您可以在开始翻译之前对要排除的模块的路径进行简单搜索并删除它们:)不幸的是,对于这种“手动”工作流来说,项目太大了