«ABUYFILE» - Торговая площадка
4 subscribers
16 files
80 links
Онлайн маркетплей цифровых товаров и фриланс услуг. здесь можна купить и продать любые файлы: шаблон дизайна сайта, модули, скрипт, домен, готовые сайты, программы, лицензии, логотипы, фирменную символику и др.
Download Telegram
«Freelance MarketPlace» Мультиязычность модулей
Как настроить многоязочность, локализацию контента в модулях "Задания", "Услуги", "Маркет" в пользовательском пакете (собрании) переработанных модулей и плагинов, в сборке скриптов фриланс биржи и маркетплейса

Как настроить многоязочность, локализацию контента на разных языках в модулях "Задания", "Услуги", "Маркет" в пользовательском пакете (собрании) переработанных модулей и плагинов, в сборке скриптов фриланс биржи и маркетплейса.

Алгоритм действий для всех трех модулей одинаков.

Инструкцию рассмотрим на примере модуля, - market. Названия расширений используем по коду в админке в списке расширений.
Требования перед началом работы созданию мультиязычного контента, - структуры категорий и товаров маркетплейса.

1. Установленный модуль "MarketPlace" коммерческой версии - market.

2. Установленный и настроенный плагин "Content Internationalization" - i18n. Как его настроить инструкция здесь.

Имейте ввиду, пока не выполнен пункт№2 - нет смысла переходить к пункту№3

3. Устанавливаем плагин "Module Market Content Internationalization" - i18n4market и приступаем.


Ход работы и порядок действий

Всё начинается с мультиязычности (интернеционализации) самой структуры модуля.

Например, категорий много. Писать буду по своему, то есть для меня такой путь быстрее, но всегда можно одной и той же цели достичь разными путями.
1. Подготавливаем коды корневых (родительских) категорий, в которых будут мультиязычные товары.

Как правильно заполнять структуру категорий - это отдельная тема.

Путь первый: Идем в phpMyAdmin открываем свою базу и скролим в самый низ до префиксбазы_structure.

Жмем на имя этой таблицы.

Жмем на кнопку "Экспорт".

Выбираем "CSV for MS Excel".

Жмем кнопку "Вперед". - Смотрите скриншоты. на скриншоты можно нажимать, если нужно увеличить.

Открываем скачанный файл table_structure.csv, например "LibreOffice Calc".

Кликаем по ячейке "B1" и сортируем, не важно во возрастанию или убыванию.

Нас интересует все, что в колонке "structure_code", где слева в колонке "structure_area" напротив прописано "market" - выделяем и копируем.
Напишу по другому.
После сортировки, смотрим в колонке "structure_area", где у нас прописано "market", а напротив, в колонке "structure_code" справа у нас прописаны коды корневых (имеют точку после первого значения) категорий, которые нам нужны для мультиязычности.
Выделяем эти коди копируем, вставляем, например в текстовый документ программы "Notepad++" и форматируем весь текст так, чтобы всё было записано в однустроку через запятую. Никаких пробелов и энтеров. С форматированием закончили выделяем всё и копируем.

Путь второй: открываем две вкладки, - в одной структуру модуля market, а вдругой конфигурацию плагина i18n4market и из полей первой копируем коды корневых категорий в поле второго, в одну строку, через запятую.
2. Конфигурация плагина "Module Market Content Internationalization" - i18n4market.

Заходим в настройки, и справа от "Корневые категории для применения i18n4market" вставляем скопированные коды категорий.

В форме ниже, - Список локалей сайта и каждая локаль с новой строки, формат: locale_code|Заголовок локали, - как пример:

en|English
ru|Русский
ua|Українська

Всё. закрываем админку и идем прямо в список товаров.
3. Мультиязычность категорий модуля "маркетплейса", она же "Интернационализация структуры".
3.1. Открываем сразу два шаблона своей темы market.list.tpl и market.tpl - в обоих вставляем две кнопки
<!-- IF {PHP.usr.isadmin} OR {PHP.usr.maingrp} == 5 -->
<li>
<a href="{PHP|cot_url('admin', 'm=market')}" uk-tooltip="{PHP.L.market_admin_moder_mod}" title="{PHP.L.market_admin_moder_mod}" class="uk-btn-icon-fa uk-btn-dangrlight shadow-dangrlight">
<i class="fa-solid fa-gear fa-spin fa-2xl"></i>
</a>
</li>
<!-- IF {PHP.cot_plugins_active.i18n4market} -->
<li>
<a href="{PHP|cot_url('i18n4market', 'm=structure')}" uk-tooltip="{PHP.L.i18n4market_structure}" title="{PHP.L.i18n4market_structure}" class="uk-btn-icon-fa uk-btn-dangrlight shadow-dangrlight">
<i class="fa-solid fa-language fa-xl"></i>
</a>
</li>
<!-- ENDIF -->
<!-- ENDIF -->

Потом, что нужно всегда можно удалить.

Стили мои, никто не мешает сделать по-своему.
3.2 Шаблон market.tpl.

в нужном месте "под рукой" размещаем


<!-- IF {PHP.cot_plugins_active.i18n4market} -->
<div class="uk-card uk-card-small shadow-sldlight uk-background-blur-sldlight uk-card-hover uk-border-rounded uk-margin-medium-bottom">
<div class="uk-card-body">
<!-- BEGIN: I18N_LANG -->
<p class="uk-card-title">{PHP.L.Language}:</p>
<ul class="uk-list uk-list-divider">
<!-- BEGIN: I18N_LANG_ROW -->
<li>
<a href="{I18N_LANG_ROW_URL}">{I18N_LANG_ROW_TITLE}</a>
</li>
<!-- END: I18N_LANG_ROW -->
</ul>
<!-- END: I18N_LANG -->
<div class="buttons">{PAGE_I18N_TRANSLATE} {PAGE_I18N_DELETE}</div>
<!-- IF {PHP.item_i18n4market_locales} == '' -->
<a href="{PHP|cot_url('plug', 'e=i18n4market&m=market&a=add&id={PHP.item.item_id}')}" class="uk-button uk-button-success">{PHP.L.i18n4market_translate}</a>
<!-- ENDIF -->
</div>
</div>
<!-- IF {PHP.item_i18n4market_locales} > 1 -->
<!-- IF {PHP.item.ipage_locale} == 'en' OR {PHP.item.ipage_locale} == 'ua' -->
<!-- IF {PHP.i18n4market_admin} OR {PHP.usr.isadmin} -->
<div class="uk-card uk-card-small shadow-sldlight uk-background-blur-sldlight uk-card-hover uk-border-rounded uk-margin-medium-bottom">
<div class="uk-card-body">
<ul class="uk-list uk-list-divider">
<!-- IF {PHP.item.ipage_locale} == 'en' -->
<li>
<a href="{PAGE_ADMIN_EDIT_URL}" class="uk-button uk-button-warning">{PHP.L.i18n4market_editing}</a>
</li>
<!-- ENDIF -->
<!-- IF {PHP.item.ipage_locale} == 'ua' -->
<li>
<a href="{PAGE_ADMIN_EDIT_URL}" class="uk-button uk-button-primary">{PHP.L.i18n4market_editing}</a>
</li>
<!-- ENDIF -->
</ul>
</div>
</div>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- ENDIF -->
<!-- ENDIF -->

Имейте ввиду, - код приведенный выше, это если у нас по дефолту стоит - русский, то есть в конфиге

$cfg['defaultlang'] = 'ru';
3.3. Сам процесс интернеционализации структуры.

В пункте 3.1 в шаблон списка товаров и в саму карточку товара мы поставили по две кнопки, каждая вторая в каждом случае, - это кнопка со ссылкой на страницу создания англоязычного эквивалента названия категории и её описания, если в момент перехода по ссылке у нас был выбран английский язык интерфейса.

Если выбран русский - при переходе во ссылке откроется выбор локали, какую будем переводить, - имеется ввиду категории и описание. До самих товаров еще далеко. Когда переведем все категории, а уже только потом приступаем к переводу товаров.

Переводим структуру модуля маркет на английский

Переводим структуру модуля маркет на украинский


4. Перевод карточек товара (перевод публикаций в модуле маркетплейса)

Уже только после того, как перевели полностью на все языки структуру/категории приступаем к товарам.
4.1. Идем в любую карточку товара. в пункте №3.2 мы там прописали специальные кнопки для операций с переводом.

какой бы язык интерфейса сейчас бы не был выбран, - всё равно будет линк на перевод. смотрите скриншоты.

4.2. Жмем кнопку "перевести" и заполняем значения перевода, например у нас украинский.

4.3. Сохранеямся и возращаемся в карточку товара.

По кнопке сохранения мы уже автоматом попадаем в украиноязычную версия нашей карточки товара, потому как переводили на украинский.
Теперь у нас появились дополнительные кнопки для управления - редактирование перевода и список уже существующих локализаций у этой карточки товара. смотрите скриншот.
4.4. Меняем язык интерфейса на английский

и у нас дополнительно появляется ссылка "Translate" - то есть перевести на английский. Жмем. переводим. сохраняемся.

Смотрите скриншоты.

Всё.
https://abuyfile.com/ru/forums/marketplace-script/multilingual_mod/topic51
https://abuyfile.com/ru/market/plugincms/pagetuning
Плагин к модулю страниц - в любом месте сайта получаем и выводим меню дерево категорий с подкатегориями структуры модуля страниц.
Совместимость плагина "Меню категорий".

Плагин совместим с последней версией движка Cotonti, а на момент создания плагина это v.0.9.25 beta от 09.04.2024.

Работа плагина тестировалась на сервере с PHP v7.4.

Особенностью плагина явлется его мультиязычность, то есть если у вас два языка и больше, и названия категорий на разных языках, то при смене языка меняется и локализационнные названия категорий.
Демо плагина на скришотах и на этом сайте.

Для установки и работы плагина, разумеетстя требуется установленный модуль "Pages", без него плагин просто не установите.

На данный момент, установка плагина в админке простейшая, - "в один клик" и не имеет собственных настроек конфигурации.

Для скрытия категорий в меню, нужно просто убрать права все права у группы пользователей на эту категорию в настройках.
Плагин "Connecting Libs" для сайтов на CMF Cotonti/

Тестировалось на последнем релизе движка: Core v.0.9.25 beta/DB v.0.9.25/PHP v.7.4.

Основное назначение плагина простое и опциональное подключение без правки основного шаблона сайта:

UIKit 3 - это легкий и модульный front-end фреймворк для разработки быстрых и мощных веб-интерфейсов.

Bootstrap 5.3 - мощный, расширяемый и многофункциональный инструментарий для создания интерфейса.

Font Awesome 6.5.2 - это интернет-библиотека иконок и набор инструментов, которыми пользуются миллионы дизайнеров, разработчиков и создателей контента.

jQuery v3.7.1 - это быстрая, небольшая и многофункциональная библиотека JavaScript. Она значительно упрощает просмотр HTML-документов и манипулирование ими, обработку событий, анимацию и Ajax благодаря простому в использовании API, который работает во множестве браузеров. Благодаря сочетанию универсальности и расширяемости jQuery изменил способ написания JavaScript миллионами людей.

Пользовательские стили как локальным так и внешним файлом.

Установка:

Папку "connectinglibs" закачать в папку с плагинами "plugins". Убедитесь, что при загрузке файлов на сервер не было потерь, и все файлы были закачаны.
Войдите в админку, найдите в расширениях плагин "Connecting Libs" и установите его.
В конфигурации плагина подключите то, что вам нужно. Всё - можно идти спокойно верстать.
https://github.com/webitproff/cot-connectinglibs