diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-07-18 16:16:50 +0200 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-07-18 16:16:50 +0200 |
commit | 90c2c6505e933848268ed9c5bbe21e0b459cd72a (patch) | |
tree | 13450571678acf2ff84b8a0693126e1daebb4153 | |
parent | 814cb4a4dd4017606829ecc6b6c70822bf52a30e (diff) |
Use Accept-Language header if user has no preferred languages
-rwxr-xr-x | lib/Travelynx.pm | 9 | ||||
-rw-r--r-- | lib/Travelynx/Model/Users.pm | 11 |
2 files changed, 10 insertions, 10 deletions
diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index bb1346f..907ce0c 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -164,14 +164,13 @@ sub startup { # TODO load languages from user profile, if set - my @languages = ('en-GB'); - if ( $self->is_user_authenticated ) { + my @languages; + if ( $self->is_user_authenticated + and @{ $self->current_user->{languages} } ) + { @languages = @{ $self->current_user->{languages} }; } elsif ( my $languages = $self->req->headers->accept_language ) { - @languages = (); - - #say "-- Accept-Language: $languages"; for my $lang ( split( qr{ \s* , \s* }x, $languages ) ) { if ( $lang =~ m{ ^ de }x ) { push( @languages, 'de-DE' ); diff --git a/lib/Travelynx/Model/Users.pm b/lib/Travelynx/Model/Users.pm index be9e80b..367523d 100644 --- a/lib/Travelynx/Model/Users.pm +++ b/lib/Travelynx/Model/Users.pm @@ -413,7 +413,7 @@ sub get { my $user = $db->select( 'users_with_backend', - 'id, name, status, public_level, email, ' + 'id, name, status, public_level, email, language, ' . 'accept_follows, notifications, ' . 'extract(epoch from registered_at) as registered_at_ts, ' . 'extract(epoch from last_seen) as last_seen_ts, ' @@ -423,10 +423,11 @@ sub get { )->hash; if ($user) { return { - id => $user->{id}, - name => $user->{name}, - status => $user->{status}, - notifications => $user->{notifications}, + id => $user->{id}, + name => $user->{name}, + languages => [ split( qr{[|]}, $user->{language} // q{} ) ], + status => $user->{status}, + notifications => $user->{notifications}, accept_follows => $user->{accept_follows} == 2 ? 1 : 0, accept_follow_requests => $user->{accept_follows} == 1 ? 1 : 0, default_visibility => $user->{public_level} & 0x7f, |