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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
#!/usr/bin/perl
use strict;
use warnings;
my $dir = $ARGV[0] || '.';
print <<_EOF_;
<?xml version='1.0'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style type="text/css">
h1 { color: #EC5800; }
h2 { border-bottom: solid 10px #0092C3; }
a { color: #0092C3; }
.newpo { color: #666; visibility: visible; }
.qualifiedpo { background-color: #FFFF00; }
.fullpo { background-color: #00FF00; }
.errorpo { background-color: #FF0000; }
</style>
<script type="text/javascript">
function getStyleClass (className) {
for (var s = 0; document.styleSheets.length > s; s++)
{
if(document.styleSheets[s].rules)
{
for (var r = 0; document.styleSheets[s].rules.length > r; r++)
{
if (document.styleSheets[s].rules[r].selectorText == '.' + className)
{
return document.styleSheets[s].rules[r];
}
}
}
else if(document.styleSheets[s].cssRules)
{
for (var r = 0; document.styleSheets[s].cssRules.length > r; r++)
{
if (document.styleSheets[s].cssRules[r].selectorText == '.' + className)
return document.styleSheets[s].cssRules[r];
}
}
}
return null;
}
</script>
<title>NLS Status Tables</title>
</head>
<body>
<h1>NLS Status Tables</h1>
<p>The tables below shows which areas of the PostgreSQL source are prepared
for translation, and the progress of those translations. The numbers are
percents of translated messages. By following the links, you can download
freshly baked PO files that are merged up against the latest program sources.
No PostgreSQL source tree is needed for translation work.</p>
<p>The <span class='qualifiedpo'>highlighted</span> boxes are the files that
have a sufficient fraction of strings translated to be considered for release.
Files that are <span class='fullpo'>100%</span> translated are specially
highlighted. All other files will not be part of the PostgreSQL release.</p>
<p>The grey numbers are translations that do not exist yet, but where this
web site has initialized the translations files for you with data from the
existing translations for the same language.</p>
<p>You can work in several branches. Please see the status information below
and follow the announcements on the <a
href="http://www.postgresql.org/list/pgsql-translators/">mailing list</a>
(<a href="http://www.postgresql.org/community/lists/subscribe/">subscribe</a>)
about when a branch is about to be released.</p>
<ul>
_EOF_
my %branch_status = (
'13-branch' => 'maintenance',
'14-branch' => 'maintenance',
'15-branch' => 'maintenance',
'16-branch' => 'maintenance',
'17-branch' => 'maintenance',
'18-branch' => 'complete this now',
);
my @branches = reverse sort {
$a eq 'master' ? 1 : ($b eq 'master' ? -1 : $a <=> $b)
} map { m!table-([^/]+).html$! && $1 } glob("$dir/table-*.html");
foreach my $b (@branches) {
my $title;
($title = $b) =~ tr/-/ /;
print "<li><a href='#t${b}-branch'>$title</a> — $branch_status{$b}</li>\n";
}
print <<_EOF_;
</ul>
<p>Other information:
<a href="http://wiki.postgresql.org/wiki/NLS">contributor/translator information (wiki)</a>
</p>
<!-- FIXME:
<p>Display options:
<a href='' onclick="javascript:getStyleClass('newpo').style.visibility = 'visible';">show new</a> |
<a href='' onclick="javascript:getStyleClass('newpo').style.visibility = 'hidden';">hide new</a>
</p>
-->
_EOF_
foreach my $b (@branches) {
my $title;
($title = $b) =~ tr/-/ /;
print "<h2><a name='t${b}-branch'></a>", ucfirst($title), "</h2>\n";
open my $f, '<', "$dir/table-${b}.html" or die $!;
print foreach <$f>;
close $f;
print "<p><a href='qualified-list-$b.txt'>qualified list</a></p>\n" if -e "$dir/qualified-list-$b.txt";
}
print <<_EOF_;
</body>
<script type="text/javascript">
var elements = document.getElementsByClassName('timestamp');
var i;
for (i = 0; i < elements.length; i++) {
var s = elements[i].textContent;
var d = new Date(Date.parse(s));
elements[i].textContent = d.toString();
elements[i].setAttribute('title', d.toUTCString());
}
</script>
</html>
_EOF_
|