source: osm/applications/editors/josm/i18n/replacetrans.pl@ 36409

Last change on this file since 36409 was 36409, checked in by stoecker, 4 days ago

support utf-8

  • Property svn:executable set to *
File size: 982 bytes
Line 
1#! /usr/bin/perl -w
2
3use utf8;
4use strict;
5use open qw/:std :encoding(utf8)/;
6use Encode;
7
8# call with pairs of strings, first the wrong string, second the replacement
9# strings must be escaped like in the po-file
10
11my %rep;
12while(@ARGV)
13{
14 my $from = Encode::decode("utf-8", shift @ARGV);
15 my $to = Encode::decode("utf-8", shift @ARGV);
16 $rep{$from} = $to;
17 print "'$from' -> '$to'\n";
18}
19
20for my $po (reverse sort glob("po/fr.po"))
21{
22 local $/;
23 $/ = "\n\n";
24 open my $in,'<:encoding(utf-8)',$po or die;
25 my $outpo = $po;
26 $outpo =~ s/.*\///;
27 open my $out,'>',$outpo or die;
28 my $changed = 0;
29
30 for my $line (<$in>)
31 {
32 $line =~ s/"\n"//g;
33 print $out $line if $line =~ /msgid ""\nmsgstr/;
34 for my $f (keys %rep)
35 {
36 if($line =~ s/msgid "\Q$f\E"\nmsgstr/msgid "$rep{$f}"\nmsgstr/ && $line !~ /msgstr ""/ && $line !~ /msgstr "$f"/)
37 {
38 print $out $line;
39 ++$changed;
40 }
41 }
42 }
43 close($out);
44 unlink($outpo) if !$changed;
45}
Note: See TracBrowser for help on using the repository browser.