diff --git a/browser_tests/fixtures/ComfyPage.ts b/browser_tests/fixtures/ComfyPage.ts
index 2ed1759c7..643907163 100644
--- a/browser_tests/fixtures/ComfyPage.ts
+++ b/browser_tests/fixtures/ComfyPage.ts
@@ -46,7 +46,7 @@ class ComfyPropertiesPanel {
constructor(readonly page: Page) {
this.root = page.getByTestId(TestIds.propertiesPanel.root)
this.panelTitle = this.root.locator('h3')
- this.searchBox = this.root.getByPlaceholder('Search...')
+ this.searchBox = this.root.getByPlaceholder(/^Search/)
}
}
diff --git a/src/components/common/ElectronFileDownload.vue b/src/components/common/ElectronFileDownload.vue
index 0a85a197b..eb86541af 100644
--- a/src/components/common/ElectronFileDownload.vue
+++ b/src/components/common/ElectronFileDownload.vue
@@ -22,7 +22,7 @@
@click="triggerDownload"
>
- {{ $t('g.download') + ' (' + fileSize + ')' }}
+ {{ $t('g.downloadWithSize', { size: fileSize }) }}
diff --git a/src/components/dialog/content/setting/KeybindingPanel.vue b/src/components/dialog/content/setting/KeybindingPanel.vue
index 0bc15b9cf..dff5f7dfb 100644
--- a/src/components/dialog/content/setting/KeybindingPanel.vue
+++ b/src/components/dialog/content/setting/KeybindingPanel.vue
@@ -3,7 +3,9 @@
diff --git a/src/components/rightSidePanel/parameters/WidgetActions.vue b/src/components/rightSidePanel/parameters/WidgetActions.vue
index ba20eac35..e5c3cf16c 100644
--- a/src/components/rightSidePanel/parameters/WidgetActions.vue
+++ b/src/components/rightSidePanel/parameters/WidgetActions.vue
@@ -46,7 +46,7 @@ const isFavorited = computed(() =>
async function handleRename() {
const newLabel = await dialogService.prompt({
title: t('g.rename'),
- message: t('g.enterNewName') + ':',
+ message: t('g.enterNewNamePrompt'),
defaultValue: widget.label,
placeholder: widget.name
})
diff --git a/src/components/searchbox/NodeSearchBox.vue b/src/components/searchbox/NodeSearchBox.vue
index abda187a5..fcf63b1eb 100644
--- a/src/components/searchbox/NodeSearchBox.vue
+++ b/src/components/searchbox/NodeSearchBox.vue
@@ -118,7 +118,9 @@ const suggestions = ref([])
const hoveredSuggestion = ref(null)
const currentQuery = ref('')
const placeholder = computed(() => {
- return filters.length === 0 ? t('g.searchNodes') + '...' : ''
+ return filters.length === 0
+ ? t('g.searchPlaceholder', { subject: t('g.nodes') })
+ : ''
})
const nodeDefStore = useNodeDefStore()
diff --git a/src/components/sidebar/tabs/ModelLibrarySidebarTab.vue b/src/components/sidebar/tabs/ModelLibrarySidebarTab.vue
index 218655231..74c5e9c91 100644
--- a/src/components/sidebar/tabs/ModelLibrarySidebarTab.vue
+++ b/src/components/sidebar/tabs/ModelLibrarySidebarTab.vue
@@ -25,7 +25,11 @@
diff --git a/src/components/sidebar/tabs/NodeLibrarySidebarTab.vue b/src/components/sidebar/tabs/NodeLibrarySidebarTab.vue
index 9e6e6b7a4..b34949602 100644
--- a/src/components/sidebar/tabs/NodeLibrarySidebarTab.vue
+++ b/src/components/sidebar/tabs/NodeLibrarySidebarTab.vue
@@ -91,7 +91,7 @@
v-model:model-value="searchQuery"
data-testid="node-library-search"
class="node-lib-search-box"
- :placeholder="$t('g.searchNodes') + '...'"
+ :placeholder="$t('g.searchPlaceholder', { subject: $t('g.nodes') })"
filter-icon="pi pi-filter"
:filters
@search="handleSearch"
diff --git a/src/components/sidebar/tabs/WorkflowsSidebarTab.vue b/src/components/sidebar/tabs/WorkflowsSidebarTab.vue
index fbb8d6880..7dae539bb 100644
--- a/src/components/sidebar/tabs/WorkflowsSidebarTab.vue
+++ b/src/components/sidebar/tabs/WorkflowsSidebarTab.vue
@@ -22,7 +22,9 @@
ref="searchBoxRef"
v-model:model-value="searchQuery"
class="workflows-search-box"
- :placeholder="$t('g.searchWorkflows') + '...'"
+ :placeholder="
+ $t('g.searchPlaceholder', { subject: $t('g.workflow') })
+ "
@search="handleSearch"
/>
diff --git a/src/composables/queue/useJobMenu.ts b/src/composables/queue/useJobMenu.ts
index bdf7033f6..0dd990853 100644
--- a/src/composables/queue/useJobMenu.ts
+++ b/src/composables/queue/useJobMenu.ts
@@ -190,7 +190,7 @@ export function useJobMenu(
if (settingStore.get('Comfy.PromptFilename')) {
const input = await useDialogService().prompt({
title: t('workflowService.exportWorkflow'),
- message: t('workflowService.enterFilename') + ':',
+ message: t('workflowService.enterFilenamePrompt'),
defaultValue: filename
})
if (!input) return
diff --git a/src/composables/useCoreCommands.ts b/src/composables/useCoreCommands.ts
index 644d33ac9..bb6257a6a 100644
--- a/src/composables/useCoreCommands.ts
+++ b/src/composables/useCoreCommands.ts
@@ -199,7 +199,7 @@ export function useCoreCommands(): ComfyCommand[] {
const newName = await dialogService.prompt({
title: t('g.rename'),
- message: t('workflowService.enterFilename') + ':',
+ message: t('workflowService.enterFilenamePrompt'),
defaultValue: workflow.filename
})
if (!newName || newName === workflow.filename) return
diff --git a/src/locales/en/main.json b/src/locales/en/main.json
index 8825fbf9c..3b5fe6435 100644
--- a/src/locales/en/main.json
+++ b/src/locales/en/main.json
@@ -136,7 +136,8 @@
"searchKeybindings": "Search Keybindings",
"searchExtensions": "Search Extensions",
"search": "Search",
- "searchPlaceholder": "Search...",
+ "searchPlaceholder": "Search {subject}...",
+ "downloadWithSize": "Download ({size})",
"noResultsFound": "No Results Found",
"noResults": "No Results",
"searchFailedMessage": "We couldn't find any settings matching your search. Try adjusting your search terms.",
@@ -152,6 +153,8 @@
"custom": "Custom",
"command": "Command",
"keybinding": "Keybinding",
+ "keybindings": "Keybindings",
+ "extensions": "Extensions",
"upload": "Upload",
"export": "Export",
"workflow": "Workflow",
@@ -192,6 +195,7 @@
"missing": "Missing",
"inProgress": "In progress",
"completed": "Completed",
+ "completedWithCheckmark": "Completed ✓",
"downloading": "Downloading",
"interrupted": "Interrupted",
"queued": "Queued",
@@ -255,6 +259,7 @@
"batchRename": "Batch rename",
"enterBaseName": "Enter base name",
"enterNewName": "Enter new name",
+ "enterNewNamePrompt": "Enter new name:",
"selectItemsToRename": "Select items to rename",
"nothingToRename": "Nothing to rename",
"moreWorkflows": "More workflows",
@@ -1003,6 +1008,7 @@
"workflowService": {
"exportWorkflow": "Export Workflow",
"enterFilename": "Enter the filename",
+ "enterFilenamePrompt": "Enter the filename:",
"saveWorkflow": "Save workflow"
},
"subgraphStore": {
@@ -1012,6 +1018,7 @@
"overwriteBlueprintTitle": "Overwrite existing blueprint?",
"overwriteBlueprint": "Saving will overwrite the current blueprint with your changes",
"blueprintName": "Subgraph name",
+ "blueprintNamePrompt": "Subgraph name:",
"promoteOutsideSubgraph": "Can't promote widget when not in subgraph",
"publish": "Publish Subgraph",
"publishSuccess": "Saved to Nodes Library",
diff --git a/src/platform/assets/components/AssetBrowserModal.vue b/src/platform/assets/components/AssetBrowserModal.vue
index 779be651e..8745f3cc7 100644
--- a/src/platform/assets/components/AssetBrowserModal.vue
+++ b/src/platform/assets/components/AssetBrowserModal.vue
@@ -30,7 +30,7 @@
v-model="searchQuery"
:autofocus="true"
size="lg"
- :placeholder="$t('g.searchPlaceholder')"
+ :placeholder="$t('g.searchPlaceholder', { subject: '' })"
class="max-w-96"
/>