Две разные ссылки для конкретных языков

  • 7 Ответов
  • 284 Просмотров

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

*

Acme

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

*

SeBun

  • *******
  • 3071
  • 185
  • @SeBun48
Re: Ссылки
« Ответ #1 : 15.03.2017, 14: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 | Администрирование
Ник занят | По личным вопросам не консультирую

*

Acme

  • ***
  • 35
  • 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

  • *******
  • 3071
  • 185
  • @SeBun48
Теперь понял )

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

*

Acme

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

*

SeBun

  • *******
  • 3071
  • 185
  • @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 | Администрирование
Ник занят | По личным вопросам не консультирую

*

fsv

  • *******
  • 2505
  • 367
Вариант проще и универсальнее (языков может быть много):
Код: 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/"

Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

Acme

  • ***
  • 35
  • 0
Спасибо всем за помощь! Воспользовался вариантом от fsv. Благодарю, fsv.