<?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/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Studio Developers Q&amp;amp;A - Recent Threads</title><link>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa</link><description>Questions on the SDK or APIs for Studio, MultiTerm, GroupShare and Passolo... this is the place for them.</description><dc:language>en-US</dc:language><generator>Telligent Community 12 Non-Production</generator><item><title>RE: How to create multiple translation projects based on Trados APIs by using many licenses at the same time to release concurrent cases</title><link>https://community.rws.com/thread/193420?ContentTypeID=1</link><pubDate>Mon, 04 May 2026 14:41:34 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:ca0a50eb-3b80-4fea-b316-c44d0e472d97</guid><dc:creator>Daniel Brockmann</dc:creator><slash:comments>0</slash:comments><comments>https://community.rws.com/thread/193420?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60965/how-to-create-multiple-translation-projects-based-on-trados-apis-by-using-many-licenses-at-the-same-time-to-release-concurrent-cases/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Flavio - just chiming in here - for such scenarios it is indeed definitely interesting to look at the Trados Cloud platform rather than desktop. Desktop scenarios are by nature limited as Patrick explained, so for this kind of work you would need to implement your own queueing mechanism or similar to not overload the desktop tool with too many parallel project batch preparation processes or uncontrollable license checkouts. More info on the cloud API is available from&amp;nbsp;&lt;a href="https://developers.rws.com/languagecloud-api-docs/articles/LCPublicAPI/docs/Introduction.html"&gt;Trados Cloud Platform API&lt;/a&gt;. Thanks, Daniel&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to create multiple translation projects based on Trados APIs by using many licenses at the same time to release concurrent cases</title><link>https://community.rws.com/thread/60965?ContentTypeID=0</link><pubDate>Mon, 27 Apr 2026 07:20:37 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:beddae05-ee26-4f6e-a67d-312fdc7c7b0a</guid><dc:creator>Flavio Sun</dc:creator><slash:comments>3</slash:comments><comments>https://community.rws.com/thread/60965?ContentTypeID=0</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60965/how-to-create-multiple-translation-projects-based-on-trados-apis-by-using-many-licenses-at-the-same-time-to-release-concurrent-cases/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am a Trados user for SDL Trados 2019 and 2024 with licenses. I am writing automation exe based on Trados SDK API to make project automated.&lt;/p&gt;
&lt;p&gt;When running the project, I find that in same time only one Trados License can be activated and only one Instance is running, for example, If two users want to create two translation projects at the same time, only one user can launch the Trados API-based exe, and the other user must be waiting for the license released.&lt;/p&gt;
&lt;p&gt;So I WANT TO KNOW, How can I realize the cocurrent use? For example, I have 4 licenses, and It is possible for us to run 4 projects at the same time by calling the APIs.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thansks,&lt;/p&gt;
&lt;p&gt;Flavio&lt;/p&gt;</description></item><item><title>RE: How to create multiple translation projects based on Trados APIs by using many licenses at the same time to release concurrent cases</title><link>https://community.rws.com/thread/193362?ContentTypeID=1</link><pubDate>Thu, 30 Apr 2026 10:26:59 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:61db6557-a697-4096-b307-747d1ca9db92</guid><dc:creator>Flavio Sun</dc:creator><slash:comments>1</slash:comments><comments>https://community.rws.com/thread/193362?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60965/how-to-create-multiple-translation-projects-based-on-trados-apis-by-using-many-licenses-at-the-same-time-to-release-concurrent-cases/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi &lt;a href="/members/patrickhartnett"&gt;Patrick Andrew Hartnett&lt;/a&gt;&amp;nbsp;,&lt;/p&gt;
&lt;p&gt;Thanks for your answer. I want to know, if I want to do concurrent project to call many licenses at the same time, what would suggest, purchasing another type of license? or use Web application version?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to create multiple translation projects based on Trados APIs by using many licenses at the same time to release concurrent cases</title><link>https://community.rws.com/thread/193360?ContentTypeID=1</link><pubDate>Thu, 30 Apr 2026 09:58:32 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:522bbcd2-1c56-433b-b752-0b2c65df7858</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><slash:comments>1</slash:comments><comments>https://community.rws.com/thread/193360?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60965/how-to-create-multiple-translation-projects-based-on-trados-apis-by-using-many-licenses-at-the-same-time-to-release-concurrent-cases/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi &lt;a href="/members/flaviosun"&gt;Flavio Sun&lt;/a&gt;&amp;nbsp;,&amp;nbsp;&lt;span class="VODHU pdMy8"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Trados Studio is fundamentally a &lt;strong&gt;desktop application&lt;/strong&gt;, and the Studio APIs are intended for &lt;strong&gt;desktop automation scenarios&lt;/strong&gt;, not for building a scalable server-style processing solution. The Project Automation API documentation also notes that &lt;code&gt;FileBasedProject&lt;/code&gt; is &lt;strong&gt;not thread-safe&lt;/strong&gt; and recommends using &lt;strong&gt;separate processes&lt;/strong&gt;, not multiple threads, if you want to create projects simultaneously.&lt;/p&gt;
&lt;p&gt;So, while you may be able to run more than one automation process, running multiple Studio/API-based processes simultaneously on the same machine is &lt;strong&gt;not a scalable design pattern&lt;/strong&gt; and may lead to issues, especially around &lt;strong&gt;license allocation/release&lt;/strong&gt;. For standalone applications that use licensed Project Automation APIs, you must call &lt;code&gt;LicenseManager.ReleaseLicense()&lt;/code&gt; when the process exits; otherwise the license can remain blocked for some time after execution ends.&lt;/p&gt;
&lt;p&gt;In short: Studio should be treated as a &lt;strong&gt;desktop solution for individual users&lt;/strong&gt;, not as a multi-user automation server.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Batch task plugin logs</title><link>https://community.rws.com/thread/193349?ContentTypeID=1</link><pubDate>Thu, 30 Apr 2026 04:46:58 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:b32ccc5e-83e3-4520-8a33-999df0c37e07</guid><dc:creator>Bal&amp;#225;zs Feh&amp;#233;r</dc:creator><slash:comments>0</slash:comments><comments>https://community.rws.com/thread/193349?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60959/batch-task-plugin-logs/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Many thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Batch task plugin logs</title><link>https://community.rws.com/thread/60959?ContentTypeID=0</link><pubDate>Fri, 24 Apr 2026 13:06:58 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:c581e0e9-374c-487e-8504-8988ec14874a</guid><dc:creator>Bal&amp;#225;zs Feh&amp;#233;r</dc:creator><slash:comments>2</slash:comments><comments>https://community.rws.com/thread/60959?ContentTypeID=0</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60959/batch-task-plugin-logs/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi All,&lt;/p&gt;
&lt;p&gt;I am implementing a batch task plugin and during&amp;nbsp;batch task execution multiple error, warning or info event can happen. Errors of course block the execution, but warnings can be ignored, info item are just for&amp;nbsp;informing&amp;nbsp;the user know what happened. I am looking for the best way to display these events/messages for the user. Based on the UI there&amp;nbsp;should definitely exists a possibility to do such thing (see image below). For errors I just need to throw an exception, but I do not see how can I add a warning. So my question is that, how can I add a &amp;quot;Warning&amp;quot; in a &amp;quot;AbstractFileContentProcessingAutomaticTask&amp;quot; specifically? And is there a way to add info messages?&lt;br /&gt;Thank you in advance for your reply,&lt;br /&gt;Balazs&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:600px;max-width:900px;" src="/resized-image/__size/1800x1200/__key/communityserver-discussions-components-files/57/1057.Untitled.png" alt="Screenshot of the Batch Processing interface showing a 'Finish' message, a progress bar, and a red-circled area indicating 'Errors: 1, Warnings: 0'." /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Error when setting value in import task settings</title><link>https://community.rws.com/thread/59485?ContentTypeID=0</link><pubDate>Fri, 31 Oct 2025 16:43:38 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:1d6a2063-f4a0-404e-83f7-343daac8ad58</guid><dc:creator>Bram van der Steen</dc:creator><slash:comments>7</slash:comments><comments>https://community.rws.com/thread/59485?ContentTypeID=0</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/59485/error-when-setting-value-in-import-task-settings/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Good day,&lt;/p&gt;
&lt;p&gt;In our plugin with Studio 2024, we are trying to run the automatic task &amp;ldquo;UpdateFromExternalReview&amp;rdquo; via the Studio API. However, when preparing the task settings, we receive an error. See the following code snippet:&lt;/p&gt;
&lt;p data-renderer-start-pos="266"&gt;ISettingsBundle settings = project.GetSettings();&lt;br /&gt;Sdl.ProjectApi.Settings.ImportFromReviewTaskSettings importTaskSettings = settings.GetSettingsGroup&amp;lt;Sdl.ProjectApi.Settings.ImportFromReviewTaskSettings&amp;gt;();&lt;br /&gt;importTaskSettings.ExternalReviewMappingItems.Value = reviewedItems;&lt;br /&gt;&lt;br /&gt;When setting this value, we receive the following error:&lt;/p&gt;
&lt;p data-renderer-start-pos="601"&gt;&lt;code&gt;No set method for property &amp;#39;IsoAbbreviation&amp;#39; in type &amp;#39;Sdl.Core.Globalization.LanguageBase&amp;#39;. ---&amp;gt; System.Runtime.Serialization.InvalidDataContractException: No set method for property &amp;#39;IsoAbbreviation&amp;#39; in type &amp;#39;Sdl.Core.Globalization.LanguageBase&amp;#39;.&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.ThrowInvalidDataContractException(String message, Type type)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at WriteLanguageToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract )&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at WriteExternalReviewMappingItemToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract )&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at WriteArrayOfExternalReviewMappingItemToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , CollectionDataContract )&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.CollectionDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver)&lt;/code&gt;&lt;br /&gt;&lt;code&gt; at System.Runtime.Serialization.DataContractSerializer.WriteObject(XmlWriter writer, Object graph)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This error is mysterious to us, as there&amp;#39;s no obvious connection to what we&amp;#39;re trying to do.&lt;/p&gt;
&lt;p&gt;The error occurred both in versions&amp;nbsp;18.0.1.2259 and&amp;nbsp;18.1.2.6370.&lt;br /&gt;&lt;br /&gt;Any help would be greatly appreciated.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Bram van der Steen&lt;/p&gt;</description></item><item><title>RE: Error when setting value in import task settings</title><link>https://community.rws.com/thread/193300?ContentTypeID=1</link><pubDate>Tue, 28 Apr 2026 08:32:19 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:a009bb91-e1fe-49a8-b5ca-b8b5dd67186f</guid><dc:creator>Bram van der Steen</dc:creator><slash:comments>0</slash:comments><comments>https://community.rws.com/thread/193300?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/59485/error-when-setting-value-in-import-task-settings/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi &lt;a href="/members/patrickhartnett"&gt;Patrick Andrew Hartnett&lt;/a&gt;&amp;nbsp;, we&amp;#39;ve verified that this does indeed solve our problem. Thank you very much for your assistance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Batch task plugin logs</title><link>https://community.rws.com/thread/193253?ContentTypeID=1</link><pubDate>Mon, 27 Apr 2026 07:44:43 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:35b5febd-7aad-4614-adca-38835a69035c</guid><dc:creator>Emanuel Albu</dc:creator><slash:comments>1</slash:comments><comments>https://community.rws.com/thread/193253?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60959/batch-task-plugin-logs/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;&lt;a href="/members/bal_e100_zsfeh_e900_r"&gt;Balázs Fehér&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hello!&lt;/p&gt;
&lt;p&gt;You can achieve this by using the bilingual processor added to the multiFileConverter. It provides a `ReportMessage` method that fits your needs exactly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;public class MyProcessor : AbstractBilingualContentProcessor
{
    public override void ProcessParagraphUnit(IParagraphUnit paragraphUnit)
    {
        if (paragraphUnit.IsStructure)
            return;
        foreach (var _ in paragraphUnit.SegmentPairs)
        {
            ReportMessage(&amp;quot;source&amp;quot;, &amp;quot;origin&amp;quot;, ErrorLevel.Warning, &amp;quot;message&amp;quot;, &amp;quot;location&amp;quot;);
        }
    }
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: MultiTerm COM API Termbases.New() fails when Croatian is present in XDT, but MultiTerm Desktop can create the termbase</title><link>https://community.rws.com/thread/193189?ContentTypeID=1</link><pubDate>Thu, 23 Apr 2026 07:52:46 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:19a8d988-be5e-45bf-80c4-7a122a0cd0a1</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><slash:comments>0</slash:comments><comments>https://community.rws.com/thread/193189?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60858/multiterm-com-api-termbases-new-fails-when-croatian-is-present-in-xdt-but-multiterm-desktop-can-create-the-termbase/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi &lt;a href="/members/adamcsillag"&gt;Adam Csillag&lt;/a&gt;&amp;nbsp;, I&amp;#39;ll follow up with the team this morning and see if this is a known issue and if/any workarounds; I&amp;#39;ll circle back once I have more info.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>MultiTerm COM API Termbases.New() fails when Croatian is present in XDT, but MultiTerm Desktop can create the termbase</title><link>https://community.rws.com/thread/60858?ContentTypeID=0</link><pubDate>Fri, 10 Apr 2026 11:16:49 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:565efd65-db5c-4601-a7a5-ff27ae14fa17</guid><dc:creator>Adam Csillag</dc:creator><slash:comments>1</slash:comments><comments>https://community.rws.com/thread/60858?ContentTypeID=0</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60858/multiterm-com-api-termbases-new-fails-when-croatian-is-present-in-xdt-but-multiterm-desktop-can-create-the-termbase/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;Hello,&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m seeing a reproducible issue with MultiTerm COM automation when creating a local termbase from an &lt;code&gt;.xdt&lt;/code&gt; definition.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Environment&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;MultiTerm Desktop 2022 SR2 - 17.2.5.2838&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trados Studio 2022 SR2 - 17.2.12.19268&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;C# app running as x86 (&lt;code&gt;Environment.Is64BitProcess = False&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Interop: &lt;code&gt;Sdl.MultiTerm.TMO.Interop&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;Sdl.MultiTerm.TMO.Interop.Application oMt = new Sdl.MultiTerm.TMO.Interop.Application();
TermbaseRepository oLocalRep = oMt.LocalRepository;
oLocalRep.Connect(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;);

Termbases oTbs = oLocalRep.Termbases;
oTbs.New(name, &amp;quot;&amp;quot;, definition, sdltbPath);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Example values used&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;name = &amp;quot;Test&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;definition = C:\Users\...\Temp\&lt;span&gt;Test&lt;/span&gt;_20260409_141955534\&lt;span&gt;Test&lt;/span&gt;.xdt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sdltbPath = C:\Users\...\Temp\&lt;span&gt;Test&lt;/span&gt;_20260409_141955534\&lt;span&gt;Test&lt;/span&gt;.sdltb&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;What I tested&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The process is 32-bit (&lt;code&gt;Environment.Is64BitProcess = False&lt;/code&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;definition&lt;/code&gt; exists&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sdltbPath&lt;/code&gt; does not exist before calling &lt;code&gt;New(...)&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Creating in &lt;code&gt;%TEMP%&lt;/code&gt; gives the same result as other local paths&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Opening an existing &lt;code&gt;.sdltb&lt;/code&gt; through COM works:&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;oLocalRep.Termbases.Add(existingTbPath, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
var tb = oLocalRep.Termbases[existingTbPath];
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;MultiTerm Desktop can successfully create the termbase from the same &lt;code&gt;.xdt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Observed behavior&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Termbases.New(...)&lt;/code&gt; throws:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;System.Runtime.InteropServices.COMException: &amp;#39;MultiTerm is unable to create the termbase.&amp;#39;&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After a lot of testing, I found that the problem is related to &lt;strong&gt;Croatian&lt;/strong&gt; in the &lt;code&gt;.xdt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If I remove Croatian from the termbase definition, &lt;code&gt;Termbases.New(...)&lt;/code&gt; succeeds&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If Croatian is present, &lt;code&gt;Termbases.New(...)&lt;/code&gt; fails&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;However, MultiTerm Desktop is able to create the same termbase from the same &lt;code&gt;.xdt&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Question&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Is this a known issue in the MultiTerm COM API with Croatian language handling during termbase creation?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Is there a specific Croatian language code/locale that COM expects here?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Could this be related to &lt;code&gt;SH-HR&lt;/code&gt; vs &lt;code&gt;hr-HR&lt;/code&gt; handling?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since Desktop can create the termbase, but COM cannot when Croatian is included, this looks like an API-specific issue rather than a broken &lt;code&gt;.xdt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Thanks in advance for any guidance.&lt;/p&gt;</description></item><item><title>Verification plugin triggered when confirming a segment even if disabled</title><link>https://community.rws.com/thread/60912?ContentTypeID=0</link><pubDate>Fri, 17 Apr 2026 09:07:28 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:c5ae7a29-cfd2-4be9-9d03-b2b88f2e6a2c</guid><dc:creator>Arturo Vazquez Rodriguez</dc:creator><slash:comments>5</slash:comments><comments>https://community.rws.com/thread/60912?ContentTypeID=0</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60912/verification-plugin-triggered-when-confirming-a-segment-even-if-disabled/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I have developed a custom verification plugin for Trados Studio.&lt;/p&gt;
&lt;p&gt;When I disable it in the project settings, it won&amp;#39;t be triggered when pressing F8, which is expected and completely normal.&lt;/p&gt;
&lt;p&gt;The problem is that confirming a segment triggers the verifications performed by that plugin even if the plugin is completely disabled (that is, unchecked in the Verification options node).&lt;/p&gt;
&lt;p&gt;I am using Trados Studio 2024 SR1 18.1.3.6657&lt;/p&gt;
&lt;p&gt;I cannot share the source code publicly or the plugin, but I can privately, please get in touch with me for that.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Arturo&lt;/p&gt;</description></item><item><title>RE: Verification plugin triggered when confirming a segment even if disabled</title><link>https://community.rws.com/thread/193060?ContentTypeID=1</link><pubDate>Mon, 20 Apr 2026 09:17:17 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:af2e9fba-664b-44f6-8456-89e7140d657b</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><slash:comments>0</slash:comments><comments>https://community.rws.com/thread/193060?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60912/verification-plugin-triggered-when-confirming-a-segment-even-if-disabled/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;hey &lt;a href="/members/arturovazquez-rodriguez"&gt;Arturo Vazquez Rodriguez&lt;/a&gt;&amp;nbsp;awesome work finding this workaround; will be useful also to others blocked with this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Verification plugin triggered when confirming a segment even if disabled</title><link>https://community.rws.com/thread/193055?ContentTypeID=1</link><pubDate>Mon, 20 Apr 2026 09:02:11 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:83edab38-0eab-4dbc-9a1f-da14771dc427</guid><dc:creator>Arturo Vazquez Rodriguez</dc:creator><slash:comments>1</slash:comments><comments>https://community.rws.com/thread/193055?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60912/verification-plugin-triggered-when-confirming-a-segment-even-if-disabled/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I found an alternative to this that works in my case:&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;string isEnabled = _projectsController.CurrentProject.GetSettings().GetSettingsGroup(&amp;quot;Plugin_ID&amp;quot;).GetSetting&amp;lt;string&amp;gt;(&amp;quot;Enabled&amp;quot;).Value;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Here I have an Enabled status that is updated and seems to reflect the current activation status of the Verification plugin in the options node. It seems to be working as expected. If you don&amp;#39;t have a better alternative, I think I will be using this one. Thanks!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Verification plugin triggered when confirming a segment even if disabled</title><link>https://community.rws.com/thread/193052?ContentTypeID=1</link><pubDate>Mon, 20 Apr 2026 08:33:51 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:3a568d5e-2ff5-4551-bab9-8cbc0e8fa0fd</guid><dc:creator>Arturo Vazquez Rodriguez</dc:creator><slash:comments>0</slash:comments><comments>https://community.rws.com/thread/193052?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60912/verification-plugin-triggered-when-confirming-a-segment-even-if-disabled/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi Patrick,&lt;/p&gt;
&lt;p&gt;Thanks for your reply!&lt;/p&gt;
&lt;p&gt;I think you pointed me at Translation Providers rather than Verificators, so I changed this line:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;GetExtensionPoint&amp;lt;GlobalVerifierAttribute&amp;gt;()&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;However, the Enabled property is always set to true even if the plugin is disabled in the Verification options node, so this solution does not seem to change the behavior.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Verification plugin triggered when confirming a segment even if disabled</title><link>https://community.rws.com/thread/193035?ContentTypeID=1</link><pubDate>Sat, 18 Apr 2026 08:33:04 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:c23b8173-8172-4ab7-b3bc-99290efdc2d1</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><slash:comments>2</slash:comments><comments>https://community.rws.com/thread/193035?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60912/verification-plugin-triggered-when-confirming-a-segment-even-if-disabled/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hey&amp;nbsp;&lt;a href="/members/arturovazquez-rodriguez"&gt;Arturo Vazquez Rodriguez&lt;/a&gt;&amp;nbsp;, This is a know bug and at the moment your only option is to implement your own mechanism to check if the project is disabled.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Here is an example of how you could accomplish this, let me know how it goes.&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="csharp"&gt;var extensionPoint = PluginManager.DefaultPluginRegistry.GetExtensionPoint&amp;lt;TranslationProviderFactoryAttribute&amp;gt;();
if (extensionPoint == null)
{
	return;
}
foreach (var extension in extensionPoint.Extensions)
{
	// 1. identify if the extension is a provider of interest to you
	// from here you can identify the type
	// extension.ExtensionType == etc..
	// extension.Plugin.Id == etc...
	
	// 2. identify if the provider is enabled; this should already solve yr problem
	if (extension.Enabled)
	{
	   // do something
	}
} &lt;/pre&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Verification plugin triggered when confirming a segment even if disabled</title><link>https://community.rws.com/thread/193005?ContentTypeID=1</link><pubDate>Fri, 17 Apr 2026 11:27:00 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:449e47d9-44a6-46c0-a27a-0a1e2a7d971f</guid><dc:creator>Arturo Vazquez Rodriguez</dc:creator><slash:comments>0</slash:comments><comments>https://community.rws.com/thread/193005?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60912/verification-plugin-triggered-when-confirming-a-segment-even-if-disabled/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Just adding here that disabling individual checks in my verification plugin works as intended: confirming a segment does not trigger the check if the individual check is disabled. Therefore, it seems that Trados is ignoring the status of the plugin enablement at the top level and only looking at the enablement status of individual options. Is there a solution for this I can put in place on my end?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Error when setting value in import task settings</title><link>https://community.rws.com/thread/192916?ContentTypeID=1</link><pubDate>Tue, 14 Apr 2026 10:32:42 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:aa0f5e29-f195-4000-86ef-607ae13e9939</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><slash:comments>1</slash:comments><comments>https://community.rws.com/thread/192916?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/59485/error-when-setting-value-in-import-task-settings/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi &lt;a href="/members/bramvan-der-steen"&gt;Bram van der Steen&lt;/a&gt;&amp;nbsp;, thank you for providing the source code.&amp;nbsp; The team have reviewed this; here is the response:&lt;br /&gt;&lt;br /&gt;&lt;span data-testid="issue-activity-feed.feed-display-with-intersection-observer"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="ak-editor-panel css-7g0nh9" data-local-id="19f854dc3d34" data-panel-type="note"&gt;
&lt;div class="ak-editor-panel__content"&gt;
&lt;p data-renderer-start-pos="2" data-local-id="646e517c0410"&gt;This reproduces in Trados 2024 and 2022.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-renderer-start-pos="45" data-local-id="e7ffe38cf76d"&gt;For comparison, I ran the task in Trados (Update from Bilingual Review) and compared the items added in the settings with what the user is trying to add programmatically. The item added by Trados has its Language property set to null, while the user is attempting to set it. If the code is changed so that the Language property is not set, the error no longer occurs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: TerminologyProvider does not reliably generate scores for Fuzzy Search</title><link>https://community.rws.com/thread/192866?ContentTypeID=1</link><pubDate>Mon, 13 Apr 2026 09:45:13 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:d7046b54-b926-4d63-95e9-9eca0159a130</guid><dc:creator>Lukas Ley</dc:creator><slash:comments>0</slash:comments><comments>https://community.rws.com/thread/192866?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/58886/terminologyprovider-does-not-reliably-generate-scores-for-fuzzy-search/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi &lt;a href="/members/patrickhartnett"&gt;Patrick Andrew Hartnett&lt;/a&gt;&amp;nbsp;,&lt;/p&gt;
&lt;p&gt;I wanted to check in and ask if you can give me any information about further developments on this.&lt;/p&gt;
&lt;p&gt;Best, Lukas&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>TerminologyProvider does not reliably generate scores for Fuzzy Search</title><link>https://community.rws.com/thread/58886?ContentTypeID=0</link><pubDate>Mon, 01 Sep 2025 09:42:43 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:f5e7c587-7ad6-4448-8a91-6775d0821f3f</guid><dc:creator>Lukas Ley</dc:creator><slash:comments>5</slash:comments><comments>https://community.rws.com/thread/58886?ContentTypeID=0</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/58886/terminologyprovider-does-not-reliably-generate-scores-for-fuzzy-search/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am using Trados Studio 2024 (not SR1) and I have another question.&lt;/p&gt;
&lt;p&gt;After getting the search with the TerminologyProviderManager Singleton to work (see&amp;nbsp;&lt;a href="/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/58071/setting-threashold-for-fuzzy-search-results-over-multiterm-termbases/186865"&gt;the answers in this question&lt;/a&gt;) I noticed some strange behavior.&lt;br /&gt;My goal is to get the scores for terms like they are displayed in the &amp;quot;Term Recognition&amp;quot; view in the Editor UI. Ideally I want to put the whole segment string in and get the scores.&lt;/p&gt;
&lt;p&gt;When I search via ITerminologyProivder.Search() the scores never line up. Even if I put in only a single term it only lines up when there is a 100% match.&lt;/p&gt;
&lt;p&gt;When I put in a longer sentence the score for the best fitting term decreases with the length of the sentence.&lt;/p&gt;
&lt;p&gt;For example see this code from the other question:&lt;/p&gt;
&lt;p&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:ea15cfd2-4189-424b-8b29-84d13a5bc4d9:type=csharp&amp;text=var%20sourceLanguage%20%3D%20new%20CultureInfo%28%22en-US%22%29%3B%0Avar%20targetLanguage%20%3D%20new%20CultureInfo%28%22de-DE%22%29%3B%0Astring%20segmentText%20%3D%20%22...%22%3B%0Aint%20maxResultsCount%20%3D%2010%3B%0Abool%20targetRequired%20%3D%20true%3B%0A%0Avar%20searchResults%20%3D%20terminologyProvider.Search%28%0A%20%20%20%20segmentText%2C%0A%20%20%20%20sourceLanguage%2C%0A%20%20%20%20targetLanguage%2C%0A%20%20%20%20maxResultsCount%2C%0A%20%20%20%20SearchMode.Fuzzy%2C%0A%20%20%20%20targetRequired%0A%29%3B]&lt;/p&gt;
&lt;p&gt;If I have a Termbase with the word &amp;quot;Gefahrstoff&amp;quot; in it and when I set the segmentText to &amp;quot;Gefahrstoff&amp;quot; the top searchResult has a score of 100.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If i set the segmentText to &amp;quot;Gefahrstoffen&amp;quot; it has a score of 90. In the Term Recognition view in the Editor UI, &amp;quot;Gefahrstoff&amp;quot; has a Score of 87. The sentence in the Editor is&amp;nbsp; &amp;quot;Die Nutzung von Gefahrstoffen ist gef&amp;auml;hrlich&amp;quot;.&lt;br /&gt;When I set the segmentText to &amp;quot;Die Nutzung von Gefahrstoffen ist gef&amp;auml;hrlich&amp;quot; the term &amp;quot;Gefahrstoff&amp;quot; has only a score of 63.&lt;/p&gt;
&lt;p&gt;Do i really need to parse the thext and search for each token? I would like to avoid doing that. And even if i did that the scores do not line up.&lt;br /&gt;&lt;br /&gt;Is there any method for getting the same scores?&lt;br /&gt;&lt;br /&gt;Best,&lt;br /&gt;Lukas&lt;/p&gt;</description></item><item><title>API calls to pretranslate files using DeepL plugin no longer work</title><link>https://community.rws.com/thread/60790?ContentTypeID=0</link><pubDate>Wed, 01 Apr 2026 14:25:52 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:1884f22f-c17e-4bf7-94c6-3d7e99be4f17</guid><dc:creator>TTS Team</dc:creator><slash:comments>7</slash:comments><comments>https://community.rws.com/thread/60790?ContentTypeID=0</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60790/api-calls-to-pretranslate-files-using-deepl-plugin-no-longer-work/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Since DeepL changed their authentication methods, we no longer can pretranslate our files using API calls to Trados 2024. It still work when pretranslating &amp;quot;manually&amp;quot; from within Trados Studio, but when using the API call&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;project&lt;/span&gt;.&lt;span&gt;RunAutomaticTask&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;targetFiles&lt;/span&gt;.&lt;span&gt;GetIds&lt;/span&gt;&lt;span&gt;()&lt;/span&gt;, &lt;span&gt;AutomaticTaskTemplateIds&lt;/span&gt;.PreTranslateFiles&lt;span&gt;)&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;, it won&amp;#39;t work.&lt;/p&gt;
&lt;p&gt;We&amp;#39;ve narrowed it down to DeepL API key authentication: when adding the DeepL provider manually in Trados Studio, the API key is automatically authenticated when you enter it in the settings dialog for DeepL, but when our external tool uses Trados API to add the DeepL provider to the project using our API key, no such validation occurs, and that&amp;#39;s what blocks the pretranslation task from working.&lt;/p&gt;
&lt;p&gt;So my question is: is there any way to make it work, it worked just fine before the authentication change? We even tried duplicating the API key authentication when adding the provider to the project, but no luck there.&lt;/p&gt;
&lt;p&gt;Thanks for any help on this subject.&lt;/p&gt;</description></item><item><title>RE: API calls to pretranslate files using DeepL plugin no longer work</title><link>https://community.rws.com/thread/192775?ContentTypeID=1</link><pubDate>Thu, 09 Apr 2026 11:09:06 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:57039a9e-2fe5-4b1b-b3c6-85d7ba3cbbc0</guid><dc:creator>TTS Team</dc:creator><slash:comments>0</slash:comments><comments>https://community.rws.com/thread/192775?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60790/api-calls-to-pretranslate-files-using-deepl-plugin-no-longer-work/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Thanks again &lt;a href="/members/emanuelalbu"&gt;Emanuel Albu&lt;/a&gt;&amp;nbsp;, I adapted your code to mine, removing all the complexities we had added to mimic what Trados adds in the provider, and let it do its job, and it worked just fine! That&amp;#39;s all there was to it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: API calls to pretranslate files using DeepL plugin no longer work</title><link>https://community.rws.com/thread/192769?ContentTypeID=1</link><pubDate>Thu, 09 Apr 2026 09:51:08 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:bc5db487-4aa6-415c-8a92-6c1042f5442b</guid><dc:creator>Patrick Andrew Hartnett</dc:creator><slash:comments>1</slash:comments><comments>https://community.rws.com/thread/192769?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60790/api-calls-to-pretranslate-files-using-deepl-plugin-no-longer-work/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hey&amp;nbsp;&lt;a href="/members/ttsteam"&gt;TTS Team&lt;/a&gt;&amp;nbsp;, not sure if it helps, but also check and update the App.Config file. we identified some dependencies changed with the latest update a few months ago...&amp;nbsp;&lt;br /&gt;please check here:&lt;br /&gt;&lt;a href="https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60767/create-project-via-api-shows-files-as-reference/192767"&gt;RE: Create Project Via API shows files as Reference&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: API calls to pretranslate files using DeepL plugin no longer work</title><link>https://community.rws.com/thread/192768?ContentTypeID=1</link><pubDate>Thu, 09 Apr 2026 09:46:43 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:87af5031-21ac-477c-aa4e-1dbf1add610d</guid><dc:creator>TTS Team</dc:creator><slash:comments>1</slash:comments><comments>https://community.rws.com/thread/192768?ContentTypeID=1</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60790/api-calls-to-pretranslate-files-using-deepl-plugin-no-longer-work/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello &lt;a href="/members/emanuelalbu"&gt;Emanuel Albu&lt;/a&gt;&amp;nbsp;,&lt;/p&gt;
&lt;p&gt;Thanks for the sample code. Ours is very similar (I&amp;#39;m going to try to put it in as much context as possible, while omitting the irrelevant parts).&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;        public DeepLPluginOptions()
        {
            _uriBuilder = new TranslationProviderUriBuilder(&amp;quot;deepltranslationprovider&amp;quot;);
        }
        protected TranslationProviderUriBuilder UriBuilderDL =&amp;gt; _uriBuilder;

        public void AddDeepLPluginToProject(FileBasedProject project, string apikey, Language locale,
            string settingsName = null, bool cutTag = false)
        {
            var uri = GetUri(apikey, settingsName, cutTag);
            //Console.WriteLine(&amp;quot;Saving plugin settings for DeepL/Intento: {0}&amp;quot;, uri);
            SaveDeepLPluginSettings(uri, project, locale, apikey);
        }
        
        Uri GetUri(string apikey, string providerId, string providerName, string customAuth = null,
            string customModel = null,
            string glossary = null, string settingsName = null, bool cutTag = false, bool smartRouting = false)
        {
            return UriBuilderDL.Uri;
        }

        public void SaveDeepLPluginSettings(Uri uri, FileBasedProject prj, Language locale, string ApiKey)
        {
            TranslationProviderConfiguration pluginSettings = prj.GetTranslationProviderConfiguration(locale);

            Console.WriteLine(&amp;quot;Preparing the JSON string for DeepL MT provider&amp;quot;);
            Uri DeepLUri = new Uri(&amp;quot;deepltranslationprovider://&amp;quot;);
            string state = GetStateObject(uri, prj, locale);
            Console.WriteLine(&amp;quot;Creating Trados provider using DeepL settings&amp;quot;);
            TranslationProviderReference reference = new TranslationProviderReference(uri, state, true);
            TranslationProviderCascadeEntry entry = new TranslationProviderCascadeEntry(reference, false, true, true, 0);
            pluginSettings.Entries.Add(entry);

            prj = PreTranslationSettings.SetMinimumMatchValue(prj, locale);
            prj.Credentials.AddCredential(DeepLUri, ApiKey);

            prj.UpdateTranslationProviderConfiguration(locale, pluginSettings);
 
            prj.Save();
        }
        
        string GetStateObject(Uri uri, FileBasedProject prj, Language locale)
        {
            System.IO.TextWriter tw = new System.IO.StringWriter();
            JsonTextWriter stateWriter = new JsonTextWriter(tw);
            stateWriter.WriteStartObject();
                stateWriter.WritePropertyName(&amp;quot;ApiVersion&amp;quot;);
                stateWriter.WriteValue(&amp;quot;V2 (DeepL Pro API subscription)&amp;quot;);
                stateWriter.WritePropertyName(&amp;quot;IgnoreTagsParameter&amp;quot;);
                stateWriter.WriteNull();
                stateWriter.WritePropertyName(&amp;quot;LanguagePairOptions&amp;quot;);
                stateWriter.WriteStartArray();
                    stateWriter.WriteStartObject();
                        stateWriter.WritePropertyName(&amp;quot;Formality&amp;quot;);
                        stateWriter.WriteValue(0);
                        stateWriter.WritePropertyName(&amp;quot;SelectedGlossary&amp;quot;);
                        stateWriter.WriteStartObject();
                            stateWriter.WritePropertyName(&amp;quot;glossary_id&amp;quot;);
                            stateWriter.WriteNull();
                            stateWriter.WritePropertyName(&amp;quot;IsChecked&amp;quot;);
                            stateWriter.WriteValue(false);
                            stateWriter.WritePropertyName(&amp;quot;Name&amp;quot;);
                            stateWriter.WriteValue(&amp;quot;No glossary&amp;quot;);
                            stateWriter.WritePropertyName(&amp;quot;source_lang&amp;quot;);
                            stateWriter.WriteNull();
                            stateWriter.WritePropertyName(&amp;quot;target_lang&amp;quot;);
                            stateWriter.WriteNull();
                        stateWriter.WriteEndObject();
                        stateWriter.WritePropertyName(&amp;quot;LanguagePair&amp;quot;);
                        stateWriter.WriteStartObject();
                            stateWriter.WritePropertyName(&amp;quot;SourceCultureName&amp;quot;);
                            Sdl.ProjectAutomation.Core.ProjectInfo prjSettings = prj.GetProjectInfo();
                            string SrcLang = prjSettings.SourceLanguage.CultureInfo.Name;
                            string TgtLang = locale.CultureInfo.Name;
                            stateWriter.WriteValue(SrcLang);
                            stateWriter.WritePropertyName(&amp;quot;TargetCultureName&amp;quot;);
                            stateWriter.WriteValue(TgtLang);
                        stateWriter.WriteEndObject();
                    stateWriter.WriteEndObject();
                stateWriter.WriteEndArray();
                stateWriter.WritePropertyName(&amp;quot;LanguagesSupported&amp;quot;);
                stateWriter.WriteStartObject();
                    stateWriter.WritePropertyName(TgtLang);
                    stateWriter.WriteValue(&amp;quot;DeepLTranslator&amp;quot;);
                stateWriter.WriteEndObject();
                stateWriter.WritePropertyName(&amp;quot;PreserveFormattingParameter&amp;quot;);
                stateWriter.WriteValue(false);
                stateWriter.WritePropertyName(&amp;quot;SendPlainTextParameter&amp;quot;);
                stateWriter.WriteValue(false);
                stateWriter.WritePropertyName(&amp;quot;ResendDraftParameter&amp;quot;);
                stateWriter.WriteValue(false);
                stateWriter.WritePropertyName(&amp;quot;ModelTypeParameter&amp;quot;);
                stateWriter.WriteValue(&amp;quot;Latency_Optimized&amp;quot;);
                stateWriter.WritePropertyName(&amp;quot;TagHandlingParameter&amp;quot;);
                stateWriter.WriteValue(&amp;quot;None&amp;quot;);
                stateWriter.WritePropertyName(&amp;quot;SplitSentenceHandlingParameter&amp;quot;);
                stateWriter.WriteValue(&amp;quot;Default&amp;quot;);
                stateWriter.WritePropertyName(&amp;quot;Uri&amp;quot;);
                stateWriter.WriteValue(&amp;quot;deepltranslationprovider:///&amp;quot;);
            stateWriter.WriteEndObject();

            return tw.ToString();
        }

        static int Main(string[] args)
        {

            MtTask mtTask = new MtTask(args[0]);

            try
            {
                ProjectProcessor processor = new ProjectProcessor();

                FileBasedProject project = processor.SetProject(mtTask.ProjectFile);

                foreach (TargLang targLang in mtTask.TargLangs)
                {
                    if (targLang.Provider == &amp;quot;DeepL&amp;quot;)
                    {
                        Console.WriteLine($&amp;quot;Configuring DeepL Settings for {targLang.Lang.ToString()}...&amp;quot;);
                        DeepLPluginOptions options = new DeepLPluginOptions();
                        options.AddDeepLPluginToProject(
                            project,
                            targLang.Api,
                            targLang.ProviderId,
                            targLang.ProviderName,
                            targLang.Lang
                        Console.WriteLine($&amp;quot;Pre-translating {targLang.Lang} files...&amp;quot;);

                        processor.PreTranslateTargetLanguageFiles(project, targLang.Lang);
                    }
                }

                return ConsoleHelper.WriteSuccess(&amp;quot;PackageCreation&amp;quot;);
            }
            catch (Exception ex)
            {
                return ConsoleHelper.WriteError(ex);
            }
        }
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;As you can see, for the most part, it goes more or less the same way, except we spell out the json content to be inserted as the provider State. Or do we have to rely completely on Trados to insert it automatically? We tried it that way, and it didn&amp;#39;t seem to work...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Create Project Via API shows files as Reference</title><link>https://community.rws.com/thread/60767?ContentTypeID=0</link><pubDate>Mon, 30 Mar 2026 11:05:15 GMT</pubDate><guid isPermaLink="false">10acfa76-f078-475b-a7ef-fc5b3e8d2934:546ec328-8073-4256-a901-267366c7be39</guid><dc:creator>Mark Owens</dc:creator><slash:comments>4</slash:comments><comments>https://community.rws.com/thread/60767?ContentTypeID=0</comments><wfw:commentRss>https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa/60767/create-project-via-api-shows-files-as-reference/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve recently upgraded to Trados 2024, and am running code that creates a new project from a Studio 2024 template, add files, and machine translates. All VS references are for Studio 2024 assemblies.&lt;/p&gt;
&lt;p&gt;The template is setup exactly as you&amp;#39;d expect to do this. There is no memory selected, and the DeepL translation configuration is correct. The file types for the template have most entries in the list unticked, but XML2: MadCap Compliant is ticked.&lt;/p&gt;
&lt;p&gt;The program steps are:&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create project&lt;/li&gt;
&lt;li&gt;AddFolderWithFiles (recursively)&lt;/li&gt;
&lt;li&gt;Save project&lt;/li&gt;
&lt;li&gt;Scan files&lt;/li&gt;
&lt;li&gt;Save project&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:inherit;"&gt;ConvertToTranslatableFormat (via RunAutomatiobTask)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:inherit;"&gt;CopyToTargetLanguages&amp;nbsp;&lt;span&gt;(via RunAutomatiobTask)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Save project&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:inherit;"&gt;Modify settings to applyAutomatedTranslation&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:inherit;"&gt;Save settings&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:inherit;"&gt;Save project&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;PreTranslateFiles (via RunAutomatiobTask)&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Save project&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span&gt;It never seems to use the project template setting to recognise the .htm files are translatable.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If I create the project manually, with the same template, same source files, it performs the MT as expected.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;There must be some sort of gotcha going on. Can anyone tell me where I&amp;#39;m going wrong?&lt;br /&gt;Thanks&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Mark&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;</description></item></channel></rss>