# Feature or enhancement ### Proposal: As some may know already, Sphinx's _gettext_ builder is used to extract strings from the docs and store them in message catalog templates (pot files). Currently there is no straightforward `make gettext` command to generate pot files, so the language teams need to run commands like: ```shell sphinx-build -b gettext -D gettext_compact=0 . locales/pot ``` or via `make` command using doc’s Makefile: ```shell make build BUILDER=gettext SPHINXOPTS='-D gettext_compact=0' ``` (On a side note, the first command doesn’t generate ‘changelog.pot’.) In my personal opinion, having a _gettext_ target would simplify the process, reducing the complexity of the command construction and uniformizing the outputs. It would also be a small step to simplifying the setup for new teams. Having a _gettext_ target would allow to simply run `make gettext` and have the pot files in `build/gettext` directory. See output: ``` $ make gettext mkdir -p build Building NEWS from Misc/NEWS.d with blurb /home/rffontenelle/Projects/cpython/Doc/build/NEWS is already up to date PATH=./venv/bin:$PATH sphinx-build -b gettext -d build/doctrees -j auto -W . build/gettext Running Sphinx v7.3.7 building [gettext]: targets for 7 template files reading templates... [100%] /home/rffontenelle/Projects/cpython/Doc/tools/templates/search.html building [gettext]: targets for 469 source files that are out of date updating environment: [new config] 469 added, 0 changed, 0 removed reading sources... [100%] using/unix .. whatsnew/index looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... done writing output... [100%] whatsnew/index writing message catalogs... [100%] whatsnew/index build succeeded. The message catalogs are in build/gettext. $ ls build/gettext/ about.pot c-api copyright.pot extending glossary.pot installing license.pot sphinx.pot using bugs.pot contents.pot distributing faq howto library reference tutorial whatsnew $ find build/gettext/ -name '*.pot' | wc -l 470 ``` ### Has this already been discussed elsewhere? I have already discussed this feature proposal on Discourse ### Links to previous discussion of this feature: https://discuss.python.org/t/add-gettext-builder-as-target-for-docs-makefile/53229 <!-- gh-linked-prs --> ### Linked PRs * gh-119006 * gh-119074 * gh-119075 <!-- /gh-linked-prs -->