/** * Returns an array of route objects. * * @return \Symfony\Component\Routing\Route[] * An array of route objects. */ public function routes() { $routes = array(); $is_multilingual = $this->languageManager->isMultilingual(); /* @var $search_api_page \Drupal\search_api_page\SearchApiPageInterface */ foreach ($this->entityManager->getStorage('search_api_page')->loadMultiple() as $search_api_page) { // Default path. $default_path = $search_api_page->getPath(); // Loop over all languages so we can get the translated path (if any). foreach ($this->languageManager->getLanguages() as $language) { // Check if we are multilingual or not. if ($is_multilingual) { $path = $this->languageManager->getLanguageConfigOverride($language->getId(), 'search_api_page.search_api_page.' . $search_api_page->id())->get('path'); } if (empty($path)) { $path = $default_path; } $args = ['_controller' => 'Drupal\\search_api_page\\Controller\\SearchApiPageController::page', 'search_api_page_name' => $search_api_page->id()]; // Use clean urls or not. if ($search_api_page->getCleanUrl()) { $path .= '/{keys}'; $args['keys'] = ''; } $routes['search_api_page.' . $language->getId() . '.' . $search_api_page->id()] = new Route($path, $args, array('_permission' => 'view search api pages')); } } return $routes; }
/** * {@inheritdoc} */ public function import(Row $row, array $old_destination_id_values = array()) { if ($row->hasDestinationProperty('langcode')) { $this->config = $this->language_manager->getLanguageConfigOverride($row->getDestinationProperty('langcode'), $this->config->getName()); } foreach ($row->getRawDestination() as $key => $value) { if (isset($value) || !empty($this->configuration['store null'])) { $this->config->set(str_replace(Row::PROPERTY_SEPARATOR, '.', $key), $value); } } $this->config->save(); return [$this->config->getName()]; }
/** * {@inheritdoc} */ public function importTranslations(array $langcodes) { $available_translations = $this->getAvailableTranslations(); $available_translations = array_intersect_key($available_translations, array_flip($langcodes)); foreach ($available_translations as $langcode => $country_codes) { $address_formats = $this->storage->loadMultiple($country_codes); foreach ($address_formats as $country_code => $address_format) { $external_translation = $this->externalRepository->get($country_code, $langcode); $config_name = $address_format->getConfigDependencyName(); $config_translation = $this->languageManager->getLanguageConfigOverride($langcode, $config_name); $config_translation->set('format', $external_translation->getFormat()); $config_translation->save(); } } }
/** * Imports translations for the given currency entity. * * @param \Drupal\commerce_price\Entity\CurrencyInterface $currency * The currency entity. * @param array $langcodes * The langcodes. */ protected function importEntityTranslations(CurrencyInterface $currency, array $langcodes) { $currencyCode = $currency->getCurrencyCode(); $configName = $currency->getConfigDependencyName(); foreach ($langcodes as $langcode) { try { $translatedCurrency = $this->externalRepository->get($currencyCode, $langcode); } catch (UnknownLocaleException $e) { // No translation found. continue; } $configTranslation = $this->languageManager->getLanguageConfigOverride($langcode, $configName); if ($configTranslation->isNew()) { $configTranslation->set('name', $translatedCurrency->getName()); $configTranslation->set('symbol', $translatedCurrency->getSymbol()); $configTranslation->save(); } } }