. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Tools\LeadCapture; use Espo\Core\Binding\Attributes\Qualify; use Espo\Core\Utils\Language; use Espo\Core\Utils\Theme\Direction; use Espo\Entities\LeadCapture; class ThemeDirectionDetector { private const array RTL_LANGUAGE_CODE_LIST = [ 'ar', 'fa', 'he', 'ur', ]; public function __construct( #[Qualify(Language::QUALIFIER_DEFAULT)] private Language $language, ) {} public function detect(LeadCapture $leadCapture): Direction { $language = $leadCapture->getFormLanguage() ?? $this->language->getLanguage(); $languageCode = strtolower(substr($language, 0, 2)); return in_array($languageCode, self::RTL_LANGUAGE_CODE_LIST, true) ? Direction::Rtl : Direction::Ltr; } }