
Webform е модул с който може да правим формуляри в сайт на Друпал. При мултиезични сайтове е възможно да се ползват преводите на нод за всеки език, като се направи формуляр за всеки език. В някои случаи е по-удобно стринговете на формулярите да са преводими (такива като етикет на полето, стойност по подразбиране за полето, текста на опциите - списък за избор или радиобутони, когато има такива, текста на бутона за запис на формуляра) - така ще имаме само една форма за всички езици. Който е правил форми в мултиезичен сайт вероятно си е мислил за това.
Със следващия код в модул се правят #title, #default_value, #options['value'] и submit['#value'] да се превеждат през admin/config/regional/translate/translate:
/** * Implements hook_form_alter(). */ function HOOK_form_alter(&$form, &$form_state, $form_id) { if (strstr($form_id, 'webform_client_form_')) { //make default value, title, select options value and submit value on //webform translatable by localization foreach ($form['submitted'] AS $key => $component) { if (@$component['#default_value']) { $form['submitted'][$key]['#default_value'] = t($component['#default_value']); } if (@$component['#title']) { $form['submitted'][$key]['#title'] = t($component['#title']); } if (count(@$component['#options'])) { foreach ($component['#options'] AS $opt_key => $opt_val) { $form['submitted'][$key]['#options'][$opt_key] = t($opt_val); } } } $form['actions']['submit']['#value'] = t($form['actions']['submit']['#value']); } }
Category: