mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-07-18 10:14:17 +01:00
Compare commits
5 Commits
fix/skip-b
...
fix/nav-do
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f03d7af3c | ||
|
|
1f7d24d63f | ||
|
|
7b15b15af3 | ||
|
|
f8b8cddbfa | ||
|
|
3bd7507462 |
@@ -71,7 +71,7 @@ export default function AppearanceHideLibrariesPage() {
|
|||||||
))}
|
))}
|
||||||
</ListGroup>
|
</ListGroup>
|
||||||
<Text className='px-4 text-xs text-neutral-500 mt-1'>
|
<Text className='px-4 text-xs text-neutral-500 mt-1'>
|
||||||
{t("home.settings.other.select_libraries_you_want_to_hide")}
|
{t("home.settings.other.select_liraries_you_want_to_hide")}
|
||||||
</Text>
|
</Text>
|
||||||
</DisabledSetting>
|
</DisabledSetting>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ export default function HideLibrariesPage() {
|
|||||||
))}
|
))}
|
||||||
</ListGroup>
|
</ListGroup>
|
||||||
<Text className='px-4 text-xs text-neutral-500 mt-1'>
|
<Text className='px-4 text-xs text-neutral-500 mt-1'>
|
||||||
{t("home.settings.other.select_libraries_you_want_to_hide")}
|
{t("home.settings.other.select_liraries_you_want_to_hide")}
|
||||||
</Text>
|
</Text>
|
||||||
</DisabledSetting>
|
</DisabledSetting>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import {
|
|||||||
RepeatMode,
|
RepeatMode,
|
||||||
} from "@jellyfin/sdk/lib/generated-client";
|
} from "@jellyfin/sdk/lib/generated-client";
|
||||||
import {
|
import {
|
||||||
getMediaInfoApi,
|
|
||||||
getPlaystateApi,
|
getPlaystateApi,
|
||||||
getUserLibraryApi,
|
getUserLibraryApi,
|
||||||
} from "@jellyfin/sdk/lib/utils/api";
|
} from "@jellyfin/sdk/lib/utils/api";
|
||||||
@@ -311,37 +310,6 @@ export default function DirectPlayerPage() {
|
|||||||
// Ref to store the stream fetch function for refreshing subtitle tracks
|
// Ref to store the stream fetch function for refreshing subtitle tracks
|
||||||
const refetchStreamRef = useRef<(() => Promise<Stream | null>) | null>(null);
|
const refetchStreamRef = useRef<(() => Promise<Stream | null>) | null>(null);
|
||||||
|
|
||||||
// Live TV opens a server-side live stream via autoOpenLiveStream. If it is
|
|
||||||
// never closed, Jellyfin's M3U tuner limit fills up and every channel then
|
|
||||||
// fails with "simultaneous stream limit has been reached". reportPlaybackStopped
|
|
||||||
// handles a clean stop, but a channel switch (the player re-fetches in place)
|
|
||||||
// or an unmount after an error bypass it, so track the open live stream and
|
|
||||||
// release it on those paths too.
|
|
||||||
const apiRef = useRef(api);
|
|
||||||
useEffect(() => {
|
|
||||||
apiRef.current = api;
|
|
||||||
}, [api]);
|
|
||||||
|
|
||||||
const releaseLiveStream = useCallback(
|
|
||||||
(liveStreamId: string | null) => {
|
|
||||||
if (!liveStreamId || !apiRef.current || offline) return;
|
|
||||||
// Best effort: a failed close must not break teardown, and the slot is
|
|
||||||
// also freed by the server's reap as a backstop.
|
|
||||||
getMediaInfoApi(apiRef.current)
|
|
||||||
.closeLiveStream({ liveStreamId })
|
|
||||||
.catch(() => {});
|
|
||||||
},
|
|
||||||
[offline],
|
|
||||||
);
|
|
||||||
|
|
||||||
// The effect cleanup releases the live stream both when it changes (channel
|
|
||||||
// switch, which re-runs the effect) and when the player unmounts, so no
|
|
||||||
// manual previous-id tracking is needed.
|
|
||||||
useEffect(() => {
|
|
||||||
const liveStreamId = stream?.mediaSource?.LiveStreamId ?? null;
|
|
||||||
return () => releaseLiveStream(liveStreamId);
|
|
||||||
}, [stream?.mediaSource?.LiveStreamId, releaseLiveStream]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchStreamData = async (): Promise<Stream | null> => {
|
const fetchStreamData = async (): Promise<Stream | null> => {
|
||||||
setStreamStatus({ isLoading: true, isError: false });
|
setStreamStatus({ isLoading: true, isError: false });
|
||||||
@@ -477,12 +445,6 @@ export default function DirectPlayerPage() {
|
|||||||
MediaSourceId: mediaSourceId,
|
MediaSourceId: mediaSourceId,
|
||||||
PositionTicks: currentTimeInTicks,
|
PositionTicks: currentTimeInTicks,
|
||||||
PlaySessionId: stream.sessionId,
|
PlaySessionId: stream.sessionId,
|
||||||
// Release the server-side live stream (and its tuner slot) on stop.
|
|
||||||
// Jellyfin only closes a live stream opened via autoOpenLiveStream when
|
|
||||||
// the stop report carries its LiveStreamId; without it the stream leaks
|
|
||||||
// and Live TV eventually fails for everyone with "M3U simultaneous
|
|
||||||
// stream limit has been reached". Undefined for non-live items (no-op).
|
|
||||||
LiveStreamId: stream.mediaSource?.LiveStreamId ?? undefined,
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}, [api, item, mediaSourceId, stream, progress, offline]);
|
}, [api, item, mediaSourceId, stream, progress, offline]);
|
||||||
@@ -1356,7 +1318,7 @@ export default function DirectPlayerPage() {
|
|||||||
console.error("Video Error:", e.nativeEvent);
|
console.error("Video Error:", e.nativeEvent);
|
||||||
Alert.alert(
|
Alert.alert(
|
||||||
t("player.error"),
|
t("player.error"),
|
||||||
t("player.an_error_occurred_while_playing_the_video"),
|
t("player.an_error_occured_while_playing_the_video"),
|
||||||
);
|
);
|
||||||
writeToLog("ERROR", "Video Error", e.nativeEvent);
|
writeToLog("ERROR", "Video Error", e.nativeEvent);
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -85,8 +85,7 @@ configureReanimatedLogger({
|
|||||||
if (!Platform.isTV) {
|
if (!Platform.isTV) {
|
||||||
Notifications.setNotificationHandler({
|
Notifications.setNotificationHandler({
|
||||||
handleNotification: async () => ({
|
handleNotification: async () => ({
|
||||||
shouldShowBanner: true,
|
shouldShowAlert: true,
|
||||||
shouldShowList: true,
|
|
||||||
shouldPlaySound: true,
|
shouldPlaySound: true,
|
||||||
shouldSetBadge: false,
|
shouldSetBadge: false,
|
||||||
}),
|
}),
|
||||||
@@ -351,12 +350,9 @@ function Layout() {
|
|||||||
notificationListener.current =
|
notificationListener.current =
|
||||||
Notifications?.addNotificationReceivedListener(
|
Notifications?.addNotificationReceivedListener(
|
||||||
(notification: Notification) => {
|
(notification: Notification) => {
|
||||||
// Log only the title — serializing the whole notification touches
|
|
||||||
// the deprecated dataString getter (deprecation warning) and dumps
|
|
||||||
// noisy payloads into the console.
|
|
||||||
console.log(
|
console.log(
|
||||||
"Notification received while app running:",
|
"Notification received while app running",
|
||||||
notification.request.content.title,
|
notification,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -35,10 +35,8 @@ const ContinueWatchingPoster: React.FC<ContinueWatchingPosterProps> = ({
|
|||||||
return `${api?.basePath}/Items/${item.Id}/Images/Primary?fillHeight=389&quality=80`;
|
return `${api?.basePath}/Items/${item.Id}/Images/Primary?fillHeight=389&quality=80`;
|
||||||
}
|
}
|
||||||
if (item.Type === "Episode") {
|
if (item.Type === "Episode") {
|
||||||
// Matched pair: the parent that owns the Thumb (ParentThumbItemId), not the
|
if (item.ParentBackdropItemId && item.ParentThumbImageTag) {
|
||||||
// backdrop owner — otherwise the Thumb tag is requested on the wrong item → black.
|
return `${api?.basePath}/Items/${item.ParentBackdropItemId}/Images/Thumb?fillHeight=389&quality=80&tag=${item.ParentThumbImageTag}`;
|
||||||
if (item.ParentThumbItemId && item.ParentThumbImageTag) {
|
|
||||||
return `${api?.basePath}/Items/${item.ParentThumbItemId}/Images/Thumb?fillHeight=389&quality=80&tag=${item.ParentThumbImageTag}`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${api?.basePath}/Items/${item.Id}/Images/Primary?fillHeight=389&quality=80`;
|
return `${api?.basePath}/Items/${item.Id}/Images/Primary?fillHeight=389&quality=80`;
|
||||||
@@ -63,8 +61,7 @@ const ContinueWatchingPoster: React.FC<ContinueWatchingPosterProps> = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
return `${api?.basePath}/Items/${item.Id}/Images/Primary?fillHeight=389&quality=80`;
|
return `${api?.basePath}/Items/${item.Id}/Images/Primary?fillHeight=389&quality=80`;
|
||||||
// useEpisodePoster in deps so flipping the prop re-computes the URL live.
|
}, [item]);
|
||||||
}, [api, item, useEpisodePoster]);
|
|
||||||
|
|
||||||
if (!url)
|
if (!url)
|
||||||
return <View className='aspect-video border border-neutral-800 w-44' />;
|
return <View className='aspect-video border border-neutral-800 w-44' />;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Ionicons } from "@expo/vector-icons";
|
import { Ionicons } from "@expo/vector-icons";
|
||||||
import { BlurView, type BlurViewProps } from "expo-blur";
|
import { BlurView, type BlurViewProps } from "expo-blur";
|
||||||
import { Platform } from "react-native";
|
import { Keyboard, Platform } from "react-native";
|
||||||
import { Pressable, type PressableProps } from "react-native-gesture-handler";
|
import { Pressable, type PressableProps } from "react-native-gesture-handler";
|
||||||
import useRouter from "@/hooks/useAppRouter";
|
import useRouter from "@/hooks/useAppRouter";
|
||||||
|
|
||||||
@@ -16,10 +16,17 @@ export const HeaderBackButton: React.FC<Props> = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
|
// Dismiss the keyboard before navigating — otherwise it lingers over the
|
||||||
|
// previous screen (e.g. leaving the Jellyseerr login while typing).
|
||||||
|
const handleBack = () => {
|
||||||
|
Keyboard.dismiss();
|
||||||
|
router.back();
|
||||||
|
};
|
||||||
|
|
||||||
if (Platform.OS === "ios") {
|
if (Platform.OS === "ios") {
|
||||||
return (
|
return (
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={() => router.back()}
|
onPress={handleBack}
|
||||||
className='flex items-center justify-center w-9 h-9'
|
className='flex items-center justify-center w-9 h-9'
|
||||||
{...pressableProps}
|
{...pressableProps}
|
||||||
>
|
>
|
||||||
@@ -30,7 +37,7 @@ export const HeaderBackButton: React.FC<Props> = ({
|
|||||||
|
|
||||||
if (background === "transparent" && Platform.OS !== "android")
|
if (background === "transparent" && Platform.OS !== "android")
|
||||||
return (
|
return (
|
||||||
<Pressable onPress={() => router.back()} {...pressableProps}>
|
<Pressable onPress={handleBack} {...pressableProps}>
|
||||||
<BlurView
|
<BlurView
|
||||||
{...props}
|
{...props}
|
||||||
intensity={100}
|
intensity={100}
|
||||||
@@ -48,7 +55,7 @@ export const HeaderBackButton: React.FC<Props> = ({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Pressable
|
<Pressable
|
||||||
onPress={() => router.back()}
|
onPress={handleBack}
|
||||||
className=' rounded-full p-2'
|
className=' rounded-full p-2'
|
||||||
{...pressableProps}
|
{...pressableProps}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -16,12 +16,9 @@ export const SeriesCard: React.FC<{ items: BaseItemDto[] }> = ({ items }) => {
|
|||||||
const { showActionSheetWithOptions } = useActionSheet();
|
const { showActionSheetWithOptions } = useActionSheet();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
// Keyed on SeriesId so recycled FlashList cells re-read the correct poster
|
|
||||||
// instead of freezing the first-rendered series' image (empty deps bug).
|
|
||||||
const base64Image = useMemo(() => {
|
const base64Image = useMemo(() => {
|
||||||
const seriesId = items[0]?.SeriesId;
|
return storage.getString(items[0].SeriesId!);
|
||||||
return seriesId ? storage.getString(seriesId) : undefined;
|
}, []);
|
||||||
}, [items[0]?.SeriesId]);
|
|
||||||
|
|
||||||
const deleteSeries = useCallback(
|
const deleteSeries = useCallback(
|
||||||
async () =>
|
async () =>
|
||||||
|
|||||||
@@ -65,11 +65,10 @@ const HeroCard: React.FC<HeroCardProps> = React.memo(
|
|||||||
const posterUrl = useMemo(() => {
|
const posterUrl = useMemo(() => {
|
||||||
if (!api) return null;
|
if (!api) return null;
|
||||||
|
|
||||||
// For episodes, always use series thumb.
|
// For episodes, always use series thumb
|
||||||
// Matched pair: ParentThumbItemId owns the Thumb tag, not ParentBackdropItemId.
|
|
||||||
if (item.Type === "Episode") {
|
if (item.Type === "Episode") {
|
||||||
if (item.ParentThumbItemId && item.ParentThumbImageTag) {
|
if (item.ParentThumbImageTag) {
|
||||||
return `${api.basePath}/Items/${item.ParentThumbItemId}/Images/Thumb?fillHeight=400&quality=80&tag=${item.ParentThumbImageTag}`;
|
return `${api.basePath}/Items/${item.ParentBackdropItemId}/Images/Thumb?fillHeight=400&quality=80&tag=${item.ParentThumbImageTag}`;
|
||||||
}
|
}
|
||||||
if (item.SeriesId) {
|
if (item.SeriesId) {
|
||||||
return `${api.basePath}/Items/${item.SeriesId}/Images/Thumb?fillHeight=400&quality=80`;
|
return `${api.basePath}/Items/${item.SeriesId}/Images/Thumb?fillHeight=400&quality=80`;
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ export const Login: React.FC = () => {
|
|||||||
} else {
|
} else {
|
||||||
Alert.alert(
|
Alert.alert(
|
||||||
t("login.connection_failed"),
|
t("login.connection_failed"),
|
||||||
t("login.an_unexpected_error_occurred"),
|
t("login.an_unexpected_error_occured"),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -437,7 +437,7 @@ export const TVLogin: React.FC = () => {
|
|||||||
} else {
|
} else {
|
||||||
Alert.alert(
|
Alert.alert(
|
||||||
t("login.connection_failed"),
|
t("login.connection_failed"),
|
||||||
t("login.an_unexpected_error_occurred"),
|
t("login.an_unexpected_error_occured"),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
@@ -499,7 +499,7 @@ export const TVLogin: React.FC = () => {
|
|||||||
const message =
|
const message =
|
||||||
error instanceof Error
|
error instanceof Error
|
||||||
? error.message
|
? error.message
|
||||||
: t("login.an_unexpected_error_occurred");
|
: t("login.an_unexpected_error_occured");
|
||||||
Alert.alert(t("login.connection_failed"), message);
|
Alert.alert(t("login.connection_failed"), message);
|
||||||
goToQRScreen();
|
goToQRScreen();
|
||||||
} finally {
|
} finally {
|
||||||
@@ -523,7 +523,7 @@ export const TVLogin: React.FC = () => {
|
|||||||
} else {
|
} else {
|
||||||
Alert.alert(
|
Alert.alert(
|
||||||
t("login.connection_failed"),
|
t("login.connection_failed"),
|
||||||
t("login.an_unexpected_error_occurred"),
|
t("login.an_unexpected_error_occured"),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
@@ -768,7 +768,7 @@ export const TVLogin: React.FC = () => {
|
|||||||
const message =
|
const message =
|
||||||
error instanceof Error
|
error instanceof Error
|
||||||
? error.message
|
? error.message
|
||||||
: t("login.an_unexpected_error_occurred");
|
: t("login.an_unexpected_error_occured");
|
||||||
Alert.alert(t("login.connection_failed"), message);
|
Alert.alert(t("login.connection_failed"), message);
|
||||||
goToQRScreen();
|
goToQRScreen();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export const QuickConnect: React.FC<Props> = ({ ...props }) => {
|
|||||||
successHapticFeedback();
|
successHapticFeedback();
|
||||||
Alert.alert(
|
Alert.alert(
|
||||||
t("home.settings.quick_connect.success"),
|
t("home.settings.quick_connect.success"),
|
||||||
t("home.settings.quick_connect.quick_connect_authorized"),
|
t("home.settings.quick_connect.quick_connect_autorized"),
|
||||||
);
|
);
|
||||||
setQuickConnectCode(undefined);
|
setQuickConnectCode(undefined);
|
||||||
bottomSheetModalRef?.current?.close();
|
bottomSheetModalRef?.current?.close();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
import { useQuery } from "@tanstack/react-query";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Alert, Platform, View } from "react-native";
|
import { Platform, View } from "react-native";
|
||||||
import { toast } from "sonner-native";
|
import { toast } from "sonner-native";
|
||||||
import { Text } from "@/components/common/Text";
|
import { Text } from "@/components/common/Text";
|
||||||
import { Colors } from "@/constants/Colors";
|
import { Colors } from "@/constants/Colors";
|
||||||
@@ -12,7 +12,6 @@ import { ListItem } from "../list/ListItem";
|
|||||||
export const StorageSettings = () => {
|
export const StorageSettings = () => {
|
||||||
const { deleteAllFiles, appSizeUsage } = useDownload();
|
const { deleteAllFiles, appSizeUsage } = useDownload();
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const queryClient = useQueryClient();
|
|
||||||
const successHapticFeedback = useHaptic("success");
|
const successHapticFeedback = useHaptic("success");
|
||||||
const errorHapticFeedback = useHaptic("error");
|
const errorHapticFeedback = useHaptic("error");
|
||||||
|
|
||||||
@@ -28,38 +27,16 @@ export const StorageSettings = () => {
|
|||||||
used: (app.total - app.remaining) / app.total,
|
used: (app.total - app.remaining) / app.total,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
// Keep the bar moving while a download is writing to disk.
|
|
||||||
refetchInterval: 10 * 1000,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const onDeleteClicked = () => {
|
const onDeleteClicked = async () => {
|
||||||
Alert.alert(
|
try {
|
||||||
t("home.settings.storage.delete_all_downloaded_files_confirm"),
|
await deleteAllFiles();
|
||||||
t("home.settings.storage.delete_all_downloaded_files_confirm_desc"),
|
successHapticFeedback();
|
||||||
[
|
} catch (_e) {
|
||||||
{
|
errorHapticFeedback();
|
||||||
text: t("common.cancel"),
|
toast.error(t("home.settings.toasts.error_deleting_files"));
|
||||||
style: "cancel",
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
text: t("common.ok"),
|
|
||||||
style: "destructive",
|
|
||||||
onPress: async () => {
|
|
||||||
try {
|
|
||||||
await deleteAllFiles();
|
|
||||||
successHapticFeedback();
|
|
||||||
} catch (_e) {
|
|
||||||
errorHapticFeedback();
|
|
||||||
toast.error(t("home.settings.toasts.error_deleting_files"));
|
|
||||||
} finally {
|
|
||||||
// Reflect the freed space immediately instead of waiting for
|
|
||||||
// the next poll.
|
|
||||||
queryClient.invalidateQueries({ queryKey: ["appSize"] });
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const calculatePercentage = (value: number, total: number) => {
|
const calculatePercentage = (value: number, total: number) => {
|
||||||
|
|||||||
@@ -139,10 +139,9 @@ export const TVPosterCard: React.FC<TVPosterCardProps> = ({
|
|||||||
if (orientation === "horizontal") {
|
if (orientation === "horizontal") {
|
||||||
// Episode: prefer series thumb image for consistent look (like hero section)
|
// Episode: prefer series thumb image for consistent look (like hero section)
|
||||||
if (item.Type === "Episode") {
|
if (item.Type === "Episode") {
|
||||||
// First try parent/series thumb (horizontal series artwork).
|
// First try parent/series thumb (horizontal series artwork)
|
||||||
// Matched pair: ParentThumbItemId owns the Thumb tag, not ParentBackdropItemId.
|
if (item.ParentBackdropItemId && item.ParentThumbImageTag) {
|
||||||
if (item.ParentThumbItemId && item.ParentThumbImageTag) {
|
return `${api.basePath}/Items/${item.ParentBackdropItemId}/Images/Thumb?fillHeight=700&quality=80&tag=${item.ParentThumbImageTag}`;
|
||||||
return `${api.basePath}/Items/${item.ParentThumbItemId}/Images/Thumb?fillHeight=700&quality=80&tag=${item.ParentThumbImageTag}`;
|
|
||||||
}
|
}
|
||||||
// Fall back to episode's own primary image
|
// Fall back to episode's own primary image
|
||||||
if (item.ImageTags?.Primary) {
|
if (item.ImageTags?.Primary) {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import { useControlsSafeAreaInsets } from "@/hooks/useControlsSafeAreaInsets";
|
|||||||
import { useSettings } from "@/utils/atoms/settings";
|
import { useSettings } from "@/utils/atoms/settings";
|
||||||
import { chapterMarkers, chapterNameAt } from "@/utils/chapters";
|
import { chapterMarkers, chapterNameAt } from "@/utils/chapters";
|
||||||
import NextEpisodeCountDownButton from "./NextEpisodeCountDownButton";
|
import NextEpisodeCountDownButton from "./NextEpisodeCountDownButton";
|
||||||
|
import SkipButton from "./SkipButton";
|
||||||
import { TimeDisplay } from "./TimeDisplay";
|
import { TimeDisplay } from "./TimeDisplay";
|
||||||
import { TrickplayBubble } from "./TrickplayBubble";
|
import { TrickplayBubble } from "./TrickplayBubble";
|
||||||
|
|
||||||
@@ -33,8 +34,11 @@ interface BottomControlsProps {
|
|||||||
showRemoteBubble: boolean;
|
showRemoteBubble: boolean;
|
||||||
currentTime: number;
|
currentTime: number;
|
||||||
remainingTime: number;
|
remainingTime: number;
|
||||||
|
showSkipButton: boolean;
|
||||||
showSkipCreditButton: boolean;
|
showSkipCreditButton: boolean;
|
||||||
hasContentAfterCredits: boolean;
|
hasContentAfterCredits: boolean;
|
||||||
|
skipIntro: () => void;
|
||||||
|
skipCredit: () => void;
|
||||||
nextItem?: BaseItemDto | null;
|
nextItem?: BaseItemDto | null;
|
||||||
handleNextEpisodeAutoPlay: () => void;
|
handleNextEpisodeAutoPlay: () => void;
|
||||||
handleNextEpisodeManual: () => void;
|
handleNextEpisodeManual: () => void;
|
||||||
@@ -82,8 +86,11 @@ export const BottomControls: FC<BottomControlsProps> = ({
|
|||||||
showRemoteBubble,
|
showRemoteBubble,
|
||||||
currentTime,
|
currentTime,
|
||||||
remainingTime,
|
remainingTime,
|
||||||
|
showSkipButton,
|
||||||
showSkipCreditButton,
|
showSkipCreditButton,
|
||||||
hasContentAfterCredits,
|
hasContentAfterCredits,
|
||||||
|
skipIntro,
|
||||||
|
skipCredit,
|
||||||
nextItem,
|
nextItem,
|
||||||
handleNextEpisodeAutoPlay,
|
handleNextEpisodeAutoPlay,
|
||||||
handleNextEpisodeManual,
|
handleNextEpisodeManual,
|
||||||
@@ -173,11 +180,21 @@ export const BottomControls: FC<BottomControlsProps> = ({
|
|||||||
) : null}
|
) : null}
|
||||||
</View>
|
</View>
|
||||||
<View className='flex flex-row items-center space-x-2 shrink-0'>
|
<View className='flex flex-row items-center space-x-2 shrink-0'>
|
||||||
{/* Smart Skip Credits behavior (drives Next Episode timing):
|
<SkipButton
|
||||||
- "Skip Credits" button itself is rendered in SkipSegmentOverlay
|
showButton={showSkipButton}
|
||||||
(independent of controls visibility).
|
onPress={skipIntro}
|
||||||
- "Next Episode" shows when credits extend to video end AND a next
|
buttonText='Skip Intro'
|
||||||
episode exists. */}
|
/>
|
||||||
|
{/* Smart Skip Credits behavior:
|
||||||
|
- Show "Skip Credits" if there's content after credits OR no next episode
|
||||||
|
- Show "Next Episode" if credits extend to video end AND next episode exists */}
|
||||||
|
<SkipButton
|
||||||
|
showButton={
|
||||||
|
showSkipCreditButton && (hasContentAfterCredits || !nextItem)
|
||||||
|
}
|
||||||
|
onPress={skipCredit}
|
||||||
|
buttonText='Skip Credits'
|
||||||
|
/>
|
||||||
{settings.autoPlayNextEpisode !== false &&
|
{settings.autoPlayNextEpisode !== false &&
|
||||||
(settings.maxAutoPlayEpisodeCount.value === -1 ||
|
(settings.maxAutoPlayEpisodeCount.value === -1 ||
|
||||||
settings.autoPlayEpisodeCount <
|
settings.autoPlayEpisodeCount <
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ import { useRemoteControl } from "./hooks/useRemoteControl";
|
|||||||
import { useVideoNavigation } from "./hooks/useVideoNavigation";
|
import { useVideoNavigation } from "./hooks/useVideoNavigation";
|
||||||
import { useVideoSlider } from "./hooks/useVideoSlider";
|
import { useVideoSlider } from "./hooks/useVideoSlider";
|
||||||
import { useVideoTime } from "./hooks/useVideoTime";
|
import { useVideoTime } from "./hooks/useVideoTime";
|
||||||
import { SkipSegmentOverlay } from "./SkipSegmentOverlay";
|
|
||||||
import { TechnicalInfoOverlay } from "./TechnicalInfoOverlay";
|
import { TechnicalInfoOverlay } from "./TechnicalInfoOverlay";
|
||||||
import { useControlsTimeout } from "./useControlsTimeout";
|
import { useControlsTimeout } from "./useControlsTimeout";
|
||||||
import { PlaybackSpeedScope } from "./utils/playback-speed-settings";
|
import { PlaybackSpeedScope } from "./utils/playback-speed-settings";
|
||||||
@@ -339,16 +338,6 @@ export const Controls: FC<Props> = ({
|
|||||||
maxMs,
|
maxMs,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Whether the "Next Episode" countdown will actually be rendered. The Skip
|
|
||||||
// Credits button yields to it only when this is true; if autoplay is
|
|
||||||
// disabled or its episode limit is reached, Skip Credits must stay available
|
|
||||||
// (mirrors the NextEpisodeCountDownButton mount gate in BottomControls).
|
|
||||||
const willShowNextEpisode =
|
|
||||||
!!nextItem &&
|
|
||||||
settings.autoPlayNextEpisode !== false &&
|
|
||||||
(settings.maxAutoPlayEpisodeCount.value === -1 ||
|
|
||||||
settings.autoPlayEpisodeCount < settings.maxAutoPlayEpisodeCount.value);
|
|
||||||
|
|
||||||
const goToItemCommon = useCallback(
|
const goToItemCommon = useCallback(
|
||||||
(item: BaseItemDto) => {
|
(item: BaseItemDto) => {
|
||||||
if (!item || !settings) {
|
if (!item || !settings) {
|
||||||
@@ -581,8 +570,11 @@ export const Controls: FC<Props> = ({
|
|||||||
showRemoteBubble={showRemoteBubble}
|
showRemoteBubble={showRemoteBubble}
|
||||||
currentTime={currentTime}
|
currentTime={currentTime}
|
||||||
remainingTime={remainingTime}
|
remainingTime={remainingTime}
|
||||||
|
showSkipButton={showSkipButton}
|
||||||
showSkipCreditButton={showSkipCreditButton}
|
showSkipCreditButton={showSkipCreditButton}
|
||||||
hasContentAfterCredits={hasContentAfterCredits}
|
hasContentAfterCredits={hasContentAfterCredits}
|
||||||
|
skipIntro={skipIntro}
|
||||||
|
skipCredit={skipCredit}
|
||||||
nextItem={nextItem}
|
nextItem={nextItem}
|
||||||
handleNextEpisodeAutoPlay={handleNextEpisodeAutoPlay}
|
handleNextEpisodeAutoPlay={handleNextEpisodeAutoPlay}
|
||||||
handleNextEpisodeManual={handleNextEpisodeManual}
|
handleNextEpisodeManual={handleNextEpisodeManual}
|
||||||
@@ -602,17 +594,6 @@ export const Controls: FC<Props> = ({
|
|||||||
time={isSliding || showRemoteBubble ? time : remoteTime}
|
time={isSliding || showRemoteBubble ? time : remoteTime}
|
||||||
/>
|
/>
|
||||||
</Animated.View>
|
</Animated.View>
|
||||||
{/* Skip Intro / Skip Credits float independently of the controls so
|
|
||||||
they're visible (and tappable) without summoning the controls. */}
|
|
||||||
<SkipSegmentOverlay
|
|
||||||
showSkipButton={showSkipButton}
|
|
||||||
showSkipCreditButton={showSkipCreditButton}
|
|
||||||
hasContentAfterCredits={hasContentAfterCredits}
|
|
||||||
willShowNextEpisode={willShowNextEpisode}
|
|
||||||
skipIntro={skipIntro}
|
|
||||||
skipCredit={skipCredit}
|
|
||||||
controlsVisible={showControls}
|
|
||||||
/>
|
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{settings.maxAutoPlayEpisodeCount.value !== -1 && (
|
{settings.maxAutoPlayEpisodeCount.value !== -1 && (
|
||||||
|
|||||||
@@ -1,125 +0,0 @@
|
|||||||
import type { FC } from "react";
|
|
||||||
import { useEffect, useState } from "react";
|
|
||||||
import { StyleSheet } from "react-native";
|
|
||||||
import Animated, {
|
|
||||||
Easing,
|
|
||||||
useAnimatedStyle,
|
|
||||||
useSharedValue,
|
|
||||||
withTiming,
|
|
||||||
} from "react-native-reanimated";
|
|
||||||
import { useControlsSafeAreaInsets } from "@/hooks/useControlsSafeAreaInsets";
|
|
||||||
import SkipButton from "./SkipButton";
|
|
||||||
|
|
||||||
interface Props {
|
|
||||||
showSkipButton: boolean;
|
|
||||||
showSkipCreditButton: boolean;
|
|
||||||
hasContentAfterCredits: boolean;
|
|
||||||
willShowNextEpisode: boolean;
|
|
||||||
skipIntro: () => void;
|
|
||||||
skipCredit: () => void;
|
|
||||||
controlsVisible: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Offsets are relative to the safe-area insets so they hold in both portrait
|
|
||||||
// and landscape (the insets move with the notch / home indicator).
|
|
||||||
//
|
|
||||||
// Hidden: low, far-right — nothing else is drawn there, this is the familiar
|
|
||||||
// spot and was working fine.
|
|
||||||
// Visible: shifted up (clear of the horizontal progress bar) and left (clear
|
|
||||||
// of the chapters icon), while staying below the vertical volume
|
|
||||||
// slider which sits at the vertical middle of the screen.
|
|
||||||
const HIDDEN_BOTTOM = 24;
|
|
||||||
const HIDDEN_RIGHT = 12;
|
|
||||||
const VISIBLE_BOTTOM = 65;
|
|
||||||
const VISIBLE_RIGHT = 42;
|
|
||||||
const ANIM_DURATION = 250;
|
|
||||||
|
|
||||||
// Keeps `value` true for `duration` ms after it turns false. SkipButton hides
|
|
||||||
// itself instantly via a `hidden` (display:none) class, which would preempt
|
|
||||||
// the parent's opacity fade-out — lagging the flag keeps the button rendered
|
|
||||||
// (and visible) while the fade plays out.
|
|
||||||
const useDelayedHide = (value: boolean, duration: number): boolean => {
|
|
||||||
const [display, setDisplay] = useState(value);
|
|
||||||
useEffect(() => {
|
|
||||||
if (value) {
|
|
||||||
setDisplay(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const t = setTimeout(() => setDisplay(false), duration);
|
|
||||||
return () => clearTimeout(t);
|
|
||||||
}, [value, duration]);
|
|
||||||
return value || display;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Floating Skip Intro / Skip Credits buttons shown independently of the
|
|
||||||
* player controls. They appear on their own during an intro or credits segment
|
|
||||||
* without the user having to summon the controls.
|
|
||||||
*/
|
|
||||||
export const SkipSegmentOverlay: FC<Props> = ({
|
|
||||||
showSkipButton,
|
|
||||||
showSkipCreditButton,
|
|
||||||
hasContentAfterCredits,
|
|
||||||
willShowNextEpisode,
|
|
||||||
skipIntro,
|
|
||||||
skipCredit,
|
|
||||||
controlsVisible,
|
|
||||||
}) => {
|
|
||||||
const insets = useControlsSafeAreaInsets();
|
|
||||||
|
|
||||||
const showCredit =
|
|
||||||
showSkipCreditButton && (hasContentAfterCredits || !willShowNextEpisode);
|
|
||||||
const visible = showSkipButton || showCredit;
|
|
||||||
|
|
||||||
// Drive each SkipButton with a lagged flag so it stays visible while the
|
|
||||||
// opacity fade-out plays, instead of disappearing the instant its segment
|
|
||||||
// ends. `visible` above still drives opacity/pointerEvents immediately.
|
|
||||||
const renderSkip = useDelayedHide(showSkipButton, ANIM_DURATION);
|
|
||||||
const renderCredit = useDelayedHide(showCredit, ANIM_DURATION);
|
|
||||||
|
|
||||||
const opacity = useSharedValue(visible ? 1 : 0);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
opacity.value = withTiming(visible ? 1 : 0, {
|
|
||||||
duration: ANIM_DURATION,
|
|
||||||
easing: Easing.out(Easing.quad),
|
|
||||||
});
|
|
||||||
}, [visible, opacity]);
|
|
||||||
|
|
||||||
const animatedStyle = useAnimatedStyle(() => ({
|
|
||||||
opacity: opacity.value,
|
|
||||||
}));
|
|
||||||
|
|
||||||
// Position is recomputed on render (no slide animation) so the button never
|
|
||||||
// sweeps through an overlap zone while the controls toggle.
|
|
||||||
const bottom =
|
|
||||||
insets.bottom + (controlsVisible ? VISIBLE_BOTTOM : HIDDEN_BOTTOM);
|
|
||||||
const right = insets.right + (controlsVisible ? VISIBLE_RIGHT : HIDDEN_RIGHT);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Animated.View
|
|
||||||
style={[styles.container, { right, bottom }, animatedStyle]}
|
|
||||||
pointerEvents={visible ? "box-none" : "none"}
|
|
||||||
>
|
|
||||||
<SkipButton
|
|
||||||
showButton={renderSkip}
|
|
||||||
onPress={skipIntro}
|
|
||||||
buttonText='Skip Intro'
|
|
||||||
/>
|
|
||||||
<SkipButton
|
|
||||||
showButton={renderCredit}
|
|
||||||
onPress={skipCredit}
|
|
||||||
buttonText='Skip Credits'
|
|
||||||
/>
|
|
||||||
</Animated.View>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const styles = StyleSheet.create({
|
|
||||||
container: {
|
|
||||||
position: "absolute",
|
|
||||||
flexDirection: "row",
|
|
||||||
gap: 8,
|
|
||||||
zIndex: 15,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
@@ -1,13 +1,19 @@
|
|||||||
|
// Imported from expo-router's bundled copy, NOT "@react-navigation/*": as of
|
||||||
|
// SDK 56 expo-router's Metro check rejects direct @react-navigation imports.
|
||||||
import { useRouter } from "expo-router";
|
import { useRouter } from "expo-router";
|
||||||
import { useCallback, useMemo } from "react";
|
import { NavigationContext } from "expo-router/react-navigation";
|
||||||
|
import { useCallback, useContext, useEffect, useMemo, useRef } from "react";
|
||||||
import { useOfflineMode } from "@/providers/OfflineModeProvider";
|
import { useOfflineMode } from "@/providers/OfflineModeProvider";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Drop-in replacement for expo-router's useRouter that automatically
|
* Drop-in replacement for expo-router's useRouter that automatically
|
||||||
* preserves offline state across navigation.
|
* preserves offline state across navigation and guards against duplicate
|
||||||
|
* screens from rapid taps.
|
||||||
*
|
*
|
||||||
* - For object-form navigation, automatically adds offline=true when in offline context
|
* - For object-form navigation, automatically adds offline=true when in offline context
|
||||||
* - For string URLs, passes through unchanged (caller handles offline param)
|
* - For string URLs, passes through unchanged (caller handles offline param)
|
||||||
|
* - push() is a no-op while the source screen is not focused, so taps fired
|
||||||
|
* before the pushed screen has rendered (slow devices) can't stack duplicates
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* import useRouter from "@/hooks/useAppRouter";
|
* import useRouter from "@/hooks/useAppRouter";
|
||||||
@@ -19,24 +25,59 @@ export function useAppRouter() {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const isOffline = useOfflineMode();
|
const isOffline = useOfflineMode();
|
||||||
|
|
||||||
|
// Optional: undefined when used outside a navigator (root layout, providers).
|
||||||
|
// When present it reflects the focus state of the screen this hook lives in.
|
||||||
|
const navigation = useContext(NavigationContext);
|
||||||
|
|
||||||
|
// Synchronous re-entry guard for TV: a single remote "select" on Android TV
|
||||||
|
// can fire onPress more than once within the same JS batch
|
||||||
|
// (react-native-tvos#110/#138), BEFORE react-navigation commits the pushed
|
||||||
|
// route — so isFocused() still reads true for the duplicate. The ref flips
|
||||||
|
// synchronously on the first push and resets when the screen regains focus.
|
||||||
|
const pushInFlightRef = useRef(false);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!navigation) return;
|
||||||
|
return navigation.addListener("focus", () => {
|
||||||
|
pushInFlightRef.current = false;
|
||||||
|
});
|
||||||
|
}, [navigation]);
|
||||||
|
|
||||||
const push = useCallback(
|
const push = useCallback(
|
||||||
(href: Parameters<typeof router.push>[0]) => {
|
(href: Parameters<typeof router.push>[0]) => {
|
||||||
if (typeof href === "string") {
|
// Rapid-push guard: a push blurs the source screen synchronously in the
|
||||||
router.push(href as any);
|
// navigation state (only the native render is slow). Any further push from
|
||||||
} else {
|
// this screen — duplicate or not — is dropped until focus returns, so taps
|
||||||
const callerParams = (href.params ?? {}) as Record<string, unknown>;
|
// fired before the pushed screen renders can't stack screens.
|
||||||
const hasExplicitOffline = "offline" in callerParams;
|
// No navigation context => nothing to guard (deep-link pushes from root).
|
||||||
router.push({
|
if (navigation) {
|
||||||
...href,
|
if (navigation.isFocused?.() === false || pushInFlightRef.current)
|
||||||
params: {
|
return;
|
||||||
// Only add offline if caller hasn't explicitly set it
|
pushInFlightRef.current = true;
|
||||||
...(isOffline && !hasExplicitOffline && { offline: "true" }),
|
}
|
||||||
...callerParams,
|
try {
|
||||||
},
|
if (typeof href === "string") {
|
||||||
} as any);
|
router.push(href as any);
|
||||||
|
} else {
|
||||||
|
const callerParams = (href.params ?? {}) as Record<string, unknown>;
|
||||||
|
const hasExplicitOffline = "offline" in callerParams;
|
||||||
|
router.push({
|
||||||
|
...href,
|
||||||
|
params: {
|
||||||
|
// Only add offline if caller hasn't explicitly set it
|
||||||
|
...(isOffline && !hasExplicitOffline && { offline: "true" }),
|
||||||
|
...callerParams,
|
||||||
|
},
|
||||||
|
} as any);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
// A push that throws never blurs the screen, so the focus listener
|
||||||
|
// would never reset the guard — release it here to avoid a stuck lock.
|
||||||
|
pushInFlightRef.current = false;
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[router, isOffline],
|
[router, isOffline, navigation],
|
||||||
);
|
);
|
||||||
|
|
||||||
const replace = useCallback(
|
const replace = useCallback(
|
||||||
|
|||||||
@@ -96,24 +96,5 @@ export function getDownloadedItemSize(id: string): number {
|
|||||||
*/
|
*/
|
||||||
export function calculateTotalDownloadedSize(): number {
|
export function calculateTotalDownloadedSize(): number {
|
||||||
const items = getAllDownloadedItems();
|
const items = getAllDownloadedItems();
|
||||||
return items.reduce((sum, item) => {
|
return items.reduce((sum, item) => sum + (item.videoFileSize || 0), 0);
|
||||||
// Trickplay bytes count too — getDownloadedItemSize models per-item size
|
|
||||||
// as video + trickplay, the total must match.
|
|
||||||
const trickplaySize = item.trickPlayData?.size ?? 0;
|
|
||||||
// Read the live file size on disk so the total reflects actual usage and
|
|
||||||
// self-heals items whose stored videoFileSize is 0 (old schema, or
|
|
||||||
// `fileInfo.size` was undefined at download time). Fall back to the stored
|
|
||||||
// value if the file can't be stat'd.
|
|
||||||
if (item.videoFilePath) {
|
|
||||||
try {
|
|
||||||
const file = new File(filePathToUri(item.videoFilePath));
|
|
||||||
if (file.exists) {
|
|
||||||
return sum + (file.size ?? item.videoFileSize ?? 0) + trickplaySize;
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.warn("Failed to stat downloaded file for size:", error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return sum + (item.videoFileSize ?? 0) + trickplaySize;
|
|
||||||
}, 0);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -289,24 +289,7 @@ export function useDownloadOperations({
|
|||||||
);
|
);
|
||||||
|
|
||||||
const appSizeUsage = useCallback(async () => {
|
const appSizeUsage = useCallback(async () => {
|
||||||
let totalSize = calculateTotalDownloadedSize();
|
const totalSize = calculateTotalDownloadedSize();
|
||||||
|
|
||||||
// Also count in-progress downloads (they write straight to their final
|
|
||||||
// path) so the growing file shows up as app usage instead of drifting
|
|
||||||
// into the generic device share until completion.
|
|
||||||
for (const process of processes) {
|
|
||||||
try {
|
|
||||||
const file = new File(
|
|
||||||
Paths.document,
|
|
||||||
`${generateFilename(process.item)}.mp4`,
|
|
||||||
);
|
|
||||||
if (file.exists) {
|
|
||||||
totalSize += file.size ?? 0;
|
|
||||||
}
|
|
||||||
} catch {
|
|
||||||
// File not created yet — ignore.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const [freeDiskStorage, totalDiskCapacity] = await Promise.all([
|
const [freeDiskStorage, totalDiskCapacity] = await Promise.all([
|
||||||
@@ -327,7 +310,7 @@ export function useDownloadOperations({
|
|||||||
appSize: totalSize,
|
appSize: totalSize,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}, [processes]);
|
}, []);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
startBackgroundDownload,
|
startBackgroundDownload,
|
||||||
|
|||||||
@@ -386,7 +386,7 @@ export const JellyfinProvider: React.FC<{ children: ReactNode }> = ({
|
|||||||
default:
|
default:
|
||||||
throw new Error(
|
throw new Error(
|
||||||
t(
|
t(
|
||||||
"login.an_unexpected_error_occurred_did_you_enter_the_correct_url",
|
"login.an_unexpected_error_occured_did_you_enter_the_correct_url",
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "حسنًا",
|
"got_it": "حسنًا",
|
||||||
"connection_failed": "فشل الاتصال",
|
"connection_failed": "فشل الاتصال",
|
||||||
"could_not_connect_to_server": "تعذر الاتصال بالخادم. يرجى التحقق من الرابط واتصال الشبكة.",
|
"could_not_connect_to_server": "تعذر الاتصال بالخادم. يرجى التحقق من الرابط واتصال الشبكة.",
|
||||||
"an_unexpected_error_occurred": "حدث خطأ غير متوقع",
|
"an_unexpected_error_occured": "حدث خطأ غير متوقع",
|
||||||
"change_server": "تغيير الخادم",
|
"change_server": "تغيير الخادم",
|
||||||
"invalid_username_or_password": "اسم المستخدم أو كلمة المرور غير صالحة",
|
"invalid_username_or_password": "اسم المستخدم أو كلمة المرور غير صالحة",
|
||||||
"user_does_not_have_permission_to_log_in": "ليس لدى المستخدم صَلاحِيَة تسجيل الدخول",
|
"user_does_not_have_permission_to_log_in": "ليس لدى المستخدم صَلاحِيَة تسجيل الدخول",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "يستغرق الخادم وقتًا طويلاً للرد، يرجى المحاولة مرة أخرى لاحقًا",
|
"server_is_taking_too_long_to_respond_try_again_later": "يستغرق الخادم وقتًا طويلاً للرد، يرجى المحاولة مرة أخرى لاحقًا",
|
||||||
"server_received_too_many_requests_try_again_later": "تلقى الخادم عددًا كبيرًا جدًا من الطلبات، يرجى المحاولة مرة أخرى لاحقًا.",
|
"server_received_too_many_requests_try_again_later": "تلقى الخادم عددًا كبيرًا جدًا من الطلبات، يرجى المحاولة مرة أخرى لاحقًا.",
|
||||||
"there_is_a_server_error": "هناك خطأ في الخادم",
|
"there_is_a_server_error": "هناك خطأ في الخادم",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "حدث خطأ غير متوقع. هل أدخلت رابط الخادم بشكل صحيح؟",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "حدث خطأ غير متوقع. هل أدخلت رابط الخادم بشكل صحيح؟",
|
||||||
"too_old_server_text": "تم اكتشاف خادم Jellyfin غير مدعوم",
|
"too_old_server_text": "تم اكتشاف خادم Jellyfin غير مدعوم",
|
||||||
"too_old_server_description": "يرجى تحديث Jellyfin إلى أحدث إصدار"
|
"too_old_server_description": "يرجى تحديث Jellyfin إلى أحدث إصدار"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "تفويض الدخول السريع",
|
"authorize_button": "تفويض الدخول السريع",
|
||||||
"enter_the_quick_connect_code": "أدخل رمز الدخول السريع...",
|
"enter_the_quick_connect_code": "أدخل رمز الدخول السريع...",
|
||||||
"success": "نجاح",
|
"success": "نجاح",
|
||||||
"quick_connect_authorized": "تم تفويض الدخول السريع",
|
"quick_connect_autorized": "تم تفويض الدخول السريع",
|
||||||
"error": "خطأ",
|
"error": "خطأ",
|
||||||
"invalid_code": "رمز غير صالح",
|
"invalid_code": "رمز غير صالح",
|
||||||
"authorize": "تفويض"
|
"authorize": "تفويض"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "إظهار روابط القائمة المخصصة",
|
"show_custom_menu_links": "إظهار روابط القائمة المخصصة",
|
||||||
"show_large_home_carousel": "إظهار شريط العرض الكبير (تجريبي)",
|
"show_large_home_carousel": "إظهار شريط العرض الكبير (تجريبي)",
|
||||||
"hide_libraries": "إخفاء المكتبات",
|
"hide_libraries": "إخفاء المكتبات",
|
||||||
"select_libraries_you_want_to_hide": "اختر المكتبات التي تريد إخفاءها من تبويب المكتبة وأقسام الصفحة الرئيسية.",
|
"select_liraries_you_want_to_hide": "اختر المكتبات التي تريد إخفاءها من تبويب المكتبة وأقسام الصفحة الرئيسية.",
|
||||||
"disable_haptic_feedback": "تعطيل ردود الفعل اللمسية",
|
"disable_haptic_feedback": "تعطيل ردود الفعل اللمسية",
|
||||||
"default_quality": "الجودة الافتراضية",
|
"default_quality": "الجودة الافتراضية",
|
||||||
"default_playback_speed": "سرعة التشغيل الافتراضية",
|
"default_playback_speed": "سرعة التشغيل الافتراضية",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "الجهاز {{availableSpace}}%",
|
"device_usage": "الجهاز {{availableSpace}}%",
|
||||||
"size_used": "تم استخدام {{used}} من {{total}}",
|
"size_used": "تم استخدام {{used}} من {{total}}",
|
||||||
"delete_all_downloaded_files": "حذف جميع الملفات التي تم تنزيلها",
|
"delete_all_downloaded_files": "حذف جميع الملفات التي تم تنزيلها",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "التخزين المؤقت للموسيقى",
|
"music_cache_title": "التخزين المؤقت للموسيقى",
|
||||||
"music_cache_description": "تخزين الأغاني تلقائياً أثناء الاستماع لضمان تشغيل أكثر سلاسة ودعم الاستماع بدون اتصال",
|
"music_cache_description": "تخزين الأغاني تلقائياً أثناء الاستماع لضمان تشغيل أكثر سلاسة ودعم الاستماع بدون اتصال",
|
||||||
"clear_music_cache": "مسح التخزين المؤقت للموسيقى",
|
"clear_music_cache": "مسح التخزين المؤقت للموسيقى",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "خطأ",
|
"error": "خطأ",
|
||||||
"failed_to_get_stream_url": "فشل في الحصول على رابط البث",
|
"failed_to_get_stream_url": "فشل في الحصول على رابط البث",
|
||||||
"an_error_occurred_while_playing_the_video": "حدث خطأ أثناء تشغيل الفيديو. تحقق من السجلات في الإعدادات.",
|
"an_error_occured_while_playing_the_video": "حدث خطأ أثناء تشغيل الفيديو. تحقق من السجلات في الإعدادات.",
|
||||||
"client_error": "خطأ في المشغّل",
|
"client_error": "خطأ في المشغّل",
|
||||||
"could_not_create_stream_for_chromecast": "تعذر إنشاء بث لـChromecast",
|
"could_not_create_stream_for_chromecast": "تعذر إنشاء بث لـChromecast",
|
||||||
"message_from_server": "رسالة من الخادم: {{message}}",
|
"message_from_server": "رسالة من الخادم: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Entesos",
|
"got_it": "Entesos",
|
||||||
"connection_failed": "Ha fallat la connexió",
|
"connection_failed": "Ha fallat la connexió",
|
||||||
"could_not_connect_to_server": "No s'ha pogut connectar amb el servidor. Comproveu l'URL i la connexió de xarxa.",
|
"could_not_connect_to_server": "No s'ha pogut connectar amb el servidor. Comproveu l'URL i la connexió de xarxa.",
|
||||||
"an_unexpected_error_occurred": "S'ha produït un error inesperat",
|
"an_unexpected_error_occured": "S'ha produït un error inesperat",
|
||||||
"change_server": "Canvia el servidor",
|
"change_server": "Canvia el servidor",
|
||||||
"invalid_username_or_password": "Nom d'usuari o contrasenya incorrectes",
|
"invalid_username_or_password": "Nom d'usuari o contrasenya incorrectes",
|
||||||
"user_does_not_have_permission_to_log_in": "L'usuari no té permís per iniciar sessió",
|
"user_does_not_have_permission_to_log_in": "L'usuari no té permís per iniciar sessió",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "El servidor triga massa a respondre, torneu-ho a provar més tard",
|
"server_is_taking_too_long_to_respond_try_again_later": "El servidor triga massa a respondre, torneu-ho a provar més tard",
|
||||||
"server_received_too_many_requests_try_again_later": "El servidor ha rebut massa sol·licituds, torneu-ho a provar més tard.",
|
"server_received_too_many_requests_try_again_later": "El servidor ha rebut massa sol·licituds, torneu-ho a provar més tard.",
|
||||||
"there_is_a_server_error": "Error del servidor",
|
"there_is_a_server_error": "Error del servidor",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "S'ha produït un error inesperat. Heu introduït correctament l'URL del servidor?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "S'ha produït un error inesperat. Heu introduït correctament l'URL del servidor?",
|
||||||
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
||||||
"too_old_server_description": "Please update Jellyfin to the latest version"
|
"too_old_server_description": "Please update Jellyfin to the latest version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autoritza connexió ràpida",
|
"authorize_button": "Autoritza connexió ràpida",
|
||||||
"enter_the_quick_connect_code": "Introdueix el codi de connexió ràpida...",
|
"enter_the_quick_connect_code": "Introdueix el codi de connexió ràpida...",
|
||||||
"success": "Èxit",
|
"success": "Èxit",
|
||||||
"quick_connect_authorized": "Connexió ràpida autoritzada",
|
"quick_connect_autorized": "Connexió ràpida autoritzada",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"invalid_code": "Codi invàlid",
|
"invalid_code": "Codi invàlid",
|
||||||
"authorize": "Autoritza"
|
"authorize": "Autoritza"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Mostrar enllaços del menú personalitzats",
|
"show_custom_menu_links": "Mostrar enllaços del menú personalitzats",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Oculta biblioteques",
|
"hide_libraries": "Oculta biblioteques",
|
||||||
"select_libraries_you_want_to_hide": "Seleccioneu les biblioteques que voleu ocultar de la pestanya Biblioteca i de les seccions de la pàgina d'inici.",
|
"select_liraries_you_want_to_hide": "Seleccioneu les biblioteques que voleu ocultar de la pestanya Biblioteca i de les seccions de la pàgina d'inici.",
|
||||||
"disable_haptic_feedback": "Desactiva la resposta hàptica",
|
"disable_haptic_feedback": "Desactiva la resposta hàptica",
|
||||||
"default_quality": "Qualitat per defecte",
|
"default_quality": "Qualitat per defecte",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Dispositiu {{availableSpace}}%",
|
"device_usage": "Dispositiu {{availableSpace}}%",
|
||||||
"size_used": "{{used}} de {{total}} utilitzat",
|
"size_used": "{{used}} de {{total}} utilitzat",
|
||||||
"delete_all_downloaded_files": "Suprimeix tots els fitxers descarregats",
|
"delete_all_downloaded_files": "Suprimeix tots els fitxers descarregats",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"failed_to_get_stream_url": "No s'ha pogut obtenir l'URL del flux",
|
"failed_to_get_stream_url": "No s'ha pogut obtenir l'URL del flux",
|
||||||
"an_error_occurred_while_playing_the_video": "S'ha produït un error en reproduir el vídeo. Consulteu els registres a la configuració.",
|
"an_error_occured_while_playing_the_video": "S'ha produït un error en reproduir el vídeo. Consulteu els registres a la configuració.",
|
||||||
"client_error": "Error del client",
|
"client_error": "Error del client",
|
||||||
"could_not_create_stream_for_chromecast": "No s'ha pogut crear un flux per a Chromecast",
|
"could_not_create_stream_for_chromecast": "No s'ha pogut crear un flux per a Chromecast",
|
||||||
"message_from_server": "Missatge del servidor: {{message}}",
|
"message_from_server": "Missatge del servidor: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Rozumím",
|
"got_it": "Rozumím",
|
||||||
"connection_failed": "Připojení se nezdařilo",
|
"connection_failed": "Připojení se nezdařilo",
|
||||||
"could_not_connect_to_server": "Nelze se připojit k serveru. Zkontrolujte adresu URL a síťové připojení.",
|
"could_not_connect_to_server": "Nelze se připojit k serveru. Zkontrolujte adresu URL a síťové připojení.",
|
||||||
"an_unexpected_error_occurred": "Došlo k neočekávané chybě",
|
"an_unexpected_error_occured": "Došlo k neočekávané chybě",
|
||||||
"change_server": "Změnit server",
|
"change_server": "Změnit server",
|
||||||
"invalid_username_or_password": "Neplatné uživatelské jméno nebo heslo",
|
"invalid_username_or_password": "Neplatné uživatelské jméno nebo heslo",
|
||||||
"user_does_not_have_permission_to_log_in": "Uživatel nemá oprávnění k přihlášení",
|
"user_does_not_have_permission_to_log_in": "Uživatel nemá oprávnění k přihlášení",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Reakce na server trvá příliš dlouho, zkuste to znovu později",
|
"server_is_taking_too_long_to_respond_try_again_later": "Reakce na server trvá příliš dlouho, zkuste to znovu později",
|
||||||
"server_received_too_many_requests_try_again_later": "Server obdržel příliš mnoho požadavků, opakujte akci později.",
|
"server_received_too_many_requests_try_again_later": "Server obdržel příliš mnoho požadavků, opakujte akci později.",
|
||||||
"there_is_a_server_error": "Došlo k chybě serveru",
|
"there_is_a_server_error": "Došlo k chybě serveru",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Došlo k neočekávané chybě. Vložili jste adresu URL serveru?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Došlo k neočekávané chybě. Vložili jste adresu URL serveru?",
|
||||||
"too_old_server_text": "Objeven nepodporovaný Jellyfin server",
|
"too_old_server_text": "Objeven nepodporovaný Jellyfin server",
|
||||||
"too_old_server_description": "Prosím aktualizujte Jellyfin na nejnovější verzi"
|
"too_old_server_description": "Prosím aktualizujte Jellyfin na nejnovější verzi"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autorizovat rychlé připojení",
|
"authorize_button": "Autorizovat rychlé připojení",
|
||||||
"enter_the_quick_connect_code": "Zadejte kód rychlého připojení...",
|
"enter_the_quick_connect_code": "Zadejte kód rychlého připojení...",
|
||||||
"success": "Úspěšně",
|
"success": "Úspěšně",
|
||||||
"quick_connect_authorized": "Oprávněné Rychlé připojení",
|
"quick_connect_autorized": "Oprávněné Rychlé připojení",
|
||||||
"error": "Chyba",
|
"error": "Chyba",
|
||||||
"invalid_code": "Neplatný kód",
|
"invalid_code": "Neplatný kód",
|
||||||
"authorize": "Autorizovat"
|
"authorize": "Autorizovat"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Zobrazit vlastní Menu odkazy",
|
"show_custom_menu_links": "Zobrazit vlastní Menu odkazy",
|
||||||
"show_large_home_carousel": "Zobrazit velký přehled (beta)",
|
"show_large_home_carousel": "Zobrazit velký přehled (beta)",
|
||||||
"hide_libraries": "Skrýt knihovny",
|
"hide_libraries": "Skrýt knihovny",
|
||||||
"select_libraries_you_want_to_hide": "Vyberte knihovny, které chcete skrýt v záložce Knihovna a v sekcích domovské stránky.",
|
"select_liraries_you_want_to_hide": "Vyberte knihovny, které chcete skrýt v záložce Knihovna a v sekcích domovské stránky.",
|
||||||
"disable_haptic_feedback": "Zakázat Haptickou zpětnou vazbu",
|
"disable_haptic_feedback": "Zakázat Haptickou zpětnou vazbu",
|
||||||
"default_quality": "Výchozí kvalita",
|
"default_quality": "Výchozí kvalita",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Zařízení {{availableSpace}}%",
|
"device_usage": "Zařízení {{availableSpace}}%",
|
||||||
"size_used": "{{used}} z {{total}} využito",
|
"size_used": "{{used}} z {{total}} využito",
|
||||||
"delete_all_downloaded_files": "Odstranit všechny stažené soubory",
|
"delete_all_downloaded_files": "Odstranit všechny stažené soubory",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Chyba",
|
"error": "Chyba",
|
||||||
"failed_to_get_stream_url": "Nepodařilo se získat URL streamu",
|
"failed_to_get_stream_url": "Nepodařilo se získat URL streamu",
|
||||||
"an_error_occurred_while_playing_the_video": "Při přehrávání videa došlo k chybě. Zkontrolujte logy v nastavení.",
|
"an_error_occured_while_playing_the_video": "Při přehrávání videa došlo k chybě. Zkontrolujte logy v nastavení.",
|
||||||
"client_error": "Chyba klienta",
|
"client_error": "Chyba klienta",
|
||||||
"could_not_create_stream_for_chromecast": "Nelze vytvořit stream pro Chromecast",
|
"could_not_create_stream_for_chromecast": "Nelze vytvořit stream pro Chromecast",
|
||||||
"message_from_server": "Zpráva od serveru: {{message}}",
|
"message_from_server": "Zpráva od serveru: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Forstået",
|
"got_it": "Forstået",
|
||||||
"connection_failed": "Forbindelsen mislykkedes",
|
"connection_failed": "Forbindelsen mislykkedes",
|
||||||
"could_not_connect_to_server": "Kunne ikke oprette forbindelse til serveren. Tjek venligst URL'en og din netværksforbindelse.",
|
"could_not_connect_to_server": "Kunne ikke oprette forbindelse til serveren. Tjek venligst URL'en og din netværksforbindelse.",
|
||||||
"an_unexpected_error_occurred": "Der opstod en uventet fejl",
|
"an_unexpected_error_occured": "Der opstod en uventet fejl",
|
||||||
"change_server": "Skift server",
|
"change_server": "Skift server",
|
||||||
"invalid_username_or_password": "Ugyldigt brugernavn eller adgangskode",
|
"invalid_username_or_password": "Ugyldigt brugernavn eller adgangskode",
|
||||||
"user_does_not_have_permission_to_log_in": "Brugeren har ikke tilladelse til at logge ind",
|
"user_does_not_have_permission_to_log_in": "Brugeren har ikke tilladelse til at logge ind",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Serveren svarer for langsomt, prøv igen senere",
|
"server_is_taking_too_long_to_respond_try_again_later": "Serveren svarer for langsomt, prøv igen senere",
|
||||||
"server_received_too_many_requests_try_again_later": "Serveren modtog for mange forespørgsler, prøv igen senere.",
|
"server_received_too_many_requests_try_again_later": "Serveren modtog for mange forespørgsler, prøv igen senere.",
|
||||||
"there_is_a_server_error": "Der er en serverfejl",
|
"there_is_a_server_error": "Der er en serverfejl",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Der opstod en uventet fejl. Har du indtastet serverens URL korrekt?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Der opstod en uventet fejl. Har du indtastet serverens URL korrekt?",
|
||||||
"too_old_server_text": "Ikke Understøttet Jellyfin Server Opdaget",
|
"too_old_server_text": "Ikke Understøttet Jellyfin Server Opdaget",
|
||||||
"too_old_server_description": "Opdater venligst Jellyfin til den seneste version"
|
"too_old_server_description": "Opdater venligst Jellyfin til den seneste version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autoriser Hurtigforbindelse",
|
"authorize_button": "Autoriser Hurtigforbindelse",
|
||||||
"enter_the_quick_connect_code": "Indtast koden til hurtigforbindelse...",
|
"enter_the_quick_connect_code": "Indtast koden til hurtigforbindelse...",
|
||||||
"success": "Succes",
|
"success": "Succes",
|
||||||
"quick_connect_authorized": "Hurtigforbindelse autoriseret",
|
"quick_connect_autorized": "Hurtigforbindelse autoriseret",
|
||||||
"error": "Fejl",
|
"error": "Fejl",
|
||||||
"invalid_code": "Ugyldig kode",
|
"invalid_code": "Ugyldig kode",
|
||||||
"authorize": "Autoriser"
|
"authorize": "Autoriser"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Vis tilpassede menulinks",
|
"show_custom_menu_links": "Vis tilpassede menulinks",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Skjul biblioteker",
|
"hide_libraries": "Skjul biblioteker",
|
||||||
"select_libraries_you_want_to_hide": "Vælg de biblioteker, du ønsker at skjule fra fanen Bibliotek og startside sektionerne.",
|
"select_liraries_you_want_to_hide": "Vælg de biblioteker, du ønsker at skjule fra fanen Bibliotek og startside sektionerne.",
|
||||||
"disable_haptic_feedback": "Deaktiver haptisk feedback",
|
"disable_haptic_feedback": "Deaktiver haptisk feedback",
|
||||||
"default_quality": "Standard kvalitet",
|
"default_quality": "Standard kvalitet",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Enhedsforbrug: {{availableSpace}}%",
|
"device_usage": "Enhedsforbrug: {{availableSpace}}%",
|
||||||
"size_used": "{{used}} af {{total}} brugt",
|
"size_used": "{{used}} af {{total}} brugt",
|
||||||
"delete_all_downloaded_files": "Slet alle downloadede filer",
|
"delete_all_downloaded_files": "Slet alle downloadede filer",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Fejl",
|
"error": "Fejl",
|
||||||
"failed_to_get_stream_url": "Kunne ikke hente stream URL'en",
|
"failed_to_get_stream_url": "Kunne ikke hente stream URL'en",
|
||||||
"an_error_occurred_while_playing_the_video": "Der opstod en fejl under afspilning af videoen. Tjek logfilerne i indstillinger.",
|
"an_error_occured_while_playing_the_video": "Der opstod en fejl under afspilning af videoen. Tjek logfilerne i indstillinger.",
|
||||||
"client_error": "Klientfejl",
|
"client_error": "Klientfejl",
|
||||||
"could_not_create_stream_for_chromecast": "Kunne ikke oprette en stream til Chromecast",
|
"could_not_create_stream_for_chromecast": "Kunne ikke oprette en stream til Chromecast",
|
||||||
"message_from_server": "Besked fra server: {{message}}",
|
"message_from_server": "Besked fra server: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Verstanden",
|
"got_it": "Verstanden",
|
||||||
"connection_failed": "Verbindung fehlgeschlagen",
|
"connection_failed": "Verbindung fehlgeschlagen",
|
||||||
"could_not_connect_to_server": "Verbindung zum Server fehlgeschlagen. Bitte überprüf die URL und deine Netzwerkverbindung.",
|
"could_not_connect_to_server": "Verbindung zum Server fehlgeschlagen. Bitte überprüf die URL und deine Netzwerkverbindung.",
|
||||||
"an_unexpected_error_occurred": "Ein unerwarteter Fehler ist aufgetreten",
|
"an_unexpected_error_occured": "Ein unerwarteter Fehler ist aufgetreten",
|
||||||
"change_server": "Server wechseln",
|
"change_server": "Server wechseln",
|
||||||
"invalid_username_or_password": "Ungültiger Benutzername oder Passwort",
|
"invalid_username_or_password": "Ungültiger Benutzername oder Passwort",
|
||||||
"user_does_not_have_permission_to_log_in": "Benutzer hat keine Berechtigung, um sich anzumelden",
|
"user_does_not_have_permission_to_log_in": "Benutzer hat keine Berechtigung, um sich anzumelden",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Der Server benötigt zu lange, um zu antworten. Bitte versuch es später erneut",
|
"server_is_taking_too_long_to_respond_try_again_later": "Der Server benötigt zu lange, um zu antworten. Bitte versuch es später erneut",
|
||||||
"server_received_too_many_requests_try_again_later": "Der Server hat zu viele Anfragen erhalten. Bitte versuch es später erneut.",
|
"server_received_too_many_requests_try_again_later": "Der Server hat zu viele Anfragen erhalten. Bitte versuch es später erneut.",
|
||||||
"there_is_a_server_error": "Es gibt einen Serverfehler",
|
"there_is_a_server_error": "Es gibt einen Serverfehler",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Ein unerwarteter Fehler ist aufgetreten. Hast du die Server-URL korrekt eingegeben?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Ein unerwarteter Fehler ist aufgetreten. Hast du die Server-URL korrekt eingegeben?",
|
||||||
"too_old_server_text": "Nicht unterstützter Jellyfin Server entdeckt",
|
"too_old_server_text": "Nicht unterstützter Jellyfin Server entdeckt",
|
||||||
"too_old_server_description": "Bitte aktualisiere Jellyfin auf die neueste Version"
|
"too_old_server_description": "Bitte aktualisiere Jellyfin auf die neueste Version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Quick Connect autorisieren",
|
"authorize_button": "Quick Connect autorisieren",
|
||||||
"enter_the_quick_connect_code": "Quick Connect-Code eingeben...",
|
"enter_the_quick_connect_code": "Quick Connect-Code eingeben...",
|
||||||
"success": "Erfolgreich verbunden",
|
"success": "Erfolgreich verbunden",
|
||||||
"quick_connect_authorized": "Quick Connect autorisiert",
|
"quick_connect_autorized": "Quick Connect autorisiert",
|
||||||
"error": "Fehler",
|
"error": "Fehler",
|
||||||
"invalid_code": "Ungültiger Code",
|
"invalid_code": "Ungültiger Code",
|
||||||
"authorize": "Autorisieren"
|
"authorize": "Autorisieren"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Benutzerdefinierte Menülinks anzeigen",
|
"show_custom_menu_links": "Benutzerdefinierte Menülinks anzeigen",
|
||||||
"show_large_home_carousel": "Zeige große Startseiten-Übersicht (Beta)",
|
"show_large_home_carousel": "Zeige große Startseiten-Übersicht (Beta)",
|
||||||
"hide_libraries": "Bibliotheken ausblenden",
|
"hide_libraries": "Bibliotheken ausblenden",
|
||||||
"select_libraries_you_want_to_hide": "Bibliotheken auswählen die aus dem Bibliothekstab und der Startseite ausgeblendet werden sollen.",
|
"select_liraries_you_want_to_hide": "Bibliotheken auswählen die aus dem Bibliothekstab und der Startseite ausgeblendet werden sollen.",
|
||||||
"disable_haptic_feedback": "Haptisches Feedback deaktivieren",
|
"disable_haptic_feedback": "Haptisches Feedback deaktivieren",
|
||||||
"default_quality": "Standardqualität",
|
"default_quality": "Standardqualität",
|
||||||
"default_playback_speed": "Standard-Wiedergabegeschwindigkeit",
|
"default_playback_speed": "Standard-Wiedergabegeschwindigkeit",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Gerät {{availableSpace}}%",
|
"device_usage": "Gerät {{availableSpace}}%",
|
||||||
"size_used": "{{used}} von {{total}} genutzt",
|
"size_used": "{{used}} von {{total}} genutzt",
|
||||||
"delete_all_downloaded_files": "Alle heruntergeladenen Dateien löschen",
|
"delete_all_downloaded_files": "Alle heruntergeladenen Dateien löschen",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Musik-Cache",
|
"music_cache_title": "Musik-Cache",
|
||||||
"music_cache_description": "Beim Anhören Titel automatisch in den Cache laden um bessere Wiedergabe und Offline-Wiedergabe zu ermöglichen",
|
"music_cache_description": "Beim Anhören Titel automatisch in den Cache laden um bessere Wiedergabe und Offline-Wiedergabe zu ermöglichen",
|
||||||
"clear_music_cache": "Musik-Cache leeren",
|
"clear_music_cache": "Musik-Cache leeren",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Fehler",
|
"error": "Fehler",
|
||||||
"failed_to_get_stream_url": "Fehler beim Abrufen der Stream-URL",
|
"failed_to_get_stream_url": "Fehler beim Abrufen der Stream-URL",
|
||||||
"an_error_occurred_while_playing_the_video": "Ein Fehler ist beim Abspielen des Videos aufgetreten. Logs in den Einstellungen überprüfen.",
|
"an_error_occured_while_playing_the_video": "Ein Fehler ist beim Abspielen des Videos aufgetreten. Logs in den Einstellungen überprüfen.",
|
||||||
"client_error": "Client-Fehler",
|
"client_error": "Client-Fehler",
|
||||||
"could_not_create_stream_for_chromecast": "Konnte keinen Stream für Chromecast erstellen",
|
"could_not_create_stream_for_chromecast": "Konnte keinen Stream für Chromecast erstellen",
|
||||||
"message_from_server": "Nachricht vom Server: {{message}}",
|
"message_from_server": "Nachricht vom Server: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Το Κατάλαβα",
|
"got_it": "Το Κατάλαβα",
|
||||||
"connection_failed": "Η Σύνδεση Απέτυχε",
|
"connection_failed": "Η Σύνδεση Απέτυχε",
|
||||||
"could_not_connect_to_server": "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή. Παρακαλώ ελέγξτε τη διεύθυνση URL και τη σύνδεση δικτύου σας.",
|
"could_not_connect_to_server": "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή. Παρακαλώ ελέγξτε τη διεύθυνση URL και τη σύνδεση δικτύου σας.",
|
||||||
"an_unexpected_error_occurred": "Παρουσιάστηκε Απροσδόκητο Σφάλμα",
|
"an_unexpected_error_occured": "Παρουσιάστηκε Απροσδόκητο Σφάλμα",
|
||||||
"change_server": "Αλλαγή Διακομιστή",
|
"change_server": "Αλλαγή Διακομιστή",
|
||||||
"invalid_username_or_password": "Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης",
|
"invalid_username_or_password": "Μη έγκυρο όνομα χρήστη ή κωδικός πρόσβασης",
|
||||||
"user_does_not_have_permission_to_log_in": "Ο χρήστης δεν έχει άδεια να συνδεθεί",
|
"user_does_not_have_permission_to_log_in": "Ο χρήστης δεν έχει άδεια να συνδεθεί",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Ο διακομιστής καθυστερεί πάρα πολύ για να απαντήσει, δοκιμάστε ξανά αργότερα",
|
"server_is_taking_too_long_to_respond_try_again_later": "Ο διακομιστής καθυστερεί πάρα πολύ για να απαντήσει, δοκιμάστε ξανά αργότερα",
|
||||||
"server_received_too_many_requests_try_again_later": "Ο διακομιστής έλαβε πάρα πολλά αιτήματα, δοκιμάστε ξανά αργότερα.",
|
"server_received_too_many_requests_try_again_later": "Ο διακομιστής έλαβε πάρα πολλά αιτήματα, δοκιμάστε ξανά αργότερα.",
|
||||||
"there_is_a_server_error": "Υπάρχει ένα σφάλμα διακομιστή",
|
"there_is_a_server_error": "Υπάρχει ένα σφάλμα διακομιστή",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Παρουσιάστηκε μη αναμενόμενο σφάλμα. Εισαγάγετε σωστά το URL του διακομιστή?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Παρουσιάστηκε μη αναμενόμενο σφάλμα. Εισαγάγετε σωστά το URL του διακομιστή?",
|
||||||
"too_old_server_text": "Ανακαλύφθηκε Μη Υποστηριζόμενος Εξυπηρετητής Jellyfin",
|
"too_old_server_text": "Ανακαλύφθηκε Μη Υποστηριζόμενος Εξυπηρετητής Jellyfin",
|
||||||
"too_old_server_description": "Παρακαλούμε ενημερώστε το Jellyfin στην τελευταία έκδοση"
|
"too_old_server_description": "Παρακαλούμε ενημερώστε το Jellyfin στην τελευταία έκδοση"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Εξουσιοδότηση Γρήγορης Σύνδεσης",
|
"authorize_button": "Εξουσιοδότηση Γρήγορης Σύνδεσης",
|
||||||
"enter_the_quick_connect_code": "Εισάγετε τον κωδικό γρήγορης σύνδεσης...",
|
"enter_the_quick_connect_code": "Εισάγετε τον κωδικό γρήγορης σύνδεσης...",
|
||||||
"success": "Επιτυχία",
|
"success": "Επιτυχία",
|
||||||
"quick_connect_authorized": "Γρήγορη Σύνδεση Εξουσιοδοτήθηκε",
|
"quick_connect_autorized": "Γρήγορη Σύνδεση Εξουσιοδοτήθηκε",
|
||||||
"error": "Σφάλμα",
|
"error": "Σφάλμα",
|
||||||
"invalid_code": "Μη Έγκυρος Κωδικός",
|
"invalid_code": "Μη Έγκυρος Κωδικός",
|
||||||
"authorize": "Εξουσιοδότηση"
|
"authorize": "Εξουσιοδότηση"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Εμφάνιση Προσαρμοσμένων Συνδέσμων Μενού",
|
"show_custom_menu_links": "Εμφάνιση Προσαρμοσμένων Συνδέσμων Μενού",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Απόκρυψη Βιβλιοθηκών",
|
"hide_libraries": "Απόκρυψη Βιβλιοθηκών",
|
||||||
"select_libraries_you_want_to_hide": "Επιλέξτε τις βιβλιοθήκες που θέλετε να αποκρύψετε από την καρτέλα της Βιβλιοθήκης και τις ενότητες της αρχικής σελίδας.",
|
"select_liraries_you_want_to_hide": "Επιλέξτε τις βιβλιοθήκες που θέλετε να αποκρύψετε από την καρτέλα της Βιβλιοθήκης και τις ενότητες της αρχικής σελίδας.",
|
||||||
"disable_haptic_feedback": "Απενεργοποίηση Απτικής Ανατροφοδότησης",
|
"disable_haptic_feedback": "Απενεργοποίηση Απτικής Ανατροφοδότησης",
|
||||||
"default_quality": "Προεπιλεγμένη Ποιότητα",
|
"default_quality": "Προεπιλεγμένη Ποιότητα",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Device {{availableSpace}}%",
|
"device_usage": "Device {{availableSpace}}%",
|
||||||
"size_used": "{{used}} {{total}} Χρησιμοποιείται",
|
"size_used": "{{used}} {{total}} Χρησιμοποιείται",
|
||||||
"delete_all_downloaded_files": "Διαγραφή Όλων Των Ληφθέντων Αρχείων",
|
"delete_all_downloaded_files": "Διαγραφή Όλων Των Ληφθέντων Αρχείων",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Σφάλμα",
|
"error": "Σφάλμα",
|
||||||
"failed_to_get_stream_url": "Αποτυχία λήψης του URL ροής",
|
"failed_to_get_stream_url": "Αποτυχία λήψης του URL ροής",
|
||||||
"an_error_occurred_while_playing_the_video": "Παρουσιάστηκε σφάλμα κατά την αναπαραγωγή του βίντεο. Ελέγξτε τα αρχεία καταγραφής στις ρυθμίσεις.",
|
"an_error_occured_while_playing_the_video": "Παρουσιάστηκε σφάλμα κατά την αναπαραγωγή του βίντεο. Ελέγξτε τα αρχεία καταγραφής στις ρυθμίσεις.",
|
||||||
"client_error": "Σφάλμα Πελάτη",
|
"client_error": "Σφάλμα Πελάτη",
|
||||||
"could_not_create_stream_for_chromecast": "Αδυναμία δημιουργίας ροής για το Chromecast",
|
"could_not_create_stream_for_chromecast": "Αδυναμία δημιουργίας ροής για το Chromecast",
|
||||||
"message_from_server": "Μήνυμα από το διακομιστή: {{message}}",
|
"message_from_server": "Μήνυμα από το διακομιστή: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Got it",
|
"got_it": "Got it",
|
||||||
"connection_failed": "Connection failed",
|
"connection_failed": "Connection failed",
|
||||||
"could_not_connect_to_server": "Could not connect to the server. Please check the URL and your network connection.",
|
"could_not_connect_to_server": "Could not connect to the server. Please check the URL and your network connection.",
|
||||||
"an_unexpected_error_occurred": "An unexpected error occurred",
|
"an_unexpected_error_occured": "An unexpected error occurred",
|
||||||
"change_server": "Change server",
|
"change_server": "Change server",
|
||||||
"invalid_username_or_password": "Invalid username or password",
|
"invalid_username_or_password": "Invalid username or password",
|
||||||
"user_does_not_have_permission_to_log_in": "User does not have permission to log in",
|
"user_does_not_have_permission_to_log_in": "User does not have permission to log in",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Server is taking too long to respond, try again later",
|
"server_is_taking_too_long_to_respond_try_again_later": "Server is taking too long to respond, try again later",
|
||||||
"server_received_too_many_requests_try_again_later": "Server received too many requests, try again later.",
|
"server_received_too_many_requests_try_again_later": "Server received too many requests, try again later.",
|
||||||
"there_is_a_server_error": "There is a server error",
|
"there_is_a_server_error": "There is a server error",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "An unexpected error occurred. Did you enter the server URL correctly?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "An unexpected error occurred. Did you enter the server URL correctly?",
|
||||||
"too_old_server_text": "Unsupported Jellyfin server discovered",
|
"too_old_server_text": "Unsupported Jellyfin server discovered",
|
||||||
"too_old_server_description": "Please update Jellyfin to the latest version"
|
"too_old_server_description": "Please update Jellyfin to the latest version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Authorize Quick Connect",
|
"authorize_button": "Authorize Quick Connect",
|
||||||
"enter_the_quick_connect_code": "Enter the Quick Connect code...",
|
"enter_the_quick_connect_code": "Enter the Quick Connect code...",
|
||||||
"success": "Success",
|
"success": "Success",
|
||||||
"quick_connect_authorized": "Quick Connect authorized",
|
"quick_connect_autorized": "Quick Connect authorized",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"invalid_code": "Invalid code",
|
"invalid_code": "Invalid code",
|
||||||
"authorize": "Authorize"
|
"authorize": "Authorize"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Show custom menu links",
|
"show_custom_menu_links": "Show custom menu links",
|
||||||
"show_large_home_carousel": "Show large home carousel (beta)",
|
"show_large_home_carousel": "Show large home carousel (beta)",
|
||||||
"hide_libraries": "Hide libraries",
|
"hide_libraries": "Hide libraries",
|
||||||
"select_libraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
"select_liraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
||||||
"disable_haptic_feedback": "Disable haptic feedback",
|
"disable_haptic_feedback": "Disable haptic feedback",
|
||||||
"default_quality": "Default quality",
|
"default_quality": "Default quality",
|
||||||
"default_playback_speed": "Default playback speed",
|
"default_playback_speed": "Default playback speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Device {{availableSpace}}%",
|
"device_usage": "Device {{availableSpace}}%",
|
||||||
"size_used": "{{used}} of {{total}} used",
|
"size_used": "{{used}} of {{total}} used",
|
||||||
"delete_all_downloaded_files": "Delete all downloaded files",
|
"delete_all_downloaded_files": "Delete all downloaded files",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music cache",
|
"music_cache_title": "Music cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear music cache",
|
"clear_music_cache": "Clear music cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV player",
|
"mpv_player_title": "MPV player",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"failed_to_get_stream_url": "Failed to get the stream URL",
|
"failed_to_get_stream_url": "Failed to get the stream URL",
|
||||||
"an_error_occurred_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
"an_error_occured_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
||||||
"client_error": "Client error",
|
"client_error": "Client error",
|
||||||
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
||||||
"message_from_server": "Message from server: {{message}}",
|
"message_from_server": "Message from server: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Entendido",
|
"got_it": "Entendido",
|
||||||
"connection_failed": "Conexión fallida",
|
"connection_failed": "Conexión fallida",
|
||||||
"could_not_connect_to_server": "No se pudo conectar al servidor. Por favor comprueba la URL y tu conexión de red.",
|
"could_not_connect_to_server": "No se pudo conectar al servidor. Por favor comprueba la URL y tu conexión de red.",
|
||||||
"an_unexpected_error_occurred": "Ha ocurrido un error inesperado",
|
"an_unexpected_error_occured": "Ha ocurrido un error inesperado",
|
||||||
"change_server": "Cambiar servidor",
|
"change_server": "Cambiar servidor",
|
||||||
"invalid_username_or_password": "Usuario o contraseña inválidos",
|
"invalid_username_or_password": "Usuario o contraseña inválidos",
|
||||||
"user_does_not_have_permission_to_log_in": "El usuario no tiene permiso para iniciar sesión",
|
"user_does_not_have_permission_to_log_in": "El usuario no tiene permiso para iniciar sesión",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "El servidor está tardando mucho en responder, inténtalo de nuevo más tarde.",
|
"server_is_taking_too_long_to_respond_try_again_later": "El servidor está tardando mucho en responder, inténtalo de nuevo más tarde.",
|
||||||
"server_received_too_many_requests_try_again_later": "El servidor está recibiendo muchas peticiones, inténtalo de nuevo más tarde.",
|
"server_received_too_many_requests_try_again_later": "El servidor está recibiendo muchas peticiones, inténtalo de nuevo más tarde.",
|
||||||
"there_is_a_server_error": "Hay un error en el servidor",
|
"there_is_a_server_error": "Hay un error en el servidor",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Ha ocurrido un error inesperado. ¿Has introducido la URL correcta?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Ha ocurrido un error inesperado. ¿Has introducido la URL correcta?",
|
||||||
"too_old_server_text": "Servidor Jellyfin no soportado descubierto",
|
"too_old_server_text": "Servidor Jellyfin no soportado descubierto",
|
||||||
"too_old_server_description": "Por favor, actualiza Jellyfin a la última versión"
|
"too_old_server_description": "Por favor, actualiza Jellyfin a la última versión"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autorizar conexión rápida",
|
"authorize_button": "Autorizar conexión rápida",
|
||||||
"enter_the_quick_connect_code": "Introduce el código de conexión rápida...",
|
"enter_the_quick_connect_code": "Introduce el código de conexión rápida...",
|
||||||
"success": "Hecho",
|
"success": "Hecho",
|
||||||
"quick_connect_authorized": "Conexión rápida autorizada",
|
"quick_connect_autorized": "Conexión rápida autorizada",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"invalid_code": "Código inválido",
|
"invalid_code": "Código inválido",
|
||||||
"authorize": "Autorizar"
|
"authorize": "Autorizar"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Mostrar enlaces de menú personalizados",
|
"show_custom_menu_links": "Mostrar enlaces de menú personalizados",
|
||||||
"show_large_home_carousel": "Mostrar carrusel del menú principal grande (beta)",
|
"show_large_home_carousel": "Mostrar carrusel del menú principal grande (beta)",
|
||||||
"hide_libraries": "Ocultar bibliotecas",
|
"hide_libraries": "Ocultar bibliotecas",
|
||||||
"select_libraries_you_want_to_hide": "Selecciona las bibliotecas que quieres ocultar de la pestaña Bibliotecas y de Inicio.",
|
"select_liraries_you_want_to_hide": "Selecciona las bibliotecas que quieres ocultar de la pestaña Bibliotecas y de Inicio.",
|
||||||
"disable_haptic_feedback": "Desactivar feedback háptico",
|
"disable_haptic_feedback": "Desactivar feedback háptico",
|
||||||
"default_quality": "Calidad por defecto",
|
"default_quality": "Calidad por defecto",
|
||||||
"default_playback_speed": "Velocidad de reproducción predeterminada",
|
"default_playback_speed": "Velocidad de reproducción predeterminada",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Dispositivo {{availableSpace}}%",
|
"device_usage": "Dispositivo {{availableSpace}}%",
|
||||||
"size_used": "{{used}} de {{total}} usado",
|
"size_used": "{{used}} de {{total}} usado",
|
||||||
"delete_all_downloaded_files": "Eliminar todos los archivos descargados",
|
"delete_all_downloaded_files": "Eliminar todos los archivos descargados",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Caché de música",
|
"music_cache_title": "Caché de música",
|
||||||
"music_cache_description": "Cachear automáticamente las canciones mientras escuchas una reproducción más suave y soporte sin conexión",
|
"music_cache_description": "Cachear automáticamente las canciones mientras escuchas una reproducción más suave y soporte sin conexión",
|
||||||
"clear_music_cache": "Borrar Caché de Música",
|
"clear_music_cache": "Borrar Caché de Música",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"failed_to_get_stream_url": "Error al obtener la URL del Steam",
|
"failed_to_get_stream_url": "Error al obtener la URL del Steam",
|
||||||
"an_error_occurred_while_playing_the_video": "Ha ocurrido un error al reproducir el vídeo. Comprueba los registros en la configuración.",
|
"an_error_occured_while_playing_the_video": "Ha ocurrido un error al reproducir el vídeo. Comprueba los registros en la configuración.",
|
||||||
"client_error": "Error del cliente",
|
"client_error": "Error del cliente",
|
||||||
"could_not_create_stream_for_chromecast": "No se pudo crear el Steam para Chromecast",
|
"could_not_create_stream_for_chromecast": "No se pudo crear el Steam para Chromecast",
|
||||||
"message_from_server": "Mensaje del servidor: {{message}}",
|
"message_from_server": "Mensaje del servidor: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Okei",
|
"got_it": "Okei",
|
||||||
"connection_failed": "Yhteys epäonnistui",
|
"connection_failed": "Yhteys epäonnistui",
|
||||||
"could_not_connect_to_server": "Yhteyttä palvelimeen ei voitu muodostaa. Tarkista URL-osoite ja verkkoyhteytesi.",
|
"could_not_connect_to_server": "Yhteyttä palvelimeen ei voitu muodostaa. Tarkista URL-osoite ja verkkoyhteytesi.",
|
||||||
"an_unexpected_error_occurred": "Odottamaton virhe tapahtui",
|
"an_unexpected_error_occured": "Odottamaton virhe tapahtui",
|
||||||
"change_server": "Vaihda palvelinta",
|
"change_server": "Vaihda palvelinta",
|
||||||
"invalid_username_or_password": "Virheellinen käyttäjätunnus tai salasana",
|
"invalid_username_or_password": "Virheellinen käyttäjätunnus tai salasana",
|
||||||
"user_does_not_have_permission_to_log_in": "Käyttäjällä ei ole oikeuksia kirjautua sisään",
|
"user_does_not_have_permission_to_log_in": "Käyttäjällä ei ole oikeuksia kirjautua sisään",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Palvelin reagoi liian hitaasti, yritä myöhemmin uudelleen",
|
"server_is_taking_too_long_to_respond_try_again_later": "Palvelin reagoi liian hitaasti, yritä myöhemmin uudelleen",
|
||||||
"server_received_too_many_requests_try_again_later": "Palvelin sai liian monta pyyntöä, yritä myöhemmin uudelleen.",
|
"server_received_too_many_requests_try_again_later": "Palvelin sai liian monta pyyntöä, yritä myöhemmin uudelleen.",
|
||||||
"there_is_a_server_error": "Palvelimessa on virhe",
|
"there_is_a_server_error": "Palvelimessa on virhe",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Odottamaton virhe tapahtui. Syötitkö palvelimen URL-osoitteen oikein?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Odottamaton virhe tapahtui. Syötitkö palvelimen URL-osoitteen oikein?",
|
||||||
"too_old_server_text": "Ei-tuettu Jellyfin-palvelin löydetty",
|
"too_old_server_text": "Ei-tuettu Jellyfin-palvelin löydetty",
|
||||||
"too_old_server_description": "Ole hyvä ja päivitä Jellyfin uusimpaan versioon"
|
"too_old_server_description": "Ole hyvä ja päivitä Jellyfin uusimpaan versioon"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Valtuuta pikayhdistys",
|
"authorize_button": "Valtuuta pikayhdistys",
|
||||||
"enter_the_quick_connect_code": "Syötä nopean yhteyden koodi...",
|
"enter_the_quick_connect_code": "Syötä nopean yhteyden koodi...",
|
||||||
"success": "Onnistui",
|
"success": "Onnistui",
|
||||||
"quick_connect_authorized": "Pikayhdistys valtuutettu",
|
"quick_connect_autorized": "Pikayhdistys valtuutettu",
|
||||||
"error": "Virhe",
|
"error": "Virhe",
|
||||||
"invalid_code": "Virheellinen koodi",
|
"invalid_code": "Virheellinen koodi",
|
||||||
"authorize": "Valtuuta"
|
"authorize": "Valtuuta"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Näytä mukautetut valikkolinkit",
|
"show_custom_menu_links": "Näytä mukautetut valikkolinkit",
|
||||||
"show_large_home_carousel": "Näytä suuri kotikaruselli (beta)",
|
"show_large_home_carousel": "Näytä suuri kotikaruselli (beta)",
|
||||||
"hide_libraries": "Piilota kirjastot",
|
"hide_libraries": "Piilota kirjastot",
|
||||||
"select_libraries_you_want_to_hide": "Valitse kirjastot, jotka haluat piilottaa Kirjasto-välilehdeltä ja etusivun osioista.",
|
"select_liraries_you_want_to_hide": "Valitse kirjastot, jotka haluat piilottaa Kirjasto-välilehdeltä ja etusivun osioista.",
|
||||||
"disable_haptic_feedback": "Poista haptinen palautteet käytöstä",
|
"disable_haptic_feedback": "Poista haptinen palautteet käytöstä",
|
||||||
"default_quality": "Oletuslaatu",
|
"default_quality": "Oletuslaatu",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Laitteen käyttö {{availableSpace}}%",
|
"device_usage": "Laitteen käyttö {{availableSpace}}%",
|
||||||
"size_used": "{{used}} / {{total}} käytössä",
|
"size_used": "{{used}} / {{total}} käytössä",
|
||||||
"delete_all_downloaded_files": "Poista kaikki ladatut tiedostot",
|
"delete_all_downloaded_files": "Poista kaikki ladatut tiedostot",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Virhe",
|
"error": "Virhe",
|
||||||
"failed_to_get_stream_url": "Lähetyksen URL-osoitteen haku epäonnistui",
|
"failed_to_get_stream_url": "Lähetyksen URL-osoitteen haku epäonnistui",
|
||||||
"an_error_occurred_while_playing_the_video": "Videon toiston yhteydessä tapahtui virhe. Tarkista lokit asetuksista.",
|
"an_error_occured_while_playing_the_video": "Videon toiston yhteydessä tapahtui virhe. Tarkista lokit asetuksista.",
|
||||||
"client_error": "Asiakkaan Virhe",
|
"client_error": "Asiakkaan Virhe",
|
||||||
"could_not_create_stream_for_chromecast": "Suoratoistoa ei voitu luoda Chromecastia varten",
|
"could_not_create_stream_for_chromecast": "Suoratoistoa ei voitu luoda Chromecastia varten",
|
||||||
"message_from_server": "Viesti palvelimelta: {{message}}",
|
"message_from_server": "Viesti palvelimelta: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "D'accord",
|
"got_it": "D'accord",
|
||||||
"connection_failed": "La connexion a échoué",
|
"connection_failed": "La connexion a échoué",
|
||||||
"could_not_connect_to_server": "Impossible de se connecter au serveur. Veuillez vérifier l’URL et votre connexion réseau.",
|
"could_not_connect_to_server": "Impossible de se connecter au serveur. Veuillez vérifier l’URL et votre connexion réseau.",
|
||||||
"an_unexpected_error_occurred": "Une erreur inattendue s'est produite",
|
"an_unexpected_error_occured": "Une erreur inattendue s'est produite",
|
||||||
"change_server": "Changer de serveur",
|
"change_server": "Changer de serveur",
|
||||||
"invalid_username_or_password": "Nom d'utilisateur ou mot de passe invalide",
|
"invalid_username_or_password": "Nom d'utilisateur ou mot de passe invalide",
|
||||||
"user_does_not_have_permission_to_log_in": "L'utilisateur n'a pas la permission de se connecter",
|
"user_does_not_have_permission_to_log_in": "L'utilisateur n'a pas la permission de se connecter",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Le serveur prend trop de temps à répondre, réessayez plus tard",
|
"server_is_taking_too_long_to_respond_try_again_later": "Le serveur prend trop de temps à répondre, réessayez plus tard",
|
||||||
"server_received_too_many_requests_try_again_later": "Le serveur a reçu trop de demandes, réessayez plus tard.",
|
"server_received_too_many_requests_try_again_later": "Le serveur a reçu trop de demandes, réessayez plus tard.",
|
||||||
"there_is_a_server_error": "Il y a une erreur de serveur",
|
"there_is_a_server_error": "Il y a une erreur de serveur",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Une erreur inattendue s’est produite. Avez-vous correctement saisi l’URL du serveur ?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Une erreur inattendue s’est produite. Avez-vous correctement saisi l’URL du serveur ?",
|
||||||
"too_old_server_text": "Serveur Jellyfin non pris en charge découvert",
|
"too_old_server_text": "Serveur Jellyfin non pris en charge découvert",
|
||||||
"too_old_server_description": "Veuillez mettre à jour Jellyfin vers la dernière version"
|
"too_old_server_description": "Veuillez mettre à jour Jellyfin vers la dernière version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autoriser une connexion rapide",
|
"authorize_button": "Autoriser une connexion rapide",
|
||||||
"enter_the_quick_connect_code": "Entrez le code de connexion rapide...",
|
"enter_the_quick_connect_code": "Entrez le code de connexion rapide...",
|
||||||
"success": "Succès",
|
"success": "Succès",
|
||||||
"quick_connect_authorized": "Connexion rapide autorisée",
|
"quick_connect_autorized": "Connexion rapide autorisée",
|
||||||
"error": "Erreur",
|
"error": "Erreur",
|
||||||
"invalid_code": "Code invalide",
|
"invalid_code": "Code invalide",
|
||||||
"authorize": "Autoriser"
|
"authorize": "Autoriser"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Afficher les liens personnalisés",
|
"show_custom_menu_links": "Afficher les liens personnalisés",
|
||||||
"show_large_home_carousel": "Afficher le grand carrousel d’accueil (bêta)",
|
"show_large_home_carousel": "Afficher le grand carrousel d’accueil (bêta)",
|
||||||
"hide_libraries": "Masquer les bibliothèques",
|
"hide_libraries": "Masquer les bibliothèques",
|
||||||
"select_libraries_you_want_to_hide": "Sélectionnez les bibliothèques que vous souhaitez masquer dans l'onglet Bibliothèque et les sections de la page d'accueil.",
|
"select_liraries_you_want_to_hide": "Sélectionnez les bibliothèques que vous souhaitez masquer dans l'onglet Bibliothèque et les sections de la page d'accueil.",
|
||||||
"disable_haptic_feedback": "Désactiver le retour haptique",
|
"disable_haptic_feedback": "Désactiver le retour haptique",
|
||||||
"default_quality": "Qualité par défaut",
|
"default_quality": "Qualité par défaut",
|
||||||
"default_playback_speed": "Vitesse de lecture par défaut",
|
"default_playback_speed": "Vitesse de lecture par défaut",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Appareil {{availableSpace}}%",
|
"device_usage": "Appareil {{availableSpace}}%",
|
||||||
"size_used": "{{used}} de {{total}} utilisés",
|
"size_used": "{{used}} de {{total}} utilisés",
|
||||||
"delete_all_downloaded_files": "Supprimer tous les fichiers téléchargés",
|
"delete_all_downloaded_files": "Supprimer tous les fichiers téléchargés",
|
||||||
"delete_all_downloaded_files_confirm": "Supprimer tous les fichiers téléchargés ?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Êtes-vous sûr de vouloir supprimer tous les fichiers téléchargés ? Cette action est irréversible.",
|
|
||||||
"music_cache_title": "Mise en cache de la musique",
|
"music_cache_title": "Mise en cache de la musique",
|
||||||
"music_cache_description": "Mettez automatiquement en cache les chansons au fur et à mesure que vous écoutez pour une lecture plus fluide et une prise en charge hors ligne",
|
"music_cache_description": "Mettez automatiquement en cache les chansons au fur et à mesure que vous écoutez pour une lecture plus fluide et une prise en charge hors ligne",
|
||||||
"clear_music_cache": "Vider le cache de la musique",
|
"clear_music_cache": "Vider le cache de la musique",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "Lecteur MPV",
|
"mpv_player_title": "Lecteur MPV",
|
||||||
"error": "Erreur",
|
"error": "Erreur",
|
||||||
"failed_to_get_stream_url": "Échec de l'obtention de l'URL du flux",
|
"failed_to_get_stream_url": "Échec de l'obtention de l'URL du flux",
|
||||||
"an_error_occurred_while_playing_the_video": "Une erreur s’est produite lors de la lecture de la vidéo. Vérifiez les journaux dans les paramètres.",
|
"an_error_occured_while_playing_the_video": "Une erreur s’est produite lors de la lecture de la vidéo. Vérifiez les journaux dans les paramètres.",
|
||||||
"client_error": "Erreur du client",
|
"client_error": "Erreur du client",
|
||||||
"could_not_create_stream_for_chromecast": "Impossible de créer un flux sur la Chromecast",
|
"could_not_create_stream_for_chromecast": "Impossible de créer un flux sur la Chromecast",
|
||||||
"message_from_server": "Message du serveur : {{message}}",
|
"message_from_server": "Message du serveur : {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "קיבלתי",
|
"got_it": "קיבלתי",
|
||||||
"connection_failed": "ההתחברות נכשלה",
|
"connection_failed": "ההתחברות נכשלה",
|
||||||
"could_not_connect_to_server": "לא היה ניתן להתחבר לשרת. אנא בדוק את הקישור ואת חיבור הרשת שלך.",
|
"could_not_connect_to_server": "לא היה ניתן להתחבר לשרת. אנא בדוק את הקישור ואת חיבור הרשת שלך.",
|
||||||
"an_unexpected_error_occurred": "קרתה שגיאה לא צפויה",
|
"an_unexpected_error_occured": "קרתה שגיאה לא צפויה",
|
||||||
"change_server": "החלף שרת",
|
"change_server": "החלף שרת",
|
||||||
"invalid_username_or_password": "שם משתמש או סיסמה שגויים",
|
"invalid_username_or_password": "שם משתמש או סיסמה שגויים",
|
||||||
"user_does_not_have_permission_to_log_in": "לחשבון זה אין גישה להתחבר",
|
"user_does_not_have_permission_to_log_in": "לחשבון זה אין גישה להתחבר",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "השרת לוקח יותר מדי זמן כדי להגיב, נסה שוב מאוחר יותר",
|
"server_is_taking_too_long_to_respond_try_again_later": "השרת לוקח יותר מדי זמן כדי להגיב, נסה שוב מאוחר יותר",
|
||||||
"server_received_too_many_requests_try_again_later": "השרת קיבל יותר מדי קריאות, נסה שוב מאוחר יותר",
|
"server_received_too_many_requests_try_again_later": "השרת קיבל יותר מדי קריאות, נסה שוב מאוחר יותר",
|
||||||
"there_is_a_server_error": "קרתה שגיאה בצד השרת",
|
"there_is_a_server_error": "קרתה שגיאה בצד השרת",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "קרתה שגיאה לא צפויה. האם כתובת השרת שהוקלדה נכונה?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "קרתה שגיאה לא צפויה. האם כתובת השרת שהוקלדה נכונה?",
|
||||||
"too_old_server_text": "נמצא שרת Jellyfin שלא נתמך",
|
"too_old_server_text": "נמצא שרת Jellyfin שלא נתמך",
|
||||||
"too_old_server_description": "אנא עדכן את גרסת ה-Jellyfin למעודכנת ביותר"
|
"too_old_server_description": "אנא עדכן את גרסת ה-Jellyfin למעודכנת ביותר"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "אשר התחברות מהירה",
|
"authorize_button": "אשר התחברות מהירה",
|
||||||
"enter_the_quick_connect_code": "הקלד את קוד ההתחברות המהירה...",
|
"enter_the_quick_connect_code": "הקלד את קוד ההתחברות המהירה...",
|
||||||
"success": "הצלחה",
|
"success": "הצלחה",
|
||||||
"quick_connect_authorized": "חיבור מהיר אושר",
|
"quick_connect_autorized": "חיבור מהיר אושר",
|
||||||
"error": "שגיאה",
|
"error": "שגיאה",
|
||||||
"invalid_code": "קוד שגוי",
|
"invalid_code": "קוד שגוי",
|
||||||
"authorize": "אשר"
|
"authorize": "אשר"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "הצג קישורים לתפריטים מותאמים אישית",
|
"show_custom_menu_links": "הצג קישורים לתפריטים מותאמים אישית",
|
||||||
"show_large_home_carousel": "הצג קרוסלה גדולה במסך הבית (בטא)",
|
"show_large_home_carousel": "הצג קרוסלה גדולה במסך הבית (בטא)",
|
||||||
"hide_libraries": "הסתר ספריות",
|
"hide_libraries": "הסתר ספריות",
|
||||||
"select_libraries_you_want_to_hide": "בחר את הספריות שתרצה להסתיר ממסך הספריות וגם ממסך הבית.",
|
"select_liraries_you_want_to_hide": "בחר את הספריות שתרצה להסתיר ממסך הספריות וגם ממסך הבית.",
|
||||||
"disable_haptic_feedback": "בטל משוב רטט",
|
"disable_haptic_feedback": "בטל משוב רטט",
|
||||||
"default_quality": "איכות ברירת מחדל",
|
"default_quality": "איכות ברירת מחדל",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "מכשיר {{availableSpace}}%",
|
"device_usage": "מכשיר {{availableSpace}}%",
|
||||||
"size_used": "השתמשת ב-{{used}} מתוך {{total}}",
|
"size_used": "השתמשת ב-{{used}} מתוך {{total}}",
|
||||||
"delete_all_downloaded_files": "מחק את כל הקבצים שהורדו",
|
"delete_all_downloaded_files": "מחק את כל הקבצים שהורדו",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "שגיאה",
|
"error": "שגיאה",
|
||||||
"failed_to_get_stream_url": "נכשל בהשגת קישור הזרם",
|
"failed_to_get_stream_url": "נכשל בהשגת קישור הזרם",
|
||||||
"an_error_occurred_while_playing_the_video": "קרתה תקלה במהלך הניגון של הקובץ. בדוק את הלוגים בהגדרות.",
|
"an_error_occured_while_playing_the_video": "קרתה תקלה במהלך הניגון של הקובץ. בדוק את הלוגים בהגדרות.",
|
||||||
"client_error": "שגיאת לקוח",
|
"client_error": "שגיאת לקוח",
|
||||||
"could_not_create_stream_for_chromecast": "נכשל ביצירת זרם עבור Chromecast",
|
"could_not_create_stream_for_chromecast": "נכשל ביצירת זרם עבור Chromecast",
|
||||||
"message_from_server": "הודעה מהשרת: {{message}}",
|
"message_from_server": "הודעה מהשרת: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Értettem",
|
"got_it": "Értettem",
|
||||||
"connection_failed": "Kapcsolódás Sikertelen",
|
"connection_failed": "Kapcsolódás Sikertelen",
|
||||||
"could_not_connect_to_server": "Nem sikerült csatlakozni a szerverhez. Kérjük, ellenőrizd az URL-t és a hálózati kapcsolatot.",
|
"could_not_connect_to_server": "Nem sikerült csatlakozni a szerverhez. Kérjük, ellenőrizd az URL-t és a hálózati kapcsolatot.",
|
||||||
"an_unexpected_error_occurred": "Váratlan Hiba Történt",
|
"an_unexpected_error_occured": "Váratlan Hiba Történt",
|
||||||
"change_server": "Szerverváltás",
|
"change_server": "Szerverváltás",
|
||||||
"invalid_username_or_password": "Érvénytelen Felhasználónév vagy Jelszó",
|
"invalid_username_or_password": "Érvénytelen Felhasználónév vagy Jelszó",
|
||||||
"user_does_not_have_permission_to_log_in": "A felhasználónak nincs jogosultsága a bejelentkezéshez",
|
"user_does_not_have_permission_to_log_in": "A felhasználónak nincs jogosultsága a bejelentkezéshez",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "A szerver túl sokáig válaszol, próbáld újra később",
|
"server_is_taking_too_long_to_respond_try_again_later": "A szerver túl sokáig válaszol, próbáld újra később",
|
||||||
"server_received_too_many_requests_try_again_later": "A szerver túl sok kérést kapott, próbáld újra később.",
|
"server_received_too_many_requests_try_again_later": "A szerver túl sok kérést kapott, próbáld újra később.",
|
||||||
"there_is_a_server_error": "Szerverhiba történt",
|
"there_is_a_server_error": "Szerverhiba történt",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Váratlan hiba történt. Helyesen adtad meg a szerver URL-jét?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Váratlan hiba történt. Helyesen adtad meg a szerver URL-jét?",
|
||||||
"too_old_server_text": "Nem Támogatott Jellyfin-szerver",
|
"too_old_server_text": "Nem Támogatott Jellyfin-szerver",
|
||||||
"too_old_server_description": "Frissítsd a Jellyfint a legújabb verzióra"
|
"too_old_server_description": "Frissítsd a Jellyfint a legújabb verzióra"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Gyorscsatlakozás Engedélyezése",
|
"authorize_button": "Gyorscsatlakozás Engedélyezése",
|
||||||
"enter_the_quick_connect_code": "Add meg a gyors csatlakozási kódot...",
|
"enter_the_quick_connect_code": "Add meg a gyors csatlakozási kódot...",
|
||||||
"success": "Siker",
|
"success": "Siker",
|
||||||
"quick_connect_authorized": "Gyorscsatlakozás Engedélyezve",
|
"quick_connect_autorized": "Gyorscsatlakozás Engedélyezve",
|
||||||
"error": "Hiba",
|
"error": "Hiba",
|
||||||
"invalid_code": "Érvénytelen Kód",
|
"invalid_code": "Érvénytelen Kód",
|
||||||
"authorize": "Engedélyezés"
|
"authorize": "Engedélyezés"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Egyéni Menülinkek Megjelenítése",
|
"show_custom_menu_links": "Egyéni Menülinkek Megjelenítése",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Könyvtárak Elrejtése",
|
"hide_libraries": "Könyvtárak Elrejtése",
|
||||||
"select_libraries_you_want_to_hide": "Válaszd ki azokat a könyvtárakat, amelyeket el szeretnél rejteni a Könyvtár fülön és a kezdőlapon.",
|
"select_liraries_you_want_to_hide": "Válaszd ki azokat a könyvtárakat, amelyeket el szeretnél rejteni a Könyvtár fülön és a kezdőlapon.",
|
||||||
"disable_haptic_feedback": "Haptikus Visszajelzés Letiltása",
|
"disable_haptic_feedback": "Haptikus Visszajelzés Letiltása",
|
||||||
"default_quality": "Alapértelmezett Minőség",
|
"default_quality": "Alapértelmezett Minőség",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Eszköz {{availableSpace}}%",
|
"device_usage": "Eszköz {{availableSpace}}%",
|
||||||
"size_used": "{{used}} / {{total}} Használatban",
|
"size_used": "{{used}} / {{total}} Használatban",
|
||||||
"delete_all_downloaded_files": "Minden Letöltött Fájl Törlése",
|
"delete_all_downloaded_files": "Minden Letöltött Fájl Törlése",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Hiba",
|
"error": "Hiba",
|
||||||
"failed_to_get_stream_url": "Nem sikerült lekérni a stream URL-t",
|
"failed_to_get_stream_url": "Nem sikerült lekérni a stream URL-t",
|
||||||
"an_error_occurred_while_playing_the_video": "Hiba történt a videó lejátszása közben. Ellenőrizd a naplókat a beállításokban.",
|
"an_error_occured_while_playing_the_video": "Hiba történt a videó lejátszása közben. Ellenőrizd a naplókat a beállításokban.",
|
||||||
"client_error": "Kliens Hiba",
|
"client_error": "Kliens Hiba",
|
||||||
"could_not_create_stream_for_chromecast": "A Chromecast stream létrehozása sikertelen volt",
|
"could_not_create_stream_for_chromecast": "A Chromecast stream létrehozása sikertelen volt",
|
||||||
"message_from_server": "Üzenet a szervertől: {{message}}",
|
"message_from_server": "Üzenet a szervertől: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Capito",
|
"got_it": "Capito",
|
||||||
"connection_failed": "Connessione fallita",
|
"connection_failed": "Connessione fallita",
|
||||||
"could_not_connect_to_server": "Impossibile connettersi al server. Controllare l'URL e la connessione di rete.",
|
"could_not_connect_to_server": "Impossibile connettersi al server. Controllare l'URL e la connessione di rete.",
|
||||||
"an_unexpected_error_occurred": "Si è verificato un errore inaspettato",
|
"an_unexpected_error_occured": "Si è verificato un errore inaspettato",
|
||||||
"change_server": "Cambiare il server",
|
"change_server": "Cambiare il server",
|
||||||
"invalid_username_or_password": "Nome utente o password non validi",
|
"invalid_username_or_password": "Nome utente o password non validi",
|
||||||
"user_does_not_have_permission_to_log_in": "L'utente non ha il permesso di accedere",
|
"user_does_not_have_permission_to_log_in": "L'utente non ha il permesso di accedere",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Il server sta impiegando troppo tempo per rispondere, riprovare più tardi",
|
"server_is_taking_too_long_to_respond_try_again_later": "Il server sta impiegando troppo tempo per rispondere, riprovare più tardi",
|
||||||
"server_received_too_many_requests_try_again_later": "Il server ha ricevuto troppe richieste, riprovare più tardi.",
|
"server_received_too_many_requests_try_again_later": "Il server ha ricevuto troppe richieste, riprovare più tardi.",
|
||||||
"there_is_a_server_error": "Si è verificato un errore del server",
|
"there_is_a_server_error": "Si è verificato un errore del server",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Si è verificato un errore imprevisto. L'URL del server è stato inserito correttamente?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Si è verificato un errore imprevisto. L'URL del server è stato inserito correttamente?",
|
||||||
"too_old_server_text": "Scoperto Server Jellyfin non supportato",
|
"too_old_server_text": "Scoperto Server Jellyfin non supportato",
|
||||||
"too_old_server_description": "Aggiorna Jellyfin all'ultima versione"
|
"too_old_server_description": "Aggiorna Jellyfin all'ultima versione"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autorizza Connessione Rapida",
|
"authorize_button": "Autorizza Connessione Rapida",
|
||||||
"enter_the_quick_connect_code": "Inserisci il codice per la Connessione Rapida...",
|
"enter_the_quick_connect_code": "Inserisci il codice per la Connessione Rapida...",
|
||||||
"success": "Successo",
|
"success": "Successo",
|
||||||
"quick_connect_authorized": "Connessione Rapida autorizzata",
|
"quick_connect_autorized": "Connessione Rapida autorizzata",
|
||||||
"error": "Errore",
|
"error": "Errore",
|
||||||
"invalid_code": "Codice invalido",
|
"invalid_code": "Codice invalido",
|
||||||
"authorize": "Autorizza"
|
"authorize": "Autorizza"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Mostra i link del menu personalizzato",
|
"show_custom_menu_links": "Mostra i link del menu personalizzato",
|
||||||
"show_large_home_carousel": "Mostra Carosello Grande nella Home (beta)",
|
"show_large_home_carousel": "Mostra Carosello Grande nella Home (beta)",
|
||||||
"hide_libraries": "Nascondi Librerie",
|
"hide_libraries": "Nascondi Librerie",
|
||||||
"select_libraries_you_want_to_hide": "Selezionate le librerie che volete nascondere dalla scheda Libreria e dalle sezioni della pagina iniziale.",
|
"select_liraries_you_want_to_hide": "Selezionate le librerie che volete nascondere dalla scheda Libreria e dalle sezioni della pagina iniziale.",
|
||||||
"disable_haptic_feedback": "Disabilita il feedback aptico",
|
"disable_haptic_feedback": "Disabilita il feedback aptico",
|
||||||
"default_quality": "Qualità predefinita",
|
"default_quality": "Qualità predefinita",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Dispositivo {{availableSpace}}%",
|
"device_usage": "Dispositivo {{availableSpace}}%",
|
||||||
"size_used": "{{used}} di {{total}} usato",
|
"size_used": "{{used}} di {{total}} usato",
|
||||||
"delete_all_downloaded_files": "Cancella Tutti i File Scaricati",
|
"delete_all_downloaded_files": "Cancella Tutti i File Scaricati",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Precarica automaticamente i brani mentre ascolti per una riproduzione più fluida e il supporto offline",
|
"music_cache_description": "Precarica automaticamente i brani mentre ascolti per una riproduzione più fluida e il supporto offline",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Errore",
|
"error": "Errore",
|
||||||
"failed_to_get_stream_url": "Impossibile ottenere l'URL dello stream",
|
"failed_to_get_stream_url": "Impossibile ottenere l'URL dello stream",
|
||||||
"an_error_occurred_while_playing_the_video": "Si è verificato un errore durante la riproduzione del video. Controllare i log nelle impostazioni.",
|
"an_error_occured_while_playing_the_video": "Si è verificato un errore durante la riproduzione del video. Controllare i log nelle impostazioni.",
|
||||||
"client_error": "Errore del client",
|
"client_error": "Errore del client",
|
||||||
"could_not_create_stream_for_chromecast": "Impossibile creare uno stream per Chromecast",
|
"could_not_create_stream_for_chromecast": "Impossibile creare uno stream per Chromecast",
|
||||||
"message_from_server": "Messaggio dal server",
|
"message_from_server": "Messaggio dal server",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "了解",
|
"got_it": "了解",
|
||||||
"connection_failed": "接続に失敗しました",
|
"connection_failed": "接続に失敗しました",
|
||||||
"could_not_connect_to_server": "サーバーに接続できませんでした。URLとネットワーク接続を確認してください。",
|
"could_not_connect_to_server": "サーバーに接続できませんでした。URLとネットワーク接続を確認してください。",
|
||||||
"an_unexpected_error_occurred": "予期しないエラーが発生しました",
|
"an_unexpected_error_occured": "予期しないエラーが発生しました",
|
||||||
"change_server": "サーバーの変更",
|
"change_server": "サーバーの変更",
|
||||||
"invalid_username_or_password": "ユーザー名またはパスワードが無効です",
|
"invalid_username_or_password": "ユーザー名またはパスワードが無効です",
|
||||||
"user_does_not_have_permission_to_log_in": "ユーザーにログイン権限がありません",
|
"user_does_not_have_permission_to_log_in": "ユーザーにログイン権限がありません",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "サーバーの応答に時間がかかりすぎています。しばらくしてからもう一度お試しください。",
|
"server_is_taking_too_long_to_respond_try_again_later": "サーバーの応答に時間がかかりすぎています。しばらくしてからもう一度お試しください。",
|
||||||
"server_received_too_many_requests_try_again_later": "サーバーにリクエストが多すぎます。後でもう一度お試しください。",
|
"server_received_too_many_requests_try_again_later": "サーバーにリクエストが多すぎます。後でもう一度お試しください。",
|
||||||
"there_is_a_server_error": "サーバーエラーが発生しました",
|
"there_is_a_server_error": "サーバーエラーが発生しました",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "予期しないエラーが発生しました。サーバーのURLを正しく入力しましたか?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "予期しないエラーが発生しました。サーバーのURLを正しく入力しましたか?",
|
||||||
"too_old_server_text": "サポートされていないJellyfinサーバー発見",
|
"too_old_server_text": "サポートされていないJellyfinサーバー発見",
|
||||||
"too_old_server_description": "Jellyfinを最新バージョンにアップデートしてください"
|
"too_old_server_description": "Jellyfinを最新バージョンにアップデートしてください"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "クイックコネクトを承認する",
|
"authorize_button": "クイックコネクトを承認する",
|
||||||
"enter_the_quick_connect_code": "クイックコネクトコードを入力...",
|
"enter_the_quick_connect_code": "クイックコネクトコードを入力...",
|
||||||
"success": "成功しました",
|
"success": "成功しました",
|
||||||
"quick_connect_authorized": "クイックコネクトが承認されました",
|
"quick_connect_autorized": "クイックコネクトが承認されました",
|
||||||
"error": "エラー",
|
"error": "エラー",
|
||||||
"invalid_code": "無効なコードです",
|
"invalid_code": "無効なコードです",
|
||||||
"authorize": "承認"
|
"authorize": "承認"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "カスタムメニューのリンクを表示",
|
"show_custom_menu_links": "カスタムメニューのリンクを表示",
|
||||||
"show_large_home_carousel": "大きなヒーロー(Beta)",
|
"show_large_home_carousel": "大きなヒーロー(Beta)",
|
||||||
"hide_libraries": "ライブラリを非表示",
|
"hide_libraries": "ライブラリを非表示",
|
||||||
"select_libraries_you_want_to_hide": "ライブラリタブとホームページセクションから非表示にするライブラリを選択します。",
|
"select_liraries_you_want_to_hide": "ライブラリタブとホームページセクションから非表示にするライブラリを選択します。",
|
||||||
"disable_haptic_feedback": "触覚フィードバックを無効にする",
|
"disable_haptic_feedback": "触覚フィードバックを無効にする",
|
||||||
"default_quality": "デフォルトの品質",
|
"default_quality": "デフォルトの品質",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "デバイス {{availableSpace}}%",
|
"device_usage": "デバイス {{availableSpace}}%",
|
||||||
"size_used": "{{used}} / {{total}} 使用済み",
|
"size_used": "{{used}} / {{total}} 使用済み",
|
||||||
"delete_all_downloaded_files": "すべてのダウンロードファイルを削除",
|
"delete_all_downloaded_files": "すべてのダウンロードファイルを削除",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "エラー",
|
"error": "エラー",
|
||||||
"failed_to_get_stream_url": "ストリームURLを取得できませんでした",
|
"failed_to_get_stream_url": "ストリームURLを取得できませんでした",
|
||||||
"an_error_occurred_while_playing_the_video": "動画の再生中にエラーが発生しました。設定でログを確認してください。",
|
"an_error_occured_while_playing_the_video": "動画の再生中にエラーが発生しました。設定でログを確認してください。",
|
||||||
"client_error": "クライアントエラー",
|
"client_error": "クライアントエラー",
|
||||||
"could_not_create_stream_for_chromecast": "Chromecastのストリームを作成できませんでした",
|
"could_not_create_stream_for_chromecast": "Chromecastのストリームを作成できませんでした",
|
||||||
"message_from_server": "サーバーからのメッセージ",
|
"message_from_server": "サーバーからのメッセージ",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "성공",
|
"got_it": "성공",
|
||||||
"connection_failed": "연결 실패",
|
"connection_failed": "연결 실패",
|
||||||
"could_not_connect_to_server": "서버에 연결되지 않았습니다. URL과 네트워크 상태를 확인하세요.",
|
"could_not_connect_to_server": "서버에 연결되지 않았습니다. URL과 네트워크 상태를 확인하세요.",
|
||||||
"an_unexpected_error_occurred": "예기치 않은 오류가 발생했습니다",
|
"an_unexpected_error_occured": "예기치 않은 오류가 발생했습니다",
|
||||||
"change_server": "서버 변경",
|
"change_server": "서버 변경",
|
||||||
"invalid_username_or_password": "잘못된 아이디 혹은 비밀번호입니다",
|
"invalid_username_or_password": "잘못된 아이디 혹은 비밀번호입니다",
|
||||||
"user_does_not_have_permission_to_log_in": "로그인 하기 위한 권한이 없습니다",
|
"user_does_not_have_permission_to_log_in": "로그인 하기 위한 권한이 없습니다",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "서버 응답이 너무 느립니다. 나중에 다시 시도하세요",
|
"server_is_taking_too_long_to_respond_try_again_later": "서버 응답이 너무 느립니다. 나중에 다시 시도하세요",
|
||||||
"server_received_too_many_requests_try_again_later": "서버가 너무 많은 요청을 받았습니다. 나중에 다시 시도하세요.",
|
"server_received_too_many_requests_try_again_later": "서버가 너무 많은 요청을 받았습니다. 나중에 다시 시도하세요.",
|
||||||
"there_is_a_server_error": "서버 에러",
|
"there_is_a_server_error": "서버 에러",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "예기치 않은 오류가 발생했습니다. 서버 URL을 올바르게 입력하셨습니까?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "예기치 않은 오류가 발생했습니다. 서버 URL을 올바르게 입력하셨습니까?",
|
||||||
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
||||||
"too_old_server_description": "Please update Jellyfin to the latest version"
|
"too_old_server_description": "Please update Jellyfin to the latest version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "퀵 커넥트 승인",
|
"authorize_button": "퀵 커넥트 승인",
|
||||||
"enter_the_quick_connect_code": "퀵 커넥트 코드 입력...",
|
"enter_the_quick_connect_code": "퀵 커넥트 코드 입력...",
|
||||||
"success": "성공",
|
"success": "성공",
|
||||||
"quick_connect_authorized": "퀵 커넥트 승인됨",
|
"quick_connect_autorized": "퀵 커넥트 승인됨",
|
||||||
"error": "오류",
|
"error": "오류",
|
||||||
"invalid_code": "유효하지 않은 코드",
|
"invalid_code": "유효하지 않은 코드",
|
||||||
"authorize": "승인"
|
"authorize": "승인"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "사용자 지정 메뉴 링크 표시",
|
"show_custom_menu_links": "사용자 지정 메뉴 링크 표시",
|
||||||
"show_large_home_carousel": "대형 홈 슬라이드 배너 표시 (베타)",
|
"show_large_home_carousel": "대형 홈 슬라이드 배너 표시 (베타)",
|
||||||
"hide_libraries": "라이브러리 숨기기",
|
"hide_libraries": "라이브러리 숨기기",
|
||||||
"select_libraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
"select_liraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
||||||
"disable_haptic_feedback": "Disable Haptic Feedback",
|
"disable_haptic_feedback": "Disable Haptic Feedback",
|
||||||
"default_quality": "Default Quality",
|
"default_quality": "Default Quality",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "디바이스 {{availableSpace}}%",
|
"device_usage": "디바이스 {{availableSpace}}%",
|
||||||
"size_used": "{{used}} of {{total}} Used",
|
"size_used": "{{used}} of {{total}} Used",
|
||||||
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"failed_to_get_stream_url": "Failed to get the stream URL",
|
"failed_to_get_stream_url": "Failed to get the stream URL",
|
||||||
"an_error_occurred_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
"an_error_occured_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
||||||
"client_error": "Client Error",
|
"client_error": "Client Error",
|
||||||
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
||||||
"message_from_server": "Message from Server: {{message}}",
|
"message_from_server": "Message from Server: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Begrepen",
|
"got_it": "Begrepen",
|
||||||
"connection_failed": "Verbinding mislukt",
|
"connection_failed": "Verbinding mislukt",
|
||||||
"could_not_connect_to_server": "Kon niet verbinden met de server. Controleer de URL en je netwerkverbinding.",
|
"could_not_connect_to_server": "Kon niet verbinden met de server. Controleer de URL en je netwerkverbinding.",
|
||||||
"an_unexpected_error_occurred": "Er is een onverwachte fout opgetreden",
|
"an_unexpected_error_occured": "Er is een onverwachte fout opgetreden",
|
||||||
"change_server": "Server wijzigen",
|
"change_server": "Server wijzigen",
|
||||||
"invalid_username_or_password": "Onjuiste gebruikersnaam of wachtwoord",
|
"invalid_username_or_password": "Onjuiste gebruikersnaam of wachtwoord",
|
||||||
"user_does_not_have_permission_to_log_in": "Gebruiker heeft geen rechten om aan te melden",
|
"user_does_not_have_permission_to_log_in": "Gebruiker heeft geen rechten om aan te melden",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "De server doet er te lang over om te antwoorden, probeer later opnieuw",
|
"server_is_taking_too_long_to_respond_try_again_later": "De server doet er te lang over om te antwoorden, probeer later opnieuw",
|
||||||
"server_received_too_many_requests_try_again_later": "De server heeft te veel aanvragen ontvangen, probeer later opnieuw",
|
"server_received_too_many_requests_try_again_later": "De server heeft te veel aanvragen ontvangen, probeer later opnieuw",
|
||||||
"there_is_a_server_error": "Er is een serverfout",
|
"there_is_a_server_error": "Er is een serverfout",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Er is een onverwachte fout opgetreden. Heb je de server URL correct ingegeven?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Er is een onverwachte fout opgetreden. Heb je de server URL correct ingegeven?",
|
||||||
"too_old_server_text": "Niet-ondersteunde Jellyfin Server Ontdekt",
|
"too_old_server_text": "Niet-ondersteunde Jellyfin Server Ontdekt",
|
||||||
"too_old_server_description": "Werk Jellyfin bij naar de laatste versie"
|
"too_old_server_description": "Werk Jellyfin bij naar de laatste versie"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Snel Verbinden toestaan",
|
"authorize_button": "Snel Verbinden toestaan",
|
||||||
"enter_the_quick_connect_code": "Vul de Snel Verbinden code in...",
|
"enter_the_quick_connect_code": "Vul de Snel Verbinden code in...",
|
||||||
"success": "Succes",
|
"success": "Succes",
|
||||||
"quick_connect_authorized": "Snel Verbinden toegestaan",
|
"quick_connect_autorized": "Snel Verbinden toegestaan",
|
||||||
"error": "Fout",
|
"error": "Fout",
|
||||||
"invalid_code": "Ongeldige code",
|
"invalid_code": "Ongeldige code",
|
||||||
"authorize": "Toestaan"
|
"authorize": "Toestaan"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Aangepaste menulinks tonen",
|
"show_custom_menu_links": "Aangepaste menulinks tonen",
|
||||||
"show_large_home_carousel": "Toon grote carrousel op startpagina (bèta)",
|
"show_large_home_carousel": "Toon grote carrousel op startpagina (bèta)",
|
||||||
"hide_libraries": "Verberg Bibliotheken",
|
"hide_libraries": "Verberg Bibliotheken",
|
||||||
"select_libraries_you_want_to_hide": "Selecteer de bibliotheken die je wil verbergen van de Bibliotheektab en hoofdpagina onderdelen.",
|
"select_liraries_you_want_to_hide": "Selecteer de bibliotheken die je wil verbergen van de Bibliotheektab en hoofdpagina onderdelen.",
|
||||||
"disable_haptic_feedback": "Haptische feedback uitschakelen",
|
"disable_haptic_feedback": "Haptische feedback uitschakelen",
|
||||||
"default_quality": "Standaard kwaliteit",
|
"default_quality": "Standaard kwaliteit",
|
||||||
"default_playback_speed": "Standaard Afspeelsnelheid",
|
"default_playback_speed": "Standaard Afspeelsnelheid",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Toestel {{availableSpace}}%",
|
"device_usage": "Toestel {{availableSpace}}%",
|
||||||
"size_used": "{{used}} van {{total}} gebruikt",
|
"size_used": "{{used}} van {{total}} gebruikt",
|
||||||
"delete_all_downloaded_files": "Verwijder alle gedownloade bestanden",
|
"delete_all_downloaded_files": "Verwijder alle gedownloade bestanden",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Fout",
|
"error": "Fout",
|
||||||
"failed_to_get_stream_url": "De stream-URL kon niet worden verkregen",
|
"failed_to_get_stream_url": "De stream-URL kon niet worden verkregen",
|
||||||
"an_error_occurred_while_playing_the_video": "Er is een fout opgetreden tijdens het afspelen van de video. Controleer de logs in de instellingen.",
|
"an_error_occured_while_playing_the_video": "Er is een fout opgetreden tijdens het afspelen van de video. Controleer de logs in de instellingen.",
|
||||||
"client_error": "Fout van de client",
|
"client_error": "Fout van de client",
|
||||||
"could_not_create_stream_for_chromecast": "Kon geen stream maken voor Chromecast",
|
"could_not_create_stream_for_chromecast": "Kon geen stream maken voor Chromecast",
|
||||||
"message_from_server": "Bericht van de server",
|
"message_from_server": "Bericht van de server",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Har det",
|
"got_it": "Har det",
|
||||||
"connection_failed": "Tilkobling mislyktes",
|
"connection_failed": "Tilkobling mislyktes",
|
||||||
"could_not_connect_to_server": "Kunne ikke koble til serveren. Kontroller nettadressen og nettverkstilkoblingen.",
|
"could_not_connect_to_server": "Kunne ikke koble til serveren. Kontroller nettadressen og nettverkstilkoblingen.",
|
||||||
"an_unexpected_error_occurred": "En uventet feil oppstod",
|
"an_unexpected_error_occured": "En uventet feil oppstod",
|
||||||
"change_server": "Endre server",
|
"change_server": "Endre server",
|
||||||
"invalid_username_or_password": "Ugyldig brukernavn eller passord",
|
"invalid_username_or_password": "Ugyldig brukernavn eller passord",
|
||||||
"user_does_not_have_permission_to_log_in": "Brukeren har ikke tillatelse til å logge inn",
|
"user_does_not_have_permission_to_log_in": "Brukeren har ikke tillatelse til å logge inn",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Serveren tar for lang tid å svare, prøv igjen senere",
|
"server_is_taking_too_long_to_respond_try_again_later": "Serveren tar for lang tid å svare, prøv igjen senere",
|
||||||
"server_received_too_many_requests_try_again_later": "Serveren mottok for mange forespørsler, prøv igjen senere.",
|
"server_received_too_many_requests_try_again_later": "Serveren mottok for mange forespørsler, prøv igjen senere.",
|
||||||
"there_is_a_server_error": "Det er en serverfeil",
|
"there_is_a_server_error": "Det er en serverfeil",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Det oppstod en uventet feil. Sendte du inn URLen til serveren riktig?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Det oppstod en uventet feil. Sendte du inn URLen til serveren riktig?",
|
||||||
"too_old_server_text": "Ustøttet Jellyfin Server oppdaget",
|
"too_old_server_text": "Ustøttet Jellyfin Server oppdaget",
|
||||||
"too_old_server_description": "Vennligst oppdater Jellyfin til nyeste versjon"
|
"too_old_server_description": "Vennligst oppdater Jellyfin til nyeste versjon"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autoriser rask tilkobling",
|
"authorize_button": "Autoriser rask tilkobling",
|
||||||
"enter_the_quick_connect_code": "Skriv inn hurtig-tilkobling kode...",
|
"enter_the_quick_connect_code": "Skriv inn hurtig-tilkobling kode...",
|
||||||
"success": "Vellykket",
|
"success": "Vellykket",
|
||||||
"quick_connect_authorized": "Hurtig tilkobling autorisert",
|
"quick_connect_autorized": "Hurtig tilkobling autorisert",
|
||||||
"error": "Feil",
|
"error": "Feil",
|
||||||
"invalid_code": "Ugyldig kode",
|
"invalid_code": "Ugyldig kode",
|
||||||
"authorize": "Autoriser"
|
"authorize": "Autoriser"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Vis tilpassede menylenker",
|
"show_custom_menu_links": "Vis tilpassede menylenker",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Skjul biblioteker",
|
"hide_libraries": "Skjul biblioteker",
|
||||||
"select_libraries_you_want_to_hide": "Velg bibliotekene du vil skjule deg for Biblioteket og avsnittene for hjemmesider.",
|
"select_liraries_you_want_to_hide": "Velg bibliotekene du vil skjule deg for Biblioteket og avsnittene for hjemmesider.",
|
||||||
"disable_haptic_feedback": "Deaktiver Haptisk tilbakemelding",
|
"disable_haptic_feedback": "Deaktiver Haptisk tilbakemelding",
|
||||||
"default_quality": "Standard kvalitet",
|
"default_quality": "Standard kvalitet",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Enhet {{availableSpace}}%",
|
"device_usage": "Enhet {{availableSpace}}%",
|
||||||
"size_used": "{{used}} av {{total}} er i bruk",
|
"size_used": "{{used}} av {{total}} er i bruk",
|
||||||
"delete_all_downloaded_files": "Slett alle nedlastede filer",
|
"delete_all_downloaded_files": "Slett alle nedlastede filer",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Feil",
|
"error": "Feil",
|
||||||
"failed_to_get_stream_url": "Kan ikke hente nettadressen for stream",
|
"failed_to_get_stream_url": "Kan ikke hente nettadressen for stream",
|
||||||
"an_error_occurred_while_playing_the_video": "En feil oppstod under video. Sjekk loggene i innstillingene.",
|
"an_error_occured_while_playing_the_video": "En feil oppstod under video. Sjekk loggene i innstillingene.",
|
||||||
"client_error": "Feil med annonsør",
|
"client_error": "Feil med annonsør",
|
||||||
"could_not_create_stream_for_chromecast": "Kan ikke opprette en strøm for Chromecast",
|
"could_not_create_stream_for_chromecast": "Kan ikke opprette en strøm for Chromecast",
|
||||||
"message_from_server": "Melding fra tjener: {{message}}",
|
"message_from_server": "Melding fra tjener: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Rozumiem",
|
"got_it": "Rozumiem",
|
||||||
"connection_failed": "Połączenie nieudane",
|
"connection_failed": "Połączenie nieudane",
|
||||||
"could_not_connect_to_server": "Nie można połączyć się z serwerem. Sprawdź adres URL oraz połączenie sieciowe.",
|
"could_not_connect_to_server": "Nie można połączyć się z serwerem. Sprawdź adres URL oraz połączenie sieciowe.",
|
||||||
"an_unexpected_error_occurred": "Wystąpił nieoczekiwany błąd",
|
"an_unexpected_error_occured": "Wystąpił nieoczekiwany błąd",
|
||||||
"change_server": "Zmień serwer",
|
"change_server": "Zmień serwer",
|
||||||
"invalid_username_or_password": "Nieprawidłowa nazwa użytkownika lub hasło",
|
"invalid_username_or_password": "Nieprawidłowa nazwa użytkownika lub hasło",
|
||||||
"user_does_not_have_permission_to_log_in": "Użytkownik nie ma uprawnień do logowania",
|
"user_does_not_have_permission_to_log_in": "Użytkownik nie ma uprawnień do logowania",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Serwer zbyt długo nie odpowiada – spróbuj ponownie później",
|
"server_is_taking_too_long_to_respond_try_again_later": "Serwer zbyt długo nie odpowiada – spróbuj ponownie później",
|
||||||
"server_received_too_many_requests_try_again_later": "Serwer otrzymał zbyt wiele żądań – spróbuj ponownie później.",
|
"server_received_too_many_requests_try_again_later": "Serwer otrzymał zbyt wiele żądań – spróbuj ponownie później.",
|
||||||
"there_is_a_server_error": "Wystąpił błąd serwera",
|
"there_is_a_server_error": "Wystąpił błąd serwera",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Wystąpił nieoczekiwany błąd. Czy wpisałeś poprawny adres URL?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Wystąpił nieoczekiwany błąd. Czy wpisałeś poprawny adres URL?",
|
||||||
"too_old_server_text": "Wykryto nieobsługiwany serwer Jellyfin",
|
"too_old_server_text": "Wykryto nieobsługiwany serwer Jellyfin",
|
||||||
"too_old_server_description": "Proszę zaktualizować Jellyfin do najnowszej wersji"
|
"too_old_server_description": "Proszę zaktualizować Jellyfin do najnowszej wersji"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autoryzuj szybkie połączenie",
|
"authorize_button": "Autoryzuj szybkie połączenie",
|
||||||
"enter_the_quick_connect_code": "Wpisz kod szybkiego połączenia...",
|
"enter_the_quick_connect_code": "Wpisz kod szybkiego połączenia...",
|
||||||
"success": "Sukces",
|
"success": "Sukces",
|
||||||
"quick_connect_authorized": "Szybkie połączenie autoryzowane",
|
"quick_connect_autorized": "Szybkie połączenie autoryzowane",
|
||||||
"error": "Błąd",
|
"error": "Błąd",
|
||||||
"invalid_code": "Nieprawidłowy kod",
|
"invalid_code": "Nieprawidłowy kod",
|
||||||
"authorize": "Autoryzuj"
|
"authorize": "Autoryzuj"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Pokaż niestandardowe odnośniki w menu",
|
"show_custom_menu_links": "Pokaż niestandardowe odnośniki w menu",
|
||||||
"show_large_home_carousel": "Wyświetl Dużą Karuzelę na ekranie głównym (beta)",
|
"show_large_home_carousel": "Wyświetl Dużą Karuzelę na ekranie głównym (beta)",
|
||||||
"hide_libraries": "Ukryj biblioteki",
|
"hide_libraries": "Ukryj biblioteki",
|
||||||
"select_libraries_you_want_to_hide": "Wybierz biblioteki, które chcesz ukryć na karcie Biblioteka i w sekcjach strony głównej.",
|
"select_liraries_you_want_to_hide": "Wybierz biblioteki, które chcesz ukryć na karcie Biblioteka i w sekcjach strony głównej.",
|
||||||
"disable_haptic_feedback": "Wyłącz wibracje",
|
"disable_haptic_feedback": "Wyłącz wibracje",
|
||||||
"default_quality": "Domyślna jakość",
|
"default_quality": "Domyślna jakość",
|
||||||
"default_playback_speed": "Domyślna prędkość odtwarzania",
|
"default_playback_speed": "Domyślna prędkość odtwarzania",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Urządzenie {{availableSpace}}%",
|
"device_usage": "Urządzenie {{availableSpace}}%",
|
||||||
"size_used": "{{used}} z {{total}} wykorzystane",
|
"size_used": "{{used}} z {{total}} wykorzystane",
|
||||||
"delete_all_downloaded_files": "Usuń wszystkie pobrane pliki",
|
"delete_all_downloaded_files": "Usuń wszystkie pobrane pliki",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Bufor muzyki",
|
"music_cache_title": "Bufor muzyki",
|
||||||
"music_cache_description": "Automatycznie buforuj piosenki w trakcie słuchania dla płynniejszego odtwarzania i wsparcia offline",
|
"music_cache_description": "Automatycznie buforuj piosenki w trakcie słuchania dla płynniejszego odtwarzania i wsparcia offline",
|
||||||
"clear_music_cache": "Wyczyść bufor muzyki",
|
"clear_music_cache": "Wyczyść bufor muzyki",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Błąd",
|
"error": "Błąd",
|
||||||
"failed_to_get_stream_url": "Nie udało się pobrać adresu strumienia",
|
"failed_to_get_stream_url": "Nie udało się pobrać adresu strumienia",
|
||||||
"an_error_occurred_while_playing_the_video": "Wystąpił błąd podczas odtwarzania wideo. Sprawdź logi w ustawieniach.",
|
"an_error_occured_while_playing_the_video": "Wystąpił błąd podczas odtwarzania wideo. Sprawdź logi w ustawieniach.",
|
||||||
"client_error": "Błąd klienta",
|
"client_error": "Błąd klienta",
|
||||||
"could_not_create_stream_for_chromecast": "Nie udało się utworzyć strumienia dla Chromecasta",
|
"could_not_create_stream_for_chromecast": "Nie udało się utworzyć strumienia dla Chromecasta",
|
||||||
"message_from_server": "Wiadomość z serwera: {{message}}",
|
"message_from_server": "Wiadomość z serwera: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Tenho isso",
|
"got_it": "Tenho isso",
|
||||||
"connection_failed": "Falha na conexão",
|
"connection_failed": "Falha na conexão",
|
||||||
"could_not_connect_to_server": "Não foi possível conectar ao servidor. Verifique a URL e sua conexão de rede.",
|
"could_not_connect_to_server": "Não foi possível conectar ao servidor. Verifique a URL e sua conexão de rede.",
|
||||||
"an_unexpected_error_occurred": "An unexpected error occurred",
|
"an_unexpected_error_occured": "Ocorreu um erro inesperado",
|
||||||
"change_server": "Alterar Servidor",
|
"change_server": "Alterar Servidor",
|
||||||
"invalid_username_or_password": "Usuário ou senha inválidos",
|
"invalid_username_or_password": "Usuário ou senha inválidos",
|
||||||
"user_does_not_have_permission_to_log_in": "Usuário não tem permissão para fazer login",
|
"user_does_not_have_permission_to_log_in": "Usuário não tem permissão para fazer login",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "O servidor está demorando muito para responder, tente novamente mais tarde",
|
"server_is_taking_too_long_to_respond_try_again_later": "O servidor está demorando muito para responder, tente novamente mais tarde",
|
||||||
"server_received_too_many_requests_try_again_later": "O servidor recebeu muitos pedidos, tente novamente mais tarde.",
|
"server_received_too_many_requests_try_again_later": "O servidor recebeu muitos pedidos, tente novamente mais tarde.",
|
||||||
"there_is_a_server_error": "Existe um erro no servidor",
|
"there_is_a_server_error": "Existe um erro no servidor",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "An unexpected error occurred. Did you enter the server URL correctly?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Ocorreu um erro inesperado. Você inseriu a URL do servidor corretamente?",
|
||||||
"too_old_server_text": "Servidor Jellyfin Descoberto Não Suportado",
|
"too_old_server_text": "Servidor Jellyfin Descoberto Não Suportado",
|
||||||
"too_old_server_description": "Por favor, atualize o Jellyfin para a versão mais recente"
|
"too_old_server_description": "Por favor, atualize o Jellyfin para a versão mais recente"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autorizar conexão rápida",
|
"authorize_button": "Autorizar conexão rápida",
|
||||||
"enter_the_quick_connect_code": "Insira o código de conexão rápida...",
|
"enter_the_quick_connect_code": "Insira o código de conexão rápida...",
|
||||||
"success": "Sucesso",
|
"success": "Sucesso",
|
||||||
"quick_connect_authorized": "Quick Connect authorized",
|
"quick_connect_autorized": "Acesso Rápido Autorizado",
|
||||||
"error": "Erro",
|
"error": "Erro",
|
||||||
"invalid_code": "Código inválido",
|
"invalid_code": "Código inválido",
|
||||||
"authorize": "Autorizar"
|
"authorize": "Autorizar"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Mostrar Links de Menu Personalizado",
|
"show_custom_menu_links": "Mostrar Links de Menu Personalizado",
|
||||||
"show_large_home_carousel": "Mostrar Carrossel Grande (beta)",
|
"show_large_home_carousel": "Mostrar Carrossel Grande (beta)",
|
||||||
"hide_libraries": "Ocultar bibliotecas",
|
"hide_libraries": "Ocultar bibliotecas",
|
||||||
"select_libraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
"select_liraries_you_want_to_hide": "Selecione as bibliotecas que você deseja ocultar da aba Biblioteca e seções da página inicial.",
|
||||||
"disable_haptic_feedback": "Desativar o retorno tátil",
|
"disable_haptic_feedback": "Desativar o retorno tátil",
|
||||||
"default_quality": "Qualidade Padrão",
|
"default_quality": "Qualidade Padrão",
|
||||||
"default_playback_speed": "Velocidade padrão de reprodução",
|
"default_playback_speed": "Velocidade padrão de reprodução",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Dispositivo {{availableSpace}}%",
|
"device_usage": "Dispositivo {{availableSpace}}%",
|
||||||
"size_used": "{{used}} de {{total}} Utilizados",
|
"size_used": "{{used}} de {{total}} Utilizados",
|
||||||
"delete_all_downloaded_files": "Excluir todos os arquivos baixados",
|
"delete_all_downloaded_files": "Excluir todos os arquivos baixados",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Cache de Música",
|
"music_cache_title": "Cache de Música",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Limpar Cache de Música",
|
"clear_music_cache": "Limpar Cache de Música",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "ERRO",
|
"error": "ERRO",
|
||||||
"failed_to_get_stream_url": "Falha ao obter a URL de transmissão",
|
"failed_to_get_stream_url": "Falha ao obter a URL de transmissão",
|
||||||
"an_error_occurred_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
"an_error_occured_while_playing_the_video": "Ocorreu um erro ao reproduzir o vídeo. Verifique os logs nas configurações.",
|
||||||
"client_error": "Erro de Cliente",
|
"client_error": "Erro de Cliente",
|
||||||
"could_not_create_stream_for_chromecast": "Não foi possível criar um fluxo para o Chromecast",
|
"could_not_create_stream_for_chromecast": "Não foi possível criar um fluxo para o Chromecast",
|
||||||
"message_from_server": "Mensagem do Servidor: {{message}}",
|
"message_from_server": "Mensagem do Servidor: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Am înţeles",
|
"got_it": "Am înţeles",
|
||||||
"connection_failed": "Conectare eșuată",
|
"connection_failed": "Conectare eșuată",
|
||||||
"could_not_connect_to_server": "Nu s-a putut conecta la server. Verificați adresa URL și conexiunea la internet.",
|
"could_not_connect_to_server": "Nu s-a putut conecta la server. Verificați adresa URL și conexiunea la internet.",
|
||||||
"an_unexpected_error_occurred": "A apărut o eroare neașteptată",
|
"an_unexpected_error_occured": "A apărut o eroare neașteptată",
|
||||||
"change_server": "Schimba",
|
"change_server": "Schimba",
|
||||||
"invalid_username_or_password": "Nume de utilizator sau parolă greșită",
|
"invalid_username_or_password": "Nume de utilizator sau parolă greșită",
|
||||||
"user_does_not_have_permission_to_log_in": "Utilizatorul nu are permisiunea de a se conecta",
|
"user_does_not_have_permission_to_log_in": "Utilizatorul nu are permisiunea de a se conecta",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Serverul răspunde prea greu, încearcă din nou mai târziu.",
|
"server_is_taking_too_long_to_respond_try_again_later": "Serverul răspunde prea greu, încearcă din nou mai târziu.",
|
||||||
"server_received_too_many_requests_try_again_later": "Serverul a primit prea multe solicitări, încercați din nou mai târziu.",
|
"server_received_too_many_requests_try_again_later": "Serverul a primit prea multe solicitări, încercați din nou mai târziu.",
|
||||||
"there_is_a_server_error": "Eroare de server",
|
"there_is_a_server_error": "Eroare de server",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "A apărut o eroare neașteptată. Ați introdus corect adresa URL a serverului?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "A apărut o eroare neașteptată. Ați introdus corect adresa URL a serverului?",
|
||||||
"too_old_server_text": "Serverul Jellyfin Neacceptat Descoperit",
|
"too_old_server_text": "Serverul Jellyfin Neacceptat Descoperit",
|
||||||
"too_old_server_description": "Vă rugăm să actualizați Jellyfin la cea mai recentă versiune"
|
"too_old_server_description": "Vă rugăm să actualizați Jellyfin la cea mai recentă versiune"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Autorizare conectare rapidă",
|
"authorize_button": "Autorizare conectare rapidă",
|
||||||
"enter_the_quick_connect_code": "Introduceți codul pt. conectare rapidă...",
|
"enter_the_quick_connect_code": "Introduceți codul pt. conectare rapidă...",
|
||||||
"success": "Succes",
|
"success": "Succes",
|
||||||
"quick_connect_authorized": "Conectare rapidă autorizată",
|
"quick_connect_autorized": "Conectare rapidă autorizată",
|
||||||
"error": "Eroare",
|
"error": "Eroare",
|
||||||
"invalid_code": "Cod invalid.",
|
"invalid_code": "Cod invalid.",
|
||||||
"authorize": "Autorizează"
|
"authorize": "Autorizează"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Afișează link-uri personalizate în meniu",
|
"show_custom_menu_links": "Afișează link-uri personalizate în meniu",
|
||||||
"show_large_home_carousel": "Arată Caruselul Media Mare (beta)",
|
"show_large_home_carousel": "Arată Caruselul Media Mare (beta)",
|
||||||
"hide_libraries": "Ascunde bibliotecile",
|
"hide_libraries": "Ascunde bibliotecile",
|
||||||
"select_libraries_you_want_to_hide": "Selectează bibliotecile pe care dorești să le ascunzi din fila Bibliotecă și din secțiunile paginii principale.",
|
"select_liraries_you_want_to_hide": "Selectează bibliotecile pe care dorești să le ascunzi din fila Bibliotecă și din secțiunile paginii principale.",
|
||||||
"disable_haptic_feedback": "Dezactivează vibrațiile tactile",
|
"disable_haptic_feedback": "Dezactivează vibrațiile tactile",
|
||||||
"default_quality": "Calitate implicită",
|
"default_quality": "Calitate implicită",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Dispozitiv {{availableSpace}}%",
|
"device_usage": "Dispozitiv {{availableSpace}}%",
|
||||||
"size_used": "{{used}} din {{total}} folosit",
|
"size_used": "{{used}} din {{total}} folosit",
|
||||||
"delete_all_downloaded_files": "Ștergeți toate fișierele descărcate",
|
"delete_all_downloaded_files": "Ștergeți toate fișierele descărcate",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Eroare",
|
"error": "Eroare",
|
||||||
"failed_to_get_stream_url": "Nu s-a putut obține adresa URL a fluxului",
|
"failed_to_get_stream_url": "Nu s-a putut obține adresa URL a fluxului",
|
||||||
"an_error_occurred_while_playing_the_video": "A apărut o eroare la redarea videoclipului. Verificați jurnalele în setări.",
|
"an_error_occured_while_playing_the_video": "A apărut o eroare la redarea videoclipului. Verificați jurnalele în setări.",
|
||||||
"client_error": "Eroare client",
|
"client_error": "Eroare client",
|
||||||
"could_not_create_stream_for_chromecast": "Nu s-a putut crea un flux pentru Chromecast",
|
"could_not_create_stream_for_chromecast": "Nu s-a putut crea un flux pentru Chromecast",
|
||||||
"message_from_server": "Mesaj de la server: {{message}}",
|
"message_from_server": "Mesaj de la server: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Принято",
|
"got_it": "Принято",
|
||||||
"connection_failed": "Соединение не удалось",
|
"connection_failed": "Соединение не удалось",
|
||||||
"could_not_connect_to_server": "Не удалось подключиться к серверу. Пожалуйста, проверьте URL и ваше интернет-соединение.",
|
"could_not_connect_to_server": "Не удалось подключиться к серверу. Пожалуйста, проверьте URL и ваше интернет-соединение.",
|
||||||
"an_unexpected_error_occurred": "Возникла непредвиденная ошибка",
|
"an_unexpected_error_occured": "Возникла непредвиденная ошибка",
|
||||||
"change_server": "Поменять сервер",
|
"change_server": "Поменять сервер",
|
||||||
"invalid_username_or_password": "Неправильное имя пользователя или пароль",
|
"invalid_username_or_password": "Неправильное имя пользователя или пароль",
|
||||||
"user_does_not_have_permission_to_log_in": "Пользователь не имеет прав на вход",
|
"user_does_not_have_permission_to_log_in": "Пользователь не имеет прав на вход",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Сервер долго не отвечает, попробуйте позже",
|
"server_is_taking_too_long_to_respond_try_again_later": "Сервер долго не отвечает, попробуйте позже",
|
||||||
"server_received_too_many_requests_try_again_later": "Сервер получил слишком много запросов, попробуйте позже.",
|
"server_received_too_many_requests_try_again_later": "Сервер получил слишком много запросов, попробуйте позже.",
|
||||||
"there_is_a_server_error": "Возникла ошибка сервера",
|
"there_is_a_server_error": "Возникла ошибка сервера",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Возникла непредвиденная ошибка. Вы правильно ввели URL?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Возникла непредвиденная ошибка. Вы правильно ввели URL?",
|
||||||
"too_old_server_text": "Обнаружен неподдерживаемый сервер Jellyfin",
|
"too_old_server_text": "Обнаружен неподдерживаемый сервер Jellyfin",
|
||||||
"too_old_server_description": "Пожалуйста, обновите Jellyfin до последней версии"
|
"too_old_server_description": "Пожалуйста, обновите Jellyfin до последней версии"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Авторизовать через быстрое подключение",
|
"authorize_button": "Авторизовать через быстрое подключение",
|
||||||
"enter_the_quick_connect_code": "Введите код для быстрого подключения...",
|
"enter_the_quick_connect_code": "Введите код для быстрого подключения...",
|
||||||
"success": "Успех",
|
"success": "Успех",
|
||||||
"quick_connect_authorized": "Быстрое подключение авторизовано",
|
"quick_connect_autorized": "Быстрое подключение авторизовано",
|
||||||
"error": "Ошибка",
|
"error": "Ошибка",
|
||||||
"invalid_code": "Неверный код",
|
"invalid_code": "Неверный код",
|
||||||
"authorize": "Авторизовать"
|
"authorize": "Авторизовать"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Показать ссылки пользовательского меню",
|
"show_custom_menu_links": "Показать ссылки пользовательского меню",
|
||||||
"show_large_home_carousel": "Показывать большую карусель (beta)",
|
"show_large_home_carousel": "Показывать большую карусель (beta)",
|
||||||
"hide_libraries": "Скрыть библиотеки",
|
"hide_libraries": "Скрыть библиотеки",
|
||||||
"select_libraries_you_want_to_hide": "Выберите Библиотеки, которое хотите спрятать из вкладки Библиотеки и домашней страницы.",
|
"select_liraries_you_want_to_hide": "Выберите Библиотеки, которое хотите спрятать из вкладки Библиотеки и домашней страницы.",
|
||||||
"disable_haptic_feedback": "Отключить тактильную обратную связь",
|
"disable_haptic_feedback": "Отключить тактильную обратную связь",
|
||||||
"default_quality": "Качество по умолчанию",
|
"default_quality": "Качество по умолчанию",
|
||||||
"default_playback_speed": "Скорость воспроизведения по умолчанию",
|
"default_playback_speed": "Скорость воспроизведения по умолчанию",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Устройство {{availableSpace}}%",
|
"device_usage": "Устройство {{availableSpace}}%",
|
||||||
"size_used": "{{used}} из {{total}} использовано",
|
"size_used": "{{used}} из {{total}} использовано",
|
||||||
"delete_all_downloaded_files": "Удалить все загруженные файлы",
|
"delete_all_downloaded_files": "Удалить все загруженные файлы",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Кеш музыки",
|
"music_cache_title": "Кеш музыки",
|
||||||
"music_cache_description": "Автоматически кешировать песни по мере прослушивания для плавного воспроизведения и поддержки отсутствия интернета",
|
"music_cache_description": "Автоматически кешировать песни по мере прослушивания для плавного воспроизведения и поддержки отсутствия интернета",
|
||||||
"clear_music_cache": "Очистить кеш музыки",
|
"clear_music_cache": "Очистить кеш музыки",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Ошибка",
|
"error": "Ошибка",
|
||||||
"failed_to_get_stream_url": "Не удалось получить URL потока",
|
"failed_to_get_stream_url": "Не удалось получить URL потока",
|
||||||
"an_error_occurred_while_playing_the_video": "Возникла Неожиданная ошибка во время воспроизведения. Проверьте логи в настройках.",
|
"an_error_occured_while_playing_the_video": "Возникла Неожиданная ошибка во время воспроизведения. Проверьте логи в настройках.",
|
||||||
"client_error": "Ошибка клиента",
|
"client_error": "Ошибка клиента",
|
||||||
"could_not_create_stream_for_chromecast": "Не удалось создать поток для Chromecast",
|
"could_not_create_stream_for_chromecast": "Не удалось создать поток для Chromecast",
|
||||||
"message_from_server": "Сообщение от сервера: {{message}}",
|
"message_from_server": "Сообщение от сервера: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Koden har mottagits",
|
"got_it": "Koden har mottagits",
|
||||||
"connection_failed": "Anslutningen Misslyckades",
|
"connection_failed": "Anslutningen Misslyckades",
|
||||||
"could_not_connect_to_server": "Det gick inte att ansluta till servern. Kontrollera webbadressen och din nätverksanslutning.",
|
"could_not_connect_to_server": "Det gick inte att ansluta till servern. Kontrollera webbadressen och din nätverksanslutning.",
|
||||||
"an_unexpected_error_occurred": "Ett Oväntat Fel Uppstod",
|
"an_unexpected_error_occured": "Ett Oväntat Fel Uppstod",
|
||||||
"change_server": "Byt Server",
|
"change_server": "Byt Server",
|
||||||
"invalid_username_or_password": "Ogiltigt användarnamn eller lösenord",
|
"invalid_username_or_password": "Ogiltigt användarnamn eller lösenord",
|
||||||
"user_does_not_have_permission_to_log_in": "Användaren har inte behörighet att logga in",
|
"user_does_not_have_permission_to_log_in": "Användaren har inte behörighet att logga in",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Servern svarar för långsamt, försök igen senare",
|
"server_is_taking_too_long_to_respond_try_again_later": "Servern svarar för långsamt, försök igen senare",
|
||||||
"server_received_too_many_requests_try_again_later": "Servern har fått för många förfrågningar, försök igen senare.",
|
"server_received_too_many_requests_try_again_later": "Servern har fått för många förfrågningar, försök igen senare.",
|
||||||
"there_is_a_server_error": "Ett serverfel uppstod",
|
"there_is_a_server_error": "Ett serverfel uppstod",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Ett oväntat fel uppstod. Har du angett serverns URL korrekt?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Ett oväntat fel uppstod. Har du angett serverns URL korrekt?",
|
||||||
"too_old_server_text": "Jellyfin Servern Stöds Inte",
|
"too_old_server_text": "Jellyfin Servern Stöds Inte",
|
||||||
"too_old_server_description": "Var God Uppdatera Jellyfin Till Den Senaste Versionen"
|
"too_old_server_description": "Var God Uppdatera Jellyfin Till Den Senaste Versionen"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Godkänn snabbanslutning",
|
"authorize_button": "Godkänn snabbanslutning",
|
||||||
"enter_the_quick_connect_code": "Ange snabbanslutningskod...",
|
"enter_the_quick_connect_code": "Ange snabbanslutningskod...",
|
||||||
"success": "Snabbanslutning lyckades",
|
"success": "Snabbanslutning lyckades",
|
||||||
"quick_connect_authorized": "Snabbanslutning Godkänd",
|
"quick_connect_autorized": "Snabbanslutning Godkänd",
|
||||||
"error": "Fel",
|
"error": "Fel",
|
||||||
"invalid_code": "Ogiltig kod",
|
"invalid_code": "Ogiltig kod",
|
||||||
"authorize": "Autentisera"
|
"authorize": "Autentisera"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Visa anpassade menylänkar",
|
"show_custom_menu_links": "Visa anpassade menylänkar",
|
||||||
"show_large_home_carousel": "Visa toppbanner (beta)",
|
"show_large_home_carousel": "Visa toppbanner (beta)",
|
||||||
"hide_libraries": "Dölj bibliotek",
|
"hide_libraries": "Dölj bibliotek",
|
||||||
"select_libraries_you_want_to_hide": "Välj de bibliotek du vill dölja på fliken Bibliotek och på startsidan.",
|
"select_liraries_you_want_to_hide": "Välj de bibliotek du vill dölja på fliken Bibliotek och på startsidan.",
|
||||||
"disable_haptic_feedback": "Stäng av vibrationer",
|
"disable_haptic_feedback": "Stäng av vibrationer",
|
||||||
"default_quality": "Förvald Kvalitet",
|
"default_quality": "Förvald Kvalitet",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Telefon {{availableSpace}}%",
|
"device_usage": "Telefon {{availableSpace}}%",
|
||||||
"size_used": "{{used}} av {{total}} används",
|
"size_used": "{{used}} av {{total}} används",
|
||||||
"delete_all_downloaded_files": "Ta bort alla nerladdade filer",
|
"delete_all_downloaded_files": "Ta bort alla nerladdade filer",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Musikcache",
|
"music_cache_title": "Musikcache",
|
||||||
"music_cache_description": "Cacha automatiskt låtar när du lyssnar för smidigare uppspelning och offline-stöd",
|
"music_cache_description": "Cacha automatiskt låtar när du lyssnar för smidigare uppspelning och offline-stöd",
|
||||||
"clear_music_cache": "Rensa musikcache",
|
"clear_music_cache": "Rensa musikcache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Fel",
|
"error": "Fel",
|
||||||
"failed_to_get_stream_url": "Kunde inte hämta stream-URL",
|
"failed_to_get_stream_url": "Kunde inte hämta stream-URL",
|
||||||
"an_error_occurred_while_playing_the_video": "Ett fel uppstod vid uppspelning av videon. Kontrollera loggarna i inställningarna.",
|
"an_error_occured_while_playing_the_video": "Ett fel uppstod vid uppspelning av videon. Kontrollera loggarna i inställningarna.",
|
||||||
"client_error": "Klientfel",
|
"client_error": "Klientfel",
|
||||||
"could_not_create_stream_for_chromecast": "Kunde inte skapa stream för Chromecast",
|
"could_not_create_stream_for_chromecast": "Kunde inte skapa stream för Chromecast",
|
||||||
"message_from_server": "Meddelande från servern: {{message}}",
|
"message_from_server": "Meddelande från servern: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Got It",
|
"got_it": "Got It",
|
||||||
"connection_failed": "Connection Failed",
|
"connection_failed": "Connection Failed",
|
||||||
"could_not_connect_to_server": "Could not connect to the server. Please check the URL and your network connection.",
|
"could_not_connect_to_server": "Could not connect to the server. Please check the URL and your network connection.",
|
||||||
"an_unexpected_error_occurred": "An unexpected error occurred",
|
"an_unexpected_error_occured": "An Unexpected Error Occurred",
|
||||||
"change_server": "Change Server",
|
"change_server": "Change Server",
|
||||||
"invalid_username_or_password": "Invalid Username or Password",
|
"invalid_username_or_password": "Invalid Username or Password",
|
||||||
"user_does_not_have_permission_to_log_in": "ผู้ใช้ไม่มีสิทธิ์ในการเข้าสู่ระบบ",
|
"user_does_not_have_permission_to_log_in": "ผู้ใช้ไม่มีสิทธิ์ในการเข้าสู่ระบบ",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Server is taking too long to respond, try again later",
|
"server_is_taking_too_long_to_respond_try_again_later": "Server is taking too long to respond, try again later",
|
||||||
"server_received_too_many_requests_try_again_later": "Server received too many requests, try again later.",
|
"server_received_too_many_requests_try_again_later": "Server received too many requests, try again later.",
|
||||||
"there_is_a_server_error": "There is a server error",
|
"there_is_a_server_error": "There is a server error",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "An unexpected error occurred. Did you enter the server URL correctly?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "",
|
||||||
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
||||||
"too_old_server_description": "Please update Jellyfin to the latest version"
|
"too_old_server_description": "Please update Jellyfin to the latest version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Authorize Quick Connect",
|
"authorize_button": "Authorize Quick Connect",
|
||||||
"enter_the_quick_connect_code": "Enter the quick connect code...",
|
"enter_the_quick_connect_code": "Enter the quick connect code...",
|
||||||
"success": "Success",
|
"success": "Success",
|
||||||
"quick_connect_authorized": "Quick Connect authorized",
|
"quick_connect_autorized": "Quick Connect Authorized",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"invalid_code": "Invalid Code",
|
"invalid_code": "Invalid Code",
|
||||||
"authorize": "Authorize"
|
"authorize": "Authorize"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Show Custom Menu Links",
|
"show_custom_menu_links": "Show Custom Menu Links",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Hide Libraries",
|
"hide_libraries": "Hide Libraries",
|
||||||
"select_libraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
"select_liraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
||||||
"disable_haptic_feedback": "Disable Haptic Feedback",
|
"disable_haptic_feedback": "Disable Haptic Feedback",
|
||||||
"default_quality": "Default Quality",
|
"default_quality": "Default Quality",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Device {{availableSpace}}%",
|
"device_usage": "Device {{availableSpace}}%",
|
||||||
"size_used": "{{used}} of {{total}} Used",
|
"size_used": "{{used}} of {{total}} Used",
|
||||||
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"failed_to_get_stream_url": "Failed to get the stream URL",
|
"failed_to_get_stream_url": "Failed to get the stream URL",
|
||||||
"an_error_occurred_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
"an_error_occured_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
||||||
"client_error": "Client Error",
|
"client_error": "Client Error",
|
||||||
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
||||||
"message_from_server": "Message from Server: {{message}}",
|
"message_from_server": "Message from Server: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "jIyaj",
|
"got_it": "jIyaj",
|
||||||
"connection_failed": "ngoQlaHbe'",
|
"connection_failed": "ngoQlaHbe'",
|
||||||
"could_not_connect_to_server": "SeHlaw veS Ho'Do'laHbe'. URL 'ej ret ghun mej.",
|
"could_not_connect_to_server": "SeHlaw veS Ho'Do'laHbe'. URL 'ej ret ghun mej.",
|
||||||
"an_unexpected_error_occurred": "num ghIq Doch",
|
"an_unexpected_error_occured": "num ghIq Doch",
|
||||||
"change_server": "Ho'Do' veS yIghoS",
|
"change_server": "Ho'Do' veS yIghoS",
|
||||||
"invalid_username_or_password": "tlhIngan pagh ngoq De' law'be'",
|
"invalid_username_or_password": "tlhIngan pagh ngoq De' law'be'",
|
||||||
"user_does_not_have_permission_to_log_in": "tlhIngan lut 'el je'laHbe'",
|
"user_does_not_have_permission_to_log_in": "tlhIngan lut 'el je'laHbe'",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Ho'Do' veS jachrup. pItlh yIHaD",
|
"server_is_taking_too_long_to_respond_try_again_later": "Ho'Do' veS jachrup. pItlh yIHaD",
|
||||||
"server_received_too_many_requests_try_again_later": "Ho'Do' veS lutlh ngeb petlh law'. pItlh yIHaD.",
|
"server_received_too_many_requests_try_again_later": "Ho'Do' veS lutlh ngeb petlh law'. pItlh yIHaD.",
|
||||||
"there_is_a_server_error": "Ho'Do' veS ghIq maS",
|
"there_is_a_server_error": "Ho'Do' veS ghIq maS",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "num ghIq Doch. URL mej Danej'a'?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "num ghIq Doch. URL mej Danej'a'?",
|
||||||
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
||||||
"too_old_server_description": "**Jellyfin chu'qu' Dotlh yIchoHmoH**"
|
"too_old_server_description": "**Jellyfin chu'qu' Dotlh yIchoHmoH**"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "parmaq ngoQ yIje'",
|
"authorize_button": "parmaq ngoQ yIje'",
|
||||||
"enter_the_quick_connect_code": "parmaq ngoQ De' yI'el...",
|
"enter_the_quick_connect_code": "parmaq ngoQ De' yI'el...",
|
||||||
"success": "Qapla'",
|
"success": "Qapla'",
|
||||||
"quick_connect_authorized": "parmaq ngoQ je'laH",
|
"quick_connect_autorized": "parmaq ngoQ je'laH",
|
||||||
"error": "ghIq",
|
"error": "ghIq",
|
||||||
"invalid_code": "De' law'be'",
|
"invalid_code": "De' law'be'",
|
||||||
"authorize": "yIje'"
|
"authorize": "yIje'"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "menuDaq ret teqlu' yInej",
|
"show_custom_menu_links": "menuDaq ret teqlu' yInej",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "De'wI' bom yIQIj",
|
"hide_libraries": "De'wI' bom yIQIj",
|
||||||
"select_libraries_you_want_to_hide": "De'wI' bom Danej QIj yIwIv.",
|
"select_liraries_you_want_to_hide": "De'wI' bom Danej QIj yIwIv.",
|
||||||
"disable_haptic_feedback": "Qub quvHa' yIQIj",
|
"disable_haptic_feedback": "Qub quvHa' yIQIj",
|
||||||
"default_quality": "wa' luj",
|
"default_quality": "wa' luj",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "naDev {{availableSpace}}%",
|
"device_usage": "naDev {{availableSpace}}%",
|
||||||
"size_used": "{{used}} / {{total}} ram",
|
"size_used": "{{used}} / {{total}} ram",
|
||||||
"delete_all_downloaded_files": "Hoch Qaw' Doch yIQaw'",
|
"delete_all_downloaded_files": "Hoch Qaw' Doch yIQaw'",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "ghIq",
|
"error": "ghIq",
|
||||||
"failed_to_get_stream_url": "tlhol ret URL tu'laHbe'",
|
"failed_to_get_stream_url": "tlhol ret URL tu'laHbe'",
|
||||||
"an_error_occurred_while_playing_the_video": "mu'tlhegh tlholDI' ghIq. menDaq De' qon mej.",
|
"an_error_occured_while_playing_the_video": "mu'tlhegh tlholDI' ghIq. menDaq De' qon mej.",
|
||||||
"client_error": "lut 'el ghIq",
|
"client_error": "lut 'el ghIq",
|
||||||
"could_not_create_stream_for_chromecast": "Chromecast tlhol ret qonlaHbe'",
|
"could_not_create_stream_for_chromecast": "Chromecast tlhol ret qonlaHbe'",
|
||||||
"message_from_server": "Ho'Do' veS jach: {{message}}",
|
"message_from_server": "Ho'Do' veS jach: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Anlaşıldı",
|
"got_it": "Anlaşıldı",
|
||||||
"connection_failed": "Bağlantı başarısız",
|
"connection_failed": "Bağlantı başarısız",
|
||||||
"could_not_connect_to_server": "Sunucuya bağlanılamadı. Lütfen URL'yi ve ağ bağlantınızı kontrol edin.",
|
"could_not_connect_to_server": "Sunucuya bağlanılamadı. Lütfen URL'yi ve ağ bağlantınızı kontrol edin.",
|
||||||
"an_unexpected_error_occurred": "Beklenmedik bir hata oluştu",
|
"an_unexpected_error_occured": "Beklenmedik bir hata oluştu",
|
||||||
"change_server": "Sunucu değiştir",
|
"change_server": "Sunucu değiştir",
|
||||||
"invalid_username_or_password": "Geçersiz kullanıcı adı veya şifre",
|
"invalid_username_or_password": "Geçersiz kullanıcı adı veya şifre",
|
||||||
"user_does_not_have_permission_to_log_in": "Kullanıcının giriş yapma izni yok",
|
"user_does_not_have_permission_to_log_in": "Kullanıcının giriş yapma izni yok",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Sunucunun yanıt vermesi çok uzun sürüyor, lütfen daha sonra tekrar deneyin",
|
"server_is_taking_too_long_to_respond_try_again_later": "Sunucunun yanıt vermesi çok uzun sürüyor, lütfen daha sonra tekrar deneyin",
|
||||||
"server_received_too_many_requests_try_again_later": "Sunucu çok fazla istek aldı, lütfen daha sonra tekrar deneyin.",
|
"server_received_too_many_requests_try_again_later": "Sunucu çok fazla istek aldı, lütfen daha sonra tekrar deneyin.",
|
||||||
"there_is_a_server_error": "Sunucu hatası var",
|
"there_is_a_server_error": "Sunucu hatası var",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Beklenmedik bir hata oluştu. Sunucu URL'sini doğru girdiğinizden emin misiniz?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Beklenmedik bir hata oluştu. Sunucu URL'sini doğru girdiğinizden emin misiniz?",
|
||||||
"too_old_server_text": "Desteklenmeyen Jellyfin Sunucu sürümü bulundu.",
|
"too_old_server_text": "Desteklenmeyen Jellyfin Sunucu sürümü bulundu.",
|
||||||
"too_old_server_description": "Lütfen Jellyfin'i en son sürüme güncelleyin."
|
"too_old_server_description": "Lütfen Jellyfin'i en son sürüme güncelleyin."
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Hızlı Bağlantıyı Yetkilendir",
|
"authorize_button": "Hızlı Bağlantıyı Yetkilendir",
|
||||||
"enter_the_quick_connect_code": "Hızlı bağlantı kodunu girin...",
|
"enter_the_quick_connect_code": "Hızlı bağlantı kodunu girin...",
|
||||||
"success": "Başarılı",
|
"success": "Başarılı",
|
||||||
"quick_connect_authorized": "Hızlı Bağlantı Yetkilendirildi",
|
"quick_connect_autorized": "Hızlı Bağlantı Yetkilendirildi",
|
||||||
"error": "Hata",
|
"error": "Hata",
|
||||||
"invalid_code": "Geçersiz kod",
|
"invalid_code": "Geçersiz kod",
|
||||||
"authorize": "Yetkilendir"
|
"authorize": "Yetkilendir"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Özel Menü Bağlantılarını Göster",
|
"show_custom_menu_links": "Özel Menü Bağlantılarını Göster",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Kütüphaneleri Gizle",
|
"hide_libraries": "Kütüphaneleri Gizle",
|
||||||
"select_libraries_you_want_to_hide": "Kütüphane sekmesinden ve ana sayfa bölümlerinden gizlemek istediğiniz kütüphaneleri seçin.",
|
"select_liraries_you_want_to_hide": "Kütüphane sekmesinden ve ana sayfa bölümlerinden gizlemek istediğiniz kütüphaneleri seçin.",
|
||||||
"disable_haptic_feedback": "Dokunsal Geri Bildirimi Devre Dışı Bırak",
|
"disable_haptic_feedback": "Dokunsal Geri Bildirimi Devre Dışı Bırak",
|
||||||
"default_quality": "Varsayılan kalite",
|
"default_quality": "Varsayılan kalite",
|
||||||
"default_playback_speed": "Varsayılan Oynatma Hızı",
|
"default_playback_speed": "Varsayılan Oynatma Hızı",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Cihaz {{availableSpace}}%",
|
"device_usage": "Cihaz {{availableSpace}}%",
|
||||||
"size_used": "{{used}} / {{total}} kullanıldı",
|
"size_used": "{{used}} / {{total}} kullanıldı",
|
||||||
"delete_all_downloaded_files": "Tüm indirilen dosyaları sil",
|
"delete_all_downloaded_files": "Tüm indirilen dosyaları sil",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Müzik Ön Belleği",
|
"music_cache_title": "Müzik Ön Belleği",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Müzik Ön Belleğini Temizle",
|
"clear_music_cache": "Müzik Ön Belleğini Temizle",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Hata",
|
"error": "Hata",
|
||||||
"failed_to_get_stream_url": "Yayın URL'si alınamadı",
|
"failed_to_get_stream_url": "Yayın URL'si alınamadı",
|
||||||
"an_error_occurred_while_playing_the_video": "Video oynatılırken bir hata oluştu. Ayarlardaki günlüklere bakın.",
|
"an_error_occured_while_playing_the_video": "Video oynatılırken bir hata oluştu. Ayarlardaki günlüklere bakın.",
|
||||||
"client_error": "İstemci hatası",
|
"client_error": "İstemci hatası",
|
||||||
"could_not_create_stream_for_chromecast": "Chromecast için yayın oluşturulamadı",
|
"could_not_create_stream_for_chromecast": "Chromecast için yayın oluşturulamadı",
|
||||||
"message_from_server": "Sunucudan mesaj: {{message}}",
|
"message_from_server": "Sunucudan mesaj: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Готово",
|
"got_it": "Готово",
|
||||||
"connection_failed": "Помилка зʼєднання",
|
"connection_failed": "Помилка зʼєднання",
|
||||||
"could_not_connect_to_server": "Неможливо підʼєднатися до серверу. Будь ласка перевірте URL і ваше зʼєднання з мережею",
|
"could_not_connect_to_server": "Неможливо підʼєднатися до серверу. Будь ласка перевірте URL і ваше зʼєднання з мережею",
|
||||||
"an_unexpected_error_occurred": "Сталася несподівана помилка",
|
"an_unexpected_error_occured": "Сталася несподівана помилка",
|
||||||
"change_server": "Змінити сервер",
|
"change_server": "Змінити сервер",
|
||||||
"invalid_username_or_password": "Неправильні імʼя користувача або пароль",
|
"invalid_username_or_password": "Неправильні імʼя користувача або пароль",
|
||||||
"user_does_not_have_permission_to_log_in": "Користувач не маю дозволу на вхід",
|
"user_does_not_have_permission_to_log_in": "Користувач не маю дозволу на вхід",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Сервер відповідає занадто довго, будь-ласка спробуйте пізніше",
|
"server_is_taking_too_long_to_respond_try_again_later": "Сервер відповідає занадто довго, будь-ласка спробуйте пізніше",
|
||||||
"server_received_too_many_requests_try_again_later": "Сервер отримав забагато запитів, будь ласка спробуйте пізніше.",
|
"server_received_too_many_requests_try_again_later": "Сервер отримав забагато запитів, будь ласка спробуйте пізніше.",
|
||||||
"there_is_a_server_error": "Відбулася помилка на стороні сервера",
|
"there_is_a_server_error": "Відбулася помилка на стороні сервера",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Відбулася несподівана помилка. Чи введений URL сервера правильний?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Відбулася несподівана помилка. Чи введений URL сервера правильний?",
|
||||||
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
||||||
"too_old_server_description": "Please update Jellyfin to the latest version"
|
"too_old_server_description": "Please update Jellyfin to the latest version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Авторизуйте Швидке Зʼєднання",
|
"authorize_button": "Авторизуйте Швидке Зʼєднання",
|
||||||
"enter_the_quick_connect_code": "Введіть код для швидкого зʼєднання...",
|
"enter_the_quick_connect_code": "Введіть код для швидкого зʼєднання...",
|
||||||
"success": "Успіх",
|
"success": "Успіх",
|
||||||
"quick_connect_authorized": "Швидке Зʼєднання авторизовано",
|
"quick_connect_autorized": "Швидке Зʼєднання авторизовано",
|
||||||
"error": "Помилка",
|
"error": "Помилка",
|
||||||
"invalid_code": "Не правильний код",
|
"invalid_code": "Не правильний код",
|
||||||
"authorize": "Авторизувати"
|
"authorize": "Авторизувати"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Показати користувацькі посилання меню",
|
"show_custom_menu_links": "Показати користувацькі посилання меню",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Сховати медіатеки",
|
"hide_libraries": "Сховати медіатеки",
|
||||||
"select_libraries_you_want_to_hide": "Виберіть медіатеки, що бажаєте приховати з вкладки Медіатека і з секції на головній сторінці.",
|
"select_liraries_you_want_to_hide": "Виберіть медіатеки, що бажаєте приховати з вкладки Медіатека і з секції на головній сторінці.",
|
||||||
"disable_haptic_feedback": "Вимкнути тактильний зворотний зв'язок",
|
"disable_haptic_feedback": "Вимкнути тактильний зворотний зв'язок",
|
||||||
"default_quality": "Якість за замовченням",
|
"default_quality": "Якість за замовченням",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Гаджет {{availableSpace}}%",
|
"device_usage": "Гаджет {{availableSpace}}%",
|
||||||
"size_used": "{{used}} з {{total}} використано",
|
"size_used": "{{used}} з {{total}} використано",
|
||||||
"delete_all_downloaded_files": "Видалити усі завантаженні файли",
|
"delete_all_downloaded_files": "Видалити усі завантаженні файли",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Помилка",
|
"error": "Помилка",
|
||||||
"failed_to_get_stream_url": "Не вдалося отримати URL-адресу потоку",
|
"failed_to_get_stream_url": "Не вдалося отримати URL-адресу потоку",
|
||||||
"an_error_occurred_while_playing_the_video": "Під час відтворення відео сталася помилка. Перевірте журнал в налаштуваннях.",
|
"an_error_occured_while_playing_the_video": "Під час відтворення відео сталася помилка. Перевірте журнал в налаштуваннях.",
|
||||||
"client_error": "Помилка клієнту",
|
"client_error": "Помилка клієнту",
|
||||||
"could_not_create_stream_for_chromecast": "Не вдалося створити потік для Chromecast",
|
"could_not_create_stream_for_chromecast": "Не вдалося створити потік для Chromecast",
|
||||||
"message_from_server": "Повідомлення від серверу: {{message}}",
|
"message_from_server": "Повідомлення від серверу: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Đã hiểu",
|
"got_it": "Đã hiểu",
|
||||||
"connection_failed": "Kết nối thất bại",
|
"connection_failed": "Kết nối thất bại",
|
||||||
"could_not_connect_to_server": "Không thể kết nối tới máy chủ. Vui lòng kiểm tra URL và kết nối mạng.",
|
"could_not_connect_to_server": "Không thể kết nối tới máy chủ. Vui lòng kiểm tra URL và kết nối mạng.",
|
||||||
"an_unexpected_error_occurred": "Đã xảy ra lỗi không mong muốn",
|
"an_unexpected_error_occured": "Đã xảy ra lỗi không mong muốn",
|
||||||
"change_server": "Đổi máy chủ",
|
"change_server": "Đổi máy chủ",
|
||||||
"invalid_username_or_password": "Tên đăng nhập hoặc mật khẩu không đúng",
|
"invalid_username_or_password": "Tên đăng nhập hoặc mật khẩu không đúng",
|
||||||
"user_does_not_have_permission_to_log_in": "Người dùng không có quyền đăng nhập",
|
"user_does_not_have_permission_to_log_in": "Người dùng không có quyền đăng nhập",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Máy chủ phản hồi quá lâu, vui lòng thử lại sau",
|
"server_is_taking_too_long_to_respond_try_again_later": "Máy chủ phản hồi quá lâu, vui lòng thử lại sau",
|
||||||
"server_received_too_many_requests_try_again_later": "Máy chủ nhận quá nhiều yêu cầu, vui lòng thử lại sau.",
|
"server_received_too_many_requests_try_again_later": "Máy chủ nhận quá nhiều yêu cầu, vui lòng thử lại sau.",
|
||||||
"there_is_a_server_error": "Đã xảy ra lỗi ở máy chủ",
|
"there_is_a_server_error": "Đã xảy ra lỗi ở máy chủ",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "Đã xảy ra lỗi không mong muốn. Bạn có chắc đã nhập đúng URL máy chủ?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Đã xảy ra lỗi không mong muốn. Bạn có chắc đã nhập đúng URL máy chủ?",
|
||||||
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
||||||
"too_old_server_description": "Please update Jellyfin to the latest version"
|
"too_old_server_description": "Please update Jellyfin to the latest version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Cho phép Kết nối nhanh",
|
"authorize_button": "Cho phép Kết nối nhanh",
|
||||||
"enter_the_quick_connect_code": "Nhập mã kết nối nhanh...",
|
"enter_the_quick_connect_code": "Nhập mã kết nối nhanh...",
|
||||||
"success": "Thành công",
|
"success": "Thành công",
|
||||||
"quick_connect_authorized": "Kết nối nhanh đã được cho phép",
|
"quick_connect_autorized": "Kết nối nhanh đã được cho phép",
|
||||||
"error": "Lỗi",
|
"error": "Lỗi",
|
||||||
"invalid_code": "Mã không hợp lệ",
|
"invalid_code": "Mã không hợp lệ",
|
||||||
"authorize": "Cho phép"
|
"authorize": "Cho phép"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Hiện liên kết tùy chỉnh",
|
"show_custom_menu_links": "Hiện liên kết tùy chỉnh",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Ẩn thư viện",
|
"hide_libraries": "Ẩn thư viện",
|
||||||
"select_libraries_you_want_to_hide": "Chọn các thư viện muốn ẩn khỏi mục Thư viện và Trang chủ.",
|
"select_liraries_you_want_to_hide": "Chọn các thư viện muốn ẩn khỏi mục Thư viện và Trang chủ.",
|
||||||
"disable_haptic_feedback": "Tắt phản hồi rung",
|
"disable_haptic_feedback": "Tắt phản hồi rung",
|
||||||
"default_quality": "Chất lượng mặc định",
|
"default_quality": "Chất lượng mặc định",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Thiết bị sử dụng {{availableSpace}}%",
|
"device_usage": "Thiết bị sử dụng {{availableSpace}}%",
|
||||||
"size_used": "{{used}} / {{total}} đã dùng",
|
"size_used": "{{used}} / {{total}} đã dùng",
|
||||||
"delete_all_downloaded_files": "Xóa toàn bộ tập tin đã tải",
|
"delete_all_downloaded_files": "Xóa toàn bộ tập tin đã tải",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Lỗi",
|
"error": "Lỗi",
|
||||||
"failed_to_get_stream_url": "Không thể lấy URL phát trực tiếp",
|
"failed_to_get_stream_url": "Không thể lấy URL phát trực tiếp",
|
||||||
"an_error_occurred_while_playing_the_video": "Có lỗi khi phát video. Xem nhật ký trong cài đặt.",
|
"an_error_occured_while_playing_the_video": "Có lỗi khi phát video. Xem nhật ký trong cài đặt.",
|
||||||
"client_error": "Lỗi phía máy khách",
|
"client_error": "Lỗi phía máy khách",
|
||||||
"could_not_create_stream_for_chromecast": "Không thể tạo luồng cho Chromecast",
|
"could_not_create_stream_for_chromecast": "Không thể tạo luồng cho Chromecast",
|
||||||
"message_from_server": "Thông báo từ máy chủ: {{message}}",
|
"message_from_server": "Thông báo từ máy chủ: {{message}}",
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
"got_it": "Got It",
|
"got_it": "Got It",
|
||||||
"connection_failed": "Connection Failed",
|
"connection_failed": "Connection Failed",
|
||||||
"could_not_connect_to_server": "Could not connect to the server. Please check the URL and your network connection.",
|
"could_not_connect_to_server": "Could not connect to the server. Please check the URL and your network connection.",
|
||||||
"an_unexpected_error_occurred": "An unexpected error occurred",
|
"an_unexpected_error_occured": "An Unexpected Error Occurred",
|
||||||
"change_server": "Change Server",
|
"change_server": "Change Server",
|
||||||
"invalid_username_or_password": "Invalid Username or Password",
|
"invalid_username_or_password": "Invalid Username or Password",
|
||||||
"user_does_not_have_permission_to_log_in": "User does not have permission to log in",
|
"user_does_not_have_permission_to_log_in": "User does not have permission to log in",
|
||||||
"server_is_taking_too_long_to_respond_try_again_later": "Server is taking too long to respond, try again later",
|
"server_is_taking_too_long_to_respond_try_again_later": "Server is taking too long to respond, try again later",
|
||||||
"server_received_too_many_requests_try_again_later": "Server received too many requests, try again later.",
|
"server_received_too_many_requests_try_again_later": "Server received too many requests, try again later.",
|
||||||
"there_is_a_server_error": "There is a server error",
|
"there_is_a_server_error": "There is a server error",
|
||||||
"an_unexpected_error_occurred_did_you_enter_the_correct_url": "An unexpected error occurred. Did you enter the server URL correctly?",
|
"an_unexpected_error_occured_did_you_enter_the_correct_url": "An unexpected error occurred. Did you enter the server URL correctly?",
|
||||||
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
||||||
"too_old_server_description": "Please update Jellyfin to the latest version"
|
"too_old_server_description": "Please update Jellyfin to the latest version"
|
||||||
},
|
},
|
||||||
@@ -188,7 +188,7 @@
|
|||||||
"authorize_button": "Authorize Quick Connect",
|
"authorize_button": "Authorize Quick Connect",
|
||||||
"enter_the_quick_connect_code": "Enter the quick connect code...",
|
"enter_the_quick_connect_code": "Enter the quick connect code...",
|
||||||
"success": "Success",
|
"success": "Success",
|
||||||
"quick_connect_authorized": "Quick Connect authorized",
|
"quick_connect_autorized": "Quick Connect Authorized",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"invalid_code": "Invalid Code",
|
"invalid_code": "Invalid Code",
|
||||||
"authorize": "Authorize"
|
"authorize": "Authorize"
|
||||||
@@ -298,7 +298,7 @@
|
|||||||
"show_custom_menu_links": "Show Custom Menu Links",
|
"show_custom_menu_links": "Show Custom Menu Links",
|
||||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||||
"hide_libraries": "Hide Libraries",
|
"hide_libraries": "Hide Libraries",
|
||||||
"select_libraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
"select_liraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
||||||
"disable_haptic_feedback": "Disable Haptic Feedback",
|
"disable_haptic_feedback": "Disable Haptic Feedback",
|
||||||
"default_quality": "Default Quality",
|
"default_quality": "Default Quality",
|
||||||
"default_playback_speed": "Default Playback Speed",
|
"default_playback_speed": "Default Playback Speed",
|
||||||
@@ -384,8 +384,6 @@
|
|||||||
"device_usage": "Device {{availableSpace}}%",
|
"device_usage": "Device {{availableSpace}}%",
|
||||||
"size_used": "{{used}} of {{total}} Used",
|
"size_used": "{{used}} of {{total}} Used",
|
||||||
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
||||||
"delete_all_downloaded_files_confirm": "Delete All Downloaded Files?",
|
|
||||||
"delete_all_downloaded_files_confirm_desc": "Are you sure you want to delete all downloaded files? This action cannot be undone.",
|
|
||||||
"music_cache_title": "Music Cache",
|
"music_cache_title": "Music Cache",
|
||||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||||
"clear_music_cache": "Clear Music Cache",
|
"clear_music_cache": "Clear Music Cache",
|
||||||
@@ -600,7 +598,7 @@
|
|||||||
"mpv_player_title": "MPV Player",
|
"mpv_player_title": "MPV Player",
|
||||||
"error": "Error",
|
"error": "Error",
|
||||||
"failed_to_get_stream_url": "Failed to get the stream URL",
|
"failed_to_get_stream_url": "Failed to get the stream URL",
|
||||||
"an_error_occurred_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
"an_error_occured_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
||||||
"client_error": "Client Error",
|
"client_error": "Client Error",
|
||||||
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
||||||
"message_from_server": "Message from Server: {{message}}",
|
"message_from_server": "Message from Server: {{message}}",
|
||||||
|
|||||||
Reference in New Issue
Block a user