Mercurial > pidgin
view po/update.pl @ 8999:8f838ae3e710
[gaim-migrate @ 9774]
" This patch renames the existing received-*-msg signals
to receiving-*msg to fit the naming of other signals
where a pointer to the message is passed (writing,
sending, displaying)
It adds new received-*-msg signals which are emitted
after the receiving signals, in line with the other
conversation signals (wrote, sent, displayed)
This is necessary to allow plugins which depend on the
final received message to work alongside plugins which
may modify the message.
One known example of this is festival-gaim alongside
gaim-encryption - festival-gaim would try to "speak"
the encrypted text:
http://sf.net/tracker/?func=detail&aid=943216&group_id=89763&atid=591320
I've tested this with gaim-encryption and festival-gaim
(locally modified so gaim-encryption uses the receiving
signal and festival uses the received signal)
All in-tree users of received-*-msg are updated to use
receiving-*-msg if they do modify the message, the
conversation-signals documentation is updated, the
signals-test.c & signal-test.tcl plugins are also updated." --Stu Tomlinson
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Fri, 21 May 2004 14:33:32 +0000 |
parents | ea261ce36f0b |
children | 06fe6ed7f63a |
line wrap: on
line source
#!/usr/bin/perl -w # GNOME po update utility. # (C) 2000 The Free Software Foundation # # Author(s): Kenneth Christiansen $VERSION = "1.2.5 beta 2"; $LANG = $ARGV[0]; $PACKAGE = "gaim"; if (! $LANG){ print "update.pl: missing file arguments\n"; print "Try `update.pl --help' for more information.\n"; exit; } if ($LANG=~/^-(.)*/){ if ("$LANG" eq "--version" || "$LANG" eq "-V"){ print "GNOME PO Updater $VERSION\n"; print "Written by Kenneth Christiansen <kenneth\@gnome.org>, 2000.\n\n"; print "Copyright (C) 2000 Free Software Foundation, Inc.\n"; print "This is free software; see the source for copying conditions. There is NO\n"; print "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"; exit; } elsif ($LANG eq "--help" || "$LANG" eq "-H"){ print "Usage: ./update.pl [OPTIONS] ...LANGCODE\n"; print "Updates pot files and merge them with the translations.\n\n"; print " -V, --version shows the version\n"; print " -H, --help shows this help page\n"; print " -P, --pot only generates the potfile\n"; print " -M, --maintain search for missing files in POTFILES.in\n"; print "\nExamples of use:\n"; print "update.sh --pot just creates a new pot file from the source\n"; print "update.sh da created new pot file and updated the da.po file\n\n"; print "Report bugs to <kenneth\@gnome.org>.\n"; exit; } elsif($LANG eq "--pot" || "$LANG" eq "-P"){ print "Building the $PACKAGE.pot ..."; $b="xgettext --default-domain\=$PACKAGE --directory\=\.\." ." --add-comments --keyword\=\_ --keyword\=N\_" ." --files-from\=\.\/POTFILES\.in "; $b1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot " ."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)"; `$b`; `$b1`; print "...done\n"; exit; } elsif ($LANG eq "--maintain" || "$LANG" eq "-M"){ $a="find ../ -print | egrep '.*\\.(c|y|cc|c++|h|gob)' "; open(BUF2, "POTFILES.in") || die "update.pl: there's not POTFILES.in!!!\n"; print "Searching for missing _(\" \") entries...\n"; open(BUF1, "$a|"); @buf2 = <BUF2>; @buf1 = <BUF1>; if (-s "POTFILES.ignore"){ open FILE, "POTFILES.ignore"; while (<FILE>) { if ($_=~/^[^#]/o){ push @bup, $_; } } print "POTFILES.ignore found! Ignoring files...\n"; @buf2 = (@bup, @buf2); } foreach my $file (@buf1){ open FILE, "<$file"; while (<FILE>) { if ($_=~/_\(\"/o){ $file = unpack("x3 A*",$file) . "\n"; push @buff1, $file; last; } } } @bufff1 = sort (@buff1); @bufff2 = sort (@buf2); my %in2; foreach (@bufff2) { $in2{$_} = 1; } foreach (@bufff1){ if (!exists($in2{$_})){ push @result, $_ } } if(@result){ open OUT, ">POTFILES.in.missing"; print OUT @result; print "\nHere are the results:\n\n", @result, "\n"; print "File POTFILES.in.missing is being placed in directory...\n"; print "Please add the files that should be ignored in POTFILES.ignore\n"; } else{ print "\nWell, it's all perfect! Congratulation!\n"; } } else{ print "update.pl: invalid option -- $LANG\n"; print "Try `update.pl --help' for more information.\n"; } exit; } elsif(-s "$LANG.po"){ print "Building the $PACKAGE.pot ..."; $c="xgettext --default-domain\=$PACKAGE --directory\=\.\." ." --add-comments --keyword\=\_ --keyword\=N\_" ." --files-from\=\.\/POTFILES\.in "; $c1="test \! -f $PACKAGE\.po \|\| \( rm -f \.\/$PACKAGE\.pot " ."&& mv $PACKAGE\.po \.\/$PACKAGE\.pot \)"; `$c`; `$c1`; print "...done"; print "\nNow merging $LANG.po with $PACKAGE.pot, and creating an updated $LANG.po ...\n"; $d="mv $LANG.po $LANG.po.old && msgmerge $LANG.po.old $PACKAGE.pot -o $LANG.po"; $f="msgfmt --statistics $LANG.po"; `$d`; `$f`; unlink "messages"; unlink "$LANG.po.old"; exit; } else{ print "update.pl: sorry $LANG.po does not exist!\n"; print "Try `update.pl --help' for more information.\n"; exit; }