<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://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 implement Segment Element Visitor</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3256/how-implement-segment-element-visitor</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12 Non-Production</generator><item><title>How implement Segment Element Visitor</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3256/how-implement-segment-element-visitor</link><pubDate>Wed, 18 Jul 2018 07:39:21 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:ba55c5e7-ac62-4354-a442-850d76b4068c</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3256/how-implement-segment-element-visitor#comments</comments><description>Current Revision posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 7/18/2018 7:39:21 AM&lt;br /&gt;
&lt;p&gt;In this tutorial will be explained how to open a Translation Memory using Translation Memory API and how to implement &lt;span style="color:#339966;"&gt;Segment Element Visitor Pattern&lt;/span&gt;. Complete sample code can be found on&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/blob/master/TmAnonymizer/Sdl.Community.TmAnonymizer/Helpers/Tm.cs"&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In order to manipulate TMs we need to add references to following libraries: &lt;span style="color:#339966;"&gt;Sdl.LanguagePlatform.TranslationMemory.dll&lt;/span&gt; and&amp;nbsp;&lt;span style="color:#339966;"&gt;Sdl.LanguagePlatform.TranslationMemoryApi.dll.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;"&gt;After we open the tm we get all the &lt;strong style="color:#000000;"&gt;Translation Units &lt;/strong&gt;&lt;strong&gt;associated&lt;/strong&gt;&lt;strong style="color:#000000;"&gt;&amp;nbsp;to that tm.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/0556c6219a67f643fdef0ea3f1bf05a3"&gt;gist.github.com/.../0556c6219a67f643fdef0ea3f1bf05a3&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In tus variable we have all the translation units from the tm.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;How to implement Segment Element Visitor Pattern&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Create a class which implements&amp;nbsp;&lt;span style="color:#339966;"&gt;ISegmentElementVisitor&lt;/span&gt; interface&lt;/li&gt;
&lt;li&gt;In VisitText() method&amp;nbsp;will be fired&amp;nbsp;when the segment contains plain text. You can read the segment text like this&amp;nbsp;text.Value();&lt;/li&gt;
&lt;li&gt;In VisitTag() method can be read information about tags.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;How to use Segment Element Visitor&lt;/h3&gt;
&lt;p&gt;We need to iterate in translation units and accept visitor.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/andreaGhisa/d9bdcebba43d0ec979d3a14cb9462969"&gt;gist.github.com/.../d9bdcebba43d0ec979d3a14cb9462969&lt;/a&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Studio Documentation, Studio API, Plugin, translation memory, Edit Translation Memory, Segment Element Visitor&lt;/div&gt;
</description></item><item><title>How implement Segment Element Visitor</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3256/how-implement-segment-element-visitor/revision/3</link><pubDate>Wed, 16 May 2018 12:23:55 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:ba55c5e7-ac62-4354-a442-850d76b4068c</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3256/how-implement-segment-element-visitor#comments</comments><description>Revision 3 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 5/16/2018 12:23:55 PM&lt;br /&gt;
&lt;p&gt;In this tutorial will be explained how to open a Translation Memory using Translation Memory API and how to implement &lt;span style="color:#339966;"&gt;Segment Element Visitor Pattern&lt;/span&gt;. Complete sample code can be found on&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/blob/master/TmAnonymizer/Sdl.Community.TmAnonymizer/Helpers/Tm.cs"&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In order to manipulate TMs we need to add references to following libraries: &lt;span style="color:#339966;"&gt;Sdl.LanguagePlatform.TranslationMemory.dll&lt;/span&gt; and&amp;nbsp;&lt;span style="color:#339966;"&gt;Sdl.LanguagePlatform.TranslationMemoryApi.dll.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;"&gt;After we open the tm we get all the &lt;strong style="color:#000000;"&gt;Translation Units &lt;/strong&gt;&lt;strong&gt;associated&lt;/strong&gt;&lt;strong style="color:#000000;"&gt;&amp;nbsp;to that tm.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;var tm =new FileBasedTranslationMemory(tmPath);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; var tmIterator = new RegularIterator();&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;var tus = tm.LanguageDirection.GetTranslationUnits(ref tmIterator);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In tus variable we have all the translation units from the tm.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;How to implement Segment Element Visitor Pattern&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Create a class which implements&amp;nbsp;&lt;span style="color:#339966;"&gt;ISegmentElementVisitor&lt;/span&gt; interface&lt;/li&gt;
&lt;li&gt;In VisitText() method&amp;nbsp;will be fired&amp;nbsp;when the segment contains plain text. You can read the segment text like this&amp;nbsp;text.Value();&lt;/li&gt;
&lt;li&gt;In VisitTag() method can be read information about tags.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;How to use Segment Element Visitor&lt;/h3&gt;
&lt;p&gt;We need to iterate in translation units and accept visitor.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;foreach (var translationUnit in tus)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; foreach (var element in translationUnit.SourceSegment.Elements.ToList())&lt;/code&gt;&lt;br /&gt;&lt;code&gt; {&lt;/code&gt;&lt;br /&gt;&lt;code&gt; var visitor = new SegmentElementVisitor();&lt;/code&gt;&lt;br /&gt;&lt;code&gt; element.AcceptSegmentElementVisitor(visitor);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&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: Studio Documentation, Studio API, Plugin, translation memory, Edit Translation Memory, Segment Element Visitor&lt;/div&gt;
</description></item><item><title>How implement Segment Element Visitor</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3256/how-implement-segment-element-visitor/revision/2</link><pubDate>Wed, 16 May 2018 12:13:49 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:ba55c5e7-ac62-4354-a442-850d76b4068c</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3256/how-implement-segment-element-visitor#comments</comments><description>Revision 2 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 5/16/2018 12:13:49 PM&lt;br /&gt;
&lt;p&gt;In this tutorial will be explained how to open a Translation Memory using Translation Memory API and how to implement &lt;span style="color:#339966;"&gt;Segment Element Visitor Pattern&lt;/span&gt;. Complete sample code can be found on&amp;nbsp;&lt;a href="https://github.com/sdl/Sdl-Community/blob/master/TmAnonymizer/Sdl.Community.TmAnonymizer/Helpers/Tm.cs"&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color:#339966;"&gt;Please keep in mind this will modify your Translation Memory and this might produce unwanted results.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In order to manipulate TMs we need to add references to following libraries: &lt;span style="color:#339966;"&gt;Sdl.LanguagePlatform.TranslationMemory.dll&lt;/span&gt; and&amp;nbsp;&lt;span style="color:#339966;"&gt;Sdl.LanguagePlatform.TranslationMemoryApi.dll.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;"&gt;After we open the tm we get all the &lt;strong style="color:#000000;"&gt;Translation Units &lt;/strong&gt;&lt;strong&gt;associated&lt;/strong&gt;&lt;strong style="color:#000000;"&gt;&amp;nbsp;to that tm.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;var tm =new FileBasedTranslationMemory(tmPath);&lt;/code&gt;&lt;br /&gt;&lt;code&gt; var tmIterator = new RegularIterator();&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;var tus = tm.LanguageDirection.GetTranslationUnits(ref tmIterator);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In tus variable we have all the translation units from the tm.&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;How to implement Segment Element Visitor Pattern&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Create a class which implements&amp;nbsp;&lt;span style="color:#339966;"&gt;ISegmentElementVisitor&lt;/span&gt; interface&lt;/li&gt;
&lt;li&gt;In VisitText() method&amp;nbsp;will be fired&amp;nbsp;when the segment contains plain text. You can read the segment text like this&amp;nbsp;text.Value();&lt;/li&gt;
&lt;li&gt;In VisitTag() method can be read information about tags.&lt;/li&gt;
&lt;/ol&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: Studio Documentation, Studio API, Plugin, translation memory, Edit Translation Memory, Segment Element Visitor&lt;/div&gt;
</description></item><item><title>How to edit an Translation Memory</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3256/how-implement-segment-element-visitor/revision/1</link><pubDate>Wed, 16 May 2018 11:49:03 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:ba55c5e7-ac62-4354-a442-850d76b4068c</guid><dc:creator>Andrea-Melinda Ghisa</dc:creator><comments>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/3256/how-implement-segment-element-visitor#comments</comments><description>Revision 1 posted to Studio Developers WIKI by Andrea-Melinda Ghisa on 5/16/2018 11:49:03 AM&lt;br /&gt;
&lt;p&gt;In this tutorial will be explained how to open a Translation Memory using Translation Memory API and how to edit it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color:#339966;"&gt;Please keep in mind this will modify your Translation Memory and this might produce unwanted results.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Studio Documentation, Studio API, Plugin, translation memory, Edit Translation Memory&lt;/div&gt;
</description></item></channel></rss>