diff --git a/client/src/components/AddToListModal.tsx b/client/src/components/AddToListModal.tsx
index cc3fced8..e3e0bc87 100644
--- a/client/src/components/AddToListModal.tsx
+++ b/client/src/components/AddToListModal.tsx
@@ -8,6 +8,7 @@ import { useUser } from 'src/api/user';
import { Modal } from 'src/components/Modal';
import { formatEpisodeNumber, formatSeasonNumber, listName } from 'src/utils';
import { AddListButton } from 'src/components/AddOrEditListButton';
+import { originalAndTranslatedTitle } from 'src/mediaItem';
export const AddToListModal: FunctionComponent<{
mediaItemId: number;
@@ -54,10 +55,10 @@ export const AddToListModal: FunctionComponent<{
Add "
{episode
- ? `${mediaItem.title} ${formatEpisodeNumber(episode)}`
+ ? `${originalAndTranslatedTitle(mediaItem)} ${formatEpisodeNumber(episode)}`
: season
- ? `${mediaItem.title} ${formatSeasonNumber(season)}`
- : mediaItem.title}
+ ? `${originalAndTranslatedTitle(mediaItem)} ${formatSeasonNumber(season)}`
+ : originalAndTranslatedTitle(mediaItem)}
" to list
diff --git a/client/src/components/GridItem.tsx b/client/src/components/GridItem.tsx
index 4910af23..c18c3212 100644
--- a/client/src/components/GridItem.tsx
+++ b/client/src/components/GridItem.tsx
@@ -5,6 +5,7 @@ import { parseISO } from 'date-fns';
import { removeFromWatchlist } from 'src/api/details';
import { BadgeRating } from 'src/components/StarRating';
+import { originalAndTranslatedTitle } from 'src/mediaItem';
import {
formatEpisodeNumber,
@@ -121,7 +122,7 @@ export const GridItem: FunctionComponent<{
if (
await Confirm(
- t`Remove "${mediaItem.title}${
+ t`Remove "${originalAndTranslatedTitle(mediaItem)}${
season
? ' ' + formatSeasonNumber(season)
: episode
@@ -205,7 +206,7 @@ export const GridItem: FunctionComponent<{
{season && formatSeasonNumber(season) + ' '}
{episode && formatEpisodeNumber(episode) + ' '}
- {mediaItem.title}
+ {originalAndTranslatedTitle(mediaItem)}
{hasProgress(mediaItem) && (
diff --git a/client/src/components/SelectSeenDate.tsx b/client/src/components/SelectSeenDate.tsx
index dda05a9d..e652f508 100644
--- a/client/src/components/SelectSeenDate.tsx
+++ b/client/src/components/SelectSeenDate.tsx
@@ -4,6 +4,7 @@ import { Trans } from '@lingui/macro';
import { markAsSeen } from 'src/api/details';
import { SelectLastSeenEpisode } from 'src/components/SelectLastSeenEpisode';
+import { originalAndTranslatedTitle } from 'src/mediaItem';
import {
LastSeenAt,
@@ -74,15 +75,15 @@ export const SelectSeenDateComponent: FunctionComponent<{
{isAudiobook(mediaItem) && (
- When did you listen to "{mediaItem.title}"?
+ When did you listen to "{originalAndTranslatedTitle(mediaItem)}"?
)}
{isBook(mediaItem) && (
- When did you read "{mediaItem.title}"?
+ When did you read "{originalAndTranslatedTitle(mediaItem)}"?
)}
{isMovie(mediaItem) && (
- When did you see "{mediaItem.title}"?
+ When did you see "{originalAndTranslatedTitle(mediaItem)}"?
)}
{isTvShow(mediaItem) && (
@@ -96,7 +97,7 @@ export const SelectSeenDateComponent: FunctionComponent<{
)}
{isVideoGame(mediaItem) && (
- When did you play "{mediaItem.title}"?
+ When did you play "{originalAndTranslatedTitle(mediaItem)}"?
)}
diff --git a/client/src/components/StarRating.tsx b/client/src/components/StarRating.tsx
index 8e7d1765..001249df 100644
--- a/client/src/components/StarRating.tsx
+++ b/client/src/components/StarRating.tsx
@@ -8,6 +8,7 @@ import { Modal, useOpenModalRef } from 'src/components/Modal';
import { SelectSeenDate } from 'src/components/SelectSeenDate';
import { formatEpisodeNumber, formatSeasonNumber } from 'src/utils';
import { queryClient } from 'src/App';
+import { originalAndTranslatedTitle } from 'src/mediaItem';
export const StarRating: FunctionComponent<
| { mediaItem: MediaItemItemsResponse }
@@ -110,7 +111,7 @@ const StarRatingModal: FunctionComponent<
return (
- {mediaItem.title}
+ {originalAndTranslatedTitle(mediaItem)}
{season && <> {formatSeasonNumber(season)}>}
{episode && <> {formatEpisodeNumber(episode)}>}
diff --git a/client/src/mediaItem.ts b/client/src/mediaItem.ts
index 3b11ed36..33bb6903 100644
--- a/client/src/mediaItem.ts
+++ b/client/src/mediaItem.ts
@@ -2,6 +2,7 @@ import { useState, useEffect } from 'react';
import {
MediaItemDetailsResponse,
+ MediaItemItemsResponse,
TvEpisode,
TvSeason,
} from 'mediatracker-api';
@@ -71,3 +72,9 @@ export const hasBeenSeenAtLeastOnce = (
?.length > 0
: value.seenHistory?.length > 0;
};
+
+export const originalAndTranslatedTitle = (mediaItem: MediaItemDetailsResponse | MediaItemItemsResponse) => {
+ return (mediaItem.originalTitle && mediaItem.originalTitle !== mediaItem.title)
+ ? `${mediaItem.originalTitle} (${mediaItem.title})`
+ : mediaItem.title;
+};
diff --git a/client/src/pages/Details.tsx b/client/src/pages/Details.tsx
index 2b6877de..0c3556e3 100644
--- a/client/src/pages/Details.tsx
+++ b/client/src/pages/Details.tsx
@@ -3,6 +3,7 @@ import { Link, useParams } from 'react-router-dom';
import clsx from 'clsx';
import { Plural, Trans } from '@lingui/macro';
import { parseISO } from 'date-fns';
+import { originalAndTranslatedTitle } from 'src/mediaItem';
import {
AudibleCountryCode,
@@ -222,7 +223,7 @@ export const DetailsPage: FunctionComponent = () => {
- {mediaItem.title}
+ {originalAndTranslatedTitle(mediaItem)}
{mediaItem.releaseDate && (
diff --git a/client/src/pages/EpisodePage.tsx b/client/src/pages/EpisodePage.tsx
index 588dbb42..7c998b71 100644
--- a/client/src/pages/EpisodePage.tsx
+++ b/client/src/pages/EpisodePage.tsx
@@ -5,6 +5,7 @@ import { useDetails } from 'src/api/details';
import {
findEpisodeBySeasonAndEpisodeNumber,
hasBeenSeenAtLeastOnce,
+ originalAndTranslatedTitle,
} from 'src/mediaItem';
import {
formatEpisodeNumber,
@@ -45,7 +46,7 @@ export const EpisodePage: FunctionComponent = () => {
return (
- {mediaItem.title} {formatEpisodeNumber(episode)}
+ {originalAndTranslatedTitle(mediaItem)} {formatEpisodeNumber(episode)}
{episode.description && (
diff --git a/client/src/pages/SeasonsPage.tsx b/client/src/pages/SeasonsPage.tsx
index 84049900..e0cef0a3 100644
--- a/client/src/pages/SeasonsPage.tsx
+++ b/client/src/pages/SeasonsPage.tsx
@@ -8,7 +8,7 @@ import { parseISO } from 'date-fns';
import { useDetails } from 'src/api/details';
import { Poster } from 'src/components/Poster';
import { BadgeRating } from 'src/components/StarRating';
-import { hasBeenSeenAtLeastOnce, useSelectedSeason } from 'src/mediaItem';
+import { hasBeenSeenAtLeastOnce, useSelectedSeason, originalAndTranslatedTitle } from 'src/mediaItem';
import {
hasBeenReleased,
hasReleaseDate,
@@ -157,7 +157,7 @@ export const SeasonsPage: FunctionComponent = () => {
- {mediaItem.title}
+ {originalAndTranslatedTitle(mediaItem)}