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

romagromov

  • Давно я тут
  • 621
  • 9 / 3
Здравствуйте!
Вот у меня есть 3 переменных - $a, $b, c$ в шаблоне
И есть текст, внутрь которого мне нужно их вставить "Some long text for front end"
Я делаю это по дебильному:
Код
echo JText::_(SOME).$a.JText::_(LONG).$b.JText::_(TEXT).$c;

А как предать их прямо в языковую строку, типа
SOME_LONG_TEXT = "Some %a long %b text c% for front end", чтобы не резать ее на части?
Спасибо.

*

sivers

  • Завсегдатай
  • 1355
  • 179 / 0
А как предать их прямо в языковую строку, типа
SOME_LONG_TEXT = "Some %a long %b text c% for front end", чтобы не резать ее на части?
Что-то вроде такого должно быть:
Код
echo sprintf(JText::_(SOME_LONG_TEXT), $a, $b, $c);
Можно использовать printf - тогда echo не требуется (команда сразу выводит текст, а не возвращает его).
Обратите внимание, что в языковой константе надо использовать другие спецсимволы:
Код
SOME_LONG_TEXT = "Some %s long %s text %s for front end"
Значение их, подробности и примеры можно посмотреть здесь:
https://www.php.net/sprintf
На связи в телеге @sivers
*

romagromov

  • Давно я тут
  • 621
  • 9 / 3
Да, работает.
Спасибо!
Без этой функции мультиязычность сделать нереально.
*

dmitry_stas

  • Легенда
  • 13124
  • 1230 / 8
JText::sprintf('SOME_LONG_TEXT', $a, $b, $c)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться