Передайте переменную внутри строки перевода в Prestashop

Передайте переменную внутри строки перевода в Prestashop

05.07.2012 12:43:24 Просмотров 48 Источник

Мне нужно передать переменную со строкой перевода в PrestaShop. В бэкэнде можно сделать как

sprintf($this->l('The number is %1$d'), $number);

Но мне нужно сделать это в интерфейсе при использовании SMARTY ? есть кто-нибудь, чтобы помочь мне ?

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

https://stackoverflow.com/questions/11340742/pass-a-variable-inside-translation-string-in-prestashop#comment14966393_11340742
Могу я спросить, почему ?

Ответы - Передайте переменную внутри строки перевода в Prestashop / Pass a variable inside translation string in Prestashop

skiplecariboo

29.01.2013 02:12:03

что-то вроде этого :

{l s='The number is %1$d' sprintf=$number}
lazy_coder

13.03.2018 03:32:35

вот как можно передать переменную в переведенной строке

{l s='Comment: # %id%' mod='ayalinecomments' sprintf=['%id%' => $comment.id_ayalinecomments_comment]}

PrestaShop будет заменить %ИД% по моим переменной $комментарий.id_ayalinecomments_comment

ty

Klemart3D

28.12.2018 02:07:18

1-на PrestShop v1. 7. 4 с @skiplecariboo ответ {l s='The number is %1$d' sprintf=$number}я получаю:

Уловимая фатальная ошибка: Аргумент 2 передается PrestaShopBundle\Translation\TranslatorComponent:: trans () должен иметь тип массива, заданная строка, вызывается /залет/httpdocs/конфигурации/smartyfront.конфиг.инк.PHP на линии 210 и определенный

2-с официальным методом перевода модуля третьей стороны {l s='The number is %1$d' sprintf=$number mod='my_module'}, я получаю ту же ошибку:

Уловимая фатальная ошибка: Аргумент 2 передается PrestaShopBundle\Translation\TranslatorComponent:: trans () должен иметь тип массива, заданная строка, вызывается /залет/httpdocs/конфигурации/smartyfront.конфиг.инк.PHP на линии 210 и определенный

3-и с официальным собственным методом перевода модуля {l s='The number is %1$d' sprintf=$number d='Modules.my_module'}, я получаю:

Не удалось перевести "число равно %1$d" в модуль: my_module / my_module.ТПЛ. параметр sprintf() должен быть равен массив.

Итак, решением для меня было установить $number

NB: {l s='The number is %1$d' sprintf=[$number] mod='my_module'}предназначен для десятичных чисел, для строки используйте: %1$d( Источник)

Закрыть X