mirror of
https://github.com/Respect/Validation.git
synced 2026-03-16 15:25:45 +01:00
Currently, defining translations is quite cumbersome, and the translator callback is passed to the constructor of multiple classes, which makes it quite ugly and could make translations inconsistent. This commit completely changes how translations are done in Validation. Instead of using a callback, it uses a specific class, and `Validator` will pass that object through the objects that render the messages.
31 lines
685 B
PHP
31 lines
685 B
PHP
<?php
|
|
|
|
/*
|
|
* Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Respect\Validation\Message\Translator;
|
|
|
|
use Respect\Validation\Exceptions\ComponentException;
|
|
use Respect\Validation\Message\Translator;
|
|
|
|
use function function_exists;
|
|
use function gettext;
|
|
|
|
final class GettextTranslator implements Translator
|
|
{
|
|
public function __construct()
|
|
{
|
|
if (!function_exists('gettext')) {
|
|
throw new ComponentException('This translator requires the gettext extension');
|
|
}
|
|
}
|
|
|
|
public function translate(string $message): string
|
|
{
|
|
return gettext($message);
|
|
}
|
|
}
|