mirror of
https://github.com/jakejarvis/sofa.git
synced 2026-10-15 19:45:42 -04:00
fix(i18n): render mapped error messages and stop showing raw server errors
Helpers that took Lingui's `t` as a parameter rendered empty strings because the macro only transforms `t` imported from the macro. Use msg descriptors plus i18n._ instead, so mapped error toasts and native server-URL errors are real, extractable strings. Also map Better Auth error codes to localized messages instead of showing raw server text, and send a REGISTRATION_CLOSED code from the auth hook. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
25 files changed
+1571
-117
No files matched your search
@@ -15,6 +15,7 @@ import { ScaledIcon } from "@/components/ui/scaled-icon";
|
||||
import { Spinner } from "@/components/ui/spinner";
|
||||
import { Text } from "@/components/ui/text";
|
||||
import { Input, Label, TextField } from "@/components/ui/text-field";
|
||||
import { getAuthErrorMessage } from "@/lib/error-messages";
|
||||
import { orpc } from "@/lib/orpc";
|
||||
import { queryClient } from "@/lib/query-client";
|
||||
import { authClient, getServerUrl, splitUrl } from "@/lib/server";
|
||||
@@ -58,7 +59,7 @@ export default function LoginScreen() {
|
||||
{ email: result.data.email, password: result.data.password },
|
||||
{
|
||||
onError(error) {
|
||||
toast.error(error.error?.message || t`Failed to sign in`);
|
||||
toast.error(getAuthErrorMessage(error.error, t`Failed to sign in`));
|
||||
},
|
||||
onSuccess() {
|
||||
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success);
|
||||
|
||||
@@ -12,6 +12,7 @@ import { Button, ButtonLabel } from "@/components/ui/button";
|
||||
import { Spinner } from "@/components/ui/spinner";
|
||||
import { Text } from "@/components/ui/text";
|
||||
import { Input, Label, TextField } from "@/components/ui/text-field";
|
||||
import { getAuthErrorMessage } from "@/lib/error-messages";
|
||||
import { orpc } from "@/lib/orpc";
|
||||
import { queryClient } from "@/lib/query-client";
|
||||
import { authClient, getServerUrl, splitUrl } from "@/lib/server";
|
||||
@@ -69,7 +70,7 @@ export default function RegisterScreen() {
|
||||
},
|
||||
{
|
||||
onError(error) {
|
||||
toast.error(error.error?.message || t`Failed to create account`);
|
||||
toast.error(getAuthErrorMessage(error.error, t`Failed to create account`));
|
||||
},
|
||||
onSuccess() {
|
||||
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success);
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import type { MessageDescriptor } from "@lingui/core";
|
||||
import { msg } from "@lingui/core/macro";
|
||||
import { Trans, useLingui } from "@lingui/react/macro";
|
||||
import { IconAlertCircle, IconCircleCheck, IconInfoCircle } from "@tabler/icons-react-native";
|
||||
import { useRouter } from "expo-router";
|
||||
@@ -20,6 +22,7 @@ import { Text } from "@/components/ui/text";
|
||||
import { Input } from "@/components/ui/text-field";
|
||||
import { getServerUrl, serverManager, type ValidationError } from "@/lib/server";
|
||||
import * as Haptics from "@/utils/haptics";
|
||||
import { i18n } from "@sofa/i18n";
|
||||
|
||||
const TRAILING_SLASHES_RE = /\/+$/;
|
||||
|
||||
@@ -29,17 +32,13 @@ type ConnectionState =
|
||||
| { phase: "success" }
|
||||
| { phase: "error"; error: ValidationError };
|
||||
|
||||
function getErrorMessages(
|
||||
t: (strings: TemplateStringsArray, ...values: unknown[]) => string,
|
||||
): Record<ValidationError, string> {
|
||||
return {
|
||||
network_unreachable: t`Could not reach the server. Check your connection and the URL.`,
|
||||
timeout: t`Connection timed out. The server might be down or unreachable.`,
|
||||
not_sofa_server: t`This doesn't appear to be a Sofa server. Double-check the URL.`,
|
||||
server_unhealthy: t`Server found but reporting an issue. Try again in a moment.`,
|
||||
invalid_url: t`That URL doesn't look right. Include the full server address.`,
|
||||
};
|
||||
}
|
||||
const SERVER_URL_ERRORS: Record<ValidationError, MessageDescriptor> = {
|
||||
network_unreachable: msg`Could not reach the server. Check your connection and the URL.`,
|
||||
timeout: msg`Connection timed out. The server might be down or unreachable.`,
|
||||
not_sofa_server: msg`This doesn't appear to be a Sofa server. Double-check the URL.`,
|
||||
server_unhealthy: msg`Server found but reporting an issue. Try again in a moment.`,
|
||||
invalid_url: msg`That URL doesn't look right. Include the full server address.`,
|
||||
};
|
||||
|
||||
export default function ServerUrlScreen() {
|
||||
const { t } = useLingui();
|
||||
@@ -190,7 +189,7 @@ export default function ServerUrlScreen() {
|
||||
style={{ marginTop: 1 }}
|
||||
/>
|
||||
<Text selectable className="text-destructive flex-1 text-sm">
|
||||
{getErrorMessages(t)[connection.error]}
|
||||
{i18n._(SERVER_URL_ERRORS[connection.error])}
|
||||
</Text>
|
||||
</Animated.View>
|
||||
)}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
import { ORPCError } from "@orpc/client";
|
||||
import { describe, expect, test, vi } from "vitest";
|
||||
|
||||
vi.mock("@sofa/i18n", () => ({
|
||||
i18n: {
|
||||
locale: "en",
|
||||
_: (descriptor: { id?: string; message?: string } | string) =>
|
||||
typeof descriptor === "string" ? descriptor : (descriptor.message ?? descriptor.id ?? ""),
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock("@lingui/core/macro", () => ({
|
||||
msg: (strings: TemplateStringsArray, ...values: unknown[]) => ({
|
||||
id: String.raw(strings, ...values),
|
||||
message: String.raw(strings, ...values),
|
||||
}),
|
||||
}));
|
||||
|
||||
const { getAuthErrorMessage, getErrorMessage } = await import("./error-messages");
|
||||
|
||||
describe("getErrorMessage", () => {
|
||||
test("returns the English message for a mapped app error code", () => {
|
||||
const error = new ORPCError("BAD_REQUEST", { data: { code: "IMPORT_ALREADY_RUNNING" } });
|
||||
expect(getErrorMessage(error)).toBe("An import is already in progress");
|
||||
});
|
||||
|
||||
test("uses the fallback for unknown codes and plain errors", () => {
|
||||
const unknown = new ORPCError("BAD_REQUEST", { data: { code: "NOT_A_REAL_CODE" } });
|
||||
expect(getErrorMessage(unknown, "Nope")).toBe("Nope");
|
||||
expect(getErrorMessage(new Error("boom"), "Nope")).toBe("Nope");
|
||||
});
|
||||
|
||||
test("defaults to a generic message without a fallback", () => {
|
||||
expect(getErrorMessage(new Error("boom"))).toBe("Something went wrong");
|
||||
});
|
||||
});
|
||||
|
||||
describe("getAuthErrorMessage", () => {
|
||||
test("maps known Better Auth codes", () => {
|
||||
expect(getAuthErrorMessage({ code: "INVALID_EMAIL_OR_PASSWORD", status: 401 }, "F")).toBe(
|
||||
"Invalid email or password",
|
||||
);
|
||||
});
|
||||
|
||||
test("maps rate limiting", () => {
|
||||
expect(getAuthErrorMessage({ status: 429 }, "F")).toMatch(/^Too many attempts/);
|
||||
});
|
||||
|
||||
test("falls back for unknown codes and missing errors", () => {
|
||||
expect(getAuthErrorMessage({ code: "SOMETHING_ELSE", status: 500 }, "F")).toBe("F");
|
||||
expect(getAuthErrorMessage(null, "F")).toBe("F");
|
||||
});
|
||||
});
|
||||
@@ -1,6 +1,9 @@
|
||||
import type { MessageDescriptor } from "@lingui/core";
|
||||
import { msg } from "@lingui/core/macro";
|
||||
import { ORPCError } from "@orpc/client";
|
||||
|
||||
import type { AppErrorCode } from "@sofa/api/errors";
|
||||
import { i18n } from "@sofa/i18n";
|
||||
|
||||
export function getAppErrorCode(error: unknown): AppErrorCode | null {
|
||||
if (
|
||||
@@ -15,36 +18,46 @@ export function getAppErrorCode(error: unknown): AppErrorCode | null {
|
||||
return null;
|
||||
}
|
||||
|
||||
export function appErrorMessages(
|
||||
t: (template: TemplateStringsArray, ...args: unknown[]) => string,
|
||||
): Record<AppErrorCode, string> {
|
||||
return {
|
||||
TITLE_NOT_FOUND: t`Title not found`,
|
||||
PERSON_NOT_FOUND: t`Person not found`,
|
||||
INTEGRATION_NOT_FOUND: t`Integration not found`,
|
||||
BACKUP_NOT_FOUND: t`Backup not found`,
|
||||
BACKUP_DELETE_FAILED: t`Failed to delete backup`,
|
||||
BACKUP_RESTORE_FAILED: t`Backup restoration failed`,
|
||||
JOB_NOT_FOUND: t`Job not found`,
|
||||
TMDB_NOT_CONFIGURED: t`TMDB API key is not configured`,
|
||||
IMPORT_INVALID_FILE: t`Invalid import file`,
|
||||
IMPORT_PAYLOAD_TOO_LARGE: t`Import payload is too large`,
|
||||
IMPORT_ALREADY_RUNNING: t`An import is already in progress`,
|
||||
IMPORT_CANNOT_CANCEL: t`This import cannot be cancelled`,
|
||||
REGISTRATION_CLOSED: t`Registration is currently closed`,
|
||||
EXPORT_FAILED: t`Failed to export data`,
|
||||
};
|
||||
const APP_ERROR_MESSAGES: Record<AppErrorCode, MessageDescriptor> = {
|
||||
TITLE_NOT_FOUND: msg`Title not found`,
|
||||
PERSON_NOT_FOUND: msg`Person not found`,
|
||||
INTEGRATION_NOT_FOUND: msg`Integration not found`,
|
||||
BACKUP_NOT_FOUND: msg`Backup not found`,
|
||||
BACKUP_DELETE_FAILED: msg`Failed to delete backup`,
|
||||
BACKUP_RESTORE_FAILED: msg`Backup restoration failed`,
|
||||
JOB_NOT_FOUND: msg`Job not found`,
|
||||
TMDB_NOT_CONFIGURED: msg`TMDB API key is not configured`,
|
||||
IMPORT_INVALID_FILE: msg`Invalid import file`,
|
||||
IMPORT_PAYLOAD_TOO_LARGE: msg`Import payload is too large`,
|
||||
IMPORT_ALREADY_RUNNING: msg`An import is already in progress`,
|
||||
IMPORT_CANNOT_CANCEL: msg`This import cannot be cancelled`,
|
||||
REGISTRATION_CLOSED: msg`Registration is currently closed`,
|
||||
EXPORT_FAILED: msg`Failed to export data`,
|
||||
};
|
||||
|
||||
/** Localized message for an oRPC error carrying an app error code, else `fallback`. */
|
||||
export function getErrorMessage(error: unknown, fallback?: string): string {
|
||||
const code = getAppErrorCode(error);
|
||||
if (code && code in APP_ERROR_MESSAGES) return i18n._(APP_ERROR_MESSAGES[code]);
|
||||
return fallback ?? i18n._(msg`Something went wrong`);
|
||||
}
|
||||
|
||||
export function getErrorMessage(
|
||||
error: unknown,
|
||||
t: (template: TemplateStringsArray, ...args: unknown[]) => string,
|
||||
fallback?: string,
|
||||
const AUTH_ERROR_MESSAGES: Record<string, MessageDescriptor> = {
|
||||
INVALID_EMAIL_OR_PASSWORD: msg`Invalid email or password`,
|
||||
USER_ALREADY_EXISTS: msg`An account with this email already exists`,
|
||||
USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: msg`An account with this email already exists`,
|
||||
PASSWORD_TOO_SHORT: msg`Password is too short`,
|
||||
PASSWORD_TOO_LONG: msg`Password is too long`,
|
||||
INVALID_EMAIL: msg`Enter a valid email address`,
|
||||
REGISTRATION_CLOSED: msg`Registration is currently closed`,
|
||||
};
|
||||
|
||||
/** Localized message for a Better Auth client error (never its raw `message`). */
|
||||
export function getAuthErrorMessage(
|
||||
error: { code?: string; status?: number } | null | undefined,
|
||||
fallback: string,
|
||||
): string {
|
||||
const code = getAppErrorCode(error);
|
||||
if (code) {
|
||||
const messages = appErrorMessages(t);
|
||||
if (code in messages) return messages[code as keyof typeof messages];
|
||||
}
|
||||
return fallback ?? t`Something went wrong`;
|
||||
if (error?.status === 429) return i18n._(msg`Too many attempts. Wait a moment and try again.`);
|
||||
const descriptor = error?.code ? AUTH_ERROR_MESSAGES[error.code] : undefined;
|
||||
return descriptor ? i18n._(descriptor) : fallback;
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import { Input } from "@/components/ui/input";
|
||||
import { Label } from "@/components/ui/label";
|
||||
import { useResetUserState } from "@/hooks/use-reset-user-state";
|
||||
import { authClient, signIn, signUp } from "@/lib/auth/client";
|
||||
import { getAuthErrorMessage } from "@/lib/error-messages";
|
||||
import { useAppForm } from "@/lib/form";
|
||||
|
||||
export interface AuthConfig {
|
||||
@@ -62,13 +63,13 @@ export function AuthForm({
|
||||
password: value.password,
|
||||
});
|
||||
if (result.error) {
|
||||
setError(result.error.message ?? t`Registration failed`);
|
||||
setError(getAuthErrorMessage(result.error, t`Registration failed`));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
const result = await signIn.email({ email: value.email, password: value.password });
|
||||
if (result.error) {
|
||||
setError(result.error.message ?? t`Login failed`);
|
||||
setError(getAuthErrorMessage(result.error, t`Login failed`));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ export function AccountSection({
|
||||
router.invalidate();
|
||||
},
|
||||
onError: (err) => {
|
||||
toast.error(getErrorMessage(err, t, t`Update failed`));
|
||||
toast.error(getErrorMessage(err, t`Update failed`));
|
||||
},
|
||||
}),
|
||||
);
|
||||
@@ -114,7 +114,7 @@ export function AccountSection({
|
||||
router.invalidate();
|
||||
},
|
||||
onError: (err) => {
|
||||
toast.error(getErrorMessage(err, t, t`Upload failed`));
|
||||
toast.error(getErrorMessage(err, t`Upload failed`));
|
||||
},
|
||||
onSettled: () => {
|
||||
if (fileInputRef.current) fileInputRef.current.value = "";
|
||||
@@ -406,7 +406,7 @@ function SofaImportDialog() {
|
||||
setOpen(true);
|
||||
},
|
||||
onError: (err) => {
|
||||
toast.error(getErrorMessage(err, t, t`Failed to parse file`));
|
||||
toast.error(getErrorMessage(err, t`Failed to parse file`));
|
||||
},
|
||||
onSettled: () => {
|
||||
if (fileInputRef.current) fileInputRef.current.value = "";
|
||||
@@ -496,7 +496,7 @@ function SofaImportDialog() {
|
||||
}
|
||||
} catch (err) {
|
||||
if (abort.signal.aborted) return;
|
||||
toast.error(getErrorMessage(err, t, t`Import failed`));
|
||||
toast.error(getErrorMessage(err, t`Import failed`));
|
||||
setStep("preview");
|
||||
} finally {
|
||||
importAbortRef.current = null;
|
||||
|
||||
@@ -35,7 +35,7 @@ export function BackupRestoreSection() {
|
||||
setTimeout(() => window.location.reload(), 1500);
|
||||
},
|
||||
onError: (err) => {
|
||||
toast.error(getErrorMessage(err, t, t`Restore failed`));
|
||||
toast.error(getErrorMessage(err, t`Restore failed`));
|
||||
},
|
||||
onSettled: () => {
|
||||
if (fileInputRef.current) fileInputRef.current.value = "";
|
||||
|
||||
@@ -221,7 +221,7 @@ function ImportSourceCard({ config }: { config: SourceConfig }) {
|
||||
setDialogOpen(true);
|
||||
},
|
||||
onError: (err) => {
|
||||
toast.error(getErrorMessage(err, t, t`Failed to parse file`));
|
||||
toast.error(getErrorMessage(err, t`Failed to parse file`));
|
||||
},
|
||||
}),
|
||||
);
|
||||
@@ -233,7 +233,7 @@ function ImportSourceCard({ config }: { config: SourceConfig }) {
|
||||
setStep("preview");
|
||||
},
|
||||
onError: (err) => {
|
||||
toast.error(getErrorMessage(err, t, t`Failed to parse import data`));
|
||||
toast.error(getErrorMessage(err, t`Failed to parse import data`));
|
||||
setStep("choose");
|
||||
},
|
||||
}),
|
||||
@@ -335,7 +335,7 @@ function ImportSourceCard({ config }: { config: SourceConfig }) {
|
||||
}
|
||||
} catch (err) {
|
||||
if (abort.signal.aborted) return;
|
||||
toast.error(getErrorMessage(err, t, t`Import failed`));
|
||||
toast.error(getErrorMessage(err, t`Import failed`));
|
||||
setStep("preview");
|
||||
} finally {
|
||||
importAbortRef.current = null;
|
||||
@@ -372,17 +372,14 @@ function ImportSourceCard({ config }: { config: SourceConfig }) {
|
||||
async function startDeviceCodeFlow() {
|
||||
setOauthError(null);
|
||||
setStep("device-code");
|
||||
const sourceLabel = config.label;
|
||||
|
||||
try {
|
||||
const res = await fetch(`${publicApiUrl}/v1/import/${config.source}/device-code`, {
|
||||
method: "POST",
|
||||
});
|
||||
if (!res.ok) {
|
||||
const err = await res.json().catch(() => ({}));
|
||||
const sourceLabel = config.label;
|
||||
throw new Error(
|
||||
(err as { error?: string }).error ?? t`Failed to start ${sourceLabel} connection`,
|
||||
);
|
||||
throw new Error("device-code request failed");
|
||||
}
|
||||
const data = (await res.json()) as DeviceCodeInfo;
|
||||
setDeviceCode(data);
|
||||
@@ -390,8 +387,8 @@ function ImportSourceCard({ config }: { config: SourceConfig }) {
|
||||
|
||||
// Start polling
|
||||
startPolling(data);
|
||||
} catch (e) {
|
||||
setOauthError(e instanceof Error ? e.message : t`Failed to connect`);
|
||||
} catch {
|
||||
setOauthError(t`Failed to start ${sourceLabel} connection`);
|
||||
setStep("choose");
|
||||
setDialogOpen(true);
|
||||
}
|
||||
@@ -442,8 +439,7 @@ function ImportSourceCard({ config }: { config: SourceConfig }) {
|
||||
} else if (data.status === "fetch_error") {
|
||||
stopPolling();
|
||||
setOauthError(
|
||||
data.error ||
|
||||
t`Authorization succeeded but failed to fetch your library. Please try again.`,
|
||||
t`Authorization succeeded but failed to fetch your library. Please try again.`,
|
||||
);
|
||||
setStep("choose");
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ import {
|
||||
} from "@/components/ui/table";
|
||||
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
|
||||
import { useTimeAgo } from "@/hooks/use-time-ago";
|
||||
import { getErrorMessage } from "@/lib/error-messages";
|
||||
import { orpc } from "@/lib/orpc/client";
|
||||
import type { CronJobName, SystemHealthData } from "@sofa/api/schemas";
|
||||
import { i18n } from "@sofa/i18n";
|
||||
@@ -325,7 +326,7 @@ function BackgroundJobsCard({
|
||||
setTimeout(onRefresh, 1500);
|
||||
},
|
||||
onError: (err) => {
|
||||
toast.error(err instanceof Error ? err.message : t`Failed to trigger job`);
|
||||
toast.error(getErrorMessage(err, t`Failed to trigger job`));
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
import { ORPCError } from "@orpc/client";
|
||||
import { describe, expect, test } from "vitest";
|
||||
|
||||
import { getErrorMessage } from "./error-messages";
|
||||
|
||||
describe("getErrorMessage", () => {
|
||||
test("renders the English message for a mapped app error code", () => {
|
||||
const error = new ORPCError("BAD_REQUEST", { data: { code: "IMPORT_ALREADY_RUNNING" } });
|
||||
const message = getErrorMessage(error);
|
||||
expect(message).not.toBe("");
|
||||
expect(message).toBe("An import is already in progress");
|
||||
});
|
||||
|
||||
test("uses the fallback for unknown codes and plain errors", () => {
|
||||
const unknown = new ORPCError("BAD_REQUEST", { data: { code: "NOT_A_REAL_CODE" } });
|
||||
expect(getErrorMessage(unknown, "Nope")).toBe("Nope");
|
||||
expect(getErrorMessage(new Error("boom"), "Nope")).toBe("Nope");
|
||||
expect(getErrorMessage(new Error("boom"))).toBe("Something went wrong");
|
||||
});
|
||||
});
|
||||
@@ -1,6 +1,9 @@
|
||||
import type { MessageDescriptor } from "@lingui/core";
|
||||
import { msg } from "@lingui/core/macro";
|
||||
import { ORPCError } from "@orpc/client";
|
||||
|
||||
import type { AppErrorCode } from "@sofa/api/errors";
|
||||
import { i18n } from "@sofa/i18n";
|
||||
|
||||
export function getAppErrorCode(error: unknown): AppErrorCode | null {
|
||||
if (
|
||||
@@ -15,37 +18,46 @@ export function getAppErrorCode(error: unknown): AppErrorCode | null {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Must be called inside a render/hook body with the `t` from useLingui()
|
||||
export function appErrorMessages(
|
||||
t: (template: TemplateStringsArray, ...args: unknown[]) => string,
|
||||
): Record<AppErrorCode, string> {
|
||||
return {
|
||||
TITLE_NOT_FOUND: t`Title not found`,
|
||||
PERSON_NOT_FOUND: t`Person not found`,
|
||||
INTEGRATION_NOT_FOUND: t`Integration not found`,
|
||||
BACKUP_NOT_FOUND: t`Backup not found`,
|
||||
BACKUP_DELETE_FAILED: t`Failed to delete backup`,
|
||||
BACKUP_RESTORE_FAILED: t`Backup restoration failed`,
|
||||
JOB_NOT_FOUND: t`Job not found`,
|
||||
TMDB_NOT_CONFIGURED: t`TMDB API key is not configured`,
|
||||
IMPORT_INVALID_FILE: t`Invalid import file`,
|
||||
IMPORT_PAYLOAD_TOO_LARGE: t`Import payload is too large`,
|
||||
IMPORT_ALREADY_RUNNING: t`An import is already in progress`,
|
||||
IMPORT_CANNOT_CANCEL: t`This import cannot be cancelled`,
|
||||
REGISTRATION_CLOSED: t`Registration is currently closed`,
|
||||
EXPORT_FAILED: t`Failed to export data`,
|
||||
};
|
||||
const APP_ERROR_MESSAGES: Record<AppErrorCode, MessageDescriptor> = {
|
||||
TITLE_NOT_FOUND: msg`Title not found`,
|
||||
PERSON_NOT_FOUND: msg`Person not found`,
|
||||
INTEGRATION_NOT_FOUND: msg`Integration not found`,
|
||||
BACKUP_NOT_FOUND: msg`Backup not found`,
|
||||
BACKUP_DELETE_FAILED: msg`Failed to delete backup`,
|
||||
BACKUP_RESTORE_FAILED: msg`Backup restoration failed`,
|
||||
JOB_NOT_FOUND: msg`Job not found`,
|
||||
TMDB_NOT_CONFIGURED: msg`TMDB API key is not configured`,
|
||||
IMPORT_INVALID_FILE: msg`Invalid import file`,
|
||||
IMPORT_PAYLOAD_TOO_LARGE: msg`Import payload is too large`,
|
||||
IMPORT_ALREADY_RUNNING: msg`An import is already in progress`,
|
||||
IMPORT_CANNOT_CANCEL: msg`This import cannot be cancelled`,
|
||||
REGISTRATION_CLOSED: msg`Registration is currently closed`,
|
||||
EXPORT_FAILED: msg`Failed to export data`,
|
||||
};
|
||||
|
||||
/** Localized message for an oRPC error carrying an app error code, else `fallback`. */
|
||||
export function getErrorMessage(error: unknown, fallback?: string): string {
|
||||
const code = getAppErrorCode(error);
|
||||
if (code && code in APP_ERROR_MESSAGES) return i18n._(APP_ERROR_MESSAGES[code]);
|
||||
return fallback ?? i18n._(msg`Something went wrong`);
|
||||
}
|
||||
|
||||
export function getErrorMessage(
|
||||
error: unknown,
|
||||
t: (template: TemplateStringsArray, ...args: unknown[]) => string,
|
||||
fallback?: string,
|
||||
const AUTH_ERROR_MESSAGES: Record<string, MessageDescriptor> = {
|
||||
INVALID_EMAIL_OR_PASSWORD: msg`Invalid email or password`,
|
||||
USER_ALREADY_EXISTS: msg`An account with this email already exists`,
|
||||
USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: msg`An account with this email already exists`,
|
||||
PASSWORD_TOO_SHORT: msg`Password is too short`,
|
||||
PASSWORD_TOO_LONG: msg`Password is too long`,
|
||||
INVALID_EMAIL: msg`Enter a valid email address`,
|
||||
REGISTRATION_CLOSED: msg`Registration is currently closed`,
|
||||
};
|
||||
|
||||
/** Localized message for a Better Auth client error (never its raw `message`). */
|
||||
export function getAuthErrorMessage(
|
||||
error: { code?: string; status?: number } | null | undefined,
|
||||
fallback: string,
|
||||
): string {
|
||||
const code = getAppErrorCode(error);
|
||||
if (code) {
|
||||
const messages = appErrorMessages(t);
|
||||
if (code in messages) return messages[code as keyof typeof messages];
|
||||
}
|
||||
return fallback ?? t`Something went wrong`;
|
||||
if (error?.status === 429) return i18n._(msg`Too many attempts. Wait a moment and try again.`);
|
||||
const descriptor = error?.code ? AUTH_ERROR_MESSAGES[error.code] : undefined;
|
||||
return descriptor ? i18n._(descriptor) : fallback;
|
||||
}
|
||||
@@ -103,6 +103,7 @@ export const auth = betterAuth({
|
||||
if (!open) {
|
||||
throw new APIError("FORBIDDEN", {
|
||||
message: "Registration is currently closed",
|
||||
code: "REGISTRATION_CLOSED",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "هل لديك حساب بالفعل؟ تسجيل الدخول"
|
||||
msgid "Also available on"
|
||||
msgstr "متاح أيضاً على"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "تم إنشاء النسخة الاحتياطية"
|
||||
msgid "Backup deleted"
|
||||
msgstr "تم حذف النسخة الاحتياطية"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "جدول النسخ الاحتياطي"
|
||||
@@ -784,6 +804,10 @@ msgstr "جارٍ الاتصال..."
|
||||
msgid "Connecting…"
|
||||
msgstr "جارٍ الاتصال…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "تصنيف المحتوى"
|
||||
@@ -833,6 +857,10 @@ msgstr "تعذّر تحميل تفاصيل العنوان"
|
||||
msgid "Could not load your library"
|
||||
msgstr "تعذّر تحميل مكتبتك"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "الإبلاغ عن الأعطال"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "الإنجليزية"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "أدخل عنوان بريد إلكتروني صحيح"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "فشل تغيير كلمة المرور"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "فشل الاتصال"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "فشل الاتصال"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "فشل إنشاء الحساب"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "فشل إنشاء النسخة الاحتياطية"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "فشل حذف النسخة الاحتياطية"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "فشل حذف النسخة الاحتياطية"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "فشل قطع الاتصال بـ {label}"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "فشل تحميل إعدادات جدول النسخ الاحتياطي"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "فشل تحديث إعداد النسخ الاحتياطي المجدول"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "فشل تحديث الإعداد"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "فشل تحديث الحالة"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "لا يزال الاستيراد قيد التشغيل في الخلفي
|
||||
msgid "Import options"
|
||||
msgstr "خيارات الاستيراد"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "استيراد بيانات Sofa"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "ثبّت <0>إضافة Webhook<1/></0> من كتالوج إضافات Je
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "ثبّت إضافة Webhook من كتالوج إضافات Jellyfin"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "التكاملات"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "رمز غير صالح"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "اليابانية"
|
||||
msgid "Job"
|
||||
msgstr "المهمة"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "الاحتفاظ بـ"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "كلمة المرور"
|
||||
msgid "Password is required"
|
||||
msgstr "كلمة المرور مطلوبة"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "يجب أن تكون كلمة المرور مكونة من 8 أحرف على الأقل"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "شخص"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "الشخص غير موجود"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "التسجيل مغلق"
|
||||
msgid "Registration failed"
|
||||
msgstr "فشل التسجيل"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "تطبيق تتبع الأفلام والمسلسلات ذاتي الا
|
||||
msgid "Server"
|
||||
msgstr "الخادم"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "صحة الخادم"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "سيقوم Sofa تلقائياً بتسجيل الأفلام والحل
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "حدث خطأ ما"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "التبديل إلى {name}"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "يسري بعد إعادة تشغيل التطبيق"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "الصفحة التي تبحث عنها غير موجودة."
|
||||
@@ -3095,6 +3187,15 @@ msgstr "العنوان الذي تبحث عنه غير موجود أو ربما
|
||||
msgid "then"
|
||||
msgstr "ثم"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "العنوان أ-ي"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "العنوان غير موجود"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "ستتم إضافة العناوين الموجودة في قائمة م
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "ستتم إضافة العناوين الموجودة في قائمة مشاهدتك على Sofa تلقائياً للتنزيل عندما يستطلع Sonarr هذه القائمة (كل 6 ساعات افتراضياً)"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "تبديل الشريط الجانبي"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "تتبع ما تشاهده. اعرف ما هو القادم.<0/>مكتبتك، بياناتك، قواعدك."
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "Bereits ein Konto? Anmelden"
|
||||
msgid "Also available on"
|
||||
msgstr "Auch verfügbar auf"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "Backup erstellt"
|
||||
msgid "Backup deleted"
|
||||
msgstr "Backup gelöscht"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "Backup-Zeitplan"
|
||||
@@ -784,6 +804,10 @@ msgstr "Verbinde..."
|
||||
msgid "Connecting…"
|
||||
msgstr "Verbinde..."
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "Altersfreigabe"
|
||||
@@ -833,6 +857,10 @@ msgstr "Titeldetails konnten nicht geladen werden"
|
||||
msgid "Could not load your library"
|
||||
msgstr "Bibliothek konnte nicht geladen werden"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "Absturzberichte"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "Englisch"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "Gib eine gültige E-Mail-Adresse ein"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "Passwort konnte nicht geändert werden"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "Verbindung fehlgeschlagen"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "Verbindung fehlgeschlagen"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "Konto konnte nicht erstellt werden"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "Backup konnte nicht erstellt werden"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "Backup konnte nicht gelöscht werden"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "Backup konnte nicht gelöscht werden"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "{label} konnte nicht getrennt werden"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "Backup-Zeitplaneinstellungen konnten nicht geladen werden"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "Einstellung für geplante Backups konnte nicht aktualisiert werden"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "Einstellung konnte nicht aktualisiert werden"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "Status konnte nicht aktualisiert werden"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "Import läuft noch im Hintergrund. Komm später wieder."
|
||||
msgid "Import options"
|
||||
msgstr "Importoptionen"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "Sofa-Daten importieren"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "<0>Webhook-Plugin<1/></0> aus dem Jellyfin-Plugin-Katalog installieren"
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "Webhook-Plugin aus dem Jellyfin-Plugin-Katalog installieren"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "Integrationen"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "Ungültiger Token"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "Japanisch"
|
||||
msgid "Job"
|
||||
msgstr "Aufgabe"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "Behalte"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "Passwort"
|
||||
msgid "Password is required"
|
||||
msgstr "Passwort ist erforderlich"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "Passwort muss mindestens 8 Zeichen lang sein"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "Person nicht gefunden"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "Registrierung geschlossen"
|
||||
msgid "Registration failed"
|
||||
msgstr "Registrierung fehlgeschlagen"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "Selbstgehosteter Film- & Serien-Tracker"
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "Server-Status"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "Sofa protokolliert Filme und Episoden automatisch, wenn du sie zu Ende g
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "Etwas ist schiefgelaufen"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "Zu {name} wechseln"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "Tritt nach einem Neustart der App in Kraft"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "Die gesuchte Seite existiert nicht."
|
||||
@@ -3095,6 +3187,15 @@ msgstr "Der gesuchte Titel existiert nicht oder wurde möglicherweise aus der Da
|
||||
msgid "then"
|
||||
msgstr "dann"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "Titel A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "Titel nicht gefunden"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "Titel auf deiner Sofa-Merkliste werden automatisch zum Download hinzugef
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "Titel auf deiner Sofa-Merkliste werden automatisch zum Download hinzugefügt, wenn Sonarr diese Liste abruft (standardmäßig alle 6 Stunden)"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "Seitenleiste umschalten"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "Verfolge, was du schaust. Wisse, was als Nächstes kommt.<0/>Deine Bibliothek, deine Daten, deine Regeln."
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr ""
|
||||
msgid "Also available on"
|
||||
msgstr "Also available on"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr "An account with this email already exists"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr "An import is already in progress"
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr ""
|
||||
msgid "Backup deleted"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr "Backup not found"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr "Backup restoration failed"
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr ""
|
||||
@@ -784,6 +804,10 @@ msgstr ""
|
||||
msgid "Connecting…"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr "Connection timed out. The server might be down or unreachable."
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "Content rating"
|
||||
@@ -833,6 +857,10 @@ msgstr "Could not load title details"
|
||||
msgid "Could not load your library"
|
||||
msgstr "Could not load your library"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr "Could not reach the server. Check your connection and the URL."
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "Crash reporting"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "English"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "Enter a valid email address"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr ""
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr ""
|
||||
msgid "Failed to create backup"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr ""
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr ""
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr "Failed to export data"
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "Failed to load backup schedule settings"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr ""
|
||||
@@ -1571,6 +1611,11 @@ msgstr ""
|
||||
msgid "Import options"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr "Import payload is too large"
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "Import Sofa data"
|
||||
@@ -1627,11 +1672,26 @@ msgstr ""
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr "Integration not found"
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr "Invalid email or password"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr "Invalid import file"
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr ""
|
||||
@@ -1648,6 +1708,11 @@ msgstr "Japanese"
|
||||
msgid "Job"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr "Job not found"
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "Keeping"
|
||||
@@ -2231,6 +2296,16 @@ msgstr ""
|
||||
msgid "Password is required"
|
||||
msgstr "Password is required"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr "Password is too long"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr "Password is too short"
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "Password must be at least 8 characters"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr ""
|
||||
@@ -2548,6 +2625,11 @@ msgstr ""
|
||||
msgid "Registration failed"
|
||||
msgstr "Registration failed"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr "Registration is currently closed"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr ""
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr "Server found but reporting an issue. Try again in a moment."
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr ""
|
||||
@@ -2972,9 +3058,11 @@ msgstr ""
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr ""
|
||||
@@ -3079,6 +3167,10 @@ msgstr "Switch to {name}"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "Takes effect after restarting the app"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr "That URL doesn't look right. Include the full server address."
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr ""
|
||||
@@ -3095,6 +3187,15 @@ msgstr ""
|
||||
msgid "then"
|
||||
msgstr "then"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr "This import cannot be cancelled"
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "Title A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr ""
|
||||
@@ -3217,6 +3320,11 @@ msgstr ""
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr "TMDB API key is not configured"
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "Toggle Sidebar"
|
||||
msgid "Tomorrow"
|
||||
msgstr "Tomorrow"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr "Too many attempts. Wait a moment and try again."
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr ""
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "¿Ya tienes una cuenta? Inicia sesión"
|
||||
msgid "Also available on"
|
||||
msgstr "También disponible en"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "Copia de seguridad creada"
|
||||
msgid "Backup deleted"
|
||||
msgstr "Copia de seguridad eliminada"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "Programación de copias de seguridad"
|
||||
@@ -784,6 +804,10 @@ msgstr "Conectando..."
|
||||
msgid "Connecting…"
|
||||
msgstr "Conectando…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "Clasificación de contenido"
|
||||
@@ -833,6 +857,10 @@ msgstr "No se pudieron cargar los detalles del título"
|
||||
msgid "Could not load your library"
|
||||
msgstr "No se pudo cargar tu biblioteca"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "Informe de fallos"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "Inglés"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "Introduce una dirección de correo electrónico válida"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "Error al cambiar la contraseña"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "Error al conectar"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "Error al conectar"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "Error al crear la cuenta"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "Error al crear la copia de seguridad"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "Error al eliminar la copia de seguridad"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "Error al eliminar la copia de seguridad"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "Error al desconectar {label}"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "No se pudieron cargar los ajustes del programa de copias de seguridad"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "Error al actualizar el ajuste de copia de seguridad programada"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "Error al actualizar el ajuste"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "Error al actualizar el estado"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "La importación sigue en curso en segundo plano. Vuelve más tarde."
|
||||
msgid "Import options"
|
||||
msgstr "Opciones de importación"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "Importar datos de Sofa"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "Instala el <0>plugin Webhook<1/></0> del catálogo de plugins de Jellyfi
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "Instala el plugin Webhook del catálogo de plugins de Jellyfin"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "Integraciones"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "Token inválido"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "Japonés"
|
||||
msgid "Job"
|
||||
msgstr "Tarea"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "Conservando"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "Contraseña"
|
||||
msgid "Password is required"
|
||||
msgstr "La contraseña es obligatoria"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "La contraseña debe tener al menos 8 caracteres"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "Persona"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "Persona no encontrada"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "Registro cerrado"
|
||||
msgid "Registration failed"
|
||||
msgstr "Error al registrarse"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "Seguimiento de películas y series autoalojado"
|
||||
msgid "Server"
|
||||
msgstr "Servidor"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "Estado del servidor"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "Sofa registrará automáticamente películas y episodios cuando termines
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "Algo salió mal"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "Cambiar a {name}"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "Tendrá efecto tras reiniciar la app"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "La página que buscas no existe."
|
||||
@@ -3095,6 +3187,15 @@ msgstr "El título que buscas no existe o puede haber sido eliminado de la base
|
||||
msgid "then"
|
||||
msgstr "luego"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "Título A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "Título no encontrado"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "Los títulos de tu lista de Sofa se añadirán automáticamente para des
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "Los títulos de tu lista de Sofa se añadirán automáticamente para descargar cuando Sonarr consulte esta lista (cada 6 horas por defecto)"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "Alternar barra lateral"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "Registra lo que ves. Sabe qué viene después.<0/>Tu biblioteca, tus datos, tus reglas."
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "Vous avez déjà un compte ? Se connecter"
|
||||
msgid "Also available on"
|
||||
msgstr "Aussi disponible sur"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "Sauvegarde créée"
|
||||
msgid "Backup deleted"
|
||||
msgstr "Sauvegarde supprimée"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "Planning de sauvegarde"
|
||||
@@ -784,6 +804,10 @@ msgstr "Connexion..."
|
||||
msgid "Connecting…"
|
||||
msgstr "Connexion…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "Classification du contenu"
|
||||
@@ -833,6 +857,10 @@ msgstr "Impossible de charger les détails du titre"
|
||||
msgid "Could not load your library"
|
||||
msgstr "Impossible de charger votre bibliothèque"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "Signalement de plantages"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "Anglais"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "Entrez une adresse e-mail valide"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "Échec du changement de mot de passe"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "Échec de la connexion"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "Échec de la connexion"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "Échec de la création du compte"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "Échec de la création de la sauvegarde"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "Échec de la suppression de la sauvegarde"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "Échec de la suppression de la sauvegarde"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "Échec de la déconnexion de {label}"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "Impossible de charger les paramètres de planification des sauvegardes"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "Échec de la mise à jour du paramètre de sauvegarde planifiée"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "Échec de la mise à jour du paramètre"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "Échec de la mise à jour du statut"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "L'importation est toujours en cours en arrière-plan. Revenez plus tard.
|
||||
msgid "Import options"
|
||||
msgstr "Options d'importation"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "Importer des données Sofa"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "Installez le <0>plugin Webhook<1/></0> depuis le catalogue de plugins de
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "Installez le plugin Webhook depuis le catalogue de plugins de Jellyfin"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "Intégrations"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "Jeton invalide"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "Japonais"
|
||||
msgid "Job"
|
||||
msgstr "Tâche"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "Conservation"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "Mot de passe"
|
||||
msgid "Password is required"
|
||||
msgstr "Le mot de passe est requis"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "Le mot de passe doit comporter au moins 8 caractères"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "Personne"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "Personne introuvable"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "Inscriptions fermées"
|
||||
msgid "Registration failed"
|
||||
msgstr "Inscription échouée"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "Suivi de films et séries auto-hébergé"
|
||||
msgid "Server"
|
||||
msgstr "Serveur"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "État du serveur"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "Sofa enregistrera automatiquement les films et épisodes lorsque vous au
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "Une erreur s'est produite"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "Passer à {name}"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "Prend effet après le redémarrage de l'application"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "La page que vous recherchez n'existe pas."
|
||||
@@ -3095,6 +3187,15 @@ msgstr "Le titre que vous recherchez n'existe pas ou a peut-être été supprim
|
||||
msgid "then"
|
||||
msgstr "puis"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "Titre A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "Titre introuvable"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "Les titres de votre liste de suivi Sofa seront automatiquement ajoutés
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "Les titres de votre liste de suivi Sofa seront automatiquement ajoutés au téléchargement lorsque Sonarr interroge cette liste (toutes les 6 heures par défaut)"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "Basculer la barre latérale"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "Suivez ce que vous regardez. Sachez ce qui vient ensuite.<0/>Votre bibliothèque, vos données, vos règles."
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "כבר יש לך חשבון? התחבר"
|
||||
msgid "Also available on"
|
||||
msgstr "זמין גם ב"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "גיבוי נוצר"
|
||||
msgid "Backup deleted"
|
||||
msgstr "גיבוי נמחק"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "לוח זמנים לגיבוי"
|
||||
@@ -784,6 +804,10 @@ msgstr "מתחבר..."
|
||||
msgid "Connecting…"
|
||||
msgstr "מתחבר…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "דירוג תוכן"
|
||||
@@ -833,6 +857,10 @@ msgstr "לא ניתן לטעון את פרטי הכותרת"
|
||||
msgid "Could not load your library"
|
||||
msgstr "לא ניתן לטעון את הספרייה שלך"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "דיווח על קריסות"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "אנגלית"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "הזן כתובת דוא\"ל תקינה"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "שינוי הסיסמה נכשל"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "ההתחברות נכשלה"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "ההתחברות נכשלה"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "יצירת החשבון נכשלה"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "יצירת הגיבוי נכשלה"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "מחיקת הגיבוי נכשלה"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "מחיקת הגיבוי נכשלה"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "ניתוק {label} נכשל"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "טעינת הגדרות תזמון הגיבוי נכשלה"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "עדכון הגדרת הגיבוי המתוזמן נכשל"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "עדכון ההגדרה נכשל"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "עדכון הסטטוס נכשל"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "הייבוא עדיין רץ ברקע. בדוק שוב מאוחר יות
|
||||
msgid "Import options"
|
||||
msgstr "אפשרויות ייבוא"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "ייבא נתוני Sofa"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "התקן את <0>תוסף ה-Webhook<1/></0> מקטלוג התוספים
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "התקן את תוסף ה-Webhook מקטלוג התוספים של Jellyfin"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "אינטגרציות"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "טוקן לא תקין"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "יפנית"
|
||||
msgid "Job"
|
||||
msgstr "משימה"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "שומר"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "סיסמה"
|
||||
msgid "Password is required"
|
||||
msgstr "סיסמה נדרשת"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "הסיסמה חייבת להיות לפחות 8 תווים"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "אדם"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "האדם לא נמצא"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "ההרשמה סגורה"
|
||||
msgid "Registration failed"
|
||||
msgstr "ההרשמה נכשלה"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "מעקב סרטים וטלוויזיה לאירוח עצמי"
|
||||
msgid "Server"
|
||||
msgstr "שרת"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "תקינות השרת"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "Sofa יתעד אוטומטית סרטים ופרקים כשתסיים ל
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "משהו השתבש"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "עבור ל-{name}"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "ייכנס לתוקף לאחר הפעלה מחדש של האפליקציה"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "הדף שחיפשת אינו קיים."
|
||||
@@ -3095,6 +3187,15 @@ msgstr "הכותר שחיפשת אינו קיים או שמא הוסר ממסד
|
||||
msgid "then"
|
||||
msgstr "ואז"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "כותרת א-ת"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "כותר לא נמצא"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "כותרים ברשימת הצפייה שלך ב-Sofa יתווספו א
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "כותרים ברשימת הצפייה שלך ב-Sofa יתווספו אוטומטית להורדה כאשר Sonarr סוקר רשימה זו (כל 6 שעות כברירת מחדל)"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "החלף סרגל צד"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "עקוב אחרי מה שאתה צופה. דע מה הבא.<0/>הספרייה שלך, הנתונים שלך, הכללים שלך."
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "Hai già un account? Accedi"
|
||||
msgid "Also available on"
|
||||
msgstr "Disponibile anche su"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "Backup creato"
|
||||
msgid "Backup deleted"
|
||||
msgstr "Backup eliminato"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "Pianificazione backup"
|
||||
@@ -784,6 +804,10 @@ msgstr "Connessione in corso..."
|
||||
msgid "Connecting…"
|
||||
msgstr "Connessione in corso…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "Classificazione contenuti"
|
||||
@@ -833,6 +857,10 @@ msgstr "Impossibile caricare i dettagli del titolo"
|
||||
msgid "Could not load your library"
|
||||
msgstr "Impossibile caricare la tua libreria"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "Segnalazione degli arresti anomali"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "Inglese"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "Inserisci un indirizzo email valido"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "Impossibile cambiare la password"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "Impossibile connettersi"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "Impossibile connettersi"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "Impossibile creare l'account"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "Impossibile creare il backup"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "Impossibile eliminare il backup"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "Impossibile eliminare il backup"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "Impossibile disconnettere {label}"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "Impossibile caricare le impostazioni di pianificazione del backup"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "Impossibile aggiornare l'impostazione di backup pianificato"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "Impossibile aggiornare l'impostazione"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "Impossibile aggiornare lo stato"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "L'importazione è ancora in corso in background. Ricontrolla più tardi.
|
||||
msgid "Import options"
|
||||
msgstr "Opzioni di importazione"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "Importa dati Sofa"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "Installa il <0>plugin Webhook<1/></0> dal catalogo plugin di Jellyfin"
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "Installa il plugin Webhook dal catalogo plugin di Jellyfin"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "Integrazioni"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "Token non valido"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "Giapponese"
|
||||
msgid "Job"
|
||||
msgstr "Attività"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "Conservazione"
|
||||
@@ -2231,6 +2296,16 @@ msgstr ""
|
||||
msgid "Password is required"
|
||||
msgstr "La password è obbligatoria"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "La password deve contenere almeno 8 caratteri"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "Persona"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "Persona non trovata"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "Registrazione chiusa"
|
||||
msgid "Registration failed"
|
||||
msgstr "Registrazione non riuscita"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "Tracker film & TV self-hosted"
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "Salute del server"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "Sofa registrerà automaticamente film ed episodi quando finisci di guard
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "Qualcosa è andato storto"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "Passa a {name}"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "Avrà effetto dopo il riavvio dell'app"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "La pagina che stai cercando non esiste."
|
||||
@@ -3095,6 +3187,15 @@ msgstr "Il titolo che stai cercando non esiste o potrebbe essere stato rimosso d
|
||||
msgid "then"
|
||||
msgstr "poi"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "Titolo A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "Titolo non trovato"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "I titoli nella tua watchlist di Sofa verranno aggiunti automaticamente p
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "I titoli nella tua watchlist di Sofa verranno aggiunti automaticamente per il download quando Sonarr interroga questa lista (ogni 6 ore per impostazione predefinita)"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "Attiva/disattiva barra laterale"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "Traccia cosa guardi. Sai cosa ti aspetta.<0/>La tua libreria, i tuoi dati, le tue regole."
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "すでにアカウントをお持ちの方はサインイン"
|
||||
msgid "Also available on"
|
||||
msgstr "他でも視聴可能"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "バックアップを作成しました"
|
||||
msgid "Backup deleted"
|
||||
msgstr "バックアップを削除しました"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "バックアップスケジュール"
|
||||
@@ -784,6 +804,10 @@ msgstr "接続中..."
|
||||
msgid "Connecting…"
|
||||
msgstr "接続中…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "コンテンツレーティング"
|
||||
@@ -833,6 +857,10 @@ msgstr "タイトルの詳細を読み込めませんでした"
|
||||
msgid "Could not load your library"
|
||||
msgstr "ライブラリを読み込めませんでした"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "クラッシュレポート"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "英語"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "有効なメールアドレスを入力してください"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "パスワードの変更に失敗しました"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "接続に失敗しました"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "接続に失敗しました"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "アカウントの作成に失敗しました"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "バックアップの作成に失敗しました"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "バックアップの削除に失敗しました"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "バックアップの削除に失敗しました"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "{label}の切断に失敗しました"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "バックアップスケジュール設定を読み込めませんでした"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "スケジュールバックアップ設定の更新に失敗しました"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "設定の更新に失敗しました"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "ステータスの更新に失敗しました"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "インポートはバックグラウンドで実行中です。後で確
|
||||
msgid "Import options"
|
||||
msgstr "インポートオプション"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "Sofaデータをインポート"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "Jellyfinのプラグインカタログから<0>Webhookプラグイン<1/
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "JellyfinのプラグインカタログからWebhookプラグインをインストールする"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "連携"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "無効なトークン"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "日本語"
|
||||
msgid "Job"
|
||||
msgstr "ジョブ"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "保持中"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "パスワード"
|
||||
msgid "Password is required"
|
||||
msgstr "パスワードは必須です"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "パスワードは8文字以上必要です"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "人物"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "人物が見つかりません"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "登録が締め切られています"
|
||||
msgid "Registration failed"
|
||||
msgstr "登録に失敗しました"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "セルフホスト型映画・TVトラッカー"
|
||||
msgid "Server"
|
||||
msgstr "サーバー"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "サーバーヘルス"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "視聴完了後、Sofaが自動的に映画やエピソードを記録
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "エラーが発生しました"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "{name}に切り替え"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "アプリを再起動後に反映されます"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "お探しのページは存在しません。"
|
||||
@@ -3095,6 +3187,15 @@ msgstr "お探しのタイトルは存在しないか、データベースから
|
||||
msgid "then"
|
||||
msgstr "次に"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "タイトル A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "タイトルが見つかりません"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "SofaのウォッチリストにあるタイトルはRadarrがこのリ
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "SofaのウォッチリストにあるタイトルはSonarrがこのリストをポーリングする際(デフォルトでは6時間ごと)に自動的にダウンロード対象として追加されます"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "サイドバーを切り替え"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "視聴を記録。次を把握。<0/>あなたのライブラリ、あなたのデータ、あなたのルール。"
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "이미 계정이 있으신가요? 로그인"
|
||||
msgid "Also available on"
|
||||
msgstr "다음에서도 이용 가능"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "백업 생성됨"
|
||||
msgid "Backup deleted"
|
||||
msgstr "백업 삭제됨"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "백업 일정"
|
||||
@@ -784,6 +804,10 @@ msgstr "연결 중..."
|
||||
msgid "Connecting…"
|
||||
msgstr "연결 중…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "콘텐츠 등급"
|
||||
@@ -833,6 +857,10 @@ msgstr "제목 정보를 불러올 수 없습니다"
|
||||
msgid "Could not load your library"
|
||||
msgstr "라이브러리를 불러올 수 없습니다"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "충돌 보고"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "영어"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "유효한 이메일 주소를 입력하세요"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "비밀번호 변경 실패"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "연결 실패"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "연결 실패"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "계정 생성 실패"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "백업 생성 실패"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "백업 삭제 실패"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "백업 삭제 실패"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "{label} 연결 해제 실패"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "백업 일정 설정을 불러오지 못했습니다"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "예약 백업 설정 업데이트 실패"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "설정 업데이트 실패"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "상태 업데이트 실패"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "가져오기가 백그라운드에서 계속 실행 중입니다. 나중
|
||||
msgid "Import options"
|
||||
msgstr "가져오기 옵션"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "Sofa 데이터 가져오기"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "Jellyfin 플러그인 카탈로그에서 <0>Webhook 플러그인<1/></0>
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "Jellyfin 플러그인 카탈로그에서 Webhook 플러그인을 설치하세요"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "통합"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "유효하지 않은 토큰"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "일본어"
|
||||
msgid "Job"
|
||||
msgstr "작업"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "유지 중"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "비밀번호"
|
||||
msgid "Password is required"
|
||||
msgstr "비밀번호를 입력해주세요"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "비밀번호는 최소 8자 이상이어야 합니다"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "인물"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "인물을 찾을 수 없습니다"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "회원가입 비활성화됨"
|
||||
msgid "Registration failed"
|
||||
msgstr "회원가입 실패"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "자체 호스팅 영화 & TV 트래커"
|
||||
msgid "Server"
|
||||
msgstr "서버"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "서버 상태"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "시청을 완료하면 Sofa가 자동으로 영화와 에피소드를
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "오류가 발생했습니다"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "{name}(으)로 전환"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "앱을 다시 시작하면 적용됩니다"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "찾으시는 페이지가 존재하지 않습니다."
|
||||
@@ -3095,6 +3187,15 @@ msgstr "찾으시는 타이틀이 존재하지 않거나 데이터베이스에
|
||||
msgid "then"
|
||||
msgstr "그 다음"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "제목 A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "타이틀을 찾을 수 없습니다"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "Sofa 관심 목록의 타이틀은 Radarr가 이 목록을 폴링할 때
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "Sofa 관심 목록의 타이틀은 Sonarr가 이 목록을 폴링할 때(기본값: 6시간마다) 자동으로 다운로드에 추가됩니다"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "사이드바 토글"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "시청하는 것을 기록하세요. 다음이 무엇인지 알 수 있습니다.<0/>내 라이브러리, 내 데이터, 내 규칙."
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "Al een account? Aanmelden"
|
||||
msgid "Also available on"
|
||||
msgstr "Ook beschikbaar op"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "Back-up aangemaakt"
|
||||
msgid "Backup deleted"
|
||||
msgstr "Back-up verwijderd"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "Back-upschema"
|
||||
@@ -784,6 +804,10 @@ msgstr "Verbinden..."
|
||||
msgid "Connecting…"
|
||||
msgstr "Verbinden…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "Leeftijdsclassificatie"
|
||||
@@ -833,6 +857,10 @@ msgstr "Kon titeldetails niet laden"
|
||||
msgid "Could not load your library"
|
||||
msgstr "Kon je bibliotheek niet laden"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "Crashrapportage"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "Engels"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "Voer een geldig e-mailadres in"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "Wachtwoord wijzigen mislukt"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "Verbinden mislukt"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "Verbinden mislukt"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "Account aanmaken mislukt"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "Back-up aanmaken mislukt"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "Back-up verwijderen mislukt"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "Back-up verwijderen mislukt"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "{label} loskoppelen mislukt"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "Kon instellingen voor back-upplanning niet laden"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "Instelling voor geplande back-up bijwerken mislukt"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "Instelling bijwerken mislukt"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "Status bijwerken mislukt"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "Importeren loopt nog op de achtergrond. Controleer het later."
|
||||
msgid "Import options"
|
||||
msgstr "Importopties"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "Sofa-gegevens importeren"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "Installeer de <0>Webhook-plugin<1/></0> uit de plugincatalogus van Jelly
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "Installeer de Webhook-plugin uit de plugincatalogus van Jellyfin"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "Integraties"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "Ongeldig token"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "Japans"
|
||||
msgid "Job"
|
||||
msgstr "Taak"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "Bewaren"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "Wachtwoord"
|
||||
msgid "Password is required"
|
||||
msgstr "Wachtwoord is vereist"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "Wachtwoord moet minimaal 8 tekens bevatten"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "Persoon"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "Persoon niet gevonden"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "Registratie gesloten"
|
||||
msgid "Registration failed"
|
||||
msgstr "Registratie mislukt"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "Zelfgehoste film- & tv-tracker"
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "Serverstatus"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "Sofa registreert automatisch films en afleveringen wanneer je klaar bent
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "Er is iets misgegaan"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "Overschakelen naar {name}"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "Van kracht na het herstarten van de app"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "De pagina die je zoekt bestaat niet."
|
||||
@@ -3095,6 +3187,15 @@ msgstr "De titel die je zoekt bestaat niet of is mogelijk verwijderd uit de data
|
||||
msgid "then"
|
||||
msgstr "dan"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "Titel A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "Titel niet gevonden"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "Titels op je Sofa-watchlist worden automatisch toegevoegd voor download
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "Titels op je Sofa-watchlist worden automatisch toegevoegd voor download wanneer Sonarr deze lijst opvraagt (standaard elke 6 uur)"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "Zijbalk in-/uitschakelen"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "Houd bij wat je kijkt. Weet wat er volgt.<0/>Jouw bibliotheek, jouw data, jouw regels."
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "Já tem uma conta? Entrar"
|
||||
msgid "Also available on"
|
||||
msgstr "Também disponível em"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "Backup criado"
|
||||
msgid "Backup deleted"
|
||||
msgstr "Backup excluído"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "Agendamento de backup"
|
||||
@@ -784,6 +804,10 @@ msgstr "Conectando..."
|
||||
msgid "Connecting…"
|
||||
msgstr "Conectando…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "Classificação etária"
|
||||
@@ -833,6 +857,10 @@ msgstr "Não foi possível carregar os detalhes do título"
|
||||
msgid "Could not load your library"
|
||||
msgstr "Não foi possível carregar a sua biblioteca"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "Relatório de falhas"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "Inglês"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "Introduza um endereço de email válido"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "Falha ao alterar senha"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "Falha ao conectar"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "Falha ao conectar"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "Falha ao criar conta"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "Falha ao criar backup"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "Falha ao excluir backup"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "Falha ao excluir backup"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "Falha ao desconectar {label}"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "Falha ao carregar as definições de agendamento de backup"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "Falha ao atualizar configuração de backup agendado"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "Falha ao atualizar configuração"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "Falha ao atualizar status"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "A importação ainda está em andamento em segundo plano. Verifique mais
|
||||
msgid "Import options"
|
||||
msgstr "Opções de importação"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "Importar dados do Sofa"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "Instale o <0>plugin Webhook<1/></0> do catálogo de plugins do Jellyfin"
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "Instale o plugin Webhook do catálogo de plugins do Jellyfin"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "Integrações"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "Token inválido"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "Japonês"
|
||||
msgid "Job"
|
||||
msgstr "Tarefa"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "A manter"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "Senha"
|
||||
msgid "Password is required"
|
||||
msgstr "A palavra-passe é obrigatória"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "A palavra-passe deve ter pelo menos 8 caracteres"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "Pessoa"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "Pessoa não encontrada"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "Registro Fechado"
|
||||
msgid "Registration failed"
|
||||
msgstr "Falha no registo"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "Rastreador de filmes e séries auto-hospedado"
|
||||
msgid "Server"
|
||||
msgstr "Servidor"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "Saúde do Servidor"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "O Sofa registrará automaticamente filmes e episódios quando você term
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "Algo deu errado"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "Mudar para {name}"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "Entra em vigor após reiniciar a aplicação"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "A página que você está procurando não existe."
|
||||
@@ -3095,6 +3187,15 @@ msgstr "O título que você está procurando não existe ou pode ter sido removi
|
||||
msgid "then"
|
||||
msgstr "depois"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "Título A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "Título não encontrado"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "Os títulos na sua lista de desejos do Sofa serão automaticamente adici
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "Os títulos na sua lista de desejos do Sofa serão automaticamente adicionados para download quando o Sonarr verificar esta lista (a cada 6 horas por padrão)"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "Alternar barra lateral"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "Acompanhe o que você assiste. Saiba o que vem a seguir.<0/>Sua biblioteca, seus dados, suas regras."
|
||||
|
||||
+115
-2
@@ -410,6 +410,16 @@ msgstr "已有账户?立即登录"
|
||||
msgid "Also available on"
|
||||
msgstr "同样在以下平台可用"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An account with this email already exists"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "An import is already in progress"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "An unexpected error occurred while loading this page. You can try again or head back to the dashboard."
|
||||
@@ -512,6 +522,16 @@ msgstr "备份已创建"
|
||||
msgid "Backup deleted"
|
||||
msgstr "备份已删除"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Backup restoration failed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Backup schedule"
|
||||
msgstr "备份计划"
|
||||
@@ -784,6 +804,10 @@ msgstr "连接中..."
|
||||
msgid "Connecting…"
|
||||
msgstr "连接中…"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Connection timed out. The server might be down or unreachable."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/library/library-filters.tsx
|
||||
msgid "Content rating"
|
||||
msgstr "内容分级"
|
||||
@@ -833,6 +857,10 @@ msgstr "无法加载标题详情"
|
||||
msgid "Could not load your library"
|
||||
msgstr "无法加载您的媒体库"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Could not reach the server. Check your connection and the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Crash reporting"
|
||||
msgstr "崩溃报告"
|
||||
@@ -1067,6 +1095,8 @@ msgstr "英文"
|
||||
|
||||
#: apps/native/src/app/(auth)/login.tsx
|
||||
#: apps/native/src/app/(auth)/register.tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Enter a valid email address"
|
||||
msgstr "请输入有效的电子邮件地址"
|
||||
|
||||
@@ -1200,8 +1230,8 @@ msgid "Failed to change password"
|
||||
msgstr "修改密码失败"
|
||||
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "Failed to connect"
|
||||
msgstr "连接失败"
|
||||
#~ msgid "Failed to connect"
|
||||
#~ msgstr "连接失败"
|
||||
|
||||
#: apps/native/src/components/settings/integration-card.tsx
|
||||
#: apps/web/src/components/settings/integration-card.tsx
|
||||
@@ -1216,7 +1246,9 @@ msgstr "创建账户失败"
|
||||
msgid "Failed to create backup"
|
||||
msgstr "创建备份失败"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/settings/backup-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to delete backup"
|
||||
msgstr "删除备份失败"
|
||||
|
||||
@@ -1225,6 +1257,11 @@ msgstr "删除备份失败"
|
||||
msgid "Failed to disconnect {label}"
|
||||
msgstr "断开 {label} 连接失败"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Failed to export data"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Failed to load backup schedule settings"
|
||||
msgstr "加载备份计划设置失败"
|
||||
@@ -1358,11 +1395,14 @@ msgid "Failed to update scheduled backup setting"
|
||||
msgstr "更新定时备份设置失败"
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/streaming-services-section.tsx
|
||||
#: apps/web/src/components/settings/update-check-section.tsx
|
||||
#: apps/web/src/routes/_app/onboarding.tsx
|
||||
msgid "Failed to update setting"
|
||||
msgstr "更新设置失败"
|
||||
|
||||
#: apps/native/src/hooks/use-title-actions.ts
|
||||
#: apps/web/src/components/title-card.tsx
|
||||
#: apps/web/src/components/titles/use-title-actions.ts
|
||||
msgid "Failed to update status"
|
||||
msgstr "更新状态失败"
|
||||
@@ -1571,6 +1611,11 @@ msgstr "导入仍在后台运行,请稍后再来查看。"
|
||||
msgid "Import options"
|
||||
msgstr "导入选项"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Import payload is too large"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
msgid "Import Sofa data"
|
||||
msgstr "导入 Sofa 数据"
|
||||
@@ -1627,11 +1672,26 @@ msgstr "从 Jellyfin 的插件目录安装 <0>Webhook 插件<1/></0>"
|
||||
msgid "Install the Webhook plugin from Jellyfin's plugin catalog"
|
||||
msgstr "从 Jellyfin 的插件目录安装 Webhook 插件"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Integration not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/settings/integrations-section.tsx
|
||||
#: apps/web/src/routes/_app/settings.tsx
|
||||
msgid "Integrations"
|
||||
msgstr "集成"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid email or password"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Invalid import file"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/system-health-section.tsx
|
||||
msgid "Invalid token"
|
||||
msgstr "无效令牌"
|
||||
@@ -1648,6 +1708,11 @@ msgstr "日语"
|
||||
msgid "Job"
|
||||
msgstr "任务"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Job not found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/backup-schedule-section.tsx
|
||||
msgid "Keeping"
|
||||
msgstr "保留"
|
||||
@@ -2231,6 +2296,16 @@ msgstr "密码"
|
||||
msgid "Password is required"
|
||||
msgstr "密码不能为空"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too long"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Password is too short"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
msgid "Password must be at least 8 characters"
|
||||
msgstr "密码至少需要 8 个字符"
|
||||
@@ -2269,6 +2344,8 @@ msgid "Person"
|
||||
msgstr "人物"
|
||||
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/people.$id.tsx
|
||||
msgid "Person not found"
|
||||
msgstr "未找到该人物"
|
||||
@@ -2548,6 +2625,11 @@ msgstr "注册已关闭"
|
||||
msgid "Registration failed"
|
||||
msgstr "注册失败"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Registration is currently closed"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
#: apps/web/src/components/settings/registration-section.tsx
|
||||
msgid "Registration opened"
|
||||
@@ -2832,6 +2914,10 @@ msgstr "自托管电影和电视剧追踪器"
|
||||
msgid "Server"
|
||||
msgstr "服务器"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "Server found but reporting an issue. Try again in a moment."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/(tabs)/(settings)/index.tsx
|
||||
msgid "Server Health"
|
||||
msgstr "服务器健康状态"
|
||||
@@ -2972,9 +3058,11 @@ msgstr "当您看完电影或剧集时,Sofa 将自动记录"
|
||||
#: apps/native/src/app/change-password.tsx
|
||||
#: apps/native/src/app/person/[id].tsx
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/components/auth-form.tsx
|
||||
#: apps/web/src/components/route-error.tsx
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/__root.tsx
|
||||
msgid "Something went wrong"
|
||||
msgstr "出现错误"
|
||||
@@ -3079,6 +3167,10 @@ msgstr "切换到 {name}"
|
||||
msgid "Takes effect after restarting the app"
|
||||
msgstr "重启应用后生效"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "That URL doesn't look right. Include the full server address."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/app/+not-found.tsx
|
||||
msgid "The page you're looking for doesn't exist."
|
||||
msgstr "您访问的页面不存在。"
|
||||
@@ -3095,6 +3187,15 @@ msgstr "您查找的内容不存在,或已从数据库中删除。"
|
||||
msgid "then"
|
||||
msgstr "然后"
|
||||
|
||||
#: apps/native/src/app/(auth)/server-url.tsx
|
||||
msgid "This doesn't appear to be a Sofa server. Double-check the URL."
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "This import cannot be cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/settings/account-section.tsx
|
||||
#: apps/web/src/components/settings/imports-section.tsx
|
||||
msgid "This may take a few minutes for large libraries. Please don't close this tab."
|
||||
@@ -3198,6 +3299,8 @@ msgid "Title A-Z"
|
||||
msgstr "标题 A-Z"
|
||||
|
||||
#: apps/native/src/app/title/[id].tsx
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
#: apps/web/src/routes/_app/titles.$id.tsx
|
||||
msgid "Title not found"
|
||||
msgstr "未找到内容"
|
||||
@@ -3217,6 +3320,11 @@ msgstr "您 Sofa 待看列表中的内容将在 Radarr 轮询此列表时自动
|
||||
msgid "Titles on your Sofa watchlist will be automatically added for download when Sonarr polls this list (every 6 hours by default)"
|
||||
msgstr "您 Sofa 待看列表中的内容将在 Sonarr 轮询此列表时自动添加到下载队列(默认每 6 小时一次)"
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "TMDB API key is not configured"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/components/library/sort-menu.tsx
|
||||
#: apps/web/src/components/library/library-toolbar.tsx
|
||||
msgid "TMDB Rating"
|
||||
@@ -3262,6 +3370,11 @@ msgstr "切换侧边栏"
|
||||
msgid "Tomorrow"
|
||||
msgstr ""
|
||||
|
||||
#: apps/native/src/lib/error-messages.ts
|
||||
#: apps/web/src/lib/error-messages.ts
|
||||
msgid "Too many attempts. Wait a moment and try again."
|
||||
msgstr ""
|
||||
|
||||
#: apps/web/src/components/landing-page.tsx
|
||||
msgid "Track what you watch. Know what's next.<0/>Your library, your data, your rules."
|
||||
msgstr "记录您的观看。掌握下一步。<0/>您的媒体库,您的数据,您的规则。"
|
||||
|
||||
Reference in new issue
Block a user