[mdk-re] gettext and Makefiles

Grigory Batalov =?iso-8859-1?q?grisxa_=CE=C1_mail=2Eru?=
Пн Мар 25 10:17:07 MSK 2002


On Mon, 25 Mar 2002 10:06:25 +0300
"Alexandre Prokoudine" <a_prokudin на pub.tmb.ru> wrote:

> Имеем вот такой текст: в Makefile из папки locale, где должен лежать PO-файл
> 
> # locale/Makefile
> #
> # Matt Brubeck 2002-01-12
> # based on the locale makefile from wxWindows 2.2.9
> #  
> # This is the makefile for generating the message catalog file and
> # building lang.mo files from the translated lang.po catalogs.
> # This makefile may be invoked to build either audacity.pot or any lang.mo
> 
> # Autodetect the languages we support.	Currently this relies on make
> # being called with this dir as the cwd, but if we generate this file
> # with configure an explicit path should be specified -- RL.
> 
> WX_LINGUAS := `ls *.po 2> /dev/null | sed -n 's/^\(.*\)\.po$$/\1/p'`
> 
> # the programs we use (TODO: use configure to detect them)
> MSGFMT=msgfmt -v
> MSGMERGE=msgmerge
> XGETTEXT=xgettext
> XARGS=xargs
> 
> # common xgettext args: C++ syntax, use the specified macro names as markers
> XGETTEXT_ARGS=-C -k_ -kwxGetTranslation -kwxTRANSLATE -s -j
> 
> # implicit rules
> %.mo: %.po
> 	$(MSGFMT) -o $@ $<
> 
> # a PO file must be updated from the template to include new translations
> POTFILE=audacity.pot 
> 
> %.po: $(POTFILE)
> 	if [ -f $@ ]; then $(MSGMERGE) $@ $(POTFILE) > $@.new && mv $@.new $@; \
> 	else cp $(POTFILE) $@; fi
> 
> $(POTFILE):
> 	touch $@
> 	find ../src -name "*.h" \
> 		| $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o $(POTFILE)
> 	find ../src -name "*.cpp" \
> 		| $(XARGS) $(XGETTEXT) $(XGETTEXT_ARGS) -o $(POTFILE)
> 
> allpo: update
> 	@for t in $(WX_LINGUAS); do $(MAKE) $$t.po; done
> 
> allmo:
> 	@for t in $(WX_LINGUAS); do $(MAKE) $$t.mo; done
> 
> update:
> 	$(RM) $(POTFILE)
> 	$(MAKE) $(POTFILE)
> 
> # targets depending on this one will be always remade
> FORCE:
> 
> .PHONY: allpo allmo force-update
> 
> 
> Вопрос: КАК сделать из всего этого обычный PO-файл, который можно редактировать?


  А что, 'make allpo' не работает?

-- 
 Баталов Григорий,
 системный администратор
 АО "Ковдорский ГОК"





Подробная информация о списке рассылки community