示例#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
 /**
  * @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;
 }
示例#3
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;
 }