Forums / Developer / i18n on attribute_view_gui output
Christopher Grondahl
Monday 21 February 2011 5:14:54 am
I want to put a i18n on the output of this - any suggestions?
{attribute_view_gui attribute=$node.data_map.productlanguage}
Chris ez site: http://www.acem.no Every day is Groundhog Day
Marko Žmak
Monday 21 February 2011 5:32:29 am
You can store the content of attribute_view_gui using set-block:
{def $output=''} {set-block variable='output'} {attribute_view_gui attribute=$node.data_map.productlanguage} {/set-block}
and then use i18n with the $output variable.
Also note, that if you're using this with an attribute of type XML Field, you'll get the output HTML tags in the $output variable, so it could cause you some headache if you use i18n on it.
-- Nothing is impossible. Not if you can imagine it! Hubert Farnsworth
Monday 21 February 2011 10:02:55 am
Excellent! Works like a charm with a little trimming (for some reason, the $output had a lot of space before and after). Finished code:
{def $output=''} {set-block variable='output'} {attribute_view_gui attribute=$node.data_map.productlanguage} {/set-block} {def $trimoutput=$output|trim()} {$trimoutput|i18n('core/shop')}
Tuesday 22 February 2011 12:02:25 am
The reason why the $output has a lot of spaces is because there's a lot of spaces in your code. All the content that is inside the {set-block} gets in the $output variable, including all the whitespaces in it.
But yes, trim() is the sollution. You can do it even in a more compact way:
{$output|trim()|i18n('core/shop')}
Wednesday 23 February 2011 3:07:56 pm
Great - even better - thanks a lot!
finished code:
{def $output=''} {set-block variable='output'} {attribute_view_gui attribute=$node.data_map.productlanguage} {/set-block} {$output|trim()|i18n('core/shop')