mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-15 23:59:08 +00:00
Basic downloads stack translation
This commit is contained in:
@@ -36,19 +36,19 @@ export default function IndexLayout() {
|
||||
<Stack.Screen
|
||||
name="downloads/index"
|
||||
options={{
|
||||
title: "Downloads",
|
||||
title: t("home.downloads.downloads_title"),
|
||||
}}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="downloads/[seriesId]"
|
||||
options={{
|
||||
title: "TV-Series",
|
||||
title: t("home.downloads.tvseries"),
|
||||
}}
|
||||
/>
|
||||
<Stack.Screen
|
||||
name="settings"
|
||||
options={{
|
||||
title: "Settings",
|
||||
title: t("home.settings.settings_title"),
|
||||
}}
|
||||
/>
|
||||
{Object.entries(nestedTabPageScreenOptions).map(([name, options]) => (
|
||||
|
||||
@@ -16,9 +16,11 @@ import {DownloadSize} from "@/components/downloads/DownloadSize";
|
||||
import {BottomSheetBackdrop, BottomSheetBackdropProps, BottomSheetModal, BottomSheetView} from "@gorhom/bottom-sheet";
|
||||
import {toast} from "sonner-native";
|
||||
import {writeToLog} from "@/utils/log";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export default function page() {
|
||||
const navigation = useNavigation();
|
||||
const { t } = useTranslation();
|
||||
const [queue, setQueue] = useAtom(queueAtom);
|
||||
const { removeProcess, downloadedFiles, deleteFileByType } = useDownload();
|
||||
const router = useRouter();
|
||||
@@ -92,9 +94,9 @@ export default function page() {
|
||||
<View className="mb-4 flex flex-col space-y-4 px-4">
|
||||
{settings?.downloadMethod === "remux" && (
|
||||
<View className="bg-neutral-900 p-4 rounded-2xl">
|
||||
<Text className="text-lg font-bold">Queue</Text>
|
||||
<Text className="text-lg font-bold">{t("home.downloads.queue")}</Text>
|
||||
<Text className="text-xs opacity-70 text-red-600">
|
||||
Queue and downloads will be lost on app restart
|
||||
{t("home.downloads.queue_hint")}
|
||||
</Text>
|
||||
<View className="flex flex-col space-y-2 mt-2">
|
||||
{queue.map((q, index) => (
|
||||
@@ -125,7 +127,7 @@ export default function page() {
|
||||
</View>
|
||||
|
||||
{queue.length === 0 && (
|
||||
<Text className="opacity-50">No items in queue</Text>
|
||||
<Text className="opacity-50">{t("home.downloads.no_items_in_queue")}</Text>
|
||||
)}
|
||||
</View>
|
||||
)}
|
||||
@@ -136,7 +138,7 @@ export default function page() {
|
||||
{movies.length > 0 && (
|
||||
<View className="mb-4">
|
||||
<View className="flex flex-row items-center justify-between mb-2 px-4">
|
||||
<Text className="text-lg font-bold">Movies</Text>
|
||||
<Text className="text-lg font-bold">{t("home.downloads.movies")}</Text>
|
||||
<View className="bg-purple-600 rounded-full h-6 w-6 flex items-center justify-center">
|
||||
<Text className="text-xs font-bold">{movies?.length}</Text>
|
||||
</View>
|
||||
@@ -155,7 +157,7 @@ export default function page() {
|
||||
{groupedBySeries.length > 0 && (
|
||||
<View className="mb-4">
|
||||
<View className="flex flex-row items-center justify-between mb-2 px-4">
|
||||
<Text className="text-lg font-bold">TV-Series</Text>
|
||||
<Text className="text-lg font-bold">{t("home.downloads.tvseries")}</Text>
|
||||
<View className="bg-purple-600 rounded-full h-6 w-6 flex items-center justify-center">
|
||||
<Text className="text-xs font-bold">{groupedBySeries?.length}</Text>
|
||||
</View>
|
||||
@@ -176,7 +178,7 @@ export default function page() {
|
||||
)}
|
||||
{downloadedFiles?.length === 0 && (
|
||||
<View className="flex px-4">
|
||||
<Text className="opacity-50">No downloaded items</Text>
|
||||
<Text className="opacity-50">{t("home.downloads.no_downloaded_items")}</Text>
|
||||
</View>
|
||||
)}
|
||||
</View>
|
||||
@@ -200,9 +202,9 @@ export default function page() {
|
||||
>
|
||||
<BottomSheetView>
|
||||
<View className="p-4 space-y-4 mb-4">
|
||||
<Button color="purple" onPress={deleteMovies}>Delete all Movies</Button>
|
||||
<Button color="purple" onPress={deleteShows}>Delete all TV-Series</Button>
|
||||
<Button color="red" onPress={deleteAllMedia}>Delete all</Button>
|
||||
<Button color="purple" onPress={deleteMovies}>{t("home.downloads.delete_all_movies_button")}</Button>
|
||||
<Button color="purple" onPress={deleteShows}>{t("home.downloads.delete_all_tvseries_button")}</Button>
|
||||
<Button color="red" onPress={deleteAllMedia}>{t("home.downloads.delete_all_button")}</Button>
|
||||
</View>
|
||||
</BottomSheetView>
|
||||
</BottomSheetModal>
|
||||
|
||||
@@ -22,22 +22,24 @@ import { Button } from "../Button";
|
||||
import { Image } from "expo-image";
|
||||
import { useMemo } from "react";
|
||||
import { storage } from "@/utils/mmkv";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
interface Props extends ViewProps {}
|
||||
|
||||
export const ActiveDownloads: React.FC<Props> = ({ ...props }) => {
|
||||
const { processes } = useDownload();
|
||||
const { t } = useTranslation();
|
||||
if (processes?.length === 0)
|
||||
return (
|
||||
<View {...props} className="bg-neutral-900 p-4 rounded-2xl">
|
||||
<Text className="text-lg font-bold">Active download</Text>
|
||||
<Text className="opacity-50">No active downloads</Text>
|
||||
<Text className="text-lg font-bold">{t("home.downloads.active_download")}</Text>
|
||||
<Text className="opacity-50">{t("home.downloads.no_active_downloads")}</Text>
|
||||
</View>
|
||||
);
|
||||
|
||||
return (
|
||||
<View {...props} className="bg-neutral-900 p-4 rounded-2xl">
|
||||
<Text className="text-lg font-bold mb-2">Active downloads</Text>
|
||||
<Text className="text-lg font-bold mb-2">{t("home.downloads.active_downloads")}</Text>
|
||||
<View className="space-y-2">
|
||||
{processes?.map((p) => (
|
||||
<DownloadCard key={p.item.Id} process={p} />
|
||||
|
||||
@@ -26,7 +26,26 @@
|
||||
"nextUp": "Next Up",
|
||||
"recentlyAddedIn": "Recently Added in {{libraryName}}",
|
||||
"suggestedMovies": "Suggested Movies",
|
||||
"suggestedEpisodes": "Suggested Episodes"
|
||||
"suggestedEpisodes": "Suggested Episodes",
|
||||
"settings": {
|
||||
"settings_title": "Settings"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "TV-Series",
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"queue_hint": "Queue and downloads will be lost on app restart",
|
||||
"no_items_in_queue": "No items in queue",
|
||||
"no_downloaded_items": "No downloaded items",
|
||||
"delete_all_movies_button": "Delete all Movies",
|
||||
"delete_all_tvseries_button": "Delete all TV-Series",
|
||||
"delete_button": "Delete all",
|
||||
"active_download": "Active download",
|
||||
"no_active_downloads": "No active downloads",
|
||||
"active_downloads": "Active downloads",
|
||||
"toasts": {}
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"search_title": "Search",
|
||||
|
||||
@@ -26,7 +26,26 @@
|
||||
"nextUp": "À suivre",
|
||||
"recentlyAddedIn": "Ajoutés récemment dans {{libraryName}}",
|
||||
"suggestedMovies": "Films suggérés",
|
||||
"suggestedEpisodes": "Épisodes suggérés"
|
||||
"suggestedEpisodes": "Épisodes suggérés",
|
||||
"settings": {
|
||||
"settings_title": "Paramètres"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Téléchargements",
|
||||
"tvseries": "Séries TV",
|
||||
"movies": "Films",
|
||||
"queue": "File d'attente",
|
||||
"queue_hint": "La file d'attente et les téléchargements seront perdus au redémarrage de l'application",
|
||||
"no_items_in_queue": "Aucun item dans la file d'attente",
|
||||
"no_downloaded_items": "Aucun item téléchargé",
|
||||
"delete_all_movies_button": "Supprimer tous les films",
|
||||
"delete_all_tvseries_button": "Supprimer toutes les séries",
|
||||
"delete_all_button": "Supprimer tout",
|
||||
"active_download": "Téléchargement actif",
|
||||
"no_active_downloads": "Aucun téléchargements actifs",
|
||||
"active_downloads": "Téléchargements actifs",
|
||||
"toasts": {}
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"search_title": "Recherche",
|
||||
|
||||
Reference in New Issue
Block a user