/** * Translation helper method * @param null $locale * @return mixed|null|\Ojs\JournalBundle\Entity\SubmissionSettingTranslation */ public function translate($locale = null) { if (null === $locale) { $locale = $this->currentLocale; } if (!$locale) { throw new \RuntimeException('No locale has been set and currentLocale is empty'); } if ($this->currentTranslation && $this->currentTranslation->getLocale() === $locale) { return $this->currentTranslation; } $defaultTranslation = $this->translations->get($this->getDefaultLocale()); if (!($translation = $this->translations->get($locale))) { $translation = new SubmissionSettingTranslation(); if (!is_null($defaultTranslation)) { $translation->setSubmissionCloseText($defaultTranslation->getSubmissionCloseText()); $translation->setSubmissionAbstractTemplate($defaultTranslation->getSubmissionAbstractTemplate()); $translation->setSubmissionConfirmText($defaultTranslation->getSubmissionConfirmText()); } $translation->setLocale($locale); $this->addTranslation($translation); } $this->currentTranslation = $translation; return $translation; }