1

同じトピックに関して、SOにはすでに2つの質問があります。( EktronでのコンテンツのXLIFFファイルの作成、ektronでのコンテンツのエクスポート)。どちらのスレッドにも終わりがないので、ここでもう少し詳しく説明して同じトピックについて説明します。

同じオプションを提供するためにektronが使用するAPIを使用して、ワークエリア内の特定のコンテンツのXLIFFファイルを生成する必要があります。データベース内の対応するワークエリアファイルと対応するテーブルを確認しました。しかし、XLIFFzipファイルがどこかに保存されているかどうかがわかりませんでした。物理ディレクトリに保存されていないようです。また、どのテーブルにもXLIFFファイルとして保存されていません。コンテンツのXLIFFファイルをプルする必要があります。 APIを使用して、どうすればそれを達成できますか?ワークエリアファイルで調査したところ、XLIFFは次の方法で生成されます:コンテンツと言語の選択に応じて、

 <div class="ektronBorder">
                    <iframe src="localizationjobs.aspx" height="360" width="100%" title="History"></iframe>
                </div>

これに依存するのではなく、APIを介してXLIFFファイルを生成および保存する方法はありますか?

4

1 に答える 1

0

これらの両方のジョブを実行するための「1関数」APIはありませんが、次のコードブロックをxliffにエクスポートすると、開始に役立つはずです。いくつかの変数名/参照を変更する必要があります。

Ektron.Cms.BusinessObjects.Localization.L10nManager l10nMgr = new Ektron.Cms.BusinessObjects.Localization.L10nManager(this.requestInfoRef);
LocalizationExportJob exportJob = this.CreateExportJob(title, l10nMgr);
exportJob.XliffVersion = xliffVersion;
exportJob.MaxCompressedFileSize = maxCompressedFileSize;
l10nMgr.StartExportForTranslation(exportJob);

private LocalizationExportJob CreateExportJob(string title, Ektron.Cms.BusinessObjects.Localization.L10nManager l10nMgr)
{
    long[] taxonomyIds = this.GetSelectedLocaleTaxonomyIds();
    if (String.IsNullOrEmpty(title))
    {
        title = this.defaultJobTitle;
        if (taxonomyIds != null && 1 == taxonomyIds.Length)
        {
            long id = taxonomyIds[0];
            Ektron.Cms.API.Content.Taxonomy taxonomyApi = new Ektron.Cms.API.Content.Taxonomy();
            Ektron.Cms.TaxonomyRequest req = new Ektron.Cms.TaxonomyRequest();
            req.TaxonomyId = id;
            req.TaxonomyLanguage = this.commonApi.ContentLanguage;
            Ektron.Cms.TaxonomyData data = taxonomyApi.ReadTaxonomy(ref req);
            if (data != null)
            {
                title = data.TaxonomyName;
            }
        }
    }

    LocalizationExportJob job = new LocalizationExportJob(title);
    job.SourceLanguageId = this.GetSelectedSourceLanguage();
    foreach (long id in taxonomyIds)
    {
        job.AddItem(LocalizableCmsObjectType.LocaleTaxonomy, id);
    }

    return job;
}

残念ながら、インポートへのアクセスははるかに少なく、Ektronビジネスロジックでのみ検出されます。(DLLに埋め込まれています)

于 2013-03-26T13:54:12.280 に答える