Rename card field

This commit is contained in:
Simon Caron
2025-01-04 15:39:04 -05:00
parent 0d1fb87284
commit 459ca3245b
16 changed files with 51 additions and 33 deletions

View File

@@ -39,7 +39,7 @@ export const AudioTrackSelector: React.FC<Props> = ({
<DropdownMenu.Root>
<DropdownMenu.Trigger>
<View className="flex flex-col" {...props}>
<Text className="opacity-50 mb-1 text-xs">{t("series.audio")}</Text>
<Text className="opacity-50 mb-1 text-xs">{t("item_card.audio")}</Text>
<TouchableOpacity className="bg-neutral-900 h-10 rounded-xl border-neutral-800 border px-3 py-2 flex flex-row items-center justify-between">
<Text className="" numberOfLines={1}>
{selectedAudioSteam?.DisplayTitle}

View File

@@ -73,7 +73,7 @@ export const BitrateSelector: React.FC<Props> = ({
<DropdownMenu.Root>
<DropdownMenu.Trigger>
<View className="flex flex-col" {...props}>
<Text className="opacity-50 mb-1 text-xs">{t("series.quality")}</Text>
<Text className="opacity-50 mb-1 text-xs">{t("item_card.quality")}</Text>
<TouchableOpacity className="bg-neutral-900 h-10 rounded-xl border-neutral-800 border px-3 py-2 flex flex-row items-center justify-between">
<Text style={{}} className="" numberOfLines={1}>
{BITRATES.find((b) => b.value === selected?.value)?.key}

View File

@@ -332,7 +332,7 @@ export const DownloadItems: React.FC<DownloadProps> = ({
{title}
</Text>
<Text className="text-neutral-300">
{subtitle || `Download ${itemsNotDownloaded.length} items`}
{subtitle || t("item_card.download.download_x_item", {item_count: itemsNotDownloaded.length})}
</Text>
</View>
<View className="flex flex-col space-y-2 w-full items-start">
@@ -370,13 +370,13 @@ export const DownloadItems: React.FC<DownloadProps> = ({
onPress={acceptDownloadOptions}
color="purple"
>
Download
{t("item_card.download.download_button")}
</Button>
<View className="opacity-70 text-center w-full flex items-center">
<Text className="text-xs">
{usingOptimizedServer
? "Using optimized server"
: "Using default method"}
? t("item_card.download.using_optimized_server")
: t("item_card.download.using_default_method")}
</Text>
</View>
</View>

View File

@@ -27,12 +27,12 @@ export const ItemTechnicalDetails: React.FC<Props> = ({ source, ...props }) => {
return (
<View className="px-4 mt-2 mb-4">
<Text className="text-lg font-bold mb-4">{t("series.video")}</Text>
<Text className="text-lg font-bold mb-4">{t("item_card.video")}</Text>
<TouchableOpacity onPress={() => bottomSheetModalRef.current?.present()}>
<View className="flex flex-row space-x-2">
<VideoStreamInfo source={source} />
</View>
<Text className="text-purple-600">{t("series.more_details")}</Text>
<Text className="text-purple-600">{t("item_card.more_details")}</Text>
</TouchableOpacity>
<BottomSheetModal
ref={bottomSheetModalRef}
@@ -54,14 +54,14 @@ export const ItemTechnicalDetails: React.FC<Props> = ({ source, ...props }) => {
<BottomSheetScrollView>
<View className="flex flex-col space-y-2 p-4 mb-4">
<View className="">
<Text className="text-lg font-bold mb-4">{t("series.video")}</Text>
<Text className="text-lg font-bold mb-4">{t("item_card.video")}</Text>
<View className="flex flex-row space-x-2">
<VideoStreamInfo source={source} />
</View>
</View>
<View className="">
<Text className="text-lg font-bold mb-2">{t("series.audio")}</Text>
<Text className="text-lg font-bold mb-2">{t("item_card.audio")}</Text>
<AudioStreamInfo
audioStreams={
source?.MediaStreams?.filter(
@@ -72,7 +72,7 @@ export const ItemTechnicalDetails: React.FC<Props> = ({ source, ...props }) => {
</View>
<View className="">
<Text className="text-lg font-bold mb-2">{t("series.subtitles")}</Text>
<Text className="text-lg font-bold mb-2">{t("item_card.subtitles")}</Text>
<SubtitleStreamInfo
subtitleStreams={
source?.MediaStreams?.filter(

View File

@@ -78,7 +78,7 @@ export const MoreMoviesWithActor: React.FC<Props> = ({
return (
<View {...props}>
<Text className="text-lg font-bold mb-2 px-4">
{t("series.more_with", {name: actor?.Name})}
{t("item_card.more_with", {name: actor?.Name})}
</Text>
<HorizontalScroll
data={items}

View File

@@ -21,7 +21,7 @@ export const OverviewText: React.FC<Props> = ({
return (
<View className="flex flex-col" {...props}>
<Text className="text-lg font-bold mb-2">{t("series.overview")}</Text>
<Text className="text-lg font-bold mb-2">{t("item_card.overview")}</Text>
<TouchableOpacity
onPress={() =>
setLimit((prev) =>
@@ -33,7 +33,7 @@ export const OverviewText: React.FC<Props> = ({
<Text>{tc(text, limit)}</Text>
{text.length > characterLimit && (
<Text className="text-purple-600 mt-1">
{limit === characterLimit ? "Show more" : "Show less"}
{limit === characterLimit ? t("item_card.show_more") : t("item_card.show_less")}
</Text>
)}
</View>

View File

@@ -49,12 +49,12 @@ export const SimilarItems: React.FC<SimilarItemsProps> = ({
return (
<View {...props}>
<Text className="px-4 text-lg font-bold mb-2">{t("series.similar_items")}</Text>
<Text className="px-4 text-lg font-bold mb-2">{t("item_card.similar_items")}</Text>
<HorizontalScroll
data={movies}
loading={isLoading}
height={247}
noItemsText={t("series.no_similar_items_found")}
noItemsText={t("item_card.no_similar_items_found")}
renderItem={(item: BaseItemDto, idx: number) => (
<TouchableItemRouter
key={idx}

View File

@@ -51,7 +51,7 @@ export const SubtitleTrackSelector: React.FC<Props> = ({
<DropdownMenu.Root>
<DropdownMenu.Trigger>
<View className="flex flex-col " {...props}>
<Text className="opacity-50 mb-1 text-xs">{t("series.subtitles")}</Text>
<Text className="opacity-50 mb-1 text-xs">{t("item_card.subtitles")}</Text>
<TouchableOpacity className="bg-neutral-900 h-10 rounded-xl border-neutral-800 border px-3 py-2 flex flex-row items-center justify-between">
<Text className=" ">
{selectedSubtitleSteam

View File

@@ -42,7 +42,7 @@ export const CastAndCrew: React.FC<Props> = ({ item, loading, ...props }) => {
return (
<View {...props} className="flex flex-col">
<Text className="text-lg font-bold mb-2 px-4">{t("series.cast_and_crew")}</Text>
<Text className="text-lg font-bold mb-2 px-4">{t("item_card.cast_and_crew")}</Text>
<HorizontalScroll
loading={loading}
keyExtractor={(i, idx) => i.Id.toString()}

View File

@@ -20,7 +20,7 @@ export const CurrentSeries: React.FC<Props> = ({ item, ...props }) => {
return (
<View {...props}>
<Text className="text-lg font-bold mb-2 px-4">{t("series.series")}</Text>
<Text className="text-lg font-bold mb-2 px-4">{t("item_card.series")}</Text>
<HorizontalScroll
data={[item]}
height={247}

View File

@@ -190,7 +190,7 @@ const JellyseerrSeasons: React.FC<{
return (
<View>
<View className="flex flex-row justify-between items-end px-4">
<Text className="text-lg font-bold mb-2">{t("series.seasons")}</Text>
<Text className="text-lg font-bold mb-2">{t("item_card.seasons")}</Text>
{!allSeasonsAvailable && (
<RoundButton className="mb-2 pa-2" onPress={promptRequestAll}>
<Ionicons name="bag-add" color="white" size={26} />
@@ -210,7 +210,7 @@ const JellyseerrSeasons: React.FC<{
)}
ListHeaderComponent={() => (
<View className="flex flex-row justify-between items-end px-4">
<Text className="text-lg font-bold mb-2">{t("series.seasons")}</Text>
<Text className="text-lg font-bold mb-2">{t("item_card.seasons")}</Text>
{!allSeasonsAvailable && (
<RoundButton className="mb-2 pa-2" onPress={promptRequestAll}>
<Ionicons name="bag-add" color="white" size={26} />

View File

@@ -39,14 +39,14 @@ export const NextUp: React.FC<{ seriesId: string }> = ({ seriesId }) => {
if (!items?.length)
return (
<View className="px-4">
<Text className="text-lg font-bold mb-2">{t("series.next_up")}</Text>
<Text className="opacity-50">{t("series.no_items_to_display")}</Text>
<Text className="text-lg font-bold mb-2">{t("item_card.next_up")}</Text>
<Text className="opacity-50">{t("item_card.no_items_to_display")}</Text>
</View>
);
return (
<View>
<Text className="text-lg font-bold px-4 mb-2">{t("series.next_up")}</Text>
<Text className="text-lg font-bold px-4 mb-2">{t("item_card.next_up")}</Text>
<FlashList
contentContainerStyle={{ paddingLeft: 16 }}
horizontal

View File

@@ -92,7 +92,7 @@ export const SeasonDropdown: React.FC<Props> = ({
<DropdownMenu.Trigger>
<View className="flex flex-row">
<TouchableOpacity className="bg-neutral-900 rounded-2xl border-neutral-900 border px-3 py-2 flex flex-row items-center justify-between">
<Text>{t("series.season")} {seasonIndex}</Text>
<Text>{t("item_card.season")} {seasonIndex}</Text>
</TouchableOpacity>
</View>
</DropdownMenu.Trigger>
@@ -105,7 +105,7 @@ export const SeasonDropdown: React.FC<Props> = ({
collisionPadding={8}
sideOffset={8}
>
<DropdownMenu.Label>{t("series.seasons")}</DropdownMenu.Label>
<DropdownMenu.Label>{t("item_card.seasons")}</DropdownMenu.Label>
{seasons?.sort(sortByIndex).map((season: any) => (
<DropdownMenu.Item
key={season[keys.title]}

View File

@@ -146,7 +146,7 @@ export const SeasonPicker: React.FC<Props> = ({ item, initialSeasonIndex }) => {
/>
{episodes?.length || 0 > 0 ? (
<DownloadItems
title="Download Season"
title={t("item_card.download.download_season")}
className="ml-2"
items={episodes || []}
MissingDownloadIconComponent={() => (
@@ -211,7 +211,7 @@ export const SeasonPicker: React.FC<Props> = ({ item, initialSeasonIndex }) => {
{(episodes?.length || 0) === 0 ? (
<View className="flex flex-col">
<Text className="text-neutral-500">
{t("series.no_episodes_for_this_seasonz")}
{t("item_card.no_episodes_for_this_seasonz")}
</Text>
</View>
) : null}

View File

@@ -257,7 +257,7 @@
"message_from_server": "Message from server: {{message}}",
"video_has_finished_playing": "Video has finished playing!"
},
"series": {
"item_card": {
"next_up": "Next up",
"no_items_to_display": "No items to display",
"cast_and_crew": "Cast & Crew",
@@ -274,7 +274,16 @@
"more_details": "More details",
"quality": "Quality",
"audio": "Audio",
"subtitles": "Subtitle"
"subtitles": "Subtitle",
"show_more": "Show more",
"show_less": "Show less",
"download": {
"download_season": "Download Season",
"download_x_item": "Download {{item_count}} items",
"download_button": "Download",
"using_optimized_server": "Using optimized server",
"using_default_method": "Using default method",
}
},
"jellyseerr":{
"confirm": "Confirm",

View File

@@ -255,7 +255,7 @@
"message_from_server": "Message du serveur: {{message}}",
"video_has_finished_playing": "La vidéo a fini de jouer!"
},
"series": {
"item_card": {
"next_up": "À suivre",
"no_items_to_display": "Aucun item à afficher",
"cast_and_crew": "Distribution et équipe",
@@ -272,7 +272,16 @@
"more_details": "Plus de détails",
"quality": "Qualité",
"audio": "Audio",
"subtitles": "Sous-titres"
"subtitles": "Sous-titres",
"show_more": "Afficher plus",
"show_less": "Afficher moins",
"download": {
"download_season": "Télécharger la saison",
"download_x_item": "Télécharger {{item_count}} items",
"download_button": "Télécharger",
"using_optimized_server": "Avec le serveur de versions optimisées",
"using_default_method": "Avec la méthode par défaut"
}
},
"jellyseerr":{
"confirm": "Confirmer",
@@ -294,7 +303,7 @@
"home": "Accueil",
"search": "Recherche",
"library": "Bibliothèque",
"custom_links": "Liens personalisés",
"custom_links": "Liens personnalisés",
"favorites": "Favoris"
}
}