Як встановити рішення
  1. Завантажити файли на сервер.
  2. Додати в файл .htaccess, який знаходиться в кореневій директорії сайту, рядок
    php_value auto_prepend_file "[full_path]/protected/sli.php"
    Де [full_path] - повний шлях до директорії з модулем.
    Якщо весь сайт працює через один контролер, можна підключити модуль через include "[full_path]/protected/sli.php";
    Увага! Директива auto_prepend_file підключить перекладач до всіх php файлів. Для того, щоб виключити переклад, наприклад адмін частини сайту, пропишіть в .htaccess файл в директорії з модулем, який не треба перекладати, рядок php_value auto_prepend_file none, або пропишіть в налаштуваннях системи адреси, які потрібно ігнорувати.
  3. Якщо Ваш сайт не працює через 1 контролер. Пропишіть у файлі htaccess реврайти, для того, щоб сторінка з мовної версії вела на оригінальну.
    Наприклад:
    RewriteEngine on
    RewriteRule ^(?:(?:ua|en)/)?(.*)$ $1 [L]
    Де ua|en - мовні версії, додані в SLI.
  4. Виставити права 0777 на папку protected/data й на всі внутрішні директорії.
  5. Відкрити файл protected/config/config.php і прописати дані конекту до БД MySQL.
  6. Зайти в адмінку за адресою htt://адресСайта/sli/index.php
  7. Ввести свій Email і пароль.
  8. Увійти під зазначеними даними.
Початок роботи
  1. Заходимо в адмінку, переходимо на сторінку з додаванням мов.
  2. Натискаємо кнопку додати. Заповнюємо поля. Аліас - це коротка назва для мови (зазвичай ua, en, ru, cn і тд.), яке буде відображатися в адресному рядку при виборі мови.
  3. Натискаємо кнопку зберегти.
  4. Переходимо на вкладку параметри. Вибираємо мову оригіналу. Це, власне, мова, на якій створено сайт і яка буде використовуватися для автоматичного перекладу.
  5. Кешування використовує Memcache, який повинен бути встановлений на Вашому сервері. Якщо розширення відсутнє, ігноруємо дану можливість прискорити роботу перекладача, або встановлюємо розширення.
  6. Показувати час відпрацювання програми. Ця настройка відображає час, за який система парсить і переводить сторінку, на якій Ви перебуваєте. 
  7. Просканувати сайт.
  8. Перевести дані.
Налаштування програми

Описання полів:

  • Ігнорувати адреси - адреси, які не будуть потрапляти на переклад. Кожен адрес додається з нового рядка. Щоб використовувати регулярний вираз, рядок повинен починатися на #
    Приклад:
    - Проігнорувати всі адреси, що починаються на /admin.php (використовуємо регулярний вираз) -
    - Проігнорувати тільки адресу search.php
  • Дозволені адреси - адреси, на які буде віддаватись контент з перекладом. Якщо доданий хоча б один адрес, всі інші будуть мати статус ігнорованих!
    Кожен адресу з нового рядка.
    Використовується тільки в разі переведення сайту посторінково. Якщо Ви не маєте можливості перевести весь сайт і перевели тільки його частину, додаєте адреси перекладених сторінок в список.
    Коли Ви закінчите переклад, очистіть список.
  • Ігнорувати сторінки з текстом - якщо на сторінці буде знайдена одна з перерахованих фраз, сторінка буде мати статус ігнорованої. Контент не потрапить на переклад і не буде замінений на перекладений. Зазвичай використовується для сторінок з помилками.
    Приклад:

    Будуть проігноровані сторінки з фразою PHP error або syntax error
  • Ігнорувати теги - назва тегів, вміст яких не повинен потрапити на переклад. Через кому.
    Приклад:

    Дані із зазначених тегів не потраплять на переклад.
  • Переводити значення атрибутів - назва атрибутів, значення яких повинно потрапити на переклад. Через кому.
    Наприклад:

    Контент зазначених тегів потрапить в адмінку на переклад.
Сканер сайту

Сканер - це модуль, за допомогою якого Ви можете просканувати свій сайт на наявність даних на переклад.

Сканування "URL". Для того, щоб просканувати весь сайт, в полі "адреса" ставимо "/". Таким чином ми почнемо сканувати весь сайт з головної сторінки. Сканер пройдеться по всіх сторінок і збереже (виходячи з налаштувань парсера) дані, які необхідно перевести.

Сканування "Sitemap". У полі "адреса" прописуємо шлях до файлу sitemap.xml, і парсер пройдеться по всіх посиланнях файлу.

Сканувати весь сайт має сенс тільки при першому підключенні системи. Всі дані заносяться в базу автоматично при першому відвідуванні сторінки.

Змінні

Змінні - модуль сайту, який дозволяє створювати жорсткі заміни контенту для кожної використовуваної мови.
Наприклад, у нас на сайті є картинка з російським текстом, і ми хочемо, щоб в англійській версії відображалася інша картинка з англійським текстом. Для цього в даному розділі створюємо змінну.
У полі "оригінал" пишемо адресу картинки "/ru-pic.png". У полі "англійський" пишемо адресу до картинки для англійської версії сайту "/en-pic.png". Тепер при зміні мови на англійську всі входження "/ru-pic.png" будуть замінені на "/en-pic.png".
Таким чином ми можемо заміняти JavaScript, змінювати текст, який не потрапляє на переклад звичайним чином, замінювати статику.

Як додати частину контенту в ігнор?

Якщо у Вас на сайті є блоки, які часто оновлюються (наприклад, коментарі), і Ви не хочете, щоб дані з'являлися в списку на переклад, додайте до початку контенту (який не потрібно перекладати) <!--SLI::ignore-->
і в кінці <!--SLI::endIgnore-->
Наприклад:
<!--SLI::ignore-->
Контент, який не буде переведений
<!--SLI::endIgnore-->
Або
<?php SLIApi::ignoreStart();?>
Контент
<?php SLIApi::ignoreEnd();?>

Як додати блок з вибором мови на сайт?

Відображення мов на сайті

Для того, щоб отримати масив з використовуваними мовами, скористайтеся функцією
SLIApi::getLanguagesChangeList()

Приклад використання:
<ul class="language">
    <?php foreach(SLIApi::getLanguagesChangeList() as $val) {?>
    <li<?php echo $val['selected'] ? ' class="selected"': '';?>><a % href="<?php echo $val['href'];?>"><img src="/sli/static/img/flags/<?php echo $val['alias'];?>.png" alt="<?php echo $val['title'];?>" title="<?php echo $val['title'];?>"></a></li>
    <?php }?>
</ul>

Зверніть увагу на знак відсотка "<a%". Він потрібен для того, щоб парсер розумів, що дане посилання не потрібно локалізувати.
Для додавання вибору мови Ви можете скористатися наведеним вище прикладом.

Налаштування під MODx CMS
  • Зробіть всі, крім пункту 3, кроки з розділу установка.
  • Відкрийте файл .htaccess в кореневій директорії сайту
  • Замініть рядок
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    На
    RewriteRule ^(?:ua/)?(.*)$ index.php?q=$1 [L,QSA]
    Де ua - мова, додана у налаштуваннях SLI
  • Що б адмінка MODx не потрапила на переклад - додайте в manager/.htaccess рядок
    php_value auto_prepend_file none
Не добавляются переводы в админку

Это может просиходить по нескольким причинам:

  1. Возможно вы не подключили переводчик к CMS либо на хостинге не работают .htaccess. Проверить это можно включив в настройках SLI опцию "Показывать время отработки программы". Если после включения в самом низу сайта не будет выводится время выполнения SLI - значит скрипт не подключен.
  2. Кодировка сайта отличная от UTF-8. Для решения данной проблемы откройте файл sli/protected/core/SLITranslate.php , найдите строку
     
    public static function autoInit($content)
    {
    
    и после открывающей фигурной скобки вставьте
    $content = iconv("windows-1251", "UTF-8", $content);
    
    где windows-1251 ваша текущая кодировка сайта. И перед строкой
    return $content;
    
    вставляем
    $content = iconv("UTF-8", "windows-1251", $content);
    
    то есть декодируем строку обратно.