Языки сайта

Модуль относится к части CMS «Управление», пересекается со всеми модулями сайта и является обязательным для установки.

Языки сайта

Список языков сайта

Языки сайта имеют следующие характеристики:

При добавлении и удалении языка сайта меняется структура базы данных, структура сайта. Нельзя удалить основной язык сайта.

Любой язык сайта можно определить как основной для административной части и основной для пользовательской части. При этом язык, ранее помеченный как основной для соответствующей части, становится не основным. Основной язык нельзя удалить.

Перевод интерфейса

Список переведенных фраз

Модуль позволяет задать свой вариант текстов в интерфейсе. Форма редактирования интерфейса имеет следующие поля:

Редактирование перевода

Перевод исходных текстов можно задавать вручную. Если открыта отличная от русской версия сайта, то весь доступный на текущей странице текст, не имеющий перевода, будет добавлен в базу для дальнейшего перевода. Искать добавленный текст легко с помощью формы поиска.

Перевод интерфейса можно импортировать и экспортировать, а также редактировать из пользовательской части с помощью модуля «Панель быстрого редактирования».

Подключение

Подключаемая часть – файл modules/languages/languages.inc.php. В нем описан класс Languages_inc. В модуле к объекту класса можно обратиться через переменную $this->diafan->_languages. Экземпляр класса создается при первом вызове переменной.

Свойства

var is_ru = false – это русская версия сайта.

Методы

string get (string $name, [string $module_name = ''], [boolean $useradmin = false], [array $args = array()]) – Отдает значение перевода строки.

  • string $name: текст для перевода
  • string $module_name: модуль
  • boolean $useradmin: выдавать форму для редактирования
  • array $args: аргументы

Для быстрого доступа к функции в основном объекте системы определена функция _().

Пример:

// полный вариант
$text = $this->diafan->_laguages->get('Здравствуйте %s! У Вас %d новых
сообщений.'
, 'registration', false, array('Иван Иванович', 3));

string base_admin () – Определяет язык версии административной панели для текущего пользователя.

void import (string $file_path, integer $lang_id) – Импортирует файл перевода.

  • string $file_path: путь до файла
  • integer $lang_id: ID языка, для которого загружается перевод

Пример:

// импортируем файл перевода langs/eng для языка интерфейса ID=2
$this->diafan->_languages->import(ABSOLUTE_PATH.'langs/eng', 2);

string _ (string $name, [boolean $useradmin = false]) – возвращает перевод строки для текущего модуля.

  • access: public

  • string $name: текст для перевода

  • boolean $useradmin: выдавать форму для редактирования, параметр только для пользовательской части

Дополнительно можно передать аргументы в функцию, для того чтобы подставить их в строку функцией vsprintf().

Пример:

// сокращенный вариант
$text = $this->diafan->_('Здравствуйте %s! У Вас %d новых сообщений.', false,
'Иван Иванович', 3);

Свойства

array all – массив данных обо всех языках, использующихся на сайте.

Пример:

print_r($this->diafan->_languages->all);

Результат:

Array
(
    [
0] => Array
        (
            [
id] => 1 // номер языка
            
[name] => русский // название языка
            
[shortname] => ru // сокращенное название, используется в URL
            
[base_admin] => 1 // язык является основным для административной части
            
[base_site] => 1 // язык является основным для сайта
            
[page_act] => 1 // текущая страница существует для языкового зеркала
        
)

    [
1] => Array
        (
            [
id] => 2
            
[name] => английский
            
[shortname] => eng
            
[base_admin] => 0
            
[base_site] => 0
            
[page_act] => 1
        
)

)

integer site – номер языка, использующегося как основной на сайте.

Пример:

if(_LANG == $this->diafan->_languages->site)
{
    echo
'Текущий язык является основным на сайте.';
}

integer admin – номер языка, использующегося как основной в административной части.

Пример:

if(_LANG == $this->diafan->_languages->admin)
{
    echo
'Текущий язык является основным для административной части.';
}

Шаблонные теги

Для работы с модулем «Языки сайта» служат следующие шаблонные теги:

show_block – выводит ссылки на альтернативные языковые версии сайта.

Атрибуты:

defer – маркер отложенной загрузки шаблонного тега: event – загрузка контента только по желанию пользователя при нажатии кнопки "Загрузить", emergence – загрузка контента только при появлении в окне браузера клиента, async – асинхронная (одновременная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, sync – синхронная (последовательная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, по умолчанию отложенная загрузка не используется, обычный вывод шаблонных тегов в коде страницы;

defer_title – текстовая строка, выводимая на месте появления загружаемого контента с помощью отложенной загрузки шаблонного тега;

template – шаблон тега (файл modules/languages/views/languages.view.show_block_template.php; по умолчанию шаблон modules/languages/views/languages.view.show_block.php).

Пример:

<insert name="show_block" module="languages">

выведет список ссылок на языковые версии сайта, «ru/eng»

В шаблоне тега можно получить значение любого атрибута через переменную $result["attributes"]["название атрибута"].

База данных

{languages} – Языки сайта

{languages_translate} – Перевод интерфейса

Файлы

  1. modules/languages/admin/js/languages.admin.translate.js – редактирование списка языковых версий сайта, JS-сценарий;

  2. modules/languages/admin/languages.admin.php – редактирование списка языковых версий сайта;

  3. modules/languages/admin/languages.admin.translate.php – редактирование перевода интерфейса;

  4. modules/languages/languages.php – контроллер;

  5. modules/languages/languages.export.php – экспорт языкового файла;

  6. modules/languages/languages.inc.php – подключение модуля;

  7. modules/languages/languages.install.php – установка модуля;

  8. modules/languages/languages.model.php – модель;

  9. modules/languages/views/languages.view.show_block.php – шаблон ссылок на языковые версии сайта.

Ваши комментарии и дополнения

Ваш комментарий будет первым.

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.