From 0242cab5ae107f86e51e17f1ad936fcf025a8535 Mon Sep 17 00:00:00 2001 From: Marius Halden Date: Wed, 31 Dec 2014 01:56:23 +0100 Subject: =?UTF-8?q?Take=20two=20on=20the=20Norwegian=20cobrand=20supportin?= =?UTF-8?q?g=20both=20bokm=C3=A5l=20and=20nynorsk.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- perllib/FixMyStreet/Cobrand/FiksGataMi.pm | 18 ++++++++++++++---- 1 file 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 { -- cgit v1.2.3