diff --git a/.changeset/healthy-rabbits-poke.md b/.changeset/healthy-rabbits-poke.md new file mode 100644 index 0000000000..6af21cba11 --- /dev/null +++ b/.changeset/healthy-rabbits-poke.md @@ -0,0 +1,5 @@ +--- +"roo-cline": patch +--- + +Allow users to choose a custom preferred language diff --git a/webview-ui/src/components/prompts/PromptsView.tsx b/webview-ui/src/components/prompts/PromptsView.tsx index db28d9b39d..061fa789de 100644 --- a/webview-ui/src/components/prompts/PromptsView.tsx +++ b/webview-ui/src/components/prompts/PromptsView.tsx @@ -9,6 +9,19 @@ import { VSCodeRadioGroup, VSCodeRadio, } from "@vscode/webview-ui-toolkit/react" +import { CaretSortIcon, CheckIcon } from "@radix-ui/react-icons" +import { + Button, + Command, + CommandGroup, + CommandInput, + CommandItem, + CommandList, + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui" +import { cn } from "@/lib/utils" import { useExtensionState } from "../../context/ExtensionStateContext" import { Mode, @@ -66,6 +79,9 @@ const PromptsView = ({ onDone }: PromptsViewProps) => { const [testPrompt, setTestPrompt] = useState("") const [isEnhancing, setIsEnhancing] = useState(false) const [isDialogOpen, setIsDialogOpen] = useState(false) + const [open, setOpen] = useState(false) + const [isCustomLanguage, setIsCustomLanguage] = useState(false) + const [customLanguage, setCustomLanguage] = useState("") const [selectedPromptContent, setSelectedPromptContent] = useState("") const [selectedPromptTitle, setSelectedPromptTitle] = useState("") const [isToolsEditMode, setIsToolsEditMode] = useState(false) @@ -399,38 +415,88 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
Preferred Language
- + + + + + + + + + + {[ + { value: "English", label: "English" }, + { value: "Arabic", label: "Arabic - العربية" }, + { + value: "Brazilian Portuguese", + label: "Portuguese - Português (Brasil)", + }, + { value: "Catalan", label: "Catalan - Català" }, + { value: "Czech", label: "Czech - Čeština" }, + { value: "French", label: "French - Français" }, + { value: "German", label: "German - Deutsch" }, + { value: "Hindi", label: "Hindi - हिन्दी" }, + { value: "Hungarian", label: "Hungarian - Magyar" }, + { value: "Italian", label: "Italian - Italiano" }, + { value: "Japanese", label: "Japanese - 日本語" }, + { value: "Korean", label: "Korean - 한국어" }, + { value: "Polish", label: "Polish - Polski" }, + { value: "Portuguese", label: "Portuguese - Português (Portugal)" }, + { value: "Russian", label: "Russian - Русский" }, + { value: "Simplified Chinese", label: "Simplified Chinese - 简体中文" }, + { value: "Spanish", label: "Spanish - Español" }, + { + value: "Traditional Chinese", + label: "Traditional Chinese - 繁體中文", + }, + { value: "Turkish", label: "Turkish - Türkçe" }, + ].map((language) => ( + { + setPreferredLanguage(value) + vscode.postMessage({ + type: "preferredLanguage", + text: value, + }) + setOpen(false) + }}> + {language.label} + + + ))} + + + +
+ +
+
+

- Select the language that Cline should use for communication. + Select the language that Roo should use for communication.

@@ -1359,6 +1425,40 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
)} + {isCustomLanguage && ( +
+
+

Add Custom Language

+ setCustomLanguage(e.target.value)} + /> +
+ + +
+
+
+ )} ) }