/** * Get or create a Propel Tranlation object for the given locale * * @param string $locale * * @return Translation */ public function getOrCreateTranslationForLocale($locale) { foreach ($this->getTranslations() as $propelTranslation) { if ($propelTranslation->getLocale() == $locale) { return $propelTranslation; } } $propelTranslation = new PropelTranslation(); $propelTranslation->setLocale($locale); $this->addTranslation($propelTranslation); return $propelTranslation; }
public function saveTranslation(Translation $translation) { // Fetch the related unit $propelUnit = UnitQuery::create()->findOneByDomainAndKey($translation->getUnit()->getDomain(), $translation->getUnit()->getKey()); // Retrived or create the translation $propelTranslationToUpdate = null; foreach ($propelUnit->getTranslations() as $propelTranslation) { if ($propelTranslation->getLocale() == $translation->getLocale()) { $propelTranslationToUpdate = $propelTranslation; break; } } if ($propelTranslationToUpdate === null) { $propelTranslationToUpdate = new PropelTranslation(); $propelTranslationToUpdate->setUnitId($propelUnit->getId()); } // Update and save $propelTranslationToUpdate->updateFromModel($translation); $propelTranslationToUpdate->save(); }