SharePoint 2013: Uso del servicio de traducciones desde el modelo de objetos en cliente (I)!

Una de las grandes novedades de SharePoint 2013 es el servicio de traducciones qué posibilita la traducción de documentos y contenidos de SharePoint de forma asíncrona o síncrona con una arquitectura similar al servicio Word Automation Services. Lo interesante de este servicio es qué por un lado dispone de funcionalidad nativa de uso de traducciones para sitios web multi-idioma por ejemplo, pero por otro nos permite crear soluciones de traducción personalizadas a través de las siguientes posibilidades:

  • Modelo de objetos de servidor.
  • Modelo de objetos de cliente.
  • API REST.

Capitulo17_Figura33

En este post vamos a ver la segunda de las opciones, y en concreto como realizar una traducción de tipo asíncrono en un proyecto de tipo aplicación de consola:

  • Lo primero qué necesitaréis es agregar las referencias necesarias: Microsoft.SharePoint.Client, Microsoft.SharePoint.Client.Runtime y Microsoft.Office.TranslationServices.Client. Todas las referencias se encuentran en la carpeta ISAPI bajo el directorio 15 de instalación de SharePoint 2013.
  • A continuación, añadir las directivas using necesarias…en mi caso:
   1:  using MO_Cliente = Microsoft.SharePoint.Client;
   2:  using MO_TRCliente = Microsoft.Office.Client.TranslationServices;

  • Para realizar una traducción de tipo asíncrono, el disponemos de la clase TranslationJob que cuenta con métodos AddFile(), AddFolder() y AddLibrary() para traducir archivos individuales, archivos en carpetas y archivos den Bibliotecas de Documentos. Por ejemplo, para traducir el contenido de una biblioteca de documentos al idioma inglés utilizaríamos un código como el que sigue:

 

   1:  static void TraduccionAsincronaClientOM()
   2:  {
   3:      try
   4:      {
   5:          using (MO_Cliente.ClientContext ctx=
   6:              new MO_Cliente.ClientContext(
   7:                  "http://[Servidor]/"))
   8:          {
   9:              MO_Cliente.List lEntrada =
  10:                  ctx.Web.Lists.GetByTitle("[BibliotecaOrigen]");
  11:              MO_Cliente.List lSalida =
  12:                  ctx.Web.Lists.GetByTitle("[BibliotecaDestino]");
  13:   
  14:              MO_TRCliente.TranslationJob tjJob = 
  15:                  new MO_TRCliente.TranslationJob(ctx, "en");
  16:   
  17:              tjJob.AddLibrary(lEntrada,lSalida);
  18:              tjJob.Name = "Job Traducción MO Cliente";
  19:              tjJob.Start();
  20:              ctx.Load(tjJob);
  21:              ctx.ExecuteQuery();
  22:                      
  23:              Console.WriteLine("JobId: " + tjJob.JobId);
  24:              Console.WriteLine("Nombre Job: " + tjJob.Name);
  25:              Console.WriteLine("Traducción en marcha....");       
  26:          }
  27:   
  28:      }
  29:      catch (Exception ex)
  30:      {
  31:          Console.WriteLine(
  32:              "Error: ", ex.Message);
  33:      }
  34:  }

  • Fijaros como la mecánica de uso del servicio de traducciones es bastante sencilla, una vez que tenemos el correspondiente ClientContext creamos las correspondientes instancias de bibliotecas (origen y destino) mediante el método GetByTitle(). A continuación, creamos una instancia de TranslationJob, llamamos al método AddLibrary() para qué el contenido de la biblioteca origen sea traducido y volcado en la biblioteca destino, y llamamos al método Start() para que se encole el correspondiente Job de traducción.
  • Por supuesto, hasta que no realicemos un Load() en el contexto y un ExecuteQuery(), no se mandarán las operaciones al servidor.

Sólo tenemos que esperar unos minutos para comprobar que el archivo origen ha sido traducido al idioma inglés como esperábamos:

image image

Y hasta aquí llega este primer post sobre como usar el modelo de objetos en cliente para realizar traducciones de documentos (Nota: En el ejemplo he hecho uso del servicio de traducciones de Office 365).

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

2 comentarios en “SharePoint 2013: Uso del servicio de traducciones desde el modelo de objetos en cliente (I)!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *