You are here

function bynder_get_applicable_label_translation in Bynder 8

Same name and namespace in other branches
  1. 8.3 bynder.module \bynder_get_applicable_label_translation()
  2. 8.2 bynder.module \bynder_get_applicable_label_translation()
  3. 4.0.x bynder.module \bynder_get_applicable_label_translation()

Returns most appropriate label for option.

Parameters

array $option: The property array from Bynder.

Return value

string Returns translated label for the current language if available or the default label.

3 calls to bynder_get_applicable_label_translation()
BynderConfigurationForm::buildForm in src/Form/BynderConfigurationForm.php
Form constructor.
BynderSearch::buildConfigurationForm in src/Plugin/EntityBrowser/Widget/BynderSearch.php
BynderSearch::getForm in src/Plugin/EntityBrowser/Widget/BynderSearch.php

File

./bynder.module, line 151
Provides bynder integration.

Code

function bynder_get_applicable_label_translation(array $option) {
  $current_language_id = \Drupal::languageManager()
    ->getCurrentLanguage()
    ->getId();
  $available_label_translations = [];
  if (isset($option['labels'])) {
    foreach ($option['labels'] as $langcode => $label) {

      // Drupal doesn't differentiate by default en_US and en_GB. Here if we
      // first get en_US and then en_GB we return the value from en_GB for the
      // English language. If we get the reverse order the reverse is true.
      $available_label_translations[substr($langcode, 0, 2)] = $label;
    }
  }
  if (array_key_exists($current_language_id, $available_label_translations)) {
    return $available_label_translations[$current_language_id];
  }
  return $option['label'];
}