first commit
This commit is contained in:
70
pma/vendor/phpmyadmin/twig-i18n-extension/src/I18nExtension.php
vendored
Normal file
70
pma/vendor/phpmyadmin/twig-i18n-extension/src/I18nExtension.php
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* This file is part of Twig I18n extension.
|
||||
*
|
||||
* (c) 2010-2019 Fabien Potencier
|
||||
* (c) 2019-2021 phpMyAdmin contributors
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace PhpMyAdmin\Twig\Extensions;
|
||||
|
||||
use PhpMyAdmin\Twig\Extensions\TokenParser\TransTokenParser;
|
||||
use Twig\Extension\AbstractExtension;
|
||||
use Twig\TwigFilter;
|
||||
|
||||
use function dgettext;
|
||||
use function gettext;
|
||||
|
||||
class I18nExtension extends AbstractExtension
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getTokenParsers()
|
||||
{
|
||||
return [new TransTokenParser()];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getFilters()
|
||||
{
|
||||
return [
|
||||
new TwigFilter('trans', [$this, 'translate']), /* Note, the filter does not handle plurals */
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'i18n';
|
||||
}
|
||||
|
||||
/**
|
||||
* Translate a GetText string via filter
|
||||
*
|
||||
* @param string $message The message to translate
|
||||
* @param string|null $domain The GetText domain
|
||||
*/
|
||||
public function translate(string $message, ?string $domain = null): string
|
||||
{
|
||||
/* If we don't have a domain, assume we're just using the default */
|
||||
if ($domain === null) {
|
||||
return gettext($message);
|
||||
}
|
||||
|
||||
/* Otherwise specify where the message comes from */
|
||||
return dgettext($domain, $message);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user