diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2019-07-21 13:42:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-21 13:42:19 +0200 |
commit | 43fa21f6553bb9e46f00d0768eab56e74c842bb4 (patch) | |
tree | 00df255fcd7c3777855bee27967117440c4add8c /src/Helpers/Translation/GettextTranslator.php | |
parent | 4f60daa29568a43ab1da761d89124308dc7b37e7 (diff) | |
parent | 1e16f4c47ec15ffea41e1fa612d205b8db2a16d1 (diff) |
Merge branch 'master' into docker
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])); + } +} |