1. Создайте папку /en/ и дайте ей права на запись. Можно создать через панель управления Битрикс.
2. Добавьте новый сайт для английской версии здесь - /bitrix/admin/site_admin.php?lang=ru&set_default=Y
3. Нужно полностью скопировать все файлы и папки, кроме bitrix, .htaccess, .access.php в папку /en/
4. Нужно перевести на английский весь контент.
5. Далее требуется перевести компоненты
- для компонентов, использующих инфоблоки (это компоненты, имеющие в своем названии iblock, catalog), нужно создать инфоблоки для английского зеркала и привязать их к соответствующим компонентам в англ. версии.
- для ваших компонентов требуется переделать шаблоны вывода, чтобы они использовали специальные файлы с переводами слов, а не выводили слова напрямую. Для всех компонентов, поставляемых с Битрикс это уже сделано разработчиком CMS.
Что нужно сделать, чтобы ваш компонент стал многоязычным?
1. В коде компонента component.php и в шаблонах компонента необходимо заменить вывод русских слов на функцию GetMessage.
Например, если у вас в коде component.php есть такое:
if(!CModule::IncludeModule("iblock")) { $this->AbortResultCache(); ShowError("Модуль iblock не установлен"); return; }
требуется сделать так:
if(!CModule::IncludeModule("iblock")) { $this->AbortResultCache(); ShowError(GetMessage("IBLOCK_MODULE_NOT_INSTALLED")); return; }
А если у вас в шаблоне есть вывод русских слов например такие:
некий текст
нужно заменить на
2. Нужно создать файлы переводов.
Для файла component.php эти файлы лежат в папках папка_компонента/lang/ru/ и папка_компонента/lang/en/ .
Смотрите там файл component.php. В нем нужно добавить такую строку:
$MESS ['IBLOCK_MODULE_NOT_INSTALLED'] = "Модуль Информационных блоков не установлен"; $MESS ['IBLOCK_MODULE_NOT_INSTALLED'] = "Iblock module don't installed";
Для шаблона компонента (файл template.php) файлы переводов лежат в папке шаблона компонента в папке lang/ru/ и lang/en/
соответственно, в эти файлы нужно добавить:
$MESS ['SOME_TEXT'] = "Некий текст"; $MESS ['SOME_TEXT'] = "Some text";