feat: enhance skip metadata refresh with smart UI and subtle badges, #790

This commit is contained in:
Will Miao
2026-02-09 09:15:29 +08:00
parent 2b74b2373d
commit 765c1c42a9
23 changed files with 283 additions and 18 deletions

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "Update",
"updateAvailable": "Update verfügbar"
"updateAvailable": "Update verfügbar",
"skipRefresh": "[TODO: Translate] Metadata refresh skipped"
},
"usage": {
"timesUsed": "Verwendungsanzahl"
@@ -527,8 +528,12 @@
"checkUpdates": "Auswahl auf Updates prüfen",
"moveAll": "Alle in Ordner verschieben",
"autoOrganize": "Automatisch organisieren",
"skipMetadataRefresh": "[TODO: Translate] Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "[TODO: Translate] Resume Metadata Refresh for Selected",
"deleteAll": "Alle Modelle löschen",
"clear": "Auswahl löschen",
"skipMetadataRefreshCount": "[TODO: Translate] Skip ({count} models)",
"resumeMetadataRefreshCount": "[TODO: Translate] Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "Automatische Organisation wird initialisiert...",
"starting": "Automatische Organisation für {type} wird gestartet...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "Basis-Modell erfolgreich für {count} Modell(e) aktualisiert",
"bulkBaseModelUpdatePartial": "{success} Modelle aktualisiert, {failed} fehlgeschlagen",
"bulkBaseModelUpdateFailed": "Aktualisierung des Basis-Modells für ausgewählte Modelle fehlgeschlagen",
"skipMetadataRefreshUpdating": "[TODO: Translate] Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "[TODO: Translate] Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "[TODO: Translate] Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "[TODO: Translate] Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "[TODO: Translate] Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "Inhaltsbewertung wird für {count} Modell(e) aktualisiert...",
"bulkContentRatingSet": "Inhaltsbewertung auf {level} für {count} Modell(e) gesetzt",
"bulkContentRatingPartial": "Inhaltsbewertung auf {level} für {success} Modell(e) gesetzt, {failed} fehlgeschlagen",

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "Update",
"updateAvailable": "Update available"
"updateAvailable": "Update available",
"skipRefresh": "Metadata refresh skipped"
},
"usage": {
"timesUsed": "Times used"
@@ -527,8 +528,12 @@
"checkUpdates": "Check Updates for Selected",
"moveAll": "Move Selected to Folder",
"autoOrganize": "Auto-Organize Selected",
"skipMetadataRefresh": "Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "Resume Metadata Refresh for Selected",
"deleteAll": "Delete Selected Models",
"clear": "Clear Selection",
"skipMetadataRefreshCount": "Skip ({count} models)",
"resumeMetadataRefreshCount": "Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "Initializing auto-organize...",
"starting": "Starting auto-organize for {type}...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "Successfully updated base model for {count} model(s)",
"bulkBaseModelUpdatePartial": "Updated {success} model(s), failed {failed} model(s)",
"bulkBaseModelUpdateFailed": "Failed to update base model for selected models",
"skipMetadataRefreshUpdating": "Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "Updating content rating for {count} model(s)...",
"bulkContentRatingSet": "Set content rating to {level} for {count} model(s)",
"bulkContentRatingPartial": "Set content rating to {level} for {success} model(s), {failed} failed",

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "Actualización",
"updateAvailable": "Actualización disponible"
"updateAvailable": "Actualización disponible",
"skipRefresh": "[TODO: Translate] Metadata refresh skipped"
},
"usage": {
"timesUsed": "Veces usado"
@@ -527,8 +528,12 @@
"checkUpdates": "Comprobar actualizaciones para la selección",
"moveAll": "Mover todos a carpeta",
"autoOrganize": "Auto-organizar seleccionados",
"skipMetadataRefresh": "[TODO: Translate] Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "[TODO: Translate] Resume Metadata Refresh for Selected",
"deleteAll": "Eliminar todos los modelos",
"clear": "Limpiar selección",
"skipMetadataRefreshCount": "[TODO: Translate] Skip ({count} models)",
"resumeMetadataRefreshCount": "[TODO: Translate] Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "Inicializando auto-organización...",
"starting": "Iniciando auto-organización para {type}...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "Modelo base actualizado exitosamente para {count} modelo(s)",
"bulkBaseModelUpdatePartial": "Actualizados {success} modelo(s), fallaron {failed} modelo(s)",
"bulkBaseModelUpdateFailed": "Error al actualizar el modelo base para los modelos seleccionados",
"skipMetadataRefreshUpdating": "[TODO: Translate] Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "[TODO: Translate] Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "[TODO: Translate] Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "[TODO: Translate] Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "[TODO: Translate] Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "Actualizando la clasificación de contenido para {count} modelo(s)...",
"bulkContentRatingSet": "Clasificación de contenido establecida en {level} para {count} modelo(s)",
"bulkContentRatingPartial": "Clasificación de contenido establecida en {level} para {success} modelo(s), {failed} fallaron",

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "Mise à jour",
"updateAvailable": "Mise à jour disponible"
"updateAvailable": "Mise à jour disponible",
"skipRefresh": "[TODO: Translate] Metadata refresh skipped"
},
"usage": {
"timesUsed": "Nombre d'utilisations"
@@ -527,8 +528,12 @@
"checkUpdates": "Vérifier les mises à jour pour la sélection",
"moveAll": "Déplacer tout vers un dossier",
"autoOrganize": "Auto-organiser la sélection",
"skipMetadataRefresh": "[TODO: Translate] Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "[TODO: Translate] Resume Metadata Refresh for Selected",
"deleteAll": "Supprimer tous les modèles",
"clear": "Effacer la sélection",
"skipMetadataRefreshCount": "[TODO: Translate] Skip ({count} models)",
"resumeMetadataRefreshCount": "[TODO: Translate] Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "Initialisation de l'auto-organisation...",
"starting": "Démarrage de l'auto-organisation pour {type}...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "Modèle de base mis à jour avec succès pour {count} modèle(s)",
"bulkBaseModelUpdatePartial": "{success} modèle(s) mis à jour, {failed} modèle(s) en échec",
"bulkBaseModelUpdateFailed": "Échec de la mise à jour du modèle de base pour les modèles sélectionnés",
"skipMetadataRefreshUpdating": "[TODO: Translate] Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "[TODO: Translate] Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "[TODO: Translate] Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "[TODO: Translate] Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "[TODO: Translate] Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "Mise à jour de la classification du contenu pour {count} modèle(s)...",
"bulkContentRatingSet": "Classification du contenu définie sur {level} pour {count} modèle(s)",
"bulkContentRatingPartial": "Classification du contenu définie sur {level} pour {success} modèle(s), {failed} échec(s)",

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "עדכון",
"updateAvailable": "עדכון זמין"
"updateAvailable": "עדכון זמין",
"skipRefresh": "[TODO: Translate] Metadata refresh skipped"
},
"usage": {
"timesUsed": "מספר שימושים"
@@ -527,8 +528,12 @@
"checkUpdates": "בדוק עדכונים לבחירה",
"moveAll": "העבר הכל לתיקייה",
"autoOrganize": "ארגן אוטומטית נבחרים",
"skipMetadataRefresh": "[TODO: Translate] Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "[TODO: Translate] Resume Metadata Refresh for Selected",
"deleteAll": "מחק את כל המודלים",
"clear": "נקה בחירה",
"skipMetadataRefreshCount": "[TODO: Translate] Skip ({count} models)",
"resumeMetadataRefreshCount": "[TODO: Translate] Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "מאתחל ארגון אוטומטי...",
"starting": "מתחיל ארגון אוטומטי עבור {type}...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "עודכן בהצלחה מודל הבסיס עבור {count} מודל(ים)",
"bulkBaseModelUpdatePartial": "עודכנו {success} מודל(ים), נכשלו {failed} מודל(ים)",
"bulkBaseModelUpdateFailed": "עדכון מודל הבסיס עבור המודלים שנבחרו נכשל",
"skipMetadataRefreshUpdating": "[TODO: Translate] Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "[TODO: Translate] Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "[TODO: Translate] Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "[TODO: Translate] Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "[TODO: Translate] Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "מעדכן דירוג תוכן עבור {count} מודלים...",
"bulkContentRatingSet": "דירוג התוכן הוגדר ל-{level} עבור {count} מודלים",
"bulkContentRatingPartial": "דירוג התוכן הוגדר ל-{level} עבור {success} מודלים, {failed} נכשלו",

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "アップデート",
"updateAvailable": "アップデートがあります"
"updateAvailable": "アップデートがあります",
"skipRefresh": "[TODO: Translate] Metadata refresh skipped"
},
"usage": {
"timesUsed": "使用回数"
@@ -527,8 +528,12 @@
"checkUpdates": "選択項目の更新を確認",
"moveAll": "すべてをフォルダに移動",
"autoOrganize": "自動整理を実行",
"skipMetadataRefresh": "[TODO: Translate] Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "[TODO: Translate] Resume Metadata Refresh for Selected",
"deleteAll": "すべてのモデルを削除",
"clear": "選択をクリア",
"skipMetadataRefreshCount": "[TODO: Translate] Skip ({count} models)",
"resumeMetadataRefreshCount": "[TODO: Translate] Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "自動整理を初期化中...",
"starting": "{type}の自動整理を開始中...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "{count} モデルのベースモデルが正常に更新されました",
"bulkBaseModelUpdatePartial": "{success} モデルを更新、{failed} モデルは失敗しました",
"bulkBaseModelUpdateFailed": "選択したモデルのベースモデルの更新に失敗しました",
"skipMetadataRefreshUpdating": "[TODO: Translate] Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "[TODO: Translate] Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "[TODO: Translate] Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "[TODO: Translate] Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "[TODO: Translate] Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "{count} 件のモデルのコンテンツレーティングを更新中...",
"bulkContentRatingSet": "{count} 件のモデルのコンテンツレーティングを {level} に設定しました",
"bulkContentRatingPartial": "{success} 件のモデルのコンテンツレーティングを {level} に設定、{failed} 件は失敗しました",

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "업데이트",
"updateAvailable": "업데이트 가능"
"updateAvailable": "업데이트 가능",
"skipRefresh": "[TODO: Translate] Metadata refresh skipped"
},
"usage": {
"timesUsed": "사용 횟수"
@@ -527,8 +528,12 @@
"checkUpdates": "선택 항목 업데이트 확인",
"moveAll": "모두 폴더로 이동",
"autoOrganize": "자동 정리 선택",
"skipMetadataRefresh": "[TODO: Translate] Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "[TODO: Translate] Resume Metadata Refresh for Selected",
"deleteAll": "모든 모델 삭제",
"clear": "선택 지우기",
"skipMetadataRefreshCount": "[TODO: Translate] Skip ({count} models)",
"resumeMetadataRefreshCount": "[TODO: Translate] Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "자동 정리 초기화 중...",
"starting": "{type}에 대한 자동 정리 시작...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "{count}개의 모델에 베이스 모델이 성공적으로 업데이트되었습니다",
"bulkBaseModelUpdatePartial": "{success}개의 모델이 업데이트되었고, {failed}개의 모델이 실패했습니다",
"bulkBaseModelUpdateFailed": "선택한 모델의 베이스 모델 업데이트에 실패했습니다",
"skipMetadataRefreshUpdating": "[TODO: Translate] Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "[TODO: Translate] Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "[TODO: Translate] Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "[TODO: Translate] Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "[TODO: Translate] Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "{count}개 모델의 콘텐츠 등급을 업데이트하는 중...",
"bulkContentRatingSet": "{count}개 모델의 콘텐츠 등급을 {level}(으)로 설정했습니다",
"bulkContentRatingPartial": "{success}개 모델의 콘텐츠 등급을 {level}(으)로 설정했고, {failed}개는 실패했습니다",

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "Обновление",
"updateAvailable": "Доступно обновление"
"updateAvailable": "Доступно обновление",
"skipRefresh": "[TODO: Translate] Metadata refresh skipped"
},
"usage": {
"timesUsed": "Количество использований"
@@ -527,8 +528,12 @@
"checkUpdates": "Проверить обновления для выбранных",
"moveAll": "Переместить все в папку",
"autoOrganize": "Автоматически организовать выбранные",
"skipMetadataRefresh": "[TODO: Translate] Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "[TODO: Translate] Resume Metadata Refresh for Selected",
"deleteAll": "Удалить все модели",
"clear": "Очистить выбор",
"skipMetadataRefreshCount": "[TODO: Translate] Skip ({count} models)",
"resumeMetadataRefreshCount": "[TODO: Translate] Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "Инициализация автоматической организации...",
"starting": "Запуск автоматической организации для {type}...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "Базовая модель успешно обновлена для {count} моделей",
"bulkBaseModelUpdatePartial": "Обновлено {success} моделей, не удалось обновить {failed} моделей",
"bulkBaseModelUpdateFailed": "Не удалось обновить базовую модель для выбранных моделей",
"skipMetadataRefreshUpdating": "[TODO: Translate] Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "[TODO: Translate] Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "[TODO: Translate] Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "[TODO: Translate] Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "[TODO: Translate] Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "Обновление рейтинга контента для {count} модель(ей)...",
"bulkContentRatingSet": "Рейтинг контента установлен на {level} для {count} модель(ей)",
"bulkContentRatingPartial": "Рейтинг контента {level} установлен для {success} модель(ей), {failed} не удалось",

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "更新",
"updateAvailable": "有可用更新"
"updateAvailable": "有可用更新",
"skipRefresh": "[TODO: Translate] Metadata refresh skipped"
},
"usage": {
"timesUsed": "使用次数"
@@ -527,8 +528,12 @@
"checkUpdates": "检查所选更新",
"moveAll": "移动所选中到文件夹",
"autoOrganize": "自动整理所选模型",
"skipMetadataRefresh": "[TODO: Translate] Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "[TODO: Translate] Resume Metadata Refresh for Selected",
"deleteAll": "删除选中模型",
"clear": "清除选择",
"skipMetadataRefreshCount": "[TODO: Translate] Skip ({count} models)",
"resumeMetadataRefreshCount": "[TODO: Translate] Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "正在初始化自动整理...",
"starting": "正在为 {type} 启动自动整理...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "成功为 {count} 个模型更新基础模型",
"bulkBaseModelUpdatePartial": "更新了 {success} 个模型,{failed} 个失败",
"bulkBaseModelUpdateFailed": "为选中模型更新基础模型失败",
"skipMetadataRefreshUpdating": "[TODO: Translate] Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "[TODO: Translate] Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "[TODO: Translate] Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "[TODO: Translate] Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "[TODO: Translate] Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "正在为 {count} 个模型更新内容评级...",
"bulkContentRatingSet": "已将 {count} 个模型的内容评级设置为 {level}",
"bulkContentRatingPartial": "已将 {success} 个模型的内容评级设置为 {level}{failed} 个失败",

View File

@@ -131,7 +131,8 @@
},
"badges": {
"update": "更新",
"updateAvailable": "有可用更新"
"updateAvailable": "有可用更新",
"skipRefresh": "[TODO: Translate] Metadata refresh skipped"
},
"usage": {
"timesUsed": "使用次數"
@@ -527,8 +528,12 @@
"checkUpdates": "檢查所選更新",
"moveAll": "全部移動到資料夾",
"autoOrganize": "自動整理所選模型",
"skipMetadataRefresh": "[TODO: Translate] Skip Metadata Refresh for Selected",
"resumeMetadataRefresh": "[TODO: Translate] Resume Metadata Refresh for Selected",
"deleteAll": "刪除全部模型",
"clear": "清除選取",
"skipMetadataRefreshCount": "[TODO: Translate] Skip ({count} models)",
"resumeMetadataRefreshCount": "[TODO: Translate] Resume ({count} models)",
"autoOrganizeProgress": {
"initializing": "正在初始化自動整理...",
"starting": "正在開始自動整理 {type}...",
@@ -1379,6 +1384,11 @@
"bulkBaseModelUpdateSuccess": "已成功為 {count} 個模型更新基礎模型",
"bulkBaseModelUpdatePartial": "已更新 {success} 個模型,{failed} 個模型失敗",
"bulkBaseModelUpdateFailed": "更新所選模型的基礎模型失敗",
"skipMetadataRefreshUpdating": "[TODO: Translate] Updating metadata refresh flag for {count} model(s)...",
"skipMetadataRefreshSet": "[TODO: Translate] Metadata refresh skipped for {count} model(s)",
"skipMetadataRefreshCleared": "[TODO: Translate] Metadata refresh resumed for {count} model(s)",
"skipMetadataRefreshPartial": "[TODO: Translate] Updated {success} model(s), {failed} failed",
"skipMetadataRefreshFailed": "[TODO: Translate] Failed to update metadata refresh flag for selected models",
"bulkContentRatingUpdating": "正在為 {count} 個模型更新內容分級...",
"bulkContentRatingSet": "已將 {count} 個模型的內容分級設定為 {level}",
"bulkContentRatingPartial": "已將 {success} 個模型的內容分級設定為 {level}{failed} 個失敗",