Usted está aquí:
Crear elementos Seleccionar varios idiomas
Rellene los elementos Seleccionar, Seleccionar múltiple y Radio para un OmniScript de múltiples idiomas utilizando opciones de configuración personalizadas.
Configurar opciones manualmente
En Salesforce, defina un conjunto de etiquetas personalizadas y configure traducciones para ellas. En OmniScript Designer, utilice las etiquetas personalizadas para especificar las opciones para los elementos Seleccionar.
- En Salesforce, defina un conjunto de etiquetas personalizadas y especifique las traducciones para cada una.
- En OmniScript Designer, agregue un elemento Seleccionar configurado del siguiente modo:
Por ejemplo, para una lista de animales, tres etiquetas personalizadas tienen traducciones en Salesforce.
| Etiqueta personalizada | Valor predeterminado | Traducción al español |
|---|---|---|
| Animal_Bear | Oso | Oso |
| Animal_Dog | Perro | Perro |
| Animal_Cat | Gato | Gato |
En Diseñador de OmniScripts, especifique las Opciones para el elemento Seleccionar.
| Valor | Etiqueta |
|---|---|
| 1 | Animal_Bear |
| 2 | Animal_Dog |
| 3 | Animal_Cat |
Rellenar las opciones programáticamente
Cree un método Apex que devuelva un conjunto de opciones traducidas según el código de idioma vigente cuando se llama al método.
Para elementos Seleccionar dependientes que se rellenan programáticamente (personalizados), configure un campo de control especificando el nombre de un elemento OmniScript. El elemento tiene el valor que determina las opciones en el elemento Seleccionar dependiente. Por ejemplo, una lista de ciudades depende de un estado especificado en otro elemento. Para el elemento dependiente, especifique su configuración de CAMPO DE CONTROL del siguiente modo:
- Origen de opción: Personalizado
- Origen: Omitir
- Elemento: El elemento OmniScript que contiene el valor que determina cómo se rellena este elemento dependiente.
El método Apex debe tener lógica que utilice el valor del elemento de control y el código de idioma para determinar los valores para devolver y rellenar el elemento dependiente.
- Cree una clase y un método que devuelva un mapa de opciones traducidas según el código de idioma vigente cuando se llama al método. Consulte el código de muestra.
-
Agregue un elemento Seleccionar a su OmniScript, configurado del siguiente modo:
- Origen de opción: Personalizado
- Origen: La clase y el método que devuelven las opciones
global class PicklistPopulation implements VlocityOpenInterface { public Boolean invokeMethod(String methodName, Map<String, Object> input, Map<String, Object> outMap, Map<String, Object> options) { try { if (methodName.equals('PopulatePicklist')) { PopulatePicklist(input, outMap, options); } else if (methodName.equals('PopulateDependentPicklist')) { PopulateDependentPicklist(input, outMap, options); } } catch (Exception e) { System.debug(LoggingLevel.ERROR, 'Exception: ' + e.getMessage() + ' ' + e.getStackTraceString()); } return true; } // Get All Contacts Associated with the ContextId Account where the Omniscript is Launched public void PopulatePicklist(Map<String, Object> input, Map<String, Object> outMap, Map<String, Object> options) { List<Map<String,String>> plOptions = new List<Map<String, String>>(); String lang = (String)input.get('LanguageCode'); for(Integer i=0; i<2; i++) { Map<String, String> tempMap = new Map<String, String>(); tempMap.put('name', 'test'+ String.valueOf(i)); // Language Independent tempMap.put('value', 'testV'+ String.valueOf(i)); // Displayed in Picklist UI if(lang == 'zh_CN') tempMap.put('value', 'testV' + String.valueOf(i) + ' 中文'); plOptions.add(tempMap); } outMap.put('options',plOptions); } // Populate a Dependent Picklist based on the Contacts ReportsToId Field Selected in the Other Field this field depends on public void PopulateDependentPicklist(Map<String, Object> input, Map<String, Object> outMap, Map<String, Object> options) { // Map of List where the Key is the Potential Values in the Other Picklist Map<String, List<Map<String, String>>> dependency = new Map<String, List<Map<String, String>>>(); String lang = (String)input.get('LanguageCode'); String elementName = (String)input.get('controllingElement'); // itself Logger.debug('hello1 ' + lang); Logger.debug('hello2 ' + elementName); List<String> controlValList = new List<String>(); controlValList.add('Licensing & Permitting'); controlValList.add('Contract'); for(Integer i=0; i<2; i++) { List<Map<String, String>> optionList = new List<Map<String, String>>(); for(Integer j=0; j<2; j++) { Map<String, String> tempMap = new Map<String, String>(); tempMap.put('name', controlValList[i] + 'Child' + String.valueOf(j)); // Language Independent tempMap.put('value', controlValList[i] + 'ChildV' + String.valueOf(j)); // Displayed in Picklist UI if(lang == 'zh_CN') tempMap.put('value', controlValList[i] + 'ChildV' + String.valueOf(j) + ' 中文' ); optionList.add(tempMap); } dependency.put(controlValList[i], optionList); } outMap.put('dependency',dependency); } }
Utilizar una lista de selección de Salesforce traducida
En Salesforce, cree una lista de selección y utilice Sistema de traducción para definir traducciones para ella. En OmniScript Designer, defina un elemento Seleccionar vinculado a la lista de selección de Salesforce.
-
En el Diseñador de OmniScript, agregue un elemento Seleccionar y establezca estas propiedades:
- Origen de opciones: sObject
- Origen: <sObjectName>.<fieldName>
Por ejemplo, si define un objeto personalizado denominado Multi_Language_Picklist y define un campo de lista de selección denominado Animal_Type, la sintaxis es
Multi_Language_Picklist__c.Animal_Type__c. - En Configuración, bajo Configuración de administración, seleccione Sector de traducción.
- En la pantalla Traducir, seleccione el idioma de destino.
- Desde la lista Componente Configuración, seleccione Valor de lista de selección.
- Desde la lista Objeto, seleccione el objeto donde está definido el campo de lista de selección. La lista de selección y sus valores se muestran como un árbol.
- Para cada opción, especifique el valor traducido, luego guarde sus cambios.
