示例#1
0
 public function getLocalePath(Locale $locale, Request $request)
 {
     $arrPath = explode('/', ltrim($request->getPathInfo(), '/'));
     if (in_array($arrPath[0], $this->manager->getAllAliases())) {
         unset($arrPath[0]);
     }
     $resultUrl = '/' . implode('/', $arrPath);
     if (!$this->manager->getIgnoreDefaultLocaleFlag() || $locale->getAlias() != $this->manager->getDefaultLocaleAlias()) {
         $resultUrl = '/' . $locale->getAlias() . $resultUrl;
     }
     return $resultUrl;
 }
示例#2
0
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $data = [['English', 'en', true], ['Русский', 'ru', true], ['中文简体', 'zh', false], ['中文繁體', 'tw', false], ['Indonesia', 'id', false], ['Melayu', 'ms', false], ['Italian', 'it', false], ['Español', 'es', false], ['Português', 'pt', false], ['Polish', 'pl', false], ['Deutsch', 'de', false], ['Suomi', 'fi', false], ['Norsk', 'no', false], ['Svenska', 'sv', false], ['Dansk', 'da', false], ['Nederlands', 'nl', false], ['हिंदी', 'hi', false], ['اللغة العربية', 'ar', false], ['Українська', 'ua', false], ['ภาษาไทย', 'th', false], ['Français', 'fr', false]];
     foreach ($data as $position => $item) {
         list($name, $alias, $state) = $item;
         $locale = new Locale();
         $locale->setName($name);
         $locale->setAlias($alias);
         $locale->setState($state);
         $manager->persist($locale);
     }
     $manager->flush();
 }
示例#3
0
 /**
  * @param $transFile
  * @param $resourceDirs
  * @param $locale
  * @param $loader
  * @param $globalCatalogue
  * @return MessageCatalogue
  */
 protected function merge($transFile, &$resourceDirs, Locale $locale, TranslationLoader $loader, $globalCatalogue)
 {
     $transFileDir = dirname($transFile);
     if (!in_array($transFileDir, $resourceDirs) && '.' != $transFileDir) {
         $resourceDirs[] = $transFileDir;
         $currentCatalogue = new MessageCatalogue($locale->getAlias());
         $loader->loadMessages($transFileDir, $currentCatalogue);
         $operation = new MergeOperation($globalCatalogue, $currentCatalogue);
         $globalCatalogue = $operation->getResult();
         return $globalCatalogue;
     }
     return $globalCatalogue;
 }
示例#4
0
 public function sortLocales(Locale $a, Locale $b)
 {
     if (in_array($a->getAlias(), $this->getLocalesAlias()) && in_array($b->getAlias(), $this->getLocalesAlias())) {
         if ($a->getPosition() == $b->getPosition()) {
             $result = 0;
         } else {
             $result = $a->getPosition() < $b->getPosition() ? -1 : 1;
         }
     } else {
         if (in_array($a->getAlias(), $this->getLocalesAlias())) {
             $result = -1;
         } elseif (in_array($b->getAlias(), $this->getLocalesAlias())) {
             $result = 1;
         } else {
             if ($a->getPosition() == $b->getPosition()) {
                 $result = 0;
             } else {
                 $result = $a->getPosition() < $b->getPosition() ? -1 : 1;
             }
         }
     }
     return $result;
 }