#!/usr/bin/perl -w # # Script for translators that extract .sgml files into .sgml.po ones # # Copyright (C) 2001 Héctor García Álvarez. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # This script is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this library; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # # Authors: Héctor García Álvarez ## Loaded modules use strict; use File::Basename; use Getopt::Long; my $LANG = $ARGV[0]; #my $OUTFILE = "./tmp/$FILE.h"; my %string = (); my @elements; my @items; my $n=0; if (! $LANG){ print "Usage: update_po.pl LANGCODE\n"; exit; } else { $LANG .=".po"; } if ( !(-d "./$LANG") ){ mkdir ("./$LANG", 0755) ; } chdir ("./C"); if ( !(-d "./tmp") ) { mkdir ("./tmp", 0755) ; } my $comand=""; open FILES, "POTFILES.in.h"; while () { undef (%string); s/\n//g; my $Original_file = $_ ; s/.\///g; my $Converted_file = "./tmp/".$_.".h"; # print $Original_file."\n"; # print $Translated_file."\n"; print "Converting ".$Original_file."\n" ; system "rm -f $Converted_file"; &Convert ($Original_file); open OUT, ">>$Converted_file"; &addMessages; close OUT; $comand = "xgettext --default-domain=$Original_file "; $comand .="--directory=. --add-comments --keyword=_ --keyword=N_ "; $comand .="$Converted_file "; system ( $comand ); print ("Updating $Original_file.po\n"); system ("mv $Original_file.po ../$LANG/$Original_file.pot"); if ( -f "../$LANG/$Original_file.po") { system ("cp ../$LANG/$Original_file.po ../$LANG/$Original_file.po.old"); system ("msgmerge ../$LANG/$Original_file.po.old ../$LANG/$Original_file.pot -o ../$LANG/$Original_file.po"); } else { system ("mv ../$LANG/$Original_file.pot ../$LANG/$Original_file.po"); } system ("msgfmt --statistics ../$LANG/$Original_file.po"); system ("rm -f ../$LANG/$Original_file.pot"); # print POTFILE $Converted_file."\n"; print ".\n"; } close FILES; system ("rm -rf ./tmp "); exit 0; sub Convert() { ## Reading the file open (IN, "<$_[0]") || die "can't open $_[0]: $!"; ### For translatable Sgml files ### while () { if ( //) ) { $string{$Salida} = []; } else { while () { $Salida .= $_ ; if ( /-->/ ) { last ; } } $string{$Salida} = []; } } elsif ( // ) { my $number_of_para = 1; my $Salida = $_ ; if ( /<\/para>/ ) { $string{$Salida} = []; } else { while () { if ( // ) { $number_of_para++; } $Salida .= $_ ; if ( /<\/para>/ ) { $number_of_para--; if ( $number_of_para==0) {last ; } } } $string{$Salida} = []; } } elsif ( // ) { my $Salida = $_ ; if ( /<\/title>/ ) { $string{$Salida} = []; } else { while (<IN>) { $Salida .= $_ ; if ( /<\/title>/ ) { last ; } } $string{$Salida} = []; } } elsif ( /<glossterm>/ ) { my $Salida = $_ ; if ( /<\/glossterm>/ ) { $string{$Salida} = []; } else { while (<IN>) { $Salida .= $_ ; if ( /<\/glossterm>/ ) { last ; } } $string{$Salida} = []; } } elsif ( /<guilabel>/ ) { my $Salida = $_ ; if ( /<\/guilabel>/ ) { $string{$Salida} = []; } else { while (<IN>) { $Salida .= $_ ; if ( /<\/guilabel>/ ) { last ; } } $string{$Salida} = []; } } } close (IN); } sub addMessages{ foreach my $theMessage (sort keys %string) { my ($tag) = $string{$theMessage} ; # Replace XML codes for special chars to # geniune gettext syntax #--------------------------------------- $theMessage =~ s/"/\\"/mg; $theMessage =~ s/\n/\\n\n/mg; # $theMessage =~ s/</</mg; # $theMessage =~ s/>/>/mg; if ($theMessage =~ /\n/) { #if ($tag) { print OUT "/* $tag */\n"; } @elements = split (/\n/, $theMessage); for ($n = 0; $n < @elements; $n++) { if ($n == 0) { print OUT "gchar *s = N_"; print OUT "(\"$elements[$n]\""; if ($n == @elements - 1) { print OUT ");\n"; } print OUT "\n"; } elsif ($n == @elements - 1) { print OUT " "; print OUT "\"$elements[$n]\");\n\n"; } elsif ($n > 0) { print OUT " "; print OUT "\"$elements[$n]\"\n"; } } } else { # if ($tag) { print OUT "/* $tag */\n"; } print OUT "gchar *s = N_(\"$theMessage\");\n"; } } } /freebsd-ports-gnome/about/?h=gnome-3.24'>about</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/?h=gnome-3.24'>summary</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/refs/?h=gnome-3.24&id=8660875484e23852e2d391693aeb5041e626de61'>refs</a><a class='active' href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net/samba32?h=gnome-3.24'>log</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/tree/net/samba32?h=gnome-3.24&id=8660875484e23852e2d391693aeb5041e626de61'>tree</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=8660875484e23852e2d391693aeb5041e626de61'>commit</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/diff/net/samba32?h=gnome-3.24&id=8660875484e23852e2d391693aeb5041e626de61'>diff</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/stats/net/samba32?h=gnome-3.24'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net/samba32'> <input type='hidden' name='h' value='gnome-3.24'/><input type='hidden' name='id' value='8660875484e23852e2d391693aeb5041e626de61'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/?h=gnome-3.24&id=8660875484e23852e2d391693aeb5041e626de61'>root</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net?h=gnome-3.24&id=8660875484e23852e2d391693aeb5041e626de61'>net</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net/samba32?h=gnome-3.24&id=8660875484e23852e2d391693aeb5041e626de61'>samba32</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/net/samba32?h=gnome-3.24&id=8660875484e23852e2d391693aeb5041e626de61&showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=c126e8c5f0588b1e44e03ff5989571c2c9d75f58'>Update net/samba32 port to the 3.2.11 version. Major changes are:</a></td><td>timur</td><td><span title='2009-05-26 08:35:51 +0800'>2009-05-26</span></td><td>2</td><td><span class='deletions'>-11</span>/<span class='insertions'>+6</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=7c381bac84ac79a0ed5f65de87e7dfc33c35b547'>Bump port version to the 3.2.10.</a></td><td>timur</td><td><span title='2009-04-11 01:57:15 +0800'>2009-04-11</span></td><td>5</td><td><span class='deletions'>-51</span>/<span class='insertions'>+6</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=f7839720764292cf2462a40b131a696824f380d3'>New 3.2.8 version of Samba 3.2 series. Major changes are:</a></td><td>timur</td><td><span title='2009-02-21 18:40:07 +0800'>2009-02-21</span></td><td>7</td><td><span class='deletions'>-52</span>/<span class='insertions'>+52</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=192f998e148da5251efe8658e041bcd9ae18d789'>PR: ports/131615</a></td><td>timur</td><td><span title='2009-02-15 11:36:49 +0800'>2009-02-15</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=19567c7ac800c76fe49e3fc44930525d64c284d6'>Security update due CVE-2009-0022</a></td><td>timur</td><td><span title='2009-01-07 08:28:42 +0800'>2009-01-07</span></td><td>15</td><td><span class='deletions'>-63</span>/<span class='insertions'>+55</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=8ef21a396d8627cdfced24744c2bacb7cb0c9453'>- Remove conditional checks for FreeBSD 5.x and older</a></td><td>pav</td><td><span title='2009-01-07 01:59:31 +0800'>2009-01-07</span></td><td>1</td><td><span class='deletions'>-7</span>/<span class='insertions'>+0</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=aa020b736f5c57adddbd7c17d2197f70d6420a72'>Bump PORTREVISION's after OpenLDAP update.</a></td><td>delphij</td><td><span title='2009-01-06 03:04:45 +0800'>2009-01-06</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=8bb86753533063f82a18d415fc0400b42f08a44d'>- Fix potential leakage of arbitrary memory contents</a></td><td>miwi</td><td><span title='2008-11-30 02:23:52 +0800'>2008-11-30</span></td><td>2</td><td><span class='deletions'>-0</span>/<span class='insertions'>+8</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/net/samba32?h=gnome-3.24&id=f4e74f5e350460273550206e21a8834be99682cc'>Small fix to pkg-plist. No version bump.</a></td><td>timur</td><td><span title='2008-10-12 11:10:28 +0800'>2008-10-12</span></td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> etions'>-6</span>/<span class='insertions'>+6</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/graphics/pixmap?h=gnome-3.24&id=d08c68783ad5811576e5e18df4e32e887eba4d13'>Add size data.</a></td><td>trevor</td><td><span title='2004-03-18 10:27:55 +0800'>2004-03-18</span></td><td>1</td><td><span class='deletions'>-0</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/graphics/pixmap?h=gnome-3.24&id=9ddd3b82d6dc17d4f1d24406279c66dc9f23b128'>Clear moonlight beckons.</a></td><td>ade</td><td><span title='2003-03-07 14:14:21 +0800'>2003-03-07</span></td><td>2</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/graphics/pixmap?h=gnome-3.24&id=edab086546d330e0778484b74ef0b61803de2197'>Fix build on -current.</a></td><td>jmz</td><td><span title='2002-12-29 00:11:35 +0800'>2002-12-29</span></td><td>1</td><td><span class='deletions'>-19</span>/<span class='insertions'>+13</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/graphics/pixmap?h=gnome-3.24&id=dcdb2c963128dfc1b89ec6e99e0195e69578c656'>Unbreak.</a></td><td>jmz</td><td><span title='2002-10-12 10:11:47 +0800'>2002-10-12</span></td><td>1</td><td><span class='deletions'>-5</span>/<span class='insertions'>+5</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/graphics/pixmap?h=gnome-3.24&id=c3d9eb4e17a1689f14295e08d41212910528a6de'>Unbreak for XFree-4. This port requires /usr/X11R6/lib/X11/rgb.txt during</a></td><td>jmz</td><td><span title='2002-05-24 20:18:59 +0800'>2002-05-24</span></td><td>1</td><td><span class='deletions'>-2</span>/<span class='insertions'>+5</span></td></tr> <tr><td class='commitgraph'>* </td><td><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/graphics/pixmap?h=gnome-3.24&id=2ed2c5b5ae07fcbdfe19b38d02f98933a74ca163'>BROKEN: Does not build with XFree86-4</a></td><td>kris</td><td><span title='2002-05-18 10:25:41 +0800'>2002-05-18</span>