#!/usr/bin/make -f

PACKAGE=dbootstrap

-include ../../../config

.SUFFIXES:
.SUFFIXES: .po .mo .trm

__AVAILABLE_LANGUAGES = ca+ cs+ de+ da+ eo+ es+ fi+ fr+ gl+ hr+ hu+ it+ ko+ ja+ pl+ pt+ ru+ sk+ sv+ tr+ zh_CN+ zh_TW+

AVAILABLE_LANGUAGES = $(subst +,,$(__AVAILABLE_LANGUAGES))

ALLPOFILES  = $(subst +,.po,$(__AVAILABLE_LANGUAGES))
ALLMOFILES  = $(subst +,.mo,$(__AVAILABLE_LANGUAGES))
ALLTRMFILES = $(subst +,.trm,$(__AVAILABLE_LANGUAGES))
ALLUTFFILES = utf/en.trm $(addprefix utf/,$(ALLTRMFILES))
ALLPOUTFFILES = $(subst .trm,.po,$(ALLUTFFILES))

POFILES     = C.po $(LINGUA).po
MOFILES     = $(subst .po,.mo,$(POFILES))
TRMFILES    = $(subst .po,.trm,$(POFILES))
UTFTRMFILES    = $(subst .po,.utf.trm,$(POFILES))
POTFILES    := $(shell cat POTFILES)
POTFILESREL = $(subst ../,,$(POTFILES))

__DUMMY__   := $(shell [ -d utf ] || mkdir utf)

#all:	C.mo $(TRMFILES)
#ifeq ($(USE_LANGUAGE_CHOOSER),true)
#all: all-utf
#else
#all: do-trm
#endif

all: do-trm all-utf
	touch po_stamp

check-%: %.po
	@echo -n "$<: "
	@msgfmt -o /dev/null --statistics -c -v $<

update-%: %.po $(PACKAGE).pot
	cat=`basename $<`; \
	lang=`echo $$cat | sed 's/\.po//'`; \
	if [ $$lang = 'ja' ] || [ $$lang = 'zh_TW' ]; then \
	  msgmergeopt=--width=0; \
	else \
	  msgmergeopt=; \
	fi; \
	mv $$lang.po $$lang.old.po; \
	echo "$$lang:"; \
	if msgmerge $$msgmergeopt -v $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
	  rm -f $$lang.old.po; \
	else \
	  echo "msgmerge for $$cat failed!"; \
	  rm -f $$lang.po; \
	  mv $$lang.old.po $$lang.po; \
	fi; \
	./finduntranslated.pl $$lang.po

C.po: $(PACKAGE).pot genc.awk
	gawk -f genc.awk < $(PACKAGE).pot | \
        sed \
            -e "s/PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE/PO-Revision-Date: `date -R`/" \
            -e "s/Last-Translator: FULL NAME <EMAIL@ADDRESS>/Last-Translator: Automagic/" \
            -e "s/Language-Team: LANGUAGE <LL@li.org>/Language-Team: Automagic/" \
            -e "s/Content-Type: text\/plain; charset=CHARSET/Content-Type: text\/plain; charset=us-ascii/" \
            -e "s/Content-Transfer-Encoding: ENCODING/Content-Transfer-Encoding: 7bit/" \
        > $@

utf/en.po: C.po
	cp $< $@

utf/en.trm: C.trm
	cp $< $@

utf/%.trm: utf/%.mo C.mo
	trim-mo $< C.mo > $@

utf/%.mo: utf/%.po
	@echo -n "$<: "
	@msgfmt --statistics -o $@ $<

utf/%.po: %.po
	iconv -f "`grep -a '^"Content-Type:' $< | sed -e 's/^.*charset=\\(.*\\)\\\\n.*/\\1/'`" -t utf-8 < $< | sed -e 's/^\(.*charset=\)\(.*\)\(\\n.*\)/\1utf-8\3/' > $@

%.pox: %.po
	$(MAKE) $(PACKAGE).pot
	msgmerge -v $< $(PACKAGE).pot -o $*.pox

%.mo: %.po
	@echo -n "$<: "
	@msgfmt --statistics -o $@ $<

%.trm: %.mo C.mo
	trim-mo $< C.mo > $@

$(PACKAGE).pot: $(POTFILES)
	@echo Creating $@
	xgettext --default-domain=$(PACKAGE) --directory=.. \
	  --add-comments=TRANS --keyword=_ --keyword=N_ \
	  --foreign-user $(POTFILESREL) \
	&& test ! -f $(PACKAGE).po \
	   || ( rm -f $(PACKAGE).pot \
	        && sed -e "s/^# SOME DESCRIPTIVE TITLE./# Debian's dbootstrap messages template file./" \
                   -e "s/^# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR./# Enrique Zanardi <ezanard@debian.org>, 1999-2001./" \
                   -e "s/Project-Id-Version: PACKAGE VERSION/Project-Id-Version: dbootstrap 2.2.0/" \
                   <$(PACKAGE).po >$(PACKAGE).pot \
	        && rm -f $(PACKAGE).po )

do-trm: $(TRMFILES)

all-utf: $(ALLUTFFILES)
	touch all-utf

do-all-trm: $(ALLTRMFILES)
all-po-utf: $(ALLPOUTFFILES)
install-utf: C.trm $(ALLUTFFILES)
	install -m 0644 -o root -g root C.trm /etc/messages.en  # Install the default language
	for lang in $(AVAILABLE_LANGUAGES); do install -m 0644 -o root -g root utf/$$lang.trm /etc/messages.$$lang; done

statistics-all: C.po $(ALLPOFILES)
	for file in C.po $(ALLPOFILES); do echo -n "$$file: "; msgfmt -o /dev/null --statistics $$file; done

check-all: check-C $(ALLPOFILES:%.po=check-%)

old-do-trm:
	for llist in C cs de da eo es fi fr hr hu it ja pl pt ru ; do \
	  ( echo -n "$$llist: "; \
	    msgfmt --statistics $$llist.po -o $$llist.mo ; \
	    trim-mo $$llist.mo C.mo > $$llist.trm ) \
	done

clean:
	rm -f *.mo *.trm *~ C.po *.utf.po
	rm -f all-utf
	rm -rf utf
	rm -f po_stamp

distclean maintainer-clean:	clean
	rm -f $(PACKAGE).pot

update-po: Makefile
	$(MAKE) $(PACKAGE).pot
	set -e ; \
	catalogs='$(ALLPOFILES)'; \
	for cat in $$catalogs; do \
	  cat=`basename $$cat`; \
	  lang=`echo $$cat | sed 's/\.po//'`; \
	  if [ $$lang = 'ja' ] || [ $$lang = 'zh_TW' ]; then \
	    msgmergeopt=--width=0; \
	  else \
	    msgmergeopt=; \
	  fi; \
	  mv $$lang.po $$lang.old.po; \
	  echo "$$lang:"; \
	  if msgmerge $$msgmergeopt -v $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
	    rm -f $$lang.old.po; \
	  else \
	    echo "msgmerge for $$cat failed!"; \
	    rm -f $$lang.po; \
	    mv $$lang.old.po $$lang.po; \
	  fi; \
	done

## we must delete the target when an error happens or things might
## get nasty
.DELETE_ON_ERROR:


