Просмотр темы
Страница 1 из 2: 12
|
PHP-Fusion MultiLocale Mod - Мультиязычность сайта
|
|
Rush |
Опубликовано 22.12.2010 11:28
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
По просьбам общественности настрочил с утреца мод, позволяющий юзерам и гостям переключать языки на сайте без головной боли с поддоменами. PHP-Fusion MultiLocale Mod 0.4 Принцип работы: 1) в первую очередь для юзверов создано поле user_locale содержащее установленное на данный значение языка. по умолчанию пустое 2) на юзеров и гостей вешается кукис locale со значением языка по умолчанию либо значением $userdata['user_locale'] если оно установлено 3) в maincore.php константа LOCALESET принимает значение $_COOKIE['locale'] 4) в прилагающейся примитивной панельке представлен пример интерфейса переключения языка. Выбираем язык -> Go! -> post запрос -> для юзеров обновляем значение в бд и обновляем кукис, для гостей только кукис. -> редирект на FUSION_REQUEST, также переданный постом, т.е. на страницу откуда был сделан запрос. Есть возможность реализации на жиге. Обычный пост в бэкэнд, где меняется значение в бд и обновляется кука, а потом просто происходит обновление страницы (просто необходимо для смены языка). Так просто убирается переход на infusions/locale_panel/locale_panel.php и обратно. -2 перехода = - время. но это в to do 5) также в профиле можно аналогичным образом менять язык сайта Вообще не понимаю почему до сих пор во фьюжне нет подобных вещей. Писал исключительно для своих нужд и по просьбе товарища, если покажется полезным продолжу поддержку. Так же немного спорили, что возможно следует при активированных сессиях данные о языке в сессии, но я не понял зачем... Да и чуть не забыл про недостатки: 1) Контент который не имеет локали, т.е. новости, навигация и т.д. не переводится 2) необходимо для английской локали в глобал.пхп кодировку ставить вин-1251, иначе как ни странно кракозябры от русских непереведенных буковок UPDATE1 Добавлена панелька на аяксе
Rush присоединено следующее:файл:
Изменил(а) Rush, 22.12.2010 16:59 |
|
|
jikaka |
Опубликовано 22.12.2010 11:44
|
Супер Администратор Разработчики Сообщений: 4847 Зарегистрирован: 26.07.2010 12:10 |
поддержка в любом случае нужна... ты для какой версии делал? при замене файлов выдает ошибки: Notice: Use of undefined constant iMEMBER - assumed 'iMEMBER' in Z:\home\test-v701.ru\www\maincore.php on line 259 Notice: Undefined index: user_locale in Z:\home\test-v701.ru\www\maincore.php on line 263 в самой панеле такую: Warning: Wrong parameter count for array_unshift() in Z:\home\test-v701.ru\www\infusions\locale_panel\locale_panel.php on line 23
|
|
|
Rush |
Опубликовано 22.12.2010 11:46
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
версия 7.01.02 это нотисы, ща включу отображение и зафикшу, хотя работает все прекрасно и с ними) |
|
|
jikaka |
Опубликовано 22.12.2010 11:47
|
Супер Администратор Разработчики Сообщений: 4847 Зарегистрирован: 26.07.2010 12:10 |
в профиле: Warning: Wrong parameter count for array_unshift() in Z:\home\test-v701.ru\www\includes\user_fields\user_locale_include.php on line 25
|
|
|
Rush |
Опубликовано 22.12.2010 11:59
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
для начала установи поле языки в админке, тогда половина исчезнет |
|
|
Rush |
Опубликовано 22.12.2010 12:03
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
обновил архив. array_unshift() - неудаленный пережиток от образца user_fields |
|
|
jikaka |
Опубликовано 22.12.2010 12:20
|
Супер Администратор Разработчики Сообщений: 4847 Зарегистрирован: 26.07.2010 12:10 |
все тоже самое, ушла только ошибка с user_locale остальные присутствуют |
|
|
Rush |
Опубликовано 22.12.2010 12:40
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
не тот архив залил, ща норм должно быть |
|
|
jikaka |
Опубликовано 22.12.2010 15:25
|
Супер Администратор Разработчики Сообщений: 4847 Зарегистрирован: 26.07.2010 12:10 |
сейчас вроде норм... но как сделать так, чтобы не было столько ошибок при установке? и как быть с остальным контентом, который остается на другом языке? |
|
|
Rush |
Опубликовано 22.12.2010 16:08
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
уточняй о каких ошибках говоришь. слил файлы, заменил и все. ошибки могут вылазить до того как проинсталишь поле. можно все это дело оформить в полноценный мод с админкой. а по поводу контента. в любом случае он сам себя не переведет, значит необходимо при добавлении новостей, статей и т.д. делать поля для различных языков и писать по отдельности. при переключении будет выводится необходимый язык. но тут придется очень много изменять в файлах движка, так можно и новую сборку сделать) |
|
|
jikaka |
Опубликовано 22.12.2010 17:51
|
Супер Администратор Разработчики Сообщений: 4847 Зарегистрирован: 26.07.2010 12:10 |
это понятно... а каким образом это реализовано на других движках? |
|
|
Rush |
Опубликовано 22.12.2010 18:17
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
вот так: |
|
|
Rush |
Опубликовано 22.12.2010 18:20
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
да как-то иначе и никак. можно писать контент только на общепринятом английском) |
|
|
jikaka |
Опубликовано 22.12.2010 18:22
|
Супер Администратор Разработчики Сообщений: 4847 Зарегистрирован: 26.07.2010 12:10 |
я так понимаю, такую переключалку можно сделать и в админке фьюжика? по аналогии с панелью, которую ты сделал...
|
|
|
Rush |
Опубликовано 22.12.2010 19:17
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
ну само собой. можно сделать так: 1) оформить красивый мод 2) в его админи - возможность выбора языка по умолчанию, который замоет опцию языка в стандартной админи. 3) выбор из имеющихся языков в папке локали доступных языков для переключения 4) выбор разделов, которые необходимы в интернационале (новости, статьи и т.д.). создание в отдельной таблице бд необходимых полей для этих разделов. 5) минимальная по возможности модификация стандартных файлов. возможно перенос функции добавления материала в функционал мода. тогда в стандартных файлах лишь придется подкорректировать табличку бд, из которой будут браться данные, в зависимости от языка. или просто нахрен переделать весь двиг, так проще будет. |
|
|
jikaka |
Опубликовано 22.12.2010 19:20
|
Супер Администратор Разработчики Сообщений: 4847 Зарегистрирован: 26.07.2010 12:10 |
|
|
|
Rush |
Опубликовано 22.12.2010 19:22
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
или можно сделать еще проще. просто к примеру при добавлении новости сделать возможность выбора языка к которому она относится table fusion_news news_id 100 news_news blabla news_desc blbablabla table i18n_items item_id 1 item_real_id 100 item_type N (news) etc. Но тогда будет путаница с идешниками. Если к примеру читаешь новость и переключив язык видишь то же самое. Ну бред короче |
|
|
Rush |
Опубликовано 22.12.2010 20:07
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
вот кстати в соседней теме неплохой пример привели http://basti2web.de/news.html тоже вешается кука user_language, только там уже реализован перевод новостей и т.д. В конкретном сайте это проще реализовать, типо как под себя чтоле, подогнал и все. Изменил(а) Rush, 22.12.2010 20:10 |
|
|
jikaka |
Опубликовано 22.12.2010 20:09
|
Супер Администратор Разработчики Сообщений: 4847 Зарегистрирован: 26.07.2010 12:10 |
да, там хороший пример... надо будет потестить... |
|
|
Rush |
Опубликовано 22.12.2010 20:20
|
Администратор Разработчики Группа поддержки Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
скачал, поковырял, слабовато. на сайте явно другой стоит, т.к. там всего 3 строчки в маинкор.пхп добавлено и панелька) и для более старой версии фьюжна принцип как бы тот же, кука вешается... но еще более сыроват, кука вешается только при смене языка, для юзверов настройки в бд не сохраняются, кука не обновляется, только при смене языка, т.е. если сойдет срок годности язык вернется в стандартный, и много других непродуманностей. Но, суть в том что на самом сайте установлена другая версия, которая уже свичает контент |
|
Поделиться этой темой | |
Социальные закладки: | |
URL: | |
BBcode: | |
HTML: |
Страница 1 из 2: 12
Перейти на форум: |