diff --git a/app/MindWork AI Studio/Components/Pages/Translator/AssistantTranslator.razor b/app/MindWork AI Studio/Components/Pages/Translator/AssistantTranslator.razor
new file mode 100644
index 00000000..e76bfe82
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Translator/AssistantTranslator.razor
@@ -0,0 +1,30 @@
+@page "/assistant/translator"
+@using AIStudio.Settings
+@using AIStudio.Tools
+@inherits AssistantBaseCore
+
+
+
+
+
+ @foreach (var targetLanguage in Enum.GetValues())
+ {
+ @targetLanguage.Name()
+ }
+
+ @if (this.selectedTargetLanguage is CommonLanguages.OTHER)
+ {
+
+ }
+
+
+
+ @foreach (var provider in this.SettingsManager.ConfigurationData.Providers)
+ {
+
+ }
+
+
+
+ Translate
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Translator/AssistantTranslator.razor.cs b/app/MindWork AI Studio/Components/Pages/Translator/AssistantTranslator.razor.cs
new file mode 100644
index 00000000..edfa8e9e
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Translator/AssistantTranslator.razor.cs
@@ -0,0 +1,70 @@
+using AIStudio.Provider;
+using AIStudio.Tools;
+
+namespace AIStudio.Components.Pages.Translator;
+
+public partial class AssistantTranslator : AssistantBaseCore
+{
+ protected override string Title => "Translator";
+
+ protected override string Description =>
+ """
+ Translate text from one language to another.
+ """;
+
+ protected override string SystemPrompt =>
+ """
+ You get text in a source language as input. The user wants to get the text translated into a target language.
+ Provide the translation in the requested language. Do not add any information. Correct any spelling or grammar mistakes.
+ Do not ask for additional information. Do not mirror the user's language. Do not mirror the task. When the target
+ language requires, e.g., shorter sentences, you should split the text into shorter sentences.
+ """;
+
+ private string inputText = string.Empty;
+ private CommonLanguages selectedTargetLanguage;
+ private string customTargetLanguage = string.Empty;
+
+ private string? ValidatingText(string text)
+ {
+ if(string.IsNullOrWhiteSpace(text))
+ return "Please provide a text as input. You might copy the desired text from a document or a website.";
+
+ return null;
+ }
+
+ private string? ValidatingProvider(AIStudio.Settings.Provider provider)
+ {
+ if(provider.UsedProvider == Providers.NONE)
+ return "Please select a provider.";
+
+ return null;
+ }
+
+ private string? ValidateCustomLanguage(string language)
+ {
+ if(this.selectedTargetLanguage == CommonLanguages.OTHER && string.IsNullOrWhiteSpace(language))
+ return "Please provide a custom language.";
+
+ return null;
+ }
+
+ private async Task TranslateText()
+ {
+ await this.form!.Validate();
+ if (!this.inputIsValid)
+ return;
+
+ this.CreateChatThread();
+ var time = this.AddUserRequest(
+ $"""
+ {this.selectedTargetLanguage.Prompt(this.customTargetLanguage)}
+
+ The given text is:
+
+ ---
+ {this.inputText}
+ """);
+
+ await this.AddAIResponseAsync(time);
+ }
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Translator/CommonLanguageExtension.cs b/app/MindWork AI Studio/Components/Pages/Translator/CommonLanguageExtension.cs
new file mode 100644
index 00000000..37545151
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Translator/CommonLanguageExtension.cs
@@ -0,0 +1,13 @@
+using AIStudio.Tools;
+
+namespace AIStudio.Components.Pages.Translator;
+
+public static class CommonLanguageExtension
+{
+ public static string Prompt(this CommonLanguages language, string customLanguage) => language switch
+ {
+ CommonLanguages.OTHER => $"Translate the text in {customLanguage}.",
+
+ _ => $"Translate the given text in {language.Name()} ({language}).",
+ };
+}
\ No newline at end of file