For those of you using WordPress that would like a non-intrusive simple way to add qTranslate support to your Contact Form 7 contact forms, here’s a simple snippet you can insert into functions.php:
// Add qTranslate support to contact form 7
add_filter('wpcf7_form_elements', 'rl_wpcf7_form_elements');
function rl_wpcf7_form_elements($content){
if(function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')){
return qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($content);
}
}
add_filter('wpcf7_form_class_attr', 'rl_wpcf7_form_class_attr');
function rl_wpcf7_form_class_attr($content){
if(function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')){
return qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($content);
}
}
add_filter('wpcf7_display_message', 'rl_wpcf7_display_message');
function rl_wpcf7_display_message($content){
// Split up our translations into an array
$contentarray = explode('', $content);
foreach($contentarray as $k=>$c){
// Reset the array keys with the language code
$newkey = substr($c, 5, 2);
$contentarray[$newkey] = str_replace('', '', $c);
unset($contentarray[$k]);
}
unset($contentarray[0]);
$url = str_replace($_SERVER['HTTP_ORIGIN'], '', $_SERVER['HTTP_REFERER']);
$url = substr($url, 1, 2);
// Return translated value, otherwise return english
if(isset($contentarray[$url])){
return $contentarray[$url];
}else{
return $contentarray['en'];
}
}This allows you to create multiple contact forms (one for each language) and use different shortcode for each tab created by qTranslate in your TinyMCE editor.