blob: 44bf407ee385f8805d9f3ae988a703deddb463fd [file] [log] [blame]
#!/usr/bin/perl -w
use strict;
my $wantlang = shift @ARGV;
my $localcharset = 'iso-8859-1';
my %locales = (
'en' => { },
'local' => { }
);
foreach my $loc (qw(local en)) {
$locales{$loc}{desc} = { };
$locales{$loc}{tmpl} = { };
$locales{$loc}{tmpl}{unsafe_report} = '';
$locales{$loc}{tmpl}{report} = '';
}
while (<>) {
s/#.*$//g; s/^\s+//; s/\s+$//; next if /^$/;
# make all the foo-bar stuff foo_bar
1 while s/^(\S+)-/$1_/g;
1 while s/^(lang\s+\S+\s+\S+)-/$1_/g;
my $lang = '';
my $loc = 'en';
if (s/^lang\s+(\S+)\s+//) {
$lang = $1;
if ($lang ne $wantlang) { next; }
$loc = 'local';
}
if (/^report_charset\s+(\S+)$/) {
$localcharset = $1;
}
elsif (/^describe\s+(\S+)\s+(.*?)$/) {
$locales{$loc}{desc}{$1} = $2;
}
elsif (/^clear_report_template$/) {
$locales{$loc}{tmpl}{report} = '';
}
elsif (/^clear_unsafe_report_template$/) {
$locales{$loc}{tmpl}{unsafe_report} = '';
}
elsif (/^report\s+(.*?)$/) {
$locales{$loc}{tmpl}{report} .= "$1\n";
}
elsif (/^unsafe_report\s+(.*?)$/) {
$locales{$loc}{tmpl}{unsafe_report} .= "$1\n";
}
else {
next;
}
}
print q{
# SpamAssassin PO file
#
# <@LICENSE>
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to you under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# </@LICENSE>
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-05-13 18:38-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=} . $localcharset . q{\n"
"Content-Transfer-Encoding: 8bit\n"
};
foreach my $reptype (qw(report unsafe_report)) {
$locales{'local'}{tmpl}{$reptype} ||= '';
my $en = $locales{en}{tmpl}{$reptype} || '';
my $local = $locales{'local'}{tmpl}{$reptype} || '';
$en =~ s/\n/\"\n\"/gs;
$local =~ s/\n/\"\n\"/gs;
print qq{
# $reptype block
msgid ""
"$en"
msgstr ""
"$local"
};
}
foreach my $rule (sort keys %{$locales{en}{desc}}) {
$locales{'local'}{desc}{$rule} ||= '';
my $en = $locales{en}{desc}{$rule};
my $local = $locales{'local'}{desc}{$rule};
print qq{
# description for rule: $rule
msgid "$en"
msgstr "$local"
};
}