You have to return
the data in the qtrans function:
function qtrans_generateLanguageListCode($id='') {
global $q_config;
if (is_404()) $url = get_option('home'); else $url="";
if ('' === $id) $id = 'qtranslate';
$id .= '-chooser';
$output="";
foreach (qtrans_getSortedLanguages() as $language) {
$classes = array('lang-'.$language);
if($language == $q_config['language'])
$classes[] = 'active';
$output .= '<li class="'. implode(' ', $classes) .'"><a href="'.qtrans_convertURL($url, $language).'"';
// set hreflang
$output .= ' hreflang="'.$language.'" title="'.$q_config['language_name'][$language].'"';
$output .= ' class="qtrans_flag qtrans_flag_'.$language.'"';
$output .= '><span';
$output .= ' style="display:none"';
$output .= '>'.$q_config['language_name'][$language].'</span></a></li>';
}
return $output;
}
function new_nav_menu_items($items) {
$translinks = qtrans_generateLanguageListCode();
$items = $items . $translinks;
return $items;
}
add_filter( 'wp_nav_menu_items', 'new_nav_menu_items' );