Form Translation Next Steps | Community
Skip to main content
Michelle_Stunka
Level 2
October 12, 2018
Solved

Form Translation Next Steps

  • October 12, 2018
  • 1 reply
  • 9889 views

I'm in the process of setting up forms to replace many current forms on our site. Each form has to be translated into at least 5 different languages so I'm trying to handle that with Sanford's translation code referenced on this thread: https://nation.marketo.com/message/94034#comment-94034

It's working great but I'm stumped on how to add additional fields to the translation map:

m-files.com/en/marketo-test-form

<div id="translateMap"><span style="display: none;">

{

"en": {

"LastName": {

"placeholder": "Testing-Name",

"submit": "Go Home"

}

},

"fr": {

"LastName": {

"placeholder": "Testing-Name",

"submit": "Go Bonjour"

}

}

}

</span></div>

Any ideas on how I can get the full form setup in this map?

Best answer by SanfordWhiteman

Each language is an object, and each field name is a property of that object (and is also an object itself).

So you extend it like so:

{

  "en": {

    "LastName": {

      "placeholder": "Testing-Name",

      "submit": "Go Home"

    },

    "FirstName": {

      "placeholder": "First"

    }

  },

  "fr": {

    "LastName": {

      "placeholder": "Testing-Name",

      "submit": "Go Bonjour"

    },

    "FirstName": {

      "placeholder": "Prénom"

    }

  }

}

The admittedly strange thing about this format, which I wouldn't do again but apparently was lazy about a couple of years ago, is that "submit" should've been a property right on the language. But it's not, so you have to use it as shown.

Please use the Advanced Editor's syntax highlighter in future when posting code:

https://s3.amazonaws.com/blog-images-teknkl-com/syntax_highlighter.gif

1 reply

SanfordWhiteman
SanfordWhitemanAccepted solution
Level 10
October 12, 2018

Each language is an object, and each field name is a property of that object (and is also an object itself).

So you extend it like so:

{

  "en": {

    "LastName": {

      "placeholder": "Testing-Name",

      "submit": "Go Home"

    },

    "FirstName": {

      "placeholder": "First"

    }

  },

  "fr": {

    "LastName": {

      "placeholder": "Testing-Name",

      "submit": "Go Bonjour"

    },

    "FirstName": {

      "placeholder": "Prénom"

    }

  }

}

The admittedly strange thing about this format, which I wouldn't do again but apparently was lazy about a couple of years ago, is that "submit" should've been a property right on the language. But it's not, so you have to use it as shown.

Please use the Advanced Editor's syntax highlighter in future when posting code:

https://s3.amazonaws.com/blog-images-teknkl-com/syntax_highlighter.gif

Michelle_Stunka
Level 2
October 12, 2018

Thanks Sanford! I tried something similar but when I add in what you sent, it stops working altogether: m-files.com/en/marketo-test-form (code is hidden in the privacy policy text)

That's why I was getting completely stumped why it would work for one field but not multiple.

Michelle_Stunka
Level 2
October 12, 2018

Nevermind! I missed a curly bracket at the very end. Amazing how one character can make all the difference!

Thanks for your help!