locale = $locale; return $this; } public function setTranslator(ITranslator $translator): self { $this->translator = $translator; return $this; } public function disableDefaultLocaleFallback(): self { $this->defaultLocaleFallback = false; return $this; } private function getHints(): array { $hints = []; if (is_a($this->getEntityClass(), TranslatableEntityInterface::class, true)) { $hints[Query::HINT_CUSTOM_OUTPUT_WALKER] = 'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker'; $hints[TranslatableListener::HINT_TRANSLATABLE_LOCALE] = $this->locale ?: $this->translator->getLocale(); $hints[TranslatableListener::HINT_FALLBACK] = true; if (!$this->defaultLocaleFallback) { $hints[TranslatableListener::HINT_INNER_JOIN] = true; } } return $hints; } }