Пакет локализации для мультиязычного сайта на Joomla

Пакет локализации Joomla ~ [ wwweb.uz ]

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

Раньше для этой цели использовались дополнительные плагины, которые по-сути создавали копии документов с привязкой перевода содержимого оригинала статьи. Теперь же в joomla есть поддержка мультиязычности, что намного упрощает работу и делает создание и сопровождение мультиязычного сайта гораздо удобнее и понятнее.

Сегодня я хочу показать вам, как создать поддержку языка для мультиязычного сайта, которого пока нет в сообществе joomla (joomla community).
Т.е. вы не можете скачать и установить нужный вам язык через менеджер установки языковых пакетов в административной части, его пока там нет, не перевели еще.

Менеджер языковых пакетов Joomla

Конечно же, в первую очередь я обратился на официальный форум поддержки жумлы, для того, чтобы уточнить, как мне быть и когда будет поддержка, в моем случае, Узбекского языка.
На заданный вопрос получил ответ, что действительно на настоящий момент поддержки языкового пакета узбекского языка нет, и планируется он только при активном содействии волонтеров. В качестве альтернативы мне предложили как раз сторонние плагины для перевода существующих материалов на нужный мне язык.

Нет ничего плохого в том, чтобы использовать такие плагины для языковой поддержки как FaLang, jDiction, JA Multilingual и пр. Но мне было необходимо использовать именно встроенную возможность самого движка Joomla.
Задача была следующая — создать мультиязычный сайт для трёх основных языков — Русский, Английский, Узбекский. Вот с первыми двумя проблем вообще не было, т.к. их языковые пакеты активно обновляются, а вот с третьим языком вышла оказия.

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

Порядок создания языка контента, которого нет в языковых пакетах.

1. Скопировать папку существующего языкового пакета (например Russian RU), находящуюся в КореньСайта / language / ru-RU.

Где сидит папка ru-RU

2. Переименовать папку и языковую приставку в имени всех файлов с ru-RU.* на uz-UZ.* (прим. Это делается уже на своем стационарном компьютере).
Файлов там больше чем три штуки, поэтому я использовал total commander для пакетного переименования файлов по маске.
3. Отредактировать содержимое файлов install.xml и uz-UZ.xml.
4. В файле uz-UZ.localise.php для абстрактного класса Ru_RULocalise в имени класса заменить первые пять символов на локаль Uz_UZ.

abstract class Ru_RULocalise

5. Сжать измененную папку с файлами в zip архив.
6. Добавить языковой пакет через менеджер Расширений стандартными средствами Расширения / Менеджер расширений / Загрузить файл пакета.

Теперь самое интересное, так вышло у меня, не знаю как иначе, если вы в курсе, то подскажите.

7. Добавить одну запись в базу данных, в таблицу _extensions, тип элемента pkg_uz-UZ, и сделать соответствующую связь по id, по образцу другого языка. Также прописать содержимое данной записи по образцу другого языка.

Language pack SQL string

После загрузки языкового пакета в вашей базе данных появится только одна строка —
Uzbek — language — uz-UZ,
у которой в колонке package_id будет значение «0», а должен быть id строки языкового пакета.
Теперь, чтобы данный языковой пакет заработал нужно добавить строку пакета —
Uzbek (uz-UZ) Language — package — pkg_uz-UZ.

Эта строка по-сути скопирована по аналогии с существующей ru-RU или en-GB.

Если всё сделано верно, то в админке жумлы вы должны увидеть следующее:

Установленные языки

Языки контента

Ну, а дальше, настраиваем на своем сайте мультиязычность.

P.S. Конечно же вышеперечисленные шаги подразумевают, что вам нужно будет осуществить перевод всего содержимого файлов вашего языкового пакета, т.к. данные в этих файлах содержат перевод того языка (в нашем случае ru_RU), который брался за основу.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *