src/mvk/Middleware/Web/EventListener/TranslationSaveListener.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\mvk\Middleware\Web\EventListener;
  3. use Exception;
  4. use Pimcore\Event\Model\TranslationEvent;
  5. use Pimcore\Model\Translation;
  6. class TranslationSaveListener {
  7.     public function __construct()
  8.     {
  9.         define('MVK_APPLICATION_PREFIX''app');
  10.     }
  11.     public function saveTranslations(TranslationEvent $info) {
  12.         $translationKey $info->getTranslation()->getKey();
  13.         if (!preg_match('/'MVK_APPLICATION_PREFIX .'_.*?_(.*?)_.*/'$translationKey$match)) {
  14.             return;
  15.         }
  16.         $type $match[1];
  17.         $domain Translation::DOMAIN_DEFAULT;
  18.         $objectPrefix MVK_APPLICATION_PREFIX '\_%\_' $type '\_%';
  19.         $list = new Translation\Listing();
  20.         $list->setDomain($domain);
  21.         $list->setOrder('asc');
  22.         $list->setLanguages(['de_DE']);
  23.         $list->setCondition("translations_messages.key LIKE ?"$objectPrefix);
  24.         $list->setOrderKey('translations_messages.key'false);
  25.         $list->load();
  26.         $listData $list->getData();
  27.         $response = [];
  28.         foreach ($listData as $data) {
  29.             $response[$data->getKey()] = $data->getTranslation('de_DE');
  30.         }
  31.         $path PIMCORE_PROJECT_ROOT '/public/frontend/translation/' $type;
  32.         if (!file_exists($path)) {
  33.             mkdir($path0775true);
  34.         }
  35.         $jsonString json_encode($responseJSON_UNESCAPED_UNICODE JSON_UNESCAPED_SLASHES JSON_UNESCAPED_LINE_TERMINATORS);
  36.         file_put_contents($path '/de.json'str_replace('\\\\','\\',$jsonString));
  37.     }
  38. }