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