Compartir a través de


Servicios de traducción automática en SharePoint

Obtenga más información sobre el servicio de traducción automática, que es una nueva aplicación de servicio en SharePoint que permite la traducción automática de archivos y sitios.

Introducción al servicio de traducción automática

Nota:

  • En septiembre de 2018 se anunció que los servicios de traducción automática quedarán en desuso en SharePoint para Microsoft 365, pero seguirán siendo compatibles. Este servicio dejará de estar disponible y dejará de ser compatible por completo a finales de julio de 2022.
  • La API del servicio de traducción automática está marcada como en desuso y no estará disponible a través del CSOM SharePoint.
  • Todas las instancias existentes de las API del servidor de traducción automática dejarán de mostrar la funcionalidad multilingüe en su entorno de Microsoft 365 a finales de julio de 2022.
  • Este artículo se retirará en diciembre de 2022.
  • Si usa sitios de comunicación modernos en SharePoint, se recomienda usar la característica de páginas y sitios multilingües modernos en lugar de la característica de servicios de traducción automática de variaciones.

El servicio de traducción automática es una nueva aplicación de servicio de SharePoint que permite la traducción automática de archivos y sitios. Cuando la aplicación Servicio de traducción automática procesa una solicitud de traducción, reenvía la solicitud al servicio de traducción automática hospedada en la nube de Microsoft Translator , donde se realiza el trabajo de traducción real. Este servicio de nube también incluye la Microsoft Office, Lync, Yammer y Bing características de traducción.

La aplicación Servicio de traducción automática procesa las solicitudes de traducción de forma asincrónica y sincrónica. Las solicitudes de traducción asincrónica se procesan cuando se ejecuta el trabajo del temporizador de traducción. El intervalo predeterminado del trabajo del temporizador de traducción es de 15 minutos; puede administrar esta configuración en Administración central o mediante Windows PowerShell. También puede establecer que el temporizador se ejecute inmediatamente mediante el siguiente comando:


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

Las solicitudes de traducción sincrónicas se procesan en cuanto se envían.

Componentes compartidos con los servicios de automatización de Word

La arquitectura de Servicio de traducción automática comparte varios componentes de la arquitectura de Microsoft Word Automation Services. Para obtener más información sobre la arquitectura de Word Automation Services, vea Arquitectura de Word Automation Services.

El modelo de objetos Servicio de traducción automática se modela después del modelo de objetos Word Automation Services, por lo que si está familiarizado con la programación de Word Automation Services, encontrará similitudes cuando programe contra el modelo de objetos Servicio de traducción automática.

Uso del modelo de objetos del servidor del Servicio de traducción automática

Las aplicaciones que usan el modelo de objetos de servidor se deben ejecutar directamente en un servidor que esté ejecutando SharePoint. Para obtener información sobre cómo crear aplicaciones que se pueden hospedar de forma remota, consulte Uso del modelo de objetos de cliente de Machine Translation Services más adelante en este tema. El modelo de objetos de servidor Servicio de traducción automática reside en el espacio de nombres de Microsoft.Office.TranslationServices, que se encuentra en Microsoft.Office.TranslationServices.dll.

Con el modelo de objetos de servidor, puede enviar solicitudes a la aplicación de Servicio de traducción automática de forma asincrónica o sincrónica (para traducción instantánea). La aplicación Servicio de traducción automática tiene dos colas de trabajo para almacenar solicitudes de traducción: la cola asincrónica y la cola sincrónica. Las solicitudes de la cola sincrónica se consideran de mayor prioridad y se traducen antes de las solicitudes de la cola asincrónica. Las solicitudes se envían a una de estas colas basándose en la clase usada.

Aplicaciones de ejemplo y fragmentos de código relacionados

Para obtener código de ejemplo que muestra cómo usar el modelo de objetos de servidor desde una aplicación de consola, vea SharePoint: Access Machine Translation Service using server object model(SharePoint: Access Machine Translation Service using server object model).

Traducción asincrónica utilizando el modelo de objetos del servidor

La clase TranslationJob define un conjunto de elementos que se van a traducir. Esto puede ser un archivo único o todos los archivos dentro de una carpeta o biblioteca de documentos. Los trabajos de traducción que se envían de esta forma se almacenan en la base de datos de traducción. Cada vez que se ejecuta el trabajo de temporizador de traducción, obtiene algunos de los trabajos de la base de datos de traducción y los agrega a la cola asincrónica que se va a traducir. El intervalo predeterminado de trabajo del temporizador de traducción es de 15 minutos.

En el siguiente código se muestra cómo traducir un único archivo de forma asíncrona.


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

En el siguiente código se muestra cómo traducir todos los archivos dentro de una carpeta de forma asincrónica.


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();
        }
    }
}

En el siguiente código se muestra cómo traducir todos los archivos dentro de una biblioteca de documentos de forma asincrónica.


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();
            }
        }
    }
}

Traducción sincrónica con el modelo de objetos de servidor

Use la clase SyncTranslator para solicitar la traducción instantánea de archivos y secuencias. Las solicitudes de traducción realizadas usando esta clase no se enrutan igual que las solicitudes hechas utilizando la clase TranslationJob. Estas se agregan inmediatamente a la cola sincrónica para procesarse. La clase TranslationItemInfo contiene los detalles para un único elemento que se traduce mediante Servicio de traducción automática. El método SyncTranslator.Translate devuelve una instancia de esta clase en los trabajos de traducción sincrónicos.

En el siguiente código se muestra cómo traducir un único archivo de forma sincrónica.


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

En el siguiente código se muestra cómo traducir una secuencia de forma sincrónica.


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();

En el siguiente código se muestra cómo traducir una secuencia de bytes de forma sincrónica.


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();

Permisos

Si el usuario para el que se ejecuta la solicitud de traducción puede obtener acceso al archivo que se va a traducir y ese usuario puede acceder a la ubicación de salida del archivo, el usuario borra la comprobación de seguridad y se traduce el archivo.

Uso del modelo de objetos de cliente de Servicios de traducción automática

Servicio de traducción automática también incluye un modelo de objetos de cliente (CSOM) que permite el acceso a la API de Servicio de traducción automática para desarrollo con conexión, local y móvil. Las aplicaciones de cliente pueden usar CSOM para acceder al contenido y la funcionalidad del servidor. El CSOM implementa la mayoría de la funcionalidad de traducción del servidor, pero el CSOM y el modelo de objetos de servidor no tienen paridad uno a uno. Se admite la traducción asincrónica de archivos individuales y de archivos en una biblioteca de documentos o una carpeta. Se admite la traducción sincrónica de archivos, pero no se admiten secuencias de archivos.

El CSOM del servicio de traducción automática incluye un modelo de objetos de cliente administrado por .NET y modelos de objetos de Microsoft Silverlight y JavaScript. Está construido en el CSOM de SharePoint. Por lo tanto, el código del cliente primero obtiene acceso al CSOM de SharePoint y, a continuación, obtiene acceso al CSOM del servicio de traducción automática.

Para más información sobre el CSOM de SharePoint, vea Modelo de objetos cliente administrado. Para más información sobre el objeto ClientContext, que es el punto de entrada al CSOM, vea Contexto de cliente como objeto central.

En la tabla 1 se muestran los objetos equivalentes que las API de CSOM proporcionan para los objetos de servidor de Servicio de traducción automática.

Tabla 1. Las API del modelo de objetos de servidor y sus equivalentes CSOM

Server .NET administrado y Silverlight JavaScript
Microsoft.Office.TranslationServices.TranslationJob
Microsoft.Office.TranslationServices.Client.TranslationJob
SP.Translation.TranslationJob
Microsoft.Office.TranslationServices.TranslationJobInfo
Microsoft.Office.TranslationServices.Client.TranslationJobInfo
SP.Translation.TranslationJobInfo
Microsoft.Office.TranslationServices.TranslationItemInfo
Microsoft.Office.TranslationServices.Client.TranslationItemInfo
SP.Translation.TranslationItemInfo
Microsoft.Office.TranslationServices.TranslationJobStatus
Microsoft.Office.TranslationServices.Client.TranslationJobStatus
SP.Translation.TranslationJobStatus
Microsoft.Office.TranslationServices.SyncTranslator
Microsoft.Office.TranslationServices.Client.SyncTranslator
SP.Translation.SyncTranslator

Servicio de traducción automática CSOM administrado de .NET y CSOM de Silverlight

Para los CSOM administrados por .NET, obtenga una instancia ClientContext (ubicada en el espacio de nombres Microsoft.SharePoint.Client en Microsoft.SharePoint.Client.dll). A continuación, use el modelo de objetos en el espacio de nombres de Microsoft.Office.TranslationServices.Client en Microsoft.Office.TranslationServices.Client.dll.

Aplicaciones de ejemplo y fragmentos de código relacionados

Para obtener código de ejemplo que muestra cómo usar el CSOM administrado de .NET, vea SharePoint: Access Machine Translation Service mediante el modelo de objetos de cliente.

Para el CSOM de Silverlight, obtenga una instancia de ClientContext (que se encuentra en el espacio de nombres de Microsoft.SharePoint.Client en Microsoft.SharePoint.Client.Silverlight.dll). A continuación, use el modelo de objetos en el espacio de nombres de Microsoft.Office.TranslationServices.Client en Microsoft.Office.TranslationServices.Silverlight.dll.

Aplicaciones de ejemplo y fragmentos de código relacionados

Para obtener código de ejemplo que muestra cómo usar el CSOM de Silverlight, vea SharePoint: Access Machine Translation Service from Silverlight application (SharePoint: Access Machine Translation Service from Silverlight application).

Para traducir un único archivo de forma asincrónica:


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;

Para traducir una carpeta de forma asincrónica:


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;

Para traducir una biblioteca de forma asincrónica:


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;

Para traducir un único archivo de forma sincrónica:


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;

Para recuperar todos los idiomas admitidos por Servicio de traducción automática:


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

Para comprobar si un idioma determinado es compatible:


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

Para recuperar todas las extensiones de nombre de archivo admitidas por Servicio de traducción automática:


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

Para comprobar si se admite una extensión de nombre de archivo específica:


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

Para comprobar el límite de tamaño de archivo para una extensión de nombre de archivo específica:


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

Servicio de traducción automática del CSOM de JavaScript

Para el CSOM de JavaScript, obtenga una instancia de SP.ClientContext y, luego use el modelo de objetos del archivo SP.Translation.js.

Aplicaciones de ejemplo y fragmentos de código relacionados

Para obtener código de ejemplo que muestra cómo usar el CSOM de JavaScript, vea SharePoint: Acceso al servicio de traducción automática con JavaScript.

Para traducir un único archivo de forma asincrónica:


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));

Para traducir una carpeta de forma asincrónica:


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));

Para traducir una biblioteca de forma asincrónica:


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));

Para traducir un único archivo de forma sincrónica:


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));

Para recuperar todos los idiomas admitidos por Servicio de traducción automática:


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));

Para comprobar si un idioma determinado es compatible:


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));

Para recuperar todas las extensiones de nombre de archivo admitidas por Servicio de traducción automática:


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));

Para comprobar si se admite una extensión de nombre de archivo específica:


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));

Servicio REST de servicio de traducción automática

SharePoint incluye un servicio de transferencia de estado representacional (REST) que le permite interactuar de forma remota con la aplicación de servicio de traducción automática con cualquier tecnología que sea compatible con las solicitudes Web REST. Para obtener información general sobre REST en SharePoint, vea Usar operaciones de consulta de OData en solicitudes REST de SharePoint.

API de REST de traducción asíncrona

La API de REST para realizar traducción asincrónica es como sigue:

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

Para traducir un único archivo de forma asincrónica:

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

Para traducir una carpeta de forma asincrónica:

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

Para traducir una biblioteca de forma asincrónica:

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

API de REST de traducción síncrona

El servicio REST de Servicio de traducción automática solo admite la traducción sincrónica de archivos. La API para esto es la siguiente:

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

API de REST del servicio de traducción automática adicional

El servicio REST de Servicio de traducción automática incluye API adicionales que puede usar para recuperar información sobre las funciones de la aplicación de Servicio de traducción automática y el estado del trabajo de traducción.

Para recuperar todos los idiomas admitidos porServicio de traducción automática:

http://serverName/_api/TranslationJob.EnumerateSupportedLanguages

Para comprobar si se admite un idioma específico:

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

Para recuperar todas las extensiones de nombre de archivo admitidas por Servicio de traducción automática:

http://serverName/_api/TranslationJob.EnumerateSupportedFileEXtensions

Para comprobar si se admite una extensión de nombre de archivo específica:

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

Para comprobar el límite de tamaño de archivo para una extensión de nombre de archivo específica:

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

Para recuperar una lista de todos los trabajos de traducción asincrónica:

http://serverName/_api/TranslationJobStatus.GetAllJobs

Para recuperar una lista de todos los trabajos de traducción asincrónica activos:

http://serverName/_api/TranslationJobStatus.GetAllActiveJobs

Para recuperar la información de documento de un trabajo específico de traducción asincrónica:

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

Para cancelar un trabajo de traducción asincrónica:

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

Requisitos para documentos de Microsoft Word

Servicio de traducción automática de SharePoint utiliza el lenguaje de párrafo como el idioma de origen cuando traduce los documentos de Microsoft Word. Por ejemplo, si se escribe el párrafo en español, pero se establece el idioma para el párrafo en inglés, el servicio de traducción no se traducirá se a inglés. Esto es porque ya está establecido en inglés.

Para establecer el idioma del párrafo, siga estos pasos:

  1. Seleccione el párrafo.

  2. Haga clic en la ficha de cinta de opciones de revisión.

  3. Haga clic en idioma en el menú desplegable y elija Establecer idioma de revisión.

Ver también