You are here

class LingotekSupportedLocalesController in Lingotek Translation 3.8.x

Same name and namespace in other branches
  1. 8.2 src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController
  2. 4.0.x src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController
  3. 3.0.x src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController
  4. 3.1.x src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController
  5. 3.2.x src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController
  6. 3.3.x src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController
  7. 3.4.x src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController
  8. 3.5.x src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController
  9. 3.6.x src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController
  10. 3.7.x src/Controller/LingotekSupportedLocalesController.php \Drupal\lingotek\Controller\LingotekSupportedLocalesController

Hierarchy

Expanded class hierarchy of LingotekSupportedLocalesController

1 file declares its use of LingotekSupportedLocalesController
LingotekSupportedLocalesControllerTest.php in tests/src/Unit/Controller/LingotekSupportedLocalesControllerTest.php

File

src/Controller/LingotekSupportedLocalesController.php, line 10

Namespace

Drupal\lingotek\Controller
View source
class LingotekSupportedLocalesController extends LingotekControllerBase {
  public function content() {
    $locales = $this->lingotek
      ->getLocalesInfo();
    ksort($locales);
    $build = [];
    $build['#attached']['library'][] = 'lingotek/lingotek.locales_listing';
    $build['filters'] = [
      '#type' => 'container',
      '#attributes' => [
        'class' => [
          'table-filter',
          'js-show',
        ],
      ],
    ];
    $build['filters']['text'] = [
      '#type' => 'search',
      '#title' => $this
        ->t('Filter'),
      '#title_display' => 'invisible',
      '#size' => 60,
      '#placeholder' => $this
        ->t('Filter per language, locale, or country'),
      '#attributes' => [
        'class' => [
          'locales-filter-text',
        ],
        'data-table' => '.locales-listing-table',
        'autocomplete' => 'off',
        'title' => $this
          ->t('Enter a code or name of any language, locale, or country to filter by.'),
      ],
    ];
    $build['locales'] = [
      '#type' => 'table',
      '#header' => [
        'code' => $this
          ->t('Code'),
        'language_code' => $this
          ->t('Language Code'),
        'title' => $this
          ->t('Title'),
        'language' => $this
          ->t('Language'),
        'country_code' => $this
          ->t('Country Code'),
        'country' => $this
          ->t('Country'),
      ],
      '#rows' => $locales,
      '#attributes' => [
        'class' => [
          'locales-listing-table',
        ],
      ],
    ];
    return $build;
  }

  /**
   * Callback for the autocomplete of supported locales.
   *
   * @param \Symfony\Component\HttpFoundation\Request $request
   *   The request.
   *
   * @return \Symfony\Component\HttpFoundation\JsonResponse
   *   A JSON response containing the autocomplete suggestions.
   */
  public function autocomplete(Request $request) {

    // Get autocomplete query.
    $q = $request->query
      ->get('q') ?: '';
    if ($q == '') {
      return new JsonResponse([]);
    }
    $locales = $this->lingotek
      ->getLocalesInfo();
    ksort($locales);
    $matches = [];
    foreach ($locales as $locale => $locale_info) {
      $fieldsToSearch = [
        'code' => $this
          ->t('Code'),
        'language_code' => $this
          ->t('Language Code'),
        // 'title' => $this->t('Title'),
        // 'language' => $this->t('Language'),
        'country_code' => $this
          ->t('Country Code'),
      ];
      foreach ($fieldsToSearch as $field => $fieldDescription) {
        if (stripos($locale_info[$field], $q) !== FALSE) {
          $matches[] = [
            'value' => $locale,
            'label' => new FormattableMarkup('@title (@code) [matched: @match: %value]', [
              '@title' => Html::escape($locale_info['title']),
              '@code' => Html::escape($locale_info['code']),
              '@match' => Html::escape($fieldDescription),
              '%value' => Html::escape($locale_info[$field]),
            ]),
          ];
          continue 2;
        }
      }
    }
    return new JsonResponse($matches);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ControllerBase::$currentUser protected property The current user service. 1
ControllerBase::$entityFormBuilder protected property The entity form builder.
ControllerBase::$entityTypeManager protected property The entity type manager.
ControllerBase::$keyValue protected property The key-value storage. 1
ControllerBase::$languageManager protected property The language manager. 1
ControllerBase::$moduleHandler protected property The module handler. 2
ControllerBase::$stateService protected property The state service.
ControllerBase::cache protected function Returns the requested cache bin.
ControllerBase::config protected function Retrieves a configuration object.
ControllerBase::container private function Returns the service container.
ControllerBase::currentUser protected function Returns the current user. 1
ControllerBase::entityFormBuilder protected function Retrieves the entity form builder.
ControllerBase::entityTypeManager protected function Retrieves the entity type manager.
ControllerBase::formBuilder protected function Returns the form builder service. 2
ControllerBase::keyValue protected function Returns a key/value storage collection. 1
ControllerBase::languageManager protected function Returns the language manager service. 1
ControllerBase::moduleHandler protected function Returns the module handler. 2
ControllerBase::redirect protected function Returns a redirect response object for the specified route.
ControllerBase::state protected function Returns the state storage service.
LingotekControllerBase::$configFactory protected property The config factory. Overrides ControllerBase::$configFactory
LingotekControllerBase::$formBuilder protected property The form builder. Overrides ControllerBase::$formBuilder
LingotekControllerBase::$languageLocaleMapper protected property The language-locale mapper.
LingotekControllerBase::$logger protected property A logger instance.
LingotekControllerBase::$request protected property A Symfony request instance
LingotekControllerBase::connected public function Checks if site is connected to Lingotek.
LingotekControllerBase::create public static function Instantiates a new instance of this class. Overrides ControllerBase::create 6
LingotekControllerBase::__construct public function Constructs a LingotekControllerBase object. 6
LingotekSetupTrait::$lingotek protected property A lingotek connector object
LingotekSetupTrait::checkSetup protected function Verify the Lingotek Translation module has been properly initialized.
LingotekSetupTrait::setupCompleted public function Checks if Lingotek module is completely set up.
LingotekSupportedLocalesController::autocomplete public function Callback for the autocomplete of supported locales.
LingotekSupportedLocalesController::content public function
LoggerChannelTrait::$loggerFactory protected property The logger channel factory service.
LoggerChannelTrait::getLogger protected function Gets the logger for a specific channel.
LoggerChannelTrait::setLoggerFactory public function Injects the logger channel factory.
MessengerTrait::$messenger protected property The messenger. 27
MessengerTrait::messenger public function Gets the messenger. 27
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
StringTranslationTrait::$stringTranslation protected property The string translation service. 4
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.