HEX
Server: LiteSpeed
System: Linux node612.namehero.net 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: dfwparty (1186)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/dfwparty/public_html/wp-content/mu-plugins/wp-toolkit/Common/Services/I18n/Translator.php
<?php
// Copyright 1999-2026. WebPros International GmbH. All rights reserved.

namespace Webpros\WptkWpPlugin\WpToolkit\Common\Services\I18n;

final class Translator implements TranslatorInterface
{
    /**
     * @var LocaleContainer
     */
    private $localeContainer;

    /**
     * @var MessageFormatterInterface
     */
    private $formatter;

    public function __construct(
        LocaleContainer $localeContainer,
        MessageFormatterInterface $formatter
    ) {
        $this->localeContainer = $localeContainer;
        $this->formatter = $formatter;
    }

    /**
     * @inheritdoc
     */
    public function translate($id, array $context = [])
    {
        $messages = $this->localeContainer->getMessagesBackend();
        $message = isset($messages[$id]) ? $messages[$id] : null;

        return !\is_null($message) ? $this->formatMessage($message, $context) : "[[$id]]";
    }

    /**
     * @return string
     */
    public function getLocaleCode()
    {
        return $this->localeContainer->getLocaleCode();
    }

    /**
     * @return LocaleContainer
     */
    public function getLocaleContainer()
    {
        return $this->localeContainer;
    }

    /**
     * Substitutes params in localized message template
     *
     * @param string $messageTemplate
     * @param array  $params          Array of <name> => <value>
     *
     * @return string
     */
    private function formatMessage($messageTemplate, $params = [])
    {
        return $this->formatter->format($messageTemplate, $params, $this->getLocaleCode());
    }
}