#!@-PERL-@ -w # -*- perl -*- # # This perl script is used to make po/POTFILES.in, the list # of files to be searched for translatable strings. # # It will exclude any files listed in po/POTFILES.skip, po/POTFILES.ignore # or that match the regexp patterns listed in @ignorepatterns. # # Author: Dave Peticolas use strict; use File::Basename; # Note: These are perl regexp patterns, *not* normal shell wildcards! my @ignorepatterns = ('gw-', 'test', 'experimental', 'python-bindings', 'swig-.*\.c'); my @skipped_files = `grep -v \# @-SRCDIR-@/po/POTFILES.skip`; my @ignored_files = `grep -v \# @-SRCDIR-@/po/POTFILES.ignore`; my @possible_files = `cd @-SRCDIR-@ && find src -name '*.c' -o -name '*.glade' \\ -o -name '*.desktop.in' -o -name '*.keys.in' \\ -o -name '*.gschema.xml.in.in' -o -name '*.scm' | sort`; ## For perl files add the following: # -o -name '*.pl' print "# This is a list of files which contain translatable strings.\n"; print "# This file was generated by ../make-gnucash-potfiles.\n"; my %ignores; foreach my $file (@possible_files) { chomp($file); my ($name, $path) = fileparse($file); $path =~ s/^\.\///; foreach my $pat (@ignorepatterns, @skipped_files, @ignored_files) { chomp($pat); next unless $pat; if ($file =~ m/$pat/ || $name =~ m/$pat/ || $path =~ m/$pat/) { $ignores{$path . $name} = 1; } } next if $ignores{$path . $name}; # Ignore unreadable files, e.g. dangling symlinks next unless (-r "@-SRCDIR-@/" . $path . $name); # Force parse type for gsettings files my $type = ""; if ($file =~ m/.gschema.xml.in.in/ ){ $type = "[type: gettext/gsettings]"; } print $type . $path . $name . "\n"; } # These are also added, even though they are outside of src/ print "src/gnome/gnucash.appdata.xml.in\n"; print "src/gnome/gnucash.desktop.in.in\n"; print "src/libqof/qof/gnc-date.c\n"; print "src/libqof/qof/qofbookslots.h\n"; print "doc/tip_of_the_day.list.in\n";