feat(models): show Civitai model/version ids in model modal, always-on hash/id search

- Model modal hash footnote now shows Civitai model id and version id
  (right-aligned, quick-copy buttons); hidden for non-Civitai models
- Hash/id exact search (sha256/autov2/autov3/civitai ids) is now always
  on: the search-options "hash" toggle is removed and the search_hash
  query param is silently ignored for API compatibility
- Footnote render condition relaxed so autov3-only and id-only models
  still show the line
- i18n: 4 new keys translated in all 9 locales; filters.hash key removed
This commit is contained in:
Will Miao
2026-10-03 09:46:46 +08:00
parent 515469054c
commit f8aba393fe
22 changed files with 254 additions and 167 deletions
+26
View File
@@ -120,6 +120,14 @@ Locales: `en`, `zh-CN`, `zh-TW`, `ja`, `ko`, `fr`, `de`, `es`, `ru`, `he` (RTL).
> style. All 9 locales are translated (terminology in §2, "Download routing feature"),
> so the "no remaining placeholders" claim holds again.
> **Status (2026-10, Civitai ids in model modal):** the model modal's hash footnote now
> shows the Civitai model id and version id (right-aligned, with copy buttons), adding
> 4 keys (`modals.model.metadata.civitaiModelId` / `.civitaiVersionId`,
> `modals.model.actions.copyCivitaiId` / `.civitaiIdCopied`). The same pass removed the
> search-options "hash" toggle (`header.search.filters.hash`) because hash/id search is
> now always on. All 9 locales are translated (terminology in §2, "Civitai ids feature"),
> so the "no remaining placeholders" claim holds again.
---
## 1. Hard rules (do not violate)
@@ -586,6 +594,24 @@ directly (model-type names, R3). The tooltip quotes the `modals.download.useDefa
label verbatim with each locale's UI-label quoting style (zh-CN “ ”, zh-TW/ja 「 」,
ko `' '`, fr « … », de „ … “, es/ru/he «…»).
### Civitai ids feature (model/version id in the model modal)
The model modal's hash footnote shows the Civitai **model id** and **version id** with
copy buttons (`modals.model.metadata.civitaiModelId` / `.civitaiVersionId` labels,
`modals.model.actions.copyCivitaiId` tooltip, `.civitaiIdCopied` toast). **"ID" stays
Latin in every locale** (same precedent as `recipes.*.copyId`), and `Civitai` is the
brand (R3) — it is never translated or transliterated; the casing mirrors `en.json`
verbatim (R9). The copy/copied strings reuse each locale's existing clipboard patterns
(`modals.model.actions.copyHash` / `openFileLocation.copied`).
| Term | Rendering |
|---|---|
| Model ID (label) | zh-CN 模型 ID · zh-TW 模型 ID · ja モデル ID · ko 모델 ID · fr ID du modèle · de Modell-ID · es ID del modelo · ru ID модели · he מזהה מודל |
| Version ID (label) | zh-CN 版本 ID · zh-TW 版本 ID · ja バージョン ID · ko 버전 ID · fr ID de version · de Versions-ID · es ID de versión · ru ID версии · he מזהה גרסה |
Hebrew uses its established מזהה ("identifier") noun instead of Latin `ID` in these
labels, matching `recipes.*.copyId` (העתק מזהה מתכון).
---
## 3. Cross-cutting confusion hot-spots (must-fix list)