- if (!empty($languages)) {
- if (in_array($languages[0], DI::config()->get('system', 'relay_deny_languages'))) {
- Logger::info('Unwanted language found', ['language' => $languages[0]]);
- return false;
+ if (!empty($languages) || !empty($detected)) {
+ $user_languages = User::getLanguages();
+
+ foreach ($detected as $language) {
+ if (in_array($language, $user_languages)) {
+ Logger::debug('Wanted language found in detected languages', ['language' => $language, 'detected' => $detected, 'userlang' => $user_languages, 'body' => $body]);
+ return true;
+ }
+ }
+ foreach ($languages as $language) {
+ if (in_array($language, $user_languages)) {
+ Logger::debug('Wanted language found in defined languages', ['language' => $language, 'languages' => $languages, 'detected' => $detected, 'userlang' => $user_languages, 'body' => $body]);
+ return true;
+ }