get_strings(array('empty' => TRUE)); drupal_set_title(t('Translate to @language', array('@language' => i18n_language_name($langcode)))); // For each string object, objectid = display return drupal_get_form('i18nviews_translate_page_form', $view, $strings, $langcode); } /** * Form builder callback for in-place string translation. */ function i18nviews_translate_page_form($form, &$form_state, $view, $strings, $langcode) { // Group strings by display $groups = array(); foreach ($strings as $key => $i18nstring) { $groups[$i18nstring->objectid][$key] = $i18nstring; } // The base form adds proper validation and submit callbacks $form = i18n_string_translate_page_form_base($form, $langcode); // Build the form with one vertical tab per display $form['display'] = array( '#type' => 'vertical_tabs', ); foreach ($groups as $display_id => $display_strings) { $form['groups'][$display_id] = array( '#type' => 'fieldset', '#title' => views_ui_get_display_label($view, $display_id), '#collapsible' => TRUE, '#collapsed' => TRUE, '#group' => 'display', ); $form['groups'][$display_id]['strings'] = i18n_string_translate_page_form_strings($display_strings, $langcode); } $form['submit']['#weight'] = 1; $form['#submit'][] = 'i18nviews_translate_page_form_submit'; return $form; } /** * Form submit callback for i18nviews_translate_page_form. */ function i18nviews_translate_page_form_submit($form, $form_state) { views_invalidate_cache(); }