Recommendations Designs - velocity - map | Community
Skip to main content
Level 2
February 8, 2019
Solved

Recommendations Designs - velocity - map

  • February 8, 2019
  • 4 replies
  • 4439 views

Hi,

I am trying to setup a Map array for design, I am able to set the map array but I can access it's value

Apache Velocity Engine - User Guide

#set( $monkey.Map = {"banana" : "good", "roast beef" : "bad"})

$monkey.Map.get("banana") Doesn't work

Is map included?

rgds,

jerome

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by evidana

It seems that using the Map is where things go wrong.

$translateReadmore.en

$translateReadmore.fr

$translateReadmore.de

Those should work based on the example. Tried your use case as well:

#set( $translateReadmore = {"en" : "Read more", "fr" : "lire la suite", "de" : "Mehr darüber"})

#set( $language = "en" )

{

    "entityId" : "$entity.id",

    "test" : "$translateReadmore[$language]"

}

test comes through fine as Read more

4 replies

Community Advisor
February 11, 2019

So it is not exactly what you are asking ... however this works for me.

#set( $monkey = {"banana" : "good", "roast beef" : "bad"})

{

    "entityId" : "$entity.id",

    "test" : "$monkey.banana"

}

Response

{

    "thirdPartyId": "ldksjflaksdjfldjlkf",

    "edgeHost": "mboxedge19283048309849803487.tt.omtrdc.net",

    "content": "{\n    \"entityId\" : \"top-secret-product\",\n    \"test\" : \"good\"\n}",

    "sessionId": "abc123554"

}

Seems like it does not need to be specified as a map.

Level 2
February 12, 2019

Hi Eric,

Sorry I don't understand your answer.

Let me give you an example of what I want to do - If I want to translate a Design

#set( $translateReadmore.Map = {"en" : "Read more", "fr" : "lire la suite", "de" : "Mehr darüber"})

So I could use in the Design ($language determined based on Metadata)

$translateReadmore.Map.get($language)

Rgds,

Jerome

evidanaCommunity AdvisorAccepted solution
Community Advisor
February 12, 2019

It seems that using the Map is where things go wrong.

$translateReadmore.en

$translateReadmore.fr

$translateReadmore.de

Those should work based on the example. Tried your use case as well:

#set( $translateReadmore = {"en" : "Read more", "fr" : "lire la suite", "de" : "Mehr darüber"})

#set( $language = "en" )

{

    "entityId" : "$entity.id",

    "test" : "$translateReadmore[$language]"

}

test comes through fine as Read more

Level 2
February 12, 2019

Yes it works, many thanks Eric !!