aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatthew <matthew>2009-07-10 12:37:52 +0000
committermatthew <matthew>2009-07-10 12:37:52 +0000
commiteb2a546b80452ffde83220bdd71f3b44c341b004 (patch)
tree0faee696b171867cd6f897368593372f2f564836
parentc738611b1e6e679ee1c618b353f1720d6d9bf931 (diff)
Welsh translation updates, code related to that.
-rwxr-xr-xbin/make_emptyhomes_welsh_po39
-rw-r--r--perllib/Page.pm34
-rw-r--r--templates/website/emptyhomes-header4
3 files changed, 48 insertions, 29 deletions
diff --git a/bin/make_emptyhomes_welsh_po b/bin/make_emptyhomes_welsh_po
index 9f353f759..725dea487 100755
--- a/bin/make_emptyhomes_welsh_po
+++ b/bin/make_emptyhomes_welsh_po
@@ -14,27 +14,31 @@ open(INPO, shift) or die $!;
my $state = 'start';
my $msgid = '';
+my $fuzzy = 0;
my $msgstr;
my %lookup;
while (<INPO>) {
- if (m/^#/) {
+ if (m/^#, fuzzy/) {
+ $fuzzy = 1;
+ } elsif (m/^#/) {
# comment or blank line
} elsif (m/^\s+$/) {
# blank line separates translations
- $msgid =~ s/"\n"//g;
- $lookup{$msgid} = $msgstr;
+ $msgid =~ s/"\n"//g;
+ $lookup{$msgid} = [ $msgstr, $fuzzy ];
$state = 'msgid';
$msgid = "";
+ $fuzzy = 0;
} elsif ($state eq 'msgid' && (m/^msgstr "/ || m/^msgstr\[0\] "/)) {
$msgstr = $_;
- $state = 'msgstr';
+ $state = 'msgstr';
} elsif ($state eq 'msgstr') {
- $msgstr .= $_;
+ $msgstr .= $_;
} elsif ($state eq 'msgid') {
- $msgid .= $_;
+ $msgid .= $_;
}
}
-$lookup{$msgid} = $msgstr;
+$lookup{$msgid} = [ $msgstr, $fuzzy ];
close INPO;
chdir("$FindBin::Bin/../../locale");
@@ -78,18 +82,21 @@ while(<MAINPO>) {
print OUTPO $_;
} elsif ($start && (m/^msgstr "/ || m/^msgstr\[0\] "/)) {
# start of translated text - translate English into Empty Homes language
+ my $new_buffer = PoChange::fixmystreet_to_reportemptyhomes($buffer);
+ $new_buffer =~ s/"\n"//g;
- print OUTPO $buffer;
-
- $buffer = PoChange::fixmystreet_to_reportemptyhomes($buffer);
- $buffer =~ s/"\n"//g;
- if ($lookup{$buffer}) {
- print OUTPO $lookup{$buffer};
- } else {
- print __LINE__ . "\n";
- die "Failed to find match with buffer: $buffer";
+ if ($lookup{$new_buffer} && $lookup{$new_buffer}[1]) {
+ print OUTPO "#, fuzzy\n";
}
+ print OUTPO $buffer;
+ if ($lookup{$new_buffer}) {
+ print OUTPO $lookup{$new_buffer}[0];
+ } else {
+ print __LINE__ . "\n";
+ die "Failed to find match with buffer: $new_buffer";
+ }
+
$buffer = "";
} elsif (!$start) {
print OUTPO $_;
diff --git a/perllib/Page.pm b/perllib/Page.pm
index 32a7a5973..b31d7762a 100644
--- a/perllib/Page.pm
+++ b/perllib/Page.pm
@@ -6,7 +6,7 @@
# Copyright (c) 2006 UK Citizens Online Democracy. All rights reserved.
# Email: matthew@mysociety.org; WWW: http://www.mysociety.org/
#
-# $Id: Page.pm,v 1.145 2009-07-07 11:49:06 matthew Exp $
+# $Id: Page.pm,v 1.146 2009-07-10 12:37:52 matthew Exp $
#
package Page;
@@ -147,24 +147,36 @@ sub header ($%) {
print $q->header(%head);
my $html;
+ my $lang = $mySociety::Locale::lang;
if ($q->{site} eq 'scambs' || $q->{site} eq 'emptyhomes' || $q->{site} eq 'guardian') {
(my $file = __FILE__) =~ s{/[^/]*?$}{};
open FP, $file . '/../templates/website/' . $q->{site} . '-header';
$html = join('', <FP>);
close FP;
- my %vars = (
- 'report' => _('Report a problem'),
- 'reports' => _('All reports'),
- 'alert' => _('Local alerts'),
- 'faq' => _('Help'),
- 'about' => _('About us'),
- 'title' => $title,
- 'site_title' => _('Report Empty Homes'),
- );
+ my %vars;
+ if ($q->{site} eq 'emptyhomes') {
+ my $lang_url = mySociety::Config::get('BASE_URL');
+ if ($lang eq 'en-gb') {
+ $lang_url =~ s{http://}{$&cy.};
+ } else {
+ $lang_url =~ s{http://}{$&en.};
+ }
+ %vars = (
+ 'report' => _('Report a problem'),
+ 'reports' => _('All reports'),
+ 'alert' => _('Local alerts'),
+ 'faq' => _('Help'),
+ 'about' => _('About us'),
+ 'site_title' => _('Report Empty Homes'),
+ 'lang_code' => $lang,
+ 'lang' => $lang eq 'en-gb' ? 'Cymraeg' : 'English',
+ 'lang_url' => $lang_url,
+ );
+ }
+ $vars{title} = $title;
$html =~ s#{{ ([a-z_]+) }}#$vars{$1}#g;
} else {
my $fixmystreet = _('FixMyStreet');
- my $lang = $mySociety::Locale::lang;
$html = <<EOF;
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="$lang">
diff --git a/templates/website/emptyhomes-header b/templates/website/emptyhomes-header
index b499e3fd8..f3d7337e1 100644
--- a/templates/website/emptyhomes-header
+++ b/templates/website/emptyhomes-header
@@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en-gb">
+<html lang="{{ lang_code }}">
<head>
<title>{{ title }}{{ site_title }}</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
@@ -28,7 +28,7 @@
<li><a href="/alert">{{ alert }}</a></li>
<li><a href="/faq">{{ faq }}</a></li>
<li><a href="/about">{{ about }}</a></li>
- {{ lang }}
+ <li><a href="{{ lang_url }}">{{ lang }}</a></li>
</ul>
</div>