Comments 28
я обычно делаю так:
class Form_Base extends Zend_Form {
function init() {
parent::init();
$this->setDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'dl')),
'Form'
));
include 'errors.php';
$translator = new Zend_Translate('array', $errors);
$this->setTranslator($translator);
$this->setEnctype(Zend_Form::ENCTYPE_MULTIPART);
$this->setMethod(Zend_Form::METHOD_POST);
$url = new Zend_View_Helper_Url();
$this->setAction($url->url(array(), 'default'));
}
}
Ну а «настоящие» формы уже наследую от этого класса.
class Form_Base extends Zend_Form {
function init() {
parent::init();
$this->setDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'dl')),
'Form'
));
include 'errors.php';
$translator = new Zend_Translate('array', $errors);
$this->setTranslator($translator);
$this->setEnctype(Zend_Form::ENCTYPE_MULTIPART);
$this->setMethod(Zend_Form::METHOD_POST);
$url = new Zend_View_Helper_Url();
$this->setAction($url->url(array(), 'default'));
}
}
Ну а «настоящие» формы уже наследую от этого класса.
0
Тоже сначала думала сделать в init(), но мне этот вариант не понравился тем, что теперь в любой наследуемой от этой форме обязательно нужно будет в init() вызывать родительский init. Поэтому решила, что удобнее в конструкторе все это сделать.
+1
Zend_Form::setDefaultTranslator($translator);
+4
Пусть меня заминусуют и т.п. за то, что я тут упомяну голосование или карму.
Но я уже вообще не понимаю зачем люди голосуют. Вот зачем? Хоть бы отписывали что плохого в статье. А то — минус просто и все.
Неужели вредную информацию какую-то выложила?
Ну спасибо, скоро просто вообще не смогу ничего публиковать.
Но я уже вообще не понимаю зачем люди голосуют. Вот зачем? Хоть бы отписывали что плохого в статье. А то — минус просто и все.
Неужели вредную информацию какую-то выложила?
Ну спасибо, скоро просто вообще не смогу ничего публиковать.
0
>Но эта ссылка нерабочая.
А почему нерабочая? Я по ней и делал недавно и сейчас зашёл туда.
А почему нерабочая? Я по ней и делал недавно и сейчас зашёл туда.
0
я могу ошибатся но этот кривой метод перевода уже кажется поправили несколько релизов назад.
+1
А какой прямой метод?
0
да. по-моему с 1.6 — deprecated. Надо юзать не константы, а а сами текстовки
0
Не понимаю как какой-то метод решения задачи может быть deprecated, честно скажу… особенно с такой документацией как у Зенда. Ниче ж не поймешь и примеры им лень было писать :(
Насчет текстовок — как по мне то ненадежный абсолютно метод. А если разработчикам захочется переписать текст? Или у них на все 100% гарантия? :)
А где можно найти, что именно этот метод решения данной проблемы правильный?
з.ы.: против Вашего совета ничего не имею :) Спасибо. Просто интересно как правильнее будет сделать и хочу разобраться.
Насчет текстовок — как по мне то ненадежный абсолютно метод. А если разработчикам захочется переписать текст? Или у них на все 100% гарантия? :)
А где можно найти, что именно этот метод решения данной проблемы правильный?
з.ы.: против Вашего совета ничего не имею :) Спасибо. Просто интересно как правильнее будет сделать и хочу разобраться.
0
можно ставить свои сообщения и переводить уже их. или можно еще ключи задавать, например
not_logged = «Вы не авторизовались». Метки удобны для больших кусков текста
not_logged = «Вы не авторизовались». Метки удобны для больших кусков текста
0
У зф помоему лучшая, очень полная документация насыщенная примерами на все случаи жизни.
0
Да, я это уже слышала.
Но у меня такое чувство, что либо я не там смотрю, либо это говорят люди, которые уже и так разбираются в ЗФ.
Вот явный пример:
API Zend_Form_Element
bool $_ignore = false (line 110)
Ignore flag (used when retrieving values at form level)
access: protected
Как понимать «Ignore flag (used when retrieving values at form level)»?? Как используется? Зачем используется?
Побегала я по АПИ туда-сюда и, честно скажу, толку никакого — что есть там описание АПИ, что его нет.
С документацией та же картина. Какой-то пример есть, какого-то нет. Я уже молчу о верстке их сайта — таблицы перекрываются менюшуой — прочитать ничего не возможно.
В общем не знаю… может я где-то не там смотрю, но без 100 грамм там не разобраться…
Может я не умею читать… не знаю… но буквально полдня мне хватило, чтобы разобраться в Doctrine, чтоб она меня заинтересовала, чтоб все было понятно и все работало. Значит какую-то документацию я всетаки читать умею.
Еще вот пример. Может просто чего-то не понимаю.
Zend_Loader::registerAutoload();
Пример оказывается уже нерабочий. Точнее — мне выбрасывается сообщение о том, что такой метод уже depricated с какой-то там версии. Так почему это в документации есть? И не сказано как сделать по-другому. Ну понятно — найти то найду, если надо будет. Но быстро не получилось.
И всяких таких непоняток куча.
Но у меня такое чувство, что либо я не там смотрю, либо это говорят люди, которые уже и так разбираются в ЗФ.
Вот явный пример:
API Zend_Form_Element
bool $_ignore = false (line 110)
Ignore flag (used when retrieving values at form level)
access: protected
Как понимать «Ignore flag (used when retrieving values at form level)»?? Как используется? Зачем используется?
Побегала я по АПИ туда-сюда и, честно скажу, толку никакого — что есть там описание АПИ, что его нет.
С документацией та же картина. Какой-то пример есть, какого-то нет. Я уже молчу о верстке их сайта — таблицы перекрываются менюшуой — прочитать ничего не возможно.
В общем не знаю… может я где-то не там смотрю, но без 100 грамм там не разобраться…
Может я не умею читать… не знаю… но буквально полдня мне хватило, чтобы разобраться в Doctrine, чтоб она меня заинтересовала, чтоб все было понятно и все работало. Значит какую-то документацию я всетаки читать умею.
Еще вот пример. Может просто чего-то не понимаю.
Zend_Loader::registerAutoload();
Пример оказывается уже нерабочий. Точнее — мне выбрасывается сообщение о том, что такой метод уже depricated с какой-то там версии. Так почему это в документации есть? И не сказано как сделать по-другому. Ну понятно — найти то найду, если надо будет. Но быстро не получилось.
И всяких таких непоняток куча.
0
Возможно сказывается что с зф я уже работаю около года и все нововведения понимаются на раз, так как четко соблюдаются конвенции кодирования. Начало насколько я помню было сложное и очень помогла распечатка книги Роба Аллена (копейки стоит, купи)
А сейчас такой документации мне хватает за глаза, если честно апидоку не смотрю соовсем (как то не срослось, люблю побегать по сорцам)
zendframework.com/manual/en/zend.loader.autoloader.html
А сейчас такой документации мне хватает за глаза, если честно апидоку не смотрю соовсем (как то не срослось, люблю побегать по сорцам)
zendframework.com/manual/en/zend.loader.autoloader.html
0
Буду признателен за пример кода с использованием текстовок. Что-то в мане не нашел ничего внятного.
В разделе валидаторов примеры локализации даются с константами :/
В разделе валидаторов примеры локализации даются с константами :/
0
Я все сообщения держу в отдельных файлах, для каждого из языков. Вся локализация в одном месте. Язык определяется по поддомену. Формы подхватывают локализацию сообщений, если поместить обьект класса Zend_Translate в реестр
Zend_Registry::set('Zend_Translate', $translate);
Зачем локализованные строки держать в конструкторах? А если завтра придется перевести ресурс еще на несколько языков?
Zend_Registry::set('Zend_Translate', $translate);
Зачем локализованные строки держать в конструкторах? А если завтра придется перевести ресурс еще на несколько языков?
0
Поняла.
В общем-то искала какой-то метод попроще, чтоб не нужно было разбираться в Zend_Translate особо. Потому что пока что сайт собирается быть только на одном языке. А это вообще мой первый проект на Зенде… И мне и так с головой проблем хватает.
Спасибо за подсказку. Сразу же переделаю так, чтоб было меньше проблем на будущее.
Еще тогда вопрос по организации… «Я все сообщения держу в отдельных файлах, для каждого из языков.» — что из себя представляют файлы? И откуда берете «все сообщения»?
Извиняюсь, если вопрос совсем ламерский. Просто мне что-то с Зендом сложновато по-началу, а сидеть тупить или изобретать велосипед в елементарном не хочется. Пользуюсь моментом, пока нашла знающего человека :)
В общем-то искала какой-то метод попроще, чтоб не нужно было разбираться в Zend_Translate особо. Потому что пока что сайт собирается быть только на одном языке. А это вообще мой первый проект на Зенде… И мне и так с головой проблем хватает.
Спасибо за подсказку. Сразу же переделаю так, чтоб было меньше проблем на будущее.
Еще тогда вопрос по организации… «Я все сообщения держу в отдельных файлах, для каждого из языков.» — что из себя представляют файлы? И откуда берете «все сообщения»?
Извиняюсь, если вопрос совсем ламерский. Просто мне что-то с Зендом сложновато по-началу, а сидеть тупить или изобретать велосипед в елементарном не хочется. Пользуюсь моментом, пока нашла знающего человека :)
0
При бутстраппинге определяется необходимый язык ($lang) и Zend_Translate инициализируется и помещается в реестр вот так
$translate = new Zend_Translate(«array», APPLICATION_PATH."/languages", $lang, array('scan' => Zend_Translate::LOCALE_FILENAME));
Zend_Registry::set('Zend_Translate', $translate); //здесь имя ключа реестра должно быть именно Zend_Translate
В директории APPLICATION_PATH/languages лежат файлы вида lang.php
en.php
ru.php
…
В самих файлах локализации просто возвращаю массив
return array(
'hello_world' => 'Привет мир'
);
П.С. локализацию использовал первый раз, поэтому на идеальное решение не претендую, просто поделился своим решением :)
$translate = new Zend_Translate(«array», APPLICATION_PATH."/languages", $lang, array('scan' => Zend_Translate::LOCALE_FILENAME));
Zend_Registry::set('Zend_Translate', $translate); //здесь имя ключа реестра должно быть именно Zend_Translate
В директории APPLICATION_PATH/languages лежат файлы вида lang.php
en.php
ru.php
…
В самих файлах локализации просто возвращаю массив
return array(
'hello_world' => 'Привет мир'
);
П.С. локализацию использовал первый раз, поэтому на идеальное решение не претендую, просто поделился своим решением :)
+1
Поняла.
В общем-то искала какой-то метод попроще, чтоб не нужно было разбираться в Zend_Translate особо. Потому что пока что сайт собирается быть только на одном языке. А это вообще мой первый проект на Зенде… И мне и так с головой проблем хватает.
Спасибо за подсказку. Сразу же переделаю так, чтоб было меньше проблем на будущее.
Еще тогда вопрос по организации… «Я все сообщения держу в отдельных файлах, для каждого из языков.» — что из себя представляют файлы? И откуда берете «все сообщения»?
Извиняюсь, если вопрос совсем ламерский. Просто мне что-то с Зендом сложновато по-началу, а сидеть тупить или изобретать велосипед в елементарном не хочется. Пользуюсь моментом, пока нашла знающего человека :)
В общем-то искала какой-то метод попроще, чтоб не нужно было разбираться в Zend_Translate особо. Потому что пока что сайт собирается быть только на одном языке. А это вообще мой первый проект на Зенде… И мне и так с головой проблем хватает.
Спасибо за подсказку. Сразу же переделаю так, чтоб было меньше проблем на будущее.
Еще тогда вопрос по организации… «Я все сообщения держу в отдельных файлах, для каждого из языков.» — что из себя представляют файлы? И откуда берете «все сообщения»?
Извиняюсь, если вопрос совсем ламерский. Просто мне что-то с Зендом сложновато по-началу, а сидеть тупить или изобретать велосипед в елементарном не хочется. Пользуюсь моментом, пока нашла знающего человека :)
0
проблему с головой это плохо :)
Файлы могут быть самые разные, я использую xml (QT) как найболее удобный, немного извратившись можно переводить тексты через гуи тулз от одноименной компании, платные инструменты тоже существуют, но были отброшены.
Делайте как угодно, в старых версиях фреймворка у меня работало все через плагин контроллера, сейчас вероятно делал бы более правильно и бутстрапил.
Файлы могут быть самые разные, я использую xml (QT) как найболее удобный, немного извратившись можно переводить тексты через гуи тулз от одноименной компании, платные инструменты тоже существуют, но были отброшены.
Делайте как угодно, в старых версиях фреймворка у меня работало все через плагин контроллера, сейчас вероятно делал бы более правильно и бутстрапил.
0
Sign up to leave a comment.
Zend_Form, русификация сообщений об ошибках