LFDocumentContentBuilder のスクリプト読み取りヘルパー関数
LFDocumentContentBuilder は、ドキュメントコンテンツをビルドするためのユーティリティ関数を提供します。これらの関数を使用して、それらが翻訳に標準テーブルを使用するかどうかに関係なく、アーティファクトから翻訳可能なコンテンツを抽出するロジックを記述します。
initialize (version, targetLanguage, sys_id, tableName)
この関数を LFDocumentContentBuilder のコンストラクターとして使用し、次のパラメーターを含めます。
| 名前 | タイプ | 説明 |
|---|---|---|
| Version | 文字列 | 生成されるドキュメントコンテンツのバージョンタイプ。Xanadu の場合、この値は v1 です。 |
| targetLanguage | 文字列 | ローカリゼーションタスクドキュメントコンテンツのターゲット言語。 ターゲット言語は、スクリプト読み取り関数の引数から使用可能な言語と同じです。 |
| Sys_id | 文字列 | アーティファクトレコードの sys_id。 |
| tableName | 文字列 | アーティファクトレコードのテーブル名。 |
processString (string, groupName, label)
この関数を使用して、指定された文字列のドキュメントコンテンツに LFDocumentContentElement を追加し、次のパラメーターを含めます。
| 名前 | タイプ | 説明 |
|---|---|---|
| string | 文字列 | ドキュメントコンテンツエントリが作成される値。 |
| groupName | 文字列 | 要素が属するグループの名前。 |
| label | 文字列 | 作成された要素の一意のラベル識別子。 |
processStringArray (stringArray, groupName, label)
この関数を使用して、指定された文字列のドキュメントコンテンツに要素 (LFDocumentContentElement のオブジェクト) を追加し、次のパラメーターを含めます。
| 名前 | タイプ | 説明 |
|---|---|---|
| stringArray | 文字列のリスト | ドキュメントコンテンツエントリが作成される値のリスト。 |
| groupName | 文字列 | これらの文字列が属するグループの名前。 |
| label | 文字列 | これらの文字列の一意のラベル識別子。 |
processScript (scriptContent, groupName, label)
この関数を使用して、提供されたスクリプトで getMessage、gs.getMessage、または gs.getMessageLang の入力として存在する文字列のドキュメントコンテンツに要素を追加します。次のパラメーターがあります。
| 名前 | タイプ | 説明 |
|---|---|---|
| scriptContent | 文字列 | getMessage、gs.getMessage、または gs.getMessageLang の入力として存在する文字列を取得するために処理されるスクリプト。 |
| groupName | 文字列 | この入力のグループの名前。 |
| label | 文字列 | この入力の一意のラベル識別子。 |
例を次に示します。
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)
この関数を使用して、すべての翻訳可能フィールドのドキュメントコンテンツで、指定された glideRecord オブジェクトの要素を作成します。これらの翻訳可能フィールドは、translated_field、translated_text、または translated_html タイプにすることができます。これには次のパラメーターが含まれます。
| 名前 | タイプ | 説明 |
|---|---|---|
| glideRecord | GlideRecord | 翻訳可能フィールド用に処理される GlideRecord オブジェクト。GlideRecord は有効なテーブルレコードを指している必要があります。 |
| groupName | 文字列 | この入力のグループの名前。 |
processTranslatableFieldsForMultipleRecords (tableName, encodedQuery, groupName)
この関数を使用して、指定された tableName および encodedQuery のすべての修飾レコードをフェッチし、すべての翻訳可能フィールドのドキュメントコンテンツに要素 (LFDocumentContentElement のオブジェクト) を追加します。これには次のパラメーターが含まれます。
| 名前 | タイプ | 説明 |
|---|---|---|
| tableName | 文字列 | レコードをフェッチするテーブル。 |
| encodedQuery | 文字列 | processTranslatableFieldsForSingleRecord テーブルからレコードをフィルタリングするためのエンコードされたクエリ。 |
| groupName | 文字列 | この入力のグループの名前。 |
processElement()
この関数を使用して、要素 (LFDocumentContentElement のオブジェクト) を LFDocumentContent オブジェクトに追加します。
| 要素 | LFDocumentContentElement | ドキュメントコンテンツに追加する要素。 |
build()
LFDocumentContent オブジェクトを返します。
注:
getFinalJSON 関数は Xanadu リリースで廃止されたため、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
}
}
}