mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-10-07 02:58:15 +00:00
parent
15f3876940
commit
917b2cc882
20 changed files with 66 additions and 250 deletions
|
|
@ -145,6 +145,7 @@ vi.mock("vscode", () => ({
|
|||
},
|
||||
window: {
|
||||
showInformationMessage: vi.fn(),
|
||||
showWarningMessage: vi.fn(),
|
||||
showErrorMessage: vi.fn(),
|
||||
},
|
||||
workspace: {
|
||||
|
|
@ -1289,14 +1290,14 @@ describe("ClineProvider", () => {
|
|||
|
||||
describe("editMessage", () => {
|
||||
beforeEach(async () => {
|
||||
// Mock window.showInformationMessage
|
||||
;(vscode.window.showInformationMessage as any) = vi.fn()
|
||||
// Mock window.showWarningMessage
|
||||
;(vscode.window.showWarningMessage as any) = vi.fn()
|
||||
await provider.resolveWebviewView(mockWebviewView)
|
||||
})
|
||||
|
||||
test('handles "No, just edit this one" edit correctly', async () => {
|
||||
// Mock user selecting "No, just edit this one"
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
test('handles "Proceed" edit correctly', async () => {
|
||||
// Mock user selecting "Proceed" - need to use the localized string key
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
// Setup mock messages
|
||||
const mockMessages = [
|
||||
|
|
@ -1345,20 +1346,13 @@ describe("ClineProvider", () => {
|
|||
editedMessageContent: "Edited message content",
|
||||
})
|
||||
|
||||
// Verify correct messages were kept
|
||||
expect(mockCline.overwriteClineMessages).toHaveBeenCalledWith([
|
||||
mockMessages[0],
|
||||
mockMessages[1],
|
||||
mockMessages[4],
|
||||
mockMessages[5],
|
||||
])
|
||||
// Verify correct messages were kept (only messages before the edited one)
|
||||
expect(mockCline.overwriteClineMessages).toHaveBeenCalledWith([mockMessages[0], mockMessages[1]])
|
||||
|
||||
// Verify correct API messages were kept
|
||||
// Verify correct API messages were kept (only messages before the edited one)
|
||||
expect(mockCline.overwriteApiConversationHistory).toHaveBeenCalledWith([
|
||||
mockApiHistory[0],
|
||||
mockApiHistory[1],
|
||||
mockApiHistory[4],
|
||||
mockApiHistory[5],
|
||||
])
|
||||
|
||||
// Verify handleWebviewAskResponse was called with the edited content
|
||||
|
|
@ -1368,103 +1362,6 @@ describe("ClineProvider", () => {
|
|||
undefined,
|
||||
)
|
||||
})
|
||||
|
||||
test('handles "Yes" (edit and delete subsequent) correctly', async () => {
|
||||
// Mock user selecting "Yes"
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue(
|
||||
"confirmation.edit_this_and_delete_subsequent",
|
||||
)
|
||||
|
||||
// Setup mock messages
|
||||
const mockMessages = [
|
||||
{ ts: 1000, type: "say", say: "user_feedback" },
|
||||
{ ts: 2000, type: "say", say: "text", value: 3000 }, // Message to edit
|
||||
{ ts: 3000, type: "say", say: "user_feedback" },
|
||||
{ ts: 4000, type: "say", say: "user_feedback" },
|
||||
] as ClineMessage[]
|
||||
|
||||
const mockApiHistory = [
|
||||
{ ts: 1000 },
|
||||
{ ts: 2000 },
|
||||
{ ts: 3000 },
|
||||
{ ts: 4000 },
|
||||
] as (Anthropic.MessageParam & {
|
||||
ts?: number
|
||||
})[]
|
||||
|
||||
// Setup Cline instance with auto-mock from the top of the file
|
||||
const mockCline = new Task(defaultTaskOptions) // Create a new mocked instance
|
||||
mockCline.clineMessages = mockMessages
|
||||
mockCline.apiConversationHistory = mockApiHistory
|
||||
|
||||
// Explicitly mock the overwrite methods since they're not being called in the tests
|
||||
mockCline.overwriteClineMessages = vi.fn()
|
||||
mockCline.overwriteApiConversationHistory = vi.fn()
|
||||
mockCline.handleWebviewAskResponse = vi.fn()
|
||||
|
||||
await provider.addClineToStack(mockCline)
|
||||
|
||||
// Mock getTaskWithId
|
||||
;(provider as any).getTaskWithId = vi.fn().mockResolvedValue({
|
||||
historyItem: { id: "test-task-id" },
|
||||
})
|
||||
|
||||
// Trigger message edit
|
||||
// Get the message handler function that was registered with the webview
|
||||
const messageHandler = (mockWebviewView.webview.onDidReceiveMessage as any).mock.calls[0][0]
|
||||
|
||||
// Call the message handler with a submitEditedMessage message
|
||||
await messageHandler({
|
||||
type: "submitEditedMessage",
|
||||
value: 3000,
|
||||
editedMessageContent: "Edited message content",
|
||||
})
|
||||
|
||||
// Verify only messages before the edited message were kept
|
||||
expect(mockCline.overwriteClineMessages).toHaveBeenCalledWith([mockMessages[0]])
|
||||
|
||||
// Verify only API messages before the edited message were kept
|
||||
expect(mockCline.overwriteApiConversationHistory).toHaveBeenCalledWith([mockApiHistory[0]])
|
||||
|
||||
// Verify handleWebviewAskResponse was called with the edited content
|
||||
expect(mockCline.handleWebviewAskResponse).toHaveBeenCalledWith(
|
||||
"messageResponse",
|
||||
"Edited message content",
|
||||
undefined,
|
||||
)
|
||||
})
|
||||
|
||||
test("handles Cancel correctly", async () => {
|
||||
// Mock user selecting "Cancel"
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("Cancel")
|
||||
|
||||
// Setup Cline instance with auto-mock from the top of the file
|
||||
const mockCline = new Task(defaultTaskOptions) // Create a new mocked instance
|
||||
mockCline.clineMessages = [{ ts: 1000 }, { ts: 2000 }] as ClineMessage[]
|
||||
mockCline.apiConversationHistory = [{ ts: 1000 }, { ts: 2000 }] as (Anthropic.MessageParam & {
|
||||
ts?: number
|
||||
})[]
|
||||
|
||||
// Explicitly mock the overwrite methods since they're not being called in the tests
|
||||
mockCline.overwriteClineMessages = vi.fn()
|
||||
mockCline.overwriteApiConversationHistory = vi.fn()
|
||||
mockCline.handleWebviewAskResponse = vi.fn()
|
||||
|
||||
await provider.addClineToStack(mockCline)
|
||||
|
||||
// Trigger message edit
|
||||
const messageHandler = (mockWebviewView.webview.onDidReceiveMessage as any).mock.calls[0][0]
|
||||
await messageHandler({
|
||||
type: "submitEditedMessage",
|
||||
value: 2000,
|
||||
editedMessageContent: "Edited message content",
|
||||
})
|
||||
|
||||
// Verify no messages were edited or deleted
|
||||
expect(mockCline.overwriteClineMessages).not.toHaveBeenCalled()
|
||||
expect(mockCline.overwriteApiConversationHistory).not.toHaveBeenCalled()
|
||||
expect(mockCline.handleWebviewAskResponse).not.toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
|
||||
describe("getSystemPrompt", () => {
|
||||
|
|
@ -2813,7 +2710,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("handles editing messages containing images", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
const mockMessages = [
|
||||
{ ts: 1000, type: "say", say: "user_feedback", text: "Original message" },
|
||||
|
|
@ -2858,7 +2755,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("handles editing messages with file attachments", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
const mockMessages = [
|
||||
{ ts: 1000, type: "say", say: "user_feedback", text: "Original message" },
|
||||
|
|
@ -2908,7 +2805,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("handles network timeout during edit submission", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
const mockCline = new Task(defaultTaskOptions)
|
||||
mockCline.clineMessages = [
|
||||
|
|
@ -2940,7 +2837,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("handles connection drops during edit operation", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
const mockCline = new Task(defaultTaskOptions)
|
||||
mockCline.clineMessages = [
|
||||
|
|
@ -2979,7 +2876,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("handles race conditions with simultaneous edits", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
const mockCline = new Task(defaultTaskOptions)
|
||||
mockCline.clineMessages = [
|
||||
|
|
@ -3043,7 +2940,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("handles authorization failures during edit", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
const mockCline = new Task(defaultTaskOptions)
|
||||
mockCline.clineMessages = [
|
||||
|
|
@ -3161,7 +3058,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("handles edit operations on deleted messages", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
const mockCline = new Task(defaultTaskOptions)
|
||||
mockCline.clineMessages = [
|
||||
|
|
@ -3187,7 +3084,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
// Should show confirmation dialog but not perform any operations
|
||||
expect(vscode.window.showInformationMessage).toHaveBeenCalled()
|
||||
expect(vscode.window.showWarningMessage).toHaveBeenCalled()
|
||||
expect(mockCline.overwriteClineMessages).not.toHaveBeenCalled()
|
||||
expect(mockCline.handleWebviewAskResponse).not.toHaveBeenCalled()
|
||||
})
|
||||
|
|
@ -3231,7 +3128,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("validates proper cleanup during failed edit operations", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
const mockCline = new Task(defaultTaskOptions)
|
||||
mockCline.clineMessages = [
|
||||
|
|
@ -3311,7 +3208,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("handles editing messages with large text content", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
// Create a large message (10KB of text)
|
||||
const largeText = "A".repeat(10000)
|
||||
|
|
@ -3419,7 +3316,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
|
||||
test("handles user cancellation gracefully", async () => {
|
||||
// Mock user canceling the operation
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue(undefined)
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue(undefined)
|
||||
|
||||
const mockCline = new Task(defaultTaskOptions)
|
||||
mockCline.clineMessages = [
|
||||
|
|
@ -3485,7 +3382,7 @@ describe("ClineProvider - Comprehensive Edit/Delete Edge Cases", () => {
|
|||
})
|
||||
|
||||
test("handles messages with future timestamps", async () => {
|
||||
;(vscode.window.showInformationMessage as any).mockResolvedValue("confirmation.edit_just_this_message")
|
||||
;(vscode.window.showWarningMessage as any).mockResolvedValue("confirmation.proceed")
|
||||
|
||||
const futureTimestamp = Date.now() + 100000 // Future timestamp
|
||||
const mockCline = new Task(defaultTaskOptions)
|
||||
|
|
|
|||
|
|
@ -193,32 +193,23 @@ export const webviewMessageHandler = async (
|
|||
* Handles message editing operations with user confirmation
|
||||
*/
|
||||
const handleEditOperation = async (messageTs: number, editedContent: string): Promise<void> => {
|
||||
const options = [
|
||||
t("common:confirmation.edit_this_and_delete_subsequent"),
|
||||
t("common:confirmation.edit_just_this_message"),
|
||||
]
|
||||
|
||||
const answer = await vscode.window.showInformationMessage(
|
||||
t("common:confirmation.edit_message"),
|
||||
const answer = await vscode.window.showWarningMessage(
|
||||
t("common:confirmation.edit_warning"),
|
||||
{ modal: true },
|
||||
...options,
|
||||
t("common:confirmation.proceed"),
|
||||
)
|
||||
|
||||
// Only proceed if user selected one of the options and we have a current cline
|
||||
if (answer && options.includes(answer) && provider.getCurrentCline()) {
|
||||
// Only proceed if user selected "Proceed" and we have a current cline
|
||||
if (answer === t("common:confirmation.proceed") && provider.getCurrentCline()) {
|
||||
const currentCline = provider.getCurrentCline()!
|
||||
|
||||
// Use findMessageIndices to find messages based on timestamp
|
||||
const { messageIndex, apiConversationHistoryIndex } = findMessageIndices(messageTs, currentCline)
|
||||
|
||||
if (messageIndex !== -1) {
|
||||
try {
|
||||
// Check which option the user selected
|
||||
if (answer === options[0]) {
|
||||
// Edit this message and delete subsequent
|
||||
await removeMessagesThisAndSubsequent(currentCline, messageIndex, apiConversationHistoryIndex)
|
||||
} else if (answer === options[1]) {
|
||||
// Edit just this message
|
||||
await removeMessagesJustThis(currentCline, messageIndex, apiConversationHistoryIndex)
|
||||
}
|
||||
// Edit this message and delete subsequent
|
||||
await removeMessagesThisAndSubsequent(currentCline, messageIndex, apiConversationHistoryIndex)
|
||||
|
||||
// Process the edited message as a regular user message
|
||||
// This will add it to the conversation and trigger an AI response
|
||||
|
|
|
|||
|
|
@ -23,11 +23,10 @@
|
|||
"delete_config_profile": "Estàs segur que vols eliminar aquest perfil de configuració?",
|
||||
"delete_custom_mode_with_rules": "Esteu segur que voleu suprimir aquest mode {scope}?\n\nAixò també suprimirà la carpeta de regles associada a:\n{rulesFolderPath}",
|
||||
"delete_message": "Què vols eliminar?",
|
||||
"edit_message": "Eliminar tots els missatges després d'aquest?",
|
||||
"edit_warning": "Editar aquest missatge eliminarà tots els missatges posteriors de la conversa. Vols continuar?",
|
||||
"delete_just_this_message": "Només aquest missatge",
|
||||
"edit_just_this_message": "No, només editar aquest",
|
||||
"delete_this_and_subsequent": "Aquest i tots els missatges posteriors",
|
||||
"edit_this_and_delete_subsequent": "Sí"
|
||||
"proceed": "Continuar"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Format d'URI de dades no vàlid",
|
||||
|
|
@ -111,13 +110,11 @@
|
|||
"answers": {
|
||||
"yes": "Sí",
|
||||
"no": "No",
|
||||
"cancel": "Cancel·lar",
|
||||
"remove": "Eliminar",
|
||||
"keep": "Mantenir"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Desar",
|
||||
"cancel": "Cancel·lar",
|
||||
"edit": "Editar"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Suprimeix el mode personalitzat",
|
||||
"description": "Esteu segur que voleu suprimir aquest mode {{scope}}? Això també suprimirà la carpeta de regles associada a: {{rulesFolderPath}}",
|
||||
"descriptionNoRules": "Esteu segur que voleu suprimir aquest mode personalitzat?",
|
||||
"cancel": "Cancel·la",
|
||||
"confirm": "Suprimeix"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "Möchtest du dieses Konfigurationsprofil wirklich löschen?",
|
||||
"delete_custom_mode_with_rules": "Bist du sicher, dass du diesen {scope}-Modus löschen möchtest?\n\nDadurch wird auch der zugehörige Regelordner unter folgender Adresse gelöscht:\n{rulesFolderPath}",
|
||||
"delete_message": "Was möchtest du löschen?",
|
||||
"edit_message": "Alle Nachrichten nach dieser löschen?",
|
||||
"edit_warning": "Das Bearbeiten dieser Nachricht wird alle nachfolgenden Nachrichten in der Unterhaltung löschen. Möchtest du fortfahren?",
|
||||
"delete_just_this_message": "Nur diese Nachricht",
|
||||
"edit_just_this_message": "Nein, nur diese bearbeiten",
|
||||
"delete_this_and_subsequent": "Diese und alle nachfolgenden Nachrichten",
|
||||
"edit_this_and_delete_subsequent": "Ja"
|
||||
"proceed": "Fortfahren"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Ungültiges Daten-URI-Format",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Ja",
|
||||
"no": "Nein",
|
||||
"cancel": "Abbrechen",
|
||||
"remove": "Entfernen",
|
||||
"keep": "Behalten"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Speichern",
|
||||
"cancel": "Abbrechen",
|
||||
"edit": "Bearbeiten"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Benutzerdefinierten Modus löschen",
|
||||
"description": "Bist du sicher, dass du diesen {{scope}}-Modus löschen möchtest? Dadurch wird auch der zugehörige Regelordner unter {{rulesFolderPath}} gelöscht",
|
||||
"descriptionNoRules": "Bist du sicher, dass du diesen benutzerdefinierten Modus löschen möchtest?",
|
||||
"cancel": "Abbrechen",
|
||||
"confirm": "Löschen"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "Are you sure you want to delete this configuration profile?",
|
||||
"delete_custom_mode_with_rules": "Are you sure you want to delete this {scope} mode?\n\nThis will also delete the associated rules folder at:\n{rulesFolderPath}",
|
||||
"delete_message": "What would you like to delete?",
|
||||
"edit_message": "Delete all messages after this one?",
|
||||
"edit_warning": "Editing this message will delete all subsequent messages in the conversation. Do you want to proceed?",
|
||||
"delete_just_this_message": "Just this message",
|
||||
"edit_just_this_message": "No, just edit this one",
|
||||
"delete_this_and_subsequent": "This and all subsequent messages",
|
||||
"edit_this_and_delete_subsequent": "Yes"
|
||||
"proceed": "Proceed"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Invalid data URI format",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"cancel": "Cancel",
|
||||
"remove": "Remove",
|
||||
"keep": "Keep"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"edit": "Edit"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -160,7 +157,6 @@
|
|||
"title": "Delete Custom Mode",
|
||||
"description": "Are you sure you want to delete this {{scope}} mode? This will also delete the associated rules folder at: {{rulesFolderPath}}",
|
||||
"descriptionNoRules": "Are you sure you want to delete this custom mode?",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Delete"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "¿Estás seguro de que deseas eliminar este perfil de configuración?",
|
||||
"delete_custom_mode_with_rules": "¿Estás seguro de que quieres eliminar este modo {scope}?\n\nEsto también eliminará la carpeta de reglas asociada en:\n{rulesFolderPath}",
|
||||
"delete_message": "¿Qué deseas eliminar?",
|
||||
"edit_message": "¿Eliminar todos los mensajes posteriores a este?",
|
||||
"edit_warning": "Editar este mensaje eliminará todos los mensajes posteriores en la conversación. ¿Deseas continuar?",
|
||||
"delete_just_this_message": "Solo este mensaje",
|
||||
"edit_just_this_message": "No, solo editar este",
|
||||
"delete_this_and_subsequent": "Este y todos los mensajes posteriores",
|
||||
"edit_this_and_delete_subsequent": "Sí"
|
||||
"proceed": "Continuar"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Formato de URI de datos no válido",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Sí",
|
||||
"no": "No",
|
||||
"cancel": "Cancelar",
|
||||
"remove": "Eliminar",
|
||||
"keep": "Mantener"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Guardar",
|
||||
"cancel": "Cancelar",
|
||||
"edit": "Editar"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Eliminar modo personalizado",
|
||||
"description": "¿Estás seguro de que quieres eliminar este modo {{scope}}? Esto también eliminará la carpeta de reglas asociada en: {{rulesFolderPath}}",
|
||||
"descriptionNoRules": "¿Estás seguro de que quieres eliminar este modo personalizado?",
|
||||
"cancel": "Cancelar",
|
||||
"confirm": "Eliminar"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "Êtes-vous sûr de vouloir supprimer ce profil de configuration ?",
|
||||
"delete_custom_mode_with_rules": "Êtes-vous sûr de vouloir supprimer ce mode {scope} ?\n\nCela supprimera également le dossier de règles associé à l'adresse :\n{rulesFolderPath}",
|
||||
"delete_message": "Que souhaitez-vous supprimer ?",
|
||||
"edit_message": "Supprimer tous les messages après celui-ci ?",
|
||||
"edit_warning": "Modifier ce message supprimera tous les messages suivants dans la conversation. Voulez-vous continuer ?",
|
||||
"delete_just_this_message": "Uniquement ce message",
|
||||
"edit_just_this_message": "Non, modifier uniquement celui-ci",
|
||||
"delete_this_and_subsequent": "Ce message et tous les messages suivants",
|
||||
"edit_this_and_delete_subsequent": "Oui"
|
||||
"proceed": "Continuer"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Format d'URI de données invalide",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Oui",
|
||||
"no": "Non",
|
||||
"cancel": "Annuler",
|
||||
"remove": "Supprimer",
|
||||
"keep": "Conserver"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Enregistrer",
|
||||
"cancel": "Annuler",
|
||||
"edit": "Modifier"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Supprimer le mode personnalisé",
|
||||
"description": "Êtes-vous sûr de vouloir supprimer ce mode {{scope}} ? Cela supprimera également le dossier de règles associé à l'adresse : {{rulesFolderPath}}",
|
||||
"descriptionNoRules": "Êtes-vous sûr de vouloir supprimer ce mode personnalisé ?",
|
||||
"cancel": "Annuler",
|
||||
"confirm": "Supprimer"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "क्या आप वाकई इस कॉन्फ़िगरेशन प्रोफ़ाइल को हटाना चाहते हैं?",
|
||||
"delete_custom_mode_with_rules": "क्या आप वाकई इस {scope} मोड को हटाना चाहते हैं?\n\nयह संबंधित नियम फ़ोल्डर को भी यहाँ हटा देगा:\n{rulesFolderPath}",
|
||||
"delete_message": "आप क्या हटाना चाहते हैं?",
|
||||
"edit_message": "इसके बाद के सभी संदेशों को हटाएं?",
|
||||
"edit_warning": "इस संदेश को संपादित करने से बातचीत के सभी बाद के संदेश हट जाएंगे। क्या आप जारी रखना चाहते हैं?",
|
||||
"delete_just_this_message": "सिर्फ यह संदेश",
|
||||
"edit_just_this_message": "नहीं, केवल इसे संपादित करें",
|
||||
"delete_this_and_subsequent": "यह और सभी बाद के संदेश",
|
||||
"edit_this_and_delete_subsequent": "हां"
|
||||
"proceed": "जारी रखें"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "अमान्य डेटा URI फॉर्मेट",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "हां",
|
||||
"no": "नहीं",
|
||||
"cancel": "रद्द करें",
|
||||
"remove": "हटाएं",
|
||||
"keep": "रखें"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "सहेजें",
|
||||
"cancel": "रद्द करें",
|
||||
"edit": "संपादित करें"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "कस्टम मोड हटाएं",
|
||||
"description": "क्या आप वाकई इस {{scope}} मोड को हटाना चाहते हैं? यह संबंधित नियम फ़ोल्डर को भी {{rulesFolderPath}} पर हटा देगा",
|
||||
"descriptionNoRules": "क्या आप वाकई इस कस्टम मोड को हटाना चाहते हैं?",
|
||||
"cancel": "रद्द करें",
|
||||
"confirm": "हटाएं"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "Apakah kamu yakin ingin menghapus profil konfigurasi ini?",
|
||||
"delete_custom_mode_with_rules": "Anda yakin ingin menghapus mode {scope} ini?\n\nIni juga akan menghapus folder aturan terkait di:\n{rulesFolderPath}",
|
||||
"delete_message": "Apa yang ingin kamu hapus?",
|
||||
"edit_message": "Hapus semua pesan setelah ini?",
|
||||
"edit_warning": "Mengedit pesan ini akan menghapus semua pesan selanjutnya dalam percakapan. Apakah kamu ingin melanjutkan?",
|
||||
"delete_just_this_message": "Hanya pesan ini",
|
||||
"edit_just_this_message": "Tidak, hanya edit yang ini",
|
||||
"delete_this_and_subsequent": "Ini dan semua pesan selanjutnya",
|
||||
"edit_this_and_delete_subsequent": "Ya"
|
||||
"proceed": "Lanjutkan"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Format data URI tidak valid",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Ya",
|
||||
"no": "Tidak",
|
||||
"cancel": "Batal",
|
||||
"remove": "Hapus",
|
||||
"keep": "Simpan"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Simpan",
|
||||
"cancel": "Batal",
|
||||
"edit": "Edit"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Hapus Mode Kustom",
|
||||
"description": "Anda yakin ingin menghapus mode {{scope}} ini? Ini juga akan menghapus folder aturan terkait di: {{rulesFolderPath}}",
|
||||
"descriptionNoRules": "Anda yakin ingin menghapus mode kustom ini?",
|
||||
"cancel": "Batal",
|
||||
"confirm": "Hapus"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "Sei sicuro di voler eliminare questo profilo di configurazione?",
|
||||
"delete_custom_mode_with_rules": "Sei sicuro di voler eliminare questa modalità {scope}?\n\nQuesto eliminerà anche la cartella delle regole associata in:\n{rulesFolderPath}",
|
||||
"delete_message": "Cosa desideri eliminare?",
|
||||
"edit_message": "Eliminare tutti i messaggi dopo questo?",
|
||||
"edit_warning": "Modificare questo messaggio eliminerà tutti i messaggi successivi nella conversazione. Vuoi continuare?",
|
||||
"delete_just_this_message": "Solo questo messaggio",
|
||||
"edit_just_this_message": "No, modifica solo questo",
|
||||
"delete_this_and_subsequent": "Questo e tutti i messaggi successivi",
|
||||
"edit_this_and_delete_subsequent": "Sì"
|
||||
"proceed": "Continua"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Formato URI dati non valido",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Sì",
|
||||
"no": "No",
|
||||
"cancel": "Annulla",
|
||||
"remove": "Rimuovi",
|
||||
"keep": "Mantieni"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Salva",
|
||||
"cancel": "Annulla",
|
||||
"edit": "Modifica"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Elimina Modalità Personalizzata",
|
||||
"description": "Sei sicuro di voler eliminare questa modalità {{scope}}? Questo eliminerà anche la cartella delle regole associata a: {{rulesFolderPath}}",
|
||||
"descriptionNoRules": "Sei sicuro di voler eliminare questa modalità personalizzata?",
|
||||
"cancel": "Annulla",
|
||||
"confirm": "Elimina"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "この設定プロファイルを削除してもよろしいですか?",
|
||||
"delete_custom_mode_with_rules": "この{scope}モードを削除してもよろしいですか?\n\nこれにより、関連するルールフォルダも次の場所で削除されます:\n{rulesFolderPath}",
|
||||
"delete_message": "何を削除しますか?",
|
||||
"edit_message": "これ以降のメッセージをすべて削除しますか?",
|
||||
"edit_warning": "このメッセージを編集すると、会話内のすべての後続メッセージが削除されます。続行しますか?",
|
||||
"delete_just_this_message": "このメッセージのみ",
|
||||
"edit_just_this_message": "いいえ、これだけを編集",
|
||||
"delete_this_and_subsequent": "これ以降のすべてのメッセージ",
|
||||
"edit_this_and_delete_subsequent": "はい"
|
||||
"proceed": "続行"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "データURIフォーマットが無効です",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "はい",
|
||||
"no": "いいえ",
|
||||
"cancel": "キャンセル",
|
||||
"remove": "削除",
|
||||
"keep": "保持"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "保存",
|
||||
"cancel": "キャンセル",
|
||||
"edit": "編集"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "カスタムモードの削除",
|
||||
"description": "この{{scope}}モードを削除してもよろしいですか?これにより、関連するルールフォルダーも{{rulesFolderPath}}で削除されます",
|
||||
"descriptionNoRules": "このカスタムモードを削除してもよろしいですか?",
|
||||
"cancel": "キャンセル",
|
||||
"confirm": "削除"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "이 구성 프로필을 삭제하시겠습니까?",
|
||||
"delete_custom_mode_with_rules": "이 {scope} 모드를 삭제하시겠습니까?\n\n이렇게 하면 연결된 규칙 폴더도 다음 위치에서 삭제됩니다:\n{rulesFolderPath}",
|
||||
"delete_message": "무엇을 삭제하시겠습니까?",
|
||||
"edit_message": "이 메시지 이후의 모든 메시지를 삭제하시겠습니까?",
|
||||
"edit_warning": "이 메시지를 편집하면 대화의 모든 후속 메시지가 삭제됩니다. 계속하시겠습니까?",
|
||||
"delete_just_this_message": "이 메시지만",
|
||||
"edit_just_this_message": "아니요, 이것만 편집",
|
||||
"delete_this_and_subsequent": "이 메시지와 모든 후속 메시지",
|
||||
"edit_this_and_delete_subsequent": "예"
|
||||
"proceed": "계속"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "잘못된 데이터 URI 형식",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "예",
|
||||
"no": "아니오",
|
||||
"cancel": "취소",
|
||||
"remove": "제거",
|
||||
"keep": "유지"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "저장",
|
||||
"cancel": "취소",
|
||||
"edit": "편집"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "사용자 정의 모드 삭제",
|
||||
"description": "이 {{scope}} 모드를 삭제하시겠습니까? 이렇게 하면 {{rulesFolderPath}}의 관련 규칙 폴더도 삭제됩니다.",
|
||||
"descriptionNoRules": "이 사용자 정의 모드를 삭제하시겠습니까?",
|
||||
"cancel": "취소",
|
||||
"confirm": "삭제"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,9 +21,8 @@
|
|||
"delete_message": "Wat wil je verwijderen?",
|
||||
"delete_just_this_message": "Alleen dit bericht",
|
||||
"delete_this_and_subsequent": "Dit en alle volgende berichten",
|
||||
"edit_message": "Alle berichten na dit bericht verwijderen?",
|
||||
"edit_just_this_message": "Nee, alleen dit bericht bewerken",
|
||||
"edit_this_and_delete_subsequent": "Ja"
|
||||
"edit_warning": "Het bewerken van dit bericht zal alle volgende berichten in het gesprek verwijderen. Wil je doorgaan?",
|
||||
"proceed": "Doorgaan"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Ongeldig data-URI-formaat",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Ja",
|
||||
"no": "Nee",
|
||||
"cancel": "Annuleren",
|
||||
"remove": "Verwijderen",
|
||||
"keep": "Behouden"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Opslaan",
|
||||
"cancel": "Annuleren",
|
||||
"edit": "Bewerken"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Aangepaste modus verwijderen",
|
||||
"description": "Weet je zeker dat je deze {{scope}}-modus wilt verwijderen? Dit zal ook de bijbehorende regelsmap op {{rulesFolderPath}} verwijderen",
|
||||
"descriptionNoRules": "Weet je zeker dat je deze aangepaste modus wilt verwijderen?",
|
||||
"cancel": "Annuleren",
|
||||
"confirm": "Verwijderen"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,9 +21,8 @@
|
|||
"delete_message": "Co chcesz usunąć?",
|
||||
"delete_just_this_message": "Tylko tę wiadomość",
|
||||
"delete_this_and_subsequent": "Tę i wszystkie kolejne wiadomości",
|
||||
"edit_message": "Usunąć wszystkie wiadomości po tej?",
|
||||
"edit_just_this_message": "Nie, tylko edytuj tę wiadomość",
|
||||
"edit_this_and_delete_subsequent": "Tak"
|
||||
"edit_warning": "Edytowanie tej wiadomości usunie wszystkie kolejne wiadomości w rozmowie. Czy chcesz kontynuować?",
|
||||
"proceed": "Kontynuuj"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Nieprawidłowy format URI danych",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Tak",
|
||||
"no": "Nie",
|
||||
"cancel": "Anuluj",
|
||||
"remove": "Usuń",
|
||||
"keep": "Zachowaj"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Zapisz",
|
||||
"cancel": "Anuluj",
|
||||
"edit": "Edytuj"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Usuń tryb niestandardowy",
|
||||
"description": "Czy na pewno chcesz usunąć ten tryb {{scope}}? Spowoduje to również usunięcie powiązanego folderu z regułami w {{rulesFolderPath}}",
|
||||
"descriptionNoRules": "Czy na pewno chcesz usunąć ten tryb niestandardowy?",
|
||||
"cancel": "Anuluj",
|
||||
"confirm": "Usuń"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,9 +25,8 @@
|
|||
"delete_message": "O que você gostaria de excluir?",
|
||||
"delete_just_this_message": "Apenas esta mensagem",
|
||||
"delete_this_and_subsequent": "Esta e todas as mensagens subsequentes",
|
||||
"edit_message": "Excluir todas as mensagens após esta?",
|
||||
"edit_just_this_message": "Não, apenas editar esta",
|
||||
"edit_this_and_delete_subsequent": "Sim"
|
||||
"edit_warning": "Editar esta mensagem excluirá todas as mensagens subsequentes na conversa. Deseja continuar?",
|
||||
"proceed": "Continuar"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Formato de URI de dados inválido",
|
||||
|
|
@ -111,13 +110,11 @@
|
|||
"answers": {
|
||||
"yes": "Sim",
|
||||
"no": "Não",
|
||||
"cancel": "Cancelar",
|
||||
"remove": "Remover",
|
||||
"keep": "Manter"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Salvar",
|
||||
"cancel": "Cancelar",
|
||||
"edit": "Editar"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Excluir Modo Personalizado",
|
||||
"description": "Tem certeza de que deseja excluir este modo {{scope}}? Isso também excluirá a pasta de regras associada em: {{rulesFolderPath}}",
|
||||
"descriptionNoRules": "Tem certeza de que deseja excluir este modo personalizado?",
|
||||
"cancel": "Cancelar",
|
||||
"confirm": "Excluir"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,9 +21,8 @@
|
|||
"delete_message": "Что вы хотите удалить?",
|
||||
"delete_just_this_message": "Только это сообщение",
|
||||
"delete_this_and_subsequent": "Это и все последующие сообщения",
|
||||
"edit_message": "Удалить все сообщения после этого?",
|
||||
"edit_just_this_message": "Нет, только редактировать это",
|
||||
"edit_this_and_delete_subsequent": "Да"
|
||||
"edit_warning": "Редактирование этого сообщения удалит все последующие сообщения в разговоре. Хотите продолжить?",
|
||||
"proceed": "Продолжить"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Неверный формат URI данных",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Да",
|
||||
"no": "Нет",
|
||||
"cancel": "Отмена",
|
||||
"remove": "Удалить",
|
||||
"keep": "Оставить"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Сохранить",
|
||||
"cancel": "Отмена",
|
||||
"edit": "Редактировать"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Удалить пользовательский режим",
|
||||
"description": "Вы уверены, что хотите удалить этот режим {{scope}}? Это также удалит связанную папку правил по адресу: {{rulesFolderPath}}",
|
||||
"descriptionNoRules": "Вы уверены, что хотите удалить этот пользовательский режим?",
|
||||
"cancel": "Отмена",
|
||||
"confirm": "Удалить"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,9 +21,8 @@
|
|||
"delete_message": "Neyi silmek istersiniz?",
|
||||
"delete_just_this_message": "Sadece bu mesajı",
|
||||
"delete_this_and_subsequent": "Bu ve sonraki tüm mesajları",
|
||||
"edit_message": "Bu mesajdan sonraki tüm mesajlar silinsin mi?",
|
||||
"edit_just_this_message": "Hayır, sadece bunu düzenle",
|
||||
"edit_this_and_delete_subsequent": "Evet"
|
||||
"edit_warning": "Bu mesajı düzenlemek konuşmadaki tüm sonraki mesajları silecektir. Devam etmek istiyor musunuz?",
|
||||
"proceed": "Devam et"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Geçersiz veri URI formatı",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Evet",
|
||||
"no": "Hayır",
|
||||
"cancel": "İptal",
|
||||
"remove": "Kaldır",
|
||||
"keep": "Koru"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Kaydet",
|
||||
"cancel": "İptal",
|
||||
"edit": "Düzenle"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "Özel Modu Sil",
|
||||
"description": "Bu {{scope}} modunu silmek istediğinizden emin misiniz? Bu, {{rulesFolderPath}} adresindeki ilişkili kurallar klasörünü de silecektir",
|
||||
"descriptionNoRules": "Bu özel modu silmek istediğinizden emin misiniz?",
|
||||
"cancel": "İptal",
|
||||
"confirm": "Sil"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,9 +21,8 @@
|
|||
"delete_message": "Bạn muốn xóa gì?",
|
||||
"delete_just_this_message": "Chỉ tin nhắn này",
|
||||
"delete_this_and_subsequent": "Tin nhắn này và tất cả tin nhắn tiếp theo",
|
||||
"edit_message": "Xóa tất cả tin nhắn sau tin nhắn này?",
|
||||
"edit_just_this_message": "Không, chỉ chỉnh sửa tin nhắn này",
|
||||
"edit_this_and_delete_subsequent": "Có"
|
||||
"edit_warning": "Chỉnh sửa tin nhắn này sẽ xóa tất cả tin nhắn tiếp theo trong cuộc trò chuyện. Bạn có muốn tiếp tục không?",
|
||||
"proceed": "Tiếp tục"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "Định dạng URI dữ liệu không hợp lệ",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "Có",
|
||||
"no": "Không",
|
||||
"cancel": "Hủy",
|
||||
"remove": "Xóa",
|
||||
"keep": "Giữ"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "Lưu",
|
||||
"cancel": "Hủy",
|
||||
"edit": "Chỉnh sửa"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -178,7 +175,6 @@
|
|||
"deleteConfirmation": "Chắc chắn xóa chế độ này?"
|
||||
},
|
||||
"descriptionNoRules": "Bạn có chắc chắn muốn xóa chế độ tùy chỉnh này không?",
|
||||
"cancel": "Hủy",
|
||||
"confirm": "Xóa"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "您确定要删除此配置文件吗?",
|
||||
"delete_custom_mode_with_rules": "您确定要删除此 {scope} 模式吗?\n\n这也将删除位于以下位置的关联规则文件夹:\n{rulesFolderPath}",
|
||||
"delete_message": "您想删除什么?",
|
||||
"edit_message": "删除此消息后的所有消息?",
|
||||
"edit_warning": "编辑此消息将删除对话中的所有后续消息。您要继续吗?",
|
||||
"delete_just_this_message": "仅此消息",
|
||||
"edit_just_this_message": "不,仅编辑此消息",
|
||||
"delete_this_and_subsequent": "此消息及所有后续消息",
|
||||
"edit_this_and_delete_subsequent": "是"
|
||||
"proceed": "继续"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_mcp_config": "项目MCP配置格式无效",
|
||||
|
|
@ -112,13 +111,11 @@
|
|||
"answers": {
|
||||
"yes": "是",
|
||||
"no": "否",
|
||||
"cancel": "取消",
|
||||
"remove": "删除",
|
||||
"keep": "保留"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "保存",
|
||||
"cancel": "取消",
|
||||
"edit": "编辑"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -176,7 +173,6 @@
|
|||
"title": "删除自定义模式",
|
||||
"description": "您确定要删除此 {{scope}} 模式吗?这也将删除位于 {{rulesFolderPath}} 的关联规则文件夹",
|
||||
"descriptionNoRules": "您确定要删除此自定义模式吗?",
|
||||
"cancel": "取消",
|
||||
"confirm": "删除"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,10 @@
|
|||
"delete_config_profile": "您確定要刪除此設定檔案嗎?",
|
||||
"delete_custom_mode_with_rules": "您確定要刪除此 {scope} 模式嗎?\n\n這也將刪除位於以下位置的關聯規則資料夾:\n{rulesFolderPath}",
|
||||
"delete_message": "您想刪除哪些內容?",
|
||||
"edit_message": "刪除此訊息後的所有訊息?",
|
||||
"edit_warning": "編輯此訊息將刪除對話中的所有後續訊息。您要繼續嗎?",
|
||||
"delete_just_this_message": "僅這則訊息",
|
||||
"edit_just_this_message": "否,僅編輯此訊息",
|
||||
"delete_this_and_subsequent": "這則訊息及所有後續訊息",
|
||||
"edit_this_and_delete_subsequent": "是"
|
||||
"proceed": "繼續"
|
||||
},
|
||||
"errors": {
|
||||
"invalid_data_uri": "資料 URI 格式無效",
|
||||
|
|
@ -107,13 +106,11 @@
|
|||
"answers": {
|
||||
"yes": "是",
|
||||
"no": "否",
|
||||
"cancel": "取消",
|
||||
"remove": "刪除",
|
||||
"keep": "保留"
|
||||
},
|
||||
"buttons": {
|
||||
"save": "儲存",
|
||||
"cancel": "取消",
|
||||
"edit": "編輯"
|
||||
},
|
||||
"tasks": {
|
||||
|
|
@ -171,7 +168,6 @@
|
|||
"title": "刪除自訂模式",
|
||||
"description": "您確定要刪除此 {{scope}} 模式嗎?這也將刪除位於 {{rulesFolderPath}} 的關聯規則資料夾",
|
||||
"descriptionNoRules": "您確定要刪除此自訂模式嗎?",
|
||||
"cancel": "取消",
|
||||
"confirm": "刪除"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue