diff --git a/apiconcepts/batchtasks/adding_a_settings_ui_to_our_batch_tasks.md b/apiconcepts/batchtasks/adding_a_settings_ui_to_our_batch_tasks.md
index f21ac24811..b7b17d060d 100644
--- a/apiconcepts/batchtasks/adding_a_settings_ui_to_our_batch_tasks.md
+++ b/apiconcepts/batchtasks/adding_a_settings_ui_to_our_batch_tasks.md
@@ -1,9 +1,7 @@
-Adding a Settings UI to our Batch Task
-===============================
-Add a settings page to your batch task so that users can select the status that defines whether the content of a particular segment pair shall be exported to a text file.
+# Adding a Settings UI to Our Batch Task
+Add a settings page to your batch task so that users can select the status that determines whether the content of a segment pair is exported to a text file.
-The User Control
--------------------------
+## Add the User Control
In your Visual Studio project, go to the empty **MyCustomBatchTaskSettingsControl.cs** control and add the following UI elements:
Add the following list items to the dropdown list element (which we name **combo_Status**):
@@ -15,79 +13,76 @@ Add the following list items to the dropdown list element (which we name **combo
* Signed-off
* Sign-off rejected
-The Class that Controls the Plug-in Settings
------------------------------------
+## Configure the Plug-in Settings Class
Open the **MyCustomBatchTaskSettings.cs** class, which has been automatically added to your Visual Studio project. This is the class that we use to programmatically access the settings configured by the elements on the user control UI.
This class needs to inherit the following class:
-# [The Settings Class](#tab/tabid-1)
+### [The Settings Class](#tab/tabid-1)
[!code-csharp[MyCustomBatchTaskSettings](code_samples/MyCustomBatchTaskSettings.cs#L6-L7)]
***
Here we declare the default setting value, which is the integer value '2' and corresponds to the confirmation level 'Translated':
-# [The Default Setting Value](#tab/tabid-2)
+### [The Default Setting Value](#tab/tabid-2)
[!code-csharp[MyCustomBatchTaskSettings](code_samples/MyCustomBatchTaskSettings.cs#L11-L12)]
***
-The following member gets or to sets the value used for the plug-in settings. In this implementation there is only one integer value that defines the confirmation level:
-# [Getting or Setting the Value](#tab/tabid-3)
+The following member gets or sets the value used for the plug-in settings. In this implementation, there is only one integer value that defines the confirmation level:
+### [Getting or Setting the Value](#tab/tabid-3)
[!code-csharp[MyCustomBatchTaskSettings](code_samples/MyCustomBatchTaskSettings.cs#L17-L22)]
***
Then we add the following member, which sets the confirmation property to the default value when the user clicks the corresponding button on the UI.
-# [Configuring the Default Setting](#tab/tabid-4)
+### [Configuring the Default Setting](#tab/tabid-4)
[!code-csharp[MyCustomBatchTaskSettings](code_samples/MyCustomBatchTaskSettings.cs#L26-L31)]
***
Finally, the following member is added to retrieve the default value for the confirmation level property of our implementation:
-# [Getting the Default Value](#tab/tabid-5)
+### [Getting the Default Value](#tab/tabid-5)
[!code-csharp[MyCustomBatchTaskSettings](code_samples/MyCustomBatchTaskSettings.cs#L35-L44)]
***
-Adding Functionality to the User Control
------------------------------------------
+## Implement User Control Functionality
Open the code view of the user control **MyCustomBatchTaskSettingsControl.cs**. This control implements the following interfaces:
-# [The User Settings Interfaces](#tab/tabid-6)
+### [The User Settings Interfaces](#tab/tabid-6)
[!code-csharp[MyCustomBatchTaskSettingsControl](code_samples/MyCustomBatchTaskSettingsControl.cs#L8-L9)]
***
The following mandatory member needs to be implemented to set and get the settings properties from the **MyCustomBatchTaskSettings** class:
-# [Getting and Setting the Properties](#tab/tabid-7)
+### [Getting and Setting the Properties](#tab/tabid-7)
[!code-csharp[MyCustomBatchTaskSettingsControl](code_samples/MyCustomBatchTaskSettingsControl.cs#L13-L14)]
***
The following member initializes the user control:
-# [User Control Initialisation](#tab/tabid-8)
+### [User Control Initialisation](#tab/tabid-8)
[!code-csharp[MyCustomBatchTaskSettingsControl](code_samples/MyCustomBatchTaskSettingsControl.cs#L18-L22)]
***
The following member sets the settings on the UI control:
-# [Setting the Settings](#tab/tabid-9)
+### [Setting the Settings](#tab/tabid-9)
[!code-csharp[MyCustomBatchTaskSettingsControl](code_samples/MyCustomBatchTaskSettingsControl.cs#L26-L32)]
***
The following member updates the settings on the UI control:
-# [Updating the Settings](#tab/tabid-10)
+### [Updating the Settings](#tab/tabid-10)
[!code-csharp[MyCustomBatchTaskSettingsControl](code_samples/MyCustomBatchTaskSettingsControl.cs#L36-L39)]
***
The above member is called by the following function:
-# [Updating the UI](#tab/tabid-11)
+### [Updating the UI](#tab/tabid-11)
[!code-csharp[MyCustomBatchTaskSettingsControl](code_samples/MyCustomBatchTaskSettingsControl.cs#L43-L48)]
***
When the UI control is loaded, its control elements are populated with the corresponding values:
-# [Loading the UI](#tab/tabid-12)
+### [Loading the UI](#tab/tabid-12)
[!code-csharp[MyCustomBatchTaskSettingsControl](code_samples/MyCustomBatchTaskSettingsControl.cs#L53-L58)]
***
When the user clicks the **Restore Defaults** button, the UI controls are set to their default values:
-# [Restoring the Defaults](#tab/tabid-13)
+### [Restoring the Defaults](#tab/tabid-13)
[!code-csharp[MyCustomBatchTaskSettingsControl](code_samples/MyCustomBatchTaskSettingsControl.cs#L62-L68)]
***
-The Settings UI Container
--------------------------------------
+## Understand the Settings UI Container
Note the **MyCustomBatchTaskSettingsPage.cs** class, which has been added to the project by default. This is the class that references the settings UI and the class that controls the UI. Without the settings page class the plug-in would not be aware of the settings UI. It enables the settings UI to be shown when you reach the **Settings** page of the plug-in:
diff --git a/apiconcepts/batchtasks/overview.md b/apiconcepts/batchtasks/overview.md
index 7cfbca7c36..91cf41b567 100644
--- a/apiconcepts/batchtasks/overview.md
+++ b/apiconcepts/batchtasks/overview.md
@@ -1,31 +1,40 @@
-Batch Tasks Overview
-====================
+# Batch Tasks Overview
-This section gives an overview of what batch tasks in Var:ProductName are and what they are used for.
+This section provides an overview of batch tasks in Var:ProductName and their main use cases.
-What are Batch Tasks?
-----------------------
+## What Are Batch Tasks?
-Batch tasks are used to process one or many project files in Var:ProductName. There are several built-in batch tasks, for example, for analysing and pre-translating files. Batch tasks are most frequently applied to the bilingual SDLXliff files, but can also be used to process native file formats (for example, DOCX or PPTX). Batch tasks are typically used to:
-* Alter the content of files (for example, the **Pre-translate Files** task inserts matches from a translation memory into the selected files).
-* Read the content of files and compile a report (e.g. the **Analyze Files** task that determines the translation memory leverage for selected files).
-* Extract content from the selected files to write them into another file format (for example, the **Export for External Review**) task that generated bilingual Microsoft Word tables from SDLXliff files.
-
-The only standard batch task that works directly on the native files is the **Convert to Translatable Format** task, which converts native files (for example, DOCX) to SDLXliff.
+Batch tasks process one or multiple project files in Var:ProductName. Several built-in tasks are available, such as analyzing and pre-translating files. Batch tasks are most commonly applied to bilingual SDLXliff files, but they can also process native file formats (for example, DOCX or PPTX).
+
+Batch tasks are typically used to:
+* Modify file content (for example, the **Pre-translate Files** task inserts translation memory matches into selected files).
+* Read file content and compile a report (for example, the **Analyze Files** task determines translation memory leverage for selected files).
+* Extract content and generate another file format (for example, the **Export for External Review** task generates bilingual Microsoft Word tables from SDLXliff files).
+
+The only standard batch task that works directly on native files is the **Convert to Translatable Format** task, which converts native files (for example, DOCX) to SDLXliff.
+
+## Running Batch Tasks
End users can run batch tasks by selecting them from a list in the Var:ProductName user interface.
-
-Batch tasks are also typically executed when creating a project. In this case, batch tasks are applied to the project files in a sequence, for example:
-
+
+
+Batch tasks are also commonly executed when creating a project. In this case, tasks are applied to project files in sequence.
+
+
+## Viewing Task Information
+
+Batch tasks are shown in the Var:ProductName user interface with a name and description.
+
+
+Batch tasks are then applied to one or multiple files.
+
+
+## Configuring Settings
-Batch tasks are shown the Var:ProductName user interface with a name and a description, for example:
-
+Batch tasks can include settings that you configure through a property page. For example, the analysis task includes a setting that determines whether cross-file repetitions are reported.
+
-Batch tasks are then applied to one or multiple files, e.g.:
-
+## Reviewing Reports
-Batch tasks can have settings that you can configure through a property page. For the analysis task, for example, there is a setting that determines whether cross-file repetitions should be reported or not, for example:
-
-
-Batch tasks can also generate a report that the user can view and print. For the analysis task, the report states the number of no matches, fuzzy matches, exact matches, repetitions, etc.
-
+Batch tasks can also generate reports that users can view and print. For the analysis task, the report includes values such as no matches, fuzzy matches, exact matches, and repetitions.
+
diff --git a/apiconcepts/batchtasks/processing_files_and_application_logic.md b/apiconcepts/batchtasks/processing_files_and_application_logic.md
index 795e360966..a552be9fff 100644
--- a/apiconcepts/batchtasks/processing_files_and_application_logic.md
+++ b/apiconcepts/batchtasks/processing_files_and_application_logic.md
@@ -1,76 +1,72 @@
# Processing Files and Application Logic
-Implement the functionality that changes the status of document segments.
+Implement this functionality to update the status of document segments.
-How to trigger the batch task
----------------------------
-Go back to the **MyCustomBatchTask.cs** class. This class is triggered when you decide to run the batch task. This class inherits from the following abstract class:
+## Triggering the Batch Task
+Go to the **MyCustomBatchTask.cs** class. This class is triggered when you run the batch task. It inherits from the following abstract class:
# [The Abstract Task Class](#tab/tabid-1)
[!code-csharp[MyCustomBatchTask](code_samples/MyCustomBatchTask.cs#L30-L31 "The Abstract Task Class")]
***
-Declare a member that stores the plug-in settings, as well as a string variable that is used to construct the XML stream for the task report content:
+Declare a member to store the plug-in settings, and a string variable used to construct the XML stream for the task report content:
# [The Task Settings](#tab/tabid-2)
[!code-csharp[MyCustomBatchTask](code_samples/MyCustomBatchTask.cs#L35-L39 "The Task Settings")]
****
-Initialise the task settings object and start constructing the report XML string by adding the root element. The root element should contain the selected confirmation level value in an attribute:
+Initialize the task settings object and start constructing the report XML string by adding the root element. The root element should include the selected confirmation level value as an attribute:
# [Report XML String](#tab/tabid-3)
[!code-csharp[MyCustomBatchTask](code_samples/MyCustomBatchTask.cs#L43-L50 "Report XML String")]
***
-How to process the SDLXliff file
------------------------------------
-You can programmatically access the file that is currently processed through the following member. In a "Hello World"-type implementation you could output the name and path of the processed file.
+## Processing the SDLXliff File
+You can programmatically access the file currently being processed through the following member. In a "Hello World" implementation, you could output the name and path of the processed file.
# [Configuring the Converter](#tab/tabid-4)
[!code-csharp[MyCustomBatchTask](code_samples/MyCustomBatchTask.cs#L54-L71 "Configuring the Converter")]
***
-As SDLXliff is an XML-compliant file type, you could process it using the standard XML API. However, we recommend that you use the Var:ProductName Bilingual API to process the file. This way, we add a new class to our project called **FileReader.cs**.
+SDLXliff is an XML-compliant file type, so you could process it through the standard XML API. However, we recommend using the Var:ProductName Bilingual API. To do this, add a new class to your project called **FileReader.cs**.
-The **FileReader.cs** class needs to reference the following libraries:
+The **FileReader.cs** class must reference the following libraries:
```cs
using Sdl.Core.Globalization
using Sdl.FileTypeSupport.Framework.BilingualApi
```
-It also needs to inherit from the following abstract class:
+It must also inherit from the following abstract class:
# [Abstract class to Implement](#tab/tabid-5)
[!code-csharp[FileReader](code_samples/FileReader.cs#L15-L17 "Abstract class to Implement")]
***
-Add the following members to store the task settings, the file name and path of the SDLXliff file to be processed, and the text file name and path that is used to output the exported segments:
+Add the following members to store the task settings, the file name and path of the SDLXliff file to process, and the text file name and path used to output the exported segments:
# [The Required Variables](#tab/tabid-6)
[!code-csharp[FileReader](code_samples/FileReader.cs#L21-L26 "The Required Variables")]
***
-How to output the segment content to a text file
-------------------------------------------------
-With the following member we start by creating the text output file. This file is created in the same folder as the corresponding SDLXliff file and the *.txt extension is appended.
+## Outputting Segment Content to a Text File
+Use the following member to create the text output file. This file is created in the same folder as the corresponding SDLXliff file, with the *.txt extension appended.
# [Creating the Output File](#tab/tabid-7)
[!code-csharp[FileReader](code_samples/FileReader.cs#L40-L44 "Creating the Output File")]
***
-In the next step, we loop through each paragraph unit of the SDLXliff file. We make sure to process only paragraph units that actually contain segments. When we encounter a paragraph unit that only contains structure tags (i.e. no localizable segments), we abort. When looping through the segment pairs, we write all segments with the selected confirmation status to the output text file:
-# [Outputing the Segment Pairs](#tab/tabid-8)
+Next, loop through each paragraph unit in the SDLXliff file. Process only paragraph units that contain segments. When a paragraph unit contains only structure tags (that is, no localizable segments), skip it. While looping through segment pairs, write all segments with the selected confirmation status to the output text file:
+# [Outputting the Segment Pairs](#tab/tabid-8)
[!code-csharp[FileReader](code_samples/FileReader.cs#L48-L68 "Outputing the Segment Pairs")]
***
-Once the file processing is done, we close the text output file.
+Once file processing is complete, close the text output file.
# [File is Complete](#tab/tabid-9)
[!code-csharp[FileReader](code_samples/FileReader.cs#L72-L77 "File is Complete")]
***
-The following member is required by the interface, although our implementation does not actually use it. The file complete member is called when processing a file is finished. However, as users could merge SDLXliff files, the following member must be present to determine what happens when the process has been completed for the entire merged file.
+The following member is required by the interface, although this implementation does not use it directly. The file complete member is called when file processing finishes. Because users can merge SDLXliff files, this member must be present to determine what happens when processing is complete for the entire merged file.
# [Job is Complete](#tab/tabid-10)
[!code-csharp[FileReader](code_samples/FileReader.cs#L81-L88 "Job is Complete")]
***
-How to complete the Report String
-----------------------------------------
-Go back to the **MyCustomBatchTask.cs** class. Here we do the following:
+## Completing the Report String
+Go back to the **MyCustomBatchTask.cs** class. Then do the following:
-We continue constructing the XML string for the report by adding the name of the file currently processed, its target language and the date/time at which it was processed.
+Continue constructing the XML string for the report by adding the name of the file currently processed, its target language, and the date and time it was processed.
-We create a **FileReader** object to which we pass the current SDLXliff file name, as well as our settings object:
+Create a **FileReader** object and pass the current SDLXliff file name and your settings object:
# [Configure converter](#tab/tabid-11)
[!code-csharp[MyCustomBatchTask](code_samples/MyCustomBatchTask.cs#L54-L71 "Configure converter")]
***
-We complete the task by adding the closing XML report string with the closing root element. Then we generate the report using the **CreateReport** method implemented by the interface.
+Complete the task by adding the closing XML report string with the closing root element. Then generate the report by using the **CreateReport** method implemented by the interface.
# [Complete task and report string](#tab/tabid-12)
[!code-csharp[MyCustomBatchTask](code_samples/MyCustomBatchTask.cs#L75-L85 "Complete task and report string")]
***
-This method requires the report name, description and the XML string for the report content. You may also add an optional language direction parameter. If this parameter is missing, the report will not be listed under the specific target language, but rather above all available target languages of the corresponding project.
+This method requires the report name, description, and the XML string for the report content. You may also add an optional language direction parameter. If this parameter is omitted, the report is not listed under a specific target language, but above all available target languages for the corresponding project.
diff --git a/apiconcepts/batchtasks/rendering_the_task_report.md b/apiconcepts/batchtasks/rendering_the_task_report.md
index 7b01258ed7..5714b6d121 100644
--- a/apiconcepts/batchtasks/rendering_the_task_report.md
+++ b/apiconcepts/batchtasks/rendering_the_task_report.md
@@ -1,17 +1,22 @@
-Rendering the Task Report
-============================
-Configure the report of your custom batch task.
+# Rendering the Task Report
+Learn how to configure and render the report for your custom batch task in Var:ProductName.
-How to render the Task Report XML with XSLT
------------------------------------
+## How to Render the Task Report XML with XSLT
-Follow the next steps to add a report. During the application logic implementation, you already learned that you need to construct an XML string for the report content. When you call the **CreateReport()** method you pass the report content
- XML to this method.
+To add a report, follow these steps:
-For Var:ProductName to render the report XML, you need to develop a matching XSL stylesheet and add it to your project and make sure that in your Visual Studio project file the stylesheet is included as an embedded resource:
-# [XSLT Stylesheet](#tab/tabid-1)
+1. Construct an XML string for the report content during the application logic implementation.
+2. Call the **CreateReport()** method and pass the XML string as the report content.
+
+To render the report XML in Var:ProductName:
+
+1. Develop a matching XSL stylesheet.
[!code-xml[ReportXSLT](code_samples/Stylesheet.xsl)]
+
+2. Add the stylesheet to your project.
+3. Ensure the stylesheet is included as an embedded resource in your Visual Studio project file.
+
***
-When rendered in Studio, the report looks as shown below:
-
+When rendered in Var:ProductName, the report appears as shown below:
+
diff --git a/apiconcepts/batchtasks/setting_up_the_visual_studio_project.md b/apiconcepts/batchtasks/setting_up_the_visual_studio_project.md
index 1818905113..3acfddbafb 100644
--- a/apiconcepts/batchtasks/setting_up_the_visual_studio_project.md
+++ b/apiconcepts/batchtasks/setting_up_the_visual_studio_project.md
@@ -1,48 +1,43 @@
-Setting up the Visual Studio project
-====================================
-To start setting up your batch task plug-in project, you need to generate a plug-in that can compile and that implements an empty batch task which can be seen and selected in Var:ProductName. For the moment, it will not contain any application logic, that is it will not actually perform a real task.
+# Setting Up the Visual Studio Project
+Learn how to set up a batch task plug-in project in Var:ProductName. This guide helps you create a plug-in that compiles and implements an empty batch task visible in Var:ProductName. Initially, the plug-in does not contain application logic or perform any tasks.
-How to create the Visual Studio Project
-----------------------------------
-Assuming that you already installed the Visual Studio extension Var:ProductName templates, open Var:VisualStudioEdition. You will see the following options when you create a new project:
+## How to Create the Visual Studio Project
+Ensure that you have installed the Visual Studio extension Var:ProductName templates. Then open Var:VisualStudioEdition. When you create a new project, you see the following options:
-With the above templates you can set up the skeleton of an Var:ProductName plug-in project. Select **Custom Batch Task (2021)*
+Use these templates to set up the skeleton of a Var:ProductName plug-in project. Select **Custom Batch Task (2021)**.
-The Plug-in Skeleton
--------------------------------------
-The plug-in template will add the required references to your project:
+## The Plug-in Skeleton
+The plug-in template adds the required references to your project:
-It will also add the following skeleton classes to your project:
+It also adds the following skeleton classes:
-The Plug-in Declaration: ID, Name, Description
---------------------------------
-Open the **MyCustomBatchTask.cs** class. This class contains the plug-in declaration - the plug-in name and description that will be visible in Var:ProductName:
+## The Plug-in Declaration: ID, Name, Description
+Open the **MyCustomBatchTask.cs** class. This class contains the plug-in declaration, including the plug-in name and description that are visible in Var:ProductName:
# [Plug-in Declaration](#tab/tabid-1)
[!code-csharp[MyCustomBatchTask](code_samples/MyCustomBatchTask.cs#L16-L20)]
***
-Give the batch task plug-in a new name, ID and description. Instead of doing it directly inside this class, enter the strings into the **PluginResources.resx** file:
+Give the batch task plug-in a new name, ID, and description. Instead of setting these values directly in this class, enter the strings in the **PluginResources.resx** file:
> [!NOTE]
> You also declare what kind of files the batch task works on here. Most batch tasks are used to process bilingual SDLXliff files, not native files such as DOCX or PPTX. This also applies to our sample implementation.
-In this class, you also reference the settings page that allows the user to configure the batch tasks settings via the plug-in UI:
+In this class, you also reference the settings page that allows users to configure batch task settings through the plug-in UI:
# [Plug-in Declaration](#tab/tabid-1)
[!code-csharp[MyCustomBatchTask](code_samples/MyCustomBatchTask.cs#L24-L26)]
***
-The Plug-in Build Folder
----------------------------------------------
-Make sure that you sign your assembly. Then build the assembly. The project is automatically configured to build the plug-in file into the folder: Var:PluginPackedPath . After you have built the plug-in, you should find the file *Custom Batch Task1.sdlplugin*. Now start Var:ProductName. Because the plug-in is not yet officially signed by RWS, you will see the following message after you start the application:
+## The Plug-in Build Folder
+Sign your assembly, and then build it. The project is automatically configured to build the plug-in file into the folder: Var:PluginPackedPath . After building, you should find the file *Custom Batch Task1.sdlplugin*. Now start Var:ProductName. Because the plug-in is not yet officially signed by RWS, you see the following message when the application starts:
-For the moment, ignore this message. Click **Yes** to make sure that Var:ProductName extracts the plug-in file. Once Studio is started, you should find the sub-folder *Custom Batch Task1* under Var:PluginUnpackedPath . This sub-folder contains the unpacked plug-in assemblies.
+For now, ignore this message. Click **Yes** to ensure that Var:ProductName extracts the plug-in file. After Studio starts, you should find the sub-folder *Custom Batch Task1* under Var:PluginUnpackedPath . This sub-folder contains the unpacked plug-in assemblies.
-In the batch tasks list of Var:ProductName, you will see the name of your newly compiled plug-in:
+In the batch tasks list of Var:ProductName, you see the name of your newly compiled plug-in:
-When you select your sample batch task you will see the following window with the plug-in description:
+When you select your sample batch task, you see the following window with the plug-in description:
-At this point your batch task is not actually doing anything, but as a first step you have managed to integrate your plug-in into Var:ProductName. In the following pages, we will enhance this basic plug-in with some added functionality. Close Var:ProductName and go back to your Microsoft Visual Studio project.
+At this point, your batch task is not doing anything yet, but you have successfully integrated your plug-in into Var:ProductName. In the following pages, you will enhance this basic plug-in with additional functionality. Close Var:ProductName and go back to your Microsoft Visual Studio project.
diff --git a/apiconcepts/batchtasks/what_our_sample_batch_task_should_do.md b/apiconcepts/batchtasks/what_our_sample_batch_task_should_do.md
index 9b599f7e37..ec596e5b07 100644
--- a/apiconcepts/batchtasks/what_our_sample_batch_task_should_do.md
+++ b/apiconcepts/batchtasks/what_our_sample_batch_task_should_do.md
@@ -1,10 +1,9 @@
-What our sample batch task should do
-============================
+# What Our Sample Batch Task Should Do
-Learn how to develop a batch task by following the creation of a simplified sample project which uses the Batch Tasks API.
+This guide demonstrates how to create a simplified batch task using the Batch Tasks API. Follow along to understand the key steps and concepts.
-The example batch task plug-in exports all segments with a particular status (for example, Translated, Draft or Approved) from one or several SDLXliff files into simple text files (one TXT file per SDLXliff document). Our sample project will contain simplified code examples that show you how to implement:
-* An integration of the batch task into the Var:ProductName UI with plug-in name and description
-* A property page that allows you to configure the batch process, in this case the segment status that should be applied
-* Basic reporting functionality, i.e. output the number of segments whose status was changed
-* Simple processing of segment content in SDLXliff files
+The example batch task plug-in exports segments with a specific status (for example, Translated, Draft, or Approved) from one or more SDLXliff files into text files (one TXT file per SDLXliff document). This sample project includes simplified code examples to demonstrate:
+* Integration of the batch task into the Var:ProductName UI, including the plug-in name and description.
+* A property page to configure the batch process, such as selecting the segment status to apply.
+* Basic reporting functionality to output the number of segments whose status was changed.
+* Simple processing of segment content in SDLXliff files.
diff --git a/articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio.md b/articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio.md
index 88de85b509..730b25a8ce 100644
--- a/articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio.md
+++ b/articles/hints_tips/Update_Plugins/how_to_update_plugins_to_trados_studio.md
@@ -1,8 +1,11 @@
-# How to update classic plugins to Var:ProductNameWithEdition
+# How to Update Classic Plugins to Var:ProductNameWithEdition
-⚠️ Note: Var:ProductNameWithEdition will also support a new plugin system, check back for details on the new plugin system when it is made available.
+This guide provides step-by-step instructions for updating classic plugins to ensure compatibility with Var:ProductNameWithEdition.
-The following are a list of changes and known issues to consider when updating your plugin to be compatible with Var:ProductNameWithEdition.
+> [!NOTE]
+>Var:ProductNameWithEdition will also support a new plugin system. Check back for details when it becomes available.
+
+The sections below outline key changes and known issues to consider when updating your plugin.
## Transition to 64-Bit (x64)
Var:ProductNameWithEdition 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.
@@ -50,7 +53,7 @@ Ensure **RequiredProduct** reflects `minversion="19.0"` and `maxversion="19.0.9"
## Project References and Deployment Path
Update references and deployment settings in your .csproj:
-### [Production](#tab/standard)
+### Production
**References**: Set Trados Studio assemblies to use the Studio 19 path:
~~~xml
@@ -64,7 +67,7 @@ Update references and deployment settings in your .csproj:
$(AppData)\Trados\Trados Studio\19\Plugins
~~~
-### [BETA](#tab/beta)
+### Beta
**References**: Set Trados Studio assemblies to use the Studio 19 Beta path:
~~~xml
@@ -82,19 +85,18 @@ Update references and deployment settings in your .csproj:
> [!NOTE]
>
-> To update settings directly in the project file from Visual Studio
-> * Right-click on the project node in the **Solution Explorer** and select **Unload Project**.
-> * Then, right-click on the project and choose **Edit**
->
-> Once you have applied your changes in the project file, then reload project
-> * In the **Solution Explorer**, select the projects you want to load (press **Ctrl** while clicking to select more than one project)
-> * Then right-click on the project and choose **Reload Project**.
+> To update settings directly in the project file from Visual Studio:
+> - Right-click on the project node in the **Solution Explorer** and select **Unload Project**.
+> - Then right-click on the project and choose **Edit** .
+> - After applying your changes in the project file, reload the project.
+> - In the **Solution Explorer**, select the projects you want to load (press **Ctrl** while clicking to select more than one project).
+> - Then right-click on the project and choose **Reload Project**.
>
> If the project is SDK-style, then unloading/reloading is unnecessary.
## Known Issues and Dependency Updates
The following are a list of known issues and solutions that you might encounter depending on your settings and configuration:
-### Dependency version changes
+### Dependency Version Changes
Standalone integrations may require binding redirects. Example for `App.config`:
```xml
@@ -242,7 +244,7 @@ If the application still fails to work as expected, an alternative approach is t
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 more consistent developer experience, and simplify plugin integration.
+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 more 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).