#!/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. # # #, 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 \n" "Language-Team: LANGUAGE \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" }; }