diff options
author | Marius Halden <marius.h@lden.org> | 2014-12-31 01:56:23 +0100 |
---|---|---|
committer | Marius Halden <marius.h@lden.org> | 2014-12-31 01:56:23 +0100 |
commit | 0242cab5ae107f86e51e17f1ad936fcf025a8535 (patch) | |
tree | 0e6013d3515606c2f5b40cf6abc1694d31615973 | |
parent | a68037249e6606b4c831322fa28ad7b81af3dcba (diff) |
Take two on the Norwegian cobrand supporting both bokmål and nynorsk.fiksgatami-nynorsk-old
-rw-r--r-- | perllib/FixMyStreet/Cobrand/FiksGataMi.pm | 18 |
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 { |