diff --git a/apiconcepts/releasenotes/overview.md b/apiconcepts/releasenotes/overview.md index f30897605e..7b02207b13 100644 --- a/apiconcepts/releasenotes/overview.md +++ b/apiconcepts/releasenotes/overview.md @@ -1,5 +1,7 @@ -Var:ProductName API Release Notes -============= +# Var:ProductName API Release Notes -A list of API changes released together with Var:ProductNameWithEdition. -[API Changes for Var:ProductNameWithEdition](tradosstudio2024.md) +This page provides an overview of API changes released with Var:ProductNameWithEdition. + +## Available release notes + +- [API Changes for Var:ProductNameWithEdition](tradosstudio2024.md) diff --git a/apiconcepts/releasenotes/tradosstudio2022.md b/apiconcepts/releasenotes/tradosstudio2022.md deleted file mode 100644 index 9c4d16b853..0000000000 --- a/apiconcepts/releasenotes/tradosstudio2022.md +++ /dev/null @@ -1,106 +0,0 @@ -Release Notes for Var:ProductNameWithEdition -=================== - -# Groupshare 2015 Integration -As of Var:ProductNameWithEdition the integration with Groupshare 2015 is EOL. Therefore the our public APIs no longer offer the support and any code references have been removed. - -# Project Automation API - -### New properties on [ProjectInfo](../../api/projectautomation/Sdl.ProjectAutomation.Core.ProjectInfo.yml) -We expanded the [ProjectInfo](../../api/projectautomation/Sdl.ProjectAutomation.Core.ProjectInfo.yml) class to include information regarding the current user associated to the project. -The `CurrentUserID` Property is identical to the user under which the API is running locally. For server-based projects this represents the ID of the user that is currently logged on to the server. - - Example: - ```cs - var projectInfo = filesController.CurrentProject.GetProjectInfo(); - - Console.WriteLine(projectInfo.CurrentUserId); - ``` -### Studio supported extensions -Added the [CommonFileExtensions](../../api/projectautomation/Sdl.ProjectAutomation.Core.CommonFileExtensions.yml) class which returns constants for Studio's most common file extensions. - - -# Integration API - -### Extended [FilesController](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.FilesController.yml) -The [FilesController](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.FilesController.yml) class now exposes a property called `SelectedTasks` which returns the list of tasks currently selected by the user on the UI. - -This allows the developers to interact with the selected tasks and not just the selected files on the Files View. - -Example: - - ```cs - var filesController = SdlTradosStudio.Application.GetController(); - var noTasksSelected = filesController.SelectedTasks.Count() == 0; - ``` -### Package conversion support -The Integration API introduces the concept of external package converter. This allows you to create package converters for integrations between different systems, for example WorldServer and TMS. - -Along with the external package extension, the `IProject` interface now can now return the [ProjectFileTypeConfiguration](../../api/projectautomation/Sdl.ProjectAutomation.Core.ProjectFileTypeConfiguration.yml) of that project. - -For more information see [Extend default packaging functionality](../integration/extend_standard_packaging_support.md). - -### Better control through [IExternalJob](../../api/integration/Sdl.Desktop.IntegrationApi.Jobs.IExternalJob.yml) -The `Execute()` method of the [IExternalJob](../../api/integration/Sdl.Desktop.IntegrationApi.Jobs.IExternalJob.yml) interface now receives an `IexternalJobExecutionContext` which allows you to see if the job was cancelled by the user or report the progress. - - Example: - ```cs - public class SampleJob : IExternalJobWithProgress - { - /// - /// - /// - /// - public SampleJob(){ } - - /// - /// - /// - public string JobName { get; set; } - IDictionary IExternalJob.JobData { get; set; } - - public event EventHandler ProgressReported; - - public void Execute(IExternalJobExecutionContext externalExecutionContext) - { - externalExecutionContext.ReportProgress(0, "Sample Job Started for package at location: "); - - System.Threading.Thread.Sleep(5000); - if (externalExecutionContext.CancelRequested) - { - externalExecutionContext.ReportProgress(0, "Job cancelled by user " ); - return; - } - ProgressReported?.Invoke(this, new JobProgressArgs() - { - PercentComplete = 50, - StatusMessage = "Sample Job Processing for package at location: " - }); - System.Threading.Thread.Sleep(5000); - externalExecutionContext.ReportProgress(100, "Sample Job Completed for package at location: " ); - } - - public void JobCanceled(object sender, EventArgs e) { } - } - ``` - -### Ability to inject custom wizard pages in the standard *Open Package* and *Create Return Package* wizards -We extended the [OpenProjectPackageEvent](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.Events.OpenProjectPackageEvent.yml) and [CreateReturnPackageEvent](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.Events.CreateReturnPackageEvent.yml) to allow you to inject wizard pages in the **Open Package** or **Create Return Package** wizards. The pages are added either as the first, or the last pages before processing the page. - - Example: - ```cs - var customPages = new List - { - new WsSettingsWizardPage(settingsProvider, pageLogger), - }; - - var command = new OpenProjectPackageEvent(packageFilePath: packageFilePath, - job: null, - iconPath: string.Empty, - projectOrigin: WorldServerConstants.ProjectOriginWorldServer, - firstPages: customPages, - lastPages: null); - - var eventAggregatorService = SdlTradosStudio.Application.GetService(); - eventAggregatorService.Publish(command); - ``` diff --git a/apiconcepts/releasenotes/tradosstudio2022sr1.md b/apiconcepts/releasenotes/tradosstudio2022sr1.md deleted file mode 100644 index cbce79e089..0000000000 --- a/apiconcepts/releasenotes/tradosstudio2022sr1.md +++ /dev/null @@ -1,174 +0,0 @@ -Release Notes for Var:ProductNameWithEdition SR1 -=================== - -# Retargeted assemblies -Some of the available APIs provided along with Var:ProductNameWithEdition 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](../../api/projectautomation/Sdl.ProjectAutomation.Settings.BatchProcessingGeneralSettings.yml) 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](../../api/translationmemory/Sdl.LanguagePlatform.TranslationMemory.FieldDefinitions.yml) and [TranslationProviderServer](../../api/translationmemory/Sdl.LanguagePlatform.TranslationMemoryApi.TranslationProviderServer.yml) - -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](../../api/core/Sdl.Core.Globalization.CultureCode.yml) 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](../../api/core/Sdl.Core.Globalization.Language.yml) object. -If the language is not found or the language code is incorrect [UnsupportedLanguageException](../../api/core/Sdl.Core.Globalization.UnsupportedLanguageException.yml) 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](../../api/core/Sdl.Core.Globalization.CultureCode.yml) 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 Var:ProductNameWithEdition 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 - - - - - - - - - - - - - - - - - - - - - - -``` diff --git a/apiconcepts/releasenotes/tradosstudio2022sr2.md b/apiconcepts/releasenotes/tradosstudio2022sr2.md deleted file mode 100644 index 067b6f86a4..0000000000 --- a/apiconcepts/releasenotes/tradosstudio2022sr2.md +++ /dev/null @@ -1,187 +0,0 @@ -Release Notes for Var:ProductNameWithEdition SR2 -=================== - -# Added API licensing support for subscriptions -When creating standalone apps, you can now use Project automation API calls that need a license even if Var:ProductName is licensed through a subscription. This expands the list of supported scenarios where Var:ProductName is licensed through a perpetual license, or through a network server license. - -> [!NOTE] -> -> Starting with Var:ProductNameWithEdition SR2, when developing a standalone application using Project Automation APIs that require a license, make sure to call `LicenseManager.ReleaseLicense()` before the application exits. See [Project Automation Overview](../projectautomation/overview.md) for more details. - -# Terminology Provider -The changes are included in `Sdl.Terminology.TerminologyProvider.Core`. - -## Classes -### Removed clsses -* AbstractTerminologyProvider - -### Updated classes - -#### [Definition](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Definition.yml) -* No longer implements interface `IDefinition`. -* Constructor definition changed. The new constructor definition: `public Definition(IEnumerable fields, IEnumerable languages)` - -#### [DefinitionLanguage](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.DefinitionLanguage.yml) -* No longer implements interface `IDefinitionLanguage`. -* The type of property `Local` was changed to [CultureCode](../../api/core/Sdl.Core.Globalization.CultureCode.yml) - -#### [DescriptiveField](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.DescriptiveField.yml) -* No longer implements interface `IDescriptiveField`. - -#### [Entry](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Entry.yml) -* No longer implements interface `IEntry`. -* The type of property `Languages` was changed to *IList<[EntryLanguage](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryLanguage.yml)>*. -* The type of property `Transactions` was changed to *IList<[EntryTransaction](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryTransaction.yml)>*. - -#### [EntryEventArgs](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryEventArgs.yml) -* Constructor definition changed to `EntryEventArgs(Entry entry)` -* The type of property `Entry` changed to [Entry](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Entry.yml) - -#### [EntryField](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryField.yml) -* No longer implements interface `IEntryField`. -* Type of property `Fields` was changed to *IList<[EntryField](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryField.yml)>*. - -#### [EntryLanguage](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryLanguage.yml) -* No longer implements interface `IEntryLanguage`. -* Type of property `Fields` was changed to *IList<[EntryField](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryField.yml)>* -* Type of property `Locale` was changed to [CultureCode](../../api/core/Sdl.Core.Globalization.CultureCode.yml). -* Type of property `ParentEntry` was changed to [Entry](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Entry.yml). -* Type of property `Terms` was changed to *IList<[EntryTerm](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryTerm.yml)>* - -#### [EntryTerm](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryTerm.yml) -* No longer implements interface `IEntryTerm`. -* Type of property `Fields` was changed to *IList<[EntryField](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryField.yml)>*. -* Type of property `ParentLanguage` was changed to [EntryLanguage](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryLanguage.yml) -* Type of property `Transactions` was changed to *IList<[EntryTransaction](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryTransaction.yml)>* - -#### [EntryTransaction](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.EntryTransaction.yml) -* No longer implements interface `IEntryTransaction`. - -#### [MarkupPosition](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.MarkupPosition.yml) -* No longer implements interface `IMarkupPosition`. - -#### [SearchMarkupResult](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.SearchMarkupResult.yml) -* No longer implements interface `ISearchMarkupResult`. -* No longer implements interface `ISearchResult`. -* Type of property `Positions` was changed to *IList<[MarkupPosition](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.MarkupPosition.yml)>* - -#### [SearchMarkupResultWithTermbaseName](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.SearchMarkupResultWithTermbaseName.yml) -* No longer implements interface `ISearchResultWithTermbaseName`. -* No longer implements interface `ISearchResult`. - -#### [SearchResult](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.SearchResult.yml) -* No longer implements interface `ISearchResult`. - -#### [SearchResultWithTermbaseName](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.SearchResultWithTermbaseName.yml) -* No longer implements interface `ISearchResultWithTermbaseName`. -* No longer implements interface `ISearchResult`. - -#### [TerminologyProviderManager](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.TerminologyProviderManager.yml) -* Implements interface `ITerminologyProviderManager` -* New method added `RemoveTerminologyProvider(Uri)` used to remove a terminology provider based on the provider [Uri](https://learn.microsoft.com/dotnet/api/system.uri) - -#### [TerminologyProviderStatus](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.TerminologyProviderStatus.yml) -* No longer implements interface `ITerminologyProviderStatus` - - -### Added classes -* [FilterDefinition](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.FilterDefinition.yml) which can be used to define the terminology provider filter - -## Interfaces - -### Removed interfaces -* IDefinition -* IDefinitionLanguage -* IDescriptiveField -* IEntry -* IEntryField -* IEntryLanguage -* IEntryTerm -* IEntryTransaction -* IMarkupPosition -* ISearchMarkupResult -* ISearchResult -* ISearchResultWithTermbaseName -* IServerBasedTerminologyProvider -* ITerminologyProviderStatus - -### Updated interfaces - -#### [IConnectionAwareTerminologyProvider](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.IConnectionAwareTerminologyProvider.yml) -* Type of property `Status` was changed to [TerminologyProviderStatus](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.TerminologyProviderStatus.yml) - -#### [ILanguage](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ILanguage.yml) -* Type of property `Locale` was changed to [CultureCode](../../api/core/Sdl.Core.Globalization.CultureCode.yml). - -#### [ITerminologyMarkupProvider](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyMarkupProvider.yml) -* Is no longer extended by interfaces `IConnectionAwareTerminologyProvider`, `ITerminologyProvider` and `IDisposable` -* Return type for method `SearchAndMarkup(string text, ILanguage source, ILanguage destination, int maxResultsCount, SearchMode mode, bool targetRequired)` was changed to *IList<[SearchMarkupResult](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.SearchMarkupResult.yml)>* - -#### [ITerminologyProvider](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProvider.yml) -* Added property `ActiveFilter { get; set; }` used to manage the active filter definition, it returns [FilterDefinition](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.FilterDefinition.yml). -* Added property `IsInitialized { get; }` used to track where the provider has been initialized, it returns a `boolean` value. -* Added method `GetFilters()` to get all the filters definitions available for the terminology provider, it returns *IList<[FilterDefinition](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.FilterDefinition.yml)>*. -* Added method `Initialize()` to be used for provider initialization, it returns a `boolean` value. -* Added method `Initialize(TerminologyProviderCredential credential)` to be used to initialize providers with credentials, it returns a `boolean` value. -* Added method `IsProviderUpToDate()` to be used to check if the provider information is up-to-date, it returns a `boolean` value. -* Added method `Uninitialize()` to be used to uninitialize the terminology provider, it returns a `boolean` value. -* Type of property `Definition` was changed to [Definition](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Definition.yml). -* Type returned by method `GetEntry(int)` was changed to [Entry](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Entry.yml). -* Type returned by method `GetEntry(int id, IEnumerable languages)` was changed to [Entry](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Entry.yml). -* Type returned by method `Search(string, ILanguage, ILanguage, int, SearchMode, bool)` was changed to *IList<[SearchResult](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.SearchResult.yml)>*. -#### [IFind](../../api/integration/Sdl.DesktopEditor.EditorApi.IFind.yml) -* Renamed `Match` property of type [ContentRange](../../api/integration/Sdl.DesktopEditor.EditorApi.ContentRange.yml), on the IFind interface to `MatchRange`. -* Added new property named `Match` of type `System.Text.RegularExpressions.Match`. - - -#### [ITerminologyProviderViewerWinFormsUI](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderViewerWinFormsUI.yml) -* Added property `CanAddTerm { get; }` that returns a `boolean` value, true if this component supports adding a term; otherwise, false. -* Added property `IsEditing { get; }` used to indicate whether the component TerminologyProviderViewerWinFormsUI is in edit mode, it returns a `boolean` value. -* Added method `CancelTerm()` used to cancel the current term editing operation. -* Added method `SaveTerm()` used to save the current state of a term. -* Type of property `SelectedTerm` was changed to [Entry](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Entry.yml). -* Type of parameter `term` of method `AddAndEditTerm` was changed to [Entry](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Entry.yml). The new method declaration is `void AddAndEditTerm(Entry term, string source, string target)`. -* Type of parameter `term` of method `EditTerm` was changed to [Entry](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Entry.yml). The new method declaration is `void EditTerm(Entry term)`. -* Type of parameters `source` and `target` of method `Initialize` was changed to [CultureCode](../../api/core/Sdl.Core.Globalization.CultureCode.yml). The new method declaration is `void Initialize(ITerminologyProvider terminologyProvider, CultureCode source, CultureCode target)`. -* Type of parameter `entry` of method `JumpToTerm` was changed to [Entry](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Entry.yml). The new method declaration is `void JumpToTerm(Entry entry)`. - -#### [ITerminologyProviderWinFormsUI](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderWinFormsUI.yml) -* Removed property `SupportsEditing`. -* Removed method `bool Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)`.Type - -### Added interfaces - -#### [ITerminologyProviderManager](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderManager.yml) -* This interface represents a mechanism responsible for creating and getting available terminology providers. -* Interface methods: - - [GetTerminologyProvider(Uri)](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderManager.yml#Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderManager_GetTerminologyProvider_System_Uri_): get an instance of a terminology provider, specified by its uri. - - [GetTerminologyProvider(Uri, ITerminologyProviderCredentialStore)](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderManager.yml##Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderManager_GetTerminologyProvider_System_Uri_Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderCredentialStore_): get an instance of a terminology provider, specified by its uri and the provider credentials. - - [GetTerminologyProviderViewerWinFormsUI(Uri)](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderManager.yml#Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderManager_GetTerminologyProviderViewerWinFormsUI_System_Uri_): returns the terminology provider viewer win forms UI object specific for the input URI. - - [GetTerminologyProviderViewerWinFormsUIs()](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderManager.yml#Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderManager_GetTerminologyProviderViewerWinFormsUIs): returns the list of available terminology provider viewer win forms UI. - - [GetTerminologyProviderWinFormsUI(Uri)](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderManager.yml#Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderManager_GetTerminologyProviderWinFormsUI_System_Uri_): returns the win forms UI for the specified terminology provider. - - [GetTerminologyProviderWinFormsUIs()](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderManager.yml#Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderManager_GetTerminologyProviderWinFormsUIs): returns the list of all available terminology providers that have implementations for win forms UI. - - [RemoveTerminologyProvider(Uri)](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderManager.yml#Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderManager_RemoveTerminologyProvider_System_Uri_): Remove a terminology provider based on uri. - - -#### [ITerminologyProviderWinFormsUIWithCreate](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderWinFormsUIWithCreate.yml) -* Adds the capability to create a `ITerminologyProvider`. -* Extends interface [ITerminologyProviderWinFormsUI](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderWinFormsUI.yml). -* Has method [Create()](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderWinFormsUIWithCreate.yml#Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderWinFormsUIWithCreate_Create) that allows the creation of an `ITerminologyProvider` from the UI. It returns a [ITerminologyProvider](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProvider.yml) - -#### [ITerminologyProviderWinFormsUIWithEdit](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderWinFormsUIWithEdit.yml) -* Adds the capability to edit settings. -* Extends interface [ITerminologyProviderWinFormsUI](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderWinFormsUI.yml). -* Has method [Edit(IWin32Window owner, ITerminologyProvider terminologyProvider)](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderWinFormsUIWithEdit.yml#Sdl_Terminology_TerminologyProvider_Core_ITerminologyProviderWinFormsUIWithEdit_Edit_System_Windows_Forms_IWin32Window_Sdl_Terminology_TerminologyProvider_Core_ITerminologyProvider_) used to display a dialog to interactively change any of the terminology provider settings. - -## Enums - -### Added enums - -#### [TerminologyImportType](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.TerminologyImportType.yml) -* Determines the import format. - -[TerminologyImportType](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.TerminologyImportType.yml) fields - -|Name|Description | -|----|-------------------------------------------------------------------------------------------------| -|MTF |Use MFT XML schema: https://developers.rws.com/multiterm-api-docs/apiconcepts/MTF/xsd_schema.html| diff --git a/apiconcepts/releasenotes/tradosstudio2024.md b/apiconcepts/releasenotes/tradosstudio2024.md deleted file mode 100644 index 4f5e8c9a51..0000000000 --- a/apiconcepts/releasenotes/tradosstudio2024.md +++ /dev/null @@ -1,43 +0,0 @@ -Release Notes for Var:ProductNameWithEdition -=================== - -# Trados Studio Automation -The changes are included in `Sdl.TranslationStudioAutomation.IntegrationApi`. - -## Classes -### Added Classes -* [EditDistanceComputeParams](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.EditDistanceComputeParams.yml) -* [SegmentOperations](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.SegmentOperations.yml) - * New method `Task GetEditDistanceAsync(ISegment original, ISegment updated, CultureCode cultureCode, EditDistanceComputeParams computeParams)` to compute the edit distance between two segments. - * New method `Task GetWordCountAsync(ISegment segment, CultureCode cultureCode)`to retrieve the word count for a given segment and culture. -* [TermRecognitionResultsController](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.Editor.TermRecognitionResults.TermRecognitionResultsController.yml) to return the results displayed in Studio TermRecognition view. - -### Updated Classes -* Added event handler `TranslationFinished` in [TranslationResultsController](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.Editor.TranslationResults.TranslationResultsController.yml) to identify when a translation is done. - -## Interfaces -### Added Interfaces -* [ITermRecognitionResultsController](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.Editor.TermRecognitionResults.ITermRecognitionResultsController.yml) - -### Updated Interfaces -* Added new event handler `SegmentTranslated` in [IStudioDocument](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.IStudioDocument.yml) to identify when an Apply Translation action is executed. -* Added new event handler `TranslationFinished` in [ITranslationResultsController](../../api/integration/Sdl.TranslationStudioAutomation.IntegrationApi.Editor.TranslationResults.ITranslationResultsController.yml) to identify when a translation is done. - -# Terminology Provider -The following changes are included in `Sdl.Terminology.TerminologyProvider.Core`. - -## [DescriptiveField](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.DescriptiveField.yml) -* Added new property `ShowInUI` to determine whether the field should be shown in the UI (e.g. term recognition results window). - -## [ITerminologyExport](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyExport.yml) -* Added new method `void Export(TerminologyExportType exportFormatType, string path, Dictionary exportProperties)` to perform a termbase export to a specific format. - -## [ITerminologyImport](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyImport.yml) -* Added new method `void Import(TerminologyImportType importType, List importFiles, Dictionary importProperties = null)` to import multiple files in a single call. - -## [TermbaseExportException](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.Exceptions.TermbaseExportException.yml) -* Added new exception to be used when a termbase export fails. - -# Editor API changes -The following changes are included in `Sdl.DesktopEditor.EditorApi`: -* Added new interface [IInteractiveAccessibleCustomColumn](../../api/integration/Sdl.DesktopEditor.EditorApi.IInteractiveAccessibleCustomColumn.yml) that exposes Accessibility Details. diff --git a/apiconcepts/releasenotes/tradosstudio2024sr1.md b/apiconcepts/releasenotes/tradosstudio2024sr1.md deleted file mode 100644 index 2eca2fc6bb..0000000000 --- a/apiconcepts/releasenotes/tradosstudio2024sr1.md +++ /dev/null @@ -1,72 +0,0 @@ -Release Notes for Var:ProductNameWithEdition SR1 -=================== - -# MultiTerm TMO Interop -`Sdl.Multiterm.TMO.Interop.dll` is no longer present in the install folder after the separation from MultiTerm. - -# Terminology API -These changes are included in the `Sdl.Terminology.TerminologyProvider.Core` assembly. - -[TerminologyUserManagerTokenType](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.TerminologyUserManagerTokenType.yml) enum is marked as obsolete. - -The following classes were marked as obsolete: -* [GenericCredentials](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.GenericCredentials.yml) -* [TerminologyProviderCredential](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.TerminologyProviderCredential.yml) -* [TerminologyProviderCredentialStore](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.TerminologyProviderCredentialStore.yml) - -The following interfaces were marked as obsolete: -* [ITerminologyProviderCredentialStore](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderCredentialStore.yml) -* [IConnectionAwareTerminologyProvider](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.IConnectionAwareTerminologyProvider.yml) -* [IFileBasedTerminologyProviderDefaultPath](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.IFileBasedTerminologyProviderDefaultPath.yml) -* [IMultipleTerminologyProvider](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.IMultipleTerminologyProvider.yml) -* [ITermbaseMetrics](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITermbaseMetrics.yml) -* [ITerminologyMarkupProvider](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyMarkupProvider.yml) -* [ITerminologyProviderReadOnly](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderReadOnly.yml) - -## [ITerminologyProvider](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProvider.yml) - -* Method `GetEntry(id, IEnumerable languages)` was marked as obsolete. -* Method `ITerminologyProvider.Initialize(TerminologyProviderCredential credential)` was marked as obsolete. - -## [ITerminologyProviderFactory](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderFactory.yml) - -* Method `CreateTerminologyProvider(Uri terminologyProviderUri, ITerminologyProviderCredentialStore credentials)` was marked as obsolete. - -## [ITerminologyProviderManager](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderManager.yml) - -* Method `GetTerminologyProvider(Uri uri, ITerminologyProviderCredentialStore credentials)` was marked as obsolete. -* Added method `GetTerminologyProvider(Uri uri)` to be used instead of `GetTerminologyProviderManager(Uri uri, ITerminologyProviderCredentialStore credentials)`. - -## [ITerminologyProviderWinFormsUI](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.ITerminologyProviderWinFormsUI.yml) - -* Method `Browse(IWin32Window owner, ITerminologyProviderCredentialsStore credentialStore)` was marked as obsolete. - -## [TerminologyProviderManager](../../api/terminology/Sdl.Terminology.TerminologyProvider.Core.TerminologyProviderManager.yml) - -* Property `DefaultTerminologyCredentialStore` was marked as obsolete and will return null. -* Method `GetTerminologyProvider(Uri uri, ITerminologyProviderCredentialStore credentials)` was marked as obsolete. -* Added method `Use GetTerminologyProvider(Uri uri)` to be used instead of `GetTerminologyProvider(Uri uri, ITerminologyProviderCredentialStore credentials)`. - -# TranslationMemory API -These changes are included in the `Sdl.LanguagePlatfrom.TranslationMemoryApi` assembly. - -The Sdl.LanguagePlatfrom.TranslationMemoryApi assembly now includes an [IAICompanion](../../api/translationmemory/Sdl.LanguagePlatform.TranslationMemoryApi.AICompanion.IAICompanion.yml) interface for plugging AI providers to be used as AI Companions in Studio. - -Added [LiteDocument](../../api/translationmemory/Sdl.LanguagePlatform.TranslationMemoryApi.LiteBCM.LiteDocument.yml) and [LiteFragment](../../api/translationmemory/Sdl.LanguagePlatform.TranslationMemoryApi.LiteBCM.LiteFragment.yml) classes used to structure and exchange translation content with AI companions. - -## [ISubsegmentTranslationMemoryLanguageDirection](../../api/translationmemory/Sdl.LanguagePlatform.TranslationMemoryApi.ISubsegmentTranslationMemoryLanguageDirection.yml) - -The method `SupportedSubsegmentMatchTypes()` was marked as obsolete. - -# Verification API -These changes are included in the `Sdl.Verification.Api` assembly. - -The following classes where marked as obsolete: -* [SerializeProfileVerifierAttribute](../../api/verification/Sdl.Verification.Api.SerializeProfileVerifierAttribute.yml) -* [TermPicklistField](../../api/verification/Sdl.Verification.Api.TermPicklistField.yml) - -The following interfaces where marked as obsolete: -* [ISerializeVerifierProfile](../../api/verification/Sdl.Verification.Api.ISerializeVerifierProfile.yml) -* [ITermVerifierContext](../../api/verification/Sdl.Verification.Api.ITermVerifierContext.yml) -* [ITermVerifierSettingsContext](../../api/verification/Sdl.Verification.Api.ITermVerifierSettingsContext.yml) -* [ITermVerifierSettingsContextAware](../../api/verification/Sdl.Verification.Api.ITermVerifierSettingsContextAware.yml) \ No newline at end of file diff --git a/apiconcepts/releasenotes/tradosstudio2026.md b/apiconcepts/releasenotes/tradosstudio2026.md new file mode 100644 index 0000000000..eb92e3d9df --- /dev/null +++ b/apiconcepts/releasenotes/tradosstudio2026.md @@ -0,0 +1,11 @@ +# Release Notes for Var:ProductNameWithEdition + +As part of our ongoing efforts to simplify and streamline the Trados Studio development experience, we are revisiting the existing Trados Studio APIs. During this process, several classes, interfaces, and methods that were identified as redundant or unnecessarily complex have been removed. + +Looking ahead, we plan to gradually phase out portions of the current API set and replace them with APIs aligned with the new Trados Studio architecture. This transition is intended to improve performance, provide a consistent developer experience, and simplify plugin integration. Our goal is to make this transition as smooth as possible, and we will provide ample notice whenever an API is deprecated and before it is eventually removed. + +In addition, direct interaction with Trados GroupShare resources will be limited. For all server-based resource interactions, we strongly recommend using the GroupShare API Toolkit, which is designed specifically for secure and efficient integration with GroupShare services. You can find resources [here](https://developers.rws.com/groupshare-api-docs/apiconcepts/overview.html). + +We value feedback from our developer community. Share your thoughts, implementation experiences, and questions regarding these changes on the [Trados Studio Developers Forum](https://community.rws.com/developers-more/trados-portfolio/trados-studio-developers/f/sdk_qa). Your input will help refine the APIs and ensure a smoother transition to the new architecture. + +You can find the complete set of changes in the [How to Upgrade section of the documentation](../../articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio.md), which includes detailed information on the removed APIs, their replacements, and guidance on how to update your existing plugins. We encourage all developers to review this section carefully to understand the implications of these changes and to plan for necessary updates to their plugins. \ No newline at end of file diff --git a/apiconcepts/toc.yml b/apiconcepts/toc.yml index 8ac9c8afcb..7fa1ada941 100644 --- a/apiconcepts/toc.yml +++ b/apiconcepts/toc.yml @@ -840,7 +840,5 @@ - name: Release Notes href: releasenotes/overview.md items: - - name: Release Notes for Trados Studio 2024 - href: releasenotes/tradosstudio2024.md - - name: Release Notes for Trados Studio 2024 SR1 - href: releasenotes/tradosstudio2024sr1.md \ No newline at end of file + - name: Release Notes for Trados Studio 2026 + href: releasenotes/tradosstudio2026.md \ No newline at end of file diff --git a/index.md b/index.md index 3e97ad8b37..bdd2a8daf9 100644 --- a/index.md +++ b/index.md @@ -1,24 +1,21 @@ -# Access the Var:ProductNameWithEdition APIs +# Introduction to Var:ProductNameWithEdition APIs -## [Getting started with Var:ProductNameWithEdition APIs](articles/gettingstarted/studio_plugin_overview.md) -Read more on how you can write your first Var:ProductName plugin. +Explore the Var:ProductNameWithEdition APIs to enhance your development experience. This page provides resources, guides, and links to help you get started. -## [Learn more about Var:ProductNameWithEdition APIs](apiconcepts/overview.md) -Learn more about the APIs and what you can achieve with them. +## Getting Started +[Write Your First Plugin](articles/gettingstarted/studio_plugin_overview.md) — Learn how to create your first Var:ProductName plugin. -## [How to update classic plugins to Var:ProductNameWithEdition](articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio.md) -Learn more about how you can make your plugin compatible with Var:ProductNameWithEdition. +[API Overview](apiconcepts/overview.md) — Discover the capabilities of Var:ProductNameWithEdition APIs and what you can achieve. -⚠️ Note: Trados Studio 2026 Release will also support a new plugin system, check back for details on the new plugin system when it is made available. +[Update Plugins From Previous Versions](articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio.md) — Make your plugin compatible with Var:ProductNameWithEdition. -## [Articles](articles/intro.md) -Read articles on how to get more out of Var:ProductName. +> [!NOTE] +> The Trados Studio 2026 release will introduce a new plugin system. Check back for updates when it becomes available. -## [Code samples](https://github.com/RWS/trados-studio-api-samples) -Find more of our code samples on [GitHub](https://github.com/RWS/trados-studio-api-samples). +## Resources +[Articles](articles/intro.md) — Get tips and insights to maximize your use of Var:ProductName. -## [Open Source Community Projects](https://github.com/RWS/Sdl-Community) -Join our community-driven repository of Var:ProductName plugins on [RWS Community](https://github.com/RWS/Sdl-Community). +[Code Samples](https://github.com/RWS/trados-studio-api-samples) — Browse our collection of code samples on GitHub. ## Var:ProductName API versions @@ -32,9 +29,4 @@ Join our community-driven repository of Var:ProductName plugins on [RWS Communit ### [Var:ProductName 2022 - API 17.0](http://developers.rws.com/studio-api-docs/17.0/index.html) -### [Var:ProductName 2021 SR2 - API 16.2](http://developers.rws.com/studio-api-docs/16.2/index.html) - -### [Var:ProductName 2021 SR1 - API 16.1](http://developers.rws.com/studio-api-docs/16.1/index.html) - -### [Var:ProductName 2019 - API 15.2](http://developers.rws.com/studio-api-docs/15.2/index.html)