<?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>Studio Developers WIKI</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12 Non-Production</generator><item><title>06 Submitting apps for signing and/or publication</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/5529/06-submitting-apps-for-signing-and-or-publication</link><pubDate>Wed, 04 Jun 2025 08:28:53 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:6075758c-953b-486b-a5e1-bfd5653796a1</guid><dc:creator>Paul</dc:creator><description>Current Revision posted to Studio Developers WIKI by Paul on 6/4/2025 8:28:53 AM&lt;br /&gt;
&lt;p data-start="288" data-end="605"&gt;This article explains how to submit your Trados Studio plug-in (&lt;code data-start="352" data-end="364"&gt;.sdlplugin&lt;/code&gt;) for &lt;strong data-start="370" data-end="386"&gt;code signing&lt;/strong&gt; and/or &lt;strong data-start="394" data-end="429"&gt;publication on the RWS AppStore&lt;/strong&gt;. If you are developing plug-ins for distribution (internally or externally), this is a required step to avoid security warnings in Trados Studio and to allow wider deployment.&amp;nbsp; This information is taken from&amp;nbsp;&lt;a id="" href="https://developers.rws.com/studio-api-docs/articles/gettingstarted/plugin_deployment.html"&gt;https://developers.rws.com/studio-api-docs/articles/gettingstarted/plugin_deployment.html&lt;/a&gt;&amp;nbsp;which should be referred to for the latest information.&lt;/p&gt;
&lt;hr data-start="607" data-end="610" /&gt;
&lt;p data-start="612" data-end="651"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;When you install an unsigned plug-in in Trados Studio, a security warning will appear at startup:&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-start="752" data-end="801"&gt;
&lt;p data-start="754" data-end="801"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;&lt;em data-start="754" data-end="801"&gt;&amp;ldquo;Unsigned SDL Trados Studio Plug-in Found...&amp;rdquo;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-start="803" data-end="866"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;To remove this warning, your plug-in must be signed by RWS.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-start="868" data-end="897"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Steps to Request Signing:&lt;/span&gt;&lt;/h3&gt;
&lt;ol data-start="898" data-end="1190"&gt;
&lt;li data-start="898" data-end="979"&gt;
&lt;p data-start="901" data-end="979"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Build your plug-in using the official Trados Studio SDK project templates.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="980" data-end="1031"&gt;
&lt;p data-start="983" data-end="1031"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Send an email to:&lt;/span&gt;&lt;br data-start="1004" data-end="1007" /&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt; &lt;code data-start="1010" data-end="1031"&gt;app-signing@sdl.com&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1032" data-end="1190"&gt;
&lt;p data-start="1035" data-end="1056"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Include in the email:&lt;/span&gt;&lt;/p&gt;
&lt;ul data-start="1060" data-end="1190"&gt;
&lt;li data-start="1060" data-end="1097"&gt;
&lt;p data-start="1062" data-end="1097"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;A brief description of your plug-in&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1101" data-end="1190"&gt;
&lt;p data-start="1103" data-end="1190"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;A download link to the &lt;code data-start="1130" data-end="1142"&gt;.sdlplugin&lt;/code&gt; file (e.g. Dropbox, OneDrive, WeTransfer, etc.)&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-start="1192" data-end="1216"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Once verified, RWS will:&lt;/span&gt;&lt;/p&gt;
&lt;ul data-start="1217" data-end="1286"&gt;
&lt;li data-start="1217" data-end="1250"&gt;
&lt;p data-start="1219" data-end="1250"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Sign the plug-in on your behalf&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li data-start="1251" data-end="1286"&gt;
&lt;p data-start="1253" data-end="1286"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;Return a signed version via email&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-start="1288" data-end="1364"&gt;&lt;span style="font-family:inherit;font-size:inherit;"&gt;You can now distribute this version without triggering the unsigned warning.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR2</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6743/how-to-update-plugins-to-trados-studio-2022-sr2</link><pubDate>Tue, 13 Feb 2024 16:25:27 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:6b7e147c-62e9-44ac-9849-a5bca64f0282</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Current Revision posted to Studio Developers WIKI by Patrick Andrew Hartnett on 2/13/2024 4:25:27 PM&lt;br /&gt;
&lt;p&gt;There will be significant changes to the Terminology provider API with the release of Trados Studio SR2.&amp;nbsp; These changes are all geared towards decoupling the Multiterm integration from Trados Studio to promote independent development cycles and reduce the risk of compatibility issues. This means that updates, bug fixes, and new features can be developed and released separately and lead to faster development cycles for each product.&lt;/p&gt;
&lt;p&gt;Unfortunately, this will introduce breaking changes for plugin and project automation integrations with the Terminology provider API. The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR2&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-TerminologyProviderAPI"&gt;Terminology Provider API&lt;/h2&gt;
&lt;p&gt;Make reference to the &lt;a class="external-link" href="https://developers.rws.com/studio-api-docs/apiconcepts/releasenotes/tradosstudio2022sr2.html" rel="nofollow"&gt;release notes for Trados Studio SR2&lt;/a&gt; when updating your plugin integrations with the Terminology Provider API. It includes all of the API changes that will facilitate better management, customization, and extensibility of terminology providers, providing more flexibility and control for developers and users.&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Removed Classes and Interfaces&lt;/strong&gt;: Several classes and interfaces have been removed, such as &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt;, &lt;em&gt;IDefinition&lt;/em&gt;, &lt;em&gt;IDefinitionLanguage&lt;/em&gt;, and others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updated Classes&lt;/strong&gt;: Major changes include the &lt;em&gt;Definition &lt;/em&gt;class, &lt;em&gt;Entry&lt;/em&gt;, &lt;em&gt;EntryField&lt;/em&gt;, &lt;em&gt;EntryLanguage&lt;/em&gt;, and others. These updates involve changes in property types, constructors, and interfaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TerminologyProviderManager&lt;/strong&gt;: Now implements &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, offering new methods for managing terminology providers, such as &lt;em&gt;RemoveTerminologyProvider&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ITerminologyProvider Updates&lt;/strong&gt;: The &lt;em&gt;ITerminologyProvider &lt;/em&gt;interface has several new properties and methods for managing active filters, initialization, and more. The type of returned values for methods like &lt;em&gt;GetEntry &lt;/em&gt;and &lt;em&gt;Search&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;has changed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Interfaces&lt;/strong&gt;: Several new interfaces have been added, including &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, &lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt;, and &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;A full integration of these new changes to the Terminology Provider API are available from the &lt;a class="external-link" href="https://github.com/RWS/Sdl-Community/tree/master/IATETerminologyProvider" rel="nofollow"&gt;IATE Terminology Provider&lt;/a&gt; for reference.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProvider"&gt;ITerminologyProvider&lt;/h3&gt;
&lt;p&gt;The &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt; is no longer available &amp;amp; in its place you must implement the &lt;em&gt;ITerminologyProvider&lt;/em&gt; interface, which has some new properties &amp;amp; methods such as &lt;em&gt;ActiveFilter&lt;/em&gt; property &amp;amp; associated method &lt;em&gt;GetFilters()&lt;/em&gt; that enable a user to add filters to restrict the results that provider displays when searching a termbase during translation.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615497862v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public FilterDefinition ActiveFilter { get; set; }
 
    public IList&amp;lt;FilterDefinition&amp;gt; GetFilters()
    {
        var filterDefinitions = new List&amp;lt;FilterDefinition&amp;gt;();
        var filterDefinition = new FilterDefinition { ID = 0, Name = &amp;quot;Source contains synonyms&amp;quot; };
        filterDefinitions.Add(filterDefinition);
 
        return filterDefinitions;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="terminology-provider-type"&gt;Terminology Provider Type&lt;/h3&gt;
&lt;p&gt;Set the &lt;em&gt;Type&lt;/em&gt; to &lt;em&gt;TerminologyProviderType.Custom&lt;/em&gt; for Third-party terminology providers&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class MyTerminologyProvider : ITerminologyProvider
{
    public TerminologyProviderType Type =&amp;gt; TerminologyProviderType.Custom;
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Definition"&gt;Definition&lt;/h3&gt;
&lt;p class="auto-cursor-target"&gt;Its important to fully describe the &lt;em&gt;DescriptiveFields &lt;/em&gt;to the &lt;em&gt;Definition&lt;/em&gt; property of the provider to provide sufficient information when integrating with other services, such as the &lt;strong&gt;Terminology Verifier&lt;/strong&gt;.&amp;nbsp; For example: to enable integration with the feature to check for forbidden terms, you should include the &lt;em&gt;DescriptiveField &lt;/em&gt;at the &lt;em&gt;TermLevel, &lt;/em&gt;as shown here (e.g. &lt;em&gt;var statusField&lt;/em&gt;)&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615545981v2.png" /&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public Definition Definition =&amp;gt; new Definition(GetDescriptiveFields(), GetDefinitionLanguages());
 
    public IList&amp;lt;DescriptiveField&amp;gt; GetDescriptiveFields()
    {
        var result = new List&amp;lt;DescriptiveField&amp;gt;();
 
        var definitionField = new DescriptiveField
        {
            Label = &amp;quot;Definition&amp;quot;, Level = FieldLevel.EntryLevel, Mandatory = true, Multiple = true,
            Type = FieldType.String
        };
        result.Add(definitionField);
 
        var statusField = new DescriptiveField
        {
            Label = &amp;quot;Status&amp;quot;, Level = FieldLevel.TermLevel, Mandatory = false, Multiple = true,
            Type = FieldType.PickList,
            PickListValues = new[] { &amp;quot;Deprecated&amp;quot;, &amp;quot;Obsolete&amp;quot;, &amp;quot;Admitted&amp;quot;, &amp;quot;Preferred&amp;quot;, &amp;quot;Proposed&amp;quot; }
        };
        result.Add(statusField);
 
        return result;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public IList&amp;lt;DefinitionLanguage&amp;gt; GetDefinitionLanguages()
{
    var result = new List&amp;lt;DefinitionLanguage&amp;gt;();
 
    var currentProject = SdlTradosStudio.Application?.GetController&amp;lt;ProjectsController&amp;gt;()?.CurrentProject;
    if (currentProject == null) return result;
 
    var projectInfo = currentProject.GetProjectInfo();
 
    result.Add(new DefinitionLanguage
    {
        Locale = projectInfo.SourceLanguage.CultureInfo,
        Name = projectInfo.SourceLanguage.DisplayName
    });
 
    result.AddRange(projectInfo.TargetLanguages.Select(language =&amp;gt; new DefinitionLanguage
    {
        Locale = language.CultureInfo,
        Name = language.DisplayName
    }));
 
    return result;
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProviderWinFormsUI"&gt;ITerminologyProviderWinFormsUI&lt;/h3&gt;
&lt;p&gt;You will noticed that the property &lt;em&gt;SupportsEditing &lt;/em&gt;&amp;amp; the method &lt;em&gt;Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)&lt;/em&gt; have been removed from the &lt;em&gt;ITerminologyProviderWinFormsUI&lt;/em&gt; interface.&amp;nbsp; If your provider allows a user to edit the provider settings by displaying a settings dialog, then implement the new interface &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit. &lt;/em&gt;Additionally, the new interface&amp;nbsp;&lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt; introduces a new extensibility point that will display a context menu item in the &lt;strong&gt;Create &lt;/strong&gt;button from the Terminology Provider Settings in Trados Studio.&amp;nbsp; This is useful for use cases where the creation of the provider needs to be a separate to the edit settings dialogs.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;[TerminologyProviderWinFormsUI]
public class MyTerminologyProviderWinFormsUI : ITerminologyProviderWinFormsUIWithEdit, ITerminologyProviderWinFormsUIWithCreate
{
    public ITerminologyProvider Create()
    {
        // Adds the capability to create a ITerminologyProvider.
        // Allows the creation of an ITerminologyProvider from the UI.It returns a ITerminologyProvider
        return null;
    }
 
    public bool Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)
    {
        // Adds the capability to edit settings.
        // Used to display a dialog to interactively change any of the terminology provider settings.
        return true;
    }
 
    public ITerminologyProvider[] Browse(IWin32Window owner, ITerminologyProviderCredentialStore credentialStore)
    {
        // Adds the capability to select a ITerminologyProvider.
        // Used to display a dialog to add a new terminology provider.
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-PluginManifest"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version: &lt;em&gt;17.2&lt;/em&gt;. If your plugin has been updated to support these latest changes to the Terminology Provider API, then you should reflect this by setting the minimum supported version of your plugin to &lt;em&gt;17.2&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version: &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name:: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.2&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.1, has been released to support the latest version of Trados Studio 2022 SR1+.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve these references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;NetFx40_PInvokeStackResilience enabled=&amp;quot;1&amp;quot; /&amp;gt;
    &amp;lt;legacyCorruptedStateExceptionsPolicy enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;ThrowUnobservedTaskException enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Extensions.DependencyModel&amp;quot; publicKeyToken=&amp;quot;adb9793829ddae60&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-7.0.0.0&amp;quot; newVersion=&amp;quot;7.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.2&amp;quot; newVersion=&amp;quot;4.0.1.2&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR2</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6743/how-to-update-plugins-to-trados-studio-2022-sr2/revision/6</link><pubDate>Tue, 13 Feb 2024 15:57:40 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:6b7e147c-62e9-44ac-9849-a5bca64f0282</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Revision 6 posted to Studio Developers WIKI by Patrick Andrew Hartnett on 2/13/2024 3:57:40 PM&lt;br /&gt;
&lt;p&gt;There will be significant changes to the Terminology provider API with the release of Trados Studio SR2.&amp;nbsp; These changes are all geared towards decoupling the Multiterm integration from Trados Studio to promote independent development cycles and reduce the risk of compatibility issues. This means that updates, bug fixes, and new features can be developed and released separately and lead to faster development cycles for each product.&lt;/p&gt;
&lt;p&gt;Unfortunately, this will introduce breaking changes for plugin and project automation integrations with the Terminology provider API. The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR2&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-TerminologyProviderAPI"&gt;Terminology Provider API&lt;/h2&gt;
&lt;p&gt;Make reference to the &lt;a class="external-link" href="https://developers.rws.com/studio-api-docs/apiconcepts/releasenotes/tradosstudio2022sr2.html" rel="nofollow"&gt;release notes for Trados Studio SR2&lt;/a&gt; when updating your plugin integrations with the Terminology Provider API. It includes all of the API changes that will facilitate better management, customization, and extensibility of terminology providers, providing more flexibility and control for developers and users.&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Removed Classes and Interfaces&lt;/strong&gt;: Several classes and interfaces have been removed, such as &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt;, &lt;em&gt;IDefinition&lt;/em&gt;, &lt;em&gt;IDefinitionLanguage&lt;/em&gt;, and others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updated Classes&lt;/strong&gt;: Major changes include the &lt;em&gt;Definition &lt;/em&gt;class, &lt;em&gt;Entry&lt;/em&gt;, &lt;em&gt;EntryField&lt;/em&gt;, &lt;em&gt;EntryLanguage&lt;/em&gt;, and others. These updates involve changes in property types, constructors, and interfaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TerminologyProviderManager&lt;/strong&gt;: Now implements &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, offering new methods for managing terminology providers, such as &lt;em&gt;RemoveTerminologyProvider&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ITerminologyProvider Updates&lt;/strong&gt;: The &lt;em&gt;ITerminologyProvider &lt;/em&gt;interface has several new properties and methods for managing active filters, initialization, and more. The type of returned values for methods like &lt;em&gt;GetEntry &lt;/em&gt;and &lt;em&gt;Search&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;has changed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Interfaces&lt;/strong&gt;: Several new interfaces have been added, including &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, &lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt;, and &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;A full integration of these new changes to the Terminology Provider API are available from the &lt;a class="external-link" href="https://github.com/RWS/Sdl-Community/tree/master/IATETerminologyProvider" rel="nofollow"&gt;IATE Terminology Provider&lt;/a&gt; for reference.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProvider"&gt;ITerminologyProvider&lt;/h3&gt;
&lt;p&gt;The &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt; is no longer available &amp;amp; in its place you must implement the &lt;em&gt;ITerminologyProvider&lt;/em&gt; interface, which has some new properties &amp;amp; methods such as &lt;em&gt;ActiveFilter&lt;/em&gt; property &amp;amp; associated method &lt;em&gt;GetFilters()&lt;/em&gt; that enable a user to add filters to restrict the results that provider displays when searching a termbase during translation.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615497862v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public FilterDefinition ActiveFilter { get; set; }
 
    public IList&amp;lt;FilterDefinition&amp;gt; GetFilters()
    {
        var filterDefinitions = new List&amp;lt;FilterDefinition&amp;gt;();
        var filterDefinition = new FilterDefinition { ID = 0, Name = &amp;quot;Source contains synonyms&amp;quot; };
        filterDefinitions.Add(filterDefinition);
 
        return filterDefinitions;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Definition"&gt;Definition&lt;/h3&gt;
&lt;p class="auto-cursor-target"&gt;Its important to fully describe the &lt;em&gt;DescriptiveFields &lt;/em&gt;to the &lt;em&gt;Definition&lt;/em&gt; property of the provider to provide sufficient information when integrating with other services, such as the &lt;strong&gt;Terminology Verifier&lt;/strong&gt;.&amp;nbsp; For example: to enable integration with the feature to check for forbidden terms, you should include the &lt;em&gt;DescriptiveField &lt;/em&gt;at the &lt;em&gt;TermLevel, &lt;/em&gt;as shown here (e.g. &lt;em&gt;var statusField&lt;/em&gt;)&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615545981v2.png" /&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public Definition Definition =&amp;gt; new Definition(GetDescriptiveFields(), GetDefinitionLanguages());
 
    public IList&amp;lt;DescriptiveField&amp;gt; GetDescriptiveFields()
    {
        var result = new List&amp;lt;DescriptiveField&amp;gt;();
 
        var definitionField = new DescriptiveField
        {
            Label = &amp;quot;Definition&amp;quot;, Level = FieldLevel.EntryLevel, Mandatory = true, Multiple = true,
            Type = FieldType.String
        };
        result.Add(definitionField);
 
        var statusField = new DescriptiveField
        {
            Label = &amp;quot;Status&amp;quot;, Level = FieldLevel.TermLevel, Mandatory = false, Multiple = true,
            Type = FieldType.PickList,
            PickListValues = new[] { &amp;quot;Deprecated&amp;quot;, &amp;quot;Obsolete&amp;quot;, &amp;quot;Admitted&amp;quot;, &amp;quot;Preferred&amp;quot;, &amp;quot;Proposed&amp;quot; }
        };
        result.Add(statusField);
 
        return result;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public IList&amp;lt;DefinitionLanguage&amp;gt; GetDefinitionLanguages()
{
    var result = new List&amp;lt;DefinitionLanguage&amp;gt;();
 
    var currentProject = SdlTradosStudio.Application?.GetController&amp;lt;ProjectsController&amp;gt;()?.CurrentProject;
    if (currentProject == null) return result;
 
    var projectInfo = currentProject.GetProjectInfo();
 
    result.Add(new DefinitionLanguage
    {
        Locale = projectInfo.SourceLanguage.CultureInfo,
        Name = projectInfo.SourceLanguage.DisplayName
    });
 
    result.AddRange(projectInfo.TargetLanguages.Select(language =&amp;gt; new DefinitionLanguage
    {
        Locale = language.CultureInfo,
        Name = language.DisplayName
    }));
 
    return result;
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProviderWinFormsUI"&gt;ITerminologyProviderWinFormsUI&lt;/h3&gt;
&lt;p&gt;You will noticed that the property &lt;em&gt;SupportsEditing &lt;/em&gt;&amp;amp; the method &lt;em&gt;Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)&lt;/em&gt; have been removed from the &lt;em&gt;ITerminologyProviderWinFormsUI&lt;/em&gt; interface.&amp;nbsp; If your provider allows a user to edit the provider settings by displaying a settings dialog, then implement the new interface &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit. &lt;/em&gt;Additionally, the new interface&amp;nbsp;&lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt; introduces a new extensibility point that will display a context menu item in the &lt;strong&gt;Create &lt;/strong&gt;button from the Terminology Provider Settings in Trados Studio.&amp;nbsp; This is useful for use cases where the creation of the provider needs to be a separate to the edit settings dialogs.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;[TerminologyProviderWinFormsUI]
public class MyTerminologyProviderWinFormsUI : ITerminologyProviderWinFormsUIWithEdit, ITerminologyProviderWinFormsUIWithCreate
{
    public ITerminologyProvider Create()
    {
        // Adds the capability to create a ITerminologyProvider.
        // Allows the creation of an ITerminologyProvider from the UI.It returns a ITerminologyProvider
        return null;
    }
 
    public bool Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)
    {
        // Adds the capability to edit settings.
        // Used to display a dialog to interactively change any of the terminology provider settings.
        return true;
    }
 
    public ITerminologyProvider[] Browse(IWin32Window owner, ITerminologyProviderCredentialStore credentialStore)
    {
        // Adds the capability to select a ITerminologyProvider.
        // Used to display a dialog to add a new terminology provider.
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-PluginManifest"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version: &lt;em&gt;17.2&lt;/em&gt;. If your plugin has been updated to support these latest changes to the Terminology Provider API, then you should reflect this by setting the minimum supported version of your plugin to &lt;em&gt;17.2&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version: &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name:: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.2&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.1, has been released to support the latest version of Trados Studio 2022 SR1+.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve these references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;NetFx40_PInvokeStackResilience enabled=&amp;quot;1&amp;quot; /&amp;gt;
    &amp;lt;legacyCorruptedStateExceptionsPolicy enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;ThrowUnobservedTaskException enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Extensions.DependencyModel&amp;quot; publicKeyToken=&amp;quot;adb9793829ddae60&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-7.0.0.0&amp;quot; newVersion=&amp;quot;7.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.2&amp;quot; newVersion=&amp;quot;4.0.1.2&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR2</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6743/how-to-update-plugins-to-trados-studio-2022-sr2/revision/5</link><pubDate>Fri, 10 Nov 2023 14:37:44 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:6b7e147c-62e9-44ac-9849-a5bca64f0282</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Revision 5 posted to Studio Developers WIKI by Patrick Andrew Hartnett on 11/10/2023 2:37:44 PM&lt;br /&gt;
&lt;p&gt;There will be significant changes to the Terminology provider API with the release of Trados Studio SR2.&amp;nbsp; These changes are all geared towards decoupling the Multiterm integration from Trados Studio to promote independent development cycles and reduce the risk of compatibility issues. This means that updates, bug fixes, and new features can be developed and released separately and lead to faster development cycles for each product.&lt;/p&gt;
&lt;p&gt;Unfortunately, this will introduce breaking changes for plugin and project automation integrations with the Terminology provider API. The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR2&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-TerminologyProviderAPI"&gt;Terminology Provider API&lt;/h2&gt;
&lt;p&gt;Make reference to the &lt;a class="external-link" href="https://developers.rws.com/studio-api-docs/apiconcepts/releasenotes/tradosstudio2022sr2.html" rel="nofollow"&gt;release notes for Trados Studio SR2&lt;/a&gt; when updating your plugin integrations with the Terminology Provider API. It includes all of the API changes that will facilitate better management, customization, and extensibility of terminology providers, providing more flexibility and control for developers and users.&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Removed Classes and Interfaces&lt;/strong&gt;: Several classes and interfaces have been removed, such as &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt;, &lt;em&gt;IDefinition&lt;/em&gt;, &lt;em&gt;IDefinitionLanguage&lt;/em&gt;, and others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updated Classes&lt;/strong&gt;: Major changes include the &lt;em&gt;Definition &lt;/em&gt;class, &lt;em&gt;Entry&lt;/em&gt;, &lt;em&gt;EntryField&lt;/em&gt;, &lt;em&gt;EntryLanguage&lt;/em&gt;, and others. These updates involve changes in property types, constructors, and interfaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TerminologyProviderManager&lt;/strong&gt;: Now implements &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, offering new methods for managing terminology providers, such as &lt;em&gt;RemoveTerminologyProvider&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ITerminologyProvider Updates&lt;/strong&gt;: The &lt;em&gt;ITerminologyProvider &lt;/em&gt;interface has several new properties and methods for managing active filters, initialization, and more. The type of returned values for methods like &lt;em&gt;GetEntry &lt;/em&gt;and &lt;em&gt;Search&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;has changed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Interfaces&lt;/strong&gt;: Several new interfaces have been added, including &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, &lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt;, and &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;A full integration of these new changes to the Terminology Provider API are available from the &lt;a class="external-link" href="https://github.com/RWS/Sdl-Community/tree/master/IATETerminologyProvider" rel="nofollow"&gt;IATE Terminology Provider&lt;/a&gt; for reference.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProvider"&gt;ITerminologyProvider&lt;/h3&gt;
&lt;p&gt;The &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt; is no longer available &amp;amp; in its place you must implement the &lt;em&gt;ITerminologyProvider&lt;/em&gt; interface, which has some new properties &amp;amp; methods such as &lt;em&gt;ActiveFilter&lt;/em&gt; property &amp;amp; associated method &lt;em&gt;GetFilters()&lt;/em&gt; that enable a user to add filters to restrict the results that provider displays when searching a termbase during translation.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615497862v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public FilterDefinition ActiveFilter { get; set; }
 
    public IList&amp;lt;FilterDefinition&amp;gt; GetFilters()
    {
        var filterDefinitions = new List&amp;lt;FilterDefinition&amp;gt;();
        var filterDefinition = new FilterDefinition { ID = 0, Name = &amp;quot;Source contains synonyms&amp;quot; };
        filterDefinitions.Add(filterDefinition);
 
        return filterDefinitions;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Definition"&gt;Definition&lt;/h3&gt;
&lt;p class="auto-cursor-target"&gt;Its important to fully describe the &lt;em&gt;DescriptiveFields &lt;/em&gt;to the &lt;em&gt;Definition&lt;/em&gt; property of the provider to provide sufficient information when integrating with other services, such as the &lt;strong&gt;Terminology Verifier&lt;/strong&gt;.&amp;nbsp; For example: to enable integration with the feature to check for forbidden terms, you should include the &lt;em&gt;DescriptiveField &lt;/em&gt;at the &lt;em&gt;TermLevel, &lt;/em&gt;as shown here (e.g. &lt;em&gt;var statusField&lt;/em&gt;)&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615545981v2.png" /&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public Definition Definition =&amp;gt; new Definition(GetDescriptiveFields(), GetDefinitionLanguages());
 
    public IList&amp;lt;DescriptiveField&amp;gt; GetDescriptiveFields()
    {
        var result = new List&amp;lt;DescriptiveField&amp;gt;();
 
        var definitionField = new DescriptiveField
        {
            Label = &amp;quot;Definition&amp;quot;, Level = FieldLevel.EntryLevel, Mandatory = true, Multiple = true,
            Type = FieldType.String
        };
        result.Add(definitionField);
 
        var statusField = new DescriptiveField
        {
            Label = &amp;quot;Status&amp;quot;, Level = FieldLevel.TermLevel, Mandatory = false, Multiple = true,
            Type = FieldType.PickList,
            PickListValues = new[] { &amp;quot;Deprecated&amp;quot;, &amp;quot;Obsolete&amp;quot;, &amp;quot;Admitted&amp;quot;, &amp;quot;Preferred&amp;quot;, &amp;quot;Proposed&amp;quot; }
        };
        result.Add(statusField);
 
        return result;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public IList&amp;lt;DefinitionLanguage&amp;gt; GetDefinitionLanguages()
{
    var result = new List&amp;lt;DefinitionLanguage&amp;gt;();
 
    var currentProject = SdlTradosStudio.Application?.GetController&amp;lt;ProjectsController&amp;gt;()?.CurrentProject;
    if (currentProject == null) return result;
 
    var projectInfo = currentProject.GetProjectInfo();
 
    result.Add(new DefinitionLanguage
    {
        Locale = projectInfo.SourceLanguage.CultureInfo,
        Name = projectInfo.SourceLanguage.DisplayName
    });
 
    result.AddRange(projectInfo.TargetLanguages.Select(language =&amp;gt; new DefinitionLanguage
    {
        Locale = language.CultureInfo,
        Name = language.DisplayName
    }));
 
    return result;
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProviderWinFormsUI"&gt;ITerminologyProviderWinFormsUI&lt;/h3&gt;
&lt;p&gt;You will noticed that the property &lt;em&gt;SupportsEditing &lt;/em&gt;&amp;amp; the method &lt;em&gt;Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)&lt;/em&gt; have been removed from the &lt;em&gt;ITerminologyProviderWinFormsUI&lt;/em&gt; interface.&amp;nbsp; If your provider allows a user to edit the provider settings by displaying a settings dialog, then implement the new interface &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit. &lt;/em&gt;Additionally, the new interface&amp;nbsp;&lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt; introduces a new extensibility point that will display a context menu item in the &lt;strong&gt;Create &lt;/strong&gt;button from the Terminology Provider Settings in Trados Studio.&amp;nbsp; This is useful for use cases where the creation of the provider needs to be a separate to the edit settings dialogs.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;[TerminologyProviderWinFormsUI]
public class MyTerminologyProviderWinFormsUI : ITerminologyProviderWinFormsUIWithEdit, ITerminologyProviderWinFormsUIWithCreate
{
    public ITerminologyProvider Create()
    {
        // Adds the capability to create a ITerminologyProvider.
        // Allows the creation of an ITerminologyProvider from the UI.It returns a ITerminologyProvider
        return null;
    }
 
    public bool Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)
    {
        // Adds the capability to edit settings.
        // Used to display a dialog to interactively change any of the terminology provider settings.
        return true;
    }
 
    public ITerminologyProvider[] Browse(IWin32Window owner, ITerminologyProviderCredentialStore credentialStore)
    {
        // Adds the capability to select a ITerminologyProvider.
        // Used to display a dialog to add a new terminology provider.
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-PluginManifest"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version: &lt;em&gt;17.2&lt;/em&gt;. If your plugin has been updated to support these latest changes to the Terminology Provider API, then you should reflect this by setting the minimum supported version of your plugin to &lt;em&gt;17.2&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version: &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name:: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.2&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.1, has been released to support the latest version of Trados Studio 2022 SR1+.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve these references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;NetFx40_PInvokeStackResilience enabled=&amp;quot;1&amp;quot; /&amp;gt;
    &amp;lt;legacyCorruptedStateExceptionsPolicy enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;ThrowUnobservedTaskException enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Extensions.DependencyModel&amp;quot; publicKeyToken=&amp;quot;adb9793829ddae60&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-6.0.0.0&amp;quot; newVersion=&amp;quot;6.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.2&amp;quot; newVersion=&amp;quot;4.0.1.2&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR2</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6743/how-to-update-plugins-to-trados-studio-2022-sr2/revision/4</link><pubDate>Fri, 10 Nov 2023 13:49:50 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:6b7e147c-62e9-44ac-9849-a5bca64f0282</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Revision 4 posted to Studio Developers WIKI by Patrick Andrew Hartnett on 11/10/2023 1:49:50 PM&lt;br /&gt;
&lt;p&gt;There will be significant changes to the Terminology provider API with the release of Trados Studio SR2.&amp;nbsp; These changes are all geared towards decoupling the Multiterm integration from Trados Studio to promote independent development cycles and reduce the risk of compatibility issues. This means that updates, bug fixes, and new features can be developed and released separately and lead to faster development cycles for each product.&lt;/p&gt;
&lt;p&gt;Unfortunately, this will introduce breaking changes for plugin and project automation integrations with the Terminology provider API. The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR2&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-TerminologyProviderAPI"&gt;Terminology Provider API&lt;/h2&gt;
&lt;p&gt;Make reference to the &lt;a class="external-link" href="https://developers.rws.com/studio-api-docs/apiconcepts/releasenotes/tradosstudio2022sr2.html" rel="nofollow"&gt;release notes for Trados Studio SR2&lt;/a&gt; when updating your plugin integrations with the Terminology Provider API. It includes all of the API changes that will facilitate better management, customization, and extensibility of terminology providers, providing more flexibility and control for developers and users.&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Removed Classes and Interfaces&lt;/strong&gt;: Several classes and interfaces have been removed, such as &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt;, &lt;em&gt;IDefinition&lt;/em&gt;, &lt;em&gt;IDefinitionLanguage&lt;/em&gt;, and others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updated Classes&lt;/strong&gt;: Major changes include the &lt;em&gt;Definition &lt;/em&gt;class, &lt;em&gt;Entry&lt;/em&gt;, &lt;em&gt;EntryField&lt;/em&gt;, &lt;em&gt;EntryLanguage&lt;/em&gt;, and others. These updates involve changes in property types, constructors, and interfaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TerminologyProviderManager&lt;/strong&gt;: Now implements &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, offering new methods for managing terminology providers, such as &lt;em&gt;RemoveTerminologyProvider&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ITerminologyProvider Updates&lt;/strong&gt;: The &lt;em&gt;ITerminologyProvider &lt;/em&gt;interface has several new properties and methods for managing active filters, initialization, and more. The type of returned values for methods like &lt;em&gt;GetEntry &lt;/em&gt;and &lt;em&gt;Search&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;has changed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Interfaces&lt;/strong&gt;: Several new interfaces have been added, including &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, &lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt;, and &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;A full integration of these new changes to the Terminology Provider API are available from the &lt;a class="external-link" href="https://github.com/RWS/Sdl-Community/tree/master/IATETerminologyProvider" rel="nofollow"&gt;IATE Terminology Provider&lt;/a&gt; for reference.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProvider"&gt;ITerminologyProvider&lt;/h3&gt;
&lt;p&gt;The &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt; is no longer available &amp;amp; in its place you must implement the &lt;em&gt;ITerminologyProvider&lt;/em&gt; interface, which has some new properties &amp;amp; methods such as &lt;em&gt;ActiveFilter { get; set; }&lt;/em&gt; &amp;amp; associated method &lt;em&gt;GetFilters()&lt;/em&gt; that enable a user to add filters to restrict the results that provider displays when searching a termbase during translation.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615497862v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public FilterDefinition ActiveFilter { get; set; }
 
    public IList&amp;lt;FilterDefinition&amp;gt; GetFilters()
    {
        var filterDefinitions = new List&amp;lt;FilterDefinition&amp;gt;();
        var filterDefinition = new FilterDefinition { ID = 0, Name = &amp;quot;Source contains synonyms&amp;quot; };
        filterDefinitions.Add(filterDefinition);
 
        return filterDefinitions;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Definition"&gt;Definition&lt;/h3&gt;
&lt;p class="auto-cursor-target"&gt;Its important to fully describe the &lt;em&gt;DescriptiveFields &lt;/em&gt;to the &lt;em&gt;Definition&lt;/em&gt; property of the provider to provide sufficient information when integrating with other services, such as the &lt;strong&gt;Terminology Verifier&lt;/strong&gt;.&amp;nbsp; For example: to enable integration with the feature to check for forbidden terms, you should include the &lt;em&gt;DescriptiveField &lt;/em&gt;at the &lt;em&gt;TermLevel, &lt;/em&gt;as shown here (e.g. &lt;em&gt;var statusField&lt;/em&gt;)&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615545981v2.png" /&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public Definition Definition =&amp;gt; new Definition(GetDescriptiveFields(), GetDefinitionLanguages());
 
    public IList&amp;lt;DescriptiveField&amp;gt; GetDescriptiveFields()
    {
        var result = new List&amp;lt;DescriptiveField&amp;gt;();
 
        var definitionField = new DescriptiveField
        {
            Label = &amp;quot;Definition&amp;quot;, Level = FieldLevel.EntryLevel, Mandatory = true, Multiple = true,
            Type = FieldType.String
        };
        result.Add(definitionField);
 
        var statusField = new DescriptiveField
        {
            Label = &amp;quot;Status&amp;quot;, Level = FieldLevel.TermLevel, Mandatory = false, Multiple = true,
            Type = FieldType.PickList,
            PickListValues = new[] { &amp;quot;Deprecated&amp;quot;, &amp;quot;Obsolete&amp;quot;, &amp;quot;Admitted&amp;quot;, &amp;quot;Preferred&amp;quot;, &amp;quot;Proposed&amp;quot; }
        };
        result.Add(statusField);
 
        return result;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public IList&amp;lt;DefinitionLanguage&amp;gt; GetDefinitionLanguages()
{
    var result = new List&amp;lt;DefinitionLanguage&amp;gt;();
 
    var currentProject = SdlTradosStudio.Application?.GetController&amp;lt;ProjectsController&amp;gt;()?.CurrentProject;
    if (currentProject == null) return result;
 
    var projectInfo = currentProject.GetProjectInfo();
 
    result.Add(new DefinitionLanguage
    {
        Locale = projectInfo.SourceLanguage.CultureInfo,
        Name = projectInfo.SourceLanguage.DisplayName
    });
 
    result.AddRange(projectInfo.TargetLanguages.Select(language =&amp;gt; new DefinitionLanguage
    {
        Locale = language.CultureInfo,
        Name = language.DisplayName
    }));
 
    return result;
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProviderWinFormsUI"&gt;ITerminologyProviderWinFormsUI&lt;/h3&gt;
&lt;p&gt;You will noticed that the property &lt;em&gt;SupportsEditing &lt;/em&gt;&amp;amp; the method &lt;em&gt;Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)&lt;/em&gt; have been removed from the &lt;em&gt;ITerminologyProviderWinFormsUI&lt;/em&gt; interface.&amp;nbsp; If your provider allows a user to edit the provider settings by displaying a settings dialog, then implement the new interface &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit. &lt;/em&gt;Additionally, the new interface&amp;nbsp;&lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt; introduces a new extensibility point that will display a context menu item in the &lt;strong&gt;Create &lt;/strong&gt;button from the Terminology Provider Settings in Trados Studio.&amp;nbsp; This is useful for use cases where the creation of the provider needs to be a separate to the edit settings dialogs.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;[TerminologyProviderWinFormsUI]
public class MyTerminologyProviderWinFormsUI : ITerminologyProviderWinFormsUIWithEdit, ITerminologyProviderWinFormsUIWithCreate
{
    public ITerminologyProvider Create()
    {
        // Adds the capability to create a ITerminologyProvider.
        // Allows the creation of an ITerminologyProvider from the UI.It returns a ITerminologyProvider
        return null;
    }
 
    public bool Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)
    {
        // Adds the capability to edit settings.
        // Used to display a dialog to interactively change any of the terminology provider settings.
        return true;
    }
 
    public ITerminologyProvider[] Browse(IWin32Window owner, ITerminologyProviderCredentialStore credentialStore)
    {
        // Adds the capability to select a ITerminologyProvider.
        // Used to display a dialog to add a new terminology provider.
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-PluginManifest"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version: &lt;em&gt;17.2&lt;/em&gt;. If your plugin has been updated to support these latest changes to the Terminology Provider API, then you should reflect this by setting the minimum supported version of your plugin to &lt;em&gt;17.2&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version: &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name:: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.2&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.1, has been released to support the latest version of Trados Studio 2022 SR1+.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve these references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;NetFx40_PInvokeStackResilience enabled=&amp;quot;1&amp;quot; /&amp;gt;
    &amp;lt;legacyCorruptedStateExceptionsPolicy enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;ThrowUnobservedTaskException enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Extensions.DependencyModel&amp;quot; publicKeyToken=&amp;quot;adb9793829ddae60&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-6.0.0.0&amp;quot; newVersion=&amp;quot;6.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.2&amp;quot; newVersion=&amp;quot;4.0.1.2&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR2</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6743/how-to-update-plugins-to-trados-studio-2022-sr2/revision/3</link><pubDate>Fri, 10 Nov 2023 11:30:57 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:6b7e147c-62e9-44ac-9849-a5bca64f0282</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Revision 3 posted to Studio Developers WIKI by Patrick Andrew Hartnett on 11/10/2023 11:30:57 AM&lt;br /&gt;
&lt;p&gt;There will be significant changes to the Terminology provider API with the release of Trados Studio SR2.&amp;nbsp; These changes are all geared towards decoupling the Multiterm integration from Trados Studio to promote independent development cycles and reduce the risk of compatibility issues. This means that updates, bug fixes, and new features can be developed and released separately and lead to faster development cycles for each product.&lt;/p&gt;
&lt;p&gt;Unfortunately, this will introduce breaking changes for plugin and project automation integrations with the Terminology provider API. The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR2&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-TerminologyProviderAPI"&gt;Terminology Provider API&lt;/h2&gt;
&lt;p&gt;Make reference to the &lt;a class="external-link" href="https://developers.rws.com/studio-api-docs/apiconcepts/releasenotes/tradosstudio2022sr2.html" rel="nofollow"&gt;release notes for Trados Studio SR2&lt;/a&gt; when updating your plugin integrations with the Terminology Provider API. It includes all of the API changes that will facilitate better management, customization, and extensibility of terminology providers, providing more flexibility and control for developers and users.&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Removed Classes and Interfaces&lt;/strong&gt;: Several classes and interfaces have been removed, such as &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt;, &lt;em&gt;IDefinition&lt;/em&gt;, &lt;em&gt;IDefinitionLanguage&lt;/em&gt;, and others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updated Classes&lt;/strong&gt;: Major changes include the &lt;em&gt;Definition &lt;/em&gt;class, &lt;em&gt;Entry&lt;/em&gt;, &lt;em&gt;EntryField&lt;/em&gt;, &lt;em&gt;EntryLanguage&lt;/em&gt;, and others. These updates involve changes in property types, constructors, and interfaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TerminologyProviderManager&lt;/strong&gt;: Now implements &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, offering new methods for managing terminology providers, such as &lt;em&gt;RemoveTerminologyProvider&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ITerminologyProvider Updates&lt;/strong&gt;: The &lt;em&gt;ITerminologyProvider &lt;/em&gt;interface has several new properties and methods for managing active filters, initialization, and more. The type of returned values for methods like &lt;em&gt;GetEntry &lt;/em&gt;and &lt;em&gt;Search&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;has changed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Interfaces&lt;/strong&gt;: Several new interfaces have been added, including &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, &lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt;, and &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;A full integration of these new changes to the Terminology Provider API are available from the &lt;a class="external-link" href="https://github.com/RWS/Sdl-Community/tree/master/IATETerminologyProvider" rel="nofollow"&gt;IATE Terminology Provider&lt;/a&gt; for reference.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProvider"&gt;ITerminologyProvider&lt;/h3&gt;
&lt;p&gt;The &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt; is no longer available &amp;amp; in its place you must implement the &lt;em&gt;ITerminologyProvider&lt;/em&gt; interface, which has some new properties &amp;amp; methods such as &lt;em&gt;ActiveFilter { get; set; }&lt;/em&gt; &amp;amp; associated method &lt;em&gt;GetFilters()&lt;/em&gt; that enable a user to add filters to restrict the results that provider displays when searching a termbase during translation.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615497862v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public FilterDefinition ActiveFilter { get; set; }
 
    public IList&amp;lt;FilterDefinition&amp;gt; GetFilters()
    {
        var filterDefinitions = new List&amp;lt;FilterDefinition&amp;gt;();
        var filterDefinition = new FilterDefinition { ID = 0, Name = &amp;quot;Source contains synonyms&amp;quot; };
        filterDefinitions.Add(filterDefinition);
 
        return filterDefinitions;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Definition"&gt;Definition&lt;/h3&gt;
&lt;p class="auto-cursor-target"&gt;Its important to fully describe the &lt;em&gt;DescriptiveFields &lt;/em&gt;to the &lt;em&gt;Definition&lt;/em&gt; property of the provider to provide sufficient information when integrating with other services, such as the &lt;strong&gt;Terminology Verifier&lt;/strong&gt;.&amp;nbsp; For example: to enable integration with the feature to check for forbidden terms, remember to include the &lt;em&gt;DescriptiveField &lt;/em&gt;at the &lt;em&gt;TermLevel &lt;/em&gt;as shown here (e.g. var statusField)&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615545981v2.png" /&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public Definition Definition =&amp;gt; new Definition(GetDescriptiveFields(), GetDefinitionLanguages());
 
    public IList&amp;lt;DescriptiveField&amp;gt; GetDescriptiveFields()
    {
        var result = new List&amp;lt;DescriptiveField&amp;gt;();
 
        var definitionField = new DescriptiveField
        {
            Label = &amp;quot;Definition&amp;quot;, Level = FieldLevel.EntryLevel, Mandatory = true, Multiple = true,
            Type = FieldType.String
        };
        result.Add(definitionField);
 
        var statusField = new DescriptiveField
        {
            Label = &amp;quot;Status&amp;quot;, Level = FieldLevel.TermLevel, Mandatory = false, Multiple = true,
            Type = FieldType.PickList,
            PickListValues = new[] { &amp;quot;Deprecated&amp;quot;, &amp;quot;Obsolete&amp;quot;, &amp;quot;Admitted&amp;quot;, &amp;quot;Preferred&amp;quot;, &amp;quot;Proposed&amp;quot; }
        };
        result.Add(statusField);
 
        return result;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public IList&amp;lt;DefinitionLanguage&amp;gt; GetDefinitionLanguages()
{
    var result = new List&amp;lt;DefinitionLanguage&amp;gt;();
 
    var currentProject = SdlTradosStudio.Application?.GetController&amp;lt;ProjectsController&amp;gt;()?.CurrentProject;
    if (currentProject == null) return result;
 
    var projectInfo = currentProject.GetProjectInfo();
 
    result.Add(new DefinitionLanguage
    {
        Locale = projectInfo.SourceLanguage.CultureInfo,
        Name = projectInfo.SourceLanguage.DisplayName
    });
 
    result.AddRange(projectInfo.TargetLanguages.Select(language =&amp;gt; new DefinitionLanguage
    {
        Locale = language.CultureInfo,
        Name = language.DisplayName
    }));
 
    return result;
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProviderWinFormsUI"&gt;ITerminologyProviderWinFormsUI&lt;/h3&gt;
&lt;p&gt;You will noticed that the property &lt;em&gt;SupportsEditing &lt;/em&gt;&amp;amp; the method &lt;em&gt;Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)&lt;/em&gt; have been removed from the &lt;em&gt;ITerminologyProviderWinFormsUI&lt;/em&gt; interface.&amp;nbsp; If your provider allows a user to edit the provider settings by displaying a settings dialog, then implement the new interface &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit. &lt;/em&gt;Additionally, the new interface&amp;nbsp;&lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt; introduces a new extensibility point that will display a context menu item in the &lt;strong&gt;Create &lt;/strong&gt;button from the Terminology Provider Settings in Trados Studio.&amp;nbsp; This is useful for use cases where the creation of the provider needs to be a separate to the edit settings dialogs.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;[TerminologyProviderWinFormsUI]
public class MyTerminologyProviderWinFormsUI : ITerminologyProviderWinFormsUIWithEdit, ITerminologyProviderWinFormsUIWithCreate
{
    public ITerminologyProvider Create()
    {
        // Adds the capability to create a ITerminologyProvider.
        // Allows the creation of an ITerminologyProvider from the UI.It returns a ITerminologyProvider
        return null;
    }
 
    public bool Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)
    {
        // Adds the capability to edit settings.
        // Used to display a dialog to interactively change any of the terminology provider settings.
        return true;
    }
 
    public ITerminologyProvider[] Browse(IWin32Window owner, ITerminologyProviderCredentialStore credentialStore)
    {
        // Adds the capability to select a ITerminologyProvider.
        // Used to display a dialog to add a new terminology provider.
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-PluginManifest"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version: &lt;em&gt;17.2&lt;/em&gt;. If your plugin has been updated to support these latest changes to the Terminology Provider API, then you should reflect this by setting the minimum supported version of your plugin to &lt;em&gt;17.2&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version: &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name:: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.2&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.1, has been released to support the latest version of Trados Studio 2022 SR1+.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve these references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;NetFx40_PInvokeStackResilience enabled=&amp;quot;1&amp;quot; /&amp;gt;
    &amp;lt;legacyCorruptedStateExceptionsPolicy enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;ThrowUnobservedTaskException enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Extensions.DependencyModel&amp;quot; publicKeyToken=&amp;quot;adb9793829ddae60&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-6.0.0.0&amp;quot; newVersion=&amp;quot;6.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.2&amp;quot; newVersion=&amp;quot;4.0.1.2&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR2</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6743/how-to-update-plugins-to-trados-studio-2022-sr2/revision/2</link><pubDate>Fri, 10 Nov 2023 11:29:54 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:6b7e147c-62e9-44ac-9849-a5bca64f0282</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Revision 2 posted to Studio Developers WIKI by Patrick Andrew Hartnett on 11/10/2023 11:29:54 AM&lt;br /&gt;
&lt;p&gt;There will be significant changes to the Terminology provider API with the release of Trados Studio SR2.&amp;nbsp; These changes are all geared towards decoupling the Multiterm integration from Trados Studio to promote independent development cycles and reduce the risk of compatibility issues. This means that updates, bug fixes, and new features can be developed and released separately and lead to faster development cycles for each product.&lt;/p&gt;
&lt;p&gt;Unfortunately, this will introduce breaking changes for plugin and project automation integrations with the Terminology provider API.&lt;/p&gt;
&lt;p&gt;The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR2&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-TerminologyProviderAPI"&gt;Terminology Provider API&lt;/h2&gt;
&lt;p&gt;Make reference to the &lt;a class="external-link" href="https://developers.rws.com/studio-api-docs/apiconcepts/releasenotes/tradosstudio2022sr2.html" rel="nofollow"&gt;release notes for Trados Studio SR2&lt;/a&gt; when updating your plugin integrations with the Terminology Provider API. It includes all of the API changes that will facilitate better management, customization, and extensibility of terminology providers, providing more flexibility and control for developers and users.&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Removed Classes and Interfaces&lt;/strong&gt;: Several classes and interfaces have been removed, such as &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt;, &lt;em&gt;IDefinition&lt;/em&gt;, &lt;em&gt;IDefinitionLanguage&lt;/em&gt;, and others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updated Classes&lt;/strong&gt;: Major changes include the &lt;em&gt;Definition &lt;/em&gt;class, &lt;em&gt;Entry&lt;/em&gt;, &lt;em&gt;EntryField&lt;/em&gt;, &lt;em&gt;EntryLanguage&lt;/em&gt;, and others. These updates involve changes in property types, constructors, and interfaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TerminologyProviderManager&lt;/strong&gt;: Now implements &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, offering new methods for managing terminology providers, such as &lt;em&gt;RemoveTerminologyProvider&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ITerminologyProvider Updates&lt;/strong&gt;: The &lt;em&gt;ITerminologyProvider &lt;/em&gt;interface has several new properties and methods for managing active filters, initialization, and more. The type of returned values for methods like &lt;em&gt;GetEntry &lt;/em&gt;and &lt;em&gt;Search&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;has changed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Interfaces&lt;/strong&gt;: Several new interfaces have been added, including &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, &lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt;, and &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;A full integration of these new changes to the Terminology Provider API are available from the &lt;a class="external-link" href="https://github.com/RWS/Sdl-Community/tree/master/IATETerminologyProvider" rel="nofollow"&gt;IATE Terminology Provider&lt;/a&gt; for reference.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProvider"&gt;ITerminologyProvider&lt;/h3&gt;
&lt;p&gt;The &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt; is no longer available &amp;amp; in its place you must implement the &lt;em&gt;ITerminologyProvider&lt;/em&gt; interface, which has some new properties &amp;amp; methods such as &lt;em&gt;ActiveFilter { get; set; }&lt;/em&gt; &amp;amp; associated method &lt;em&gt;GetFilters()&lt;/em&gt; that enable a user to add filters to restrict the results that provider displays when searching a termbase during translation.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615497862v1.png" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public FilterDefinition ActiveFilter { get; set; }
 
    public IList&amp;lt;FilterDefinition&amp;gt; GetFilters()
    {
        var filterDefinitions = new List&amp;lt;FilterDefinition&amp;gt;();
        var filterDefinition = new FilterDefinition { ID = 0, Name = &amp;quot;Source contains synonyms&amp;quot; };
        filterDefinitions.Add(filterDefinition);
 
        return filterDefinitions;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Definition"&gt;Definition&lt;/h3&gt;
&lt;p class="auto-cursor-target"&gt;Its important to fully describe the &lt;em&gt;DescriptiveFields &lt;/em&gt;to the &lt;em&gt;Definition&lt;/em&gt; property of the provider to provide sufficient information when integrating with other services, such as the &lt;strong&gt;Terminology Verifier&lt;/strong&gt;.&amp;nbsp; For example: to enable integration with the feature to check for forbidden terms, remember to include the &lt;em&gt;DescriptiveField &lt;/em&gt;at the &lt;em&gt;TermLevel &lt;/em&gt;as shown here (e.g. var statusField)&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;img style="max-height:600px;max-width:900px;" alt=" " src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615545981v2.png" /&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public Definition Definition =&amp;gt; new Definition(GetDescriptiveFields(), GetDefinitionLanguages());
 
    public IList&amp;lt;DescriptiveField&amp;gt; GetDescriptiveFields()
    {
        var result = new List&amp;lt;DescriptiveField&amp;gt;();
 
        var definitionField = new DescriptiveField
        {
            Label = &amp;quot;Definition&amp;quot;, Level = FieldLevel.EntryLevel, Mandatory = true, Multiple = true,
            Type = FieldType.String
        };
        result.Add(definitionField);
 
        var statusField = new DescriptiveField
        {
            Label = &amp;quot;Status&amp;quot;, Level = FieldLevel.TermLevel, Mandatory = false, Multiple = true,
            Type = FieldType.PickList,
            PickListValues = new[] { &amp;quot;Deprecated&amp;quot;, &amp;quot;Obsolete&amp;quot;, &amp;quot;Admitted&amp;quot;, &amp;quot;Preferred&amp;quot;, &amp;quot;Proposed&amp;quot; }
        };
        result.Add(statusField);
 
        return result;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public IList&amp;lt;DefinitionLanguage&amp;gt; GetDefinitionLanguages()
{
    var result = new List&amp;lt;DefinitionLanguage&amp;gt;();
 
    var currentProject = SdlTradosStudio.Application?.GetController&amp;lt;ProjectsController&amp;gt;()?.CurrentProject;
    if (currentProject == null) return result;
 
    var projectInfo = currentProject.GetProjectInfo();
 
    result.Add(new DefinitionLanguage
    {
        Locale = projectInfo.SourceLanguage.CultureInfo,
        Name = projectInfo.SourceLanguage.DisplayName
    });
 
    result.AddRange(projectInfo.TargetLanguages.Select(language =&amp;gt; new DefinitionLanguage
    {
        Locale = language.CultureInfo,
        Name = language.DisplayName
    }));
 
    return result;
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProviderWinFormsUI"&gt;ITerminologyProviderWinFormsUI&lt;/h3&gt;
&lt;p&gt;You will noticed that the property &lt;em&gt;SupportsEditing &lt;/em&gt;&amp;amp; the method &lt;em&gt;Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)&lt;/em&gt; have been removed from the &lt;em&gt;ITerminologyProviderWinFormsUI&lt;/em&gt; interface.&amp;nbsp; If your provider allows a user to edit the provider settings by displaying a settings dialog, then implement the new interface &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit. &lt;/em&gt;Additionally, the new interface&amp;nbsp;&lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt; introduces a new extensibility point that will display a context menu item in the &lt;strong&gt;Create &lt;/strong&gt;button from the Terminology Provider Settings in Trados Studio.&amp;nbsp; This is useful for use cases where the creation of the provider needs to be a separate to the edit settings dialogs.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;[TerminologyProviderWinFormsUI]
public class MyTerminologyProviderWinFormsUI : ITerminologyProviderWinFormsUIWithEdit, ITerminologyProviderWinFormsUIWithCreate
{
    public ITerminologyProvider Create()
    {
        // Adds the capability to create a ITerminologyProvider.
        // Allows the creation of an ITerminologyProvider from the UI.It returns a ITerminologyProvider
        return null;
    }
 
    public bool Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)
    {
        // Adds the capability to edit settings.
        // Used to display a dialog to interactively change any of the terminology provider settings.
        return true;
    }
 
    public ITerminologyProvider[] Browse(IWin32Window owner, ITerminologyProviderCredentialStore credentialStore)
    {
        // Adds the capability to select a ITerminologyProvider.
        // Used to display a dialog to add a new terminology provider.
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-PluginManifest"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version: &lt;em&gt;17.2&lt;/em&gt;. If your plugin has been updated to support these latest changes to the Terminology Provider API, then you should reflect this by setting the minimum supported version of your plugin to &lt;em&gt;17.2&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version: &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name:: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.2&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.1, has been released to support the latest version of Trados Studio 2022 SR1+.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve these references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;NetFx40_PInvokeStackResilience enabled=&amp;quot;1&amp;quot; /&amp;gt;
    &amp;lt;legacyCorruptedStateExceptionsPolicy enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;ThrowUnobservedTaskException enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Extensions.DependencyModel&amp;quot; publicKeyToken=&amp;quot;adb9793829ddae60&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-6.0.0.0&amp;quot; newVersion=&amp;quot;6.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.2&amp;quot; newVersion=&amp;quot;4.0.1.2&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR2</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6743/how-to-update-plugins-to-trados-studio-2022-sr2/revision/1</link><pubDate>Fri, 10 Nov 2023 11:27:43 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:6b7e147c-62e9-44ac-9849-a5bca64f0282</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Revision 1 posted to Studio Developers WIKI by Patrick Andrew Hartnett on 11/10/2023 11:27:43 AM&lt;br /&gt;
&lt;p&gt;There will be significant changes to the Terminology provider API with the release of Trados Studio SR2.&amp;nbsp; These changes are all geared towards decoupling the Multiterm integration from Trados Studio to promote independent development cycles and reduce the risk of compatibility issues. This means that updates, bug fixes, and new features can be developed and released separately and lead to faster development cycles for each product.&lt;/p&gt;
&lt;p&gt;Unfortunately, this will introduce breaking changes for plugin and project automation integrations with the Terminology provider API&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-TerminologyProviderAPI"&gt;Terminology Provider API&lt;/h2&gt;
&lt;p&gt;Make reference to the &lt;a class="external-link" href="https://developers.rws.com/studio-api-docs/apiconcepts/releasenotes/tradosstudio2022sr2.html" rel="nofollow"&gt;release notes for Trados Studio SR2&lt;/a&gt; when updating your plugin integrations with the Terminology Provider API. It includes all of the API changes that will facilitate better management, customization, and extensibility of terminology providers, providing more flexibility and control for developers and users.&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Removed Classes and Interfaces&lt;/strong&gt;: Several classes and interfaces have been removed, such as &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt;, &lt;em&gt;IDefinition&lt;/em&gt;, &lt;em&gt;IDefinitionLanguage&lt;/em&gt;, and others.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updated Classes&lt;/strong&gt;: Major changes include the &lt;em&gt;Definition &lt;/em&gt;class, &lt;em&gt;Entry&lt;/em&gt;, &lt;em&gt;EntryField&lt;/em&gt;, &lt;em&gt;EntryLanguage&lt;/em&gt;, and others. These updates involve changes in property types, constructors, and interfaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TerminologyProviderManager&lt;/strong&gt;: Now implements &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, offering new methods for managing terminology providers, such as &lt;em&gt;RemoveTerminologyProvider&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ITerminologyProvider Updates&lt;/strong&gt;: The &lt;em&gt;ITerminologyProvider &lt;/em&gt;interface has several new properties and methods for managing active filters, initialization, and more. The type of returned values for methods like &lt;em&gt;GetEntry &lt;/em&gt;and &lt;em&gt;Search&lt;/em&gt;&lt;strong&gt; &lt;/strong&gt;has changed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Interfaces&lt;/strong&gt;: Several new interfaces have been added, including &lt;em&gt;ITerminologyProviderManager&lt;/em&gt;, &lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt;, and &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;A full integration of these new changes to the Terminology Provider API are available from the &lt;a class="external-link" href="https://github.com/RWS/Sdl-Community/tree/master/IATETerminologyProvider" rel="nofollow"&gt;IATE Terminology Provider&lt;/a&gt; for reference.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProvider"&gt;ITerminologyProvider&lt;/h3&gt;
&lt;p&gt;The &lt;em&gt;AbstractTerminologyProvider&lt;/em&gt; is no longer available &amp;amp; in its place you must implement the &lt;em&gt;ITerminologyProvider&lt;/em&gt; interface, which has some new properties &amp;amp; methods such as &lt;em&gt;ActiveFilter { get; set; }&lt;/em&gt; &amp;amp; associated method &lt;em&gt;GetFilters()&lt;/em&gt; that enable a user to add filters to restrict the results that provider displays when searching a termbase during translation.&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:600px;max-width:900px;" src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615497862v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public FilterDefinition ActiveFilter { get; set; }
 
    public IList&amp;lt;FilterDefinition&amp;gt; GetFilters()
    {
        var filterDefinitions = new List&amp;lt;FilterDefinition&amp;gt;();
        var filterDefinition = new FilterDefinition { ID = 0, Name = &amp;quot;Source contains synonyms&amp;quot; };
        filterDefinitions.Add(filterDefinition);
 
        return filterDefinitions;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Definition"&gt;Definition&lt;/h3&gt;
&lt;p class="auto-cursor-target"&gt;Its important to fully describe the &lt;em&gt;DescriptiveFields &lt;/em&gt;to the &lt;em&gt;Definition&lt;/em&gt; property of the provider to provide sufficient information when integrating with other services, such as the &lt;strong&gt;Terminology Verifier&lt;/strong&gt;.&amp;nbsp; For example: to enable integration with the feature to check for forbidden terms, remember to include the &lt;em&gt;DescriptiveField &lt;/em&gt;at the &lt;em&gt;TermLevel &lt;/em&gt;as shown here (e.g. var statusField)&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;img style="max-height:600px;max-width:900px;" src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1699615545981v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class IATETerminologyProvider : ITerminologyProvider
{
    public Definition Definition =&amp;gt; new Definition(GetDescriptiveFields(), GetDefinitionLanguages());
 
    public IList&amp;lt;DescriptiveField&amp;gt; GetDescriptiveFields()
    {
        var result = new List&amp;lt;DescriptiveField&amp;gt;();
 
        var definitionField = new DescriptiveField
        {
            Label = &amp;quot;Definition&amp;quot;, Level = FieldLevel.EntryLevel, Mandatory = true, Multiple = true,
            Type = FieldType.String
        };
        result.Add(definitionField);
 
        var statusField = new DescriptiveField
        {
            Label = &amp;quot;Status&amp;quot;, Level = FieldLevel.TermLevel, Mandatory = false, Multiple = true,
            Type = FieldType.PickList,
            PickListValues = new[] { &amp;quot;Deprecated&amp;quot;, &amp;quot;Obsolete&amp;quot;, &amp;quot;Admitted&amp;quot;, &amp;quot;Preferred&amp;quot;, &amp;quot;Proposed&amp;quot; }
        };
        result.Add(statusField);
 
        return result;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p class="auto-cursor-target"&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public IList&amp;lt;DefinitionLanguage&amp;gt; GetDefinitionLanguages()
{
    var result = new List&amp;lt;DefinitionLanguage&amp;gt;();
 
    var currentProject = SdlTradosStudio.Application?.GetController&amp;lt;ProjectsController&amp;gt;()?.CurrentProject;
    if (currentProject == null) return result;
 
    var projectInfo = currentProject.GetProjectInfo();
 
    result.Add(new DefinitionLanguage
    {
        Locale = projectInfo.SourceLanguage.CultureInfo,
        Name = projectInfo.SourceLanguage.DisplayName
    });
 
    result.AddRange(projectInfo.TargetLanguages.Select(language =&amp;gt; new DefinitionLanguage
    {
        Locale = language.CultureInfo,
        Name = language.DisplayName
    }));
 
    return result;
}&lt;/pre&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-ITerminologyProviderWinFormsUI"&gt;ITerminologyProviderWinFormsUI&lt;/h3&gt;
&lt;p&gt;You will noticed that the property &lt;em&gt;SupportsEditing &lt;/em&gt;&amp;amp; the method &lt;em&gt;Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)&lt;/em&gt; have been removed from the &lt;em&gt;ITerminologyProviderWinFormsUI&lt;/em&gt; interface.&amp;nbsp; If your provider allows a user to edit the provider settings by displaying a settings dialog, then implement the new interface &lt;em&gt;ITerminologyProviderWinFormsUIWithEdit. &lt;/em&gt;Additionally, the new interface&amp;nbsp;&lt;em&gt;ITerminologyProviderWinFormsUIWithCreate&lt;/em&gt; introduces a new extensibility point that will display a context menu item in the &lt;strong&gt;Create &lt;/strong&gt;button from the Terminology Provider Settings in Trados Studio.&amp;nbsp; This is useful for use cases where the creation of the provider needs to be a separate to the edit settings dialogs.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;[TerminologyProviderWinFormsUI]
public class MyTerminologyProviderWinFormsUI : ITerminologyProviderWinFormsUIWithEdit, ITerminologyProviderWinFormsUIWithCreate
{
    public ITerminologyProvider Create()
    {
        // Adds the capability to create a ITerminologyProvider.
        // Allows the creation of an ITerminologyProvider from the UI.It returns a ITerminologyProvider
        return null;
    }
 
    public bool Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)
    {
        // Adds the capability to edit settings.
        // Used to display a dialog to interactively change any of the terminology provider settings.
        return true;
    }
 
    public ITerminologyProvider[] Browse(IWin32Window owner, ITerminologyProviderCredentialStore credentialStore)
    {
        // Adds the capability to select a ITerminologyProvider.
        // Used to display a dialog to add a new terminology provider.
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-PluginManifest"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version: &lt;em&gt;17.2&lt;/em&gt;. If your plugin has been updated to support these latest changes to the Terminology Provider API, then you should reflect this by setting the minimum supported version of your plugin to &lt;em&gt;17.2&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version: &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name:: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.2&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR2Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration.&lt;/p&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.1, has been released to support the latest version of Trados Studio 2022 SR1+.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="Studio2022SR2Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve these references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;NetFx40_PInvokeStackResilience enabled=&amp;quot;1&amp;quot; /&amp;gt;
    &amp;lt;legacyCorruptedStateExceptionsPolicy enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;ThrowUnobservedTaskException enabled=&amp;quot;true&amp;quot; /&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Extensions.DependencyModel&amp;quot; publicKeyToken=&amp;quot;adb9793829ddae60&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-6.0.0.0&amp;quot; newVersion=&amp;quot;6.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.2&amp;quot; newVersion=&amp;quot;4.0.1.2&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Trados Studio API</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api</link><pubDate>Fri, 04 Aug 2023 15:58:42 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:f2a099b7-5e54-408e-b45e-171697bc5a27</guid><dc:creator>Paul</dc:creator><description>Current Revision posted to Studio Developers WIKI by Paul on 8/4/2023 3:58:42 PM&lt;br /&gt;
&lt;h1&gt;Trados Studio&amp;nbsp;API Developers Community Wiki&lt;/h1&gt;
&lt;p&gt;Welcome to the Wiki of the&amp;nbsp;Trados Studio API Developers Community! This knowledge-base&amp;nbsp;has ambitions to become a comprehensive resource designed to support your journey with the&amp;nbsp;Trados Studio API development. Whether you&amp;#39;re a seasoned developer or new to the ecosystem, we want this wiki&amp;nbsp;to be here to provide guidance, helpful tips, and technical insights.&lt;/p&gt;
&lt;p&gt;Join us in this collaborative endeavour to learn, develop, and innovate together. We look forward to learning from you what we should have in this wiki, and also to accepting any interesting contributions you&amp;#39;d like to make yourselves.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Developer Licences</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6716/developer-licences</link><pubDate>Fri, 04 Aug 2023 11:11:15 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:05ca5826-32b2-4062-89a4-32eb662ad3c3</guid><dc:creator>Paul</dc:creator><description>Current Revision posted to Studio Developers WIKI by Paul on 8/4/2023 11:11:15 AM&lt;br /&gt;
&lt;h1 id="mcetoc_1h70305r30"&gt;Requesting a Developer License for Trados Studio&lt;/h1&gt;
&lt;h2 id="mcetoc_1h70305r31"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Trados Studio, a part of the&amp;nbsp;Trados portfolio, is a leading translation software in the language industry. It provides tools and features that enable users to manage, translate, and review their translation projects efficiently. To expand on its capabilities, Trados offers developer licenses that allow users to create customized solutions to further enhance the Trados experience.&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r32"&gt;Types of Licenses&lt;/h2&gt;
&lt;p&gt;There are two primary types of licenses offered by Trados:&lt;/p&gt;
&lt;p&gt;1. &lt;strong&gt;Desktop License&lt;/strong&gt;&amp;nbsp;for Trados Studio: This allows you to utilize the full functionality of the Trados Studio software on a single computer.&lt;/p&gt;
&lt;p&gt;2. &lt;strong&gt;Cloud License&lt;/strong&gt; for Trados Team or Enterprise solutions: This allows you to use Trados in a cloud-based environment, facilitating team collaboration and streamlining project management.&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r33"&gt;Requesting a Developer License&lt;/h2&gt;
&lt;p&gt;To request a developer license, you need to provide certain information to help Trados better understand your needs and potential contributions. The information includes:&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;Full name and address&lt;/strong&gt;: This is necessary for identification and communication purposes.&lt;br /&gt;- &lt;strong&gt;Reason for requesting a dev license&lt;/strong&gt;: Please explain your intended use of the developer license and how it will add value to your work or the Trados community.&lt;br /&gt;- &lt;strong&gt;Affiliated company and contact person&lt;/strong&gt;: If applicable, please specify the company you are working for and who the contact person would be. This information is particularly crucial if you&amp;#39;re representing an existing customer.&lt;/p&gt;
&lt;p&gt;Please note that Trados does not grant developer licenses indiscriminately. The request will be evaluated based on the valid reasons and potential benefits provided in your application.&amp;nbsp; To apply click on the link available &lt;a href="/developers-more/trados-portfolio/trados-studio-developers/" rel="noopener noreferrer" target="_blank"&gt;on this page&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href="/developers-more/trados-portfolio/trados-studio-developers/" rel="noopener noreferrer" target="_blank"&gt;&lt;img style="max-height:59px;max-width:289px;" alt=" " src="/resized-image/__size/578x118/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1691146620710v1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r34"&gt;Intended Solutions and Pricing&lt;/h2&gt;
&lt;p&gt;In your request, please specify whether you plan to offer any solutions developed using the dev license on the AppStore. Also, clarify whether you plan to charge for these solutions. This information is essential for us to understand the potential impact and reach of your proposed project.&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r35"&gt;Technology Partner Programme&lt;/h2&gt;
&lt;p&gt;Depending on the details you provide in your request, it may be appropriate to consider you for our Technology Partner Programme. This programme is designed to establish collaborations with tech-based entities to co-create advanced solutions for the language industry. Your details may be provided to our Technology Partner Manager, who will then reach out to explore potential collaborations.&lt;/p&gt;
&lt;p&gt;By providing accurate and detailed information in your request, you will help us make an informed decision regarding your developer license. We are looking forward to the innovative solutions you aim to develop and the potential positive impacts these could bring to the Trados community.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Developer Licences</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6716/developer-licences/revision/4</link><pubDate>Fri, 04 Aug 2023 10:57:44 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:05ca5826-32b2-4062-89a4-32eb662ad3c3</guid><dc:creator>Paul</dc:creator><description>Revision 4 posted to Studio Developers WIKI by Paul on 8/4/2023 10:57:44 AM&lt;br /&gt;
&lt;h1 id="mcetoc_1h70305r30"&gt;Requesting a Developer License for Trados Studio&lt;/h1&gt;
&lt;h2 id="mcetoc_1h70305r31"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Trados Studio, a part of the Language Cloud portfolio, is a leading translation software in the language industry. It provides tools and features that enable users to manage, translate, and review their translation projects efficiently. To expand on its capabilities, Trados offers developer licenses that allow users to create customized solutions to further enhance the Trados experience.&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r32"&gt;Types of Licenses&lt;/h2&gt;
&lt;p&gt;There are two primary types of licenses offered by Trados:&lt;/p&gt;
&lt;p&gt;1. &lt;strong&gt;Desktop License&lt;/strong&gt;&amp;nbsp;for Trados Studio: This allows you to utilize the full functionality of the Trados Studio software on a single computer.&lt;/p&gt;
&lt;p&gt;2. &lt;strong&gt;Cloud License&lt;/strong&gt; for Trados Team or Enterprise solutions: This allows you to use Trados Studio in a cloud-based environment, facilitating team collaboration and streamlining project management.&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r33"&gt;Requesting a Developer License&lt;/h2&gt;
&lt;p&gt;To request a developer license, you need to provide certain information to help Trados better understand your needs and potential contributions. The information includes:&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;Full name and address&lt;/strong&gt;: This is necessary for identification and communication purposes.&lt;br /&gt;- &lt;strong&gt;Reason for requesting a dev license&lt;/strong&gt;: Please explain your intended use of the developer license and how it will add value to your work or the Trados community.&lt;br /&gt;- &lt;strong&gt;Affiliated company and contact person&lt;/strong&gt;: If applicable, please specify the company you are working for and who the contact person would be. This information is particularly crucial if you&amp;#39;re representing an existing customer.&lt;/p&gt;
&lt;p&gt;Please note that Trados does not grant developer licenses indiscriminately. The request will be evaluated based on the valid reasons and potential benefits provided in your application.&amp;nbsp; To apply click on the link available &lt;a href="/developers-more/trados-portfolio/trados-studio-developers/" rel="noopener noreferrer" target="_blank"&gt;on this page&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href="/developers-more/trados-portfolio/trados-studio-developers/" rel="noopener noreferrer" target="_blank"&gt;&lt;img style="max-height:59px;max-width:289px;" alt=" " src="/resized-image/__size/578x118/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1691146620710v1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r34"&gt;Intended Solutions and Pricing&lt;/h2&gt;
&lt;p&gt;In your request, please specify whether you plan to offer any solutions developed using the dev license on the AppStore. Also, clarify whether you plan to charge for these solutions. This information is essential for us to understand the potential impact and reach of your proposed project.&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r35"&gt;Technology Partner Programme&lt;/h2&gt;
&lt;p&gt;Depending on the details you provide in your request, it may be appropriate to consider you for our Technology Partner Programme. This programme is designed to establish collaborations with tech-based entities to co-create advanced solutions for the language industry. Your details may be provided to our Technology Partner Manager, who will then reach out to explore potential collaborations.&lt;/p&gt;
&lt;p&gt;By providing accurate and detailed information in your request, you will help us make an informed decision regarding your developer license. We are looking forward to the innovative solutions you aim to develop and the potential positive impacts these could bring to the Trados community.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Developer Licences</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6716/developer-licences/revision/3</link><pubDate>Fri, 04 Aug 2023 10:56:42 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:05ca5826-32b2-4062-89a4-32eb662ad3c3</guid><dc:creator>Paul</dc:creator><description>Revision 3 posted to Studio Developers WIKI by Paul on 8/4/2023 10:56:42 AM&lt;br /&gt;
&lt;h1 id="mcetoc_1h70305r30"&gt;Requesting a Developer License for Trados Studio&lt;/h1&gt;
&lt;h2 id="mcetoc_1h70305r31"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Trados Studio, a part of the Language Cloud portfolio, is a leading translation software in the language industry. It provides tools and features that enable users to manage, translate, and review their translation projects efficiently. To expand on its capabilities, Trados offers developer licenses that allow users to create customized solutions to further enhance the Trados experience.&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r32"&gt;Types of Licenses&lt;/h2&gt;
&lt;p&gt;There are two primary types of licenses offered by Trados:&lt;/p&gt;
&lt;p&gt;1. &lt;strong&gt;Desktop License&lt;/strong&gt;&amp;nbsp;for Trados Studio: This allows you to utilize the full functionality of the Trados Studio software on a single computer.&lt;/p&gt;
&lt;p&gt;2. &lt;strong&gt;Cloud License&lt;/strong&gt; for Trados Team or Enterprise solutions: This allows you to use Trados Studio in a cloud-based environment, facilitating team collaboration and streamlining project management.&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r33"&gt;Requesting a Developer License&lt;/h2&gt;
&lt;p&gt;To request a developer license, you need to provide certain information to help Trados better understand your needs and potential contributions. The information includes:&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;Full name and address&lt;/strong&gt;: This is necessary for identification and communication purposes.&lt;br /&gt;- &lt;strong&gt;Reason for requesting a dev license&lt;/strong&gt;: Please explain your intended use of the developer license and how it will add value to your work or the Trados community.&lt;br /&gt;- &lt;strong&gt;Affiliated company and contact person&lt;/strong&gt;: If applicable, please specify the company you are working for and who the contact person would be. This information is particularly crucial if you&amp;#39;re representing an existing customer.&lt;/p&gt;
&lt;p&gt;Please note that Trados does not grant developer licenses indiscriminately. The request will be evaluated based on the valid reasons and potential benefits provided in your application.&amp;nbsp; To apply click on the link available &lt;a href="/developers-more/trados-portfolio/trados-studio-developers/" rel="noopener noreferrer" target="_blank"&gt;on this page&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:600px;max-width:900px;" src="/resized-image/__size/1800x1200/__key/communityserver-wikis-components-files/00-00-00-03-50/pastedimage1691146620710v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r34"&gt;Intended Solutions and Pricing&lt;/h2&gt;
&lt;p&gt;In your request, please specify whether you plan to offer any solutions developed using the dev license on the AppStore. Also, clarify whether you plan to charge for these solutions. This information is essential for us to understand the potential impact and reach of your proposed project.&lt;/p&gt;
&lt;h2 id="mcetoc_1h70305r35"&gt;Technology Partner Programme&lt;/h2&gt;
&lt;p&gt;Depending on the details you provide in your request, it may be appropriate to consider you for our Technology Partner Programme. This programme is designed to establish collaborations with tech-based entities to co-create advanced solutions for the language industry. Your details may be provided to our Technology Partner Manager, who will then reach out to explore potential collaborations.&lt;/p&gt;
&lt;p&gt;By providing accurate and detailed information in your request, you will help us make an informed decision regarding your developer license. We are looking forward to the innovative solutions you aim to develop and the potential positive impacts these could bring to the Trados community.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Developer Licences</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6716/developer-licences/revision/2</link><pubDate>Fri, 04 Aug 2023 10:50:45 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:05ca5826-32b2-4062-89a4-32eb662ad3c3</guid><dc:creator>Paul</dc:creator><description>Revision 2 posted to Studio Developers WIKI by Paul on 8/4/2023 10:50:45 AM&lt;br /&gt;
&lt;h1&gt;Requesting a Developer License for Trados Studio&lt;/h1&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Trados Studio, a part of the Language Cloud portfolio, is a leading translation software in the language industry. It provides tools and features that enable users to manage, translate, and review their translation projects efficiently. To expand on its capabilities, Trados offers developer licenses that allow users to create customized solutions to further enhance the Trados experience.&lt;/p&gt;
&lt;h2&gt;Types of Licenses&lt;/h2&gt;
&lt;p&gt;There are two primary types of licenses offered by Trados:&lt;/p&gt;
&lt;p&gt;1. &lt;strong&gt;Desktop License&lt;/strong&gt;&amp;nbsp;for Trados Studio: This allows you to utilize the full functionality of the Trados Studio software on a single computer.&lt;/p&gt;
&lt;p&gt;2. &lt;strong&gt;Cloud License&lt;/strong&gt; for Trados Team or Enterprise solutions: This allows you to use Trados Studio in a cloud-based environment, facilitating team collaboration and streamlining project management.&lt;/p&gt;
&lt;h2&gt;Requesting a Developer License&lt;/h2&gt;
&lt;p&gt;To request a developer license, you need to provide certain information to help Trados better understand your needs and potential contributions. The information includes:&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;Full name and address&lt;/strong&gt;: This is necessary for identification and communication purposes.&lt;br /&gt;- &lt;strong&gt;Reason for requesting a dev license&lt;/strong&gt;: Please explain your intended use of the developer license and how it will add value to your work or the Trados community.&lt;br /&gt;- &lt;strong&gt;Affiliated company and contact person&lt;/strong&gt;: If applicable, please specify the company you are working for and who the contact person would be. This information is particularly crucial if you&amp;#39;re representing an existing customer.&lt;/p&gt;
&lt;p&gt;Please note that Trados does not grant developer licenses indiscriminately. The request will be evaluated based on the valid reasons and potential benefits provided in your application.&lt;/p&gt;
&lt;h2&gt;Intended Solutions and Pricing&lt;/h2&gt;
&lt;p&gt;In your request, please specify whether you plan to offer any solutions developed using the dev license on the AppStore. Also, clarify whether you plan to charge for these solutions. This information is essential for us to understand the potential impact and reach of your proposed project.&lt;/p&gt;
&lt;h2&gt;Technology Partner Programme&lt;/h2&gt;
&lt;p&gt;Depending on the details you provide in your request, it may be appropriate to consider you for our Technology Partner Programme. This programme is designed to establish collaborations with tech-based entities to co-create advanced solutions for the language industry. Your details may be provided to our Technology Partner Manager, who will then reach out to explore potential collaborations.&lt;/p&gt;
&lt;p&gt;By providing accurate and detailed information in your request, you will help us make an informed decision regarding your developer license. We are looking forward to the innovative solutions you aim to develop and the potential positive impacts these could bring to the Trados community.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Developer Licences</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6716/developer-licences/revision/1</link><pubDate>Fri, 04 Aug 2023 10:40:16 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:05ca5826-32b2-4062-89a4-32eb662ad3c3</guid><dc:creator>Paul</dc:creator><description>Revision 1 posted to Studio Developers WIKI by Paul on 8/4/2023 10:40:16 AM&lt;br /&gt;
&lt;p&gt;dd&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Knowledgebase</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/5312/knowledgebase</link><pubDate>Thu, 03 Aug 2023 07:28:00 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:24c9616a-9612-4a78-b526-c4af5a3d481e</guid><dc:creator>Georgiana Iancu</dc:creator><description>Current Revision posted to Studio Developers WIKI by Georgiana Iancu on 8/3/2023 7:28:00 AM&lt;br /&gt;
&lt;p&gt;Articles related to Trados Studio&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Trados Studio API</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6708/defaultwikipage/revision/1</link><pubDate>Wed, 02 Aug 2023 14:20:32 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:f2a099b7-5e54-408e-b45e-171697bc5a27</guid><dc:creator>Georgiana Iancu</dc:creator><description>Revision 1 posted to Studio Developers WIKI by Georgiana Iancu on 8/2/2023 2:20:32 PM&lt;br /&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR1</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6683/how-to-update-plugins-to-trados-studio-2022-sr1</link><pubDate>Wed, 26 Jul 2023 16:57:38 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:940d46e5-dd57-4023-a6a4-560bc46c8c34</guid><dc:creator>Paul</dc:creator><description>Current Revision posted to Studio Developers WIKI by Paul on 7/26/2023 4:57:38 PM&lt;br /&gt;
&lt;p&gt;In an effort to achieve consistent behaviour across a range of platforms and applications, some changes have been made to control the way in which language metadata is used in our software.&amp;nbsp; These changes may affect your plugin or application integration with the public APIs, especially if &lt;em&gt;Sdl.Core.Globalization.Language&lt;/em&gt; referenced in the project.&lt;/p&gt;
&lt;p&gt;The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR1&lt;/p&gt;
&lt;div class="table-of-contents"&gt;
&lt;h2&gt;Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#mcetoc_1h25938gm0"&gt;Plugin Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-ProjectReferences"&gt;Project References&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-LanguageRegistryAPI"&gt;Language Registry API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mcetoc_1h69i5cqj0"&gt;Known Issues&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (formally SDL.Community.Toolkit)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1h25938gm0"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version should be set to: &lt;em&gt;17.1&lt;/em&gt;. If your plugin has been updated to support this latest release of Trados Studio, then you should reflect this by setting the minimum supported version to &lt;em&gt;17.1&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version should be set to &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name should be set to: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;br /&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.1&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;
&lt;div id="highlighter_530373" class="syntaxhighlighter sh-default nogutter  xml"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-ProjectReferences"&gt;Project References&lt;/h2&gt;
&lt;p&gt;The following changes should be applied in the project file (.csproj)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p class="auto-cursor-target"&gt;Add a reference to &lt;strong&gt;&lt;em&gt;Sdl.Core.Globalization.Async&lt;/em&gt;&lt;/strong&gt;, if your code is making reference to&lt;em&gt; Sdl.Core.Globalization.Language &lt;br /&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;Reference Include=&amp;quot;Sdl.Core.Globalization.Async&amp;quot;&amp;gt;
    &amp;lt;HintPath&amp;gt;$(MSBuildProgramFiles32)\Trados\Trados Studio\Studio17\Sdl.Core.Globalization.Async.dll&amp;lt;/HintPath&amp;gt;
&amp;lt;/Reference&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Note&lt;/strong&gt;: it is recommended that you use the reserved and well-known MSBuild property &lt;em&gt;$(&lt;strong&gt;MSBuildProgramFiles32&lt;/strong&gt;)&lt;/em&gt; as opposed to &lt;em&gt;$(ProgramFiles)&lt;/em&gt; to define the location of the 32-bit program folder &lt;em&gt;C:\Program Files (x86)\&lt;/em&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;
&lt;div id="highlighter_369167" class="syntaxhighlighter sh-default nogutter  xml"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"&gt;&lt;span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"&gt;&lt;/span&gt;
&lt;div class="confluence-information-macro-body"&gt;To update settings directly in the project file from Visual Studio&lt;/div&gt;
&lt;ul&gt;
&lt;li class="confluence-information-macro-body"&gt;Right-click on the project node in the Solution Explorer and select Unload Project.&lt;/li&gt;
&lt;li class="confluence-information-macro-body"&gt;Then, right-click on the project and choose Edit &amp;lt;projectname&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you have applied your changes in the project file, then reload project&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the Solution Explorer, select the projects you want to load (press Ctrl while clicking to select more than one project)&lt;/li&gt;
&lt;li&gt;Then right-click on the project and choose Reload Project.&lt;/li&gt;
&lt;/ul&gt;
&lt;br class="confluence-information-macro-body" /&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-LanguageRegistryAPI"&gt;Language Registry API&lt;/h2&gt;
&lt;p&gt;Third party developers now have access to Trados Studio&amp;#39;s custom language registry, which offers finer control over language management than the language registry provided by Microsoft. Following this change, &lt;strong&gt;CultureCode &lt;/strong&gt;is now the recommended alternative to the standard CultureInfo.&lt;/p&gt;
&lt;p&gt;To ensure compatibility with Studio and other RWS system interfacing with Studio please recover the language info using our internal language registry&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;private CultureCode GetCultureCode(string cultureIsoCode)
{
    try
    {
        // Language registry contains all the languages that are supported in Studio               
        var language = LanguageRegistryApi.Instance.GetLanguage(cultureIsoCode);
        return new CultureCode(language.CultureInfo);
    }
    catch (UnsupportedLanguageException)
    {
        // In case the language is not supported an exception is thrown
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Use &lt;strong&gt;LanguageRegistryApi.Instance&lt;/strong&gt; to recover all langauges&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;private IList&amp;lt;Language&amp;gt; GetAllLanguages()
{  
    return LanguageRegistryApi.Instance.GetAllLanguages()
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;h2 id="mcetoc_1h69i5cqj0"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration&lt;/p&gt;
&lt;h3 id="Studio2022SR1Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.0, has been released to support the latest version of Trados Studio 2022 SR1.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR1Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve these references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup useLegacyV2RuntimeActivationPolicy=&amp;quot;true&amp;quot;&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.1&amp;quot; newVersion=&amp;quot;4.0.1.1&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;icu.net&amp;quot; publicKeyToken=&amp;quot;416fdd914afa6b66&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-2.7.0.0&amp;quot; newVersion=&amp;quot;2.7.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Trados Studio 2022 SR1&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR1</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6683/how-to-update-plugins-to-trados-studio-2022-sr1/revision/12</link><pubDate>Fri, 14 Jul 2023 14:26:39 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:940d46e5-dd57-4023-a6a4-560bc46c8c34</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Revision 12 posted to Studio Developers WIKI by Patrick Andrew Hartnett on 7/14/2023 2:26:39 PM&lt;br /&gt;
&lt;p&gt;In an effort to achieve consistent behaviour across a range of platforms and applications, some changes have been made to control the way in which language metadata is used in our software.&amp;nbsp; These changes may affect your plugin or application integration with the public APIs, especially if &lt;em&gt;Sdl.Core.Globalization.Language&lt;/em&gt; referenced in the project.&lt;/p&gt;
&lt;p&gt;The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR1&lt;/p&gt;
&lt;div class="table-of-contents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#mcetoc_1h25938gm0"&gt;Plugin Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-ProjectReferences"&gt;Project References&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-LanguageRegistryAPI"&gt;Language Registry API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1h25938gm0"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version should be set to: &lt;em&gt;17.1&lt;/em&gt;. If your plugin has been updated to support this latest release of Trados Studio, then you should reflect this by setting the minimum supported version to &lt;em&gt;17.1&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version should be set to &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name should be set to: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;br /&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.1&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;
&lt;div id="highlighter_530373" class="syntaxhighlighter sh-default nogutter  xml"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-ProjectReferences"&gt;Project References&lt;/h2&gt;
&lt;p&gt;The following changes should be applied in the project file (.csproj)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p class="auto-cursor-target"&gt;Add a reference to &lt;strong&gt;&lt;em&gt;Sdl.Core.Globalization.Async&lt;/em&gt;&lt;/strong&gt;, if your code is making reference to&lt;em&gt; Sdl.Core.Globalization.Language &lt;br /&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;Reference Include=&amp;quot;Sdl.Core.Globalization.Async&amp;quot;&amp;gt;
    &amp;lt;HintPath&amp;gt;$(MSBuildProgramFiles32)\Trados\Trados Studio\Studio17\Sdl.Core.Globalization.Async.dll&amp;lt;/HintPath&amp;gt;
&amp;lt;/Reference&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Note&lt;/strong&gt;: it is recommended that you use the reserved and well-known MSBuild property &lt;em&gt;$(&lt;strong&gt;MSBuildProgramFiles32&lt;/strong&gt;)&lt;/em&gt; as opposed to &lt;em&gt;$(ProgramFiles)&lt;/em&gt; to define the location of the 32-bit program folder &lt;em&gt;C:\Program Files (x86)\&lt;/em&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;
&lt;div id="highlighter_369167" class="syntaxhighlighter sh-default nogutter  xml"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"&gt;&lt;span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"&gt;&lt;/span&gt;
&lt;div class="confluence-information-macro-body"&gt;To update settings directly in the project file from Visual Studio&lt;/div&gt;
&lt;ul&gt;
&lt;li class="confluence-information-macro-body"&gt;Right-click on the project node in the Solution Explorer and select Unload Project.&lt;/li&gt;
&lt;li class="confluence-information-macro-body"&gt;Then, right-click on the project and choose Edit &amp;lt;projectname&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you have applied your changes in the project file, then reload project&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the Solution Explorer, select the projects you want to load (press Ctrl while clicking to select more than one project)&lt;/li&gt;
&lt;li&gt;Then right-click on the project and choose Reload Project.&lt;/li&gt;
&lt;/ul&gt;
&lt;br class="confluence-information-macro-body" /&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-LanguageRegistryAPI"&gt;Language Registry API&lt;/h2&gt;
&lt;p&gt;Third party developers now have access to Trados Studio&amp;#39;s custom language registry, which offers finer control over language management than the language registry provided by Microsoft. Following this change, &lt;strong&gt;CultureCode &lt;/strong&gt;is now the recommended alternative to the standard CultureInfo.&lt;/p&gt;
&lt;p&gt;To ensure compatibility with Studio and other RWS system interfacing with Studio please recover the language info using our internal language registry&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;private CultureCode GetCultureCode(string cultureIsoCode)
{
    try
    {
        // Language registry contains all the languages that are supported in Studio               
        var language = LanguageRegistryApi.Instance.GetLanguage(cultureIsoCode);
        return new CultureCode(language.CultureInfo);
    }
    catch (UnsupportedLanguageException)
    {
        // In case the language is not supported an exception is thrown
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Use &lt;strong&gt;LanguageRegistryApi.Instance&lt;/strong&gt; to recover all langauges&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;private IList&amp;lt;Language&amp;gt; GetAllLanguages()
{  
    return LanguageRegistryApi.Instance.GetAllLanguages()
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration&lt;/p&gt;
&lt;h3 id="Studio2022SR1Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.0, has been released to support the latest version of Trados Studio 2022 SR1.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR1Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve these references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup useLegacyV2RuntimeActivationPolicy=&amp;quot;true&amp;quot;&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.1&amp;quot; newVersion=&amp;quot;4.0.1.1&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;icu.net&amp;quot; publicKeyToken=&amp;quot;416fdd914afa6b66&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-2.7.0.0&amp;quot; newVersion=&amp;quot;2.7.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Trados Studio 2022 SR1&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR1</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6683/how-to-update-plugins-to-trados-studio-2022-sr1/revision/11</link><pubDate>Fri, 14 Jul 2023 14:25:19 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:940d46e5-dd57-4023-a6a4-560bc46c8c34</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Revision 11 posted to Studio Developers WIKI by Patrick Andrew Hartnett on 7/14/2023 2:25:19 PM&lt;br /&gt;
&lt;p&gt;In an effort to achieve consistent behaviour across a range of platforms and applications, some changes have been made to control the way in which language metadata is used in our software.&amp;nbsp; These changes may affect your plugin or application integration with the public APIs, especially if &lt;em&gt;Sdl.Core.Globalization.Language&lt;/em&gt; referenced in the project.&lt;/p&gt;
&lt;p&gt;The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR1&lt;/p&gt;
&lt;div class="table-of-contents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#mcetoc_1h25938gm0"&gt;Plugin Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-ProjectReferences"&gt;Project References&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-LanguageRegistryAPI"&gt;Language Registry API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1h25938gm0"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version should be set to: &lt;em&gt;17.1&lt;/em&gt;. If your plugin has been updated to support this latest release of Trados Studio, then you should reflect this by setting the minimum supported version to &lt;em&gt;17.1&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version should be set to &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name should be set to: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;br /&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.1&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;
&lt;div id="highlighter_530373" class="syntaxhighlighter sh-default nogutter  xml"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-ProjectReferences"&gt;Project References&lt;/h2&gt;
&lt;p&gt;The following changes should be applied in the project file (.csproj)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p class="auto-cursor-target"&gt;Add a reference to &lt;strong&gt;&lt;em&gt;Sdl.Core.Globalization.Async&lt;/em&gt;&lt;/strong&gt;, if your code is making reference to&lt;em&gt; Sdl.Core.Globalization.Language &lt;br /&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;Reference Include=&amp;quot;Sdl.Core.Globalization.Async&amp;quot;&amp;gt;
    &amp;lt;HintPath&amp;gt;$(MSBuildProgramFiles32)\Trados\Trados Studio\Studio17\Sdl.Core.Globalization.Async.dll&amp;lt;/HintPath&amp;gt;
&amp;lt;/Reference&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Note&lt;/strong&gt;: it is recommended that you use the reserved and well-known MSBuild property &lt;em&gt;$(&lt;strong&gt;MSBuildProgramFiles32&lt;/strong&gt;)&lt;/em&gt; as opposed to &lt;em&gt;$(ProgramFiles)&lt;/em&gt; to define the location of the 32-bit program folder &lt;em&gt;C:\Program Files (x86)\&lt;/em&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;
&lt;div id="highlighter_369167" class="syntaxhighlighter sh-default nogutter  xml"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"&gt;&lt;span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"&gt;&lt;/span&gt;
&lt;div class="confluence-information-macro-body"&gt;To update settings directly in the project file from Visual Studio&lt;/div&gt;
&lt;ul&gt;
&lt;li class="confluence-information-macro-body"&gt;Right-click on the project node in the Solution Explorer and select Unload Project.&lt;/li&gt;
&lt;li class="confluence-information-macro-body"&gt;Then, right-click on the project and choose Edit &amp;lt;projectname&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you have applied your changes in the project file, then reload project&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the Solution Explorer, select the projects you want to load (press Ctrl while clicking to select more than one project)&lt;/li&gt;
&lt;li&gt;Then right-click on the project and choose Reload Project.&lt;/li&gt;
&lt;/ul&gt;
&lt;br class="confluence-information-macro-body" /&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-LanguageRegistryAPI"&gt;Language Registry API&lt;/h2&gt;
&lt;p&gt;Third party developers now have access to Trados Studio&amp;#39;s custom language registry, which offers finer control over language management than the language registry provided by Microsoft. Following this change, &lt;strong&gt;CultureCode &lt;/strong&gt;is now the recommended alternative to the standard CultureInfo.&lt;/p&gt;
&lt;p&gt;To ensure compatibility with Studio and other RWS system interfacing with Studio please recover the language info using our internal language registry&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;private CultureCode GetCultureCode(string cultureIsoCode)
{
    try
    {
        // Language registry contains all the languages that are supported in Studio               
        var language = LanguageRegistryApi.Instance.GetLanguage(cultureIsoCode);
        return new CultureCode(language.CultureInfo);
    }
    catch (UnsupportedLanguageException)
    {
        // In case the language is not supported an exception is thrown
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Use &lt;strong&gt;LanguageRegistryApi.Instance&lt;/strong&gt; to recover all langauges&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;private IList&amp;lt;Language&amp;gt; GetAllLanguages()
{  
    return LanguageRegistryApi.Instance.GetAllLanguages()
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration&lt;/p&gt;
&lt;h3 id="Studio2022SR1Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.0, has been released to support the latest version of Trados Studio 2022 SR1.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR1Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve the references, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup useLegacyV2RuntimeActivationPolicy=&amp;quot;true&amp;quot;&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.1&amp;quot; newVersion=&amp;quot;4.0.1.1&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;icu.net&amp;quot; publicKeyToken=&amp;quot;416fdd914afa6b66&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-2.7.0.0&amp;quot; newVersion=&amp;quot;2.7.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Trados Studio 2022 SR1&lt;/div&gt;
</description></item><item><title>How to update plugins to Trados Studio 2022 SR1</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/w/trados-studio-api/6683/how-to-update-plugins-to-trados-studio-2022-sr1/revision/10</link><pubDate>Fri, 14 Jul 2023 13:27:22 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:940d46e5-dd57-4023-a6a4-560bc46c8c34</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><description>Revision 10 posted to Studio Developers WIKI by Patrick Andrew Hartnett on 7/14/2023 1:27:22 PM&lt;br /&gt;
&lt;p&gt;In an effort to achieve consistent behaviour across a range of platforms and applications, some changes have been made to control the way in which language metadata is used in our software.&amp;nbsp; These changes may affect your plugin or application integration with the public APIs, especially if &lt;em&gt;Sdl.Core.Globalization.Language&lt;/em&gt; referenced in the project.&lt;/p&gt;
&lt;p&gt;The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2022 SR1&lt;/p&gt;
&lt;div class="table-of-contents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#mcetoc_1h25938gm0"&gt;Plugin Manifest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-ProjectReferences"&gt;Project References&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#Studio2022SR1Howtoupdateplugins-LanguageRegistryAPI"&gt;Language Registry API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1h25938gm0"&gt;Plugin Manifest&lt;/h2&gt;
&lt;p&gt;The manifest file&amp;nbsp;&lt;strong&gt;pluginpackage.manifest.xml&lt;/strong&gt; is located at the root of your project solution.&amp;nbsp; The values of the &lt;strong&gt;RequiredProduct &lt;/strong&gt;should be updated to align with the latest release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RequiredProduct&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Min version should be set to: &lt;em&gt;17.1&lt;/em&gt;. If your plugin has been updated to support this latest release of Trados Studio, then you should reflect this by setting the minimum supported version to &lt;em&gt;17.1&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Max version should be set to &lt;em&gt;17.9&lt;/em&gt;. It is recommended to also set this value, as it will provide the AppStore with sufficient information in correctly identifying plugins that are compatible with the version of Trados Studio that is launched.&lt;/li&gt;
&lt;li&gt;Name should be set to: &lt;em&gt;TradosStudio&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;br /&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;PluginPackage xmlns=&amp;quot;http://www.sdl.com/Plugins/PluginPackage/1.0&amp;quot;&amp;gt;
  &amp;lt;PlugInName&amp;gt;My plugin name&amp;lt;/PlugInName&amp;gt;
  &amp;lt;Version&amp;gt;1.1.0.0&amp;lt;/Version&amp;gt;
  &amp;lt;Description&amp;gt;My plugin description&amp;lt;/Description&amp;gt;
  &amp;lt;Author&amp;gt;Trados AppStore Team&amp;lt;/Author&amp;gt;
  &amp;lt;RequiredProduct name=&amp;quot;TradosStudio&amp;quot; minversion=&amp;quot;17.1&amp;quot; maxversion=&amp;quot;17.9&amp;quot; /&amp;gt;
&amp;lt;/PluginPackage&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;
&lt;div id="highlighter_530373" class="syntaxhighlighter sh-default nogutter  xml"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-ProjectReferences"&gt;Project References&lt;/h2&gt;
&lt;p&gt;The following changes should be applied in the project file (.csproj)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p class="auto-cursor-target"&gt;Add a reference to &lt;strong&gt;&lt;em&gt;Sdl.Core.Globalization.Async&lt;/em&gt;&lt;/strong&gt;, if your code is making reference to&lt;em&gt; Sdl.Core.Globalization.Language &lt;br /&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;Reference Include=&amp;quot;Sdl.Core.Globalization.Async&amp;quot;&amp;gt;
    &amp;lt;HintPath&amp;gt;$(MSBuildProgramFiles32)\Trados\Trados Studio\Studio17\Sdl.Core.Globalization.Async.dll&amp;lt;/HintPath&amp;gt;
&amp;lt;/Reference&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Note&lt;/strong&gt;: it is recommended that you use the reserved and well-known MSBuild property &lt;em&gt;$(&lt;strong&gt;MSBuildProgramFiles32&lt;/strong&gt;)&lt;/em&gt; as opposed to &lt;em&gt;$(ProgramFiles)&lt;/em&gt; to define the location of the 32-bit program folder &lt;em&gt;C:\Program Files (x86)\&lt;/em&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;
&lt;div id="highlighter_369167" class="syntaxhighlighter sh-default nogutter  xml"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"&gt;&lt;span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"&gt;&lt;/span&gt;
&lt;div class="confluence-information-macro-body"&gt;To update settings directly in the project file from Visual Studio&lt;/div&gt;
&lt;ul&gt;
&lt;li class="confluence-information-macro-body"&gt;Right-click on the project node in the Solution Explorer and select Unload Project.&lt;/li&gt;
&lt;li class="confluence-information-macro-body"&gt;Then, right-click on the project and choose Edit &amp;lt;projectname&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once you have applied your changes in the project file, then reload project&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the Solution Explorer, select the projects you want to load (press Ctrl while clicking to select more than one project)&lt;/li&gt;
&lt;li&gt;Then right-click on the project and choose Reload Project.&lt;/li&gt;
&lt;/ul&gt;
&lt;br class="confluence-information-macro-body" /&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;div class="confluence-information-macro-body"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-LanguageRegistryAPI"&gt;Language Registry API&lt;/h2&gt;
&lt;p&gt;Third party developers now have access to Trados Studio&amp;#39;s custom language registry, which offers finer control over language management than the language registry provided by Microsoft. Following this change, &lt;strong&gt;CultureCode &lt;/strong&gt;is now the recommended alternative to the standard CultureInfo.&lt;/p&gt;
&lt;p&gt;To ensure compatibility with Studio and other RWS system interfacing with Studio please recover the language info using our internal language registry&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;private CultureCode GetCultureCode(string cultureIsoCode)
{
    try
    {
        // Language registry contains all the languages that are supported in Studio               
        var language = LanguageRegistryApi.Instance.GetLanguage(cultureIsoCode);
        return new CultureCode(language.CultureInfo);
    }
    catch (UnsupportedLanguageException)
    {
        // In case the language is not supported an exception is thrown
        return null;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;div class="code panel pdl conf-macro output-block" style="border-width:1px;" data-hasbody="true" data-macro-name="code"&gt;
&lt;div class="codeContent panelContent pdl"&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Use &lt;strong&gt;LanguageRegistryApi.Instance&lt;/strong&gt; to recover all langauges&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;private IList&amp;lt;Language&amp;gt; GetAllLanguages()
{  
    return LanguageRegistryApi.Instance.GetAllLanguages()
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="Studio2022SR1Howtoupdateplugins-KnownIssues"&gt;Known Issues&lt;/h2&gt;
&lt;p&gt;The following are a list of known issues and solutions that you might encounter depending on your settings and configuration&lt;/p&gt;
&lt;h3 id="Studio2022SR1Howtoupdateplugins-Trados.Community.Toolkit(formallySDL.Community.Toolkit)"&gt;Trados.Community.Toolkit (&lt;em&gt;formally SDL.Community.Toolkit&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;A new version of the Trados Community Toolkit, version 4.1.0, has been released to support the latest version of Trados Studio 2022 SR1.&amp;nbsp; This includes the following assemblies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Core" rel="nofollow"&gt;Trados.Community.Toolkit.Core&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform" rel="nofollow"&gt;Trados.Community.Toolkit.LanguagePlatform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.Integration" rel="nofollow"&gt;Trados.Community.Toolkit.Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.FileType" rel="nofollow"&gt;Trados.Community.Toolkit.FileType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="external-link" href="https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation" rel="nofollow"&gt;Trados.Community.Toolkit.ProjectAutomation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3 id="Studio2022SR1Howtoupdateplugins-Dependencyversionchanges"&gt;Dependency version changes&lt;/h3&gt;
&lt;p&gt;There following are a list of known dependency version changes that may influence your integration with the latest Trados Studio 2022 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context.&amp;nbsp; To resolve, include the following binding redirects in the configuration file of the project.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="xml"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;startup useLegacyV2RuntimeActivationPolicy=&amp;quot;true&amp;quot;&amp;gt;
    &amp;lt;supportedRuntime version=&amp;quot;v4.0&amp;quot; sku=&amp;quot;.NETFramework,Version=v4.8&amp;quot; /&amp;gt;
  &amp;lt;/startup&amp;gt;
  &amp;lt;runtime&amp;gt;
    &amp;lt;assemblyBinding xmlns=&amp;quot;urn:schemas-microsoft-com:asm.v1&amp;quot;&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;System.Memory&amp;quot; publicKeyToken=&amp;quot;cc7b13ffcd2ddd51&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-4.0.1.1&amp;quot; newVersion=&amp;quot;4.0.1.1&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;icu.net&amp;quot; publicKeyToken=&amp;quot;416fdd914afa6b66&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-2.7.0.0&amp;quot; newVersion=&amp;quot;2.7.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
      &amp;lt;dependentAssembly&amp;gt;
        &amp;lt;assemblyIdentity name=&amp;quot;Microsoft.Data.SqlClient&amp;quot; publicKeyToken=&amp;quot;23ec7fc2d6eaa4a5&amp;quot; culture=&amp;quot;neutral&amp;quot; /&amp;gt;
        &amp;lt;bindingRedirect oldVersion=&amp;quot;0.0.0.0-5.0.0.0&amp;quot; newVersion=&amp;quot;5.0.0.0&amp;quot; /&amp;gt;
      &amp;lt;/dependentAssembly&amp;gt;
    &amp;lt;/assemblyBinding&amp;gt;
  &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Trados Studio 2022 SR1&lt;/div&gt;
</description></item></channel></rss>