function i18n_taxonomy_translation_term_form_submit in Internationalization 7
Form callback: Process vocabulary translation form.
File
- i18n_taxonomy/
i18n_taxonomy.admin.inc, line 121 - Helper functions for taxonomy administration.
Code
function i18n_taxonomy_translation_term_form_submit($form, &$form_state) {
$translation_set = $form_state['values']['translation_set'];
$vocabulary = $form_state['values']['vocabulary'];
switch ($form_state['values']['op']) {
case t('Save'):
$term_translations = array_filter($form_state['values']['translations']);
foreach ($term_translations as $lang => $lang_terms) {
$item = reset($lang_terms);
if ($item['tid'] == 'autocreate') {
$term = (object) $item;
unset($term->tid);
taxonomy_term_save($term);
}
else {
$term = (object) $item;
}
$translations[$lang] = $term;
}
if (!empty($form_state['values']['source_term'])) {
$term = $form_state['values']['source_term'];
$translations[$term->language] = $term;
}
if (!empty($translations)) {
$translation_set = $translation_set ? $translation_set : i18n_translation_set_create('taxonomy_term', $vocabulary->machine_name);
$translation_set
->reset_translations($translations)
->save(TRUE);
drupal_set_message(t('Term translations have been updated.'));
}
else {
drupal_set_message(t('There are no translations to be saved.'), 'error');
}
break;
case t('Delete'):
$translation_set
->delete(TRUE);
drupal_set_message(t('The term translation has been deleted.'));
$form_state['redirect'] = 'admin/structure/taxonomy/' . $form_state['values']['vocabulary']->machine_name . '/translation';
break;
}
}