@spido

Как можно заставить обрабатывать HTML теги в языковых файлах?

Приветствую!

Нужно, чтобы в языковых файлах можно было применить теги HTML. Например такие как: <br>, <span>, <em>.
Фреймворк ThinkPHP6, китайский.
Языковой файл выглядит так:
<?php
$lang['use_top_up_cards']       = 'Оплатить с препей карты<br><span class="fl ml30">Доступная сумма:</span>';
$lang['pre_deposit']        = 'Оплатить с депозита<br><span class="fl ml30">Доступная сумма:</span>';
return $lang;


В шаблоне переменная записывается так:
{$Think.lang.use_top_up_cards}
{$Think.lang.pre_deposit}


В результате, в браузере, на странице сайта выводятся не обработанные теги вместе с текстом:
Оплатить с препей карты<br><span class="fl ml30">Доступная сумма:</span>
Оплатить с депозита<br><span class="fl ml30">Доступная сумма:</span>


Как можно заставить обрабатывать HTML теги в языковых файлах?
Может переменную $lang добавить в глобальный файл конфигурации и разрешить обрабатывать теги?
Как это сделать?
Какое есть решение?
Подскажите, если знаете.
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 3
firedragon
@firedragon
Senior .NET developer
Выглядит так как буд то отдается text/plain
Посмотрите ваш шаблон как он отдается в заголовках должно быть text/html

В общем начните с самого верхнего уровня и разбирайтесь где ошибка

Попробуйте так
{$Think.lang.use_top_up_cards|raw}
{$Think.lang.pre_deposit|raw}
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега PHP
Надо включить логику и использовать языковую поддержку для перевода, а не для вывода HTML, JS или canvas

$lang['use_top_up_cards']       = 'Оплатить с препей карты';
$lang['available_sum']       = 'Доступная сумма:';
$lang['pre_deposit']        = 'Оплатить с депозита';
return $lang;

В шаблоне
{$Think.lang.use_top_up_cards}<br><span class="fl ml30">{$Think.lang.available_sum}</span>
{$Think.lang.pre_deposit}<br><span class="fl ml30">{$Think.lang.available_sum}</span>
Ответ написан
Awilum
@Awilum
Flextype & Atomastic Developer
Я бы не хранил HTML разметку в переводах!

В переводах должен быть текст + плейсхолдеры, которые должны быть обработаны на стороне шаблонизатора!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы