#!/usr/bin/perl -w # This script converts and updates revision comments in translations. # It will automatically replace revision comments for 'original documents' # with revision comments for 'translated documents'. # When called with "-u" option, it will also update the revision for the # translated document to the revision number in the original document. # This script only supports SVN style revision marks. # Note: only use the "-u" option after you have made sure there are no # changes in content for the listed documents. # SYNOPSIS: # ./rev-update [-u] [-v] [lang] # # (uses $lang set below if lang is not given on commandline) use Getopt::Std; use File::Find; $opt_u = $opt_v = 0; getopts('uvV'); # You may set this to your default language code $lang = shift || "pl"; sub convert { my ($plfname, $plrev) = (@_); my $transtext = ''; open (FILE, "< $plfname"); while () { if (/)/$1 original version: $plrev untranslated $3/; } $transtext .= $_; } close (FILE); warn "Writing $plfname\n" if $opt_v; open (FILE, "> $plfname"); print FILE $transtext; close (FILE); } sub update { my ($plfname, $plrev, $enrev) = (@_); my $transtext = ''; open (FILE, "< $plfname"); while () { if (/)/$1$enrev$3/; } $transtext .= $_; } close (FILE); warn "Writing $plfname\n" if $opt_v; open (FILE, "> $plfname"); print FILE $transtext; close (FILE); } sub getrev { my ($plfname, $enfname) = (@_); my ($plrev, $enrev) = (0, 0); my ($notconverted, $untrans) = (0, 0); warn "checking $plfname:\n" if $opt_v; open FILE, $plfname or warn "$plfname: $!\n" and return; while () { if (//) { $plrev = $1; last; } if (//) { $plrev = $1; $untrans = 1; last; } # Also check for revision comments of original documents if (/