mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-03 06:47:33 +00:00
* feat: Add download progress to sidebar * Removing console log * Lint fixes * Updating UI * Fixing lint error * Fixing lint error * Fixing lint error * PR comments * Reverting change --------- Co-authored-by: Oto Ciulis <oto.ciulis@gmail.com>
431 lines
16 KiB
TypeScript
431 lines
16 KiB
TypeScript
import { createI18n } from 'vue-i18n'
|
||
|
||
const messages = {
|
||
en: {
|
||
welcome: {
|
||
title: 'Welcome to ComfyUI',
|
||
getStarted: 'Get Started'
|
||
},
|
||
install: {
|
||
installLocation: 'Install Location',
|
||
migration: 'Migration',
|
||
desktopSettings: 'Desktop Settings',
|
||
chooseInstallationLocation: 'Choose Installation Location',
|
||
systemLocations: 'System Locations',
|
||
failedToSelectDirectory: 'Failed to select directory',
|
||
pathValidationFailed: 'Failed to validate path',
|
||
installLocationDescription:
|
||
"Select the directory for ComfyUI's user data. A python environment will be installed to the selected location. Please make sure the selected disk has enough space (~5GB) left.",
|
||
installLocationTooltip:
|
||
"ComfyUI's user data directory. Stores:\n- Python Environment\n- Models\n- Custom nodes\n",
|
||
appDataLocationTooltip:
|
||
"ComfyUI's app data directory. Stores:\n- Logs\n- Server configs",
|
||
appPathLocationTooltip:
|
||
"ComfyUI's app asset directory. Stores the ComfyUI code and assets",
|
||
migrateFromExistingInstallation: 'Migrate from Existing Installation',
|
||
migrationSourcePathDescription:
|
||
'If you have an existing ComfyUI installation, we can copy/link your existing user files and models to the new installation.',
|
||
selectItemsToMigrate: 'Select Items to Migrate',
|
||
migrationOptional:
|
||
"Migration is optional. If you don't have an existing installation, you can skip this step.",
|
||
desktopAppSettings: 'Desktop App Settings',
|
||
desktopAppSettingsDescription:
|
||
'Configure how ComfyUI behaves on your desktop. You can change these settings later.',
|
||
settings: {
|
||
autoUpdate: 'Automatic Updates',
|
||
allowMetrics: 'Usage Analytics',
|
||
autoUpdateDescription:
|
||
"Automatically download and install updates when they become available. You'll always be notified before updates are installed.",
|
||
allowMetricsDescription:
|
||
'Help improve ComfyUI by sending anonymous usage data. No personal information or workflow content will be collected.',
|
||
learnMoreAboutData: 'Learn more about data collection',
|
||
dataCollectionDialog: {
|
||
title: 'About Data Collection',
|
||
whatWeCollect: 'What we collect:',
|
||
whatWeDoNotCollect: "What we don't collect:",
|
||
errorReports: 'Error reports',
|
||
systemInfo: 'Operating system and app version',
|
||
personalInformation: 'Personal information',
|
||
workflowContent: 'Workflow content',
|
||
fileSystemInformation: 'File system information'
|
||
}
|
||
}
|
||
},
|
||
firstTimeUIMessage:
|
||
'This is the first time you use the new UI. Choose "Menu > Use New Menu > Disabled" to restore the old UI.',
|
||
download: 'Download',
|
||
loadAllFolders: 'Load All Folders',
|
||
refresh: 'Refresh',
|
||
terminal: 'Terminal',
|
||
videoFailedToLoad: 'Video failed to load',
|
||
extensionName: 'Extension Name',
|
||
reloadToApplyChanges: 'Reload to apply changes',
|
||
insert: 'Insert',
|
||
systemInfo: 'System Info',
|
||
devices: 'Devices',
|
||
about: 'About',
|
||
add: 'Add',
|
||
confirm: 'Confirm',
|
||
reset: 'Reset',
|
||
resetKeybindingsTooltip: 'Reset keybindings to default',
|
||
customizeFolder: 'Customize Folder',
|
||
icon: 'Icon',
|
||
color: 'Color',
|
||
bookmark: 'Bookmark',
|
||
folder: 'Folder',
|
||
star: 'Star',
|
||
heart: 'Heart',
|
||
file: 'File',
|
||
inbox: 'Inbox',
|
||
box: 'Box',
|
||
briefcase: 'Briefcase',
|
||
error: 'Error',
|
||
loading: 'Loading',
|
||
findIssues: 'Find Issues',
|
||
copyToClipboard: 'Copy to Clipboard',
|
||
openNewIssue: 'Open New Issue',
|
||
showReport: 'Show Report',
|
||
imageFailedToLoad: 'Image failed to load',
|
||
reconnecting: 'Reconnecting',
|
||
reconnected: 'Reconnected',
|
||
delete: 'Delete',
|
||
rename: 'Rename',
|
||
customize: 'Customize',
|
||
experimental: 'BETA',
|
||
deprecated: 'DEPR',
|
||
loadWorkflow: 'Load Workflow',
|
||
goToNode: 'Go to Node',
|
||
settings: 'Settings',
|
||
searchWorkflows: 'Search Workflows',
|
||
searchSettings: 'Search Settings',
|
||
searchNodes: 'Search Nodes',
|
||
searchModels: 'Search Models',
|
||
searchKeybindings: 'Search Keybindings',
|
||
noResultsFound: 'No Results Found',
|
||
searchFailedMessage:
|
||
"We couldn't find any settings matching your search. Try adjusting your search terms.",
|
||
noTasksFound: 'No Tasks Found',
|
||
noTasksFoundMessage: 'There are no tasks in the queue.',
|
||
newFolder: 'New Folder',
|
||
sideToolbar: {
|
||
themeToggle: 'Toggle Theme',
|
||
queue: 'Queue',
|
||
nodeLibrary: 'Node Library',
|
||
workflows: 'Workflows',
|
||
browseTemplates: 'Browse example templates',
|
||
openWorkflow: 'Open workflow in local file system',
|
||
newBlankWorkflow: 'Create a new blank workflow',
|
||
nodeLibraryTab: {
|
||
sortOrder: 'Sort Order'
|
||
},
|
||
modelLibrary: 'Model Library',
|
||
downloads: 'Downloads',
|
||
queueTab: {
|
||
showFlatList: 'Show Flat List',
|
||
backToAllTasks: 'Back to All Tasks',
|
||
containImagePreview: 'Fill Image Preview',
|
||
coverImagePreview: 'Fit Image Preview',
|
||
clearPendingTasks: 'Clear Pending Tasks'
|
||
}
|
||
},
|
||
menu: {
|
||
hideMenu: 'Hide Menu',
|
||
showMenu: 'Show Menu',
|
||
batchCount: 'Batch Count',
|
||
batchCountTooltip:
|
||
'The number of times the workflow generation should be queued',
|
||
autoQueue: 'Auto Queue',
|
||
disabled: 'Disabled',
|
||
disabledTooltip: 'The workflow will not be automatically queued',
|
||
instant: 'Instant',
|
||
instantTooltip:
|
||
'The workflow will be queued instantly after a generation finishes',
|
||
change: 'On Change',
|
||
changeTooltip: 'The workflow will be queued once a change is made',
|
||
queueWorkflow: 'Queue workflow',
|
||
queueWorkflowFront: 'Queue workflow (Insert at Front)',
|
||
queue: 'Queue',
|
||
interrupt: 'Cancel current run',
|
||
refresh: 'Refresh node definitions',
|
||
clipspace: 'Open Clipspace',
|
||
resetView: 'Reset canvas view',
|
||
clear: 'Clear workflow',
|
||
toggleBottomPanel: 'Toggle Bottom Panel'
|
||
},
|
||
templateWorkflows: {
|
||
title: 'Get Started with a Template',
|
||
template: {
|
||
default: 'Image Generation',
|
||
image2image: 'Image to Image',
|
||
upscale: '2 Pass Upscale',
|
||
flux_schnell: 'Flux Schnell'
|
||
}
|
||
},
|
||
graphCanvasMenu: {
|
||
zoomIn: 'Zoom In',
|
||
zoomOut: 'Zoom Out',
|
||
resetView: 'Reset View',
|
||
fitView: 'Fit View',
|
||
selectMode: 'Select Mode',
|
||
panMode: 'Pan Mode',
|
||
toggleLinkVisibility: 'Toggle Link Visibility'
|
||
},
|
||
electronFileDownload: {
|
||
inProgress: 'In Progress',
|
||
pause: 'Pause Download',
|
||
paused: 'Paused',
|
||
resume: 'Resume Download',
|
||
cancel: 'Cancel Download',
|
||
cancelled: 'Cancelled'
|
||
}
|
||
},
|
||
zh: {
|
||
firstTimeUIMessage:
|
||
'这是您第一次使用新界面。选择“Menu > Use New Menu > Disabled”以恢复旧界面。',
|
||
download: '下载',
|
||
loadAllFolders: '加载所有文件夹',
|
||
refresh: '刷新',
|
||
terminal: '终端',
|
||
videoFailedToLoad: '视频加载失败',
|
||
extensionName: '扩展名称',
|
||
reloadToApplyChanges: '重新加载以应用更改',
|
||
insert: '插入',
|
||
systemInfo: '系统信息',
|
||
devices: '设备',
|
||
about: '关于',
|
||
add: '添加',
|
||
confirm: '确认',
|
||
reset: '重置',
|
||
resetKeybindingsTooltip: '重置键位',
|
||
customizeFolder: '定制文件夹',
|
||
icon: '图标',
|
||
color: '颜色',
|
||
bookmark: '书签',
|
||
folder: '文件夹',
|
||
star: '星星',
|
||
heart: '心',
|
||
file: '文件',
|
||
inbox: '收件箱',
|
||
box: '盒子',
|
||
briefcase: '公文包',
|
||
error: '错误',
|
||
loading: '加载中',
|
||
findIssues: '查找 Issue',
|
||
copyToClipboard: '复制到剪贴板',
|
||
openNewIssue: '开启新 Issue',
|
||
showReport: '显示报告',
|
||
imageFailedToLoad: '图像加载失败',
|
||
reconnecting: '重新连接中',
|
||
reconnected: '已重新连接',
|
||
delete: '删除',
|
||
rename: '重命名',
|
||
customize: '定制',
|
||
experimental: 'BETA',
|
||
deprecated: '弃用',
|
||
loadWorkflow: '加载工作流',
|
||
goToNode: '前往节点',
|
||
settings: '设置',
|
||
searchWorkflows: '搜索工作流',
|
||
searchSettings: '搜索设置',
|
||
searchNodes: '搜索节点',
|
||
searchModels: '搜索模型',
|
||
searchKeybindings: '搜索键位',
|
||
noResultsFound: '未找到结果',
|
||
searchFailedMessage:
|
||
'我们找不到与您的搜索匹配的任何设置。请尝试调整搜索条件。',
|
||
noContent: '(无内容)',
|
||
noTasksFound: '未找到任务',
|
||
noTasksFoundMessage: '队列中没有任务。',
|
||
newFolder: '新建文件夹',
|
||
sideToolbar: {
|
||
themeToggle: '主题切换',
|
||
queue: '队列',
|
||
nodeLibrary: '节点库',
|
||
workflows: '工作流',
|
||
browseTemplates: '浏览示例模板',
|
||
openWorkflow: '在本地文件系统中打开工作流',
|
||
newBlankWorkflow: '创建一个新空白工作流',
|
||
nodeLibraryTab: {
|
||
sortOrder: '排序顺序'
|
||
},
|
||
modelLibrary: '模型库',
|
||
queueTab: {
|
||
showFlatList: '平铺结果',
|
||
backToAllTasks: '返回',
|
||
containImagePreview: '填充图像预览',
|
||
coverImagePreview: '适应图像预览',
|
||
clearPendingTasks: '清除待处理任务'
|
||
}
|
||
},
|
||
menu: {
|
||
hideMenu: '隐藏菜单',
|
||
showMenu: '显示菜单',
|
||
batchCount: '批次数量',
|
||
batchCountTooltip: '工作流生成次数',
|
||
autoQueue: '自动执行',
|
||
disabled: '禁用',
|
||
disabledTooltip: '工作流将不会自动执行',
|
||
instant: '实时',
|
||
instantTooltip: '工作流将会在生成完成后立即执行',
|
||
change: '变动',
|
||
changeTooltip: '工作流将会在改变后执行',
|
||
queueWorkflow: '执行工作流',
|
||
queueWorkflowFront: '执行工作流 (队列首)',
|
||
queue: '队列',
|
||
interrupt: '取消当前任务',
|
||
refresh: '刷新节点',
|
||
clipspace: '打开剪贴板',
|
||
resetView: '重置画布视图',
|
||
clear: '清空工作流',
|
||
toggleBottomPanel: '底部面板'
|
||
},
|
||
templateWorkflows: {
|
||
title: '从模板开始',
|
||
template: {
|
||
default: 'Image Generation',
|
||
image2image: 'Image to Image',
|
||
upscale: '2 Pass Upscale',
|
||
flux_schnell: 'Flux Schnell'
|
||
}
|
||
},
|
||
graphCanvasMenu: {
|
||
zoomIn: '放大',
|
||
zoomOut: '缩小',
|
||
resetView: '重置视图',
|
||
fitView: '适应视图',
|
||
selectMode: '选择模式',
|
||
panMode: '平移模式',
|
||
toggleLinkVisibility: '切换链接可见性'
|
||
}
|
||
},
|
||
ru: {
|
||
download: 'Скачать',
|
||
refresh: 'Обновить',
|
||
loadAllFolders: 'Загрузить все папки',
|
||
terminal: 'Терминал',
|
||
videoFailedToLoad: 'Видео не удалось загрузить',
|
||
extensionName: 'Название расширения',
|
||
reloadToApplyChanges: 'Перезагрузите, чтобы применить изменения',
|
||
insert: 'Вставить',
|
||
systemInfo: 'Информация о системе',
|
||
devices: 'Устройства',
|
||
about: 'О',
|
||
add: 'Добавить',
|
||
confirm: 'Подтвердить',
|
||
reset: 'Сбросить',
|
||
resetKeybindingsTooltip: 'Сбросить сочетания клавиш по умолчанию',
|
||
customizeFolder: 'Настроить папку',
|
||
icon: 'Иконка',
|
||
color: 'Цвет',
|
||
bookmark: 'Закладка',
|
||
folder: 'Папка',
|
||
star: 'Звёздочка',
|
||
heart: 'Сердце',
|
||
file: 'Файл',
|
||
inbox: 'Входящие',
|
||
box: 'Ящик',
|
||
briefcase: 'Чемодан',
|
||
error: 'Ошибка',
|
||
loading: 'Загрузка',
|
||
findIssues: 'Найти Issue',
|
||
copyToClipboard: 'Копировать в буфер обмена',
|
||
openNewIssue: 'Открыть новый Issue',
|
||
showReport: 'Показать отчёт',
|
||
imageFailedToLoad: 'Изображение не удалось загрузить',
|
||
reconnecting: 'Переподключение',
|
||
reconnected: 'Переподключено',
|
||
delete: 'Удалить',
|
||
rename: 'Переименовать',
|
||
customize: 'Настроить',
|
||
experimental: 'БЕТА',
|
||
deprecated: 'УСТАР',
|
||
loadWorkflow: 'Загрузить рабочий процесс',
|
||
goToNode: 'Перейти к узлу',
|
||
settings: 'Настройки',
|
||
searchWorkflows: 'Поиск рабочих процессов',
|
||
searchSettings: 'Поиск настроек',
|
||
searchNodes: 'Поиск узлов',
|
||
searchModels: 'Поиск моделей',
|
||
searchKeybindings: 'Поиск сочетаний клавиш',
|
||
noResultsFound: 'Ничего не найдено',
|
||
searchFailedMessage:
|
||
'Не удалось найти ни одной настройки, соответствующей вашему запросу. Попробуйте скорректировать поисковый запрос.',
|
||
noContent: '(Нет контента)',
|
||
noTasksFound: 'Задачи не найдены',
|
||
noTasksFoundMessage: 'В очереди нет задач.',
|
||
newFolder: 'Новая папка',
|
||
sideToolbar: {
|
||
themeToggle: 'Переключить тему',
|
||
queue: 'Очередь',
|
||
nodeLibrary: 'Библиотека узлов',
|
||
workflows: 'Рабочие процессы',
|
||
browseTemplates: 'Просмотреть примеры шаблонов',
|
||
openWorkflow: 'Открыть рабочий процесс в локальной файловой системе',
|
||
newBlankWorkflow: 'Создайте новый пустой рабочий процесс',
|
||
nodeLibraryTab: {
|
||
sortOrder: 'Порядок сортировки'
|
||
},
|
||
modelLibrary: 'Библиотека моделей',
|
||
queueTab: {
|
||
showFlatList: 'Показать плоский список',
|
||
backToAllTasks: 'Вернуться ко всем задачам',
|
||
containImagePreview: 'Предпросмотр заливающего изображения',
|
||
coverImagePreview: 'Предпросмотр подходящего изображения',
|
||
clearPendingTasks: 'Очистить отложенные задачи'
|
||
}
|
||
},
|
||
menu: {
|
||
hideMenu: 'Скрыть меню',
|
||
showMenu: 'Показать меню',
|
||
batchCount: 'Количество пакетов',
|
||
batchCountTooltip:
|
||
'Количество раз, когда генерация рабочего процесса должна быть помещена в очередь',
|
||
autoQueue: 'Автоочередь',
|
||
disabled: 'Отключено',
|
||
disabledTooltip:
|
||
'Рабочий процесс не будет автоматически помещён в очередь',
|
||
instant: 'Мгновенно',
|
||
instantTooltip:
|
||
'Рабочий процесс будет помещён в очередь сразу же после завершения генерации',
|
||
change: 'При изменении',
|
||
changeTooltip:
|
||
'Рабочий процесс будет поставлен в очередь после внесения изменений',
|
||
queueWorkflow: 'Очередь рабочего процесса',
|
||
queueWorkflowFront: 'Очередь рабочего процесса (Вставка спереди)',
|
||
queue: 'Очередь',
|
||
interrupt: 'Отменить текущее выполнение',
|
||
refresh: 'Обновить определения узлов',
|
||
clipspace: 'Открыть Clipspace',
|
||
resetView: 'Сбросить вид холста',
|
||
clear: 'Очистить рабочий процесс'
|
||
},
|
||
templateWorkflows: {
|
||
title: 'Начните работу с шаблона',
|
||
template: {
|
||
default: 'Image Generation',
|
||
image2image: 'Image to Image',
|
||
upscale: '2 Pass Upscale',
|
||
flux_schnell: 'Flux Schnell'
|
||
}
|
||
},
|
||
graphCanvasMenu: {
|
||
zoomIn: 'Увеличить',
|
||
zoomOut: 'Уменьшить',
|
||
resetView: 'Сбросить вид',
|
||
fitView: 'Подгонять под выделенные',
|
||
selectMode: 'Выбрать режим',
|
||
panMode: 'Режим панорамирования',
|
||
toggleLinkVisibility: 'Переключить видимость ссылок'
|
||
}
|
||
}
|
||
// TODO: Add more languages
|
||
}
|
||
|
||
export const i18n = createI18n({
|
||
// Must set `false`, as Vue I18n Legacy API is for Vue 2
|
||
legacy: false,
|
||
locale: navigator.language.split('-')[0] || 'en',
|
||
fallbackLocale: 'en',
|
||
messages
|
||
})
|