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 );