When creating a term under a language-specific vocabulary, the term is not saved with that vocabulary's language as we would expect. The term form properly informs the user that "The vocabulary already has a language", but saves the new term in the database with an empty language field.

To fix this, replace the code below (from function i18n_taxonomy_form_term()):

  // If vocabulary has language, this should be the one for the term
  if ($vocabulary->language) {
    $edit['language'] = $vocabulary->language;
    $output = form_item(t('Language'),$languages[$vocabulary->language],t('The vocabulary already has a language.'));
  } 

... with the following:

  // If vocabulary has language, this should be the one for the term
  if ($vocabulary->language) {
    $output = form_hidden('language', $vocabulary->language);
    $output .= form_item(t('Language'),$languages[$vocabulary->language],t('The vocabulary already has a language.'));
  } 

Comments

jose reyero’s picture

Status: Active » Fixed
Anonymous’s picture

Status: Fixed » Closed (fixed)