Lire les fonctions d’aide de script pour LFDocumentContentBuilder
LFDocumentContentBuilder fournit des fonctions utilitaires pour créer le contenu d’un document. Utilisez ces fonctions pour écrire la logique permettant d’extraire le contenu traduisible de n’importe quel artefact, qu’il utilise des tables standard ou non pour les traductions.
initialize (version, targetLanguage, sys_id, tableName)
Utilisez cette fonction en tant que constructeur pour LFDocumentContentBuilder et inclut les paramètres suivants :
| Nom | Type | Description |
|---|---|---|
| Version | Chaîne | Le type de version du contenu du document à générer. Pour Washington DC, cette valeur est v1. |
| targetLanguage | Chaîne | La langue cible du contenu du document de tâche de localisation. La langue cible est la même que la langue disponible à partir de l’argument de fonction de script lu. |
| Sys_id | Chaîne | sys_id de l’enregistrement d’artefact. |
| tableName | Chaîne | Nom de table de l’enregistrement d’artefact. |
processString (chaîne, groupName, étiquette)
Utilisez cette fonction pour ajouter LFDocumentContentElement dans le contenu du document pour la chaîne donnée et inclut les paramètres suivants.
| Nom | Type | Description |
|---|---|---|
| chaîne | Chaîne | Valeur pour laquelle une entrée de contenu de document est créée. |
| groupName | Chaîne | Nom du groupe auquel l’élément doit appartenir. |
| étiquette | Chaîne | L’identificateur unique de l’étiquette pour l’élément créé. |
processStringArray (stringArray, groupName, étiquette)
Utilisez cette fonction pour ajouter des éléments (objet de LFDocumentContentElement) dans le contenu du document pour les chaînes données et inclut les paramètres suivants.
| Nom | Type | Description |
|---|---|---|
| stringArray (en anglais seulement) | Liste de chaînes | Liste des valeurs pour lesquelles l’entrée de contenu du document est créée. |
| groupName | Chaîne | Nom du groupe auquel ces chaînes appartiennent. |
| étiquette | Chaîne | Identificateur d’étiquette unique pour ces chaînes. |
processScript (scriptContent, groupName, étiquette)
Utilisez cette fonction pour ajouter un élément dans le contenu du document pour les chaînes présentes en tant qu’entrée de getMessage, gs.getMessage ou gs.getMessageLang dans le script fourni. Il comporte les paramètres suivants :
| Nom | Type | Description |
|---|---|---|
| scriptContent (contenu du script) | Chaîne | Script à traiter pour obtenir les chaînes présentes en entrée de getMessage, gs.getMessage ou gs.getMessageLang. |
| groupName | Chaîne | Le nom du groupe pour cette entrée. |
| étiquette | Chaîne | L’identificateur unique de l’étiquette pour cette entrée. |
Par exemple :
var documentContentBuilder = new LFDocumentContentBuilder("v1", language, sysId, tableName);
Var name = "name";
documentContentBuilder .processScript("gs.getMessage('Hello {0}, How are you', name)", "Script_Group", "Script_Label");processTranslatableFieldsForSingleRecord (glideRecord, groupName)
Utilisez cette fonction pour créer des éléments pour l’objet glideRecord donné, dans le contenu du document pour tous ses champs à traduire. Ces champs traduisibles peuvent être de types translated_field, translated_text ou translated_html. Il comprend les paramètres suivants :
| Nom | Type | Description |
|---|---|---|
| glideRecord | GlideRecord | Objet GlideRecord à traiter pour les champs à traduire. Le GlideRecord doit pointer vers l’enregistrement de table valide. |
| groupName | Chaîne | Le nom du groupe pour cette entrée. |
processTranslatableFieldsForMultipleRecords (tableName, encodedQuery, groupName)
Utilisez cette fonction pour extraire tous les enregistrements qualifiés pour tableName et encodedQuery donnés, et ajoute des éléments (objet de LFDocumentContentElement) dans le contenu du document pour tous les champs traduisibles. Il comprend les paramètres suivants :
| Nom | Type | Description |
|---|---|---|
| tableName | Chaîne | Table pour extraire les enregistrements. |
| encodedQuery | Chaîne | Requête codée de filtrage des enregistrements à partir de la table processTranslatableFieldsForSingleRecord. |
| groupName | Chaîne | Le nom du groupe pour cette entrée. |
processElement()
Utilisez cette fonction pour ajouter un élément (objet de LFDocumentContentElement) à l’objet LFDocumentContent.
| élément | LFDocumentContentElement | Élément à ajouter au contenu du document. |
build()
Renvoie l’objet LFDocumentContent.
Remarque :
La fonction getFinalJSON a été déconseillée dans la Washington DC version et il est recommandé d’utiliser la fonction build().
Exemple de script pour créer le contenu du document.
getTranslatableContent: function(params) {
var tableName = params.tableName;
var sysId = params.sysId;
var language = params.language;
var lfDocumentContentBuilder = new global.LFDocumentContentBuilder("v1", language, sysId, tableName);
// This will create a new object of LFDocumentContent and stores it internally
lfDocumentContentBuilder.processTranslatableFieldsForSingleRecord(gr, "Basic Info");
var field = LFDocumentContentHelper.createField(originalValue, translatedValue);
field.setTextType(LFDocumentContentHelper.PLAIN_TEXT_TYPE);
// All the other relevant attributes can be set
var element = LFDocumentContentHelper.createElement(groupName, label);
element.addField(field);
lfDocumentContentBuilder.processElement(element); // Adds element to the LFDocumentContent object
return lfDocumentContentBuilder.build(); // return the LFDocumentContent object
}
Exemple de script pour extraire des données de LFDocumentContent
saveTranslatedContent: function(documentContent) {
// LFDocumentContent object is passed as an argument to the saveTranslatedContent
var targetLanguage = documentContent.getLanguage();
var version = documentContent.getVersion();
var elements = documentContent.getElements(); // Array of LFDocumentContentElement objects
for (var idx = 0; idx < elements.length; idx++) {
var element = elements[idx];
var groupName = element.getGroupName();
var fields = element.getFields(); // Array of LFDocumentContentField objects
for (var fieldIdx = 0; fieldIdx < fields.length; fieldIdx++) {
var field = fields[fieldIdx];
var originalValue = field.getOriginalValue();
var translatedValue = field.getTranslatedValue();
// Get all the other required members and process them appropriately
}
}
}