Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

Recommendations Designs - velocity - map

Jerome1978
Level 3
Level 3

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

1 Accepted Solution
Eric_Vidana
Correct answer by
Level 8
Level 8

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

View solution in original post

4 Replies
Eric_Vidana
Level 8
Level 8

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.

Jerome1978
Level 3
Level 3

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

Eric_Vidana
Correct answer by
Level 8
Level 8

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

View solution in original post