aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Halden <marius.h@lden.org>2014-12-31 01:56:23 +0100
committerMarius Halden <marius.h@lden.org>2014-12-31 01:56:23 +0100
commit0242cab5ae107f86e51e17f1ad936fcf025a8535 (patch)
tree0e6013d3515606c2f5b40cf6abc1694d31615973
parenta68037249e6606b4c831322fa28ad7b81af3dcba (diff)
Take two on the Norwegian cobrand supporting both bokmål and nynorsk.fiksgatami-nynorsk-old
-rw-r--r--perllib/FixMyStreet/Cobrand/FiksGataMi.pm18
1 files changed, 14 insertions, 4 deletions
diff --git a/perllib/FixMyStreet/Cobrand/FiksGataMi.pm b/perllib/FixMyStreet/Cobrand/FiksGataMi.pm
index 01ff5d610..d75b23a59 100644
--- a/perllib/FixMyStreet/Cobrand/FiksGataMi.pm
+++ b/perllib/FixMyStreet/Cobrand/FiksGataMi.pm
@@ -8,19 +8,29 @@ use Carp;
use mySociety::MaPit;
use FixMyStreet::Geocode::OSM;
use DateTime;
+use HTTP::Negotiate;
sub set_lang_and_domain {
my ( $self, $lang, $unicode, $dir ) = @_;
- if ( $lang != 'nb' && $lang != 'nn' )
- $lang = 'nb';
+ my $headers = $self->{c} ? $self->{c}->req->headers : undef;
- if ( $lang == 'nn' )
+ my $variants = [
+ ['nb', undef, undef, undef, undef, 'nb', undef],
+ ['nn', undef, undef, undef, undef, 'nn', undef],
+ ];
+
+ my $lang_override = $lang || HTTP::Negotiate::choose($variants, $headers);
+
+ if (!$lang_override || ($lang_override != 'nb' && $lang_override != 'nn'))
+ $lang_override = 'nb';
+
+ if ( $lang_override == 'nn' )
DateTime->DefaultLocale( 'nn_NO' );
else
DateTime->DefaultLocale( 'nb_NO' );
- return $self->SUPER::set_lang_and_domain($lang, $unicode, $dir);
+ return $self->SUPER::set_lang_and_domain($lang_override, $unicode, $dir);
}
sub country {