Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 25 Мар 2008 16:07:41 Заголовок сообщения: Интернационализация |
|
|
Как сделать интернализацию в cake_1.2.0.6311-beta для динамического текста?
Статьи, которые я нашел по этой теме:
/wiki/Manual/Localization
http://blog.difane.com/2007/09/10/multilanguage-site-part-1-static-text/
http://bakery.cakephp.org/articles/view/p28n-the-top-to-bottom-persistent-internationalization-tutorial
но в них описано только для статического текста (( |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 25 Мар 2008 17:27:20 Заголовок сообщения: |
|
|
У меня нет готового решения. Могу только рассказать про грабли, на которые я наступал:
1. Иногда удобно хронить синхронно данные по языкам (т.е. ua-article, ru-article en-article) - каждая статья обязательно присутствует на каждом языке, а иногда удобнее через индексную табличку - если статья на одном языке есть, а на другом её может не быть
2. Админка (а именно edit/add) надо не забывать, что uk/posts/edit/1
это не en/posts/edit/1 - и не забывать править урлы
3. Route: возможно я и не до конца разобрался, но у меня так и не получилось сделать
/en/posts... (для второго языка)
/posts.. (для дифолтного языка)
Т.е. если появляется параметр lang в урле, то он должен быть всегда (разве что, кроме главной страницы сайта)
/:lang/:controller/... прописал. Всё, теперь по /:controller - не зайдёшь шаманил - но не получилось |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 25 Мар 2008 17:31:50 Заголовок сообщения: |
|
|
Цитата: | 1. Иногда удобно хронить синхронно данные по языкам (т.е. ua-article, ru-article en-article) - каждая статья обязательно присутствует на каждом языке, а иногда удобнее через индексную табличку - если статья на одном языке есть, а на другом её может не быть |
Я как раз хотел сделать так что если нет статьи на 2-ух языках, то она не будет добавлятся.
А делать 2 БД - не очень красивое решение |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 25 Мар 2008 21:11:58 Заголовок сообщения: |
|
|
зачем 2 БД?
2 таблицы - одна с id и lang-id
вторая - со статьёй на соответствующем языке |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 26 Мар 2008 14:26:33 Заголовок сообщения: |
|
|
КРОТОВ, ИСАЙКИН, DEEPERMD ГДЕ ВЫ ? |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 26 Мар 2008 14:28:01 Заголовок сообщения: |
|
|
А как вы себе представляете интернационализацию динамического контента. Держать как и статичный в файле.. Зачем же? Для этого придумали базы данных..
Если подходить поп простому то просто добавляете в таблицу дополнительные поля с суффиксом языка.. А если всё по уму делать то делается кростаблица где храняться все переводы для контентов и они оттуда выцепляются в зависимости от языка, а оригинал хранится в начальной таблице.. |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 29 Мар 2008 15:23:11 Заголовок сообщения: |
|
|
Цитата: | Если подходить поп простому то просто добавляете в таблицу дополнительные поля с суффиксом языка |
Т.е мне придется делать по 2 view и в одном придется обращатся $array['Model']['lang1_field'], а в другом
$array['Model']['lang2_field'] ??? |
|
Вернуться к началу |
|
|
DeeperMD
цитировать
Зарегистрирован: 08 Фев 2008 15:04:11 Сообщения: 144 Откуда: $Молдова->Кишинёв->Буюканы()
|
Добавлено: 29 Мар 2008 15:33:20 Заголовок сообщения: |
|
|
зачем два вьювера?
разве у вас меняется представление данных при смене языка?
У вас есть ваш контроллер который в зависимости от параметра языка взятого либо из браузера либо из строки, берет из базы поля соответствующие данному языку... и передает из вьюверу в одних и тех же переменных, а вьювер как был так и остаеться |
|
Вернуться к началу |
|
|
|