Шаблоны для DLE » Хаки » 3 строки для мультиязычности модулей

Представляем вам такой хак 3 строки для мультиязычности модулей для DLE 11.0 - 11.1 после установке которого, разработчик в упор не хотят сделать мультиязычность в движке, а ведь до полной поддержки нескольких языков в самой панели администратора осталась совсем немного, названия и описания модуля. И это решается это в 3 строчки кода , и я предлагаю все это сделать за них. Все знают кто разбирается, что название и описание модуля хранится в таблице _admin_sections, и записываются все там жёстко в 1 языке и выводятся они в шаблон в админ-панели тоже без какой то либо обработки, на которую можно повлиять. В результате, если даже сделать модуль на 30 языках, название модуля всегда будет на 1, что просто не красиво для движка.


Итак: Решение проблемы лежит на поверхности - обрабатывать значения из БД и выводить локализированную версию. И решается это всего в 3 строчки. Давайте добавим их.


Для начала запишем в БД что-нибудь уникальное, к примеру:

INSERT INTO `dle_admin_sections` (`name`, `title`, `descr`, `icon`, `allow_groups`) VALUES ('gcallback', '__G_CALLBACK_TITLE__', '__G_CALLBACK_DESCR__', 'gcallback.png', '1')


Т.е. именем модуля у нас будет __G_CALLBACK_TITLE__, а заголовком __G_CALLBACK_DESCR__ . Теперь панель администратора выглядит уж больно не приглядно. ( Смотрите скриншот 2 )


Давайте добавим в файл локализации названия на русском и английском языках, для этого внесём правки в /language/.../adminpanel.lng (увы, автоподгрузки внешних языковых файлов у нас тоже нет). Просто добавим секцию с нашими переменными:

//Callback by gorbushka.name
   '__G_CALLBACK_TITLE__'       => "Обратный звонок",                                                              // Title for DLE admin panel
   '__G_CALLBACK_DESCR__'       => "Модуль управления заявками на обратный звонок от Ваших клиентов",              // Description for DLE admin panel


Сохраним, но что-то нам это ничего не дало. Конечно, мы завели в БД переменные вместо названия, добавили их значения в лег-файл, теперь надо добавить обработку этой радости в сам DLE. И делается это, как я говорил, в 3 строки, правда в 2 файлах.


Для отображения всех модулей в файле /engine/inc/options.php находим:

$row['title'] = strip_tags(stripslashes($row['title']));
$row['descr'] = strip_tags(stripslashes($row['descr']));


И заменяем на:

if ($lang[$row['title']] != '') $row['title'] = strip_tags(stripslashes($lang[$row['title']]));
else $row['title'] = strip_tags(stripslashes($row['title']));
if ($lang[$row['descr']] != '') $row['descr'] = strip_tags(stripslashes($lang[$row['descr']]));
else $row['descr'] = strip_tags(stripslashes($row['descr']));


Теперь правим список в левой части страницы (да, он грузится из БД отдельно - кэш наше всё): в /engine/skins/default.skin.php находим:

$row['title'] = strip_tags(stripslashes($row['title']));


Меняем на:

if ($lang[$row['title']] != '') $row['title'] = strip_tags(stripslashes($lang[$row['title']]));
else $row['title'] = strip_tags(stripslashes($row['title']));


Т.е. мы добавили проверку на существование в lang-файле того, что записано в БД. Если есть - заменяем, если нет - оставляем как есть. Не трудно посчитать, что мы действительно добавили всего 3 строки. И теперь панель администратора выглядит куда лучше. ( Смотрите скриншот 3, 4 )


Всего 3 строки и Ваш продукт вызывает куда меньше отвращения у клиентов, говорящих на другом языке.



Инструкция в архиве!
Скачать 3 строки для мультиязычности модулей
Если файл не прогрузился, обновите страницу F5!
obratnyy-zvonok-0_2.zip | 0 | 28.08 Kb | 28-08-2022, 16:11
  • Версия DLE: 11.0 - 11.1
  • Кодировка: utf-8
  • Категория: Хаки
  • Автор: Горбушка
  • Комплектация: модуль, инструкция

собрано 3030.00 рублей Поддержать автора

Войдите на сайт


Все собранные средства будут переданы автору этой статьи - DEN
Сумма перевода от 10.00 рублей
00
48
0
28-08-2022, 15:21
Обсудить (0)
Похожие хаки
Комментарии
Минимальная длина комментария - 10 знаков. комментарии модерируются
Комментариев еще нет. Вы можете стать первым!
Помощь в публикации комментариев:
1.) Если вы хотите задать вопрос, тогда просто оставьте комментарий, не нужно вопрос добавлять в ответ.
2.) Если вы хотите ответить на комментарий, для этого есть кнопка "ответить" под нужным вам вопросом.
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Мы ценим вашу конфиденциальность
Мы используем файлы "cookie" на нашем веб-сайте, чтобы предоставить вам наиболее релевентный результат, помня ваши предпочтения и повторные посещения.
Нажимая "Принять" вы соглашаетесь на использование всех файлов "cookie".
Принять
Не принимаю
Показать цели
X

Платные услуги новостей