вход   

Модуль подключения языковых файлов для публичной части

весь список раздела "Модули, компоненты, файлы"


Папку "weblooter.langfile" из архива файлов необходимо поместить в "/bitrix/modules/".
В админке сайта, в Marketplace Установленные решения, установить модуль.
Или установить стандартно с Marketplace.

Для работы модуля неоходимо добавить на страницу

php

CModule::IncludeModule("weblooter.langfile");


Или для удобства можно добавить 1 раз в файл "init.php"

После того, как вы подключили модуль, необходимо на странице, где вы будете вызывать языковой файл, подключить его функцией
php
 IncludePublicLangFile(__FILE__); 

Язык, подключаемый по умолчанию определен Вашим сайтом в константе LANGUAGE_ID. Модуль подлкючает языковой файл, отталкиваясь от значения константы. Говоря иначе, если определить ее например на английский (en), то модуль подключит английский язык.

Но определять необходимо раньше, чем подлючается /bitrix/header.php

php

define('LANGUAGE_ID','en');
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php');
IncludePublicLangFile(__FILE__);    

$APPLICATION->SetTitle(GetMessage('PAGE_TITLE')); 


Так же и для других языков

php

define('LANGUAGE_ID','ru');
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php');
IncludePublicLangFile(__FILE__);   

$APPLICATION->SetTitle(GetMessage('PAGE_TITLE')); 
  

Вот самый простой пример кода.
На странице:

Выберите язык:
html
<a href="<?=$APPLICATION->GetCurDir()?>?lang=ru"> Русский</a>  
или
<a href="<?=$APPLICATION->GetCurDir()?>?lang=en"> English</a>
А в начале файла страницы

php

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'));

Пример изменения языковой константы по языковой папке /ru/, /en/ и т. п.
php


$lang = 'ru';
if((strpos($_SERVER['REQUEST_URI'],'/en/')!==false)) $lang = 'en';
if((strpos($_SERVER['REQUEST_URI'],'/de/')!==false)) $lang = 'de';
if((strpos($_SERVER['REQUEST_URI'],'/fr/')!==false)) $lang = 'fr';
if((strpos($_SERVER['REQUEST_URI'],'/es/')!==false)) $lang = 'es';
if((strpos($_SERVER['REQUEST_URI'],'/pl/')!==false)) $lang = 'pl';
if((strpos($_SERVER['REQUEST_URI'],'/bg/')!==false)) $lang = 'bg';
if((strpos($_SERVER['REQUEST_URI'],'/cz/')!==false)) $lang = 'cz';
if((strpos($_SERVER['REQUEST_URI'],'/ee/')!==false)) $lang = 'ee';
if((strpos($_SERVER['REQUEST_URI'],'/pl/')!==false)) $lang = 'pl';
if((strpos($_SERVER['REQUEST_URI'],'/pl/')!==false)) $lang = 'pl';
if((strpos($_SERVER['REQUEST_URI'],'/ge/')!==false)) $lang = 'ge';
if((strpos($_SERVER['REQUEST_URI'],'/hu/')!==false)) $lang = 'hu';
if((strpos($_SERVER['REQUEST_URI'],'/il/')!==false)) $lang = 'il';
if((strpos($_SERVER['REQUEST_URI'],'/it/')!==false)) $lang = 'it';
if((strpos($_SERVER['REQUEST_URI'],'/lv/')!==false)) $lang = 'lv';
if((strpos($_SERVER['REQUEST_URI'],'/ro/')!==false)) $lang = 'ro';
if((strpos($_SERVER['REQUEST_URI'],'/tr/')!==false)) $lang = 'tr';
if((strpos($_SERVER['REQUEST_URI'],'/ua/')!==false)) $lang = 'ua';
if((strpos($_SERVER['REQUEST_URI'],'/lt/')!==false)) $lang = 'lt';

define("LANGUAGE_ID", $lang);
Этот блок добавляется в файл /bitrix/php_interface/dbconn.php
И в каждой папке будет свой язык.



Модуль на Маркетплейс:

Архив файлов: