#html #cakephp #text #helper
#HTML #cakephp #текст #помощник
Вопрос:
У меня есть текстовая часть, подобная этой:
<p><?php echo __('<strong>some strong text</strong> some other text THIS IS AN URL more other text <strong>more strong text</strong> and finally end of text'); ?></p>
Интересно, какой был бы лучший способ:
- используйте html-теги в таких текстовых строках (поскольку мне нужно использовать переводы i18n)
- как я могу добавить URL-адрес в середину текста?
При настройке URL-адреса я также хотел бы использовать стиль Cake $this->Html->Link()
, но я не знаю, как я могу это сделать в этом примере выше?
Ответ №1:
Использование переменных в сообщениях перевода Функции перевода позволяют интерполировать переменные в сообщения, используя специальные маркеры, определенные в самом сообщении или в переведенной строке:
echo __("Hello, my name is {0}, I'm {1} years old", ['Sara', 12]);
Просто сгенерируйте свою ссылку $link = $this->Html->link(__('foo'), [/*...*/]);
и передайте $link функции __() 2nd arg, как показано в примере выше.
Прочитайте весь раздел о функциях перевода, есть еще несколько полезных вещей, таких как множественное число / единственное число и обработка чисел.
Комментарии:
1. Привет, спасибо за пример. Возможно ли добавить ссылку таким образом? __(‘это мой <текст ссылки>’, [‘текст ссылки’, ‘ ..’] )
Ответ №2:
Вот как это сделать.
<p>
<?php
$string = '<strong>some strong text</strong> some other text ';
$string .= 'https://www.example.com';
$string .= ' more other text <strong>more strong text</strong> and finally <b>end of text</b>';
echo $this->Html->link(__($string),'http://www2.test.com',['escape'=>false]);
?>
</p>