How to Handle Multilingual Properties

You want to programmatically get/set multilingual string properties

Technique

Use Item.setAttribute(“language”,"*") to get all language values and Item.setProperty(myProperty,value,lang) to set specific language values.

JavaScript

var inn = this.getInnovator();
// Add a new List with multilingual Value labels
var listItem = this.newItem(“List”,"add”);
listItem.setProperty(“name”,"Numbers”);
var valueItem = listItem.createRelationship(“Value”,"add”);
valueItem.setProperty(“value”,"1");
valueItem.setProperty(“label”,"One”,"en”);
valueItem.setProperty(“label”,"Ein”,"de”);
var valueItem2 = listItem.createRelationship(“Value”,"add”);
valueItem2.setProperty(“value”,"2");
valueItem2.setProperty(“label”,"Two”,"en”);
valueItem2.setProperty(“label”,"Zwei”,"de”);
var resultItem = listItem.apply();
if (resultItem.isError()) {
return inn.newError(“Error adding List: " + resultItem.getErrorDetail());
}
// Retrieve the List with labels in both English and German
listItem = this.newItem(“List”,"get”);
listItem.setProperty(“name”,"Numbers”);
valueItem = listItem.createRelationship(“Value”,"get”);
valueItem.setAttribute(“language”,"en,de”);
resultItem = listItem.apply();
if (resultItem.isError()) {
return inn.newError(“Error retrieving List: " + resultItem.getErrorDetail());
}