| #!/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" | 
 |   }; | 
 | } | 
 |  |