[GH-ISSUE #1731] [i18n] Entire Electron shell has no translation — tray menu, dialogs, installation wizard, error boxes hardcoded in English #528

Open
opened 2026-10-31 22:14:06 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @ghost on GitHub (Jun 4, 2026).
Original GitHub issue: https://github.com/Comfy-Org/desktop/issues/1731

Description

The ComfyUI Desktop app has no internationalization (i18n) system at all. Zero files import or use any translation library. Every user-facing string across the entire Electron shell is hardcoded in English. All 15 source files that display UI text need to be migrated.

Below is a comprehensive audit organized by UI area, with exact file paths and line numbers.


1. Tray Icon / System Menu (左上角托盘菜单)

File: src/main-process/appWindow.ts

Lines String
428 "Show Comfy Window"
440 "Quit Comfy"
446 "Hide"
472 "About ComfyUI"

These appear in the tray icon right-click menu and the native application menu.


2. About Dialog

File: src/main-process/appWindow.ts

Lines String
476 "About" (dialog title)
477 "ComfyUI v${version}" (message)
478 "Created by Comfy Org\nCopyright © 2024" (detail)
479 "OK" (button)
96 "ComfyUI" (BrowserWindow title)
415 "ComfyUI" (tray tooltip)
494 "Help" (fallback help menu label)

3. Error Dialogs

Multiple files use dialog.showErrorBox() with hardcoded English:

File: src/main-process/appWindow.ts

Lines Strings
283-285 "User Data", "Unknown error whilst writing to user data folder:${path}"
290 "Invalid Environment", "Unknown error whilst attempting to determine user data folder."

File: src/store/desktopConfig.ts

Lines Strings
120-123 "Invalid configuration file", format error message, "&Reset desktop configuration", "Show the &file (and quit)", "&Quit"
132-135 "Confirm reset settings", confirmation message, "Show the &file (and quit)", "&Yes, delete all settings", "&Quit"
147 "Delete Failed", "Unknown error whilst attempting to delete config file:${path}"
157 "User Data", "Unknown error whilst attempting to determine user data folder."

File: src/desktopApp.ts

Lines Strings
58-59 "Startup failed", "Unknown error whilst loading start screen.${error}"
158-160 "Unhandled exception", full error description
173-178 "Python Environment Issue", "Missing Python Module", "Reset Virtual Environment", "Ignore"
235-236 "Startup failed", "Fatal error occurred during app pre-startup."
256-257 "Critical error", reinstall message

File: src/services/sentry.ts

Lines Strings
85-88 "Send Crash Report", "An error occurred: ${type}", error details, "Send Report", "Do not send crash report"

File: src/handlers/pathHandlers.ts

Lines Strings
186-187 "Error Opening File", "Could not open file: ${path}. Error: ${error}"
338-339 "Invalid ComfyUI source path"

File: src/main.ts

Lines Strings
55 "User Data", "Unknown error loading app config on startup."

4. Installation Wizard Dialogs

File: src/install/installationManager.ts

Lines Strings
185-188 "Download git", "We were unable to find git on this device.", "Open git downloads page", "Skip"
253-255 "Python Environment Issue", "Would you like to remove your .venv directory?", "Reinstall venv", "Ignore"
291-294 "Virtual Environment Creation Failed", "Failed to create virtual environment", "View Documentation", "Exit"
317-318 "Failed to migrate custom nodes" (notification title + body)
411-414 "Update NVIDIA Driver", driver version warnings, "OK"
128 "Critical Error"

File: src/handlers/AppHandlers.ts

Lines Strings
40-44 "Yes", "No", "Restart ComfyUI", restart detail, "OK"

5. Second Instance / Setup Mode Dialogs

File: src/main-process/comfyServer.ts

Lines Strings
146-148 "ComfyUI server is already running"
206 "Python server failed to start within timeout."
222 "Timeout: Python server did not exit within 10 seconds"
235 "Failed to initiate kill signal for python server"

File: src/main-process/comfyDesktopApp.ts

Lines Strings
111 "ComfyUI server is already running"

6. Virtual Environment / Installation Progress Messages

File: src/virtualEnvironment.ts

Lines Strings
131-136 AMD GPU driver update instructions (multi-line English)
361 "We were unable to verify the state of your Python virtual environment."
650 "Installing PyTorch" (stage message)
837 "Installing ComfyUI requirements" (stage message)
862 "Installing ComfyUI Manager requirements" (stage message)
400, 412, 436, 673, 795, 815, 850, 867-869, 882, 924-925 Various throw new Error(...) with English messages

7. Settings / Configuration Labels

File: src/constants.ts

Lines Strings
134-135 "User Files", "Settings and user-created workflows"
139-140 "Models", "Reference model files from existing ComfyUI installations."
144-145 "Custom Nodes", "Reinstall custom nodes from existing ComfyUI installations."

8. Download Manager Errors

File: src/models/DownloadManager.ts

Lines Strings
137 "Save path is not in models directory"
286 "Invalid file type: must be a .safetensors file"
293 "Invalid URL format: ${error}"

9. Config/Store Errors

File: src/config/comfySettings.ts

Lines Strings
37 "Cannot access ComfySettings before initialization."
132, 147 "Settings are locked and cannot be modified"

File: src/store/desktopConfig.ts

Lines Strings
14 "Cannot access store before initialization."

Root Cause

The desktop app is an Electron shell with no i18n infrastructure. Unlike the web frontend (which has vue-i18n with 12 languages), the desktop shell was never internationalized. Every dialog, menu, tray tooltip, notification, and error message is hardcoded in English.

Suggested Fix

There is no i18n.ts equivalent in this codebase — one needs to be created. The Electron dialog.showErrorBox(), Menu.buildFromTemplate(), Tray.setContextMenu(), and Notification APIs accept only plain strings, so an Electron-compatible i18n system would need to:

  1. Create locale files at src/locales/{lang}/app.json
  2. Initialize an i18n instance in the main process pre-startup
  3. Wrap all dialog, Menu, Tray, Notification calls with translation function calls
  4. Set the locale from the system language or a user preference in desktop config

Steps to reproduce

  1. Set the operating system language to any non-English language (e.g., 简体中文)
  2. Install ComfyUI Desktop for the first time (installation wizard shows English)
  3. Right-click the system tray icon (context menu shows English)
  4. Open the About dialog (all labels in English)
  5. Trigger an error (dialog shows English)
  6. Open Settings (constants.ts labels are English)
  7. The entire native Electron shell has zero translated strings

Plugins

N/A

ComfyUI Desktop Version

main

Operating System

Windows (also macOS, Linux)

Terminal

N/A

Originally created by @ghost on GitHub (Jun 4, 2026). Original GitHub issue: https://github.com/Comfy-Org/desktop/issues/1731 ### Description The ComfyUI Desktop app has **no internationalization (i18n) system at all**. Zero files import or use any translation library. Every user-facing string across the entire Electron shell is hardcoded in English. All 15 source files that display UI text need to be migrated. Below is a comprehensive audit organized by UI area, with exact file paths and line numbers. --- #### 1. Tray Icon / System Menu (左上角托盘菜单) **File:** `src/main-process/appWindow.ts` | Lines | String | |-------|--------| | 428 | `"Show Comfy Window"` | | 440 | `"Quit Comfy"` | | 446 | `"Hide"` | | 472 | `"About ComfyUI"` | These appear in the tray icon right-click menu and the native application menu. --- #### 2. About Dialog **File:** `src/main-process/appWindow.ts` | Lines | String | |-------|--------| | 476 | `"About"` (dialog title) | | 477 | `"ComfyUI v${version}"` (message) | | 478 | `"Created by Comfy Org\nCopyright © 2024"` (detail) | | 479 | `"OK"` (button) | | 96 | `"ComfyUI"` (BrowserWindow title) | | 415 | `"ComfyUI"` (tray tooltip) | | 494 | `"Help"` (fallback help menu label) | --- #### 3. Error Dialogs Multiple files use `dialog.showErrorBox()` with hardcoded English: **File:** `src/main-process/appWindow.ts` | Lines | Strings | |-------|---------| | 283-285 | `"User Data"`, `"Unknown error whilst writing to user data folder:${path}"` | | 290 | `"Invalid Environment"`, `"Unknown error whilst attempting to determine user data folder."` | **File:** `src/store/desktopConfig.ts` | Lines | Strings | |-------|---------| | 120-123 | `"Invalid configuration file"`, format error message, `"&Reset desktop configuration"`, `"Show the &file (and quit)"`, `"&Quit"` | | 132-135 | `"Confirm reset settings"`, confirmation message, `"Show the &file (and quit)"`, `"&Yes, delete all settings"`, `"&Quit"` | | 147 | `"Delete Failed"`, `"Unknown error whilst attempting to delete config file:${path}"` | | 157 | `"User Data"`, `"Unknown error whilst attempting to determine user data folder."` | **File:** `src/desktopApp.ts` | Lines | Strings | |-------|---------| | 58-59 | `"Startup failed"`, `"Unknown error whilst loading start screen.${error}"` | | 158-160 | `"Unhandled exception"`, full error description | | 173-178 | `"Python Environment Issue"`, `"Missing Python Module"`, `"Reset Virtual Environment"`, `"Ignore"` | | 235-236 | `"Startup failed"`, `"Fatal error occurred during app pre-startup."` | | 256-257 | `"Critical error"`, reinstall message | **File:** `src/services/sentry.ts` | Lines | Strings | |-------|---------| | 85-88 | `"Send Crash Report"`, `"An error occurred: ${type}"`, error details, `"Send Report"`, `"Do not send crash report"` | **File:** `src/handlers/pathHandlers.ts` | Lines | Strings | |-------|---------| | 186-187 | `"Error Opening File"`, `"Could not open file: ${path}. Error: ${error}"` | | 338-339 | `"Invalid ComfyUI source path"` | **File:** `src/main.ts` | Lines | Strings | |-------|---------| | 55 | `"User Data"`, `"Unknown error loading app config on startup."` | --- #### 4. Installation Wizard Dialogs **File:** `src/install/installationManager.ts` | Lines | Strings | |-------|---------| | 185-188 | `"Download git"`, `"We were unable to find git on this device."`, `"Open git downloads page"`, `"Skip"` | | 253-255 | `"Python Environment Issue"`, `"Would you like to remove your .venv directory?"`, `"Reinstall venv"`, `"Ignore"` | | 291-294 | `"Virtual Environment Creation Failed"`, `"Failed to create virtual environment"`, `"View Documentation"`, `"Exit"` | | 317-318 | `"Failed to migrate custom nodes"` (notification title + body) | | 411-414 | `"Update NVIDIA Driver"`, driver version warnings, `"OK"` | | 128 | `"Critical Error"` | **File:** `src/handlers/AppHandlers.ts` | Lines | Strings | |-------|---------| | 40-44 | `"Yes"`, `"No"`, `"Restart ComfyUI"`, restart detail, `"OK"` | --- #### 5. Second Instance / Setup Mode Dialogs **File:** `src/main-process/comfyServer.ts` | Lines | Strings | |-------|---------| | 146-148 | `"ComfyUI server is already running"` | | 206 | `"Python server failed to start within timeout."` | | 222 | `"Timeout: Python server did not exit within 10 seconds"` | | 235 | `"Failed to initiate kill signal for python server"` | **File:** `src/main-process/comfyDesktopApp.ts` | Lines | Strings | |-------|---------| | 111 | `"ComfyUI server is already running"` | --- #### 6. Virtual Environment / Installation Progress Messages **File:** `src/virtualEnvironment.ts` | Lines | Strings | |-------|---------| | 131-136 | AMD GPU driver update instructions (multi-line English) | | 361 | `"We were unable to verify the state of your Python virtual environment."` | | 650 | `"Installing PyTorch"` (stage message) | | 837 | `"Installing ComfyUI requirements"` (stage message) | | 862 | `"Installing ComfyUI Manager requirements"` (stage message) | | 400, 412, 436, 673, 795, 815, 850, 867-869, 882, 924-925 | Various `throw new Error(...)` with English messages | --- #### 7. Settings / Configuration Labels **File:** `src/constants.ts` | Lines | Strings | |-------|---------| | 134-135 | `"User Files"`, `"Settings and user-created workflows"` | | 139-140 | `"Models"`, `"Reference model files from existing ComfyUI installations."` | | 144-145 | `"Custom Nodes"`, `"Reinstall custom nodes from existing ComfyUI installations."` | --- #### 8. Download Manager Errors **File:** `src/models/DownloadManager.ts` | Lines | Strings | |-------|---------| | 137 | `"Save path is not in models directory"` | | 286 | `"Invalid file type: must be a .safetensors file"` | | 293 | `"Invalid URL format: ${error}"` | --- #### 9. Config/Store Errors **File:** `src/config/comfySettings.ts` | Lines | Strings | |-------|---------| | 37 | `"Cannot access ComfySettings before initialization."` | | 132, 147 | `"Settings are locked and cannot be modified"` | **File:** `src/store/desktopConfig.ts` | Lines | Strings | |-------|---------| | 14 | `"Cannot access store before initialization."` | --- ### Root Cause The desktop app is an Electron shell with no i18n infrastructure. Unlike the web frontend (which has vue-i18n with 12 languages), the desktop shell was never internationalized. Every dialog, menu, tray tooltip, notification, and error message is hardcoded in English. ### Suggested Fix There is no `i18n.ts` equivalent in this codebase — one needs to be created. The Electron `dialog.showErrorBox()`, `Menu.buildFromTemplate()`, `Tray.setContextMenu()`, and `Notification` APIs accept only plain strings, so an Electron-compatible i18n system would need to: 1. Create locale files at `src/locales/{lang}/app.json` 2. Initialize an i18n instance in the main process pre-startup 3. Wrap all `dialog`, `Menu`, `Tray`, `Notification` calls with translation function calls 4. Set the locale from the system language or a user preference in desktop config ### Steps to reproduce 1. Set the operating system language to any non-English language (e.g., 简体中文) 2. Install ComfyUI Desktop for the first time (installation wizard shows English) 3. Right-click the system tray icon (context menu shows English) 4. Open the About dialog (all labels in English) 5. Trigger an error (dialog shows English) 6. Open Settings (`constants.ts` labels are English) 7. The entire native Electron shell has zero translated strings ### Plugins N/A ### ComfyUI Desktop Version main ### Operating System Windows (also macOS, Linux) ### Terminal N/A
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Comfy-Org/desktop#528
No description provided.