mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
i18n: Update settings navigation and section translations
- Restructure settings.sections and settings.nav in en.json - Restore translations for existing keys across all locales (de, es, fr, he, ja, ko, ru, zh-CN, zh-TW) - Add translations for new keys: metadata, library - Translate autoOrganize section titles - Complete all TODO translations in settings.search
This commit is contained in:
@@ -255,33 +255,28 @@
|
||||
"clipboardFallback": "Einstellungspfad: {{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "[TODO: Translate] API Configuration",
|
||||
"contentFiltering": "Inhaltsfilterung",
|
||||
"videoSettings": "Video-Einstellungen",
|
||||
"layoutSettings": "Layout-Einstellungen",
|
||||
"folderSettings": "Standard-Roots",
|
||||
"priorityTags": "Prioritäts-Tags",
|
||||
"downloadPathTemplates": "Download-Pfad-Vorlagen",
|
||||
"exampleImages": "Beispielbilder",
|
||||
"updateFlags": "Update-Markierungen",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "Verschiedenes",
|
||||
"metadataArchive": "Metadaten-Archiv-Datenbank",
|
||||
"storageLocation": "Einstellungsort",
|
||||
"folderSettings": "Standard-Roots",
|
||||
"downloadPathTemplates": "Download-Pfad-Vorlagen",
|
||||
"priorityTags": "Prioritäts-Tags",
|
||||
"updateFlags": "Update-Markierungen",
|
||||
"exampleImages": "Beispielbilder",
|
||||
"autoOrganize": "Auto-Organisierung",
|
||||
"metadata": "Metadaten",
|
||||
"proxySettings": "Proxy-Einstellungen"
|
||||
},
|
||||
"nav": {
|
||||
"general": "Allgemein",
|
||||
"interface": "Oberfläche",
|
||||
"download": "Download",
|
||||
"organization": "Organisation",
|
||||
"system": "System",
|
||||
"network": "Netzwerk"
|
||||
"library": "Bibliothek"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "[TODO: Translate] Search settings...",
|
||||
"clear": "[TODO: Translate] Clear search",
|
||||
"noResults": "[TODO: Translate] No settings found matching \"{query}\""
|
||||
"placeholder": "Einstellungen durchsuchen...",
|
||||
"clear": "Suche löschen",
|
||||
"noResults": "Keine Einstellungen gefunden für \"{query}\""
|
||||
},
|
||||
"storage": {
|
||||
"locationLabel": "Portabler Modus",
|
||||
|
||||
@@ -255,28 +255,23 @@
|
||||
"clipboardFallback": "Settings path: {{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "API Configuration",
|
||||
"contentFiltering": "Content Filtering",
|
||||
"videoSettings": "Video Settings",
|
||||
"layoutSettings": "Layout Settings",
|
||||
"misc": "Miscellaneous",
|
||||
"folderSettings": "Default Roots",
|
||||
"priorityTags": "Priority Tags",
|
||||
"downloadPathTemplates": "Download Path Templates",
|
||||
"exampleImages": "Example Images",
|
||||
"priorityTags": "Priority Tags",
|
||||
"updateFlags": "Update Flags",
|
||||
"exampleImages": "Example Images",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "Misc.",
|
||||
"metadataArchive": "Metadata Archive Database",
|
||||
"storageLocation": "Settings Location",
|
||||
"metadata": "Metadata",
|
||||
"proxySettings": "Proxy Settings"
|
||||
},
|
||||
"nav": {
|
||||
"general": "General",
|
||||
"interface": "Interface",
|
||||
"download": "Download",
|
||||
"organization": "Organization",
|
||||
"system": "System",
|
||||
"network": "Network"
|
||||
"library": "Library"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Search settings...",
|
||||
|
||||
@@ -255,33 +255,28 @@
|
||||
"clipboardFallback": "Ruta de configuración: {{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "[TODO: Translate] API Configuration",
|
||||
"contentFiltering": "Filtrado de contenido",
|
||||
"videoSettings": "Configuración de video",
|
||||
"layoutSettings": "Configuración de diseño",
|
||||
"folderSettings": "Raíces predeterminadas",
|
||||
"priorityTags": "Etiquetas prioritarias",
|
||||
"downloadPathTemplates": "Plantillas de rutas de descarga",
|
||||
"exampleImages": "Imágenes de ejemplo",
|
||||
"updateFlags": "Indicadores de actualización",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "Varios",
|
||||
"metadataArchive": "Base de datos de archivo de metadatos",
|
||||
"storageLocation": "Ubicación de ajustes",
|
||||
"folderSettings": "Raíces predeterminadas",
|
||||
"downloadPathTemplates": "Plantillas de rutas de descarga",
|
||||
"priorityTags": "Etiquetas prioritarias",
|
||||
"updateFlags": "Indicadores de actualización",
|
||||
"exampleImages": "Imágenes de ejemplo",
|
||||
"autoOrganize": "Organización automática",
|
||||
"metadata": "Metadatos",
|
||||
"proxySettings": "Configuración de proxy"
|
||||
},
|
||||
"nav": {
|
||||
"general": "General",
|
||||
"interface": "Interfaz",
|
||||
"download": "Descarga",
|
||||
"organization": "Organización",
|
||||
"system": "Sistema",
|
||||
"network": "Red"
|
||||
"library": "Biblioteca"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "[TODO: Translate] Search settings...",
|
||||
"clear": "[TODO: Translate] Clear search",
|
||||
"noResults": "[TODO: Translate] No settings found matching \"{query}\""
|
||||
"placeholder": "Buscar ajustes...",
|
||||
"clear": "Limpiar búsqueda",
|
||||
"noResults": "No se encontraron ajustes que coincidan con \"{query}\""
|
||||
},
|
||||
"storage": {
|
||||
"locationLabel": "Modo portátil",
|
||||
|
||||
@@ -255,33 +255,28 @@
|
||||
"clipboardFallback": "Chemin des paramètres: {{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "[TODO: Translate] API Configuration",
|
||||
"contentFiltering": "Filtrage du contenu",
|
||||
"videoSettings": "Paramètres vidéo",
|
||||
"layoutSettings": "Paramètres d'affichage",
|
||||
"folderSettings": "Racines par défaut",
|
||||
"priorityTags": "Étiquettes prioritaires",
|
||||
"downloadPathTemplates": "Modèles de chemin de téléchargement",
|
||||
"exampleImages": "Images d'exemple",
|
||||
"updateFlags": "Indicateurs de mise à jour",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "Divers",
|
||||
"metadataArchive": "Base de données d'archive des métadonnées",
|
||||
"storageLocation": "Emplacement des paramètres",
|
||||
"folderSettings": "Racines par défaut",
|
||||
"downloadPathTemplates": "Modèles de chemin de téléchargement",
|
||||
"priorityTags": "Étiquettes prioritaires",
|
||||
"updateFlags": "Indicateurs de mise à jour",
|
||||
"exampleImages": "Images d'exemple",
|
||||
"autoOrganize": "Organisation automatique",
|
||||
"metadata": "Métadonnées",
|
||||
"proxySettings": "Paramètres du proxy"
|
||||
},
|
||||
"nav": {
|
||||
"general": "Général",
|
||||
"interface": "Interface",
|
||||
"download": "Téléchargement",
|
||||
"organization": "Organisation",
|
||||
"system": "Système",
|
||||
"network": "Réseau"
|
||||
"library": "Bibliothèque"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "[TODO: Translate] Search settings...",
|
||||
"clear": "[TODO: Translate] Clear search",
|
||||
"noResults": "[TODO: Translate] No settings found matching \"{query}\""
|
||||
"placeholder": "Rechercher dans les paramètres...",
|
||||
"clear": "Effacer la recherche",
|
||||
"noResults": "Aucun paramètre trouvé correspondant à \"{query}\""
|
||||
},
|
||||
"storage": {
|
||||
"locationLabel": "Mode portable",
|
||||
|
||||
@@ -255,33 +255,28 @@
|
||||
"clipboardFallback": "נתיב ההגדרות: {{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "[TODO: Translate] API Configuration",
|
||||
"contentFiltering": "סינון תוכן",
|
||||
"videoSettings": "הגדרות וידאו",
|
||||
"layoutSettings": "הגדרות פריסה",
|
||||
"folderSettings": "תיקיות ברירת מחדל",
|
||||
"priorityTags": "תגיות עדיפות",
|
||||
"downloadPathTemplates": "תבניות נתיב הורדה",
|
||||
"exampleImages": "תמונות דוגמה",
|
||||
"updateFlags": "תגי עדכון",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "שונות",
|
||||
"metadataArchive": "מסד נתונים של ארכיון מטא-דאטה",
|
||||
"storageLocation": "מיקום ההגדרות",
|
||||
"folderSettings": "תיקיות ברירת מחדל",
|
||||
"downloadPathTemplates": "תבניות נתיב הורדה",
|
||||
"priorityTags": "תגיות עדיפות",
|
||||
"updateFlags": "תגי עדכון",
|
||||
"exampleImages": "תמונות דוגמה",
|
||||
"autoOrganize": "ארגון אוטומטי",
|
||||
"metadata": "מטא-נתונים",
|
||||
"proxySettings": "הגדרות פרוקסי"
|
||||
},
|
||||
"nav": {
|
||||
"general": "כללי",
|
||||
"interface": "ממשק",
|
||||
"download": "הורדה",
|
||||
"organization": "ארגון",
|
||||
"system": "מערכת",
|
||||
"network": "רשת"
|
||||
"library": "ספרייה"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "[TODO: Translate] Search settings...",
|
||||
"clear": "[TODO: Translate] Clear search",
|
||||
"noResults": "[TODO: Translate] No settings found matching \"{query}\""
|
||||
"placeholder": "חיפוש בהגדרות...",
|
||||
"clear": "נקה חיפוש",
|
||||
"noResults": "לא נמצאו הגדרות תואמות ל-\"{query}\""
|
||||
},
|
||||
"storage": {
|
||||
"locationLabel": "מצב נייד",
|
||||
|
||||
@@ -255,33 +255,28 @@
|
||||
"clipboardFallback": "設定パス: {{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "[TODO: Translate] API Configuration",
|
||||
"contentFiltering": "コンテンツフィルタリング",
|
||||
"videoSettings": "動画設定",
|
||||
"layoutSettings": "レイアウト設定",
|
||||
"folderSettings": "デフォルトルート",
|
||||
"priorityTags": "優先タグ",
|
||||
"downloadPathTemplates": "ダウンロードパステンプレート",
|
||||
"exampleImages": "例画像",
|
||||
"updateFlags": "アップデートフラグ",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "その他",
|
||||
"metadataArchive": "メタデータアーカイブデータベース",
|
||||
"storageLocation": "設定の場所",
|
||||
"folderSettings": "デフォルトルート",
|
||||
"downloadPathTemplates": "ダウンロードパステンプレート",
|
||||
"priorityTags": "優先タグ",
|
||||
"updateFlags": "アップデートフラグ",
|
||||
"exampleImages": "例画像",
|
||||
"autoOrganize": "自動整理",
|
||||
"metadata": "メタデータ",
|
||||
"proxySettings": "プロキシ設定"
|
||||
},
|
||||
"nav": {
|
||||
"general": "一般",
|
||||
"interface": "インターフェース",
|
||||
"download": "ダウンロード",
|
||||
"organization": "整理",
|
||||
"system": "システム",
|
||||
"network": "ネットワーク"
|
||||
"library": "ライブラリ"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "[TODO: Translate] Search settings...",
|
||||
"clear": "[TODO: Translate] Clear search",
|
||||
"noResults": "[TODO: Translate] No settings found matching \"{query}\""
|
||||
"placeholder": "設定を検索...",
|
||||
"clear": "検索をクリア",
|
||||
"noResults": "\"{query}\" に一致する設定が見つかりません"
|
||||
},
|
||||
"storage": {
|
||||
"locationLabel": "ポータブルモード",
|
||||
|
||||
@@ -255,33 +255,28 @@
|
||||
"clipboardFallback": "설정 경로: {{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "[TODO: Translate] API Configuration",
|
||||
"contentFiltering": "콘텐츠 필터링",
|
||||
"videoSettings": "비디오 설정",
|
||||
"layoutSettings": "레이아웃 설정",
|
||||
"folderSettings": "기본 루트",
|
||||
"priorityTags": "우선순위 태그",
|
||||
"downloadPathTemplates": "다운로드 경로 템플릿",
|
||||
"exampleImages": "예시 이미지",
|
||||
"updateFlags": "업데이트 표시",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "기타",
|
||||
"metadataArchive": "메타데이터 아카이브 데이터베이스",
|
||||
"storageLocation": "설정 위치",
|
||||
"folderSettings": "기본 루트",
|
||||
"downloadPathTemplates": "다운로드 경로 템플릿",
|
||||
"priorityTags": "우선순위 태그",
|
||||
"updateFlags": "업데이트 표시",
|
||||
"exampleImages": "예시 이미지",
|
||||
"autoOrganize": "자동 정리",
|
||||
"metadata": "메타데이터",
|
||||
"proxySettings": "프록시 설정"
|
||||
},
|
||||
"nav": {
|
||||
"general": "일반",
|
||||
"interface": "인터페이스",
|
||||
"download": "다운로드",
|
||||
"organization": "정리",
|
||||
"system": "시스템",
|
||||
"network": "네트워크"
|
||||
"library": "라이브러리"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "[TODO: Translate] Search settings...",
|
||||
"clear": "[TODO: Translate] Clear search",
|
||||
"noResults": "[TODO: Translate] No settings found matching \"{query}\""
|
||||
"placeholder": "설정 검색...",
|
||||
"clear": "검색 지우기",
|
||||
"noResults": "\"{query}\"와 일치하는 설정을 찾을 수 없습니다"
|
||||
},
|
||||
"storage": {
|
||||
"locationLabel": "휴대용 모드",
|
||||
|
||||
@@ -255,33 +255,28 @@
|
||||
"clipboardFallback": "Путь настроек: {{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "[TODO: Translate] API Configuration",
|
||||
"contentFiltering": "Фильтрация контента",
|
||||
"videoSettings": "Настройки видео",
|
||||
"layoutSettings": "Настройки макета",
|
||||
"folderSettings": "Корневые папки",
|
||||
"priorityTags": "Приоритетные теги",
|
||||
"downloadPathTemplates": "Шаблоны путей загрузки",
|
||||
"exampleImages": "Примеры изображений",
|
||||
"updateFlags": "Метки обновлений",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "Разное",
|
||||
"metadataArchive": "Архив метаданных",
|
||||
"storageLocation": "Расположение настроек",
|
||||
"folderSettings": "Корневые папки",
|
||||
"downloadPathTemplates": "Шаблоны путей загрузки",
|
||||
"priorityTags": "Приоритетные теги",
|
||||
"updateFlags": "Метки обновлений",
|
||||
"exampleImages": "Примеры изображений",
|
||||
"autoOrganize": "Автоорганизация",
|
||||
"metadata": "Метаданные",
|
||||
"proxySettings": "Настройки прокси"
|
||||
},
|
||||
"nav": {
|
||||
"general": "Общее",
|
||||
"interface": "Интерфейс",
|
||||
"download": "Загрузка",
|
||||
"organization": "Организация",
|
||||
"system": "Система",
|
||||
"network": "Сеть"
|
||||
"library": "Библиотека"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "[TODO: Translate] Search settings...",
|
||||
"clear": "[TODO: Translate] Clear search",
|
||||
"noResults": "[TODO: Translate] No settings found matching \"{query}\""
|
||||
"placeholder": "Поиск в настройках...",
|
||||
"clear": "Очистить поиск",
|
||||
"noResults": "Настройки, соответствующие \"{query}\", не найдены"
|
||||
},
|
||||
"storage": {
|
||||
"locationLabel": "Портативный режим",
|
||||
|
||||
@@ -255,33 +255,28 @@
|
||||
"clipboardFallback": "设置路径:{{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "[TODO: Translate] API Configuration",
|
||||
"contentFiltering": "内容过滤",
|
||||
"videoSettings": "视频设置",
|
||||
"layoutSettings": "布局设置",
|
||||
"folderSettings": "默认根目录",
|
||||
"priorityTags": "优先标签",
|
||||
"downloadPathTemplates": "下载路径模板",
|
||||
"exampleImages": "示例图片",
|
||||
"updateFlags": "更新标记",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "其他",
|
||||
"metadataArchive": "元数据归档数据库",
|
||||
"storageLocation": "设置位置",
|
||||
"folderSettings": "默认根目录",
|
||||
"downloadPathTemplates": "下载路径模板",
|
||||
"priorityTags": "优先标签",
|
||||
"updateFlags": "更新标记",
|
||||
"exampleImages": "示例图片",
|
||||
"autoOrganize": "自动整理",
|
||||
"metadata": "元数据",
|
||||
"proxySettings": "代理设置"
|
||||
},
|
||||
"nav": {
|
||||
"general": "通用",
|
||||
"interface": "界面",
|
||||
"download": "下载",
|
||||
"organization": "整理",
|
||||
"system": "系统",
|
||||
"network": "网络"
|
||||
"library": "库"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "[TODO: Translate] Search settings...",
|
||||
"clear": "[TODO: Translate] Clear search",
|
||||
"noResults": "[TODO: Translate] No settings found matching \"{query}\""
|
||||
"placeholder": "搜索设置...",
|
||||
"clear": "清除搜索",
|
||||
"noResults": "未找到匹配 \"{query}\" 的设置"
|
||||
},
|
||||
"storage": {
|
||||
"locationLabel": "便携模式",
|
||||
|
||||
@@ -255,33 +255,28 @@
|
||||
"clipboardFallback": "設定路徑:{{path}}"
|
||||
},
|
||||
"sections": {
|
||||
"apiConfiguration": "[TODO: Translate] API Configuration",
|
||||
"contentFiltering": "內容過濾",
|
||||
"videoSettings": "影片設定",
|
||||
"layoutSettings": "版面設定",
|
||||
"folderSettings": "預設根目錄",
|
||||
"priorityTags": "優先標籤",
|
||||
"downloadPathTemplates": "下載路徑範本",
|
||||
"exampleImages": "範例圖片",
|
||||
"updateFlags": "更新標記",
|
||||
"autoOrganize": "Auto-organize",
|
||||
"misc": "其他",
|
||||
"metadataArchive": "中繼資料封存資料庫",
|
||||
"storageLocation": "設定位置",
|
||||
"folderSettings": "預設根目錄",
|
||||
"downloadPathTemplates": "下載路徑範本",
|
||||
"priorityTags": "優先標籤",
|
||||
"updateFlags": "更新標記",
|
||||
"exampleImages": "範例圖片",
|
||||
"autoOrganize": "自動整理",
|
||||
"metadata": "中繼資料",
|
||||
"proxySettings": "代理設定"
|
||||
},
|
||||
"nav": {
|
||||
"general": "通用",
|
||||
"interface": "介面",
|
||||
"download": "下載",
|
||||
"organization": "整理",
|
||||
"system": "系統",
|
||||
"network": "網路"
|
||||
"library": "模型庫"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "[TODO: Translate] Search settings...",
|
||||
"clear": "[TODO: Translate] Clear search",
|
||||
"noResults": "[TODO: Translate] No settings found matching \"{query}\""
|
||||
"placeholder": "搜尋設定...",
|
||||
"clear": "清除搜尋",
|
||||
"noResults": "未找到符合 \"{query}\" 的設定"
|
||||
},
|
||||
"storage": {
|
||||
"locationLabel": "可攜式模式",
|
||||
|
||||
@@ -35,10 +35,7 @@
|
||||
<li class="settings-nav-group">
|
||||
<button type="button" class="settings-nav-item active" data-section="general">{{ t('settings.nav.general') }}</button>
|
||||
<button type="button" class="settings-nav-item" data-section="interface">{{ t('settings.nav.interface') }}</button>
|
||||
<button type="button" class="settings-nav-item" data-section="download">{{ t('settings.nav.download') }}</button>
|
||||
<button type="button" class="settings-nav-item" data-section="organization">{{ t('settings.nav.organization') }}</button>
|
||||
<button type="button" class="settings-nav-item" data-section="system">{{ t('settings.nav.system') }}</button>
|
||||
<button type="button" class="settings-nav-item" data-section="network">{{ t('settings.nav.network') }}</button>
|
||||
<button type="button" class="settings-nav-item" data-section="library">{{ t('settings.nav.library') }}</button>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
@@ -75,56 +72,170 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- API Configuration -->
|
||||
<div class="settings-subsection">
|
||||
<div class="settings-subsection-header">
|
||||
<h4>{{ t('settings.sections.apiConfiguration') }}</h4>
|
||||
<!-- Storage Location -->
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="usePortableSettings">
|
||||
{{ t('settings.storage.locationLabel') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.storage.locationHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<label class="toggle-switch">
|
||||
<input type="checkbox" id="usePortableSettings" {% if settings.get('use_portable_settings', False) %}checked{% endif %}
|
||||
onchange="settingsManager.saveToggleSetting('usePortableSettings', 'use_portable_settings')">
|
||||
<span class="toggle-slider"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setting-item api-key-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="civitaiApiKey">{{ t('settings.civitaiApiKey') }}</label>
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.civitaiApiKeyHelp') }}"></i>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="api-key-input">
|
||||
<input type="password"
|
||||
id="civitaiApiKey"
|
||||
placeholder="{{ t('settings.civitaiApiKeyPlaceholder') }}"
|
||||
value="{{ settings.get('civitai_api_key', '') }}"
|
||||
onblur="settingsManager.saveInputSetting('civitaiApiKey', 'civitai_api_key')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
<button class="toggle-visibility">
|
||||
<i class="fas fa-eye"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- API Configuration -->
|
||||
<div class="setting-item api-key-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="civitaiApiKey">{{ t('settings.civitaiApiKey') }}</label>
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.civitaiApiKeyHelp') }}"></i>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="api-key-input">
|
||||
<input type="password"
|
||||
id="civitaiApiKey"
|
||||
placeholder="{{ t('settings.civitaiApiKeyPlaceholder') }}"
|
||||
value="{{ settings.get('civitai_api_key', '') }}"
|
||||
onblur="settingsManager.saveInputSetting('civitaiApiKey', 'civitai_api_key')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
<button class="toggle-visibility">
|
||||
<i class="fas fa-eye"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Storage Location -->
|
||||
<!-- Proxy Settings -->
|
||||
<div class="settings-subsection">
|
||||
<div class="settings-subsection-header">
|
||||
<h4>{{ t('settings.sections.storageLocation') }}</h4>
|
||||
<h4>{{ t('settings.sections.proxySettings') }}</h4>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="usePortableSettings">
|
||||
{{ t('settings.storage.locationLabel') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.storage.locationHelp') }}"></i>
|
||||
</label>
|
||||
<label for="proxyEnabled">
|
||||
{{ t('settings.proxySettings.enableProxy') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.enableProxyHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<label class="toggle-switch">
|
||||
<input type="checkbox" id="usePortableSettings" {% if settings.get('use_portable_settings', False) %}checked{% endif %}
|
||||
onchange="settingsManager.saveToggleSetting('usePortableSettings', 'use_portable_settings')">
|
||||
<input type="checkbox" id="proxyEnabled"
|
||||
onchange="settingsManager.saveToggleSetting('proxyEnabled', 'proxy_enabled')">
|
||||
<span class="toggle-slider"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="proxySettingsGroup" class="proxy-settings-group" style="display: none;">
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyType">
|
||||
{{ t('settings.proxySettings.proxyType') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyTypeHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control select-control">
|
||||
<select id="proxyType" onchange="settingsManager.saveSelectSetting('proxyType', 'proxy_type')">
|
||||
<option value="http">HTTP</option>
|
||||
<option value="https">HTTPS</option>
|
||||
<option value="socks4">SOCKS4</option>
|
||||
<option value="socks5">SOCKS5</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyHost">
|
||||
{{ t('settings.proxySettings.proxyHost') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyHostHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="text-input-wrapper">
|
||||
<input type="text" id="proxyHost"
|
||||
placeholder="{{ t('settings.proxySettings.proxyHostPlaceholder') }}"
|
||||
onblur="settingsManager.saveInputSetting('proxyHost', 'proxy_host')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyPort">
|
||||
{{ t('settings.proxySettings.proxyPort') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyPortHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="text-input-wrapper">
|
||||
<input type="text" id="proxyPort"
|
||||
placeholder="{{ t('settings.proxySettings.proxyPortPlaceholder') }}"
|
||||
onblur="settingsManager.saveInputSetting('proxyPort', 'proxy_port')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyUsername">
|
||||
{{ t('settings.proxySettings.proxyUsername') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyUsernameHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="text-input-wrapper">
|
||||
<input type="text" id="proxyUsername"
|
||||
placeholder="{{ t('settings.proxySettings.proxyUsernamePlaceholder') }}"
|
||||
onblur="settingsManager.saveInputSetting('proxyUsername', 'proxy_username')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyPassword">
|
||||
{{ t('settings.proxySettings.proxyPassword') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyPasswordHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="api-key-input">
|
||||
<input type="password" id="proxyPassword"
|
||||
placeholder="{{ t('settings.proxySettings.proxyPasswordPlaceholder') }}"
|
||||
onblur="settingsManager.saveInputSetting('proxyPassword', 'proxy_password')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
<button class="toggle-visibility">
|
||||
<i class="fas fa-eye"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -295,10 +406,34 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Miscellaneous -->
|
||||
<div class="settings-subsection">
|
||||
<div class="settings-subsection-header">
|
||||
<h4>{{ t('settings.sections.misc') }}</h4>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="includeTriggerWords">
|
||||
{{ t('settings.misc.includeTriggerWords') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.misc.includeTriggerWordsHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<label class="toggle-switch">
|
||||
<input type="checkbox" id="includeTriggerWords"
|
||||
onchange="settingsManager.saveToggleSetting('includeTriggerWords', 'include_trigger_words')">
|
||||
<span class="toggle-slider"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Section 3: Download -->
|
||||
<div id="section-download" class="settings-section" data-section="download">
|
||||
<!-- Section 3: Library -->
|
||||
<div id="section-library" class="settings-section" data-section="library">
|
||||
<!-- Folder Settings -->
|
||||
<div class="settings-subsection">
|
||||
<div class="settings-subsection-header">
|
||||
@@ -643,46 +778,49 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Section 4: Organization -->
|
||||
<div id="section-organization" class="settings-section" data-section="organization">
|
||||
<!-- Auto-organize Exclusions -->
|
||||
<div class="setting-item auto-organize-exclusions-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="autoOrganizeExclusions">
|
||||
{{ t('settings.autoOrganizeExclusions.label') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.autoOrganizeExclusions.help') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<textarea id="autoOrganizeExclusions" class="priority-tags-input auto-organize-exclusions-input" placeholder="{{ t('settings.autoOrganizeExclusions.placeholder') }}"></textarea>
|
||||
<div class="settings-input-error-message" id="autoOrganizeExclusionsError"></div>
|
||||
</div>
|
||||
|
||||
<!-- Metadata Refresh Skip Paths -->
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="metadataRefreshSkipPaths">
|
||||
{{ t('settings.metadataRefreshSkipPaths.label') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.metadataRefreshSkipPaths.help') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<textarea id="metadataRefreshSkipPaths" class="priority-tags-input auto-organize-exclusions-input" placeholder="{{ t('settings.metadataRefreshSkipPaths.placeholder') }}"></textarea>
|
||||
<div class="settings-input-error-message" id="metadataRefreshSkipPathsError"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Section 5: System -->
|
||||
<div id="section-system" class="settings-section" data-section="system">
|
||||
<!-- Metadata Archive -->
|
||||
<!-- Auto-organize -->
|
||||
<div class="settings-subsection">
|
||||
<div class="settings-subsection-header">
|
||||
<h4>{{ t('settings.sections.metadataArchive') }}</h4>
|
||||
<h4>{{ t('settings.sections.autoOrganize') }}</h4>
|
||||
</div>
|
||||
|
||||
<!-- Auto-organize Exclusions -->
|
||||
<div class="setting-item auto-organize-exclusions-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="autoOrganizeExclusions">
|
||||
{{ t('settings.autoOrganizeExclusions.label') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.autoOrganizeExclusions.help') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<textarea id="autoOrganizeExclusions" class="priority-tags-input auto-organize-exclusions-input" placeholder="{{ t('settings.autoOrganizeExclusions.placeholder') }}"></textarea>
|
||||
<div class="settings-input-error-message" id="autoOrganizeExclusionsError"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Metadata -->
|
||||
<div class="settings-subsection">
|
||||
<div class="settings-subsection-header">
|
||||
<h4>{{ t('settings.sections.metadata') }}</h4>
|
||||
</div>
|
||||
|
||||
<!-- Metadata Refresh Skip Paths -->
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="metadataRefreshSkipPaths">
|
||||
{{ t('settings.metadataRefreshSkipPaths.label') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.metadataRefreshSkipPaths.help') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<textarea id="metadataRefreshSkipPaths" class="priority-tags-input auto-organize-exclusions-input" placeholder="{{ t('settings.metadataRefreshSkipPaths.placeholder') }}"></textarea>
|
||||
<div class="settings-input-error-message" id="metadataRefreshSkipPathsError"></div>
|
||||
</div>
|
||||
|
||||
<!-- Metadata Archive -->
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
@@ -726,159 +864,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Misc -->
|
||||
<div class="settings-subsection">
|
||||
<div class="settings-subsection-header">
|
||||
<h4>{{ t('settings.sections.misc') }}</h4>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="includeTriggerWords">
|
||||
{{ t('settings.misc.includeTriggerWords') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.misc.includeTriggerWordsHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<label class="toggle-switch">
|
||||
<input type="checkbox" id="includeTriggerWords"
|
||||
onchange="settingsManager.saveToggleSetting('includeTriggerWords', 'include_trigger_words')">
|
||||
<span class="toggle-slider"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Section 6: Network -->
|
||||
<div id="section-network" class="settings-section" data-section="network">
|
||||
<!-- Proxy Settings -->
|
||||
<div class="settings-subsection">
|
||||
<div class="settings-subsection-header">
|
||||
<h4>{{ t('settings.sections.proxySettings') }}</h4>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyEnabled">
|
||||
{{ t('settings.proxySettings.enableProxy') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.enableProxyHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<label class="toggle-switch">
|
||||
<input type="checkbox" id="proxyEnabled"
|
||||
onchange="settingsManager.saveToggleSetting('proxyEnabled', 'proxy_enabled')">
|
||||
<span class="toggle-slider"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="proxySettingsGroup" class="proxy-settings-group" style="display: none;">
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyType">
|
||||
{{ t('settings.proxySettings.proxyType') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyTypeHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control select-control">
|
||||
<select id="proxyType" onchange="settingsManager.saveSelectSetting('proxyType', 'proxy_type')">
|
||||
<option value="http">HTTP</option>
|
||||
<option value="https">HTTPS</option>
|
||||
<option value="socks4">SOCKS4</option>
|
||||
<option value="socks5">SOCKS5</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyHost">
|
||||
{{ t('settings.proxySettings.proxyHost') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyHostHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="text-input-wrapper">
|
||||
<input type="text" id="proxyHost"
|
||||
placeholder="{{ t('settings.proxySettings.proxyHostPlaceholder') }}"
|
||||
onblur="settingsManager.saveInputSetting('proxyHost', 'proxy_host')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyPort">
|
||||
{{ t('settings.proxySettings.proxyPort') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyPortHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="text-input-wrapper">
|
||||
<input type="text" id="proxyPort"
|
||||
placeholder="{{ t('settings.proxySettings.proxyPortPlaceholder') }}"
|
||||
onblur="settingsManager.saveInputSetting('proxyPort', 'proxy_port')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyUsername">
|
||||
{{ t('settings.proxySettings.proxyUsername') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyUsernameHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="text-input-wrapper">
|
||||
<input type="text" id="proxyUsername"
|
||||
placeholder="{{ t('settings.proxySettings.proxyUsernamePlaceholder') }}"
|
||||
onblur="settingsManager.saveInputSetting('proxyUsername', 'proxy_username')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setting-item">
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label for="proxyPassword">
|
||||
{{ t('settings.proxySettings.proxyPassword') }}
|
||||
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.proxySettings.proxyPasswordHelp') }}"></i>
|
||||
</label>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<div class="api-key-input">
|
||||
<input type="password" id="proxyPassword"
|
||||
placeholder="{{ t('settings.proxySettings.proxyPasswordPlaceholder') }}"
|
||||
onblur="settingsManager.saveInputSetting('proxyPassword', 'proxy_password')"
|
||||
onkeydown="if(event.key === 'Enter') { this.blur(); }" />
|
||||
<button class="toggle-visibility">
|
||||
<i class="fas fa-eye"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user