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

Интернационализация

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 - не зайдёшь Sad шаманил - но не получилось
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nws

цитировать



Зарегистрирован: 25 Фев 2008 15:42:23
Сообщения: 96

СообщениеДобавлено: 25 Мар 2008 17:31:50    Заголовок сообщения: Ответить с цитатой

Цитата:
1. Иногда удобно хронить синхронно данные по языкам (т.е. ua-article, ru-article en-article) - каждая статья обязательно присутствует на каждом языке, а иногда удобнее через индексную табличку - если статья на одном языке есть, а на другом её может не быть


Я как раз хотел сделать так что если нет статьи на 2-ух языках, то она не будет добавлятся.
А делать 2 БД - не очень красивое решение Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
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 ГДЕ ВЫ ? Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
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    Заголовок сообщения: Ответить с цитатой

зачем два вьювера?

разве у вас меняется представление данных при смене языка? Question

У вас есть ваш контроллер который в зависимости от параметра языка взятого либо из браузера либо из строки, берет из базы поля соответствующие данному языку... и передает из вьюверу в одних и тех же переменных, а вьювер как был так и остаеться
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
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