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

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

  • BanMaster
  • 4018
  • 259 / 5
  • @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 | Миграция/Обновление | Сопровождение | 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

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Теперь понял )

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

Acme

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

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @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 | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 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.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поехал дизайн главной страницы одного из трех языков

Автор hlitov

Ответов: 0
Просмотров: 848
Последний ответ 09.11.2023, 12:12:19
от hlitov
Функция вывода ссылки на текущую страницу

Автор rubinded

Ответов: 5
Просмотров: 3673
Последний ответ 02.03.2020, 22:51:49
от sivers
Языков нет вообще

Автор nexirt

Ответов: 12
Просмотров: 4835
Последний ответ 25.07.2019, 17:08:27
от anatoliy221
[РЕШЕНО]Нестандартный переключатель языков Joomla 3.9.4

Автор Шмайсер

Ответов: 1
Просмотров: 1856
Последний ответ 30.03.2019, 13:00:12
от Шмайсер
В Extension Manager: Install Languages не видит языков

Автор mkvmexahuk

Ответов: 1
Просмотров: 4504
Последний ответ 09.03.2019, 19:40:31
от draff