Bundesland übersetzen

Bei mehrsprachigen Exporten wird bei manchen Anbietern aus Kompatibilitätsgründen ein @-Sprachcode an das Bundesland angehangen.

Beim Import kann diese Bundesland-Angabe mit einer Filterfunktion übersetzt werden.

/**
 * Bundesland-Angabe statisch übersetzen (unabhängig von WPML oder Polylang).
 */
function mysite_translate_state( $value, $immobilie, $mapping, $post_id ) {
  global $immonex_openimmo2wp;
  // Übersetzung auf Bundesland-Angaben beschränken.
  if ( ! 'geo->bundesland' === $mapping['source'] || ! isset( $immonex_openimmo2wp ) ) return $element_value;
  $translations = array(
    'it' => array(
      'Name DE 1' => 'Name IT 1',
      'Name DE 2' => 'Name IT 2',
      'Name DE 3' => 'Name IT 3'
      //...
    )
  );
  if ( isset( $translations[$immonex_openimmo2wp->current_import_language][$value] ) ) {
    // Übersetzung in aktueller Objektsprache vorhanden: Angabe übernehmen.
    $value = $translations[$immonex_openimmo2wp->current_import_language][$value];
  }
  return $value;
}
add_filter( 'immonex_oi2wp_add_property_taxonomy_term', 'mysite_translate_state', 10, 4 );

Wenn die Sprachcodes bei den Bundesländern in Ihrer WP-Installation auch im Frontend angezeigt werden sollten und es nur darum geht, diese auszublenden, kann das mit dieser Filterfunktion bewerkstelligt werden:

/**
 * Sprachcodes aus Taxonomie-Terms entfernen.
 */
function mysite_strip_language_tags( $term, $taxonomy ) {
  if (
    ! is_admin() &&
    is_object( $term ) &&
    false !== strpos( $term->name, '@' )
  ) {
    $term->name = trim( substr( $term->name, 0, strpos( $term->name, '@' ) ) );
  }
  return $term;
}
add_filter( 'get_term', 'mysite_strip_language_tags', 20, 2 );