WPML
Estado
Resuelto por el autor
Resuelto en
MapPress 2.95.7
Plugin/tema relacionado
MapPress Maps for WordPress
Etiquetas de temática
Compatibility

Resumen del problema

Al usar MapPress con WPML, es posible que los puntos de interés (POI), como las ciudades guardadas en un mapa, no se traduzcan. Esto se debe a que las cadenas de los POI se almacenan según el idioma utilizado durante su creación y no están disponibles automáticamente para su traducción.

Solución alternativa

Por favor, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.


  • Añada el siguiente código al archivo functions.php de su tema.
    // WPML Workaround for compsupp-4265: Translate Mappress POI fields
    if ( class_exists('Sitepress') ) { 
    
    	add_action('mappress_map_save', 'my_mappress_register_poi_strings');
    	function my_mappress_register_poi_strings($map) {
    
    		$fields = array('address','title','name','body');
    		if (empty($map->mapid) || empty($map->pois) || !is_array($map->pois))
    			return;
    
    		foreach ($map->pois as $i => $poi) {
    			foreach ($fields as $field) {
    				if (isset($poi->$field) && $poi->$field !== '') {
    					$key = "map_{$map->mapid}_poi_{$i}_{$field}";
    					do_action( 'wpml_register_single_string','mappress', $key, $poi->$field );
    				}
    			}
    		}
    	}
    
    	add_action('mappress_map_display', 'my_mappress_translate_poi_fields');
    	function my_mappress_translate_poi_fields($map) {
    
    		$fields = array('address','title','name','body');
    		if (empty($map->mapid) || empty($map->pois) || !is_array($map->pois))
    			return;
    
    		foreach ($map->pois as $i => $poi) {
    			foreach ($fields as $field) {
    				if (isset($poi->$field) && $poi->$field !== '') {
    					$key = "map_{$map->mapid}_poi_{$i}_{$field}";
    					$translated = apply_filters('wpml_translate_single_string', $poi->$field, 'mappress', $key);
    					$poi->$field = $translated;
    				}
    			}
    		}
    	}
    	
    }
            


  • Vuelva a guardar sus mapas en «MapPress > Maps».

  • Vaya a «WPML > Traducción de cadenas» y traduzca las cadenas bajo el dominio ‘mappress’

Todos los problemas conocidos →