0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 359 Просмотров
*

Acme

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Всем привет!
Такой вопрос. В шаблоне прописан URL на одну страницу ( к примеру, на русском языке ):
Код
 <h2><a href="http://ссылка/internets"><?php echo JText::_( 'TPL_LINKTI_HOME_PACKAGES_TITLE' ); ?>  </a></h2>
Как можно сделать, чтобы при переключении языка менялась ссылка? То есть, прописать в шаблоне две ссылки.
« Последнее редактирование: 15.03.2017, 12:30:15 от Acme »
*

SeBun

  • Живу я здесь
  • 3377
  • 214 / 3
  • @SeBun48
Re: Ссылки
« Ответ #1 : 15.03.2017, 12:18:36 »
Нет. TPL_LINKTI_HOME_PACKAGES_TITLE - это константа, содержащая, как я понимаю из названия, заголовок страницы. Где то в файлах шаблона есть файл локализации, в котором и прописан перевод. Например, там может быть такая строка:
Код: php
TPL_LINKTI_HOME_PACKAGES_TITLE = "This is title";

Ваша задача - найти этот файл. Обычно для каждого языка делается отдельная папка с префиксом языка и файл с префиксом, например en_EN.templatelang.ini, ваша задача сделать копию этого файла, изменить префикс на ru_RU и перевести его содержимое. Локализация может быть в папках language движка (их две, одна для админки).
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Сопровождение | IT-аутсорсинг
*

Acme

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Нет. TPL_LINKTI_HOME_PACKAGES_TITLE - это константа, содержащая, как я понимаю из названия, заголовок страницы. Где то в файлах шаблона есть файл локализации, в котором и прописан перевод. Например, там может быть такая строка:
Код: php
TPL_LINKTI_HOME_PACKAGES_TITLE = "This is title";

Ваша задача - найти этот файл. Обычно для каждого языка делается отдельная папка с префиксом языка и файл с префиксом, например en_EN.templatelang.ini, ваша задача сделать копию этого файла, изменить префикс на ru_RU и перевести его содержимое. Локализация может быть в папках language движка (их две, одна для админки).
Вы меня не совсем так поняли. Где константы менять я знаю, вопрос в другом - ссылки. Дело в том, что, к примеру, при нажатии на заголовок "Акции" переходит все время на одну и туже страницу. То есть, как видно из кода на эту http://ссылка/internets, как сделать, чтобы при русской локализации переходило на http://ссылка/internets, а, к примеру, в англ.версии на http://ссылка/internets-en? В моем представлении можно это организовать через PHP (IF), но я пока-что не могу понять как это можно реализовать.
*

SeBun

  • Живу я здесь
  • 3377
  • 214 / 3
  • @SeBun48
Теперь понял )

В этом случае вам нужно перед выводом ссылки поставить условие, в котором будет определяться язык пользователя и в соответствии с ним будет формироваться адрес. Пример, как получить текущий язык. Сможете самостоятельно сделать?
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Сопровождение | IT-аутсорсинг
*

Acme

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
К сожалению, самостоятельно наврятли получится. Может знаете ссылку на более приближенной вариант к текущей теме?
*

SeBun

  • Живу я здесь
  • 3377
  • 214 / 3
  • @SeBun48
Строку:

Код: php
<h2><a href="http://ссылка/internets"><?php echo JText::_( 'TPL_LINKTI_HOME_PACKAGES_TITLE' ); ?>  </a></h2>

замените на:

Код: php
<h2><a href="http://ссылка/internets"><?php 

$app = JFactory::getApplication();
 
// Определяем язык из cookies
$langCode = $app->input->cookie->getString(JApplication::getHash('language'));
 
// Если cookies не установлены, используем язык обозревателя
if (!$langCode)
{
    $langCode = JLanguageHelper::detectLanguage();
}

if ($langCode == 'ru-RU') {
      echo 'ru/' . JText::_( 'TPL_LINKTI_HOME_PACKAGES_TITLE' );
}
else {
     echo 'en/' . JText::_( 'TPL_LINKTI_HOME_PACKAGES_TITLE' );
}
?>  </a></h2>

Не знаю, будет ли работать, набросал вам пример из предложенного кода. Здесь выполняется проверка, какой язык установлен, и в зависимости от этого формируется ссылка (в моем случае подставляет паку ru и en в адрес). Модифицируйте под себя.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Сопровождение | IT-аутсорсинг
*

fsv

  • Живу я здесь
  • 2530
  • 370 / 2
Вариант проще и универсальнее (языков может быть много):
Код: html4strict
<h2><a href="<?php echo JText::_('TPL_LINKTI_HOME_PACKAGES_TITLE_LINK'); ?>"><?php echo JText::_( 'TPL_LINKTI_HOME_PACKAGES_TITLE' ); ?></a></h2>
ru-Ru
Код: html4strict
TPL_LINKTI_HOME_PACKAGES_TITLE_LINK="https://www.google.ru/"
en-En
Код: html4strict
TPL_LINKTI_HOME_PACKAGES_TITLE_LINK="https://www.google.com/"

Веб-разработка: заказ.
*

Acme

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Спасибо всем за помощь! Воспользовался вариантом от fsv. Благодарю, fsv.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Показ контента языка по умолчанию при отсутствии его перевода на один из языков

Автор vtym

Ответов: 6
Просмотров: 190
Последний ответ 02.12.2017, 14:41:40
от vtym
"Похожие метки" выводит материалы всех языков

Автор lalalag

Ответов: 1
Просмотров: 194
Последний ответ 30.06.2017, 02:07:19
от lalalag
Языков нет вообще

Автор nexirt

Ответов: 11
Просмотров: 1139
Последний ответ 05.12.2016, 10:18:30
от ProtectYourSite
Адаптация под разные разрешения

Автор maxoh

Ответов: 5
Просмотров: 518
Последний ответ 27.10.2016, 20:44:32
от vipiusss
и снова как поменять местами флажки языков?

Автор Top4ik

Ответов: 11
Просмотров: 549
Последний ответ 03.10.2016, 11:35:03
от Top4ik