2013-03-07 2 views
0

Я смущен тем, почему острые акценты не отображаются правильно в раскрывающемся меню в наборе инструментов шаблонов.Как отображать острые символы акцента в раскрывающемся списке, созданном в наборе инструментов шаблона

[% glossary.$language.all_terms %] 

В пользовательском интерфейсе отображается как «Todos los Términos». Но когда я использую то же самое в раскрывающемся меню, он отображается с неправильными символами. Я прикрепил скриншот.

The Dropdown showing the wrong data, where as same variable printed is correct

Для достижения этой цели, я написал шаблон, как это.

[% IF terms.size > 1 %] 
    <select onchange="this.form.submit();"> 
    [%- 
    IF terms.size > 1; 
     terms.unshift({ name => glossary.$language.all_terms, term_id => '0' }); 
     terms.unshift({ name => glossary.$language.all_current_terms, term_id => '' }); 
    END; 

INCLUDE html/options.tmpl 
options = terms, 
valuekey = 'term_id', 
choicekey = 'name', 
selected = form.term_id 
    -%] 
</select> 

html/options.tmpl - это шаблон, который добавит дополнительные динамические параметры в одно и то же раскрывающееся меню. Структура данных терминов отправляется из модуля PERL. Что я делаю неправильно?

+0

Что на самом деле выводится в HTML? Я предполагаю, что что-то автоматически кодирует HTML, так что 'é' преобразуется в '& 233;'. –

+0

@DaveCross Я добавил новый скриншот. Когда я печатаю [% glossary. $ language.all_terms%], он работает нормально. Но когда я поместил то же самое в разделе выпадающего кода, как показано выше, символ & eacute отображается неправильно. –

ответ

1

Я согласен с Дейвом, преобладающий синтаксис на сайте Template Toolkit заключается в использовании формы слова html-объекта. Возможно, замените &#233; на &eacute; в html/options.tmpl.

Кроме этого, Template Toolkit описывает использование фильтров. По той или иной причине элементы опции могут быть отфильтрованы или нет. Возможно, это может помочь вам https://metacpan.org/pod/distribution/Template-Toolkit/lib/Template/Manual/Filters.pod#html_entity.

+0

Спасибо, сработало. У меня был файл 'escape_html' в файле шаблона html/options.tmpl. Удалив это, восстановили точный острый акцентный характер –