Корзина
0
Модуль подключения языковых файлов для публичной части | Weblooter Inc.
Скриншоты
Описание
Технические данные
- Опубликовано:
- 08.12.2014
- Версия:
- 1.0.2
- Установлено:
- 100 - 499 раз
- Подходящие редакции:
- «Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Бизнес», «Корпоративный портал», «Энтерпрайз»
- Адаптивность:
- Нет
- Поддержка Композита:
- Нет
- Совместимо с Сайты24
- Нет
- Совместимо с PHP 8.1
- Нет
Пользовательское соглашение
Описание
Битрикс - отличная платформа. Хотите многоязычный сайт - без проблем.
Для модулей есть возможность подключить языковой файл через IncludeModuleLangFile(__FILE__), для шаблонов компонентов - IncludeTemplateLangFile(__FILE__), для публичной части...
Эм... А вот тут, пожалуй, проблема. Стандартного функционала нет.
Сделаемкостыль свой функционал? Или старое и проверенное example.com/ru/ и example.com/en/ ?
Неудобно... Стандартный подход для компонентов и модулей удобней, да и привычнее как то...
Ну так зачем от него отказываться? Просто установите модуль и используйте фунцию IncludePublicLangFile(__FILE__) на здоровье!
Структура остается той же - в разделе, в котором вызываем функцию создаем директорию lang , а в ней по стариночке /ru/ , /en/ , и другие, какие только душе угодны =)
P.S. Для тех, кто не в курсе как создавать и подключать языковые шаблоны необходимо ознакомится с api
Для модулей есть возможность подключить языковой файл через IncludeModuleLangFile(__FILE__), для шаблонов компонентов - IncludeTemplateLangFile(__FILE__), для публичной части...
Эм... А вот тут, пожалуй, проблема. Стандартного функционала нет.
Сделаем
Неудобно... Стандартный подход для компонентов и модулей удобней, да и привычнее как то...
Ну так зачем от него отказываться? Просто установите модуль и используйте фунцию IncludePublicLangFile(__FILE__) на здоровье!
Структура остается той же - в разделе, в котором вызываем функцию создаем директорию lang , а в ней по стариночке /ru/ , /en/ , и другие, какие только душе угодны =)
P.S. Для тех, кто не в курсе как создавать и подключать языковые шаблоны необходимо ознакомится с api
Отзывы (1)
Обсуждения (1)
Авторизуйтесь, чтобы оставить отзыв или задать вопрос разработчику.
10 февраля 2021 22:30
Установка
Установка данного решения происходит автоматически.
Не требует настройки и дальнейшего вмешательства.
Для работы модуля неоходимо добавить на страницу
<?CModule::IncludeModule("weblooter.langfile");?>
Или для удобства можно добавить 1 раз в файл, название которого нельзя говорить ввиду правил маркетплейса, но который частенько используется разработчиками.
Пункт 1.5 или 1.6, если у Вас многосайтовость.
После того, как вы подключили модуль, необходимо на странице, где вы будете вызывать языковой файл, подключить его функцией IncludePublicLangFile(__FILE__).
Язык, подключаемый по умолчанию определен Вашим сайтом в константе LANGUAGE_ID. Модуль подлкючает языковой файл, отталкиваясь от значения константы. Говоря иначе, если определить ее например на английский (en), то модуль подключит английский язык.
Но определять необходимо раньче, чем подлючается /bitrix/header.php
Так же и для других языков
Если Вам до сих пор не понятно, как сделать переключение между языками на странице, то вот самый простой пример кода.
На странице:
А в начале файла страницы
P.S. Для тех, кто не в курсе как создавать и подключать языковые шаблоны необходимо ознакомится с api
Не требует настройки и дальнейшего вмешательства.
Для работы модуля неоходимо добавить на страницу
<?CModule::IncludeModule("weblooter.langfile");?>
Или для удобства можно добавить 1 раз в файл, название которого нельзя говорить ввиду правил маркетплейса, но который частенько используется разработчиками.
Пункт 1.5 или 1.6, если у Вас многосайтовость.
После того, как вы подключили модуль, необходимо на странице, где вы будете вызывать языковой файл, подключить его функцией IncludePublicLangFile(__FILE__).
Язык, подключаемый по умолчанию определен Вашим сайтом в константе LANGUAGE_ID. Модуль подлкючает языковой файл, отталкиваясь от значения константы. Говоря иначе, если определить ее например на английский (en), то модуль подключит английский язык.
Но определять необходимо раньче, чем подлючается /bitrix/header.php
<? define('LANGUAGE_ID','en'); require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php'); IncludePublicLangFile(__FILE__); $APPLICATION->SetTitle(GetMessage('PAGE_TITLE')); ?> |
<? define('LANGUAGE_ID','ru'); require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php'); IncludePublicLangFile(__FILE__); $APPLICATION->SetTitle(GetMessage('PAGE_TITLE')); ?> |
На странице:
Выберите язык: <a href="<?$APPLICATION->GetCurDir()?>?lang=ru">Русский</a> или <a href="<?$APPLICATION->GetCurDir()?>?lang=en">English</a> |
А в начале файла страницы
<? if(!empty($_GET['lang'])){ $_SESSION['SITE_LANG_ID']=$_GET['lang']; } define('LANGUAGE_ID',$_SESSION['SITE_LANG_ID']); require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php'); IncludePublicLangFile(__FILE__); $APPLICATION->SetTitle(GetMessage('PAGE_TITLE')); ?> |
P.S. Для тех, кто не в курсе как создавать и подключать языковые шаблоны необходимо ознакомится с api