добрый день, товарищи! Жду помощи.
Написал модуль формы простенький код можно посмотреть тут- http://www.drupal.ru/node/91392
Translate Interface ни в какую не видит t() функции.
Кэш чистил модуль врубал-вырубал удалял ставил, ничего не помогает, как быть?
Не прописывать же язык снипетами)
Комментарии
Каккой смысл проверять наличие значений в функции валидации, если эти элементы и так '#required' => TRUE ?
Условия в функции валидации не "срабатывают", следовательно функция t() не отрабатывает.
учту это в коде, но не находит и t("Your name") и t("Email"), а так же t("SEND").
Они то отрабатываются.
Файлы самописного модуля в какой кодировке?
была ANSI поменял на UTF-8 покачто результата нет
Простейший способ "отловить" ошибку, пройтись при помощи отладчика по коду..
Я для подобного пользуюсь Netbeans + xdebug: бесплатно, кроссплатформенно, хорошо продокументировано(гугл об это знает практически все)..
Есть мнение, не надо вместо placeholder юзать default_value.
Надписи в англ. варианте появились хоть раз? Не находит их стандартный интерфейс поиска, или l10n_client?
надписи появлялись много раз, не находит стандартный интерфейс, i10n_client не юзал.
на счёт placeholder - у кнопки SEND value прописанно, тоже не видит)
кстати как в FormsAPI прописать placeholder. там вроде бы такова атрибута не прудусмотренно
Это очень странно, возможно надо шире смотреть, в контексте генерации формы. Ни разу не сталкивался.
Через #attributes.
Приделал пока что такой костыль))) а то горит уже закончить проект, надеюсь со временем строки подцепятся и уберу этот огород...
На прошлом проекте тож самое было потом вдруг внезапно строчки появились.
Надеюсь проблемы с кодировкой нигде не вылезут.
<?php
$bugname = "";
$form['name'] = array(
global $user, $language;
$bugemail = "";
$bugsend = "";
if ($language->language == "en") {
$bugname = t('Your name');
$bugsend = t('SEND');
}
if (
$language->language == "ru") {$bugname = "Ваше имя";
$bugsend = "ОТПРАВИТЬ";
}
'#type' => 'textfield',
'#default_value' => $bugname,
'#maxlength' => 255,
'#required' => TRUE,
);
?>
вот так форма выводится аяксом
<?phpfunction myfeedback_menu() {
$items = array();
$items['ajax_link_callback'] = array(
'page callback' => 'ajax_link_response',
'access callback' => 'user_access',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function ajax_link_response($type = 'ajax') {
global $language;
$bugwrite = "";
if ($language->language == "en") {
$bugwrite = t('WRITE US A LETTER');
}
if ($language->language == "ru") {
$bugwrite = "НАПИШИТЕ НАМ ПИСЬМО";
}
$form = drupal_get_form('myfeedback_form');
if ($type == 'ajax') {
$output = drupal_render($form);
$commands = array();
$commands[] = ajax_command_append('.region-feedback', $output);
$commands[] = ajax_command_prepend('#myfeedback-form', '<div class="write">' .$bugwrite. '</div>');
$commands[] = myfeedback_ajax_command_feedbackShow();
$page = array('#type' => 'ajax', '#commands' => $commands);
ajax_deliver($page);
}
else {
return $form;
}
}
?>