function firstOrNewTranslation($attributes = null)
 {
     $checkDB = true;
     /* @var $query Builder */
     $translation = null;
     if ($this->preloadedGroupKeys && array_key_exists('group', $attributes) && $this->preloadedGroup === $attributes['group'] && array_key_exists('locale', $attributes) && array_key_exists('key', $attributes) && array_key_exists($attributes['locale'], $this->preloadedGroupLocales)) {
         $checkDB = false;
         if (array_key_exists($attributes['key'], $this->preloadedGroupKeys) && array_key_exists($attributes['locale'], $this->preloadedGroupKeys[$attributes['key']])) {
             $translation = $this->preloadedGroupKeys[$attributes['key']][$attributes['locale']];
         }
     }
     if ($checkDB) {
         $query = $this->translation->on($this->getConnectionName());
         foreach ($attributes as $attribute => $value) {
             $query = $query->where($attribute, $value);
         }
         $translation = $query->first();
     }
     if (!$translation) {
         $translation = new Translation();
         $translation->fill($attributes);
         $translation->setConnection($this->getConnectionName());
     }
     return $translation;
 }