diff --git a/manual/build.py b/manual/build.py index 4c397b80b4..2c7283fc32 100755 --- a/manual/build.py +++ b/manual/build.py @@ -63,16 +63,27 @@ def build_manual(language, base): from calibre.ebooks.oeb.polish.container import epub_to_azw3 epub_to_azw3(epub_dest) +def build_pot(base): + cmd = [SPHINX_BUILD, '-b', 'gettext', '-t', 'online', '.', base] + print (' '.join(cmd)) + subprocess.check_call(cmd) + os.remove(j(base, 'generated.pot')) + return base + if __name__ == '__main__': os.chdir(d(a(__file__))) os.environ['__appname__'] = __appname__ os.environ['__version__'] = __version__ if len(sys.argv) == 1: base = j(tempfile.gettempdir(), 'manual') - os.environ['CALIBRE_OVERRIDE_LANG'] = 'en' - sphinx_build('en', base, t='online', quiet=False) + os.environ['CALIBRE_OVERRIDE_LANG'] = language = 'en' + sphinx_build(language, base, t='online', quiet=False) else: language, base = sys.argv[1:] - os.environ['CALIBRE_OVERRIDE_LANG'] = language - build_manual(language, base) - print ('Manual for', language, 'built in', j(base, 'html')) + if language == 'gettext': + build_pot(base) + else: + os.environ['CALIBRE_OVERRIDE_LANG'] = language + build_manual(language, base) + if language != 'gettext': + print ('Manual for', language, 'built in', j(base, 'html')) diff --git a/setup/translations.py b/setup/translations.py index ea9f9d9b84..480970dcb7 100644 --- a/setup/translations.py +++ b/setup/translations.py @@ -84,9 +84,9 @@ class POT(Command): # {{{ def get_user_manual_docs(self): self.info('Generating translation templates for user_manual') - base = '.build/gettext' - subprocess.check_call(['sphinx-build', '-b', 'gettext', '.', base], cwd=self.MANUAL) - base, tbase = self.j(self.MANUAL, base), self.j(self.TRANSLATIONS, 'manual') + base = tempfile.mkdtemp() + subprocess.check_call(['calibre-debug', self.j(self.d(self.SRC), 'manual', 'build.py'), 'gettext', base]) + tbase = self.j(self.TRANSLATIONS, 'manual') for x in os.listdir(base): if not x.endswith('.pot'): continue @@ -112,6 +112,7 @@ class POT(Command): # {{{ self.git('add .tx/config') self.upload_pot(dest, resource=slug) self.git(['add', dest]) + shutil.rmtree(base) def run(self, opts): require_git_master()