Cakephp 2.5. : как использовать html-теги и autoLinkUrls в этом случае

#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>