Bridgeline Digital Logo
Menu

Language API

The language API is used to modify OrchestraCMS languages as well as translation groups. 

addLanguage

This method creates a new language for a specified site. Returns LanguageBundle.

Parameters

  • name : String, Name of the language.
  • label : String, Label of the language.
  • code : String, Language code.
  • description : String (optional), Description of the language.
  • priority : Integer (optional), The Priority of the language. A whole number, 1 or greater, that determines the order
    that languages are displayed in picklists in OrchestraCMS.  A value of 0 is reserved for the default language and always displays at the top of lists. If two or more languages are assigned the same priority number, they will be listed in alphabetical order at that location in the list.

Flags

  • allowfb : Boolean (optional, default: true), Allow fallback to the default language.
  • noData : Boolean (optional, default: true), Whether or not to return data.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'addLanguage');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.parameters.put('name', 'German');
apiRequest.parameters.put('label', 'German Label');
apiRequest.parameters.put('code', 'de');
apiRequest.parameters.put('description', 'German Language');
apiRequest.requestFlags.put('allowfb', true);
apiRequest.requestFlags.put('noData', false);
apiRequest.parameters.put('priority', '5');
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
System.Debug(apiResponse.responseObject);

JavaScript Request Example

var listparams = {
};
var params = {
    name:  'German',
    label:  'German Label',
    code:  'de',
    description:  'German Language',
    priority: 5
};
var flags = {
  allowfb: true,
  noData: false  
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'addLanguage',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

editLanguage

This method allows you to edit a language. Returns LanguageBundle.

Parameters

  • id : String, Id of the language
  • name : String, Name of the language
  • label : String, Label of the language
  • code : String, Language code
  • description : String (optional), Description of the language
  • priority : Integer (optional), The Priority of the language. A whole number, 1 or greater, that determines the order
    that languages are displayed in picklists in OrchestraCMS.  A value of 0 is reserved for the default language and always displays at the top of lists. If two or more languages are assigned the same priority number, they will be listed in alphabetical order at that location in the list.

Flags

  • allowfb : Boolean (optional, default: true), Allow fallback to the default language.
  • noData : Boolean (optional, default: true), Whether or not to return data.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'editLanguage');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.parameters.put('id', 'language_id');
apiRequest.parameters.put('name', 'German');
apiRequest.parameters.put('label', 'German Label');
apiRequest.parameters.put('code', 'de');
apiRequest.parameters.put('description', 'German Language');
apiRequest.requestFlags.put('allowfb', true);
apiRequest.requestFlags.put('noData', false);
apiRequest.parameters.put('priority', '5');
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
System.Debug(apiResponse.responseObject);

JavaScript Request Example

var listparams = {
};
var params = {
    id: 'language_id',
    name:  'German',
    label:  'German Label',
    code:  'de',
    description:  'German Language',
    priority: 5
};
var flags = {
  allowfb: true,
  noData: false  
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'editLanguage',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

addDefaultLanguage

This method creates a new language and sets that language to the default language. This should only be used when there is no default language for a site and it needs to be created. Returns LanguageBundle.

Parameters

  • name : String, Name of the language
  • label : String, Label of the language
  • code : String, Language code
  • description : String (optional), Description of the language

Flags

  • addUserToGroup : Boolean (optional, default: true), Add all users from this site to the translation group that will be created for this language.
  • noData : Boolean (optional, default: true), Whether or not to return data.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'addDefaultLanguage');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.parameters.put('name', 'German');
apiRequest.parameters.put('label', 'German Label');
apiRequest.parameters.put('code', 'de');
apiRequest.parameters.put('description', 'German Language');
apiRequest.requestFlags.put('addUserToGroup', true);
apiRequest.requestFlags.put('allowfb', true);
apiRequest.requestFlags.put('noData', false);
apiRequest.parameters.put('priority', '5');
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
System.Debug(apiResponse.responseObject);

JavaScript Request Example

var listparams = {
};
var params = {
    name:  'German',
    label:  'German Label',
    code:  'de',
    description:  'German Language',
    priority: 5
};
var flags = {
  allowfb: true,
  noData: false,
  addUserToGroup: true
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'addDefaultLanguage',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

setDefaultLanguage

This method sets the default language of the site to the passed in language id. Returns success message.

Parameters

  • id : String, Id of the language

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'setDefaultLanguage');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.parameters.put('id', 'a00000000000000000');
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
System.Debug(apiResponse.responseObject);

JavaScript Request Example

var listparams = {
};
var params = {
    id: 'a00000000000000000'
};
var flags = {
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'setDefaultLanguage',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

disableLanguage

This method will disable languages; either of the two list parameters must be passed. Returns success message.

List Parameters

  • codes : List<String>, Language codes to be disabled.
  • ids : List<Id>, Language ids to be disabled
 
When using the disableLanguage method, you must specify either the codes list parameter, or the ids list parameter. You cannot specify both.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'disableLanguage');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.listParameters.put('ids', new List<String>{'a00000000000000000', 'a00000000000000001'});
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
System.Debug(apiResponse.responseObject);

JavaScript Request Example

var listparams = {
    codes: ['de']
};
var params = {
};
var flags = {
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'disableLanguage',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

enableLanguage

This method will enable languages; either of the two list parameters must be passed. Returns success message.

List Parameters

  • codes : List<String>, Language codes to be disabled.
  • ids : List<Id>, Language ids to be disabled
 
When using the enableLanguage method, you must specify either the codes list parameter, or the ids list parameter. You cannot specify both.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'enableLanguage');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.listParameters.put('ids', new List<String>{'a00000000000000000', 'a00000000000000001'});
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
System.Debug(apiResponse.responseObject);

JavaScript Request Example

var listparams = {
    codes: ['de']
};
var params = {
};
var flags = {
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'enableLanguage',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

getAvailableLanguages

This method will return all languages that have been created for the site. Returns List<LanguageBundle>.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'getAvailableLanguages');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
List<LanguageBundle> bundles = (List<LanguageBundle>) json.deserialize(apiResponse.responseObject, List<LanguageBundle>.class);
System.Debug(bundles);

JavaScript Request Example

var listparams = {
};
var params = {
};
var flags = {
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'getAvailableLanguages',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

JSON-Serialized Response Example

 
The Language Bundle within the responseObject will only include the priority parameter if a value is set for the language.
{
    error: null,
    isSuccess: true,
    message: "GetAvailableLanguages",
    moreResults: false,
    responseObject: [
           {
               "siteId": "a00000000000000000",
               "priority": 0,
               "name": "English", 
               "languageId": "a00000000000000000",
               "label": "English",
               "isActive": true,
               "description": "English",
               "code": "en_US",
               "allowsFallback": false
           },
           {
               "siteId": "a00000000000000000",
               "name": "Spanish (Mexico)", 
               "languageId": "a00000000000000001",
               "label": "Spanish (Mexico)",
               "isActive": true,
               "description": "Spanish Description",
               "code": "es_MX",
               "allowsFallback": true
           }
    ],
    timeNow: "2017-11-06T21:00:31.000Z",   
    transactionId: null,
    type: "List<LanguageBundle>"
}

setTranslationGroup

This method will set the users for the given translation group. Returns List<TranslationGroupBundle>.

Parameters

  • groupId : Id, Id of the translation group.

List Parameters

  • userIds : List<Id>, User ids to use for the translation group.

Flags

  • noData : Boolean (optional; default: true), Whether or not to return data.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'setTranslationGroup');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.requestFlags.put('noData', false);
apiRequest.parameters.put('groupId', 'a00000000000000000');
apiRequest.listParameters.put('userIds', new List<String>{'a00000000000000000', 'a00000000000000001'});
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
List<TranslationGroupBundle> bundles = (List<TranslationGroupBundle>) json.deserialize(apiResponse.responseObject, List<TranslationGroupBundle>.class);

JavaScript Request Example

var listparams = {
    userIds: ['a00000000000000000', 'a00000000000000001']
};
var params = {
    groupId: 'a00000000000000002'
};
var flags = {
    noData: true
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'setTranslationGroup',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

addUsersToTranslationGroup

This method will add users to the given translation group. Returns List<TranslationGroupBundle>

Parameters

  • groupId : Id, Id of the translation group.

List Parameters

  • userIds : List<Id>, User ids to use for the translation group.

Flags

  • noData : Boolean (optional; default: true), Whether or not to return data.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'addUsersToTranslationGroup');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.requestFlags.put('noData', false);
apiRequest.parameters.put('groupId', 'a00000000000000003');
apiRequest.listParameters.put('userIds', new List<Id>{'a00000000000000001','a00000000000000002'});
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
List<TranslationGroupBundle> bundles = (List<TranslationGroupBundle>) json.deserialize(apiResponse.responseObject, List<TranslationGroupBundle>.class);

JavaScript Request Example

var listparams = {
    userIds: ['a00000000000000001','a00000000000000002']
};
var params = {
    groupId: 'a00000000000000003'
};
var flags = {
    noData: true
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'addUsersToTranslationGroup',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

removeUsersFromTranslationGroup

This method will remove users from the given translation group. Returns List<TranslationGroupBundle>

Parameters

  • groupId : Id, Id of the translation group.

List Parameters

  • userIds : List<Id>, User ids to use for the translation group.

Flags

  • noData : Boolean (optional; default: true), Whether or not to return data.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'removeUsersFromTranslationGroup');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.requestFlags.put('noData', false);
apiRequest.parameters.put('groupId', ''a00000000000000003');
apiRequest.listParameters.put('userIds', new List<Id>{'a00000000000000001','a00000000000000002'});
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
List<TranslationGroupBundle> bundles = (List<TranslationGroupBundle>) json.deserialize(apiResponse.responseObject, List<TranslationGroupBundle>.class);

JavaScript Request Example

var listparams = {
    userIds: ['a00000000000000001','a00000000000000002']
};
var params = {
    groupId: 'a00000000000000003'
};
var flags = {
    noData: true
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'removeUsersFromTranslationGroup',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

getTranslationGroups

This method will return all translation groups for the site. Returns List<TranslationGroupBundle>.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'getTranslationGroups');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse)json.deserialize(response, JSONMessage.APIResponse.class);
List<TranslationGroupBundle> bundles = (List<TranslationGroupBundle>) json.deserialize(apiResponse.responseObject, List<TranslationGroupBundle>.class);

JavaScript Request Example

var listparams = {
};
var params = {
};
var flags = {
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'getTranslationGroups',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

JSON-Serialized Response Example

{
    error: null,
    isSuccess: true,
    message: "GetTranslationGroups",
    moreResults: false,
    responseObject: [
           {
               "languageName": "Chinese (Traditional)",
               "languageMembers": ["a00000000000000000"],
               "languageId": "a00000000000000000",
               "groupName": "Chinese Traditional",
               "groupId": "a00000000000000001",
           },
           {
               "languageName": "Spanish",
               "languageMembers": ["a00000000000000002","a00000000000000003"],
               "languageId": "a00000000000000004",
               "groupName": "Spanish",
               "groupId": "a00000000000000005",
           }
       ],
    timeNow: "2017-11-06T21:00:31.000Z",   
    transactionId: null,
    type: "List<TranslationGroupBundle>"
}

setSiteLanguageFlags

This method will set the site language flags. Within OrchestraCMS these are found under Setup | Languages. Returns success message.

Flags

  • useUserLanguage : Boolean, Always use Salesforce user language to determine language.
  • enableCookie : Boolean, Enable language cookie for this site.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'setSiteLanguageFlags');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

apiRequest.requestFlags.put('useUserLanguage', true);
apiRequest.requestFlags.put('enableCookie', true);
parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse) json.deserialize(response, JSONMessage.APIResponse.class);

JavaScript Request Example

var listparams = {
};
var params = {
};
var flags = {
    useUserLanguage: true,
    enableCookie: true
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'setSiteLanguageFlags',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

getSalesforceLanguages

This method will get all the languages and their codes that salesforce supports. Returns List<LanguageBundle>.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'getSalesforceLanguages');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse) json.deserialize(response, JSONMessage.APIResponse.class);
List<LanguageBundle> bundles = (List<LanguageBundle>) json.deserialize(apiResponse.responseObject, List<LanguageBundle>.class);

JavaScript Request Example

var listparams = {
};
var params = {
};
var flags = {
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'getSalesforceLanguages',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

JSON-Serialized Response Example

{
    error: null,
    isSuccess: true,
    message: "getSalesforceLanguages",
    moreResults: false,
    responseObject: [
        {
            "name": "Chinese (Simplified)",
            "code": "zh_CN"
        },
        {
            "name": "Chinese (Traditional)",
            "code": "zh_TW"
        },
        {    "name": "Danish",
            "code": "da"
        },
        {
            "name": "Dutch",
            "code": "nl_NL"
        },
        {
            "name": "English",
            "code": "en_US"
        }
    ],
    timeNow: "2017-11-06T21:00:31.000Z",   
    transactionId: null,
    type: "List<LanguageBundle>"
}

getUnusedSalesforceLanguages

This method will get all the salesforce languages that the site is currently not using. Returns List<LanguageBundle>.

Apex Request Example

Map<String, String> parameters = new Map<String, String>();
parameters.put('sname', 'site_name'); // Replace site_name with the name of your OrchestraCMS site
parameters.put('service', 'LanguageAPI');
parameters.put('action', 'getUnusedSalesforceLanguages');
LanguageAPIRequest apiRequest = new LanguageAPIRequest();

parameters.put('request', json.serialize(apiRequest));
String response = cms.ServiceEndPoint.doActionApex(parameters);
JSONMessage.APIResponse apiResponse = (JSONMessage.APIResponse) json.deserialize(response, JSONMessage.APIResponse.class);
List<LanguageBundle> bundles = (List<LanguageBundle>) json.deserialize(apiResponse.responseObject, List<LanguageBundle>.class);

JavaScript Request Example

var listparams = {
};
var params = {
};
var flags = {
};
var request = {
    listParameters: listparams,
    parameters: params,
    requestFlags: flags
};
var response; // Used to get the JSON Object Response from action
var data = {
    service: 'LanguageAPI',
    action: 'getUnusedSalesforceLanguages',
    request: JSON.stringify(request)
};
// Handle response of a successful ajax call
var callBackHandler = function(json, Success) {
    console.log(json);
    response = JSON.parse(json);
}
var options = {
    cb: callBackHandler,
    cbHandlerOnComplete: function(textStatus) {}, // Handle response on complete
    readonly: true // Whether it is a read only call
};
doServiceRequest(data, options);

JSON-Serialized Response Example

{
    error: null,
    isSuccess: true,
    message: "getUnusedSalesforceLanguages",
    moreResults: false,
    responseObject: [
        {
            "name": "Italian",
            "code": "it"
        },
        {
            "name": "Japanese",
            "code": "ja"
        },
        {    "name": "Portuguese (Brazil)",
            "code": "pt_BR"
        }
    ],
    timeNow: "2017-11-06T21:00:31.000Z",   
    transactionId: null,
    type: "List<LanguageBundle>"
}