LFDocumentContentBuilder에 대한 스크립트 도우미 함수 읽기

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기7분
  • LFDocumentContentBuilder 는 문서 내용을 빌드하는 유틸리티 기능을 제공합니다. 이러한 함수를 사용하여 표준 테이블을 사용하든 번역하지 않든 관계없이 모든 아티팩트에서 번역 가능한 콘텐츠를 추출하는 논리를 작성합니다.

    initialize (version, targetLanguage, sys_id, tableName)

    이 함수를 LFDocumentContentBuilder 의 생성자로 사용하고 다음 매개변수를 포함합니다.
    이름 유형 설명
    버전 문자열 생성할 문서 컨텐츠의 버전 유형입니다. 의 경우 Yokohama이 값은 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 함수는 릴리스에서 Yokohama 사용되지 않으며 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
            }
        }
    }