# rws/trados-studio-api-samples architecture

> Architecture diagram of the GitHub repository rws/trados-studio-api-samples, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rws/trados-studio-api-samples
- Repository: https://github.com/rws/trados-studio-api-samples

## Overview

This repository is a collection of Trados Studio API samples, not one integrated application. Users exercise independent examples through Studio plug-ins, desktop interfaces, or console programs; results include projects and analysis, translation-memory operations, file conversion, and translation-editor extensions. The graph preserves those distinct capability areas rather than implying a shared pipeline. Several subsystems are represented by their exact enclosing directories because their source was listed but not sampled; links are limited to calls visible in sampled entry points and controllers.

Main entry points: [`LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmAutomation/Program.cs`](https://github.com/rws/trados-studio-api-samples/blob/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmAutomation/Program.cs) (TM automation), [`FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextFilterComponentBuilder.cs`](https://github.com/rws/trados-studio-api-samples/blob/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextFilterComponentBuilder.cs) (Simple text filter), [`TranslationStudioAutomation/Sdl.StudioAutomation.ReferencePlugin/ContentConnectorViewController.cs`](https://github.com/rws/trados-studio-api-samples/blob/master/TranslationStudioAutomation/Sdl.StudioAutomation.ReferencePlugin/ContentConnectorViewController.cs) (Request projects), [`ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.BatchAnalyze/Program.cs`](https://github.com/rws/trados-studio-api-samples/blob/master/ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.BatchAnalyze/Program.cs) (Batch analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_project["Project automation"]
  node_batch_analyze["Batch analysis<br/>[Program.cs]"]
  node_project_creator["Project creator<br/>[ProjectCreator.cs]"]
  node_project_examples["Project examples"]
end

subgraph group_tm["Translation memories"]
  node_tm_automation["TM automation<br/>[Program.cs]"]
  node_tm_file[("File-based TM")]
  node_tmx["TMX files"]
  node_batch_import["Batch import<br/>[Program.cs]"]
  node_batch_export["Batch export<br/>[Program.cs]"]
  node_tm_lookup["TM lookup"]
  node_server_connector["Server connector<br/>[ServerConnector.cs]"]
  node_tm_server[("TM server")]
end

subgraph group_filetype["File type support"]
  node_simple_text["Simple text filter"]
  node_simple_parser["Text parser"]
  node_simple_writer["Text writer"]
  node_preview_controller["Preview controller"]
  node_bil_filter["BIL filter"]
end

subgraph group_studio["Studio extensions"]
  node_content_connector["Request projects"]
  node_project_requests["Project requests"]
  node_quote_view["Quote view"]
  node_other_extensions["Language extensions"]
end

subgraph group_terminology["Terminology provider"]
  node_glossary["File glossary"]
  node_glossary_ui["Glossary UI"]
end

node_user(("Sample user"))

node_user -->|"runs"| node_batch_analyze
node_batch_analyze -->|"creates project"| node_project_creator
node_user -->|"runs examples"| node_project_examples
node_user -->|"uses Studio"| node_content_connector
node_content_connector -->|"refreshes requests"| node_project_requests
node_content_connector -->|"executes creation"| node_project_creator
node_user -->|"selects project"| node_quote_view
node_user -->|"runs"| node_tm_automation
node_tm_automation -->|"creates, updates"| node_tm_file
node_tm_automation -->|"imports, exports"| node_tmx
node_tm_automation -->|"connects through"| node_server_connector
node_server_connector -->|"connects"| node_tm_server
node_user -->|"runs"| node_batch_import
node_batch_import -->|"imports into"| node_tm_file
node_user -->|"runs"| node_batch_export
node_batch_export -->|"exports from"| node_tm_file
node_user -->|"uses lookup"| node_tm_lookup
node_user -->|"processes text"| node_simple_text
node_simple_text -->|"builds parser"| node_simple_parser
node_simple_text -->|"builds writer"| node_simple_writer
node_user -->|"navigates preview"| node_preview_controller
node_user -->|"uses filter"| node_bil_filter
node_user -->|"uses extensions"| node_other_extensions
node_user -->|"configures provider"| node_glossary_ui
node_glossary_ui -->|"configures"| node_glossary

click node_batch_analyze "https://github.com/rws/trados-studio-api-samples/blob/master/ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.BatchAnalyze/Program.cs"
click node_project_creator "https://github.com/rws/trados-studio-api-samples/blob/master/ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.BatchAnalyze/ProjectCreator.cs"
click node_project_examples "https://github.com/rws/trados-studio-api-samples/tree/master/ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.Examples"
click node_content_connector "https://github.com/rws/trados-studio-api-samples/blob/master/TranslationStudioAutomation/Sdl.StudioAutomation.ReferencePlugin/ContentConnectorViewController.cs"
click node_quote_view "https://github.com/rws/trados-studio-api-samples/blob/master/TranslationStudioAutomation/Sdl.StudioAutomation.ReferencePlugin/ProjectQuoteViewPartController.cs"
click node_tm_automation "https://github.com/rws/trados-studio-api-samples/blob/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmAutomation/Program.cs"
click node_batch_import "https://github.com/rws/trados-studio-api-samples/blob/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.BatchImport/Program.cs"
click node_batch_export "https://github.com/rws/trados-studio-api-samples/blob/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.BatchExport/Program.cs"
click node_tm_lookup "https://github.com/rws/trados-studio-api-samples/tree/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmLookup"
click node_server_connector "https://github.com/rws/trados-studio-api-samples/blob/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmAutomation/ServerConnector.cs"
click node_simple_text "https://github.com/rws/trados-studio-api-samples/blob/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextFilterComponentBuilder.cs"
click node_simple_parser "https://github.com/rws/trados-studio-api-samples/blob/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextParser.cs"
click node_simple_writer "https://github.com/rws/trados-studio-api-samples/blob/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextWriter.cs"
click node_preview_controller "https://github.com/rws/trados-studio-api-samples/blob/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/Preview/InternalPreviewController.cs"
click node_bil_filter "https://github.com/rws/trados-studio-api-samples/tree/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.Bil"
click node_other_extensions "https://github.com/rws/trados-studio-api-samples/tree/master/TranslationStudioAutomation"
click node_glossary "https://github.com/rws/trados-studio-api-samples/blob/master/API%20V2/Terminology/Terminology%20Provider/FileGlossaryTerminologyProvider.cs"
click node_glossary_ui "https://github.com/rws/trados-studio-api-samples/blob/master/API%20V2/Terminology/Terminology%20Provider/FileGlossaryTerminologyProviderWinFormsUI.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_batch_analyze,node_project_creator,node_project_examples,node_user toneBlue
class node_tm_automation,node_tm_file,node_tmx,node_batch_import,node_batch_export,node_tm_lookup,node_server_connector,node_tm_server toneAmber
class node_simple_text,node_simple_parser,node_simple_writer,node_preview_controller,node_bil_filter toneMint
class node_content_connector,node_project_requests,node_quote_view,node_other_extensions toneRose
class node_glossary,node_glossary_ui toneIndigo
```

## Components

### Project automation

- [Batch analysis](https://github.com/rws/trados-studio-api-samples/blob/master/ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.BatchAnalyze/Program.cs): `ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.BatchAnalyze/Program.cs`
- [Project creator](https://github.com/rws/trados-studio-api-samples/blob/master/ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.BatchAnalyze/ProjectCreator.cs): `ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.BatchAnalyze/ProjectCreator.cs`
- [Project examples](https://github.com/rws/trados-studio-api-samples/tree/master/ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.Examples): `ProjectAutomation/Sdl.SDK.ProjectAutomation.Samples.Examples`

### Translation memories

- [TM automation](https://github.com/rws/trados-studio-api-samples/blob/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmAutomation/Program.cs): `LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmAutomation/Program.cs`
- **File-based TM**
- **TMX files**
- [Batch import](https://github.com/rws/trados-studio-api-samples/blob/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.BatchImport/Program.cs): `LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.BatchImport/Program.cs`
- [Batch export](https://github.com/rws/trados-studio-api-samples/blob/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.BatchExport/Program.cs): `LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.BatchExport/Program.cs`
- [TM lookup](https://github.com/rws/trados-studio-api-samples/tree/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmLookup): `LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmLookup`
- [Server connector](https://github.com/rws/trados-studio-api-samples/blob/master/LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmAutomation/ServerConnector.cs): `LanguagePlatform/Sdl.SDK.LanguagePlatform.Samples.TmAutomation/ServerConnector.cs`
- **TM server**

### File type support

- [Simple text filter](https://github.com/rws/trados-studio-api-samples/blob/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextFilterComponentBuilder.cs): `FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextFilterComponentBuilder.cs`
- [Text parser](https://github.com/rws/trados-studio-api-samples/blob/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextParser.cs): `FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextParser.cs`
- [Text writer](https://github.com/rws/trados-studio-api-samples/blob/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextWriter.cs): `FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/SimpleTextWriter.cs`
- [Preview controller](https://github.com/rws/trados-studio-api-samples/blob/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/Preview/InternalPreviewController.cs): `FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.SimpleText/Preview/InternalPreviewController.cs`
- [BIL filter](https://github.com/rws/trados-studio-api-samples/tree/master/FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.Bil): `FileTypeSupport/Sdl.Sdk.FileTypeSupport.Samples.Bil`

### Studio extensions

- [Request projects](https://github.com/rws/trados-studio-api-samples/blob/master/TranslationStudioAutomation/Sdl.StudioAutomation.ReferencePlugin/ContentConnectorViewController.cs): `TranslationStudioAutomation/Sdl.StudioAutomation.ReferencePlugin/ContentConnectorViewController.cs`
- **Project requests**
- [Quote view](https://github.com/rws/trados-studio-api-samples/blob/master/TranslationStudioAutomation/Sdl.StudioAutomation.ReferencePlugin/ProjectQuoteViewPartController.cs): `TranslationStudioAutomation/Sdl.StudioAutomation.ReferencePlugin/ProjectQuoteViewPartController.cs`
- [Language extensions](https://github.com/rws/trados-studio-api-samples/tree/master/TranslationStudioAutomation): `TranslationStudioAutomation`

### Terminology provider

- [File glossary](https://github.com/rws/trados-studio-api-samples/blob/master/API%20V2/Terminology/Terminology%20Provider/FileGlossaryTerminologyProvider.cs): `API V2/Terminology/Terminology Provider/FileGlossaryTerminologyProvider.cs`
- [Glossary UI](https://github.com/rws/trados-studio-api-samples/blob/master/API%20V2/Terminology/Terminology%20Provider/FileGlossaryTerminologyProviderWinFormsUI.cs): `API V2/Terminology/Terminology Provider/FileGlossaryTerminologyProviderWinFormsUI.cs`

### Other components

- **Sample user**

## Connections

- Sample user → Batch analysis: runs
- Batch analysis → Project creator: creates project
- Sample user → Project examples: runs examples
- Sample user → Request projects: uses Studio
- Request projects → Project requests: refreshes requests
- Request projects → Project creator: executes creation
- Sample user → Quote view: selects project
- Sample user → TM automation: runs
- TM automation → File-based TM: creates, updates
- TM automation → TMX files: imports, exports
- TM automation → Server connector: connects through
- Server connector → TM server: connects
- Sample user → Batch import: runs
- Batch import → File-based TM: imports into
- Sample user → Batch export: runs
- Batch export → File-based TM: exports from
- Sample user → TM lookup: uses lookup
- Sample user → Simple text filter: processes text
- Simple text filter → Text parser: builds parser
- Simple text filter → Text writer: builds writer
- Sample user → Preview controller: navigates preview
- Sample user → BIL filter: uses filter
- Sample user → Language extensions: uses extensions
- Sample user → Glossary UI: configures provider
- Glossary UI → File glossary: configures
