SharePoint の機械翻訳サービスMachine Translation Services in SharePoint

Machine Translation Service について説明します。これは、SharePoint に含まれる新しいサービス アプリケーションであり、ファイルおよびサイトを自動で機械翻訳する機能を提供します。Learn about the Machine Translation Service, which is a new service application in SharePoint that provides automatic machine translation of files and sites.

Machine Translation Service の概要Machine Translation Service overview

注意

機械翻訳を使用すると、ユーザーが翻訳のコンテンツを Microsoft に送信できます。Note: Using machine translation will allow users to send content to Microsoft for translation. Microsoft は、ユーザーが送信したコンテンツを使用して翻訳の品質を向上させます。Microsoft may use content users send us to improve the quality of translations. アプリケーションで Machine Translation Service を使用する場合、このアプリケーションでユーザーが翻訳のためにコンテンツを Microsoft に送信することが許可されること、およびユーザーから送信されたコンテンツは翻訳の品質を向上させるために Microsoft によって使用される可能性があることをユーザーに通知する責任があります。If you use the Machine Translation Service in your application, you are responsible for informing users that this application will allow users to send content to Microsoft for translation and that Microsoft may use content users send us to improve the quality of translations. 詳細については、「Microsoft Translator のプライバシー」を参照してください。See Microsoft Translator Privacy for more information.

Machine Translation Service は SharePoint に含まれる新しいサービス アプリケーションであり、ファイルおよびサイトを自動で機械翻訳する機能を提供します。Machine Translation Service is a new service application in SharePoint that provides automatic machine translation of files and sites. Machine Translation Service アプリケーションは、翻訳要求を処理するときに、その要求を Microsoft Translator クラウドのホスト型機械翻訳サービスに転送ます。転送先のサービスが実際に翻訳処理を実行します。When the Machine Translation Service application processes a translation request, it forwards the request to the Microsoft Translator cloud-hosted machine translation service, where the actual translation work is performed. このクラウド サービスは Microsoft Office、Lync、Yammer、Bing の翻訳機能にも活用されています。This cloud-service also powers the Microsoft Office, Lync, Yammer and Bing translation features.

Machine Translation Service アプリケーションは翻訳要求を非同期的または同期的に処理します。非同期的な翻訳要求は、翻訳タイマー ジョブが実行されるときに処理されます。翻訳タイマー ジョブの既定の間隔は 15 分です。この設定はサーバーの全体管理で、または Windows PowerShell を使用することによって管理できます。さらに、以下のコマンドを使用してタイマーを即時に実行するように設定することもできます。The Machine Translation Service application processes translation requests asynchronously and synchronously. Asynchronous translation requests are processed when the translation timer job executes. The default interval of the translation timer job is 15 minutes; you can manage this setting in Central Administration or by using Windows PowerShell. You can also set the timer to execute immediately using the following command:


$tj = get-sptimerjob "Sharepoint Translation Services"
$tj.Runnow()

同期的な翻訳要求は、要求が送信されるとすぐに処理されます。Synchronous translation requests are processed as soon as they are submitted.

Word Automation Services との共有コンポーネントShared components with Word Automation Services

Machine Translation Service アーキテクチャは、いくつかのコンポーネントを Microsoft Word Automation Services アーキテクチャと共有しています。Word Automation Services アーキテクチャについての詳細は、 Word Automation Services アーキテクチャを参照してください。The Machine Translation Service architecture shares several components from the Microsoft Word Automation Services architecture. For more information about the Word Automation Services architecture, see Word Automation Services Architecture.

Machine Translation Service オブジェクト モデルは、Word Automation Services オブジェクト モデルに従ってモデル化されています。このため、Word Automation Services でのプログラミングに慣れている場合は、Machine Translation Service オブジェクト モデルでのプログラミングがそれに似ていることに気付くでしょう。The Machine Translation Service object model is modeled after the Word Automation Services object model, so if you are familiar with Word Automation Services programming, you'll find similarities with programming against the Machine Translation Service object model.

Machine Translation Service のサーバー オブジェクト モデルの使用Using the Machine Translation Service server object model

サーバー オブジェクト モデルを使用しているアプリケーションは、SharePoint を実行しているサーバー上で直接実行する必要があります。Applications that use the server object model must run directly on a server that is running SharePoint. リモートでホストできるアプリケーションを作成する方法については、このトピックで後述する「Machine Translation Service のクライアント オブジェクト モデルの使用」を参照してください。For information about creating applications that can be hosted remotely, see Using the Machine Translation Services client object model later in this topic. Machine Translation Service サーバーのオブジェクト モデルは、Microsoft.Office.TranslationServices 名前空間にあり、これは Microsoft.Office.TranslationServices.dll にあります。The Machine Translation Service server object model resides in the Microsoft.Office.TranslationServices namespace, which is located in Microsoft.Office.TranslationServices.dll.

サーバー オブジェクト モデルを使用する場合、翻訳の要求は、Machine Translation Service アプリケーションに対して非同期的にも同期的 (即時の翻訳) にも発行できます。Machine Translation Service アプリケーションは翻訳要求を保存する作業キューとして、非同期キューと同期キューの 2 つを備えています。同期キュー内の要求は、より優先度が高いものとして扱われ、非同期キュー内の要求よりも先に翻訳されます。要求は、使用したクラスに基づいてこれらのキューのいずれかに送られます。Using the server object model, you can submit requests to the Machine Translation Service application asynchronously or synchronously (for instant translation). The Machine Translation Service application has two working queues for storing translation requests: the asynchronous queue and the synchronous queue. Requests in the synchronous queue are treated as higher priority and are translated before requests in the asynchronous queue. The requests are routed to one of these queues based on the class that you use.

関連するコード スニペットおよびサンプル アプリ

コンソール アプリケーションからサーバー オブジェクト モデルを使用する方法を説明するサンプル コードについては、「SharePoint: サーバー オブジェクト モデルを使用して Machine Translation Service にアクセスする」を参照してください。For sample code demonstrating how to use the server object model from a console application, see SharePoint: Access Machine Translation Service using server object model.

サーバー オブジェクト モデルを使用した非同期的翻訳Asynchronous translation using the server object model

TranslationJob クラスは、翻訳されるアイテムの集合を定義します。これは、単一のファイルにすることも、フォルダーやドキュメント ライブラリ内のすべてのファイルにすることもできます。この方法で発行された翻訳ジョブは、翻訳データベースに保管されます。翻訳タイマー ジョブが実行されるたびに、翻訳データベースからいくつかのジョブが取り出され、翻訳対象として非同期キューに追加されます。翻訳タイマー ジョブの既定の間隔は 15 分です。The TranslationJob class defines a set of items to be translated. This can be a single file or every file within a folder or document library. Translation jobs that are submitted this way are stored in the translation database. Each time the translation timer job runs, it takes some of the jobs from the translation database and adds them to the asynchronous queue to be translated. The default interval of the translation timer job is 15 minutes.

以下のコードは、1 つのファイルを非同期で翻訳する方法を示しています。The following code shows how to translate a single file asynchronously.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
TranslationJob job = new TranslationJob(sc, CultureInfo.GetCultureInfo(culture)); 
job.AddFile(input, output);
job.Start(); 

以下のコードは、1 つのフォルダー内のすべてのファイルを非同期で翻訳する方法を示しています。The following code shows how to translate every file within a folder asynchronously.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
TranslationJob job = new TranslationJob(sc, CultureInfo.GetCultureInfo(culture));
using (SPSite siteIn = new SPSite(inputFolder))
{
    using (SPWeb webIn = siteIn.OpenWeb())
    {
        using (SPWeb webOut = siteOut.OpenWeb())
        {
            SPFolder folderIn = webIn.GetFolder(inputFolder);
            SPFolder folderOut = webOut.GetFolder(outputFolder);                    
            job.AddFolder(folderIn, folderOut, true);
            job.Start();
        }
    }
}

以下のコードは、1 つのドキュメント ライブラリ内のすべてのファイルを非同期で翻訳する方法を示しています。The following code shows how to translate every file within a document library asynchronously.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
TranslationJob job = new TranslationJob(sc, CultureInfo.GetCultureInfo(culture));
using (SPSite siteIn = new SPSite(inputList))
{
    using (SPWeb webIn = siteIn.OpenWeb())
    {
        using (SPSite siteOut = new SPSite(outputList))
        {
            using (SPWeb webOut = siteOut.OpenWeb())
            {
                SPDocumentLibrary listIn = (SPDocumentLibrary)webIn.GetList(inputList);
                SPDocumentLibrary listOut = (SPDocumentLibrary)webOut.GetList(outputList);
                job.AddLibrary(listIn, listOut);
                job.Start();
            }
        }
    }
}

サーバー オブジェクト モデルを使用した同期的翻訳Synchronous translation using the server object model

SyncTranslator クラスを使用してファイルまたはストリームについて即時の翻訳を要求できます。このクラスを使用して行われた翻訳要求は、 TranslationJob クラスを使用して行われた要求とは別の方法で処理が進みます。これは、処理対象として即時に同期キューに追加されます。 TranslationItemInfo クラスは、Machine Translation Service によって翻訳された 1 つのアイテムについての詳細を格納します。 SyncTranslator.Translate メソッドは、同期的翻訳ジョブにおいてこのクラスのインスタンスを戻します。You use the SyncTranslator class to request instant translation for files and streams. Translation requests that are made by using this class are not routed the same way as requests that are made by using the TranslationJob class. They are immediately added to the synchronous queue to be processed. The TranslationItemInfo class contains the details for a single item that is translated by the Machine Translation Service. The SyncTranslator.Translate method returns an instance of this class in synchronous translation jobs.

以下のコードは、1 つのファイルを同期的に翻訳する方法を示しています。The following code shows how to translate a single file synchronously.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
SyncTranslator job = new SyncTranslator(sc, CultureInfo.GetCultureInfo(jobCulture));
TranslationItemInfo itemInfo = job.Translate(input, output);

以下のコードは、ストリームを同期的に翻訳する方法を示しています。The following code shows how to translate a stream synchronously.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
SyncTranslator job = new SyncTranslator(sc, CultureInfo.GetCultureInfo(jobCulture));
FileStream inputStream = new FileStream(input, FileMode.Open);
FileStream outputStream = new FileStream(output, FileMode.Create);     
TranslationItemInfo itemInfo = job.Translate(inputStream, outputStream, fileFormat);
inputStream.Close();
outputStream.Flush();
outputStream.Close();

以下のコードは、バイト シーケンスを同期的に翻訳する方法を示しています。The following code shows how to translate a sequence of bytes synchronously.


SPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));
SyncTranslator job = new SyncTranslator(sc, CultureInfo.GetCultureInfo(jobCulture));
Byte[] inputByte;
Byte[] outputByte;
inputByte = File.ReadAllBytes(input);
outputByte = null;
TranslationItemInfo itemInfo = job.Translate(inputByte, out outputByte, fileFormat);
FileStream outputStream = File.Open(output, FileMode.Create);
MemoryStream memoryStream = new MemoryStream(outputByte);
memoryStream.WriteTo(outputStream);
outputStream.Flush();
outputStream.Close();

アクセス許可Permissions

翻訳要求を実行しているユーザーが、翻訳対象のファイルにアクセスできる場合、かつファイルの出力場所にアクセスできる場合、そのユーザーはセキュリティ チェックに合格し、ファイルが翻訳されます。If the user who the translation request is running for can access the file to be translated, and that user can access the output location for the file, the user clears the security check and the file is translated.

Machine Translation Service のクライアント オブジェクト モデルの使用Using the Machine Translation Services client object model

Machine Translation Service には、オンライン、オンプレミス、およびモバイル開発用の Machine Translation Service API へのアクセスを可能にするクライアント オブジェクト モデル (CSOM) が含まれています。 クライアント アプリケーションは CSOM を使用してサーバーのコンテンツおよび機能にアクセスします。CSOM は、サーバーの翻訳機能のほとんどを実装していますが、CSOM とサーバー側オブジェクト モデルは完全に同一ではありません。非同期的翻訳は、個別のファイル、またはドキュメント ライブラリやフォルダー内の複数のファイルについてサポートされます。同期的翻訳は、ファイルについてはサポートされますが、ファイル ストリームについてはサポートされません。Machine Translation Service also includes a client object model (CSOM) that enables access to the Machine Translation Service API for online, on-premises, and mobile development. Client applications can use the CSOM to access server content and functionality. The CSOM implements most of the translation functionality of the server, but the CSOM and the server-side object model do not have one-to-one parity. Asynchronous translation of individual files, and files in a document library or folder are supported. Synchronous translation of files is supported, but file streams are not supported.

Machine Translation Service の CSOM には、.NET マネージ クライアント側オブジェクト モデルおよび Microsoft Silverlight と JavaScript のオブジェクト モデルが含まれています。The Machine Translation Service CSOM includes a .NET managed client-side object model and Microsoft Silverlight and JavaScript object models. これは、SharePoint CSOM 上に構築されています。It is built on the SharePoint CSOM. そのため、クライアント コードでは、SharePoint CSOM を最初にアクセスして、次に Machine Translation Service CSOM にアクセスします。Therefore, client code first accesses the SharePoint CSOM and then accesses the Machine Translation Service CSOM.

SharePoint CSOM についての詳細は、 SharePoint 2010 クライアント オブジェクト モデルを参照してください。CSOM へのエントリ ポイントである ClientContext オブジェクトについての詳細は、 中心的オブジェクトであるクライアント コンテキストを参照してください。For more information about the SharePoint CSOM, see SharePoint 2010 Client Object Model. For more information about the ClientContext object, which is the entry point to the CSOM, see Client Context as Central Object.

表 1 は、Machine Translation Service サーバー オブジェクトと、それに対応する CSOM API が提供するオブジェクトを示しています。Table 1 shows the equivalent objects that the CSOM APIs provide for the Machine Translation Service server objects.

表 1. サーバー オブジェクト モデル API と対応する CSOM APITable 1. Server object model APIs and their CSOM equivalents

サーバーServer .NET マネージおよび Silverlight.NET Managed and Silverlight JavaScriptJavaScript
Microsoft.Office.TranslationServices.TranslationJobMicrosoft.Office.TranslationServices.TranslationJob
Microsoft.Office.TranslationServices.Client.TranslationJobMicrosoft.Office.TranslationServices.Client.TranslationJob
SP.Translation.TranslationJobSP.Translation.TranslationJob
Microsoft.Office.TranslationServices.TranslationJobInfoMicrosoft.Office.TranslationServices.TranslationJobInfo
Microsoft.Office.TranslationServices.Client.TranslationJobInfoMicrosoft.Office.TranslationServices.Client.TranslationJobInfo
SP.Translation.TranslationJobInfoSP.Translation.TranslationJobInfo
Microsoft.Office.TranslationServices.TranslationItemInfoMicrosoft.Office.TranslationServices.TranslationItemInfo
Microsoft.Office.TranslationServices.Client.TranslationItemInfoMicrosoft.Office.TranslationServices.Client.TranslationItemInfo
SP.Translation.TranslationItemInfoSP.Translation.TranslationItemInfo
Microsoft.Office.TranslationServices.TranslationJobStatusMicrosoft.Office.TranslationServices.TranslationJobStatus
Microsoft.Office.TranslationServices.Client.TranslationJobStatusMicrosoft.Office.TranslationServices.Client.TranslationJobStatus
SP.Translation.TranslationJobStatusSP.Translation.TranslationJobStatus
Microsoft.Office.TranslationServices.SyncTranslatorMicrosoft.Office.TranslationServices.SyncTranslator
Microsoft.Office.TranslationServices.Client.SyncTranslatorMicrosoft.Office.TranslationServices.Client.SyncTranslator
SP.Translation.SyncTranslatorSP.Translation.SyncTranslator

Machine Translation Service .NET マネージ CSOM と Silverlight CSOMMachine Translation Service .NET managed CSOM and Silverlight CSOM

.NET マネージ CSOM の場合は、 ClientContext インスタンス (Microsoft.SharePoint.Client.dll の Microsoft.SharePoint.Client 名前空間にある) を取得します。そして、Microsoft.Office.TranslationServices.Client.dll の Microsoft.Office.TranslationServices.Client 名前空間の中のオブジェクト モデルを使用します。For the .NET managed CSOM, get a ClientContext instance (located in the Microsoft.SharePoint.Client namespace in the Microsoft.SharePoint.Client.dll). Then use the object model in the Microsoft.Office.TranslationServices.Client namespace in the Microsoft.Office.TranslationServices.Client.dll.

関連するコード スニペットおよびサンプル アプリ

.NET マネージ CSOM の使用方法を説明するサンプル コードについては、「SharePoint: クライアント オブジェクト モデルを使用して Machine Translation Service にアクセスする」を参照してください。For sample code demonstrating how to use the .NET Managed CSOM, see SharePoint: Access Machine Translation Service using the client object model.

Silverlight CSOM の場合は、 ClientContext インスタンス (Microsoft.SharePoint.Client.Silverlight.dll の Microsoft.SharePoint.Client 名前空間にある) を取得します。そして、Microsoft.Office.TranslationServices.Silverlight.dll の Microsoft.Office.TranslationServices.Client 名前空間の中のオブジェクト モデルを使用します。For the Silverlight CSOM, get a ClientContext instance (located in the Microsoft.SharePoint.Client namespace in the Microsoft.SharePoint.Client.Silverlight.dll). Then use the object model in the Microsoft.Office.TranslationServices.Client namespace in the Microsoft.Office.TranslationServices.Silverlight.dll.

関連するコード スニペットおよびサンプル アプリ

Silverlight CSOM の使用方法を説明するサンプル コードについては、「SharePoint: Silverlight アプリケーションから Machine Translation Service にアクセスする」を参照してください。For sample code demonstrating how to use the Silverlight CSOM, see SharePoint: Access Machine Translation Service from Silverlight application.

1 つのファイルを非同期的に翻訳するには次のようにします。To translate a single file asynchronously:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
string culture  = "cultureID";
string name = "translationJobName";
string  inputFile =  "http://serverName/path/inputFileName";
string outputFile = "http://serverName/path/outputFileName";
TranslationJob job = new TranslationJob(clientContext , culture);
job.AddFile(inputFile , outputFile);
job.Name = name;
job.Start();
clientContext.Load(job);
clientContext.ExecuteQuery();
//To retrieve the translation job ID.
string jobID = job.JobId;

1 つのフォルダーを非同期的に翻訳するには次のようにします。To translate a folder asynchronously:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
string culture = "cultureID";
string name = "translationJobName";
string inputFolder = clientContext.Web.GetFolderByServerRelativeUrl("inFolderPath");
string outputFolder = clientContext.Web.GetFolderByServerRelativeUrl("outFolderPath");  
TranslationJob job = new TranslationJob(clientContext , culture);
job.AddFolder(inputFolder, outputFolder, true);
job.Name = name;
job.Start();            
clientContext.Load(job);
clientContext.ExecuteQuery();
//To retrieve the translation job ID.
string jobID = job.JobId;

1 つのライブラリを非同期的に翻訳するには次のようにします。To translate a library asynchronously:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
string culture = "cultureID";
string name = "translationJobName";
string inputLibrary = clientContext.Web.Lists.GetByTitle("inputLibraryName");
string outputLibrary = clientContext.Web.Lists.GetByTitle("outputLibraryName");
TranslationJob job = new TranslationJob(clientContext , culture);
job.AddFolder(inputLibrary , outputLibrary , true);
job.Name = name;
job.Start();            
clientContext.Load(job);
clientContext.ExecuteQuery();
//To retrieve the translation job ID.
string jobID = job.JobId;

1 つのファイルを同期的に翻訳するには次のようにします。To translate a single file synchronously:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
string culture = "cultureID"
string inputFile = "http://serverName/path/inputFileName";
string outputFile = "http://serverName/path/outputFileName";
SyncTranslator job = new SyncTranslator(clientContext , culture);
job.OutputSaveBehavior = SaveBehavior.AlwaysOverwrite;
ClientResult<TranslationItemInfo> cr = job.Translate(inputFile, outputFile );
clientContext.ExecuteQuery(); 
//To retrieve additional information about the translation job.
string errorCode = clientContext.Value.ErrorCode;
string errorMessage = clientContext.Value.ErrorMessage;
string translateID = clientContext.Value.TranslationId;
string succeedResult  = clientContext.Value.Succeeded;
string failResult  = clientContext.Value.Failed;
string cancelStatus = clientContext.Value.Canceled;
string inProgressStatus = clientContext.Value.InProgress;
string notStartedStatus = clientContext.Value.NotStarted;

Machine Translation Service によってサポートされているすべての言語を取得するには次のようにします。To retrieve all languages that are supported by the Machine Translation Service:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
IEnumerable<string> supportedLanguages = TranslationJob.EnumerateSupportedLanguages(clientContext);
clientContext.ExecuteQuery();
foreach (string item in supportedLanguages)
{
    Console.Write(item + ", ");
}

特定の言語がサポートされているかどうかを確認するには次のようにします。To check whether a specific language is supported:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
clientResult<bool> isSupported;
isSupported = TranslationJob.IsLanguageSupported(clientContext, "language");
clientContext.ExecuteQuery();

Machine Translation Service によってサポートされているすべてのファイル名拡張子を取得するには次のようにします。To retrieve all the file name extensions that are supported by the Machine Translation Service:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
IEnumerable<string> fileExt = TranslationJob.EnumerateSupportedFileExtensions(clientContext);
clientContext.ExecuteQuery();
foreach (string item in fileExt)
{
    Console.Write(item + ", ");
}

特定のファイル名拡張子がサポートされているかどうかを確認するには次のようにします。To check whether a specific file name extension is supported:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
clientResult<bool> isSupported;
isSupported = TranslationJob.IsFileExtensionSupported(clientContext, "fileExtension");
clientContext.ExecuteQuery();

特定のファイル名拡張子についてファイル サイズの制限を確認するには次のようにします。To check the file size limit for a specific file name extension:


ClientContext clientContext = new ClientContext("http://serverName/sites/siteCollectionPath");
clientResult<int> maxSize;
maxSize = TranslationJob.GetMaximumFileSize(clientContext, "fileExtension");
clientContext.ExecuteQuery();

Machine Translation Service の JavaScript CSOMMachine Translation Service JavaScript CSOM

JavaScript CSOM の場合は、 SP.ClientContext インスタンスを取得し、SP.Translation.js ファイル内のオブジェクト モデルを使用します。For the JavaScript CSOM, get an SP.ClientContext instance, and then use the object model in the SP.Translation.js file.

関連するコード スニペットおよびサンプル アプリ

JavaScript CSOM の使用方法を説明するサンプル コードについては、「SharePoint: JavaScript を使用して Machine Translation Service にアクセスする」を参照してください。For sample code demonstrating how to use the JavaScript CSOM, see SharePoint: Accessing the Machine Translation Service with JavaScript.

1 つのファイルを非同期的に翻訳するには次のようにします。To translate a single file asynchronously:


var asyncJob;
var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
asyncJob = SP.Translation.TranslationJob.newObject(clientContext, "cultureID");
asyncJob.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);
asyncJob.addFile("inputFilePath", "outputFilePath");
asyncJob.set_name("translationJobName");
asyncJob.start();
clientContext.load(asyncJob);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededASync),Function.createDelegate(this, this.onQueryFailed));

1 つのフォルダーを非同期的に翻訳するには次のようにします。To translate a folder asynchronously:


var asyncJob;
var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
asyncJob = SP.Translation.TranslationJob.newObject(clientContext, "cultureID");
asyncJob.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);
var inputFolder = clientContext.get_web().getFolderByServerRelativeUrl("inputFilePath");
var outputFolder = clientContext.get_web().getFolderByServerRelativeUrl("outputFilePath");
asyncJob.addFolder(inputFolder, outputFolder, true);
asyncJob.set_name("translationJobName");
asyncJob.start();
clientContext.load(asyncJob);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededASync),Function.createDelegate(this, this.onQueryFailed));

1 つのライブラリを非同期的に翻訳するには次のようにします。To translate a library asynchronously:


var asyncJob;
var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
asyncJob = SP.Translation.TranslationJob.newObject(clientContext, "cultureID");
asyncJob.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);
var inputLibrary= clientContext.get_web().get_lists().getByTitle("inputFilePath");
var outputLibrary= clientContext.get_web().get_lists().getByTitle("outputFilePath");
asyncJob.addLibrary(inputLibrary, outputLibrary);
asyncJob.set_name("translationJobName");
asyncJob.start();
clientContext.load(asyncJob);
clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceededASync),Function.createDelegate(this, this.onQueryFailed));

1 つのファイルを同期的に翻訳するには次のようにします。To translate a single file synchronously:


var result;
var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var job = SP.Translation.SyncTranslator.newObject(clientContext, "cultureID");
job.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);
result = job.translate("inputFilePath", "outputFilePath");
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededSync),
Function.createDelegate(this, this.onQueryFailed));

Machine Translation Service によってサポートされているすべての言語を取得するには次のようにします。To retrieve all languages that are supported by the Machine Translation Service:


var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var result= SP.Translation.TranslationJob.enumerateSupportedLanguages(clientContext);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededListAllLang),Function.createDelegate(this, this.onQueryFailed));

特定の言語がサポートされているかどうかを確認するには次のようにします。To check whether a specific language is supported:


var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var result= SP.Translation.TranslationJob.isLanguageSupported(clientContext," language");
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededTestLang),Function.createDelegate(this, this.onQueryFailed));

Machine Translation Service によってサポートされているすべてのファイル名拡張子を取得するには次のようにします。To retrieve all the file name extensions that are supported by the Machine Translation Service:


var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var result= SP.Translation.TranslationJob.enumerateSupportedFileExtensions(clientContext);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededListAllFileExt),Function.createDelegate(this, this.onQueryFailed));

特定のファイル名拡張子がサポートされているかどうかを確認するには次のようにします。To check whether a specific file name extension is supported:


var clientContext = new SP.ClientContext("serverRelativeUrl");
var contextSite = clientContext.get_site();
var result= SP.Translation.TranslationJob.isFileExtensionSupported(clientContext," fileExtension");
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededTestFileExt),Function.createDelegate(this, this.onQueryFailed));

Machine Translation Service の REST サービスMachine Translation Service REST service

SharePoint には REST (Representational State Transfer) サービスが含まれています。これにより、REST Web 要求をサポートする任意のテクノロジを使用してリモートで Machine Translation Service アプリケーションを操作することができます。SharePoint includes a Representational State Transfer (REST) service that enables you to remotely interact with the Machine Translation Service application by using any technology that supports REST web requests. SharePoint の REST の一般的な情報については、「SharePoint REST 要求で OData クエリ操作を使用する」を参照してください。For general information about REST in SharePoint, see Use OData query operations in SharePoint REST requests.

非同期的な翻訳用の REST APIAnsynchronous Translation REST API

翻訳を非同期的に実行する REST API は次のとおりです。The REST API for performing asynchronous translation is as follows:

http://serverName/_api/TranslationJob('language')

1 つのファイルを非同期的に翻訳するには次のようにします。To translate a single file asynchronously:

http://serverName/_api/TranslationJob('language')/TranslateFile(inputFile='/path/intput file', outputFile='/path/output file')

1 つのフォルダーを非同期的に翻訳するには次のようにします。To translate a folder asynchronously:

http://serverName/_api/TranslationJob('language')/TranslateFolder(inputFolder='/path/in', outputFolder='/path/out')

1 つのライブラリを非同期的に翻訳するには次のようにします。To translate a library asynchronously:

http://serverName/_api/TranslationJob('language')/TranslateLibrary(inputLibrary='/LibraryName', outputLibrary='/LibraryName'')

同期的な翻訳用の REST APISynchronous Translation REST API

Machine Translation Service REST サービスはファイルについてのみ同期的な翻訳をサポートします。このための API は次のとおりです。The Machine Translation Service REST service supports only synchronous translation of files. The API for this is as follows:

http://serverName/_api/SyncTranslator('language')/Translate(outputFile='/path/output file', inputFile='/path/input file')

その他の Machine Translation Service REST APIAdditional Machine Translation Service REST APIs

Machine Translation Service REST サービスには、この他に、Machine Translation Service アプリケーションの機能および翻訳ジョブのステータスに関する情報を取得するために使用できる API も含まれています。The Machine Translation Service REST service includes additional APIs that you can use to retrieve information about the Machine Translation Service application capabilities and translation job status.

Machine Translation Service によってサポートされるすべての言語を取得するには次のようにします。To retrieve all languages supported by Machine Translation Service:

http://serverName/_api/TranslationJob.EnumerateSupportedLanguages

特定の言語がサポートされているかどうかを確認するには次のようにします。To check whether a specific language is supported:

http://serverName/_api/TranslationJob.IsLanguageSupported('language')

Machine Translation Service によってサポートされているすべてのファイル名拡張子を取得するには次のようにします。To retrieve all the file name extensions that are supported by Machine Translation Service:

http://serverName/_api/TranslationJob.EnumerateSupportedFileEXtensions

特定のファイル名拡張子がサポートされているかどうかを確認するには次のようにします。To check whether a specific file name extension is supported:

http://serverName/_api/TranslationJob.IsFileExtensionSupported('extension')

特定のファイル名拡張子についてファイル サイズの制限を確認するには次のようにします。To check the file size limit for a specific file name extension:

http://serverName/_api/TranslationJob.GetMaximumFileSize('extension')

非同期翻訳ジョブすべてを含むリストを取得するには次のようにします。To retrieve a list of all the asynchronous translation jobs:

http://serverName/_api/TranslationJobStatus.GetAllJobs

アクティブな非同期翻訳ジョブすべてを含むリストを取得するには次のようにします。To retrieve a list of all the active asynchronous translation jobs:

http://serverName/_api/TranslationJobStatus.GetAllActiveJobs

特定の非同期翻訳ジョブのドキュメント情報を取得するには次のようにします。To retrieve the document information for a specific asynchronous translation job:

http://serverName/_api/TranslationJobStatus('jobid')/GetAllItems

非同期翻訳ジョブを取り消すにはTo cancel an asynchronous translation job:

http://serverName/_api/TranslationJob.CancelJob('jobid')

Microsoft Word 文書の要件Requirements for Microsoft Word Documents

SharePoint 機械翻訳サービスでは、Microsoft Word 文書を翻訳するときに、ソース言語として段落の言語を使用します。たとえば、段落がスペイン語で記述されていても、段落の言語が英語に設定されている場合、翻訳サービスはその文書を英語に翻訳しません。段落の言語が英語に設定済みだからです。SharePoint Machine Translation Service uses the paragraph language as the Source Language when it translates Microsoft Word documents. For example, if the paragraph is written in Spanish but the language for the paragraph is set to English, the Translation Service will not translate it to English. This is because it is already set to English.

段落の言語を設定するには、次の手順を行います。To set the paragraph language, follow these steps:

  1. 段落を選択します。Select the paragraph.

  2. [校閲] リボン タブをクリックします。Click the Review Ribbon tab.

  3. ドロップダウン メニューから [言語] をクリックし、[校正言語の設定] を選択します。Click Language from the drop-down menu, and choose Set Proofing Language.

関連項目See also