1 2localedir = @LOCALEDIR@ 3 4FVWM_POT_FILES = \ 5 ../fvwm/fvwm3.c \ 6 ../fvwm/expand.c \ 7 ../fvwm/windowlist.c \ 8 ../fvwm/virtual.c \ 9 ../fvwm/menus.c 10 11FVWMRC_POT_FILES = \ 12 ../default-config/config \ 13 ../bin/fvwm-menu-desktop-config.fpl \ 14 ../modules/FvwmForm/FvwmForm-XDGMenuHelp \ 15 ../modules/FvwmForm/FvwmForm-XDGOptionsHelp 16 17FVWMSCRIPT_POT_FILES = \ 18 ../default-config/FvwmScript-ConfirmQuit \ 19 ../default-config/FvwmScript-ConfirmCopyConfig \ 20 ../modules/FvwmScript/Scripts/FvwmScript-BellSetup \ 21 ../modules/FvwmScript/Scripts/FvwmScript-KeyboardSetup \ 22 ../modules/FvwmScript/Scripts/FvwmScript-PointerSetup \ 23 ../modules/FvwmScript/Scripts/FvwmScript-ScreenSetup \ 24 ../modules/FvwmScript/Scripts/FvwmScript-FileBrowser 25 26EXTRA_DIST = \ 27 @POFILES@ @GMOFILES@ fvwm.pot FvwmScript.pot \ 28 remove-potcdate.sed remove-potcdate.sin 29 30COPYRIGHT_HOLDER = fvwm workers 31 32# These options get passed to xgettext. 33XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ 34 35# This is the list of locale categories, beyond LC_MESSAGES, for which the 36# message catalogs shall be used. It is usually empty. 37EXTRA_LOCALE_CATEGORIES = 38 39MSGMERGE_UPDATE = @MSGMERGE@ --update 40 41SUFFIXES = .po .gmo .mo .sed .sin .nop .po-update 42 43.po.mo: 44 @echo "$(MSGFMT) -c -o $@ $<"; \ 45 $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ 46 47.po.gmo: 48 @lang=`echo $* | sed -e 's,.*/,,'`; \ 49 test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ 50 if test -f $(srcdir)/$${lang}.po; then \ 51 echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ 52 cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo; \ 53 fi 54 55.sin.sed: 56 sed -e '/^#/d' $< > t-$@ 57 mv t-$@ $@ 58 59 60all-local: all-local-@USE_NLS@ 61 62# make [all] should do nothing ... 63#all-local-yes: $(CATALOGS) 64all-local-yes: 65all-local-no: 66 67catalogs: $(CATALOGS) 68 69maintainer-clean-local: 70 rm -f $(GMOFILES) 71 72$(FVWM_DOMAIN).pot-update: $(FVWM_POT_FILES) \ 73 $(FVWMRC_POT_FILES) \ 74 remove-potcdate.sed 75 rm -f fvwmrc.pot; \ 76 rcpotfiles='$(FVWMRC_POT_FILES)'; \ 77 rm -f duplicate; \ 78 for file in $$rcpotfiles; do \ 79 perl -ne 's/\[gt\.((\\.|.)+?)\]/ print "\#$$ARGV: line $$.\n"."msgid \"$$1\"\n"."msgstr \"\"\n\n"/ge' \ 80 $$file >> duplicate; \ 81 done; \ 82 msguniq duplicate > fvwmrc.pot; 83 rm -f duplicate; \ 84 potfiles='$(FVWM_POT_FILES)'; \ 85 $(XGETTEXT) \ 86 --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) -o $(FVWM_DOMAIN).po \ 87 --copyright-holder='$(COPYRIGHT_HOLDER)' $$potfiles; \ 88 test ! -f $(FVWM_DOMAIN).po || { \ 89 if test -f $(srcdir)/$(FVWM_DOMAIN).pot; then \ 90 sed -f remove-potcdate.sed < $(srcdir)/$(FVWM_DOMAIN).pot > $(FVWM_DOMAIN).1po && \ 91 sed -f remove-potcdate.sed < $(FVWM_DOMAIN).po > $(FVWM_DOMAIN).2po && \ 92 if cmp $(FVWM_DOMAIN).1po $(FVWM_DOMAIN).2po >/dev/null 2>&1; then \ 93 rm -f $(FVWM_DOMAIN).1po $(FVWM_DOMAIN).2po $(FVWM_DOMAIN).po; \ 94 else \ 95 rm -f $(FVWM_DOMAIN).1po $(FVWM_DOMAIN).2po $(srcdir)/$(FVWM_DOMAIN).pot && \ 96 mv $(FVWM_DOMAIN).po $(srcdir)/$(FVWM_DOMAIN).pot; \ 97 fi; \ 98 else \ 99 mv $(FVWM_DOMAIN).po $(srcdir)/$(FVWM_DOMAIN).pot; \ 100 fi; \ 101 mv $(FVWM_DOMAIN).pot duplicate.pot; \ 102 cat fvwmrc.pot >> duplicate.pot; \ 103 msguniq duplicate.pot > $(FVWM_DOMAIN).pot; \ 104 rm -f duplicate.pot fvwmrc.pot; \ 105 } 106 107$(srcdir)/$(FVWM_DOMAIN).pot: 108 $(MAKE) $(FVWM_DOMAIN).pot-update 109 110$(FVWMSCRIPT_DOMAIN).pot-update: $(FVWMSCRIPT_POT_FILES) \ 111 remove-potcdate.sed 112 potfiles='$(FVWMSCRIPT_POT_FILES)'; \ 113 rm -f duplicate; \ 114 for file in $$potfiles; do \ 115 perl -ne 's/LocaleTitle\s+\{((\\.|.)+?)\}/ print "\#$$ARGV: line $$.\n"."msgid \"$$1\"\n"."msgstr \"\"\n\n"/ge' \ 116 $$file >> duplicate; \ 117 done; \ 118 msguniq duplicate > duplicate.pot; \ 119 potfiles='/dev/null'; \ 120 $(XGETTEXT) \ 121 --add-comments=TRANSLATORS: --language=C -o $(FVWMSCRIPT_DOMAIN).pot \ 122 --copyright-holder='$(COPYRIGHT_HOLDER)' --force-po $$potfiles; \ 123 echo >> $(FVWMSCRIPT_DOMAIN).pot; \ 124 cat duplicate.pot >> $(FVWMSCRIPT_DOMAIN).pot; \ 125 rm -f duplicate duplicate.pot; 126 127$(srcdir)/$(FVWMSCRIPT_DOMAIN).pot: 128 $(MAKE) $(FVWMSCRIPT_DOMAIN).pot-update 129 130$(POFILES): $(srcdir)/$(FVWM_DOMAIN).pot \ 131 $(srcdir)/$(FVWMSCRIPT_DOMAIN).pot 132 dlang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ 133 dom=`echo $$dlang | sed -e 's/\..*$$//'`; \ 134 test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ 135 if test -f $${dlang}.po; then \ 136 echo "$${cdcmd}$(MSGMERGE_UPDATE) $${dlang}.po $${dom}.pot"; \ 137 cd $(srcdir) && $(MSGMERGE_UPDATE) $${dlang}.po $${dom}.pot; \ 138 fi 139 140# @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ 141# test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ 142# echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(FVWM_DOMAIN).pot"; \ 143# cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(FVWM_DOMAIN).pot 144 145install-data-local: install-data-local-@USE_NLS@ 146install-data-local-no: all 147install-data-local-yes: all 148 $(mkinstalldirs) $(DESTDIR)$(datadir) 149 @catalogs='$(CATALOGS)'; \ 150 all_domains='$(ALL_DOMAINS)'; \ 151 for dom in $$all_domains; do \ 152 for cat in $$catalogs; do \ 153 cat=`basename $$cat`; \ 154 lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ 155 cat="$$dom.$$cat"; \ 156 dir=$(localedir)/$$lang/LC_MESSAGES; \ 157 $(mkinstalldirs) $(DESTDIR)$$dir; \ 158 if test -r $$cat; \ 159 then realcat=$$cat; \ 160 else realcat=$(srcdir)/$$cat; \ 161 fi; \ 162 if test -f $$realcat; then \ 163 $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$$dom.mo; \ 164 echo "installing $$realcat as $(DESTDIR)$$dir/$$dom.mo"; \ 165 for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ 166 if test -n "$$lc"; then \ 167 if (cd $(DESTDIR)$(localedir)/$$lang && \ 168 LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' \ 169 >/dev/null; then \ 170 link=`cd $(DESTDIR)$(localedir)/$$lang && \ 171 LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ 172 mv $(DESTDIR)$(localedir)/$$lang/$$lc \ 173 $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ 174 mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ 175 (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ 176 for file in *; do \ 177 if test -f $$file; then \ 178 ln -s ../$$link/$$file \ 179 $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ 180 fi; \ 181 done); \ 182 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ 183 else \ 184 if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ 185 :; \ 186 else \ 187 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ 188 mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ 189 fi; \ 190 fi; \ 191 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$$dom.mo; \ 192 ln -s ../LC_MESSAGES/$$dom.mo \ 193 $(DESTDIR)$(localedir)/$$lang/$$lc/$$dom.mo 2>/dev/null || \ 194 ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$$dom.mo \ 195 $(DESTDIR)$(localedir)/$$lang/$$lc/$$dom.mo 2>/dev/null || \ 196 cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$$dom.mo \ 197 $(DESTDIR)$(localedir)/$$lang/$$lc/$$dom.mo; \ 198 echo "installing $$realcat link as \ 199 $(DESTDIR)$(localedir)/$$lang/$$lc/$$dom.mo"; \ 200 fi; \ 201 done; \ 202 fi; \ 203 done; \ 204 done 205 206 207installdirs-data: installdirs-data-local-@USE_NLS@ 208installdirs-data-local-no: 209installdirs-data-local-yes: 210 $(mkinstalldirs) $(DESTDIR)$(datadir) 211 @catalogs='$(CATALOGS)'; \ 212 all_domains='$(ALL_DOMAINS)'; \ 213 for dom in $$all_domainss; do \ 214 for cat in $$catalogs; do \ 215 cat=`basename $$cat`; \ 216 lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ 217 dir=$(localedir)/$$lang/LC_MESSAGES; \ 218 $(mkinstalldirs) $(DESTDIR)$$dir; \ 219 for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ 220 if test -n "$$lc"; then \ 221 if (cd $(DESTDIR)$(localedir)/$$lang && \ 222 LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' \ 223 >/dev/null; then \ 224 link=`cd $(DESTDIR)$(localedir)/$$lang && \ 225 LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ 226 mv $(DESTDIR)$(localedir)/$$lang/$$lc \ 227 $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ 228 mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ 229 (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ 230 for file in *; do \ 231 if test -f $$file; then \ 232 ln -s ../$$link/$$file \ 233 $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ 234 fi; \ 235 done); \ 236 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ 237 else \ 238 if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ 239 :; \ 240 else \ 241 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ 242 mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ 243 fi; \ 244 fi; \ 245 fi; \ 246 done; \ 247 done; \ 248 done 249 250 251uninstall-local: uninstall-local-@USE_NLS@ 252uninstall-local-no: 253uninstall-local-yes: 254 catalogs='$(CATALOGS)'; \ 255 all_domains='$(ALL_DOMAINS)'; \ 256 for dom in $$all_domains; do \ 257 for cat in $$catalogs; do \ 258 cat=`basename $$cat`; \ 259 lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ 260 for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ 261 rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$$dom.mo; \ 262 done; \ 263 done; \ 264 done 265 if test -d @FVWM_DATADIR@"/locale"; then rm -fr @FVWM_DATADIR@"/locale"; fi 266 267update-po: Makefile 268 $(MAKE) $(FVWM_DOMAIN).pot-update 269 $(MAKE) $(FVWMSCRIPT_DOMAIN).pot-update 270 $(MAKE) $(UPDATEPOFILES) 271 $(MAKE) update-gmo 272 273# General rule for updating PO files. 274 275.nop.po-update: 276 dlang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po-update$$//'`; \ 277 dom=`echo $$dlang | sed -e 's/\..*$$//'`; \ 278 tmpdir=`pwd`; \ 279 echo "$$dlang:"; \ 280 test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ 281 echo "$${cdcmd}$(MSGMERGE) $$dlang.po $$dom.pot -o $$dlang.new.po"; \ 282 cd $(srcdir); \ 283 if $(MSGMERGE) $$dlang.po $$dom.pot -o $$tmpdir/$$dlang.new.po; then \ 284 if cmp $$dlang.po $$tmpdir/$$dlang.new.po >/dev/null 2>&1; then \ 285 rm -f $$tmpdir/$$dlang.new.po; \ 286 else \ 287 if mv -f $$tmpdir/$$dlang.new.po $$dlang.po; then \ 288 :; \ 289 else \ 290 echo "msgmerge for $$dlang.po failed: cannot move \ 291$$tmpdir/$$dlang.new.po to $$dlang.po" 1>&2; \ 292 exit 1; \ 293 fi; \ 294 fi; \ 295 else \ 296 echo "msgmerge for $$dlang.po failed!" 1>&2; \ 297 rm -f $$tmpdir/$$dlang.new.po; \ 298 fi 299 300$(DUMMYPOFILES): 301 302update-gmo: Makefile $(GMOFILES) 303 @: 304