#!/opt/local/bin/perl
use XML::Simple;
use Getopt::Std;
use File::Glob;
use Data::Dumper;
use strict;

our %LANGS = (
        'fr' => 'French',
        'ja' => 'Japanese',
        'de' => 'German',
        'es' => 'Spanish',
        'ko' => 'Korean',
        'tr' => 'Turkish'
        );

my @engfiles = glob '*.xml';

print qq~<?xml version="1.0"?>
<document>
  <properties>
    <title>Available Translations - Documentation Project</title>
  </properties>
<body>
<section>
<title>Available Translations of the Documentation</title>

<!--
This document is generated by a script located in the build/ directory
of the httpd-trunk docs. Please don't attempt to edit this by hand, as
it will be overwritten.
-->

<p>The following modules have already been translated. If you are able
to provide translations into any of these languages (or any others)
please let us know.</p>

<table border="1">
<tr><th>Document</th>
~;

foreach my $l ( sort keys %LANGS ) {
    print '<th>'.$LANGS{$l}.'</th>';
}
print qq~
</tr>
~;

foreach my $doc ( sort @engfiles ) {
    print '<tr><td>'.$doc.'</td>';
    my %trans;
    foreach my $t ( glob $doc.'.*' ) {
        next if $t =~ m/meta$/;
        my $lang = $t;
        $lang =~ s/.+\.([^.]+)$/$1/;
        $trans{ $lang } = 1;
    }
    foreach my $l ( sort keys %LANGS ) {
        if ( $trans{$l} ) {
            print '<td>X</td>';
        } else {
            print '<td></td>';
        }
    }
    print "</tr>\n";
}

print qq~ 
</table>
</section>
</body>
</document>
~;


