blob: ad1fc1a8993a69849b77c4b49b3ed6252886b4da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
#!/usr/bin/perl -w
use strict;
# Generates a version of .po file, which is a translation
# into a language the same as English, with replacement as specified in PoChange
use POSIX;
use FindBin;
use lib "$FindBin::Bin/../perllib";
use PoChange;
chdir("$FindBin::Bin/../locale");
mkdir("en_GB.UTF-8");
mkdir("en_GB.UTF-8/LC_MESSAGES");
my $pofile = shift;
die "Please supply a filename" unless $pofile;
open(MAINPO, "FixMyStreet.po") or die "";
open(EHAPO, ">$pofile.po") or die "";
open(NEWPO, ">en_GB.UTF-8/LC_MESSAGES/$pofile.po") or die "";
print NEWPO "# AUTOMATICALLY GENERATED by make_po, do not edit\n";
print NEWPO "#\n";
print EHAPO "# AUTOMATICALLY GENERATED by make_po, do not edit\n";
print EHAPO "#\n";
my $buffer = "";
my $start = 0;
while(<MAINPO>) {
if (!$start) {
s/#, fuzzy/#/;
}
if (m/"Last-Translator: FULL NAME/) {
$_ = '"Last-Translator: mysociety/bin/make_po\\n"'."\n";
}
if (m/"PO-Revision-Date: YEAR-MO-DA/) {
my $time = POSIX::strftime("%Y-%m-%d %H:%M%z", localtime(time()));
$_ = '"PO-Revision-Date: '.$time.'\\n"'."\n";
}
if (m/"Language-Team: LANGUAGE/) {
$_ = '"Language-Team: mySociety\\n"'."\n";
}
if (m/"Plural-Forms: nplurals=/) {
$_ = '"Plural-Forms: nplurals=2; plural=n != 1;\\n"'."\n";
}
if (m/^#/) {
# comment or blank line
print NEWPO $_;
print EHAPO $_;
} elsif (m/^\s+$/) {
# blank line
$start = 1;
$buffer = "";
print NEWPO $_;
print EHAPO $_;
} elsif ($start && (m/^msgstr ""/ || m/^msgstr\[0\] ""/)) {
# start of translated text - translate English into Empty Homes language
$buffer = PoChange::translate($pofile, $buffer);
print EHAPO $buffer;
if (m/^msgstr\[0\] ""/) {
$buffer =~ s/^msgid "/msgstr[0] "/m;
$buffer =~ s/^msgid_plural "/msgstr[1] "/m;
print EHAPO $_;
$_ = <MAINPO>; # skip untranslated plural
print EHAPO $_;
} else {
$buffer =~ s/^msgid "/msgstr "/;
print EHAPO $_;
}
print NEWPO $buffer;
$buffer = "";
} else {
# English text
print NEWPO $_;
print EHAPO $_ unless $start;
$buffer .= $_;
}
}
|