как использовать HTML-теги в переводах Smarty prestashop?

как использовать HTML-теги в переводах Smarty prestashop?

19.05.2015 10:20:29 Просмотров 56 Источник

Я не могу найти решение. То, что я должен сделать, это перевести это:

se stai inserendo un indirizzo per consegna all'interno dell'area <span class=orange>EXPO</span>

в это:

If your delivery address is in the <span class=orange>EXPO</span> area

Если я использую теги, как это:

{l s="se stai inserendo un indirizzo per consegna all'interno dell'area <span class=orange>EXPO</span>"}

Их никто не увидит. Ну и что?

У вопроса есть решение - Посмотреть?

Ответы - как использовать HTML-теги в переводах Smarty prestashop? / how to use html tags in prestashop's smarty translations?

crlsn

19.05.2015 11:08:58

Старайтесь не включать HTML в строки перевода. Вы можете сделать это, сделав две строки:

{l s="se stai inserendo un indirizzo per consegna all'interno dell'area"} <span class="orange">{l s='EXPO'}</span>
https://stackoverflow.com/questions/30319141/how-to-use-html-tags-in-prestashops-smarty-translations/30320063#comment48738103_30320063
Нет, в этом случае я не могу. мой пример достаточно ясен: мне нужно переместить слова в переводе ("EXPO" до и после слова "area"), вот почему.
UnLoCo

19.05.2015 04:33:50

Функция перевода удалит все теги html, поэтому вам придется использовать альтернативу, например

{capture "string"}
  {l s="se stai inserendo un indirizzo per consegna all'interno dell'area _h1_EXPO_h2_"}
{/capture}
{$smarty.capture.string|replace:'_h1_':'<span class="orange">'|replace:'_h2_':'</span>'}

_h1_и _h2_находятся в переводе и заменяются на <span class="orange">и </span></span>, а не для ее удаления

Так что ваш английский перевод будет примерно таким
string

https://stackoverflow.com/questions/30319141/how-to-use-html-tags-in-prestashops-smarty-translations/30327192#comment63022551_30327192
Хорошее не основное агрессивное решение для решения этой проблемы.
https://stackoverflow.com/questions/30319141/how-to-use-html-tags-in-prestashops-smarty-translations/30327192#comment63026234_30327192
Я посмотрю глубже, мы даже можем сделать запрос на вытягивание и посмотреть, как это происходит (цель: PrestaShop 1.7)
Является ответом!
Florian Lemaitre

17.11.2016 07:29:50

Prestashop предоставляет недокументированное решение для этого:

Вы можете добавить tags. Значение этого параметра представляет собой массив строк. Чтобы добавить тег из этого массива в строку, вам нужно использовать {l}(где [i]x[/i]-индекс тега в массиве, начиная с 1, а i-текст, который вы хотите видеть в окружении тега)

Например, если я хочу отобразить эту строку в одной строке перевода:

x

Я могу использовать этот код:

<strong>Welcome</strong> <i class="name_class">Florian Lemaitre</i>!

В вашем случае вы можете использовать:

{l s='[1]Welcome[/1] [2]%s[/2]!' sprintf=[$name] tags=['<strong>', '<i class="name_class">']}

Вы можете найти соответствующий код в файле {l s="se stai inserendo un indirizzo per consegna all'interno dell'area [1]EXPO[/1]" tags=['<span class=orange>']} :

classes/Translate.php
user2975076

05.11.2018 11:32:54

{assign var="name" value="Bob"}
{l s='[1]Welcome[/1] [2] %s [/2]!' sprintf=[$name] tags=['<strong>', '<i class="name_class">']}

дать нам

[1]Welcome[/1] [2] Bob [/2]!
Закрыть X