Skip to content

Commit 814e6f8

Browse files
authored
Add "How to update plugins in Trados Studio" page
* Add "How to update plugins in Trados Studio" page * Update MultiTerm API Changes
1 parent 7fa0c50 commit 814e6f8

3 files changed

Lines changed: 78 additions & 229 deletions

File tree

articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio_2024.md

Lines changed: 0 additions & 121 deletions
This file was deleted.

articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio_2024_sr1.md renamed to articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio_2026.md

Lines changed: 76 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
1-
# How to update plugins to Trados Studio 2024 SR1
1+
# How to update plugins to Trados Studio - 2026 Release
22

3-
The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio 2024 SR1.
3+
The following are a list of changes and known issues to consider when updating your plugin to be compatible with Trados Studio - 2026 Release.
4+
5+
## Transition to 64-Bit (x64)
6+
Studio Quantum is released as a 64-bit (x64) version. As a result, plug-ins must also be rebuilt and updated to target x64 in order to remain compatible.
7+
8+
The following element must be added in a global property group of the .csproj file to target x64:
9+
10+
11+
```xml
12+
<PropertyGroup>
13+
...
14+
<PlatformTarget>x64</PlatformTarget>
15+
...
16+
</PropertyGroup>
17+
```
18+
> [!NOTE]
19+
>
20+
> If the project is not SDK-style, <PlatformTarget>x64</PlatformTarget> must be set for all relevant configurations (e.g., Debug and Release), otherwise some builds may still compile for a different platform.
421
522
## Update Plugin Framework Packages
623
Ensure you are using the latest plugin framework NuGet packages:
@@ -13,52 +30,50 @@ Ensure you are using the latest plugin framework NuGet packages:
1330
- Search, select, and install/update the above packages.
1431
- Accept license agreements to complete installation.
1532

16-
1733
## Update Plugin Manifest
1834

1935
Review and update the manifest (`pluginpackage.manifest.xml`) at the project root as in the following example:
2036
```xml
2137
<?xml version="1.0" encoding="utf-8"?>
2238
<PluginPackage xmlns="http://www.sdl.com/Plugins/PluginPackage/1.0">
2339
<PlugInName>My plugin name</PlugInName>
24-
<Version>1.1.0.0</Version>
40+
<Version>1.0.0.0</Version>
2541
<Description>My plugin description</Description>
2642
<Author>Trados AppStore Team</Author>
27-
<RequiredProduct name="TradosStudio" minversion="18.1" maxversion="18.1.9" />
43+
<RequiredProduct name="TradosStudio" minversion="19.0" maxversion="19.9" />
2844
</PluginPackage>
2945
```
30-
Ensure **RequiredProduct** reflects `minversion="18.1"` and `maxversion="18.1.9"`.
31-
46+
Ensure **RequiredProduct** reflects `minversion="19.0"` and `maxversion="19.9"`.
3247

3348
## Project References & Deployment Path
3449
Update references and deployment settings in your .csproj:
3550

3651
### [Production](#tab/standard)
3752

38-
**References**: Set Trados Studio assemblies to use the Studio 18 path:
53+
**References**: Set Trados Studio assemblies to use the Studio 19 path:
3954
~~~xml
4055
<Reference Include="Sdl.Desktop.IntegrationApi.Extensions">
41-
<HintPath>$(MSBuildProgramFiles32)\Trados\Trados Studio\Studio18\Sdl.Desktop.IntegrationApi.Extensions.dll</HintPath>
56+
<HintPath>$(ProgramFiles)\Trados\Trados Studio\Studio19\Sdl.Desktop.IntegrationApi.Extensions.dll</HintPath>
4257
</Reference>
4358
~~~
4459

4560
**Deployment Path:**
4661
~~~xml
47-
<PluginDeploymentPath>$(AppData)\Trados\Trados Studio\18\Plugins</PluginDeploymentPath>
62+
<PluginDeploymentPath>$(AppData)\Trados\Trados Studio\19\Plugins</PluginDeploymentPath>
4863
~~~
4964

5065
### [BETA](#tab/beta)
5166

52-
**References**: Set Trados Studio assemblies to use the Studio 18 Beta path:
67+
**References**: Set Trados Studio assemblies to use the Studio 19 Beta path:
5368
~~~xml
5469
<Reference Include="Sdl.Desktop.IntegrationApi.Extensions">
55-
<HintPath>$(MSBuildProgramFiles32)\Trados\Trados Studio\Studio18Beta\Sdl.Desktop.IntegrationApi.Extensions.dll</HintPath>
70+
<HintPath>$(ProgramFiles)\Trados\Trados Studio\Studio19Beta\Sdl.Desktop.IntegrationApi.Extensions.dll</HintPath>
5671
</Reference>
5772
~~~
5873

5974
**Deployment Path:**
6075
~~~xml
61-
<PluginDeploymentPath>$(AppData)\Trados\Trados Studio\18Beta\Plugins</PluginDeploymentPath>
76+
<PluginDeploymentPath>$(AppData)\Trados\Trados Studio\19Beta\Plugins</PluginDeploymentPath>
6277
~~~
6378

6479
---
@@ -72,11 +87,12 @@ Update references and deployment settings in your .csproj:
7287
> Once you have applied your changes in the project file, then reload project
7388
> * In the **Solution Explorer**, select the projects you want to load (press **Ctrl** while clicking to select more than one project)
7489
> * Then right-click on the project and choose **Reload Project**.
75-
76-
<br/>
90+
>
91+
> If the project is SDK-style, then unloading/reloading is unnecessary.
7792
7893
## Known Issues & Dependency Updates
79-
### Dependency Version Changes
94+
The following are a list of known issues and solutions that you might encounter depending on your settings and configuration:
95+
### Dependency version changes
8096
Standalone integrations may require binding redirects. Example for `App.config`:
8197
```xml
8298
<?xml version="1.0" encoding="utf-8" ?>
@@ -112,14 +128,34 @@ Standalone integrations may require binding redirects. Example for `App.config`:
112128
</startup>
113129
</configuration>
114130
```
115-
<br/>
131+
### Breaking API Changes
132+
`ITerminologyProviderCredentialStore` was removed (together with method parameters of this type).
116133

117-
## Breaking API Changes
134+
`TerminologyProviderManager.DefaultTerminologyCredentialStore` was removed.
118135

119-
### Assembly Version Change Requires Recompilation
120-
With Trados Studio 2024 SR1, all core Trados assemblies have had their **assembly version increased to 18.1.x.x** (reflecting the semantic versioning minor update). **This assembly version bump introduces a breaking change:** Any plugin or standalone tool that references Trados assemblies must be recompiled against the new release, even if no other code changes are required. Referencing outdated assemblies is not supported and will likely result in runtime failures due to version mismatches.
121-
<br/>
136+
`public TerminologyProviderType Type` property removed from `ITerminologyProvider`
137+
#### Working with BCMs
138+
The BCM-related classes have been moved from Sdl.LanguagePlatform.TranslationMemoryApito TradosStudio.BcmLite:
139+
```xml
140+
<Reference Include="TradosStudio.BcmLite">
141+
<HintPath>$(ProgramFiles)\Trados\Trados Studio\Studio19\TradosStudio.BcmLite.dll</HintPath>
142+
</Reference>
143+
```
144+
And some classes were renamed:
145+
146+
`LiteDocument` to `Document`
147+
148+
`LiteFragment` to `DocumentFragment`
149+
150+
The `LiteBcmVisitor` abstract class now includes two more methods:
151+
152+
```cs
153+
public abstract void VisitFeedbackContainer(FeedbackContainer feedbackContainer);
154+
public abstract void VisitStructure(StructureTag structureTag);
155+
```
122156

157+
#### Assembly Version Change Requires Recompilation
158+
With Trados Studio - 2026 Release, all core Trados assemblies have had their **assembly version increased to 19.x.x.x** (reflecting the semantic versioning minor update). **This assembly version bump introduces a breaking change:** Any plugin or standalone tool that references Trados assemblies must be recompiled against the new release, even if no other code changes are required. Referencing outdated assemblies is not supported and will likely result in runtime failures due to version mismatches.
123159
### Multiterm API Changes
124160
**Migrate from `Sdl.Multiterm.TMO.Interop.dll` to `TerminologyProviderManager`**
125161

@@ -132,7 +168,7 @@ As part of the separation of MultiTerm from Trados Studio, the legacy assembly `
132168
using Sdl.Terminology.TerminologyProvider.Core;
133169

134170
// Example URI for your termbase
135-
string termbaseUriString = "file:///C:/Termbases/MyTermbase.sdltb";
171+
string termbaseUriString = "ttb.file:///C:/Termbases/MyTermbase.ttb";
136172
Uri termbaseUri = new Uri(termbaseUriString);
137173

138174
// Get the terminology provider singleton instance
@@ -153,8 +189,16 @@ if (!terminologyProvider.IsInitialized)
153189
}
154190

155191
// Set up search parameters
156-
var sourceLanguage = new CultureInfo("en-US");
157-
var targetLanguage = new CultureInfo("it-IT");
192+
var sourceLanguage = new DefinitionLanguage
193+
{
194+
Locale = "EN",
195+
Name = "English"
196+
};
197+
var targetLanguage = new DefinitionLanguage
198+
{
199+
Locale = "DE",
200+
Name = "German"
201+
};
158202
string segmentText = "Insert your source segment text here";
159203
int maxResultsCount = 10;
160204
bool targetRequired = true;
@@ -171,87 +215,15 @@ var searchResults = terminologyProvider.Search(
171215

172216
// Process or display results as needed...
173217
```
174-
**Note:** Replace any references to `Sdl.Multiterm.TMO.Interop.dll` with the modern `TerminologyProviderManager` API. This ensures compatibility with Trados Studio 2024 SR1 and future releases, and aligns with Trados ongoing architectural updates.
218+
**Note:** Replace any references to `Sdl.Multiterm.TMO.Interop.dll` with the modern `TerminologyProviderManager` API. This ensures compatibility with Trados Studio - 2026 Release and future releases, and aligns with Trados ongoing architectural updates.
175219

176-
<br/>
177220

178-
## Credential Management Best Practices
221+
### Trados.Community.Toolkit (formally SDL.Community.Toolkit)
222+
A new version of the Trados Community Toolkit, version 6.0.2, has been released to support the latest version of Trados Studio - 2026 Release. This includes the following assemblies:
179223

180-
When building plugins or integrating third-party terminology and translation providers with Trados Studio, you should always manage credentials independently in your own codebase, especially when working with non-Trados services.
224+
- [Trados.Community.Toolkit.Core](https://www.nuget.org/packages/Trados.Community.Toolkit.Core)
225+
- [Trados.Community.Toolkit.LanguagePlatform](https://www.nuget.org/packages/Trados.Community.Toolkit.LanguagePlatform)
226+
- [Trados.Community.Toolkit.Integration](https://www.nuget.org/packages/Trados.Community.Toolkit.Integration)
227+
- [Trados.Community.Toolkit.FileType](https://www.nuget.org/packages/Trados.Community.Toolkit.FileType)
228+
- [Trados.Community.Toolkit.ProjectAutomation](https://www.nuget.org/packages/Trados.Community.Toolkit.ProjectAutomation)
181229

182-
**Key Points:**
183-
- Built-in credential storage in Trados Studio is only required when you need to access native Trados resources (e.g., file-based translation memories, Language Cloud).
184-
- For all other scenarios, including any third-party or custom service integration, you should implement your own secure mechanism for storing and retrieving credentials.
185-
- Managing credentials independently enhances security and gives you greater flexibility and control.
186-
187-
**Best Practice:**
188-
Always use your own secure credential management system, unless your integration specifically requires direct access to Trados resources.
189-
190-
---
191-
192-
### Example: Managing Credentials Securely
193-
Below is an example showing how you can implement credential management using Windows Credential Manager. This strategy may be adapted to use other secure stores as required by your environment or policies.
194-
195-
**Credential Store Interface:**
196-
```csharp
197-
public interface ICredentialStore
198-
{
199-
void SaveCredential(string key, string username, string password);
200-
(string Username, string Password)? GetCredential(string key);
201-
void RemoveCredential(string key);
202-
}
203-
```
204-
205-
**Sample Windows Credential Manager Implementation**
206-
*Install the [CredentialManagement](https://www.nuget.org/packages/CredentialManagement/) NuGet package for this sample:*
207-
208-
```csharp
209-
using CredentialManagement;
210-
211-
public class WindowsCredentialStore : ICredentialStore
212-
{
213-
public void SaveCredential(string key, string username, string password)
214-
{
215-
var cred = new Credential
216-
{
217-
Target = key,
218-
Username = username,
219-
Password = password,
220-
PersistanceType = PersistanceType.LocalComputer
221-
};
222-
cred.Save();
223-
}
224-
225-
public (string Username, string Password)? GetCredential(string key)
226-
{
227-
var cred = new Credential { Target = key };
228-
if (cred.Load())
229-
{
230-
return (cred.Username, cred.Password);
231-
}
232-
return null;
233-
}
234-
235-
public void RemoveCredential(string key)
236-
{
237-
var cred = new Credential { Target = key };
238-
cred.Delete();
239-
}
240-
}
241-
```
242-
243-
**How to Use in Your Integration**
244-
```csharp
245-
// Example usage
246-
var credentialStore = new WindowsCredentialStore();
247-
var credentials = credentialStore.GetCredential("your-provider-key");
248-
if (credentials.HasValue) {
249-
var username = credentials.Value.Username;
250-
var password = credentials.Value.Password;
251-
// Use credentials securely...
252-
} else {
253-
// Handle missing credentials scenario
254-
}
255-
```
256-
**Note:** Using your own credential store ensures future compatibility, enhances security, and keeps your integration flexible as Trados Studio and its APIs evolve.
257-

0 commit comments

Comments
 (0)