VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
На днях с напарником было решено сделать полноценный перевод всех элементов форума. Т.е. исключить ситуации вроде тех, когда на русском форуме висят английские кнопки, или наоборот на форуме с англичанами (но с перевесом в пользу русскоязычных посетителей) кнопки подписаны по-русски и т.п.
Вдохновившись тем, что на этом форуме все же как-то этого добились, решение было придумано (его опишу в этом сообщении). Как выяснилось, оно сложное и не оптимальное. Поэтому всем советую ознакомиться с оптимальным >>. Оно значительно проще и более правильное.
А теперь перейдем к сложному решению. Расскажу вам как это делается. И так.
Создаем фразу {admincp}/phrase.php?do=add&fieldname=global
({admincp} - путь к админ.панели вашего форума)
Назовем, пусть buttons_image_directory
Для всех языков пишем удобные нам обозначения в переводе (лучше латинница т.к. будет использована в пути к кнопкам). На пример:
Русский: rus
Английский: eng
Украинский: ukr
Создаем в папках кнопок всех планируемых для модификации стилей одноименные папки (в примере rus, eng, urk). Туда положим рисунки нужных кнопок (в корне папки они будут не нужны). Я буду рассматривать включение в подмену следующих кнопок:
edit.gif - правка
forward.gif - переслать
multiquote_off.gif - множественное цитирование не подсвеченное
Во всех шаблонах, использующих эти кнопки заменяем текст {admincp}/template.php?do=search
Внимание! Обратите внимание на опцию "Только тест замены" (Test Replacement Only). Если она будет включена, то вы только просмотрите результат. Чтобы действительно произвести замену, выключите ее.
Внимание! Заменять $stylevar[imgdir_button] на $stylevar[imgdir_button]/$vbphrase[buttons_image_directory] нельзя т.к. вы попутно запортите ссылки и на другие кнопки, которые не подлежат переводу при смене языка. Если очень хотите, то можно, но тогда придется продублировать все рисунке в количестве равном количеству языков, вкладывая отдельную копию в каждую папку.
А есть какойнить хак который мог бы привязать смену языка к конкретному стилю и наоборот ?
Это я к тому что если есть , то можно было бы пойти немного другим путем, создать второй стиль (клон) только в настройках указать папку с изображениями с английскими кнопками. Получится 2 стиля один к примеру style_rus и style_eng при выборе языка менялся бы соответствующий ему стиль. Метод с заменой тоже конечно не плох но слишком много гемора будет если установлено много хаков.
эт так мысли вслух ....
Last edited by xorex : 01-25-2010 at 08:31 AM.
@alik
Продвинутый
Join Date: Nov 2005
Posts: 165
Версия vB: 3.8.4
Reputation:
Опытный 56
Репутация в разделе: 40
6
uaget, зачем изобретать велосипед когда он уже изобретен
Языки и фразы->Управление языками->Выбираем нужный язык->Редактировать настройки->Переназначение директории кнопок->Указываем название папки для этого языка
Статья хорошая, но слишком муторно, можно сделать значительно проще и быстрее.
Добавляем модуль в global_start с содержимым:
PHP Code:
if ($vbulletin->userinfo['languageid'] == '1' AND $vbulletin->userinfo['styleid'] == '2') { $stylevar[imgdir_button] = "$stylevar[imgdir_button]/english"; }
Где 1 - язык при котором производится смена директории, обычно ID английского языка, 2 - ID стиля при котором нужно менять директорию и english - название папки.
@AlfaDogg
Эксперт
Join Date: Dec 2007
Location: C:\windows\system32\
Награды в конкурсах:
Posts: 1,827
Версия vB: 1.x.x
Пол:
Reputation:
Professional 1022
Репутация в разделе: 402
0
Quote:
Originally Posted by alik
Языки и фразы->Управление языками->Выбираем нужный язык->Редактировать настройки->Переназначение директории кнопок->Указываем название папки для этого языка
эх... такая статья, а ларчик проще открывался)
@uaget
Продвинутый
Join Date: Jan 2010
Location: Украина, Днепропетровск
Posts: 3
Версия vB: 3.8.4
Reputation:
Опытный 11
Репутация в разделе: 11
Более простое решение
1
Спасибо, согласен. это решение проще
Вот, для сравнения, описание как это делается этим методом:
Делаем копии папок с картинками кнопок, заменяя кнопки переведенными аналогами и распологаем их в папки images/ru-buttons1, images/ru-buttons2 и т.д. вместо ru - идентификатор языка, вместо цифр - айди стилей (которые им дал форум после установки)
Идем в неосновные языки (украинский, русский) и там в поле "подмена папки кнопок" (Языки и фразы->Управление языками->Выбираем нужный язык->Редактировать настройки->Переназначение директории кнопок->Указываем название папки для этого языка)
пишем images/ru-buttons<#> и images/ua-buttons<#> соответсвенно <#> - это маска, которую движок будет автоматически зменять на айди стиля.
Вуаля!
P.S. Хотя это не такое эффективное по месту решение, но гараздо быстрее и проще реализуется. Нервы админа - дороже всего
@GoDaddy
Человек и пароход
Join Date: Aug 2009
Награды в конкурсах:
Posts: 2,376
Версия vB: 3.8.x
Пол:
Reputation:
Expert 1517
Репутация в разделе: 206
0
uaget, отправил "спасибо". мне тема пока без надобности, но:
- желание помочь
- содержательность
- знание вопроса
- позитив
не растеряй эти свойства в последующих сообщениях - будешь уважаемым членом vbsupport.ru комьюнити. молодец.