/** * Replace a field value by it's localization. * * @param $field_name * @param $field_value * * @return mixed */ public static function get_field_value_localization($field_name, $field_value, $language) { $value = $field_value; if (WpSolrSchema::_FIELD_NAME_TYPE === $field_name && null === self::$fields_items_labels[$field_name]) { // Init the items labels once, only for field WpSolrSchema::_FIELD_NAME_TYPE self::$fields_items_labels = WPSOLR_Global::getOption()->get_facets_items_labels(); } if (WpSolrSchema::_FIELD_NAME_TYPE === $field_name && !empty(self::$fields_items_labels[$field_name])) { if (!empty(self::$fields_items_labels[$field_name][$field_value])) { $value = apply_filters(WpSolrFilters::WPSOLR_FILTER_TRANSLATION_STRING, $field_value, array('domain' => WPSOLR_Option::TRANSLATION_DOMAIN_FACET_LABEL, 'name' => $field_value, 'text' => $field_value, 'language' => $language)); } if ($value === $field_value) { // No translation for this value, try to get the localization instead. $value = !empty(self::$fields_items_labels[$field_name][$field_value]) ? self::$fields_items_labels[$field_name][$field_value] : $field_value; } } return $value; }