/**
  * {@inheritdoc}
  */
 private function getTemplates($name)
 {
     $posA = strrpos($name, ':');
     $posB = strrpos($name, '/');
     $posC = strrpos($name, '/');
     $b = $this->siteContext->getCurrentBrandingName();
     $l = $this->siteContext->getCurrentLocale();
     if ($posA === false && $posB === false && $posC === false) {
         $prefix = '';
         $suffix = '/' . $name;
     } else {
         $pos = max($posA, $posB, $posC);
         $prefix = substr($name, 0, $pos + 1);
         $suffix = '/' . substr($name, $pos + 1);
     }
     return array($prefix . '_' . $b . '_' . $l . '' . $suffix, $prefix . '_' . $b . '_' . $suffix, $prefix . '__' . $l . '' . $suffix, $name);
 }
 /**
  * {@inheritdoc}
  */
 public function generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH)
 {
     if (isset($parameters['_branding'])) {
         $branding = $parameters['_branding'];
         unset($parameters['_branding']);
     } else {
         $branding = $this->getSiteContext()->getCurrentBrandingName();
     }
     if (isset($parameters['_locale'])) {
         $locale = $parameters['_locale'];
         unset($parameters['_locale']);
     } else {
         $locale = $this->siteContext->getCurrentLocale();
     }
     if (null !== $branding && null !== $locale) {
         $multisiteName = self::ROUTE_PREFIX . '_' . $branding . '_' . $locale . '__' . $name;
         try {
             return parent::generate($multisiteName, $parameters, $referenceType);
         } catch (RouteNotFoundException $e) {
             // fallback to default behavior
         }
     }
     return parent::generate($name, $parameters, $referenceType);
 }