Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Многоязычный сайт (таблицы)

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 18 Дек 2007 13:54:09    Заголовок сообщения: Многоязычный сайт (таблицы) Ответить с цитатой

А как вы думаете такое решение для динамических данных.
Имеем таблицы в базе (например)
users
groups (условно - говоря) ну и дальше:
uk_articles
ru_articles
en_articles
...

Далее, переопределяем app_model, которая из Configure берёт текущую кодировку, и, в зависимости от имени таблицы, которая требуется в данный момент - либо устанавливает префикс в ru/uk/en
либо (если речь идёт об одноязычных таблицах) - делает префикс пустым.

Нормальное решение? Или есть проще пути?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KPOTOB

цитировать



Зарегистрирован: 09 Дек 2007 14:46:20
Сообщения: 127

СообщениеДобавлено: 18 Дек 2007 14:57:14    Заголовок сообщения: Ответить с цитатой

А как быть с штатным префиксом от соединения?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 18 Дек 2007 16:07:19    Заголовок сообщения: Ответить с цитатой

ну вот я про него родимого и говорю. Его ж вроед можно переопределить?
Правда, это при условии, что в основном-то сам хозяин базы, и какой хош префикс - такой и используешь.
Но если таблиц множество, то, вероятно, можно корректировать уже не префикс, а имя таблицы
т.е. если у нас префикс - myblog_users ...
то в апп_модел переделываем имя таблиц на
myblog_ru_articles
myblog_uk_articles
myblog_en_articles
соответственно. Или что-то не так?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KPOTOB

цитировать



Зарегистрирован: 09 Дек 2007 14:46:20
Сообщения: 127

СообщениеДобавлено: 18 Дек 2007 19:52:18    Заголовок сообщения: Ответить с цитатой

Какое чуство подсказывает (а код смотреть лень Wink ) что падение перформанса будет - таблицу будет дескрайбить при каждой смене языка и хронически писать в tmp/cache/model
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
timer0x01

цитировать



Зарегистрирован: 01 Ноя 2007 20:28:41
Сообщения: 10

СообщениеДобавлено: 18 Дек 2007 20:27:21    Заголовок сообщения: Ответить с цитатой

У меня возник проблем и он тот же как на /forum/viewtopic.php?t=83 описано ...

Vlad пожалуйста привиди конкретный пример как ты реализуешь перевключение в beforfilter-ре между таблицами в теме выше ? Какой у тебя променливая для контроля конкретного языка (GET или Сесиии) ?

Покажи пожалуйста простой пример .. а то у меня тот же вопрос возник .. как сделать многоязычьность..

СПАСИБО
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 19 Дек 2007 13:55:19    Заголовок сообщения: Ответить с цитатой

2КРОТОВ
и 2timer0x01

практической реализации ещё нет. Я пока размышляю, как это сделать лучше.

В любом случае, как ни крути, а "переключение" таблиц в том, или ином виде будет.

разве что, ограничиться одной табличкой articles
но добавить поля ru_title, uk_title, en_title, ru_body, uk_body...
что, наверное, практически одно и то же?

Показывать мне пока нечего, пока сам думаю, как это реализовать лучше, проще и т.д.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KPOTOB

цитировать



Зарегистрирован: 09 Дек 2007 14:46:20
Сообщения: 127

СообщениеДобавлено: 20 Дек 2007 00:02:57    Заголовок сообщения: Ответить с цитатой

Одно дело изменение параметров для селекта а другое дело фактически изменение const члена класса (изменение класса + describe таблици по новой)

А почему не сделать поля с языком?
language
title
text

И чтобу language деградировал в сторону дефолтного значения если нету запрашиваемого для текущей статьи?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 20 Дек 2007 10:14:39    Заголовок сообщения: Ответить с цитатой

КРОТОВ ты имеешь ввиду создание в рамках одной таблицы разноязычных полей?
articles:
id
ru_title
en_title
uk_title
ru_body
en_t..

? или я тебя не так понял?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KPOTOB

цитировать



Зарегистрирован: 09 Дек 2007 14:46:20
Сообщения: 127

СообщениеДобавлено: 20 Дек 2007 14:33:42    Заголовок сообщения: Ответить с цитатой

Vlad
Я имею ввиду что у тебя каждая запись содержит код языка
id, language, title, text

По умолчанию у тебя код языка к примеру en

В моделе при запросе записи передается код языка из пользовательского агента и далее если нету для того языка, то делается попытка найти для дефолтного языка (или по цепочке до дефолтного деградирует)

Так у тебя таблица полями не распухнет и большее колво языков поддержать можно будет
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 21 Дек 2007 00:30:26    Заголовок сообщения: Ответить с цитатой

А. Всё. Дошло Smile
Тоже вариант. Обмозгую.
Просто у меня до сих пор попадались заказы на "синхронные" сайты, т.е. если страниц есть, то она есть на всех языках.
Отсюда и размышления мои в этом же направлении Smile
Сенкс, за расширение восприятия Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
KPOTOB

цитировать



Зарегистрирован: 09 Дек 2007 14:46:20
Сообщения: 127

СообщениеДобавлено: 22 Дек 2007 16:01:40    Заголовок сообщения: Ответить с цитатой

no problemo Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru