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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user