| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Libraries > [CakePHP] Translate behavior проблема с locale |
| Автор: linuxoid 29.9.2011, 12:50 |
| Здравствуйте, коллеги. На каке (1.3) такая проблема возникла: Я использую translate behavior для мултиязычного сайта. Есть бэкэнд, где я могу редактировать контент. Т.е. CMS Есть 2 кнопочки, которые устанавливают locale : rus и eng Возьмем простой пример: - есть таблица - категории (categories) - У каждой категории 2 поля: id и title - Соответственно title выносим в categories_translations - из categories поле title удаляем. Workflow такой. Нажимаем eng. locale в контроллере категорий меняется на eng. Теперь можно создать категорию для eng сайта. Сохраняем и видим, что в списке категорий (admin_index) появилась запись. К примеру id title 1 Test category Проблема в том, что при переключении locale на rus список категорий будет пуст, т.к. видимо работает join и пытается найти в таблице categories_translations соответсвующие записи, которых там еще нет (но на en_us всё OK, т.к. я только что создал категорию с переводом для en_us, поэтому при выборе eng мы что-то видим в списке). Хотелось бы, чтобы на rus список так же бы выводился, даже если еще нету перевода на rus в categories_translations. Надеюсь, что понятно объяснил, в чем дело. Есть ли какое-то решение без хаков? К примеру можно сначала взять просто все существующие id категорий, затем, если есть перевод для них, присоединить этот перевод и затем составить список. Но это "тяжелый" вариант. Может быть есть какое-то простое решение в рамках каки? Благодарю |
| Автор: linuxoid 30.9.2011, 09:31 | ||||
| В общем пока остановился на этом солюшне. Не идеальное решение, но для моих задач очень даже подходит (если языки предопределены - rus, eng, spa, т.е. не добавляются динамически) http://www.palivoda.eu/2008/04/i18n-in-cakephp-12-database-content-translation-part-2/ Чтобы можно было сохранять в CMS для разных locale нужно в i18n.php заменить beforeSave() на это (комментарий #7 Georgi Mavrev Says: July 14th, 2008 at 6:25 pm )
Чтобы поменять язык (комментарий #28 Rostislav Palivoda Says: July 23rd, 2009 at 11:44 pm)
|