- الحالة
- محلولة بواسطة المطور
- تم حلها في
- MapPress 2.95.7
- الإضافة/القالب ذو الصلة
- MapPress Maps for WordPress
- وسوم الموضوع
- Compatibility
نظرة عامة على المشكلة
عند استخدام MapPress مع WPML، قد تلاحظ أن نقاط الاهتمام (POI) مثل المدن المحفوظة على خريطة لا تُترجم. يرجع ذلك إلى أن سلاسل POI تُحفظ بناءً على اللغة المستخدمة أثناء إنشائها ولا تتوفر تلقائيًا للترجمة.
حل بديل مؤقت
يُرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.
- أضف الكود التالي إلى ملف functions.php في قالبك.
// 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; } } } } } - أعد حفظ خرائطك في «MapPress > Maps».
- اذهب إلى «WPML > ترجمة النصوص» وترجم السلاسل ضمن النطاق «mappress»