diff --git a/src/Plugin/views/EntityTranslationRenderer.php b/src/Plugin/views/EntityTranslationRenderer.php index 485ada9..74a831b 100644 --- a/src/Plugin/views/EntityTranslationRenderer.php +++ b/src/Plugin/views/EntityTranslationRenderer.php @@ -2,11 +2,9 @@ namespace Drupal\search_api\Plugin\views; -use Drupal\Core\Entity\EntityTypeInterface; -use Drupal\Core\Language\LanguageManagerInterface; +use Drupal\Core\Language\LanguageInterface; use Drupal\views\Entity\Render\TranslationLanguageRenderer; use Drupal\views\ResultRow; -use Drupal\views\ViewExecutable; /** * Renders entity translations in their row language. @@ -17,9 +15,14 @@ class EntityTranslationRenderer extends TranslationLanguageRenderer { * {@inheritdoc} */ public function getLangcode(ResultRow $row) { - return isset($row->search_api_language) - ? $row->search_api_language - : $this->languageManager->getDefaultLanguage()->getId(); + if (!empty($row->search_api_language)) { + return $row->search_api_language; + } + // If our normal query plugin is used, this shouldn't really ever happen, + // but if it does we fall back to the current request's content language. + return $this->languageManager + ->getCurrentLanguage(LanguageInterface::TYPE_CONTENT) + ->getId(); } } diff --git a/src/Tests/ViewsTest.php b/src/Tests/ViewsTest.php index 9cdd60b..7122b59 100644 --- a/src/Tests/ViewsTest.php +++ b/src/Tests/ViewsTest.php @@ -27,7 +27,11 @@ class ViewsTest extends SimpletestWebTestBase { * * @var string[] */ - public static $modules = array('search_api_test_views', 'views_ui', 'language'); + public static $modules = array( + 'search_api_test_views', + 'views_ui', + 'language', + ); /** * A search index ID.