Пример #1
0
 /**
  * @param Project $project
  *
  * @return LoadedProject|null
  */
 public function load(Project $project, $preferedDomain, $preferedLocale)
 {
     $domain = $project->pickDomain($preferedDomain);
     if (null == $domain) {
         return null;
     }
     $locale = $project->pickLocale($domain, $preferedLocale);
     $catalogue = $this->loader->loadFile($project->getFilePathName($domain, $locale), $project->getFileFormat($domain, $locale), $locale, $domain);
     $alternativeMessages = [];
     foreach ($project->getLocales($domain) as $otherLocale) {
         if ($locale === $otherLocale) {
             continue;
         }
         $altCatalogue = $this->loader->loadFile($project->getFilePathName($domain, $otherLocale), $project->getFileFormat($domain, $otherLocale), $otherLocale, $domain);
         foreach ($altCatalogue->getDomain($domain)->all() as $id => $message) {
             $alternativeMessages[$id][$otherLocale] = $message;
         }
     }
     $newMessages = $existingMessages = array();
     foreach ($catalogue->getDomain($domain)->all() as $id => $message) {
         if ($message->isNew()) {
             $newMessages[$id] = $message;
             continue;
         }
         $existingMessages[$id] = $message;
     }
     return new LoadedProject($project, $domain, $locale, $catalogue, $newMessages, $existingMessages, $alternativeMessages);
 }
Пример #2
0
 /**
  * @param Account $account
  * @param Project $project
  * @param         $domain
  * @param         $locale
  *
  * @return Store
  */
 public function deleteFile(Account $account, Project $project, $domain, $locale)
 {
     $path = $project->getFilePathName($domain, $locale);
     unlink($path);
     $project->resetFiles();
     $project->setModifiedAt(new \DateTime());
     $this->save($account->getUsername(), $account->getTranslations());
     return $this;
 }