SimpleSAML\Locale\Translate::getPreferredTranslation PHP Method

getPreferredTranslation() public method

Retrieve the preferred translation of a given text.
public getPreferredTranslation ( array $translations ) : string
$translations array The translations, as an associative array with language => text mappings.
return string The preferred translation.
    public function getPreferredTranslation($translations)
    {
        assert('is_array($translations)');
        // look up translation of tag in the selected language
        $selected_language = $this->language->getLanguage();
        if (array_key_exists($selected_language, $translations)) {
            return $translations[$selected_language];
        }
        // look up translation of tag in the default language
        $default_language = $this->language->getDefaultLanguage();
        if (array_key_exists($default_language, $translations)) {
            return $translations[$default_language];
        }
        // check for english translation
        if (array_key_exists('en', $translations)) {
            return $translations['en'];
        }
        // pick the first translation available
        if (count($translations) > 0) {
            $languages = array_keys($translations);
            return $translations[$languages[0]];
        }
        // we don't have anything to return
        throw new \Exception('Nothing to return from translation.');
    }

Usage Example

Example #1
0
 /**
  * Temporary wrapper for SimpleSAML\Locale\Translate::getPreferredTranslation().
  *
  * @deprecated This method will be removed in SSP 2.0. Please use
  * SimpleSAML\Locale\Translate::getPreferredTranslation() instead.
  */
 public function getTranslation($translations)
 {
     return $this->translator->getPreferredTranslation($translations);
 }