![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/CoreBundle/Translation/ |
<?php namespace Mautic\CoreBundle\Translation; use Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface; use Symfony\Component\Translation\MessageCatalogueInterface; use Symfony\Component\Translation\TranslatorBagInterface; use Symfony\Contracts\Translation\LocaleAwareInterface; use Symfony\Contracts\Translation\TranslatorInterface; /** * Extended Translator service. */ class Translator implements TranslatorInterface, WarmableInterface, TranslatorBagInterface, LocaleAwareInterface { /** * @var TranslatorInterface&WarmableInterface&TranslatorBagInterface&LocaleAwareInterface */ private TranslatorInterface $translator; public function __construct(TranslatorInterface $translator) { if (!$translator instanceof WarmableInterface) { throw new \InvalidArgumentException('Passed $translator must implement '.WarmableInterface::class); } if (!$translator instanceof TranslatorBagInterface) { throw new \InvalidArgumentException('Passed $translator must implement '.TranslatorBagInterface::class); } if (!$translator instanceof LocaleAwareInterface) { throw new \InvalidArgumentException('Passed $translator must implement '.LocaleAwareInterface::class); } $this->translator = $translator; } /** * @param array<mixed> $parameters */ public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null): string { return $this->translator->trans($id, $parameters, $domain, $locale); } public function warmUp(string $cacheDir) { $this->translator->warmUp($cacheDir); return []; } public function getCatalogue($locale = null): MessageCatalogueInterface { return $this->translator->getCatalogue($locale); } public function getLocale(): string { return $this->translator->getLocale(); } public function setLocale(string $locale): void { $this->translator->setLocale($locale); } /** * Check if the specified message ID exists. * * @param string $id The message id (may also be an object that can be cast to string) * @param string|null $domain The domain for the message or null to use the default * @param string|null $locale The locale or null to use the default * * @return bool true if the message has a translation, false otherwise */ public function hasId(string $id, ?string $domain = null, ?string $locale = null): bool { if (null === $domain) { $domain = 'messages'; } return $this->getCatalogue($locale)->has($id, $domain); } /** * Checks for $preferred string existence and returns translation if it does. Otherwise, returns translation for * $alternative. * * @param array<mixed> $parameters */ public function transConditional(string $preferred, string $alternative, array $parameters = [], ?string $domain = null, ?string $locale = null): string { if ($this->hasId($preferred, $domain, $locale)) { return $this->trans($preferred, $parameters, $domain, $locale); } return $this->trans($alternative, $parameters, $domain, $locale); } public function getJsLang(): string { $defaultMessages = $this->translator->getCatalogue('en_US')->all('javascript'); $messages = $this->translator->getCatalogue()->all('javascript'); $oldKeys = [ 'chosenChooseOne' => $this->translator->trans('mautic.core.form.chooseone'), 'chosenChooseMore' => $this->translator->trans('mautic.core.form.choosemultiple'), 'chosenNoResults' => $this->translator->trans('mautic.core.form.nomatches'), 'pleaseWait' => $this->translator->trans('mautic.core.wait'), 'popupBlockerMessage' => $this->translator->trans('mautic.core.popupblocked'), ]; $jsLang = array_merge($defaultMessages, $messages, $oldKeys); return json_encode($jsLang, JSON_PRETTY_PRINT | JSON_FORCE_OBJECT); } }