\define getMeTiddlerName(a_suffix) $(currentTiddler)$$a_suffix$
In the macro definition above, $(currentTiddler)$ substitutes the value from the currentTiddler variable and then adds the specified $a_suffix$ parameter value.
When you wrote this:
<$list filter="whateveFilterHere">
<$transclude tiddler=<<getMeTiddlerName "_EN">> /> <br/> <!-- DOESN'T WORK -->
</$list>
The surrounding $list widget sets the value of the currentTiddler variable to "whateveFilterHere".
Thus, the macro output was "whateveFilterHere_EN", which almost certainly didn't exist in your file, so no transclusion happened.
Then, when you wrote this:
<<getMeTiddlerName "_EN">>
to "print to screen the macro output", the macro wasn't contained inside a $list widget,
so the value of currentTiddler was the actual containing tiddler's title, and you got the results you expected.
and, when you wrote:
<$transclude tiddler={{{ [<currentTiddler>addsuffix[_EN]]}}} />
you used "filtered transclusion" (sometimes referred to as an "inline filter") to directly add the "_EN" suffix to the currentTiddler value,
which was then used as the value for the "tiddler=..." widget attribute... so you got the results you expected.
Note that, within the filter syntax, variable references are enclosed in angle brackets, like this:
<currentTiddler>
However, when used outside a filter -- in normal wikitext -- variable references use *doubled* angle brackets, like this:
<<currentTiddler>>
This is necessary so that the variable reference isn't mistaken for conventional HTML syntax, which uses the single angle brackets, e.g.,
<div>some text here</div>
Hopefully, the above explanations have provided some useful clues :-)
enjoy,
-e
Eric Shulman
TiddlyTools.com: "Small Tools for Big Ideas!"