Как отображать теги HTML в наборе инструментов «Переводы UTF8 в шаблоне»

Я работаю над веб-сайтом, где мы используем Perl, MySQL 5, Apache и Template Toolkit.
мы планируем добавить поддержку нескольких языков на нашем веб-сайте.

Что мы сделали is

ЕСЛИ у нас есть строка в файле шаблона,
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Download the "<a href="/help/materials/Brouchure_catalog.xls">Brouchure Catalog Sample</a>" as reference only purpose

мы преобразовали ее в

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<h1>[% glossary.$language.Brouchure_Catalog_Sample_info %].<\h1>

где $language получает значение, которое пользователь выбирает при входе в систему.
$language — это переменная, которая устанавливается в соответствии с языковыми предпочтениями пользователя.
Импорт в Excel выглядит следующим образом:
Все переводы взяты из Google Translator. Только для демонстрации
Все переводы взяты из Google Translator. Только для демонстрации

Вот как это выглядит в БД mysql: введите здесь описание изображенияСейчас символы отображаются на веб-сайте правильно, но в некоторых переводах с HTML-тегами происходит подобное:

Загрузите Образец каталога брошюр только для справки

правильно отображается на английском языке, но такое же поведение не отображается для испанского языка.
введите здесь описание изображения

Есть ли какие-то фильтры, которые можно использовать в подобных ситуациях в наборе инструментов шаблона? или что-то не так с HTML


person Ash_and_Perl    schedule 21.05.2013    source источник
comment
Есть более распространенные и проверенные способы обработки переводов. Взгляните на Locale::TextDomain. Он использует файлы *.po для хранения переводов. Я могу дать толчок, если вы заинтересованы.   -  person smartmeta    schedule 22.05.2013


Ответы (3)


Я бы использовал плагин дампера Template Toolkit

[% USE Dumper %]

чтобы показать свой "глоссарий"

[% Dumper.dump(glossary) %]

в вашем шаблоне. Возможно, глоссарий не заполнен должным образом.

person smartmeta    schedule 22.05.2013
comment
спасибо, что направили меня к проблеме. Я не пробовал дампер в шаблоне. Вот что я получаю, когда вывожу эту переменную на экран. \x{62a}\x{62d}\x{645}\x{64a}\x{644}‹/a›\\\\x{627}\x{633}\x{62a}\x{ 64a}\x{631}\x{627}\x{62f} \x{643}\x{62a}\x{627}\x{644}\x{648}\x{62c} \x{ 645}\x{644}\x{639}\x{628} \x{639}\x{64a}\x{646}\x{629} \x{627}\x{644}\x{ 645}\x{644}\x{641}\\\‹a href=\\\/help/materials/import/examples/course_catalog.xls\\\› \x{643}\x{645}\x {631}\x{62c}\x{639} \x{627}\x{644}\x{63a}\x{631}\x{636} \x{627}\x{644}\x {648}\х{62d}\х{64а}\х{62f} - person Ash_and_Perl; 28.05.2013

Единственным способом добиться этого было удаление компонентов HTML из перевода.

Загрузите «Образец каталога брошюры" только для ознакомления.

мы преобразовали его в [% glossary.$language.Download_the %] "[% glossary.$language.Brouchure_Catalog_Sample %][% glossary.$ язык.как_ссылка_только_цель%].

Если вы думаете, что разделение предложения будет перепутано, вы ошибаетесь. Я тоже раньше был в таком же предположении. Позже, когда я попробовал, Браузер неплохо справляется с преобразованием и сохранением порядка в ожидаемом формате.

person Ash_and_Perl    schedule 13.12.2013

http://www.katpatuka.org/pub/doc/content-language/ar.htm

вот, я надеюсь, что это поможет вам :-)

person Abdallah Barghouti    schedule 21.05.2013
comment
Если я изменю, что будут отображаться арабские или испанские острые символы, я полагаю - person Ash_and_Perl; 21.05.2013