LFDocumentContentBuilder에 대한 스크립트 도우미 함수 읽기
LFDocumentContentBuilder 는 문서 내용을 빌드하는 유틸리티 기능을 제공합니다. 이러한 함수를 사용하여 표준 테이블을 사용하든 번역하지 않든 관계없이 모든 아티팩트에서 번역 가능한 콘텐츠를 추출하는 논리를 작성합니다.
initialize (version, targetLanguage, sys_id, tableName)
이 함수를 LFDocumentContentBuilder 의 생성자로 사용하고 다음 매개변수를 포함합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 버전 | 문자열 | 생성할 문서 컨텐츠의 버전 유형입니다. 의 경우 Zurich이 값은 v1입니다. |
| targetLanguage | 문자열 | 현지화 작업 문서 컨텐츠의 대상 언어입니다. 대상 언어는 read script 함수 인수에서 사용할 수 있는 언어와 동일합니다. |
| Sys_id | 문자열 | 아티팩트 기록의 sys_id입니다. |
| tableName | 문자열 | 아티팩트 기록의 테이블 이름입니다. |
processString(문자열, 그룹 이름, 레이블)
이 함수를 사용하여 지정된 문자열에 대한 문서 컨텐츠에 LFDocumentContentElement를 추가하고 다음 매개변수를 포함합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 문자열 | 문자열 | 문서 컨텐츠 항목이 생성되는 값입니다. |
| groupName | 문자열 | 요소가 속해야 하는 그룹의 이름입니다. |
| 레이블 | 문자열 | 작성된 요소의 고유 레이블 식별자입니다. |
processStringArray(stringArray, groupName, 레이블)
이 함수를 사용하여 지정된 문자열에 대한 문서 컨텐츠의 요소(LFDocumentContentElement 객체)를 추가하고 다음 매개변수를 포함합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| stringArray | 문자열 목록 | 문서 컨텐츠 항목이 작성되는 값의 목록입니다. |
| groupName | 문자열 | 이러한 문자열이 속한 그룹의 이름입니다. |
| 레이블 | 문자열 | 이 문자열의 고유 레이블 식별자입니다. |
processScript(scriptContent, groupName, label)
이 함수를 사용하여 제공된 스크립트에서 getMessage, gs.getMessage 또는 gs.getMessageLang의 입력으로 존재하는 문자열에 대한 문서 컨텐츠에 요소를 추가합니다. 다음과 같은 매개변수가 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| scriptContent | 문자열 | getMessage, gs.getMessage 또는 gs.getMessageLang의 입력으로 존재하는 문자열을 가져오기 위해 처리할 스크립트입니다. |
| groupName | 문자열 | 이 입력에 대한 그룹의 이름입니다. |
| 레이블 | 문자열 | 이 입력의 고유 레이블 식별자입니다. |
예:
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, 그룹 이름)
이 함수를 사용하여 번역 가능한 모든 필드에 대한 문서 콘텐츠에서 지정된 glideRecord 객체에 대한 요소를 생성합니다. 번역 가능한 필드는 translated_field, translated_text 또는 translated_html 유형일 수 있습니다. 여기에는 다음 매개변수가 포함됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| glideRecord | GlideRecord | 번역 가능한 필드에 대해 처리할 GlideRecord 객체입니다. GlideRecord는 유효한 테이블 기록을 가리켜야 합니다. |
| groupName | 문자열 | 이 입력에 대한 그룹의 이름입니다. |
processTranslatableFieldsForMultipleRecords(tableName, encodedQuery, groupName)
이 함수를 사용하여 지정된 tableName 및 encodedQuery에 대한 모든 정규화된 기록을 가져오고 번역 가능한 모든 필드에 대한 문서 컨텐츠에 요소(LFDocumentContentElement의 객체)를 추가합니다. 여기에는 다음 매개변수가 포함됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| tableName | 문자열 | 기록을 가져올 테이블입니다. |
| encodedQuery | 문자열 | processTranslatableFieldsForSingleRecord 테이블에서 기록을 필터링하기 위한 인코딩된 쿼리입니다. |
| groupName | 문자열 | 이 입력에 대한 그룹의 이름입니다. |
processElement()
이 함수를 사용하여 LFDocumentContent 객체에 요소(LFDocumentContentElement의 객체)를 추가합니다.
| 요소 | LFDocumentContentElement | 문서 컨텐츠에 추가할 요소입니다. |
빌드()
LFDocumentContent 개체를 반환합니다.
주:
getFinalJSON 함수는 릴리스에서 Zurich 사용되지 않으며 build() 함수를 사용하는 것이 좋습니다.
문서 콘텐츠를 빌드하는 샘플 스크립트입니다.
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
}
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
}
}
}