/** * @static * @param $id - translation key * @param bool $create - creates an empty translation entry if the key doesn't exists * @param bool $returnIdIfEmpty - returns $id if no translation is available * @return Translation_Website */ public static function getByKey($id, $create = false, $returnIdIfEmpty = false) { $translation = new self(); try { $translation->getResource()->getByKey($id); } catch (Exception $e) { if (!$create) { throw new Exception($e->getMessage()); } else { $translation->setKey($id); $translation->setDate(time()); $translations = array(); foreach (Pimcore_Tool::getValidLanguages() as $lang) { $translations[$lang] = ""; } $translation->setTranslations($translations); $translation->save(); } } if ($returnIdIfEmpty) { $translations = $translation->getTranslations(); foreach ($translations as $key => $value) { $translations[$key] = $value ?: $id; } $translation->setTranslations($translations); } return $translation; }