Symfony: интернационализация (I18n) / часть 2 – редактирование данных в административной панели

Запись опубликована (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: интернационализация (I18n) / часть 1 - введение

Запись опубликована (Symfony) от ingvar в 29-10-2008 00:32

Начинаю цикл статей по организации мультиязычности в Symfony. Мультиязычность достигается с помощью интернационализации и локализации.

Часть 1.1: интернационализация (I18n) - введение

Немного теории (источник Википедия).

Интернационализа́ция (англ. internationalization) — процесс адаптации продукта, такого как программное или аппаратное обеспечение, к языковым и культурным особенностям региона (регионов), отличного от того, в котором разрабатывался продукт. В английском языке для слова «internationalization» принято сокращение «i18n». При этом число 18 означает количество пропущенных между «i» и «n» букв.

Локализа́ция (англ. localization) — перевод и адаптация элементов интерфейса, вспомогательных файлов и документации. В английском языке для слова «localization» иногда применяется сокращение «l10n». При этом число 10 означает количество пропущенных между «l» и «n» букв.

Читать дальше

Первая конференция по Symfony в Украине состоялась

Запись опубликована (Symfony) от ingvar в 28-10-2008 22:25

Прошла первая в Украине конференция по фреймворку Symfony. Сие событие происходило в городе Черкассы. Было не так много людей, как предполагалась. Надеюсь на следующую удастся съездить :). 

Основная тема была Symfony 1.1 - на глазах у присутствующих было “собрано” небольшое приложение с использованием форм, админки. Осталось только дождаться, когда выложат презентации от всех докладчиков.

Источник - отчет по самой конференции.

HighLoad++ 2008 / Видео докладов, презентации, тезисы, отчеты

Запись опубликована (Новости) от ingvar в 14-10-2008 23:03

Подборка полезных ссылок по конференции HighLoad 2008:

 http://www.highload.ru/papers2008/ (тезисы и презентации конференции)
 http://ontico.ru/vita/p/2008/hl++presentations.rar (85 метров  презентаций)
 http://www.highload.ru/index-foto.html (1348 фотографий с HL++)
 http://www.highload.ru/news/10488.html (видеорепортаж от О2ТВ)
 http://blogs.yandex.ru/search.xml?text=highload&ft=blog (в блогах встречаются хорошие репортажи о докладах и конференции)
 http://smotri.com/community/video/highload/ (видео докладов)
 http://www.russia.ru/video/high-load/ (видеорепортаж от Russia.ru)

Symfony: неправильный символ апострофа в файле uk.dat для украинского языка

Запись опубликована (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

Запись опубликована (Javascript) от ingvar в 03-09-2008 01:00

Если вы используете JavaScript, но при этом так до конца и не разобрались, что же это за чудная штука такая — замыкания, и зачем она нужна — эта статья для вас.

Читать подробнее…

Хорошая презентация о замыканиях в JavaScript, Secrets of JavaScript closures

Symfony 1.2: небольшие приятные изменения 2008-09-02

Запись опубликована (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

Читать дальше

Стандарты кодирования на PHP

Запись опубликована (Программирование) от ingvar в 27-08-2008 23:26

Хорошая подборка по разным стандартам кодирования в PHP.

  1. PEAR Coding Standards
  2. Zend Framework Coding Standard
  3. Symfony Coding Standards
  4. Cake PHP Coding Standards
  5. DB Medialab PHP Coding Standard
  6. Стандарты оформления кода PHP (производная предыдущего пункта)
  7. PHP Coding Guidelines
  8. GForge: PHP Coding Standards

Источник:
Стандарты кодирования

Триггеры в MySQL

Запись опубликована (MySQL) от ingvar в 27-08-2008 23:08

Поддержка триггеров появилась в MySQL 5.0.2. Триггер - это аналог процедуры, который ассоциируется с конкретной таблицей и запускается при наступлении определенных событий связанных с этой самой таблицей. Событий для таблиц всего несколько: INSERT, DELETE, UPDATE.

Пример триггера INSERT для таблицы News - записываем в поле `created_at` дату и время создания записи. Конечно можно было воспользоваться TIMESTAMP, но в данном случае это сделано в качестве простого примера:
Читать дальше

sfPropelPagerI18n: расширяем sfPropelPager для поддержки i18n

Запись опубликована (Symfony) от ingvar в 24-08-2008 02:26

sfPropelPager - это встроенная в Propel функциональность, которая позволяет организовать Пейджинг (Propel Pager), т.е. разбивку на страницы. Работает великолепно, ознакомиться подробнее можно в статье How to paginate a list. Описанные ниже действия проводились на Propel 1.3.

Принцип работы простой, сначала делается запрос на определение количества записей, а далее получаем данные с учетом количества их на странице. Например, имеем Propel ORM объекты News и NewsI18n.
Читать дальше