Supported File Types

Advanced JSON Configuration

If you have more than one translatable block in your JSON file and you need to apply different rules, you can define your “translate_paths” (XPath format) as an array, like this:

JSON

{
     "smartling": {
        "translate_paths": [{
          "key": "/Buttons/button",
          "path": "/Buttons/text"
        }, {
          "key": "/Errors/{Id}",
          "path": "/Errors/message"
        }]
     }
}

When specifying multiple translate blocks, especially if using wildcards, try to avoid situations where a path in your file matches more than one block. If this does happen, an exact path match will take precedence over a match with wildcards

Compound Keys

You can define a compound key - joining two different paths - using a comma-separated list of paths surrounded by square brackets, like this:

JSON

{
     "smartling": {
        "translate_paths": {
          "key": ["/Buttons/button","/Buttons/type"],
          "path": "/Buttons/text"
        }
        },
        "Buttons": [{
           "button": "button1",
           "type" : "active",
           "text": "Home"
       },
      {
           "button": "button2",
           "type" : "active",
           "text": "Back"
      }]
}

This will capture both paths as the key, separated by :#:. For example: button1:#:active

All parts of the compound key must match content in the file or no key will be returned.

Complete Example

See below for a complete example of a JSON configuration involving multiple translate blocks, compound keys, and both JSON names and JSON values captured as keys.

JSON

{
     "smartling": {
        "translate_paths": [{
          "path": "*/title",
          "key": "{*}/title",
          "instruction": "*/note"
        }, {
          "path": "*/summary",
          "key": ["{*}/summary", "*/title"]
        }]
     },
     "key1": {
        "note": "Released 1994",
        "title": "Forrest Gump",
        "summary": "A movie about a guy called Forrest Gump."
     },
     "key2": {
        "note": "Released 2004",
        "title": "Ray",
        "summary": "A movie about a guy called Ray."
     },
     "key3": {
        "note": "Released 1991",
        "title": "JFK",
        "summary": "A movie about a guy called Jim Garrison."
     }

}

Uploading this file to smartling will give:

Key String Instruction
Key1 Forrest Gump Released 1994
Key1:#:Forrest Gump A movie about a guy called Forrest Gump (none)
Key2 Ray Released 2004
Key2:#:Ray

 

A movie about a guy called Ray

(none)
Key3 JFK Released 2004
Key3:#:JFK

 

A movie about a guy called Jim Garrison

(none)



Was this article helpful?