diff options
Diffstat (limited to 'src/Helpers/Translation/GettextTranslator.php')
-rw-r--r-- | src/Helpers/Translation/GettextTranslator.php | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/Helpers/Translation/GettextTranslator.php b/src/Helpers/Translation/GettextTranslator.php new file mode 100644 index 00000000..7f2299e2 --- /dev/null +++ b/src/Helpers/Translation/GettextTranslator.php @@ -0,0 +1,53 @@ +<?php + +namespace Engelsystem\Helpers\Translation; + +use Gettext\Translator; + +class GettextTranslator extends Translator +{ + /** + * @param string $domain + * @param string $context + * @param string $original + * @return string + * @throws TranslationNotFound + */ + public function dpgettext($domain, $context, $original) + { + $this->assertHasTranslation($domain, $context, $original); + + return parent::dpgettext($domain, $context, $original); + } + + /** + * @param string $domain + * @param string $context + * @param string $original + * @param string $plural + * @param string $value + * @return string + * @throws TranslationNotFound + */ + public function dnpgettext($domain, $context, $original, $plural, $value) + { + $this->assertHasTranslation($domain, $context, $original); + + return parent::dnpgettext($domain, $context, $original, $plural, $value); + } + + /** + * @param string $domain + * @param string $context + * @param string $original + * @throws TranslationNotFound + */ + protected function assertHasTranslation($domain, $context, $original) + { + if ($this->getTranslation($domain, $context, $original)) { + return; + } + + throw new TranslationNotFound(implode('/', [$domain, $context, $original])); + } +} |