Completed
Pull Request — master (#2)
by Tomáš
09:22
created

PrefixedTranslator::translate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SixtyEightPublishers\User\Common\Translator;
6
7
use Nette;
8
9
final class PrefixedTranslator implements Nette\Localization\ITranslator
10
{
11
	use Nette\SmartObject;
12
13
	/** @var \Nette\Localization\ITranslator  */
14
	private $translator;
15
16
	/** @var string  */
17
	private $prefix;
18
19
	/**
20
	 * @param \Nette\Localization\ITranslator $translator
21
	 * @param string                          $prefix
22
	 */
23
	public function __construct(Nette\Localization\ITranslator $translator, string $prefix)
24
	{
25
		$this->translator = $translator;
26
		$this->prefix = rtrim($prefix, '.');
27
	}
28
	
29
	/**
30
	 * @param \Nette\Localization\ITranslator $translator
31
	 * @param string                          $className
32
	 *
33
	 * @return \SixtyEightPublishers\User\Common\Translator\PrefixedTranslator
34
	 */
35
	public static function createFromClassName(Nette\Localization\ITranslator $translator, string $className): self
36
	{
37
		return new static(
38
			$translator,
39
			str_replace('\\', '_', $className)
40
		);
41
	}
42
	
43
	/*********** interface \Nette\Localization\ITranslator ***********/
44
45
	/**
46
	 * {@inheritdoc}
47
	 */
48
	public function translate($message, $count = NULL): string
49
	{
50
		return $this->translator->translate($this->prefix . '.' . $message, $count);
51
	}
52
}
53