{"id":305,"date":"2013-05-07T10:00:30","date_gmt":"2013-05-07T09:00:30","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=305"},"modified":"2013-07-16T10:07:14","modified_gmt":"2013-07-16T09:07:14","slug":"sharepoint-2013-servicio-de-traduccion","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/","title":{"rendered":"[SharePoint 2013] Servicio de Traducci\u00f3n"},"content":{"rendered":"<p><a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-306\" alt=\"Servicio de traducci\u00f3n automatico\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat-300x126.png\" width=\"300\" height=\"126\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat-300x126.png 300w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat.png 409w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Una de las grandes novedades que trae esta nueva versi\u00f3n de <strong>SharePoint<\/strong> es la incorporaci\u00f3n de un servicio de traducci\u00f3n que proporciona la capacidad de traducir autom\u00e1ticamente archivos, p\u00e1ginas y sitios. Este es un requerimiento que en versiones anteriores era muy importante para los portales web multiidoma de hay que desde <a href=\"http:\/\/www.encamina.com\" target=\"_blank\">Encamina<\/a>\u00a0desarrollaramos una producto llamado\u00a0<a href=\"http:\/\/www.translate-sharepoint.com\/inicio.aspx\" target=\"_blank\">Tramat<\/a>\u00a0que su funcionamiento era utilizar un servicio alojado en Azure y<strong>\u00a0<\/strong>ofrece la traducci\u00f3n oficial a varios idiomas de los contenidos de un portal web o Intranet basada en\u00a0<strong>SharePoint<\/strong>, de manera totalmente autom\u00e1tica e integrada con el CMS. Todo esto que nosotros consideramos que era un requerimiento b\u00e1sico para mucho de nuestros clientes ya esta incluida dentro de las caracter\u00edsticas base de esta nueva versi\u00f3n 2013.<\/p>\n<p><!--more--><\/p>\n<p>Ahora bien como podemos hacer uso de esta opci\u00f3n, pues tenemos dos opciones bien activamos el servicio desde la Administraci\u00f3n Central o bien lo activamos usando PowerShell a trav\u00e9s de estos comandos:<\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\r\n$tj = get-sptimerjob &quot;Sharepoint Translation Services&quot;\r\n$tj.Runnow()\r\n<\/pre>\n<p><a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/arquitectura.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-319\" alt=\"Arquitectura Servicio de Traducci\u00f3n\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/arquitectura-300x271.jpg\" width=\"300\" height=\"271\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/arquitectura-300x271.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/arquitectura.jpg 448w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>El servicio de traducci\u00f3n soporta tres tipos de traducciones: sincrona, as\u00edncrona y streaming. En el caso de las traducciones as\u00edncronas, el proceso es realizado por un TimerJob cuya frecuencia de ejecuci\u00f3n se configura desde la Administraci\u00f3n central (aunque por defecto se ejecuta cada 15 minutos). Por lo general utilizaremos una llamada as\u00edncrona (mediante un TimerJob de SharePoint) que lo que hace es consultar bien en Bing o en alg\u00fan servicio especifico que nosotros configuremos y le enviamos el texto a traducir e inmediatamente nos devuelve la traducci\u00f3n. Un caso b\u00e1sico en el que lo vamos a utilizar es un sitio de publicaci\u00f3n con varios idiomas, queremos traducir el contenido de la variante principal (en nuestro caso espa\u00f1ol) y queremos traducirla al ingles.<\/p>\n<p>Ahora bien <a href=\"http:\/\/www.microsoft.com\" target=\"_blank\">Microsoft<\/a> no se ha conformado solo con solucionar esta problem\u00e1tica sino que al igual que en casi todas las opciones, nos ha proporcionado una serie de modelo de Objetos para poder acceder tanto desde el modelo de objetos en el servidor como en el cliente e incluso cuenta con una API Rest para realizar estas operaciones. A continuaci\u00f3n explicaremos los tres casos.<\/p>\n<p><strong>Modelo de Objetos en Servidor<\/strong><br \/>\nPara hacer uso de este modelo en nuestros desarrollos tendremos que a\u00f1adir la siguientes referencia: Microsoft.Office.TranslationServices.dll<\/p>\n<p>Una vez esto con poner el siguiente c\u00f3digo iniciar\u00edamos la traducci\u00f3n as\u00edncrona:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nSPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));\r\nTranslationJob job = new TranslationJob(sc, CultureInfo.GetCultureInfo(culture));\r\nusing (SPSite siteIn = new SPSite(inputList))\r\n{\r\n    using (SPWeb webIn = siteIn.OpenWeb())\r\n    {\r\n        using (SPSite siteOut = new SPSite(outputList))\r\n        {\r\n            using (SPWeb webOut = siteOut.OpenWeb())\r\n            {\r\n                SPDocumentLibrary listIn = (SPDocumentLibrary)webIn.GetList(inputList);\r\n                SPDocumentLibrary listOut = (SPDocumentLibrary)webOut.GetList(outputList);\r\n                job.AddLibrary(listIn, listOut);\r\n                job.Start();\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>Como hemos observado hemos realizado una llamada as\u00edncrona, y en caso de que deseemos podemos monitorizar el proceso de traducci\u00f3n para saber si la traducci\u00f3n se ha realizado con \u00e9xito o no para ello tenemos que hacer uso de la clase Translation.JobStatus y jugar con las funciones que viene de serie.<\/p>\n<p>En caso de que queramos realizar llamadas sincronas (por el tema de las requerimientos tendremos que realizarlo de la siguiente forma:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nSPServiceContext sc = SPServiceContext.GetContext(new SPSite(site));\r\nSyncTranslator job = new SyncTranslator(sc, CultureInfo.GetCultureInfo(jobCulture));\r\nTranslationItemInfo itemInfo = job.Translate(input, output);\r\n<\/pre>\n<p><strong> Modelo de Objetos en Cliente <\/strong><br \/>\n<strong>SharePoint<\/strong> dispone de una implementaci\u00f3n del modelo de objetos en cliente en 4 variantes: <strong>.Net, JavaScript, Silverligth y WindowsPhone<\/strong>. En estas APIs est\u00e1n implementadas la mayor\u00eda de la funcionalidad de traducci\u00f3n disponible en la API del servidor. La \u00fanica pega es que en las llamadas sincronas solo se soportan traducci\u00f3n de archivos.<br \/>\nPara hacerlo en .NET tenemos que a\u00f1adir las librer\u00edas clientes tanto de SharePoint como del servicio de traducci\u00f3n: Microsoft.SharePoint.Client.dll y Microsoft.Office.TranslationServices.Client.<\/p>\n<p>Para traducir un fichero de forma asincrona bastar\u00eda con poner el siguiente c\u00f3digo:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nClientContext clientContext = new ClientContext(&quot;http:\/\/serverName\/sites\/siteCollectionPath&quot;);\r\nstring culture  = &quot;cultureID&quot;;\r\nstring name = &quot;translationJobName&quot;;\r\nstring  inputFile =  &quot;http:\/\/serverName\/path\/inputFileName&quot;;\r\nstring outputFile = &quot;http:\/\/serverName\/path\/outputFileName&quot;;\r\nTranslationJob job = new TranslationJob(clientContext , culture);\r\njob.AddFile(inputFile , outputFile);\r\njob.Name = name;\r\njob.Start();\r\nclientContext.Load(job);\r\nclientContext.ExecuteQuery();\r\n\/\/To retrieve the translation job ID.\r\nstring jobID = job.JobId;\r\n<\/pre>\n<p>Para realizar una llamada sincrona tenemos que llamar a la clase SyncTranslator (de la misma forma que sucede en el modelo de objetos en Servidor):<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nClientContext clientContext = new ClientContext(&quot;http:\/\/serverName\/sites\/siteCollectionPath&quot;);\r\nstring culture = &quot;cultureID&quot;\r\nstring inputFile = &quot;http:\/\/serverName\/path\/inputFileName&quot;;\r\nstring outputFile = &quot;http:\/\/serverName\/path\/outputFileName&quot;;\r\nSyncTranslator job = new SyncTranslator(clientContext , culture);\r\njob.OutputSaveBehavior = SaveBehavior.AlwaysOverwrite;\r\nClientResult cr = job.Translate(inputFile, outputFile );\r\nclientContext.ExecuteQuery();\r\n\/\/To retrieve additional information about the translation job.\r\nstring errorCode = clientContext.Value.ErrorCode;\r\nstring errorMessage = clientContext.Value.ErrorMessage;\r\nstring translateID = clientContext.Value.TranslationId;\r\nstring succeedResult  = clientContext.Value.Succeeded;\r\nstring failResult  = clientContext.Value.Failed;\r\nstring cancelStatus = clientContext.Value.Canceled;\r\nstring inProgressStatus = clientContext.Value.InProgress;\r\nstring notStartedStatus = clientContext.Value.NotStarted;\r\n<\/pre>\n<p>Para realizarlo haciendo uso de JavaScript la sintaxis es muy semejante y para un fichero as\u00edncrono tenemos que realizar lo siguiente:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar asyncJob;\r\nvar clientContext = new SP.ClientContext(&quot;serverRelativeUrl&quot;);\r\nvar contextSite = clientContext.get_site();\r\nasyncJob = SP.Translation.TranslationJob.newObject(clientContext, &quot;cultureID&quot;);\r\nasyncJob.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);\r\nasyncJob.addFile(&quot;inputFilePath&quot;, &quot;outputFilePath&quot;);\r\nasyncJob.set_name(&quot;translationJobName&quot;);\r\nasyncJob.start();\r\nclientContext.load(asyncJob);\r\nclientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededASync),Function.createDelegate(this, this.onQueryFailed));\r\n<\/pre>\n<p>Para realizarlo una llamada s\u00edncrona lo podemos realizar de la siguiente forma:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar result;\r\nvar clientContext = new SP.ClientContext(&quot;serverRelativeUrl&quot;);\r\nvar contextSite = clientContext.get_site();\r\nvar job = SP.Translation.SyncTranslator.newObject(clientContext, &quot;cultureID&quot;);\r\njob.set_outputSaveBehavior(SP.Translation.SaveBehavior.alwaysOverwrite);\r\nresult = job.translate(&quot;inputFilePath&quot;, &quot;outputFilePath&quot;);\r\nclientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededSync),\r\nFunction.createDelegate(this, this.onQueryFailed));\r\n<\/pre>\n<p><strong>API Rest<\/strong><br \/>\nNaturalmente la <strong>API Rest<\/strong> no pod\u00eda faltar y casi el 99% de los objetos de SharePoint tienen su correspondiente punto de entrada, con la API Rest se puede realizar las mismas acciones que con los modelos de objetos en servidor y cliente.<br \/>\n<em>Traducci\u00f3n asincrona<\/em><br \/>\nPara realizar la traducci\u00f3n de as\u00edncrono:<br \/>\nhttp:\/\/serverName\/_api\/TranslationJob(&#8216;language&#8217;)<br \/>\nTraducir un fichero Asincronamente:<br \/>\nhttp:\/\/serverName\/_api\/TranslationJob(&#8216;language&#8217;)\/TranslateFile(inputFile=&#8217;\/path\/intput file&#8217;, outputFile=&#8217;\/path\/output file&#8217;)<br \/>\nTraducir una carpeta As\u00edncronamente<br \/>\nhttp:\/\/serverName\/_api\/TranslationJob(&#8216;language&#8217;)\/TranslateFolder(inputFolder=&#8217;\/path\/in&#8217;, outputFolder=&#8217;\/path\/out&#8217;)<br \/>\nTraduri una Lista as\u00edncronamente<br \/>\nhttp:\/\/serverName\/_api\/TranslationJob(&#8216;language&#8217;)\/TranslateLibrary(inputLibrary=&#8217;\/LibraryName&#8217;, outputLibrary=&#8217;\/LibraryName\u00bb)<br \/>\nPara realizar la traducci\u00f3n de s\u00edncrono:<br \/>\nhttp:\/\/serverName\/_api\/SyncTranslator(&#8216;language&#8217;)\/Translate(outputFile=&#8217;\/path\/output file&#8217;, inputFile=&#8217;\/path\/input file&#8217;)<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Como hemos visto este servicio de traducci\u00f3n es una gran mejora y que viene a solucionar un problema que se arrastraba desde versiones anteriores donde todo esto se transformaba en una problem\u00e1tica y que muchos clientes no valoraban en su justa medida (si Google lo tiene y gratuito como que un producto como SharePoint no tiene?, y no te quedaba decir que no se puede ser un 10 en todo \ud83d\ude42 )<br \/>\nAdem\u00e1s otro punto bastante interesante es su uso dentro de la Suite de Office y en la que tendremos nuestro documento Word que lo tenemos que traducir a varios idiomas y con dos clics lo tendremos traducido. Abajo pongo varios ejemplos y uno de ellos es una APP de Word para traducir el texto.<br \/>\nAhora bien no pensemos que este traductor es 100 % seguro como todo traductor contiene sus fallos y conviene revisarlo pero si que ahorra much\u00edsimo trabajo.<\/p>\n<p>Si quer\u00e9is jugar con el servicio de traducci\u00f3n podeis descargaros estos ejemplos:<br \/>\nhttp:\/\/code.msdn.microsoft.com\/office\/SharePoint-2013-Access-cdaff6b2\/view\/SourceCode#content<br \/>\nhttp:\/\/code.msdn.microsoft.com\/office\/SharePoint-2013-Accessing-647f6dd9<br \/>\nhttp:\/\/code.msdn.microsoft.com\/office\/SharePoint-2013-Implement-7b48ae36<br \/>\nhttp:\/\/code.msdn.microsoft.com\/office\/SharePoint-2013-Perform-a-8e53b06a<\/p>\n<p>Si quer\u00e9is mas informaci\u00f3n<br \/>\nhttp:\/\/msdn.microsoft.com\/en-us\/library\/jj163145(v=office.15).aspx#TranslationSvc_UsingCSOM<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>Una de las grandes novedades que trae esta nueva versi\u00f3n de SharePoint es la incorporaci\u00f3n de un servicio de traducci\u00f3n que proporciona la capacidad de traducir autom\u00e1ticamente archivos, p\u00e1ginas y sitios. Este es un requerimiento que en versiones anteriores era &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[19,49,48,151],"class_list":["post-305","post","type-post","status-publish","format-standard","hentry","category-sharepoint-2013","tag-javascript","tag-modelo-de-objetos-cliente","tag-servicio-de-traduccion","tag-sharepoint-2013"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>[SharePoint 2013] Servicio de Traducci\u00f3n - Desarrollando sobre SharePoint<\/title>\n<meta name=\"description\" content=\"Una de las novedades que trae esta nueva versi\u00f3n de SharePoint es la incorporaci\u00f3n de un servicio de traducci\u00f3n que tiene la capacidad de traducir autom\u00e1ticamente archivos, p\u00e1ginas y sitios.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"[SharePoint 2013] Servicio de Traducci\u00f3n - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"Una de las novedades que trae esta nueva versi\u00f3n de SharePoint es la incorporaci\u00f3n de un servicio de traducci\u00f3n que tiene la capacidad de traducir autom\u00e1ticamente archivos, p\u00e1ginas y sitios.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat.png\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"[SharePoint 2013] Servicio de Traducci\u00f3n\",\"datePublished\":\"2013-05-07T09:00:30+00:00\",\"dateModified\":\"2013-07-16T09:07:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/\"},\"wordCount\":1414,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2013\\\/05\\\/tramat-300x126.png\",\"keywords\":[\"JavaScript\",\"modelo de objetos cliente\",\"servicio de traduccion\",\"sharepoint 2013\"],\"articleSection\":[\"sharepoint 2013\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/\",\"name\":\"[SharePoint 2013] Servicio de Traducci\u00f3n - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2013\\\/05\\\/tramat-300x126.png\",\"datePublished\":\"2013-05-07T09:00:30+00:00\",\"dateModified\":\"2013-07-16T09:07:14+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"description\":\"Una de las novedades que trae esta nueva versi\u00f3n de SharePoint es la incorporaci\u00f3n de un servicio de traducci\u00f3n que tiene la capacidad de traducir autom\u00e1ticamente archivos, p\u00e1ginas y sitios.\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-servicio-de-traduccion\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2013\\\/05\\\/tramat.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/wp-content\\\/uploads\\\/sites\\\/8\\\/2013\\\/05\\\/tramat.png\",\"width\":409,\"height\":172,\"caption\":\"Servicio de traducci\u00f3n automatico\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/\",\"name\":\"Desarrollando sobre SharePoint\",\"description\":\"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"[SharePoint 2013] Servicio de Traducci\u00f3n - Desarrollando sobre SharePoint","description":"Una de las novedades que trae esta nueva versi\u00f3n de SharePoint es la incorporaci\u00f3n de un servicio de traducci\u00f3n que tiene la capacidad de traducir autom\u00e1ticamente archivos, p\u00e1ginas y sitios.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/","twitter_card":"summary_large_image","twitter_title":"[SharePoint 2013] Servicio de Traducci\u00f3n - Desarrollando sobre SharePoint","twitter_description":"Una de las novedades que trae esta nueva versi\u00f3n de SharePoint es la incorporaci\u00f3n de un servicio de traducci\u00f3n que tiene la capacidad de traducir autom\u00e1ticamente archivos, p\u00e1ginas y sitios.","twitter_image":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat.png","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"[SharePoint 2013] Servicio de Traducci\u00f3n","datePublished":"2013-05-07T09:00:30+00:00","dateModified":"2013-07-16T09:07:14+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/"},"wordCount":1414,"commentCount":0,"image":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat-300x126.png","keywords":["JavaScript","modelo de objetos cliente","servicio de traduccion","sharepoint 2013"],"articleSection":["sharepoint 2013"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/","name":"[SharePoint 2013] Servicio de Traducci\u00f3n - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/#primaryimage"},"image":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat-300x126.png","datePublished":"2013-05-07T09:00:30+00:00","dateModified":"2013-07-16T09:07:14+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"description":"Una de las novedades que trae esta nueva versi\u00f3n de SharePoint es la incorporaci\u00f3n de un servicio de traducci\u00f3n que tiene la capacidad de traducir autom\u00e1ticamente archivos, p\u00e1ginas y sitios.","inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-servicio-de-traduccion\/#primaryimage","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat.png","contentUrl":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/05\/tramat.png","width":409,"height":172,"caption":"Servicio de traducci\u00f3n automatico"},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/","name":"Desarrollando sobre SharePoint","description":"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/comments?post=305"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/305\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}