Fix language selector

This commit is contained in:
Matt Rubens
2025-01-21 15:39:59 -05:00
parent 5dcb96739b
commit 8bbb64d27f
4 changed files with 40 additions and 2 deletions

View File

@@ -809,7 +809,8 @@ export class Cline {
})
}
const { browserViewportSize, mode, customPrompts } = (await this.providerRef.deref()?.getState()) ?? {}
const { browserViewportSize, mode, customPrompts, preferredLanguage } =
(await this.providerRef.deref()?.getState()) ?? {}
const { customModes } = (await this.providerRef.deref()?.getState()) ?? {}
const systemPrompt = await (async () => {
const provider = this.providerRef.deref()
@@ -826,6 +827,7 @@ export class Cline {
mode,
customPrompts,
customModes,
preferredLanguage,
)
})()

View File

@@ -0,0 +1,28 @@
import { addCustomInstructions } from "../sections/custom-instructions"
describe("addCustomInstructions", () => {
test("adds preferred language to custom instructions", async () => {
const result = await addCustomInstructions(
"mode instructions",
"global instructions",
"/test/path",
"test-mode",
{ preferredLanguage: "French" },
)
expect(result).toContain("Language Preference:")
expect(result).toContain("You should always speak and think in the French language")
})
test("works without preferred language", async () => {
const result = await addCustomInstructions(
"mode instructions",
"global instructions",
"/test/path",
"test-mode",
)
expect(result).not.toContain("Language Preference:")
expect(result).not.toContain("You should always speak and think in")
})
})

View File

@@ -37,6 +37,7 @@ async function generatePrompt(
promptComponent?: PromptComponent,
customModeConfigs?: ModeConfig[],
globalCustomInstructions?: string,
preferredLanguage?: string,
): Promise<string> {
if (!context) {
throw new Error("Extension context is required for generating system prompt")
@@ -79,7 +80,7 @@ ${getSystemInfoSection(cwd, mode, customModeConfigs)}
${getObjectiveSection()}
${await addCustomInstructions(modeConfig.customInstructions || "", globalCustomInstructions || "", cwd, mode, {})}`
${await addCustomInstructions(modeConfig.customInstructions || "", globalCustomInstructions || "", cwd, mode, { preferredLanguage })}`
return basePrompt
}
@@ -95,6 +96,7 @@ export const SYSTEM_PROMPT = async (
customPrompts?: CustomPrompts,
customModes?: ModeConfig[],
globalCustomInstructions?: string,
preferredLanguage?: string,
): Promise<string> => {
if (!context) {
throw new Error("Extension context is required for generating system prompt")
@@ -123,5 +125,6 @@ export const SYSTEM_PROMPT = async (
promptComponent,
customModes,
globalCustomInstructions,
preferredLanguage,
)
}