Перевод сайта на разные языки


В cms предусмотрено одновременное ведение сайта на пяти языках, Один основной и четыре дополнительных.

Параметры:

В цмс всегда присутствуют один основной язык + 4 дополнительных.

Настраиваются языки в файле конфигурации cfg.php
 
Например, Для трех языков настроки такие:
$m_conf['lang_count'] = 3;
$m_lang[0]['naz']='Рус';
$m_lang[1]['naz']='Укр';
$m_lang[2]['naz']='Eng';
 
При такой настройке для каждого узла сайта будет доступна вкладка "Перевод", под которой будут под-вкладки: Укр, Eng, на которых необходимо внести переводя строковых и текстовых полей на соответствующие языки.
 
В отличие от сайта, Панель управления может быть только на одном языке. Сейчас доступны версии на Руссокм, Украинском и ангдийском языках. На других язвках панель может быть предоставлена по заказу.
 
Управление языками осуществляется через сессию.
Для того чтобы перейти на другой язык необходимо вызвать любую страницу сайта с параметрами 
&CMD=SET_LANG&LANG=Номер языка
 
Например, для переходя на украинский, на этой странице, необходимо вызвать
 
В коде сайта обычно это выглядит как <a hef="https://cms.webolla.com/index.php?PGID=214&CMD=SET_LANG&LANG=1">На украинский</a>
 
Для того чтобы данная команда (CMD=SET_LANG) работала, необходимо в папке шаблонов (обычно это templates, реже site_templates) разместить файл cmd_set_lang.php.
Готовый файл можно скачать тут  cmd_set_lang.ph_  (расширение после скачивания поменять на php)
 
Про команду, чувствительную к языкам можно посмотреть тут http://cms.webolla.com/cmd_lang
 
Внутри шаблонов слова и фразы можно переводить через словарь.
Для этого необходимо:
1. Разместить переводчик в templates/plugins (Вместо templates папка шаблонов может быть настроена на site_templates). Файл можно взять тут l_translator.ph_
Далее разместить в  templates/plugins/on_after_site.php
Следующего содержания 
<?php
 include_once('templates/plugins/l_translator.php');
 $out = ukr_translate($out,$this->cur_lang); 
?>
 
2. Создать
templates/plugins/dictionary.txt
templates/plugins/new_words.txt (настроить права так, чтобы была возможназапист в этот файл)
 
Для второго языка, dictionary.txt.2 и new_words.txt.2 соответственно.
 
3.В cfg.php настроить константы
 
$m_conf['translator_new_words'] = 'templates/plugins/new_words.txt';
$m_conf['translator_dictionary'] = 'templates/plugins/dictionary.txt';
 
4. Все фразы, которые должны переводится в шаблоне обернуть в [%t:фраза:t%]
 
5. Переключить язык с помощью http://Ваш сайт/index.php?PGID=1&CMD=SET_LANG&LANG=1
6. Переходить по страницам.
При этом новые слова будут накапливаться в файле  new_words.txt
Далее содержимое этого файла необходимо перенести в dictionary.txt дописав справа от каждой фразы ее перевод через <->. Каждая фраза должна быть записана с новой строки.
По окончанию переноса очистить файл new_words.txt
7. Проделать то-же самое для слкдующего языка. 
http://Ваш сайт/index.php?PGID=1&CMD=SET_LANG&LANG=2
файлы new_words.txt.2 и dictionary.txt.2 соответственно.
 
Еще один способ перевода: указывать отдельный шаблон или файл обработки для разных языков.
Например: Файл обработки
somepage.htm#la1:_ukr
означает, что для язука по-умолчанию будет использован somepage.htm, а для первого языка somepage_ukr.htm.
Аналогичным образом работает и layout.