2006-12-29 05:38:40 +01:00
# List here all source files with translatable strings.
POTFILES = $( sort $( shell find ../IkiWiki -type f -name \* .pm) ) \
../ikiwiki.in ../IkiWiki.pm
POFILES = $( wildcard *.po)
MOFILES = $( POFILES:.po= .mo)
2008-03-21 21:32:23 +01:00
all : ikiwiki .pot mo
mo : $( MOFILES )
2006-12-29 05:38:40 +01:00
install : all
for file in $( MOFILES) ; do \
lang = ` echo $$ file | sed 's/\.mo//' ` ; \
install -d $( DESTDIR) $( PREFIX) /share/locale/$$ lang/LC_MESSAGES/; \
install -m 0644 $$ file $( DESTDIR) $( PREFIX) /share/locale/$$ lang/LC_MESSAGES/ikiwiki.mo; \
done
ikiwiki.pot : $( POTFILES )
2007-02-20 05:10:31 +01:00
@if perl -e '($$ver)=`xgettext -V | head -n 1`=~/.*\s+([0-9]+\.[0-9]+)/; die "gettext $$ver too old, not updating the pot file\n" if $$ver < 0.16' ; then \
echo "Rebuilding the pot file" ; \
xgettext $( POTFILES) -o ikiwiki.pot -Lperl --add-comments= translators; \
fi
2006-12-29 05:38:40 +01:00
clean :
2007-01-10 21:33:19 +01:00
rm -f $( MOFILES) messages messages.mo
2006-12-29 05:38:40 +01:00
%.mo : %.po
msgfmt -o $@ $<
2008-03-21 21:32:23 +01:00
%.po :
2006-12-29 05:38:40 +01:00
@echo -n " Merging ikiwiki.pot and $@ "
2007-01-03 21:01:36 +01:00
@msgmerge $@ ikiwiki.pot -o $@ .new 2>& 1
2007-02-21 00:13:49 +01:00
# Typically all that changes was a date or line number. I'd prefer not to
# commit such changes, so detect and ignore them.
@if [ " `diff $@ $@ .new | grep '[<>]' | grep -v '[<>] #:' | wc -l` " -ne 2 ] ; then \
2006-12-29 05:38:40 +01:00
mv -f $@ .new $@ ; \
else \
rm -f $@ .new; \
fi
2007-01-03 21:01:36 +01:00
@msgfmt --statistics $@ 2>& 1
2006-12-29 05:38:40 +01:00
check :
@for file in $( POFILES) ; do \
lang = ` echo $$ file | sed 's/\.po//' ` ; \
printf " $$ lang: " ; \
msgfmt -o /dev/null -c -v --statistics $$ lang.po; \
done