Запись опубликована (Symfony) от ingvar в 11-11-2008 00:33
Часть 2: интернационализация (I18n) – редактирование данных в административной панели
Продолжение темы мультиязычности в Symfony: первой части, где рассказывались основы работы с интернационализацией в Symfony. Теперь рассмотрим, как данные редактировать в административной панели для нескольких языков.
Исходный код к статье - demo-i18n_part2.zip (source code). Код написан на Symfony 1.2, Propel 1.3.
Рисунок 2.1: Пример Frontend (Example Frontend)

Читать дальше
Запись опубликована (Symfony) от ingvar в 29-10-2008 00:32
Начинаю цикл статей по организации мультиязычности в Symfony. Мультиязычность достигается с помощью интернационализации и локализации.
Часть 1.1: интернационализация (I18n) - введение
Немного теории (источник Википедия).
Интернационализа́ция (англ. internationalization) — процесс адаптации продукта, такого как программное или аппаратное обеспечение, к языковым и культурным особенностям региона (регионов), отличного от того, в котором разрабатывался продукт. В английском языке для слова «internationalization» принято сокращение «i18n». При этом число 18 означает количество пропущенных между «i» и «n» букв.
Локализа́ция (англ. localization) — перевод и адаптация элементов интерфейса, вспомогательных файлов и документации. В английском языке для слова «localization» иногда применяется сокращение «l10n». При этом число 10 означает количество пропущенных между «l» и «n» букв.
Читать дальше
Запись опубликована (Symfony) от ingvar в 28-10-2008 22:25
Прошла первая в Украине конференция по фреймворку Symfony. Сие событие происходило в городе Черкассы. Было не так много людей, как предполагалась. Надеюсь на следующую удастся съездить :).
Основная тема была Symfony 1.1 - на глазах у присутствующих было “собрано” небольшое приложение с использованием форм, админки. Осталось только дождаться, когда выложат презентации от всех докладчиков.
Источник - отчет по самой конференции.
Запись опубликована (Новости) от ingvar в 14-10-2008 23:03
Запись опубликована (Symfony) от ingvar в 21-09-2008 19:41
Необходимо было реализовать украинскую версию на Symfony. И какое же было разочарование когда возникли проблемы со словами, где встречается апостроф, например: П’ятниця, и др… В браузерах IE, Opera слова просто “рвало” или, что ещё хуже был просто квадрат, как будто такого символа в таблице UTF-8 нет. При изучения файла uk.xml стало ясно, что это символ апостроф. В итоге после исправления всех слов получился пропатченный файл, который прекрасно работает во всех браузерах.
Скачать пропатченный файл uk.xml.
Возник вопрос: откуда разработчики скопировали данные для файлов i18n и выяснилось, что данные были получены с сайта: unicode.org, где те же проблемы :(. Хотя в файле Ukrainian-Latin-BGN.xml символ апострофа правильный.
P.S.
За что я обожаю сообщество Symfony - за его оперативность, не успел разместить задачу с этой проблемой, как сегодня же обновили этот файл моим патчем :), так что ждем несколько дней и скачиваем обновление из SVN.
Запись опубликована (Javascript) от ingvar в 03-09-2008 01:00
Если вы используете JavaScript, но при этом так до конца и не разобрались, что же это за чудная штука такая — замыкания, и зачем она нужна — эта статья для вас.
Читать подробнее…
Хорошая презентация о замыканиях в JavaScript, Secrets of JavaScript closures
Запись опубликована (Symfony) от ingvar в 03-09-2008 00:00
С каждой новой версией разработчики Symfony делают все, чтобы упростить работу API и сделать её более интуитивной и мощной. Вот некоторые примеры того, чем можно будет воспользоваться в symfony 1.2.
1. Названия Приложениний в CLI задачах / Application name in CLI tasks
Некоторые Propel задачи требует указания имя application в аргументах, потому что требуется подключение к БД. На самом деле в некоторых случаях этот параметр не требуется, когда задачи работают с БД не для конкретного application, а всего проекта.
Команда propel:build-all-load теперь выполняется как и другие задачи вида propel:build-*:
# symfony 1.2
./symfony propel:build-all-load
# symfony 1.1
./symfony propel:build-all-load application_name
Читать дальше
Запись опубликована (Программирование) от ingvar в 27-08-2008 23:26
Запись опубликована (MySQL) от ingvar в 27-08-2008 23:08
Поддержка триггеров появилась в MySQL 5.0.2. Триггер - это аналог процедуры, который ассоциируется с конкретной таблицей и запускается при наступлении определенных событий связанных с этой самой таблицей. Событий для таблиц всего несколько: INSERT, DELETE, UPDATE.
Пример триггера INSERT для таблицы News - записываем в поле `created_at` дату и время создания записи. Конечно можно было воспользоваться TIMESTAMP, но в данном случае это сделано в качестве простого примера:
Читать дальше
Запись опубликована (Symfony) от ingvar в 24-08-2008 02:26
sfPropelPager - это встроенная в Propel функциональность, которая позволяет организовать Пейджинг (Propel Pager), т.е. разбивку на страницы. Работает великолепно, ознакомиться подробнее можно в статье How to paginate a list. Описанные ниже действия проводились на Propel 1.3.
Принцип работы простой, сначала делается запрос на определение количества записей, а далее получаем данные с учетом количества их на странице. Например, имеем Propel ORM объекты News и NewsI18n.
Читать дальше