--- a/sites/all/modules/metatag/metatag_views/metatag_views.module +++ b/sites/all/modules/metatag/metatag_views/metatag_views.module @@ -60,6 +60,9 @@ function metatag_views_page_alter(&$page) { $view = views_get_page_view(); // Check if Views metatags are enabled. if (!empty($view) && metatag_config_is_enabled('view')) { + + global $language; + // The following is taken from views_get_page_view(). // If a module is still putting in the display like we used to, catch that. if (is_subclass_of($view, 'views_plugin_display')) { @@ -71,18 +74,39 @@ function metatag_views_page_alter(&$page) { return; } + // Include only view name by default. + $instance = 'view:' . $view->name; + + // Include display name if option is overridden. + if (!$view->display_handler->is_defaulted('metatags')) { + $instance = 'view:' . $view->name . ':' . $view->current_display; + } + // Load the meta tags for this view. if (metatag_views_views_display_has_metatags($view->display_handler)) { $saved_metatags = $view->display_handler->get_option('metatags'); $metatags = array(); if (!empty($saved_metatags)) { $metatags[LANGUAGE_NONE] = $saved_metatags; + $translated_metatags = array(); + $saved_metatags = $view->display_handler->get_option('metatags'); + foreach ($saved_metatags as $field => $value) { + $name = "metatag:" . $instance . ":" . $field; + if (!empty( $value['value']) && is_string( $value['value']) && is_string($name)) { + $translated_metatags[$field] = array( + 'value' => i18n_string_translate($name, $value['value']), + ); + } + } + $metatags[$language->language] = $translated_metatags; } // Build options for meta tag rendering. - $instance = 'view:' . $view->name; + //$instance = 'view:' . $view->name; $options = array(); $options['token data']['view'] = $view; + $options['language'] = $language->language; + --- a/sites/all/modules/metatag/metatag_views/metatag_views_plugin_display_extender_metatags.inc +++ b/sites/all/modules/metatag/metatag_views/metatag_views_plugin_display_extender_metatags.inc @@ -47,6 +47,24 @@ class metatag_views_plugin_display_extender_metatags extends views_plugin_displa $metatags = $form_state['values']['metatags']; metatag_filter_values_from_defaults($metatags); $this->display->set_option('metatags', $metatags); + + + if ($this->definition['enabled'] && function_exists('i18n_string_update')) { + // Include only view name by default. + $instance = 'view:' . $this->view->name; + + // Include display name if option is overridden. + if (!$this->display->is_defaulted('metatags')) { + $instance = 'view:' . $this->view->name . ':' . $this->view->current_display; + } + + foreach ($metatags as $field => $item) { + $name = "metatag:" . $instance . ":" . $field; + if (!empty( $item['value']) && is_string( $item['value']) && is_string($name)) { + i18n_string_update($name, $item['value']); + } + } + } } }