Пример #1
0
 protected function createComponentFormAddTranslation()
 {
     $form = new Form();
     $langs = Intl::getLocaleBundle()->getLocaleNames();
     $filtered = [];
     foreach ($langs as $locale => $name) {
         try {
             $lang = substr($locale, 0, -strlen(strrchr($locale, '_')));
             \Bazo\Translation\Langs::getPluralRule($lang);
             $filtered[$locale] = $name;
         } catch (\InvalidArgumentException $ex) {
         }
     }
     $form->addSelect('lang', 'Language', $filtered);
     $form->addSubmit('btnSubmit', 'Create');
     $form->onSuccess[] = callback($this, 'formAddTranslationSubmitted');
     return $form;
 }
Пример #2
0
 public function createTranslation(\Project $project, $locale)
 {
     $translation = new \Translation();
     $lang = substr($locale, 0, 2);
     $pluralRule = Langs::getPluralRule($lang);
     $pluralsCount = Langs::getPluralsCount($lang);
     $plurals = $this->getPlurals($locale, $pluralsCount);
     $language = \Symfony\Component\Intl\Intl::getLocaleBundle()->getLocaleName($locale);
     $translation->setLang($lang)->setLocale($locale)->setLanguage($language)->setProject($project)->setPluralRule($pluralRule)->setPluralsCount($pluralsCount)->setPluralNumbers($plurals);
     $translations = $this->prepareTranslationsArray($pluralsCount);
     foreach ($project->getTemplateMessages() as $messageData) {
         $message = $this->prepareMessage($messageData, $translations, $pluralsCount);
         $messageId = $message->getContext() . '.' . $message->getSingular();
         $translation->addMessage($messageId, $message);
         $message->setTranslation($translation);
         $this->dm->persist($message);
     }
     $project->addTranslation($translation);
     $this->dm->persist($translation);
     $this->dm->persist($project);
     $this->dm->flush();
     return $translation;
 }