[PATCH 1 of 6] i18n: let Makefile generate i18n/hg.pot
Martin Geisler
mg at daimi.au.dk
Wed Jan 14 23:16:57 UTC 2009
# HG changeset patch
# User Martin Geisler <mg at daimi.au.dk>
# Date 1231974654 -3600
# Node ID 65bf5325c7a8ed339152759c27e60e1133ebafe1
# Parent 551afd4a46917ea4434beccbb2d1bc7ffa948671
i18n: let Makefile generate i18n/hg.pot
The target update-pot extracts strings using pygettext and updates the
i18n/hg.pot file. The translators can then use msgmerge to merge the
new strings in hg.pot with their xx.po file when they want to.
The setup.py file now includes files under both templates/ and i18n/
as data files.
diff -r 551afd4a4691 -r 65bf5325c7a8 .hgignore
--- a/.hgignore Sat Jan 03 17:15:21 2009 +0100
+++ b/.hgignore Thu Jan 15 00:10:54 2009 +0100
@@ -27,6 +27,7 @@
.DS_Store
tags
cscope.*
+i18n/hg.pot
syntax: regexp
^\.pc/
diff -r 551afd4a4691 -r 65bf5325c7a8 Makefile
--- a/Makefile Sat Jan 03 17:15:21 2009 +0100
+++ b/Makefile Thu Jan 15 00:10:54 2009 +0100
@@ -13,6 +13,7 @@
@echo ' dist - run all tests and create a source tarball in dist/'
@echo ' clean - remove files created by other targets'
@echo ' (except installed files or dist source tarball)'
+ @echo ' update-pot - update i18n/hg.pot'
@echo
@echo 'Example for a system-wide installation under /usr/local:'
@echo ' make all && su -c "make install" && hg version'
@@ -74,6 +75,14 @@
test-%:
cd tests && $(PYTHON) run-tests.py $(TESTFLAGS) $@
+update-pot:
+ mkdir -p i18n
+ pygettext -d doc -p i18n --docstrings \
+ mercurial/commands.py hgext/*.py hgext/*/__init__.py
+ pygettext -d all -p i18n mercurial hgext doc
+ msgcat i18n/doc.pot i18n/all.pot > i18n/hg.pot
+ rm i18n/doc.pot i18n/all.pot
.PHONY: help all local build doc clean install install-bin install-doc \
- install-home install-home-bin install-home-doc dist dist-notests tests
+ install-home install-home-bin install-home-doc dist dist-notests tests \
+ update-pot
diff -r 551afd4a4691 -r 65bf5325c7a8 setup.py
--- a/setup.py Sat Jan 03 17:15:21 2009 +0100
+++ b/setup.py Thu Jan 15 00:10:54 2009 +0100
@@ -139,6 +139,12 @@
except ImportError:
pass
+datafiles = []
+for root in ('templates', 'i18n'):
+ for dir, dirs, files in os.walk(root):
+ datafiles.append((os.path.join('mercurial', dir),
+ [os.path.join(dir, file_) for file_ in files]))
+
setup(name='mercurial',
version=mercurial.version.get_version(),
author='Matt Mackall',
@@ -149,9 +155,7 @@
scripts=scripts,
packages=packages,
ext_modules=ext_modules,
- data_files=[(os.path.join('mercurial', root),
- [os.path.join(root, file_) for file_ in files])
- for root, dirs, files in os.walk('templates')],
+ data_files=datafiles,
cmdclass=cmdclass,
options=dict(py2exe=dict(packages=['hgext', 'email']),
bdist_mpkg=dict(zipdist=True,
More information about the Mercurial-devel
mailing list