WPML
Status
Resolvido pelo autor
Resolvido em
MapPress 2.95.7
Plugin/tema relacionado
MapPress Maps for WordPress
Tags de tópico
Compatibility

Visão geral do problema

Ao usar o MapPress com o WPML, você pode notar que os Pontos de Interesse (POI), como cidades salvas em um mapa, não são traduzidos. Isso acontece porque as strings de POI são armazenadas com base no idioma usado durante sua criação e não ficam automaticamente disponíveis para tradução.

Solução alternativa

Por favor, certifique-se de ter um backup completo do site antes de prosseguir.


  • Adicione o seguinte código ao arquivo functions.php do seu 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;
    				}
    			}
    		}
    	}
    	
    }
            


  • Salve novamente seus mapas em “MapPress > Maps”.

  • Vá para “WPML > Tradução de Strings” e traduza as strings no domínio “mappress”

Todos os problemas conhecidos →