web: de-brand PhotoPrism references in user-facing copy

Replaces "PhotoPrism" in UI strings (empty states, tooltips, toasts,
log header, login screen) with neutral terms like "the indexer", "the
library", "the server" — accurate regardless of backend. The login
header becomes "Mulimage" and drops the explicit PhotoPrism mention.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-20 00:43:56 +02:00
parent e364e4128f
commit 24dfa996b3
9 changed files with 22 additions and 22 deletions

View File

@@ -333,7 +333,7 @@ export function gridKeyNav(node: HTMLElement, params: GridKeyNavParams = {}) {
// truth.
if (added.length === 0) {
toast.error(`Nothing added to ${heap.Title}`, {
description: `PhotoPrism rejected all ${ids.length} UIDs (already in heap, or not indexed).`
description: `The server rejected all ${ids.length} UIDs (already in heap, or not indexed).`
});
return;
}

View File

@@ -158,7 +158,7 @@
`Archived ${result.moved.length} duplicate${result.moved.length === 1 ? '' : 's'}`,
{
description: losingIndexed
? 'The previously-indexed copy was moved; PhotoPrism will drop it on the next index pass.'
? 'The previously-indexed copy was moved; the indexer will drop it on the next index pass.'
: 'Files moved to .duplicates/ inside originals.'
}
);
@@ -246,7 +246,7 @@
{#if isIndexed}
<span
class="absolute right-1.5 top-1.5 rounded bg-emerald-600 px-1.5 py-0.5 text-[10px] font-semibold text-white"
title="Currently indexed by PhotoPrism"
title="Currently in the library"
>
Indexed
</span>

View File

@@ -89,9 +89,9 @@
<EmptyState icon={Copy} title="No stacks">
{#snippet descriptionSnippet()}
<p>
PhotoPrism stacks byte-identical (or EXIF-identical) files. If you don't have
any, this tab stays empty. Cross-folder copies PhotoPrism rejected at index
time live under the Cross-folder tab.
The library stacks byte-identical (or EXIF-identical) files. If you don't have
any, this tab stays empty. Cross-folder copies dropped at index time live under
the Cross-folder tab.
</p>
{/snippet}
</EmptyState>
@@ -110,7 +110,7 @@
<div role="tabpanel" aria-label="Cross-folder duplicates" class="space-y-3 px-6 py-4 pb-6">
<header class="flex items-baseline justify-between gap-3">
<p class="text-[11px] text-muted-foreground">
Byte-identical files PhotoPrism dropped at index time. Found by scanning the
Byte-identical files the indexer dropped at index time. Found by scanning the
originals tree directly.
</p>
<button

View File

@@ -142,7 +142,7 @@
Library settings
</Dialog.Title>
<Dialog.Description class="mt-1 text-xs text-muted-foreground">
Drive PhotoPrism's library, indexer, importer and server log.
Drive the library, indexer, importer and server log.
</Dialog.Description>
</div>
<Dialog.Close
@@ -403,8 +403,8 @@
<Tabs.Content value="logs" class="space-y-2 text-[12px] outline-none">
<div class="flex items-center justify-between">
<p class="text-muted-foreground">
Most recent PhotoPrism errors and warnings. Auto-refreshes
every 5 seconds.
Most recent server errors and warnings. Auto-refreshes every
5 seconds.
</p>
<button
type="button"

View File

@@ -174,7 +174,7 @@
// a no-op.
if (added.length === 0) {
toast.error(`Nothing added to ${heap.Title}`, {
description: `PhotoPrism rejected all ${ids.length} UIDs (already in heap, or not indexed).`
description: `The server rejected all ${ids.length} UIDs (already in heap, or not indexed).`
});
return;
}

View File

@@ -53,7 +53,7 @@ export const CAUSES: Record<CauseKey, CauseMeta> = {
title: 'Implausible year',
chip: 'bad year',
suggestion:
"Filenames suggest a date PhotoPrism doesn't trust. Open one to set the real TakenAt, then bulk-approve the rest.",
"Filenames suggest a date the indexer doesn't trust. Open one to set the real TakenAt, then bulk-approve the rest.",
suggestedAction: 'manual'
},
non_image_type: {
@@ -66,7 +66,7 @@ export const CAUSES: Record<CauseKey, CauseMeta> = {
title: 'Other quality issues',
chip: 'low quality',
suggestion:
'PhotoPrism flagged these but the metadata looks fine. Open the first one to investigate.',
'The indexer flagged these but the metadata looks fine. Open the first one to investigate.',
suggestedAction: 'manual'
}
};

View File

@@ -856,13 +856,13 @@
<EmptyState
icon={Sparkles}
title="Nothing left to review"
description="Photos PhotoPrism's indexer wasn't sure about land here — use Keep to accept them into the timeline or Archive to set them aside."
description="Photos the indexer wasn't sure about land here — use Keep to accept them into the timeline or Archive to set them aside."
/>
{:else if filters.section === "hidden"}
<EmptyState
icon={EyeOff}
title="No hidden photos"
description="PhotoPrism auto-hides files it can't index (broken files, very low quality); they only ever show up here."
description="The indexer auto-hides files it can't read (broken files, very low quality); they only ever show up here."
/>
{:else if filters.section === "heap"}
<EmptyState
@@ -874,7 +874,7 @@
<EmptyState
icon={ImageOff}
title="No photos"
description="Index a folder via PhotoPrism's reindex command."
description="Index a folder from Settings → Index, or run a reindex from the server."
/>
{/if}
{:else}

View File

@@ -61,8 +61,8 @@
class="w-full max-w-sm space-y-5 rounded-lg border border-border bg-card p-8 shadow-sm"
>
<header class="space-y-1">
<h1 class="text-2xl font-semibold tracking-tight text-foreground">Mule</h1>
<p class="text-sm text-muted-foreground">Sign in with your PhotoPrism account.</p>
<h1 class="text-2xl font-semibold tracking-tight text-foreground">Mulimage</h1>
<p class="text-sm text-muted-foreground">Sign in to your account.</p>
</header>
<label class="block space-y-1.5">

View File

@@ -242,10 +242,10 @@
<EmptyState icon={Sparkles} title="Nothing to review">
{#snippet descriptionSnippet()}
<p>
PhotoPrism's indexer flags photos with a low quality score for human
review. New arrivals with missing EXIF, low resolution, or unknown
cameras will land here. The Stacks and Cross-folder tabs above stay
available for duplicate cleanup.
The indexer flags photos with a low quality score for human review. New
arrivals with missing EXIF, low resolution, or unknown cameras will land
here. The Stacks and Cross-folder tabs above stay available for
duplicate cleanup.
</p>
{/snippet}
</EmptyState>