Создание интересного сайта — залог успешного продвижения Бизнеса... 
Документация sh404sef FAQs Создание плагина для sh404SEF — Мультиязычность

Создание плагина для sh404SEF — Мультиязычность

URL-адреса в sh404SEF состоят из двух частей: некоторые элементы URL-адресов являются постоянными, а некоторые нет.

  • Постоянные элементы это, например: .../view-products-details или /Delete-product
  • Не постоянные элементы это: .../pet-mammoth-clothing

Delete-product, является фиксированной строкой текста, которая описывает действия, в то время как pet-mammoth-clothing извлекается из базы данных. 

Постоянные элементы переводятся через набор языковых строк, которые должны быть предоставлены всместе с плагином, либо зашиты внутри плагина, либо как отдельный текстовый файл. Помните, что все строки перевода должны быть доступны в любое время. Плагины, поставляемые с sh404SEF, используют глобальную переменной $sh_LANG. Это двух-уровневый массив, использующий языковой код ISO и идентификатор строки. Пример:

  • $sh_LANG['fr']['_SH404SEF_FB_SHOW_USER_PROFILE'] = 'Voir vos informations utilisateur';
    $sh_LANG['en']['_SH404SEF_FB_SHOW_USER_PROFILE'] = 'View user information';

При использовании такого массива, Вы можете использовать две переменные, которые инициализируются с соответствующими значениями в разделе инициализации плагина:

  • $shLangName : contains the URL language name ("french", "english", "spanish")
    $shLangIso : contains the URL language short iso code ("fr", "en", "es")

Таким образом, Вам нужно использовать: 

  • $title[] = $sh_LANG[$shLangIso]['_SH404SEF_FB_SHOW_USER_PROFILE']

Переменные элементов, пересчитываются в Joomfish. Поскольку перевод URL может быть включен или выключен, на компонентной основе, то рекомендуется использовать следующий код, при получении каких-либо данных, которые могут быть переведены из базы данных:

  • if (shTranslateUrl($option, $shLangName))
    $database->loadObject( $sectionTitle);
    else $database->loadObject( $sectionTitle, false);

shTranslateUrl() вернет TRUE, если URL для компонента должен быть переведен. shTranslateUrl(), также, будет всегда возвращаться ложной, если Joomfish не установлен, поэтому синтаксис будет работать в любой ситуации. Если Joomfish установлен в Joomla!, то функция объекта базы данных может быть вызвана со вторым параметром, включения/выключения перевода. 

ВНИМАНИЕ: для того, чтобы Joomfish нормально функционировал и выполнял перевод, необходимо включить в таблицу ID пункт вашего запроса! Например:

  • "SELECT name FROM #__contents WHERE id=3" никогда не будет переведена. 

Чтобы обеспечить перевод, запрос должен быть таким:

  • "SELECT id, name FROM #__contents WHERE id=3"

При этом последний запрос должен быть таким:

  • $database->loadObject( $sectionTitle); вернет переведенное значение
    $database->loadObject( $sectionTitle, false); вернет исходное значение (то есть значение по умолчанию)

ПРИМЕЧАНИЕ: Помните, необходимо удалить переменную $lang из URL (shRemoveFromGETVarsList ('Lang')), в противном случае, конечный URL-адрес будет отображаться как строка запроса (...&lang=xx...).

Рекомендуемый хостинг для сайта:

Лучшие видеокурсы по созданию сайтов:

Оптимизация сайта

При заказе оптимизации и продвижения сайта - новый сайт или редизайн старого - сделаем бесплатно
(обращайтесь лично ко мне: Игорь Вялов )
Обсуждение SEO-энциклопедии на форуме
Видео-уроки SEO — оптимизация Joomla »

  • Категория: FAQs
  • Просмотров: 5759

Комментарии (0)

Оставить комментарий

Пожалуйста, войдите, чтобы комментировать.

Навигатор: Документация sh404sef FAQs Создание плагина для sh404SEF — Мультиязычность