<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://uat.community.rws.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>How to edit the plain text from sdlxliff in  Batch Task context</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12 Non-Production</generator><item><title>How to edit the plain text from sdlxliff in  Batch Task context</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context</link><pubDate>Wed, 18 Jul 2018 07:36:12 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Current Revision posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 7/18/2018 7:36:12 AM&lt;br /&gt;
&lt;p&gt;In this page we&amp;#39;ll explain how to edit an sdlxliff from selected project in Batch Task plugin context. Like in previous documentation we&amp;#39;ll also use &lt;a title="Project Anonymizer" href="/product-groups/translationproductivity/w/customer-experience/3199.sdl-project-anonymizer"&gt;Project Anonymizer&lt;/a&gt;&amp;nbsp;plugin for&amp;nbsp;code example. Full source code of the project can be found&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/tree/master/Anonymizer"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;When we want to edit an sdlxliff file we need a &lt;strong&gt;BilingualProcessor.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;How to create a Bilingual Processor&amp;nbsp;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;1. Create a new class which inherits&amp;nbsp;&lt;span style="color:#339966;"&gt;AbstractBilingualContentProcessor &lt;/span&gt;class.&lt;/p&gt;
&lt;p&gt;2. Override&amp;nbsp;&lt;span style="color:#339966;"&gt;ProcessParagraphUnit()&lt;/span&gt; method.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/ee31598f79f5f51974a59eb0d042998c"&gt;gist.github.com/.../ee31598f79f5f51974a59eb0d042998c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once we created the processor we need to add it to &lt;span style="color:#339966;"&gt;IMultiFileConverter&lt;/span&gt; object from &lt;strong&gt;ConfigureConverter&lt;/strong&gt; method.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/c98f4a6a557aad81523e65bef24e22b0"&gt;gist.github.com/.../c98f4a6a557aad81523e65bef24e22b0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;Please make sure you override &lt;strong&gt;OnFileComplete()&lt;/strong&gt; method in your application. If you don&amp;#39;t override this method your changes on the file will not be saved.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/f3a3a411691fab1a5d3af6bd7dc7e790"&gt;gist.github.com/.../f3a3a411691fab1a5d3af6bd7dc7e790&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the processor class appears following object&lt;strong&gt; SegmentVisitor().&amp;nbsp;&lt;/strong&gt;In order to read the information from each segment you need implement visitor pattern.&lt;/p&gt;
&lt;h3&gt;How to implement Visitor Pattern&lt;/h3&gt;
&lt;p&gt;1. Create a class which implements&amp;nbsp;&lt;span style="color:#339966;"&gt;IMarkupDataVisitor &lt;/span&gt;interface.&lt;/p&gt;
&lt;p&gt;2. Create a method which receive an&amp;nbsp;&lt;span style="color:#339966;"&gt;ISegment&lt;/span&gt; object as parameter like this:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/c5401bc1054e897a81065dedc59a47de"&gt;gist.github.com/.../c5401bc1054e897a81065dedc59a47de&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Where &lt;strong&gt;VisitChildren&lt;/strong&gt;() has the following implementation:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/ed42a79e331d8b41c1acc1c8c7d28734"&gt;gist.github.com/.../ed42a79e331d8b41c1acc1c8c7d28734&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3. Call &lt;strong&gt;VisitChildren()&lt;/strong&gt; from &lt;strong&gt;VisitSegment()&lt;/strong&gt; method like this:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/0174e4bdab7dbebccfecf6b912869a65"&gt;gist.github.com/.../0174e4bdab7dbebccfecf6b912869a65&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;4. &lt;/code&gt;The last step is to add a implementation to &lt;strong&gt;VisitText&lt;/strong&gt;() method. This method is fired automatically when we have a text in the segment.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;&lt;a href="https://gist.github.com/andreaGhisa/f4ae453d285792b2549d6e729e2d4658"&gt;gist.github.com/.../f4ae453d285792b2549d6e729e2d4658&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;More logic should be added in your implementation which will fit your needs.&lt;/span&gt; In the above example for each segment from your file will&amp;nbsp;contains only this &amp;quot;New&amp;nbsp;text&amp;nbsp;we add to segment&amp;quot;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item><item><title>How to edit the plain text from sdlxliff in  Batch Task context</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context/revision/9</link><pubDate>Wed, 18 Jul 2018 07:33:27 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Revision 9 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 7/18/2018 7:33:27 AM&lt;br /&gt;
&lt;p&gt;In this page we&amp;#39;ll explain how to edit an sdlxliff from selected project in Batch Task plugin context. Like in previous documentation we&amp;#39;ll also use &lt;a title="Project Anonymizer" href="/product-groups/translationproductivity/w/customer-experience/3199.sdl-project-anonymizer"&gt;Project Anonymizer&lt;/a&gt;&amp;nbsp;plugin for&amp;nbsp;code example. Full source code of the project can be found&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/tree/master/Anonymizer"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;When we want to edit an sdlxliff file we need a &lt;strong&gt;BilingualProcessor.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;How to create a Bilingual Processor&amp;nbsp;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;1. Create a new class which inherits&amp;nbsp;&lt;span style="color:#339966;"&gt;AbstractBilingualContentProcessor &lt;/span&gt;class.&lt;/p&gt;
&lt;p&gt;2. Override&amp;nbsp;&lt;span style="color:#339966;"&gt;ProcessParagraphUnit()&lt;/span&gt; method.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/ee31598f79f5f51974a59eb0d042998c"&gt;gist.github.com/.../ee31598f79f5f51974a59eb0d042998c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once we created the processor we need to add it to &lt;span style="color:#339966;"&gt;IMultiFileConverter&lt;/span&gt; object from &lt;strong&gt;ConfigureConverter&lt;/strong&gt; method.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/c98f4a6a557aad81523e65bef24e22b0"&gt;gist.github.com/.../c98f4a6a557aad81523e65bef24e22b0&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;Please make sure you override &lt;strong&gt;OnFileComplete()&lt;/strong&gt; method in your application. If you don&amp;#39;t override this method your changes on the file will not be saved.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/f3a3a411691fab1a5d3af6bd7dc7e790"&gt;gist.github.com/.../f3a3a411691fab1a5d3af6bd7dc7e790&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the processor class appears following object&lt;strong&gt; SegmentVisitor().&amp;nbsp;&lt;/strong&gt;In order to read the information from each segment you need implement visitor pattern.&lt;/p&gt;
&lt;h3&gt;How to implement Visitor Pattern&lt;/h3&gt;
&lt;p&gt;1. Create a class which implements&amp;nbsp;&lt;span style="color:#339966;"&gt;IMarkupDataVisitor &lt;/span&gt;interface.&lt;/p&gt;
&lt;p&gt;2. Create a method which receive an&amp;nbsp;&lt;span style="color:#339966;"&gt;ISegment&lt;/span&gt; object as parameter like this:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; public void VisitTextMethod(ISegment segment)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; VisitChildren(segment);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Where &lt;strong&gt;VisitChildren&lt;/strong&gt;() has the following implementation:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;private void VisitChildren(IAbstractMarkupDataContainer container)&lt;br /&gt; {&lt;br /&gt; if (container == null)&lt;br /&gt; return;&lt;br /&gt; foreach (var item in container.ToList())&lt;br /&gt; {&lt;br /&gt; item.AcceptVisitor(this);&lt;br /&gt; }&lt;br /&gt; }&amp;nbsp;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;3. Call &lt;strong&gt;VisitChildren()&lt;/strong&gt; from &lt;strong&gt;VisitSegment()&lt;/strong&gt; method like this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp;public void VisitSegment(ISegment segment)&lt;br /&gt; {&lt;br /&gt; VisitChildren(segment);&lt;br /&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;4. &lt;/code&gt;The last step is to add a implementation to &lt;strong&gt;VisitText&lt;/strong&gt;() method. This method is fired automatically when we have a text in the segment.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public void VisitText(IText text)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;text.Properties.Text = &amp;quot;New text we add to segment&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;More logic should be added in your implementation which will fit your needs.&lt;/span&gt; In the above example for each segment from your file will&amp;nbsp;contains only this &amp;quot;New&amp;nbsp;text&amp;nbsp;we add to segment&amp;quot;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item><item><title>How to edit the plain text from sdlxliff in  Batch Task context</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context/revision/8</link><pubDate>Fri, 27 Apr 2018 13:50:54 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Revision 8 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 4/27/2018 1:50:54 PM&lt;br /&gt;
&lt;p&gt;In this page we&amp;#39;ll explain how to edit an sdlxliff from selected project in Batch Task plugin context. Like in previous documentation we&amp;#39;ll also use &lt;a title="Project Anonymizer" href="/product-groups/translationproductivity/w/customer-experience/3199.sdl-project-anonymizer"&gt;Project Anonymizer&lt;/a&gt;&amp;nbsp;plugin for&amp;nbsp;code example. Full source code of the project can be found&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/tree/master/Anonymizer"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;When we want to edit an sdlxliff file we need a &lt;strong&gt;BilingualProcessor.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;How to create a Bilingual Processor&amp;nbsp;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;1. Create a new class which inherits&amp;nbsp;&lt;span style="color:#339966;"&gt;AbstractBilingualContentProcessor &lt;/span&gt;class.&lt;/p&gt;
&lt;p&gt;2. Override&amp;nbsp;&lt;span style="color:#339966;"&gt;ProcessParagraphUnit()&lt;/span&gt; method.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public override void ProcessParagraphUnit(IParagraphUnit paragraphUnit)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; base.ProcessParagraphUnit(paragraphUnit);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; if (paragraphUnit.IsStructure) { return; }&lt;/code&gt;&lt;br /&gt; &lt;br /&gt;&lt;code&gt; foreach (var segmentPair in paragraphUnit.SegmentPairs.ToList())&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; var segmentVisitor = new SegmentVisitor();&lt;/code&gt;&lt;br /&gt;&lt;code&gt; segmentVisitor.VisitTextMethod(segmentPair.Source);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Once we created the processor we need to add it to &lt;span style="color:#339966;"&gt;IMultiFileConverter&lt;/span&gt; object from &lt;strong&gt;ConfigureConverter&lt;/strong&gt; method.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; protected override void ConfigureConverter(ProjectFile projectFile, IMultiFileConverter multiFileConverter)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; multiFileConverter.AddBilingualProcessor(new BilingualContentHandlerAdapter(new YourCustomProcessor()));&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;Please make sure you override &lt;strong&gt;OnFileComplete()&lt;/strong&gt; method in your application. If you don&amp;#39;t override this method your changes on the file will not be saved.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt;public override bool OnFileComplete(ProjectFile projectFile, IMultiFileConverter multiFileConverter)&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; {&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; return true;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; }&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In the processor class appears following object&lt;strong&gt; SegmentVisitor().&amp;nbsp;&lt;/strong&gt;In order to read the information from each segment you need implement visitor pattern.&lt;/p&gt;
&lt;h3&gt;How to implement Visitor Pattern&lt;/h3&gt;
&lt;p&gt;1. Create a class which implements&amp;nbsp;&lt;span style="color:#339966;"&gt;IMarkupDataVisitor &lt;/span&gt;interface.&lt;/p&gt;
&lt;p&gt;2. Create a method which receive an&amp;nbsp;&lt;span style="color:#339966;"&gt;ISegment&lt;/span&gt; object as parameter like this:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; public void VisitTextMethod(ISegment segment)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; VisitChildren(segment);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Where &lt;strong&gt;VisitChildren&lt;/strong&gt;() has the following implementation:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;private void VisitChildren(IAbstractMarkupDataContainer container)&lt;br /&gt; {&lt;br /&gt; if (container == null)&lt;br /&gt; return;&lt;br /&gt; foreach (var item in container.ToList())&lt;br /&gt; {&lt;br /&gt; item.AcceptVisitor(this);&lt;br /&gt; }&lt;br /&gt; }&amp;nbsp;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;3. Call &lt;strong&gt;VisitChildren()&lt;/strong&gt; from &lt;strong&gt;VisitSegment()&lt;/strong&gt; method like this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp;public void VisitSegment(ISegment segment)&lt;br /&gt; {&lt;br /&gt; VisitChildren(segment);&lt;br /&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;4. &lt;/code&gt;The last step is to add a implementation to &lt;strong&gt;VisitText&lt;/strong&gt;() method. This method is fired automatically when we have a text in the segment.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public void VisitText(IText text)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;text.Properties.Text = &amp;quot;New text we add to segment&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;More logic should be added in your implementation which will fit your needs.&lt;/span&gt; In the above example for each segment from your file will&amp;nbsp;contains only this &amp;quot;New&amp;nbsp;text&amp;nbsp;we add to segment&amp;quot;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item><item><title>How to edit the plain text from sdlxliff in  Batch Task context</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context/revision/7</link><pubDate>Fri, 27 Apr 2018 13:22:28 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Revision 7 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 4/27/2018 1:22:28 PM&lt;br /&gt;
&lt;p&gt;In this page we&amp;#39;ll explain how to edit an sdlxliff from selected project in Batch Task plugin context. Like in previous documentation we&amp;#39;ll also use &lt;a title="Project Anonymizer" href="/product-groups/translationproductivity/w/customer-experience/3199.sdl-project-anonymizer"&gt;Project Anonymizer&lt;/a&gt;&amp;nbsp;plugin for&amp;nbsp;code example. Full source code of the project can be found&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/tree/master/Anonymizer"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;When we want to edit an sdlxliff file we need a &lt;strong&gt;BilingualProcessor.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;How to create a Bilingual Processor&amp;nbsp;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;1. Create a new class which inherits&amp;nbsp;&lt;span style="color:#339966;"&gt;AbstractBilingualContentProcessor &lt;/span&gt;class.&lt;/p&gt;
&lt;p&gt;2. Override&amp;nbsp;&lt;span style="color:#339966;"&gt;ProcessParagraphUnit()&lt;/span&gt; method.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public override void ProcessParagraphUnit(IParagraphUnit paragraphUnit)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; base.ProcessParagraphUnit(paragraphUnit);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; if (paragraphUnit.IsStructure) { return; }&lt;/code&gt;&lt;br /&gt; &lt;br /&gt;&lt;code&gt; foreach (var segmentPair in paragraphUnit.SegmentPairs.ToList())&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; var segmentVisitor = new SegmentVisitor();&lt;/code&gt;&lt;br /&gt;&lt;code&gt; segmentVisitor.VisitText(segmentPair.Source);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Once we created the processor we need to add it to &lt;span style="color:#339966;"&gt;IMultiFileConverter&lt;/span&gt; object from &lt;strong&gt;ConfigureConverter&lt;/strong&gt; method.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; protected override void ConfigureConverter(ProjectFile projectFile, IMultiFileConverter multiFileConverter)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; multiFileConverter.AddBilingualProcessor(new BilingualContentHandlerAdapter(new YourCustomProcessor()));&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;Please make sure you override &lt;strong&gt;OnFileComplete()&lt;/strong&gt; method in your application. If you don&amp;#39;t override this method your changes on the file will not be saved.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt;public override bool OnFileComplete(ProjectFile projectFile, IMultiFileConverter multiFileConverter)&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; {&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; return true;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; }&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In the processor class appears following object&lt;strong&gt; SegmentVisitor().&amp;nbsp;&lt;/strong&gt;In order to read the information from each segment you need implement visitor pattern.&lt;/p&gt;
&lt;h3&gt;How to implement Visitor Pattern&lt;/h3&gt;
&lt;p&gt;1. Create a class which implements&amp;nbsp;&lt;span style="color:#339966;"&gt;IMarkupDataVisitor &lt;/span&gt;interface.&lt;/p&gt;
&lt;p&gt;2. Create a method which receive an&amp;nbsp;&lt;span style="color:#339966;"&gt;ISegment&lt;/span&gt; object as parameter like this:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; public void VisitText(ISegment segment)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; VisitChildren(segment);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Where &lt;strong&gt;VisitChildren&lt;/strong&gt;() has the following implementation:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;private void VisitChildren(IAbstractMarkupDataContainer container)&lt;br /&gt; {&lt;br /&gt; if (container == null)&lt;br /&gt; return;&lt;br /&gt; foreach (var item in container.ToList())&lt;br /&gt; {&lt;br /&gt; item.AcceptVisitor(this);&lt;br /&gt; }&lt;br /&gt; }&amp;nbsp;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;3. Call &lt;strong&gt;VisitChildren()&lt;/strong&gt; from &lt;strong&gt;VisitSegment()&lt;/strong&gt; method like this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp;public void VisitSegment(ISegment segment)&lt;br /&gt; {&lt;br /&gt; VisitChildren(segment);&lt;br /&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;4. &lt;/code&gt;The last step is to add a implementation to &lt;strong&gt;VisitText&lt;/strong&gt;() method. This method is fired automatically when we have a text in the segment.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public void VisitText(IText text)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;text.Properties.Text = &amp;quot;New text we add to segment&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;More logic should be added in your implementation which will fit your needs.&lt;/span&gt; In the above example for each segment from your file will&amp;nbsp;contains only this &amp;quot;New&amp;nbsp;text&amp;nbsp;we add to segment&amp;quot;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item><item><title>How to edit the plain text from sdlxliff in  Batch Task context</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context/revision/6</link><pubDate>Fri, 27 Apr 2018 13:15:13 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Revision 6 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 4/27/2018 1:15:13 PM&lt;br /&gt;
&lt;p&gt;In this page we&amp;#39;ll explain how to edit an sdlxliff from selected project in Batch Task plugin context. Like in previous documentation we&amp;#39;ll also use &lt;a title="Project Anonymizer" href="/product-groups/translationproductivity/w/customer-experience/3199.sdl-project-anonymizer"&gt;Project Anonymizer&lt;/a&gt;&amp;nbsp;plugin for&amp;nbsp;code example. Full source code of the project can be found&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/tree/master/Anonymizer"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;When we want to edit an sdlxliff file we need a &lt;strong&gt;BilingualProcessor.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;How to create a Bilingual Processor&amp;nbsp;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;1. Create a new class which inherits&amp;nbsp;&lt;span style="color:#339966;"&gt;AbstractBilingualContentProcessor &lt;/span&gt;class.&lt;/p&gt;
&lt;p&gt;2. Override&amp;nbsp;&lt;span style="color:#339966;"&gt;ProcessParagraphUnit()&lt;/span&gt; method.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public override void ProcessParagraphUnit(IParagraphUnit paragraphUnit)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; base.ProcessParagraphUnit(paragraphUnit);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; if (paragraphUnit.IsStructure) { return; }&lt;/code&gt;&lt;br /&gt; &lt;br /&gt;&lt;code&gt; foreach (var segmentPair in paragraphUnit.SegmentPairs.ToList())&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; var segmentVisitor = new SegmentVisitor();&lt;/code&gt;&lt;br /&gt;&lt;code&gt; segmentVisitor.VisitText(segmentPair.Source);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Once we created the processor we need to add it to &lt;span style="color:#339966;"&gt;IMultiFileConverter&lt;/span&gt; object from &lt;strong&gt;ConfigureConverter&lt;/strong&gt; method.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; protected override void ConfigureConverter(ProjectFile projectFile, IMultiFileConverter multiFileConverter)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; multiFileConverter.AddBilingualProcessor(new BilingualContentHandlerAdapter(new YourCustomProcessor()));&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;Please make sure you override &lt;strong&gt;OnFileComplete()&lt;/strong&gt; method in your application. If you don&amp;#39;t override this method your changes on the file will not be saved.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt;public override bool OnFileComplete(ProjectFile projectFile, IMultiFileConverter multiFileConverter)&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; {&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; return true;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; }&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In the processor class appears following object&lt;strong&gt; SegmentVisitor().&amp;nbsp;&lt;/strong&gt;In order to read the information from each segment you need implement visitor pattern.&lt;/p&gt;
&lt;h3&gt;How to implement Visitor Pattern&lt;/h3&gt;
&lt;p&gt;1. Create a class which implements&amp;nbsp;&lt;span style="color:#339966;"&gt;IMarkupDataVisitor &lt;/span&gt;interface.&lt;/p&gt;
&lt;p&gt;2. Create a method which receive an&amp;nbsp;&lt;span style="color:#339966;"&gt;ISegment&lt;/span&gt; object as parameter like this:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; public void VisitText(ISegment segment)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; VisitChildren(segment);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Where VisitChildren() has the following implementation:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;private void VisitChildren(IAbstractMarkupDataContainer container)&lt;br /&gt; {&lt;br /&gt; if (container == null)&lt;br /&gt; return;&lt;br /&gt; foreach (var item in container.ToList())&lt;br /&gt; {&lt;br /&gt; item.AcceptVisitor(this);&lt;br /&gt; }&lt;br /&gt; }&amp;nbsp;&lt;/code&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item><item><title>How to edit the plain text from sdlxliff in  Batch Task context</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context/revision/5</link><pubDate>Fri, 27 Apr 2018 13:08:08 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Revision 5 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 4/27/2018 1:08:08 PM&lt;br /&gt;
&lt;p&gt;In this page we&amp;#39;ll explain how to edit an sdlxliff from selected project in Batch Task plugin context. Like in previous documentation we&amp;#39;ll also use &lt;a title="Project Anonymizer" href="/product-groups/translationproductivity/w/customer-experience/3199.sdl-project-anonymizer"&gt;Project Anonymizer&lt;/a&gt;&amp;nbsp;plugin for&amp;nbsp;code example. Full source code of the project can be found&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/tree/master/Anonymizer"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;When we want to edit an sdlxliff file we need a &lt;strong&gt;BilingualProcessor.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;How to create a Bilingual Processor&amp;nbsp;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;1. Create a new class which inherits&amp;nbsp;&lt;span style="color:#339966;"&gt;AbstractBilingualContentProcessor &lt;/span&gt;class.&lt;/p&gt;
&lt;p&gt;2. Override&amp;nbsp;&lt;span style="color:#339966;"&gt;ProcessParagraphUnit()&lt;/span&gt; method.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public override void ProcessParagraphUnit(IParagraphUnit paragraphUnit)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; base.ProcessParagraphUnit(paragraphUnit);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; if (paragraphUnit.IsStructure) { return; }&lt;/code&gt;&lt;br /&gt; &lt;br /&gt;&lt;code&gt; foreach (var segmentPair in paragraphUnit.SegmentPairs.ToList())&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; var segmentVisitor = new SegmentVisitor();&lt;/code&gt;&lt;br /&gt;&lt;code&gt; segmentVisitor.VisitText(segmentPair.Source);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Once we created the processor we need to add it to &lt;span style="color:#339966;"&gt;IMultiFileConverter&lt;/span&gt; object from &lt;strong&gt;ConfigureConverter&lt;/strong&gt; method.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt; protected override void ConfigureConverter(ProjectFile projectFile, IMultiFileConverter multiFileConverter)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; multiFileConverter.AddBilingualProcessor(new BilingualContentHandlerAdapter(new YourCustomProcessor()));&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;Please make sure you override &lt;strong&gt;OnFileComplete()&lt;/strong&gt; method in your application. If you don&amp;#39;t override this method your changes on the file will not be saved.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt;public override bool OnFileComplete(ProjectFile projectFile, IMultiFileConverter multiFileConverter)&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; {&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; return true;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#339966;"&gt;&lt;code&gt; }&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item><item><title>How to edit the plain text from sdlxliff in  Batch Task context</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context/revision/4</link><pubDate>Fri, 27 Apr 2018 12:58:19 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Revision 4 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 4/27/2018 12:58:19 PM&lt;br /&gt;
&lt;p&gt;In this page we&amp;#39;ll explain how to edit an sdlxliff from selected project in Batch Task plugin context. Like in previous documentation we&amp;#39;ll also use &lt;a title="Project Anonymizer" href="/product-groups/translationproductivity/w/customer-experience/3199.sdl-project-anonymizer"&gt;Project Anonymizer&lt;/a&gt;&amp;nbsp;plugin for&amp;nbsp;code example. Full source code of the project can be found&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/tree/master/Anonymizer"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;When we want to edit an sdlxliff file we need a &lt;strong&gt;BilingualProcessor.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;How to create a Bilingual Processor&amp;nbsp;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;1. Create a new class which inherits&amp;nbsp;&lt;span style="color:#339966;"&gt;AbstractBilingualContentProcessor &lt;/span&gt;class.&lt;/p&gt;
&lt;p&gt;2. Override&amp;nbsp;&lt;span style="color:#339966;"&gt;ProcessParagraphUnit()&lt;/span&gt; method.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;public override void ProcessParagraphUnit(IParagraphUnit paragraphUnit)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; base.ProcessParagraphUnit(paragraphUnit);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; if (paragraphUnit.IsStructure) { return; }&lt;/code&gt;&lt;br /&gt; &lt;br /&gt;&lt;code&gt; foreach (var segmentPair in paragraphUnit.SegmentPairs.ToList())&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; var segmentVisitor = new SegmentVisitor();&lt;/code&gt;&lt;br /&gt;&lt;code&gt; segmentVisitor.VisitText(segmentPair.Source);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;br /&gt;&lt;code&gt; }&lt;/code&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item><item><title>How to edit an sdlxliff from a Batch Task</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context/revision/3</link><pubDate>Fri, 27 Apr 2018 12:51:36 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Revision 3 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 4/27/2018 12:51:36 PM&lt;br /&gt;
&lt;p&gt;In this page we&amp;#39;ll explain how to edit an sdlxliff from selected project in Batch Task plugin context. Like in previous documentation we&amp;#39;ll also use &lt;a title="Project Anonymizer" href="/product-groups/translationproductivity/w/customer-experience/3199.sdl-project-anonymizer"&gt;Project Anonymizer&lt;/a&gt;&amp;nbsp;plugin for&amp;nbsp;code example. Full source code of the project can be found&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/tree/master/Anonymizer"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;When we want to edit an sdlxliff file we need a &lt;strong&gt;BilingualProcessor.&amp;nbsp;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item><item><title>How to edit an sdlxliff from a Batch Task</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context/revision/2</link><pubDate>Fri, 27 Apr 2018 12:48:11 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Revision 2 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 4/27/2018 12:48:11 PM&lt;br /&gt;
&lt;p&gt;In this page we&amp;#39;ll explain how to edit an sdlxliff from selected project in Batch Task plugin context. Like in previous documentation we&amp;#39;ll also use &lt;a title="Project Anonymizer" href="/product-groups/translationproductivity/w/customer-experience/3199.sdl-project-anonymizer"&gt;Project Anonymizer&lt;/a&gt;&amp;nbsp;plugin for&amp;nbsp;code example. Full source code of the project can be found&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/tree/master/Anonymizer"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item><item><title>How to edit an sdlxliff from a Batch Task</title><link>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context/revision/1</link><pubDate>Mon, 23 Apr 2018 11:42:06 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:adfab78d-90a3-47e5-a09a-78d8f8a0417f</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://uat.community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3210/how-to-edit-the-plain-text-from-sdlxliff-in-batch-task-context#comments</comments><description>Revision 1 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 4/23/2018 11:42:06 AM&lt;br /&gt;
&lt;p&gt;..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: batch task, Studio Documentation, Studio API&lt;/div&gt;
</description></item></channel></rss>