Release Notes for Trados Studio 2024 SR1
Retargeted assemblies
Some of the available APIs provided along with Trados Studio 2024 have been retargeted from .NET Framework 4.8 to .NET Standard for better compatibility options and richer overall support.
At the time of this release, the retargeted assemblies are as follows:
Parent API | Assembly |
---|---|
Integration API | Sdl.TranslationStudioAutomation.IntegrationApi.dll |
LanguageCloud Identity API | Sdl.LanguageCloud.IdentityAPI.dll |
ProjectAutomation API
These changes are included in the Sdl.ProjectAutomation.Settings
assembly
- The Sdl.ProjectAutomation.Settings assembly now includes a BatchProcessingGeneralSettings class which determines whether the Pre-Translate and Analyze batch tasks should use subsegment optimization.
- Completely removed the following properties marked as obsolete in previous versions:
- ProjectsController.CurrentProjectChanging
- TranslationMemoryUpdateTaskSettings.AlwaysAddNewTranslation
- TranslationMemoryUpdateTaskSettings.OverwriteExistingTranslation
- TranslationMemoryUpdateTaskSettings.LeaveUnchangedTranslation
- TranslationMemoryUpdateTaskSettings.KeepMostRecentTranslation
LanguageCloud Identity API
These changes are included in the Sdl.LanguageCloud.IdentityAPI
assembly.
Completely removed the following property marked as obsolete in previous versions:
- LanguageCloudIdentityApi.ApiKey
TranslationMemory API
These changes are included in the Sdl.LanguagePlatfrom.TranslationMemoryAPI
assembly.
The following unused classes were removed:
- ImportExportResponse
- ScheduledFieldApplyOperation
- ScheduledLanguageResourcesApplyOperation
- TranslationMemoryQueryFilters
The following unused enums were removed:
- LanguageDirectionProperties
- DatabaseServerProperties
- FieldsTemplateProperties
- LanguageResourcesTemplateProperties
- ContainerProperties
- TranslationSequenceProperties
The following unused properties were removed:
- ScheduledServerTranslationMemoryImport.FileName
- ServerBasedFieldsTemplate.TranslationMemories
- ServerBasedFieldsTemplate.CurrentFieldApplyOperation
- ServerBasedLanguageResourcesTemplate.CurrentLangResApplyOperation
The following obsolete methods were removed:
- FieldDefinition.ctor(Field field, bool isReadOnly);
- TranslationProviderServer.GetDatabaseServer(Guid id, DatabaseServerProperties additionalProperites)
- TranslationProviderServer.GetDatabaseServer(string path, DatabaseServerProperties additionalProperties)
- TranslationProviderServer.GetContainer(Guid id, ContainerProperties additionalProperties)
- TranslationProviderServer.GetContainer(string path, ContainerProperties additionalProperties)
- TranslationProviderServer.GetContainers(ContainerProperties additionalProperties)
- TranslationProviderServer.GetFieldsTemplate(Guid id, FieldsTemplateProperties additionalProperties)
- TranslationProviderServer.GetFieldsTemplate(string path, FieldsTemplateProperties additionalProperties)
- TranslationProviderServer.GetLanguageResourcesTemplate(Guid id, LanguageResourcesTemplateProperties additionalProperties)
- TranslationProviderServer.GetLanguageResourcesTemplate(string path, LanguageResourcesTemplateProperties additionalProperties)
- TranslationProviderServer.GetContainer(string path, ContainerProperties additionalProperties)
- TranslationProviderServer.GetTranslationMemories(TranslationMemoryProperties additionalProperties)
- TranslationProviderServer.GetDatabaseServers(DatabaseServerProperties additionalProperties)
- TranslationProviderServer.GetFieldsTemplates(FieldsTemplateProperties additionalProperties, bool includeTmSpecific = true)
- TranslationProviderServer.GetLanguageResourcesTemplates(LanguageResourcesTemplateProperties additionalProperties,bool includeTmSpecific = true)
- TranslationProviderServer.DeleteBackgroundTask(Guid taskId)
- TranslationProviderServer.DeleteBackgroundTasks(ICollection
tasksIdentities) - TranslationProviderServer.GetDefaultLanguageResources(CultureInfo language)
- TranslationProviderServer.GetDefaultLanguageResources(string languageCode)
- TranslationProviderServer.GetTranslationMemoriesQueryFilters()
For more information please see FieldDefinition and TranslationProviderServer
Recommended replacements for deprecated API. Please refer to the following table:
Removed API | Recommended replacement |
---|---|
GetDatabaseServer(Guid id, DatabaseServerProperties additionalProperites) | GetDatabaseServer(Guid id) |
GetDatabaseServer(string path, DatabaseServerProperties additionalProperties) | GetDatabaseServer(string path) |
GetContainer(Guid id, ContainerProperties additionalProperties) | GetContainer(Guid id) |
GetContainer(string path, ContainerProperties additionalProperties) | GetContainer(string path) |
GetContainers(ContainerProperties additionalProperties) | GetContainers() |
GetFieldsTemplate(Guid id, FieldsTemplateProperties additionalProperties) | GetFieldsTemplate(Guid id) |
GetFieldsTemplate(string path, FieldsTemplateProperties additionalProperties) | GetFieldsTemplate(string path) |
GetLanguageResourcesTemplate(Guid id, LanguageResourcesTemplateProperties additionalProperties) | GetLanguageResourcesTemplate(Guid id) |
GetLanguageResourcesTemplate(string path, LanguageResourcesTemplateProperties additionalProperties) | GetLanguageResourcesTemplate(string path) |
GetTranslationMemories(TranslationMemoryProperties additionalProperties) | GetTranslationMemories() |
GetDatabaseServers(DatabaseServerProperties additionalProperties) | GetDatabaseServers() |
GetFieldsTemplates(FieldsTemplateProperties additionalProperties, bool includeTmSpecific = true) | GetFieldsTemplates(bool includeTmSpecific = true) |
GetLanguageResourcesTemplates(LanguageResourcesTemplateProperties additionalProperties,bool includeTmSpecific = true) | GetLanguageResourcesTemplates(bool includeTmSpecific = true) |
General API changes
Third-party developers now have access to Trados Studio's custom language registry, which offers finer control over language management than the language registry provided by Microsoft.
Following this change, CultureCode is now the recommended alternative to the standard CultureInfo.
To ensure compatibility with Studio and other RWS system interfacing with Studio, fetch the language info using our internal language registry:
Example:
```cs
try
{
var language = LanguageRegistryApi.Instance.GetLanguage("fr-FR");
}
catch(UnsupportedLanguageException ex)
{
// language is not suported
}
```
This method returns a Language object. If the language is not found or the language code is incorrect UnsupportedLanguageException is thrown.
CultureInfo objects are still accessible via the following call:
Example:
```cs
var ci = LanguageRegistryApi.Instance.GetLanguage("fr-FR").CultureInfo;
```
Use of the .NET runtime language registry, such as the following example, is not recommended as it may have unexpected results.
Example:
```cs
// These lines create CultureInfo from .NET runtime, so results can vary across platforms and Windows OS versions
var ci = new CultureInfo("en-US");
ci = CultureInfo.GetCultureInfo("en-US");
```
??
To ensure consistency across the application when comparing the string representation of the language codes, we recommend using the CultureCode wrapper.
Example:
```cs
var cultureCode = new CultureCode("fr-FR");
```
Dependency version changes
The following is a list of known dependency version changes that may influence your integration with the latest Trados Studio 2024 APIs; this is typically seen from standalone applications that are running outside of the Trados Studio context. To resolve these references, include the following binding redirects in the configuration file of the project.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="icu.net" publicKeyToken="416fdd914afa6b66" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.7.0.0" newVersion="2.7.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.SqlClient" publicKeyToken="23ec7fc2d6eaa4a5" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>