feat(native): add a watch history screen and trim the web phone tab bar

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
jakeandClaude Sonnet 5.5 committed 2026-10-05 21:50:53 -04:00
1 parent 6f0b3b597f
commit 4669d3b76d
19 files changed
+623 -18

No files matched your search

@@ -1,19 +1,36 @@
import { useLingui } from "@lingui/react/macro";
import { Stack } from "expo-router";
import { IconHistory } from "@tabler/icons-react-native";
import { Stack, useRouter } from "expo-router";
import { useAtom } from "jotai";
import { View } from "react-native";
import { Pressable, View } from "react-native";
import { useCSSVariable, useResolveClassNames } from "uniwind";
import { HeaderAvatar } from "@/components/header-avatar";
import { SortMenu } from "@/components/library/sort-menu";
import { ScaledIcon } from "@/components/ui/scaled-icon";
import { type SortBy, librarySortByAtom, librarySortDirectionAtom } from "@/lib/library-atoms";
import * as Haptics from "@/utils/haptics";
function LibraryHeaderRight() {
const { t } = useLingui();
const router = useRouter();
const foregroundColor = useCSSVariable("--color-foreground") as string;
const [sortBy, setSortBy] = useAtom(librarySortByAtom);
const [sortDirection, setSortDirection] = useAtom(librarySortDirectionAtom);
return (
<View className="flex-row items-center gap-4">
<Pressable
accessibilityRole="button"
accessibilityLabel={t`History`}
hitSlop={8}
onPress={() => {
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light);
router.push("/(tabs)/(library)/history");
}}
>
<ScaledIcon icon={IconHistory} size={22} color={foregroundColor} />
</Pressable>
<SortMenu
sortBy={sortBy}
sortDirection={sortDirection}
@@ -51,13 +68,11 @@ export default function LibraryLayout() {
if (process.env.EXPO_OS === "ios") {
return (
<Stack
screenOptions={{
contentStyle,
unstable_headerRightItems: getLibraryHeaderRightItems,
}}
>
<Stack.Screen name="index">
<Stack screenOptions={{ contentStyle }}>
<Stack.Screen
name="index"
options={{ unstable_headerRightItems: getLibraryHeaderRightItems }}
>
<Stack.Header
transparent
blurEffect="systemChromeMaterialDark"
@@ -84,10 +99,9 @@ export default function LibraryLayout() {
screenOptions={{
contentStyle,
headerTitleAlign: "left",
headerRight: renderLibraryHeaderRight,
}}
>
<Stack.Screen name="index">
<Stack.Screen name="index" options={{ headerRight: renderLibraryHeaderRight }}>
<Stack.Header
transparent={false}
style={{
@@ -0,0 +1,191 @@
import { useLingui } from "@lingui/react/macro";
import { IconAlertTriangle, IconHistory } from "@tabler/icons-react-native";
import { useInfiniteQuery } from "@tanstack/react-query";
import { Stack } from "expo-router";
import { useCallback, useMemo, useState } from "react";
import { Pressable, RefreshControl, ScrollView, SectionList, View } from "react-native";
import Animated, { FadeInDown } from "react-native-reanimated";
import { useCSSVariable, useResolveClassNames } from "uniwind";
import { HistoryRow } from "@/components/history/history-row";
import { EmptyState } from "@/components/ui/empty-state";
import { ScaledIcon } from "@/components/ui/scaled-icon";
import { Text } from "@/components/ui/text";
import { usePullToRefresh } from "@/hooks/use-pull-to-refresh";
import { orpc } from "@/lib/orpc";
import { queryClient } from "@/lib/query-client";
import * as Haptics from "@/utils/haptics";
import { formatLocalDate } from "@sofa/i18n/date-buckets";
import { formatDate } from "@sofa/i18n/format";
const contentContainerStyle = { paddingBottom: 24 };
function FilterChip({
label,
isSelected,
onPress,
}: {
label: string;
isSelected: boolean;
onPress: () => void;
}) {
return (
<Pressable
onPress={() => {
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light);
onPress();
}}
accessibilityRole="button"
accessibilityState={{ selected: isSelected }}
className={`rounded-full px-3 py-1.5 ${isSelected ? "bg-primary" : "bg-secondary"}`}
>
<Text
className={`font-sans text-xs font-medium ${isSelected ? "text-primary-foreground" : "text-foreground"}`}
>
{label}
</Text>
</Pressable>
);
}
export default function HistoryScreen() {
const { t } = useLingui();
const headerTitleStyle = useResolveClassNames("font-display text-foreground text-xl");
const tintColor = useCSSVariable("--color-primary") as string;
const backgroundColor = useCSSVariable("--color-background") as string;
const mutedColor = useCSSVariable("--color-muted-foreground") as string;
const [mediaType, setMediaType] = useState<"all" | "movie" | "tv">("all");
const { data, isPending, isError, refetch, fetchNextPage, hasNextPage, isFetchingNextPage } =
useInfiniteQuery(
orpc.tracking.history.infiniteOptions({
input: (pageParam: string | undefined) => ({
limit: 30,
cursor: pageParam,
type: mediaType !== "all" ? mediaType : undefined,
}),
initialPageParam: undefined as string | undefined,
getNextPageParam: (lastPage) => lastPage.nextCursor ?? undefined,
}),
);
const allItems = useMemo(() => data?.pages.flatMap((p) => p.items) ?? [], [data]);
// Group by local calendar day, preserving newest-first order. The day key comes
// from local getters; the heading formats the date-only key as UTC (see
// intl-polyfills.ts: the native Intl polyfill defaults to UTC).
const sections = useMemo(() => {
const days: { key: string; title: string; data: typeof allItems }[] = [];
for (const item of allItems) {
const key = formatLocalDate(new Date(item.watchedAt));
const last = days[days.length - 1];
if (last && last.key === key) {
last.data.push(item);
} else {
days.push({ key, title: formatDate(key, { weekday: "long" }), data: [item] });
}
}
return days;
}, [allItems]);
const refreshHistory = useCallback(
() => queryClient.invalidateQueries({ queryKey: orpc.tracking.history.key() }),
[],
);
const { refreshing, onRefresh } = usePullToRefresh(refreshHistory);
const onEndReached = useCallback(() => {
if (hasNextPage && !isFetchingNextPage) {
fetchNextPage();
}
}, [hasNextPage, isFetchingNextPage, fetchNextPage]);
const filterChips = (
<ScrollView
horizontal
showsHorizontalScrollIndicator={false}
contentContainerStyle={{ paddingHorizontal: 16, gap: 6, paddingTop: 10, paddingBottom: 6 }}
>
<FilterChip
label={t`All`}
isSelected={mediaType === "all"}
onPress={() => setMediaType("all")}
/>
<FilterChip
label={t`Movies`}
isSelected={mediaType === "movie"}
onPress={() => setMediaType("movie")}
/>
<FilterChip
label={t`TV`}
isSelected={mediaType === "tv"}
onPress={() => setMediaType("tv")}
/>
</ScrollView>
);
const isIOS = process.env.EXPO_OS === "ios";
return (
<>
<Stack.Header
transparent={isIOS}
blurEffect={isIOS ? "systemChromeMaterialDark" : undefined}
style={{
color: tintColor,
shadowColor: "transparent",
backgroundColor: isIOS ? undefined : backgroundColor,
}}
/>
<Stack.Screen.Title style={headerTitleStyle as Record<string, unknown>}>
{t`History`}
</Stack.Screen.Title>
<Stack.Screen.BackButton displayMode="minimal" />
<SectionList
sections={sections}
keyExtractor={(item) => item.watchId}
ListHeaderComponent={filterChips}
renderItem={({ item }) => (
<View className="px-4 py-1">
<HistoryRow item={item} />
</View>
)}
renderSectionHeader={({ section: { title } }) => (
<View className="bg-background px-4 pt-3 pb-1">
<Text className="text-muted-foreground text-xs font-semibold tracking-wider uppercase">
{title}
</Text>
</View>
)}
stickySectionHeadersEnabled
contentContainerStyle={contentContainerStyle}
contentInsetAdjustmentBehavior="automatic"
onEndReached={onEndReached}
onEndReachedThreshold={0.5}
refreshControl={<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />}
ListEmptyComponent={
isPending ? null : isError && allItems.length === 0 ? (
<EmptyState
icon={IconAlertTriangle}
title={t`Something went wrong`}
description={t`Couldn't load your watch history`}
actionLabel={t`Retry`}
onAction={() => refetch()}
/>
) : (
<Animated.View
entering={FadeInDown.duration(300)}
className="items-center justify-center px-4 py-16"
>
<ScaledIcon icon={IconHistory} size={48} color={`${mutedColor}66`} />
<Text className="text-muted-foreground mt-4 text-center text-sm">
{t`No watches yet.`}
</Text>
</Animated.View>
)
}
/>
</>
);
}
@@ -0,0 +1,81 @@
import { useLingui } from "@lingui/react/macro";
import { IconMovie } from "@tabler/icons-react-native";
import { Link } from "expo-router";
import { Pressable, View } from "react-native";
import { useCSSVariable } from "uniwind";
import type { z } from "zod";
import { Image } from "@/components/ui/image";
import { ScaledIcon } from "@/components/ui/scaled-icon";
import { Text } from "@/components/ui/text";
import { formatLocalTimeOfDay } from "@/lib/format-time";
import type { WatchHistoryItemSchema } from "@sofa/api/schemas";
type WatchHistoryItem = z.infer<typeof WatchHistoryItemSchema>;
export function HistoryRow({ item }: { item: WatchHistoryItem }) {
const { t } = useLingui();
const mutedColor = useCSSVariable("--color-muted-foreground") as string;
const sourceLabels = {
manual: t`Manual`,
import: t`Import`,
plex: t`Plex`,
jellyfin: t`Jellyfin`,
emby: t`Emby`,
} as const;
let subtitle: string | null = null;
if (item.episode) {
const season = item.episode.seasonNumber;
const episode = item.episode.episodeNumber;
const name = item.episode.name;
subtitle = name ? t`S${season} E${episode} · ${name}` : t`S${season} E${episode}`;
}
const time = formatLocalTimeOfDay(new Date(item.watchedAt));
const accessibilityLabel = [item.title.title, subtitle, time].filter(Boolean).join(", ");
return (
<Link href={`/title/${item.title.id}`} asChild>
<Pressable
accessibilityRole="link"
accessibilityLabel={accessibilityLabel}
className="bg-card/40 flex-row items-center gap-3 rounded-xl border border-white/[0.06] px-3 py-3"
>
<View className="overflow-hidden rounded-lg" style={{ width: 44, height: 66 }}>
{item.title.posterPath ? (
<Image
source={{ uri: item.title.posterPath }}
thumbHash={item.title.posterThumbHash}
className="size-full"
contentFit="cover"
/>
) : (
<View className="bg-muted size-full items-center justify-center">
<ScaledIcon icon={IconMovie} size={18} color={mutedColor} />
</View>
)}
</View>
<View className="min-w-0 flex-1">
<Text className="text-foreground text-sm font-medium" numberOfLines={1}>
{item.title.title}
</Text>
{subtitle && (
<Text className="text-muted-foreground mt-1 text-xs" numberOfLines={1}>
{subtitle}
</Text>
)}
</View>
<View className="items-end gap-1">
<Text className="text-muted-foreground text-xs">{time}</Text>
<View className="bg-muted rounded px-1.5 py-0.5">
<Text className="text-muted-foreground text-[10px] font-medium tracking-wider uppercase">
{sourceLabels[item.source]}
</Text>
</View>
</View>
</Pressable>
</Link>
);
}
+19
View File
@@ -0,0 +1,19 @@
import { describe, expect, test, vi } from "vitest";
vi.mock("@sofa/i18n", () => ({ i18n: { locale: "en" } }));
import { formatLocalTimeOfDay } from "@/lib/format-time";
describe("formatLocalTimeOfDay", () => {
test("renders the local hour and minutes", () => {
const result = formatLocalTimeOfDay(new Date(2026, 5, 15, 21, 5));
expect(result).toMatch(/9|21/);
expect(result).toContain("05");
});
test("is independent of the date part", () => {
expect(formatLocalTimeOfDay(new Date(2026, 0, 1, 7, 30))).toBe(
formatLocalTimeOfDay(new Date(2030, 11, 31, 7, 30)),
);
});
});
+19
View File
@@ -0,0 +1,19 @@
import { formatDate } from "@sofa/i18n/format";
/**
* Formats the device-local time of day (e.g. "9:05 PM" / "21:05") for a Date.
*
* The native Intl polyfill has no time-zone data and defaults to UTC, so we
* read the local hours/minutes from the Date and format them as a synthetic
* UTC instant. This keeps locale-aware 12/24h formatting with device-local time.
*/
export function formatLocalTimeOfDay(date: Date): string {
return formatDate(new Date(Date.UTC(2000, 0, 1, date.getHours(), date.getMinutes())), {
year: undefined,
month: undefined,
day: undefined,
hour: "numeric",
minute: "2-digit",
timeZone: "UTC",
});
}
-2
View File
@@ -3,7 +3,6 @@ import {
IconBooks,
IconCalendarEvent,
IconCompass,
IconHistory,
IconHome,
IconLogout,
IconSearch,
@@ -291,7 +290,6 @@ export function MobileTabBar() {
{ href: "/library", label: t`Library`, icon: IconBooks },
{ href: "/explore", label: t`Explore`, icon: IconCompass },
{ href: "/upcoming", label: t`Upcoming`, icon: IconCalendarEvent },
{ href: "/history", label: t`History`, icon: IconHistory },
{ href: "/settings", label: t`Settings`, icon: IconSettings },
] as const;
+12 -5
View File
@@ -1,7 +1,7 @@
import { useLingui } from "@lingui/react/macro";
import { IconBooks, IconFilterOff } from "@tabler/icons-react";
import { IconBooks, IconFilterOff, IconHistory } from "@tabler/icons-react";
import { useInfiniteQuery } from "@tanstack/react-query";
import { createFileRoute, useNavigate } from "@tanstack/react-router";
import { Link, createFileRoute, useNavigate } from "@tanstack/react-router";
import { zodValidator } from "@tanstack/zod-adapter";
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { z } from "zod";
@@ -9,6 +9,7 @@ import { z } from "zod";
import { TitleGrid, TitleGridSectionSkeleton } from "@/components/dashboard/title-grid";
import { LibraryToolbar } from "@/components/library/library-toolbar";
import { RouteError } from "@/components/route-error";
import { buttonVariants } from "@/components/ui/button";
import { useInfiniteScroll } from "@/hooks/use-infinite-scroll";
import { orpc } from "@/lib/orpc/client";
@@ -180,9 +181,15 @@ function LibraryPage() {
return (
<div className="space-y-6">
<div className="flex items-center gap-2">
<IconBooks aria-hidden={true} className="text-primary size-5" />
<h1 className="font-display text-xl tracking-tight">{t`Library`}</h1>
<div className="flex items-center justify-between gap-2">
<div className="flex items-center gap-2">
<IconBooks aria-hidden={true} className="text-primary size-5" />
<h1 className="font-display text-xl tracking-tight">{t`Library`}</h1>
</div>
<Link to="/history" className={buttonVariants({ variant: "outline", size: "sm" })}>
<IconHistory aria-hidden={true} />
{t`History`}
</Link>
</div>
<LibraryToolbar
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "العمر {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "البريد الإلكتروني"
msgid "Email is required"
msgstr "البريد الإلكتروني مطلوب"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "الأعلى تقييماً"
msgid "Hindi"
msgstr "الهندية"
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "ذاكرة التخزين المؤقت للصور"
msgid "Image cache and backup disk usage"
msgstr "استخدام القرص لذاكرة التخزين المؤقت للصور والنسخ الاحتياطية"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "الإيطالية"
msgid "Japanese"
msgstr "اليابانية"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "انقطع الاتصال بعملية الاستيراد. تحقق من
msgid "Manage your account and preferences"
msgstr "إدارة حسابك وتفضيلاتك"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "فيلم"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "لا توجد عناوين تطابق فلاترك"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "لا توجد حلقات أو إصدارات قادمة في الـ 90 يوماً التالية."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "يرجى تأكيد كلمة المرور"
msgid "Please sign in again."
msgstr "يرجى تسجيل الدخول مرة أخرى."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "جارٍ استرداد سجل المشاهدة وقائمة المشا
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "تشغيل الآن"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "سيقوم Sofa تلقائياً بتسجيل الأفلام والحل
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr ""
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "Alter {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "E-Mail"
msgid "Email is required"
msgstr "E-Mail ist erforderlich"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "Bestbewertet"
msgid "Hindi"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "Bild-Cache"
msgid "Image cache and backup disk usage"
msgstr "Speichernutzung für Bild-Cache und Backups"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "Italienisch"
msgid "Japanese"
msgstr "Japanisch"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "Verbindung zum Import verloren. Status in den Einstellungen prüfen."
msgid "Manage your account and preferences"
msgstr "Konto und Einstellungen verwalten"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "Film"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "Keine Titel entsprechen deinen Filtern"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "Keine kommenden Episoden oder Veröffentlichungen in den nächsten 90 Tagen."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "Bitte bestätige dein Passwort"
msgid "Please sign in again."
msgstr "Bitte melde dich erneut an."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "Verlauf, Merkliste und Bewertungen werden abgerufen..."
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "Jetzt ausführen"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "Sofa protokolliert Filme und Episoden automatisch, wenn du sie zu Ende g
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr "Serie"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr ""
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr "Couldn't load upcoming releases"
msgid "Couldn't load your library"
msgstr "Couldn't load your library"
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr "Couldn't load your watch history"
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr "Couldn't search right now"
@@ -1097,6 +1102,7 @@ msgstr ""
msgid "Email is required"
msgstr "Email is required"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "Highest rated"
msgid "Hindi"
msgstr "Hindi"
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr "History"
@@ -1605,6 +1614,7 @@ msgstr ""
msgid "Image cache and backup disk usage"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "Italian"
msgid "Japanese"
msgstr "Japanese"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr ""
msgid "Manage your account and preferences"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr ""
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "No titles match your filters"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "No upcoming episodes or releases in the next 90 days."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr "No watches yet."
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "Please confirm your password"
msgid "Please sign in again."
msgstr "Please sign in again."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr ""
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr ""
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr "S{season} E{episode}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr "S{season} E{episode} · {name}"
@@ -3156,6 +3177,7 @@ msgstr ""
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr "tv"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "edad {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "Correo electrónico"
msgid "Email is required"
msgstr "El correo electrónico es obligatorio"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "Mejor valorados"
msgid "Hindi"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "Caché de imágenes"
msgid "Image cache and backup disk usage"
msgstr "Uso del disco de caché de imágenes y copias de seguridad"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "Italiano"
msgid "Japanese"
msgstr "Japonés"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "Se perdió la conexión con la importación. Comprueba el estado en ajus
msgid "Manage your account and preferences"
msgstr "Gestiona tu cuenta y preferencias"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "Película"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "Ningún título coincide con tus filtros"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "No hay episodios ni estrenos en los próximos 90 días."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "Por favor, confirma tu contraseña"
msgid "Please sign in again."
msgstr "Por favor, inicia sesión de nuevo."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "Obteniendo tu historial de visionado, lista y valoraciones..."
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "Ejecutar ahora"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "Sofa registrará automáticamente películas y episodios cuando termines
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr "serie"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "âge {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "E-mail"
msgid "Email is required"
msgstr "L'adresse e-mail est requise"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "Mieux notés"
msgid "Hindi"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "Cache d'images"
msgid "Image cache and backup disk usage"
msgstr "Utilisation du disque : cache d'images et sauvegardes"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "Italien"
msgid "Japanese"
msgstr "Japonais"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "Connexion à l'importation perdue. Vérifiez l'état dans les paramètre
msgid "Manage your account and preferences"
msgstr "Gérez votre compte et vos préférences"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "Film"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "Aucun titre ne correspond à vos filtres"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "Aucun épisode ou sortie à venir dans les 90 prochains jours."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "Veuillez confirmer votre mot de passe"
msgid "Please sign in again."
msgstr "Veuillez vous reconnecter."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "Récupération de votre historique, liste de suivi et notes..."
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "Exécuter maintenant"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "Sofa enregistrera automatiquement les films et épisodes lorsque vous au
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr "série"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "גיל {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "דוא\"ל"
msgid "Email is required"
msgstr "כתובת דוא\"ל נדרשת"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "בדירוג הגבוה ביותר"
msgid "Hindi"
msgstr "הינדי"
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "מטמון תמונות"
msgid "Image cache and backup disk usage"
msgstr "שימוש בדיסק של מטמון תמונות וגיבויים"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "איטלקית"
msgid "Japanese"
msgstr "יפנית"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "אבד החיבור לייבוא. בדוק את הסטטוס בהגדר
msgid "Manage your account and preferences"
msgstr "נהל את החשבון וההעדפות שלך"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "סרט"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "אין כותרות התואמות למסננים"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "אין פרקים או יציאות קרובות ב-90 הימים הקרובים."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "אנא אשר את הסיסמה שלך"
msgid "Please sign in again."
msgstr "אנא התחבר שוב."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "מאחזר את היסטוריית הצפייה, רשימת הצפייה
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "הפעל עכשיו"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "Sofa יתעד אוטומטית סרטים ופרקים כשתסיים ל
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr "טלוויזיה"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "età {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr ""
msgid "Email is required"
msgstr "L'email è obbligatoria"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "Meglio valutati"
msgid "Hindi"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "Cache immagini"
msgid "Image cache and backup disk usage"
msgstr "Utilizzo disco: cache immagini e backup"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "Italiano"
msgid "Japanese"
msgstr "Giapponese"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "Connessione all'importazione persa. Controlla lo stato nelle impostazion
msgid "Manage your account and preferences"
msgstr "Gestisci il tuo account e le tue preferenze"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "Film"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "Nessun titolo corrisponde ai tuoi filtri"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "Nessun episodio o uscita in arrivo nei prossimi 90 giorni."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "Conferma la tua password"
msgid "Please sign in again."
msgstr "Accedi di nuovo."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "Recupero della cronologia, watchlist e valutazioni..."
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "Esegui ora"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "Sofa registrerà automaticamente film ed episodi quando finisci di guard
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr "serie tv"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "年齢 {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "メールアドレス"
msgid "Email is required"
msgstr "メールアドレスは必須です"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "評価が高い順"
msgid "Hindi"
msgstr "ヒンディー語"
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "画像キャッシュ"
msgid "Image cache and backup disk usage"
msgstr "画像キャッシュとバックアップのディスク使用量"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "イタリア語"
msgid "Japanese"
msgstr "日本語"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "インポートへの接続が切断されました。設定でステー
msgid "Manage your account and preferences"
msgstr "アカウントと設定を管理する"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "映画"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "フィルターに一致するタイトルがありません"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "今後90日間に予定されているエピソードやリリースはありません。"
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "パスワードを確認してください"
msgid "Please sign in again."
msgstr "再度サインインしてください。"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "視聴履歴、ウォッチリスト、評価を取得中..."
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "今すぐ実行"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "視聴完了後、Sofaが自動的に映画やエピソードを記録
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr ""
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "나이 {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "이메일"
msgid "Email is required"
msgstr "이메일을 입력해주세요"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "평점 높은 순"
msgid "Hindi"
msgstr "힌디어"
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "이미지 캐시"
msgid "Image cache and backup disk usage"
msgstr "이미지 캐시 및 백업 디스크 사용량"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "이탈리아어"
msgid "Japanese"
msgstr "일본어"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "가져오기 연결이 끊어졌습니다. 설정에서 상태를 확인
msgid "Manage your account and preferences"
msgstr "계정 및 환경설정을 관리하세요"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "영화"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "필터에 맞는 제목이 없습니다"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "향후 90일 이내 예정된 에피소드 또는 출시가 없습니다."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "비밀번호를 확인해주세요"
msgid "Please sign in again."
msgstr "다시 로그인해주세요."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "시청 기록, 시청 목록, 평점을 가져오는 중..."
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "지금 실행"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "시청을 완료하면 Sofa가 자동으로 영화와 에피소드를
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr ""
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "leeftijd {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "E-mail"
msgid "Email is required"
msgstr "E-mail is vereist"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "Hoogst beoordeeld"
msgid "Hindi"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "Afbeeldingscache"
msgid "Image cache and backup disk usage"
msgstr "Schijfgebruik voor afbeeldingscache en back-ups"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "Italiaans"
msgid "Japanese"
msgstr "Japans"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "Verbinding met de import verbroken. Controleer de status in de instellin
msgid "Manage your account and preferences"
msgstr "Beheer je account en voorkeuren"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "Film"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "Geen titels komen overeen met je filters"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "Geen aankomende afleveringen of releases in de komende 90 dagen."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "Bevestig je wachtwoord"
msgid "Please sign in again."
msgstr "Meld je opnieuw aan."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "Kijkgeschiedenis, watchlist en beoordelingen ophalen..."
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "Nu uitvoeren"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "Sofa registreert automatisch films en afleveringen wanneer je klaar bent
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr ""
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "idade {age}"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "E-mail"
msgid "Email is required"
msgstr "O email é obrigatório"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "Melhor avaliados"
msgid "Hindi"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "Cache de imagens"
msgid "Image cache and backup disk usage"
msgstr "Uso de disco de cache de imagens e backups"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "Italiano"
msgid "Japanese"
msgstr "Japonês"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "Conexão de importação perdida. Verifique o status nas configurações
msgid "Manage your account and preferences"
msgstr "Gerencie sua conta e preferências"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "Filme"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "Nenhum título corresponde aos seus filtros"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "Sem episódios ou lançamentos nos próximos 90 dias."
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "Por favor confirme a sua palavra-passe"
msgid "Please sign in again."
msgstr "Por favor inicie sessão novamente."
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "Buscando seu histórico de exibição, lista de desejos e avaliações..
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "Executar agora"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "O Sofa registrará automaticamente filmes e episódios quando você term
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr "série"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx
+23
View File
@@ -373,6 +373,7 @@ msgid "age {age}"
msgstr "{age} 岁"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
#: apps/native/src/components/library/filter-sheet.tsx
@@ -878,6 +879,10 @@ msgstr ""
msgid "Couldn't load your library"
msgstr ""
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "Couldn't load your watch history"
msgstr ""
#: apps/native/src/app/(tabs)/(search)/index.tsx
msgid "Couldn't search right now"
msgstr ""
@@ -1097,6 +1102,7 @@ msgstr "邮箱"
msgid "Email is required"
msgstr "邮箱不能为空"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Emby"
@@ -1580,8 +1586,11 @@ msgstr "评分最高"
msgid "Hindi"
msgstr "印地语"
#: apps/native/src/app/(tabs)/(library)/_layout.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/web/src/components/nav-bar.tsx
#: apps/web/src/routes/_app/history.tsx
#: apps/web/src/routes/_app/library.tsx
msgid "History"
msgstr ""
@@ -1605,6 +1614,7 @@ msgstr "图片缓存"
msgid "Image cache and backup disk usage"
msgstr "图片缓存与备份磁盘用量"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/components/settings/account-section.tsx
#: apps/web/src/routes/_app/history.tsx
@@ -1734,6 +1744,7 @@ msgstr "意大利语"
msgid "Japanese"
msgstr "日语"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Jellyfin"
@@ -1864,6 +1875,7 @@ msgstr "导入连接已断开,请在设置中查看状态。"
msgid "Manage your account and preferences"
msgstr "管理您的账户和偏好设置"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Manual"
@@ -2059,6 +2071,7 @@ msgid "Movie"
msgstr "电影"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/web/src/components/people/filmography-grid.tsx
#: apps/web/src/components/settings/account-section.tsx
@@ -2225,6 +2238,10 @@ msgstr "没有标题符合您的筛选条件"
msgid "No upcoming episodes or releases in the next 90 days."
msgstr "未来 90 天内没有即将播出的剧集或上映的影片。"
#: apps/native/src/app/(tabs)/(library)/history.tsx
msgid "No watches yet."
msgstr ""
#: apps/native/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/integration-card.tsx
#: apps/web/src/components/settings/system-health-section.tsx
@@ -2436,6 +2453,7 @@ msgstr "请确认您的密码"
msgid "Please sign in again."
msgstr "请重新登录。"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
#: apps/web/src/routes/_app/history.tsx
msgid "Plex"
@@ -2829,6 +2847,7 @@ msgstr "正在获取您的观看记录、观看列表和评分..."
#: apps/native/src/app/(auth)/register.tsx
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/components/explore/filterable-title-row.tsx
@@ -2859,10 +2878,12 @@ msgstr "立即运行"
#~ msgid "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#~ msgstr "S{0} · {1} {2, plural, one {episode} other {episodes}}"
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode}"
msgstr ""
#: apps/native/src/components/history/history-row.tsx
#: apps/web/src/components/history/history-row.tsx
msgid "S{season} E{episode} · {name}"
msgstr ""
@@ -3156,6 +3177,7 @@ msgstr "当您看完电影或剧集时,Sofa 将自动记录"
#: apps/native/src/app/(tabs)/(home)/index.tsx
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/(tabs)/(search)/index.tsx
#: apps/native/src/app/change-password.tsx
@@ -3514,6 +3536,7 @@ msgid "tv"
msgstr "电视剧"
#: apps/native/src/app/(tabs)/(home)/upcoming.tsx
#: apps/native/src/app/(tabs)/(library)/history.tsx
#: apps/native/src/app/(tabs)/(library)/index.tsx
#: apps/native/src/app/title/[id].tsx
#: apps/native/src/components/library/filter-sheet.tsx