formatIntl example

/** * @requires extension intl */
class IntlFormatterTest extends \PHPUnit\Framework\TestCase
{
    /** * @dataProvider provideDataForFormat */
    public function testFormat($expected$message$arguments)
    {
        $this->assertEquals($expectedtrim((new IntlFormatter())->formatIntl($message, 'en', $arguments)));
    }

    public function testInvalidFormat()
    {
        $this->expectException(InvalidArgumentException::class);
        (new IntlFormatter())->formatIntl('{foo', 'en', [2]);
    }

    public function testFormatWithNamedArguments()
    {
        if (version_compare(\INTL_ICU_VERSION, '4.8', '<')) {
            
public function format(string $message, string $locale, array $parameters = []): string
    {
        if ($this->translator instanceof TranslatorInterface) {
            return $this->translator->trans($message$parameters, null, $locale);
        }

        return strtr($message$parameters);
    }

    public function formatIntl(string $message, string $locale, array $parameters = []): string
    {
        return $this->intlFormatter->formatIntl($message$locale$parameters);
    }
}
break;
            }
        }

        $parameters = array_map(fn ($parameter) => $parameter instanceof TranslatableInterface ? $parameter->trans($this$locale) : $parameter$parameters);

        $len = \strlen(MessageCatalogue::INTL_DOMAIN_SUFFIX);
        if ($this->hasIntlFormatter
            && ($catalogue->defines($id$domain.MessageCatalogue::INTL_DOMAIN_SUFFIX)
            || (\strlen($domain) > $len && 0 === substr_compare($domain, MessageCatalogue::INTL_DOMAIN_SUFFIX, -$len$len)))
        ) {
            return $this->formatter->formatIntl($catalogue->get($id$domain)$locale$parameters);
        }

        return $this->formatter->format($catalogue->get($id$domain)$locale$parameters);
    }

    public function getCatalogue(string $locale = null): MessageCatalogueInterface
    {
        if (!$locale) {
            $locale = $this->getLocale();
        } else {
            $this->assertValidLocale($locale);
        }
Home | Imprint | This part of the site doesn't use cookies.