コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
 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();
 }