Convert Movie Titles to TypeScript

pull/10418/head^2
Bogdan 7 months ago
parent 5975be3690
commit 2fc32189d8

@ -26,6 +26,7 @@ import DeleteMovieModal from 'Movie/Delete/DeleteMovieModal';
import EditMovieModalConnector from 'Movie/Edit/EditMovieModalConnector';
import getMovieStatusDetails from 'Movie/getMovieStatusDetails';
import MovieHistoryModal from 'Movie/History/MovieHistoryModal';
import MovieCollectionLabelConnector from 'Movie/MovieCollectionLabelConnector';
import MoviePoster from 'Movie/MoviePoster';
import MovieInteractiveSearchModal from 'Movie/Search/MovieInteractiveSearchModal';
import MovieFileEditorTable from 'MovieFile/Editor/MovieFileEditorTable';
@ -37,7 +38,6 @@ import * as keyCodes from 'Utilities/Constants/keyCodes';
import formatRuntime from 'Utilities/Date/formatRuntime';
import formatBytes from 'Utilities/Number/formatBytes';
import translate from 'Utilities/String/translate';
import MovieCollectionLabelConnector from './../MovieCollectionLabelConnector';
import MovieCastPosters from './Credits/Cast/MovieCastPosters';
import MovieCrewPosters from './Credits/Crew/MovieCrewPosters';
import MovieDetailsLinks from './MovieDetailsLinks';

@ -1,40 +0,0 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableRow from 'Components/Table/TableRow';
import titleCase from 'Utilities/String/titleCase';
class MovieTitlesRow extends Component {
//
// Render
render() {
const {
title,
sourceType
} = this.props;
return (
<TableRow>
<TableRowCell>
{title}
</TableRowCell>
<TableRowCell>
{titleCase(sourceType)}
</TableRowCell>
</TableRow>
);
}
}
MovieTitlesRow.propTypes = {
id: PropTypes.number.isRequired,
title: PropTypes.string.isRequired,
sourceType: PropTypes.string.isRequired
};
export default MovieTitlesRow;

@ -0,0 +1,21 @@
import React from 'react';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import TableRow from 'Components/Table/TableRow';
import titleCase from 'Utilities/String/titleCase';
interface MovieTitlesRowProps {
title: string;
sourceType: string;
}
function MovieTitlesRow({ title, sourceType }: MovieTitlesRowProps) {
return (
<TableRow>
<TableRowCell>{title}</TableRowCell>
<TableRowCell>{titleCase(sourceType)}</TableRowCell>
</TableRow>
);
}
export default MovieTitlesRow;

@ -1,3 +1,9 @@
.blankpad {
padding-top: 10px;
padding-bottom: 10px;
padding-left: 2em;
}
.container {
border: 1px solid var(--borderColor);
border-radius: 4px;

@ -1,6 +1,7 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'blankpad': string;
'container': string;
}
export const cssExports: CssExports;

@ -1,22 +0,0 @@
import React from 'react';
import MovieTitlesTableContentConnector from './MovieTitlesTableContentConnector';
import styles from './MovieTitlesTable.css';
function MovieTitlesTable(props) {
const {
...otherProps
} = props;
return (
<div className={styles.container}>
<MovieTitlesTableContentConnector
{...otherProps}
/>
</div>
);
}
MovieTitlesTable.propTypes = {
};
export default MovieTitlesTable;

@ -0,0 +1,94 @@
import React from 'react';
import { useSelector } from 'react-redux';
import { createSelector } from 'reselect';
import AppState from 'App/State/AppState';
import Alert from 'Components/Alert';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import Column from 'Components/Table/Column';
import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import { kinds } from 'Helpers/Props';
import sortByProp from 'Utilities/Array/sortByProp';
import translate from 'Utilities/String/translate';
import MovieTitlesRow from './MovieTitlesRow';
import styles from './MovieTitlesTable.css';
const columns: Column[] = [
{
name: 'alternativeTitle',
label: () => translate('AlternativeTitle'),
isVisible: true,
},
{
name: 'sourceType',
label: () => translate('Type'),
isVisible: true,
},
];
function movieAlternativeTitlesSelector(movieId: number) {
return createSelector(
(state: AppState) => state.movies,
(movies) => {
const { isFetching, isPopulated, error, items } = movies;
const alternateTitles =
items.find((m) => m.id === movieId)?.alternateTitles ?? [];
return {
isFetching,
isPopulated,
error,
items: alternateTitles,
};
}
);
}
interface MovieTitlesProps {
movieId: number;
}
function MovieTitlesTable({ movieId }: MovieTitlesProps) {
const { isFetching, isPopulated, error, items } = useSelector(
movieAlternativeTitlesSelector(movieId)
);
const sortedItems = items.sort(sortByProp('title'));
if (!isFetching && !!error) {
return (
<Alert kind={kinds.DANGER}>
{translate('AlternativeTitlesLoadError')}
</Alert>
);
}
return (
<div className={styles.container}>
{isFetching && <LoadingIndicator />}
{isPopulated && !items.length && !error ? (
<div className={styles.blankpad}>
{translate('NoAlternativeTitles')}
</div>
) : null}
{isPopulated && !!items.length && !error ? (
<Table columns={columns}>
<TableBody>
{sortedItems.map((item) => (
<MovieTitlesRow
key={item.id}
title={item.title}
sourceType={item.sourceType}
/>
))}
</TableBody>
</Table>
) : null}
</div>
);
}
export default MovieTitlesTable;

@ -1,5 +0,0 @@
.blankpad {
padding-top: 10px;
padding-bottom: 10px;
padding-left: 2em;
}

@ -1,7 +0,0 @@
// This file is automatically generated.
// Please do not change this file!
interface CssExports {
'blankpad': string;
}
export const cssExports: CssExports;
export default cssExports;

@ -1,87 +0,0 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import Table from 'Components/Table/Table';
import TableBody from 'Components/Table/TableBody';
import translate from 'Utilities/String/translate';
import MovieTitlesRow from './MovieTitlesRow';
import styles from './MovieTitlesTableContent.css';
const columns = [
{
name: 'altTitle',
label: () => translate('AlternativeTitle'),
isVisible: true
},
{
name: 'sourceType',
label: () => translate('Type'),
isVisible: true
}
];
class MovieTitlesTableContent extends Component {
//
// Render
render() {
const {
isFetching,
isPopulated,
error,
items
} = this.props;
const hasItems = !!items.length;
return (
<div>
{
isFetching &&
<LoadingIndicator />
}
{
!isFetching && !!error &&
<div className={styles.blankpad}>
{translate('UnableToLoadAltTitle')}
</div>
}
{
isPopulated && !hasItems && !error &&
<div className={styles.blankpad}>
{translate('NoAltTitle')}
</div>
}
{
isPopulated && hasItems && !error &&
<Table columns={columns}>
<TableBody>
{
items.reverse().map((item) => {
return (
<MovieTitlesRow
key={item.id}
{...item}
/>
);
})
}
</TableBody>
</Table>
}
</div>
);
}
}
MovieTitlesTableContent.propTypes = {
isFetching: PropTypes.bool.isRequired,
isPopulated: PropTypes.bool.isRequired,
error: PropTypes.object,
items: PropTypes.arrayOf(PropTypes.object).isRequired
};
export default MovieTitlesTableContent;

@ -1,60 +0,0 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import MovieTitlesTableContent from './MovieTitlesTableContent';
function createMapStateToProps() {
return createSelector(
(state, { movieId }) => movieId,
(state) => state.movies,
(movieId, movies) => {
const {
isFetching,
isPopulated,
error,
items
} = movies;
const alternateTitles = items.find((m) => m.id === movieId)?.alternateTitles;
return {
isFetching,
isPopulated,
error,
alternateTitles
};
}
);
}
class MovieTitlesTableContentConnector extends Component {
//
// Render
render() {
const {
alternateTitles,
...otherProps
} = this.props;
return (
<MovieTitlesTableContent
{...otherProps}
items={alternateTitles}
/>
);
}
}
MovieTitlesTableContentConnector.propTypes = {
movieId: PropTypes.number.isRequired,
alternateTitles: PropTypes.arrayOf(PropTypes.object).isRequired
};
MovieTitlesTableContentConnector.defaultProps = {
alternateTitles: []
};
export default connect(createMapStateToProps)(MovieTitlesTableContentConnector);

@ -39,6 +39,11 @@ export interface Ratings {
rottenTomatoes: RatingValues;
}
export interface AlternativeTitle extends ModelBase {
sourceType: string;
title: string;
}
interface Movie extends ModelBase {
tmdbId: number;
imdbId?: string;
@ -52,6 +57,7 @@ interface Movie extends ModelBase {
originalTitle: string;
originalLanguage: Language;
collection: Collection;
alternateTitles: AlternativeTitle[];
studio: string;
qualityProfileId: number;
added: string;

@ -81,7 +81,7 @@
"DelayProfilesLoadError": "تعذر تحميل ملفات تعريف التأخير",
"CustomFormatsLoadError": "تعذر تحميل التنسيقات المخصصة",
"BackupsLoadError": "تعذر تحميل النسخ الاحتياطية",
"UnableToLoadAltTitle": "تعذر تحميل عناوين بديلة.",
"AlternativeTitlesLoadError": "تعذر تحميل عناوين بديلة.",
"AddRemotePathMappingError": "غير قادر على إضافة تعيين مسار بعيد جديد ، يرجى المحاولة مرة أخرى.",
"AddQualityProfileError": "غير قادر على إضافة ملف تعريف جودة جديد ، يرجى المحاولة مرة أخرى.",
"AddNotificationError": "تعذر إضافة إشعار جديد ، يرجى المحاولة مرة أخرى.",
@ -264,7 +264,7 @@
"NoChanges": "لا تغيرات",
"NoChange": "لا تغيير",
"NoBackupsAreAvailable": "لا توجد نسخ احتياطية متاحة",
"NoAltTitle": "لا توجد عناوين بديلة.",
"NoAlternativeTitles": "لا توجد عناوين بديلة.",
"NextExecution": "التنفيذ القادم",
"New": "جديد",
"DotNetVersion": ".شبكة",

@ -34,7 +34,7 @@
"TestAllLists": "Тествайте всички списъци",
"Queued": "На опашка",
"Tomorrow": "Утре",
"UnableToLoadAltTitle": "Не може да се заредят алтернативни заглавия.",
"AlternativeTitlesLoadError": "Не може да се заредят алтернативни заглавия.",
"Uptime": "Време за работа",
"Name": "Име",
"PreferredSize": "Предпочитан размер",
@ -826,7 +826,7 @@
"Ok": "Добре",
"MovieIsRecommend": "Препоръчва се филм въз основа на скорошно добавяне",
"NegateHelpText": "Ако е отметнато, персонализираният формат няма да се прилага, ако това {0} условие съвпада.",
"NoAltTitle": "Няма алтернативни заглавия.",
"NoAlternativeTitles": "Няма алтернативни заглавия.",
"NoLinks": "Няма връзки",
"NoMinimumForAnyRuntime": "Няма минимум за всяко време на изпълнение",
"PendingChangesDiscardChanges": "Изхвърлете промените и оставете",

@ -102,7 +102,7 @@
"MovieTitleToExcludeHelpText": "El títol de la pel·lícula a excloure (pot ser qualsevol cosa amb sentit)",
"MovieYear": "Any de la pel·lícula",
"MovieYearToExcludeHelpText": "L'any de la pel·lícula a excloure",
"NoAltTitle": "No hi ha títols alternatius.",
"NoAlternativeTitles": "No hi ha títols alternatius.",
"NoBackupsAreAvailable": "No hi ha còpies de seguretat disponibles",
"NoChange": "Cap canvi",
"NoChanges": "Sense Canvis",
@ -299,7 +299,7 @@
"AddListError": "No es pot afegir una llista nova, torneu-ho a provar.",
"AddDownloadClientError": "No es pot afegir un nou client de descàrrega, torneu-ho a provar.",
"AddNotificationError": "No es pot afegir una notificació nova, torneu-ho a provar.",
"UnableToLoadAltTitle": "No es poden carregar títols alternatius.",
"AlternativeTitlesLoadError": "No es poden carregar títols alternatius.",
"UnableToLoadCollections": "No es poden carregar les col·leccions",
"CustomFormatsLoadError": "No es poden carregar els formats personalitzats",
"Unavailable": "No disponible",

@ -250,7 +250,7 @@
"MovieFilesTotaling": "Součet filmových souborů",
"MovieNaming": "Pojmenování filmu",
"NextExecution": "Další spuštění",
"NoAltTitle": "Žádné alternativní tituly.",
"NoAlternativeTitles": "Žádné alternativní tituly.",
"NoMinimumForAnyRuntime": "Žádné minimum za běhu",
"NoMoveFilesSelf": " Ne, přesunu soubory sám",
"NoMoviesExist": "Nebyly nalezeny žádné filmy. Chcete-li začít, budete chtít přidat nový film nebo importovat některé stávající.",
@ -327,7 +327,7 @@
"TestAllIndexers": "Vyzkoušejte všechny indexery",
"TestAllLists": "Vyzkoušejte všechny seznamy",
"TMDb": "TMDb",
"UnableToLoadAltTitle": "Nelze načíst alternativní tituly.",
"AlternativeTitlesLoadError": "Nelze načíst alternativní tituly.",
"UpgradesAllowed": "Upgrady povoleny",
"WhatsNew": "Co je nového?",
"Name": "název",

@ -107,7 +107,7 @@
"System": "System",
"AutoRedownloadFailedHelpText": "Søg automatisk efter og forsøg at downloade en anden udgivelse",
"TestAllClients": "Afprøv alle klienter",
"UnableToLoadAltTitle": "Kan ikke indlæse alternative titler.",
"AlternativeTitlesLoadError": "Kan ikke indlæse alternative titler.",
"WhatsNew": "Hvad er nyt?",
"ProtocolHelpText": "Vælg hvilke protokol (r) du vil bruge, og hvilken der foretrækkes, når du vælger mellem ellers lige udgivelser",
"SupportedDownloadClients": "{appName} understøtter enhver downloadklient, der bruger Newznab-standarden, samt andre downloadklienter, der er anført nedenfor.",
@ -267,7 +267,7 @@
"MovieFiles": "Filmfiler",
"MovieIsRecommend": "Film anbefales baseret på nyere tilføjelse",
"NextExecution": "Næste udførelse",
"NoAltTitle": "Ingen alternative titler.",
"NoAlternativeTitles": "Ingen alternative titler.",
"NoEventsFound": "Ingen begivenheder fundet",
"NoLinks": "Ingen links",
"NoMinimumForAnyRuntime": "Intet minimum for enhver driftstid",

@ -777,7 +777,7 @@
"Unlimited": "Unlimitiert",
"UpdateRadarrDirectlyLoadError": "{appName} konnte nicht direkt aktualisiert werden,",
"UnableToLoadManualImportItems": "Einträge für manuelles importieren konnten nicht geladen werden",
"UnableToLoadAltTitle": "Alternative Titel konnten nicht geladen werden.",
"AlternativeTitlesLoadError": "Alternative Titel konnten nicht geladen werden.",
"Trigger": "Auslöser",
"Trakt": "Trakt",
"Trailer": "Trailer",
@ -841,7 +841,7 @@
"NoListRecommendations": "Keine Listeneinträge oder Empfehlungen gefunden. Zum Start solltest du einen Film hinzufügen, vorhandene importieren oder eine Liste hinzufügen.",
"NoLinks": "Keine Links",
"NoEventsFound": "Keine Events gefunden",
"NoAltTitle": "Keine alternativen Titel.",
"NoAlternativeTitles": "Keine alternativen Titel.",
"NextExecution": "Nächste Ausführung",
"Negated": "Negiert",
"Negate": "Negieren",

@ -257,7 +257,7 @@
"MovieIsRecommend": "Η ταινία συνιστάται με βάση την πρόσφατη προσθήκη",
"NegateHelpText": "Εάν επιλεγεί, η προσαρμοσμένη μορφή δεν θα εφαρμοστεί εάν αντιστοιχεί σε αυτήν την {0} συνθήκη.",
"NextExecution": "Επόμενη εκτέλεση",
"NoAltTitle": "Χωρίς εναλλακτικούς τίτλους.",
"NoAlternativeTitles": "Χωρίς εναλλακτικούς τίτλους.",
"NoEventsFound": "Δεν βρέθηκαν συμβάντα",
"NoLinks": "Χωρίς συνδέσμους",
"NoMinimumForAnyRuntime": "Χωρίς ελάχιστο για κάθε χρόνο εκτέλεσης",
@ -311,7 +311,7 @@
"TestAllLists": "Δοκιμάστε όλες τις λίστες",
"TMDb": "TMDb",
"Tomorrow": "Αύριο",
"UnableToLoadAltTitle": "Δεν είναι δυνατή η φόρτωση εναλλακτικών τίτλων.",
"AlternativeTitlesLoadError": "Δεν είναι δυνατή η φόρτωση εναλλακτικών τίτλων.",
"Updates": "Ενημερώσεις",
"UpgradesAllowed": "Επιτρέπονται αναβαθμίσεις",
"WhatsNew": "Τι νέα?",

@ -64,6 +64,7 @@
"AllowHardcodedSubsHelpText": "Detected hardcoded subs will be automatically downloaded",
"AlreadyInYourLibrary": "Already in your library",
"AlternativeTitle": "Alternative Title",
"AlternativeTitlesLoadError": "Unable to load alternative titles.",
"Always": "Always",
"AnalyseVideoFiles": "Analyze video files",
"AnalyseVideoFilesHelpText": "Extract video information such as resolution, runtime and codec information from files. This requires {appName} to read parts of the file which may cause high disk or network activity during scans.",
@ -1014,7 +1015,7 @@
"NewNonExcluded": "New Non-Excluded",
"NextExecution": "Next Execution",
"No": "No",
"NoAltTitle": "No alternative titles.",
"NoAlternativeTitles": "No alternative titles.",
"NoBackupsAreAvailable": "No backups are available",
"NoBlocklistItems": "No blocklist items",
"NoChange": "No Change",
@ -1098,11 +1099,11 @@
"NotificationsGotifySettingIncludeMoviePosterHelpText": "Include movie poster in message",
"NotificationsGotifySettingsAppToken": "App Token",
"NotificationsGotifySettingsAppTokenHelpText": "The Application Token generated by Gotify",
"NotificationsGotifySettingsPriorityHelpText": "Priority of the notification",
"NotificationsGotifySettingsMetadataLinks": "Metadata Links",
"NotificationsGotifySettingsMetadataLinksMovieHelpText": "Add a links to movie metadata when sending notifications",
"NotificationsGotifySettingsPreferredMetadataLink": "Preferred Metadata Link",
"NotificationsGotifySettingsPreferredMetadataLinkHelpText": "Metadata link for clients that only support a single link",
"NotificationsGotifySettingsPriorityHelpText": "Priority of the notification",
"NotificationsGotifySettingsServer": "Gotify Server",
"NotificationsGotifySettingsServerHelpText": "Gotify server URL, including http(s):// and port if needed",
"NotificationsJoinSettingsApiKeyHelpText": "The API Key from your Join account settings (click Join API button).",
@ -1741,7 +1742,6 @@
"UiSettingsSummary": "Calendar, date and color impaired options",
"Umask": "Umask",
"UnableToImportAutomatically": "Unable to Import Automatically",
"UnableToLoadAltTitle": "Unable to load alternative titles.",
"UnableToLoadCollections": "Unable to load collections",
"UnableToLoadManualImportItems": "Unable to load manual import items",
"UnableToLoadMovies": "Unable to load movies",

@ -792,7 +792,7 @@
"Monday": "Lunes",
"MovieIsRecommend": "Se recomienda la película según la adición reciente",
"NextExecution": "Siguiente ejecución",
"NoAltTitle": "Sin títulos alternativos.",
"NoAlternativeTitles": "Sin títulos alternativos.",
"NoEventsFound": "Ningún evento encontrado",
"NoLinks": "Sin enlaces",
"NoMoveFilesSelf": " No, moveré los archivos yo mismo",
@ -816,7 +816,7 @@
"ReplaceWithDash": "Reemplazar con guion",
"TMDb": "TMDb",
"Tomorrow": "Mañana",
"UnableToLoadAltTitle": "No se pueden cargar títulos alternativos.",
"AlternativeTitlesLoadError": "No se pueden cargar títulos alternativos.",
"UpgradesAllowed": "Actualizaciones permitidas",
"WhatsNew": "¿Qué hay de nuevo?",
"ImportNotForDownloads": "No lo utilice para importar descargas desde su cliente de descargas, esto es sólo para bibliotecas organizadas existentes, no para archivos sin clasificar.",

@ -197,7 +197,7 @@
"MovieFiles": "Elokuvatiedostot",
"MovieIsRecommend": "Elokuvaa suositellaan viimeaikaisen lisäyksen perusteella",
"NextExecution": "Seuraava suoritus",
"NoAltTitle": "Ei vaihtoehtoisia nimikkeitä.",
"NoAlternativeTitles": "Ei vaihtoehtoisia nimikkeitä.",
"NoEventsFound": "Tapahtumia ei löytynyt",
"NoLinks": "Ei linkkejä",
"NoMinimumForAnyRuntime": "Ei toistoajan vähimmäiskestoa",
@ -243,7 +243,7 @@
"SuggestTranslationChange": "Ehdota käännösmuutosta",
"Queued": "Lisätty jonoon",
"TMDb": "TMDB",
"UnableToLoadAltTitle": "Vaihtoehtoisten nimikkeiden lataus epäonnistui.",
"AlternativeTitlesLoadError": "Vaihtoehtoisten nimikkeiden lataus epäonnistui.",
"Released": "Julkaistu",
"ReleasedMovieDescription": "Elokuva julkaistaan",
"ReplaceWithDash": "Korvaa yhdysmerkillä",

@ -828,13 +828,13 @@
"HttpHttps": "HTTP(S)",
"ImportLibrary": "Importation de bibliothèque",
"MovieIsRecommend": "Le film est recommandé en fonction de l'ajout récent",
"NoAltTitle": "Pas de titres alternatifs.",
"NoAlternativeTitles": "Pas de titres alternatifs.",
"NoLinks": "Aucun liens",
"NoMoviesExist": "Aucun film trouvé, pour commencer, vous voudrez ajouter un nouveau film ou importer des films existants.",
"QualitiesHelpText": "Les qualités placées en haut de la liste sont privilégiées même si elles ne sont pas cochées. Les qualités d'un même groupe sont égales. Seules les qualités cochées sont recherchées",
"QualityProfileInUseMovieListCollection": "Impossible de supprimer un profil de qualité associé à un film, une liste ou une collection",
"CalendarFeed": "Flux de calendrier {appName}",
"UnableToLoadAltTitle": "Impossible de charger des titres alternatifs.",
"AlternativeTitlesLoadError": "Impossible de charger des titres alternatifs.",
"UpgradesAllowed": "Mises à niveau autorisées",
"WhatsNew": "Quoi de neuf ?",
"InCinemasMovieDescription": "Le film est dans les cinémas",

@ -237,7 +237,7 @@
"Queued": "בתור",
"TMDb": "TMDb",
"Tomorrow": "מָחָר",
"UnableToLoadAltTitle": "לא ניתן לטעון כותרות חלופיות.",
"AlternativeTitlesLoadError": "לא ניתן לטעון כותרות חלופיות.",
"Updates": "עדכונים",
"UpgradesAllowed": "שדרוגים מותרים",
"WhatsNew": "מה חדש?",
@ -289,7 +289,7 @@
"MovieNaming": "שמות סרטים",
"NegateHelpText": "אם מסומן, הפורמט המותאם אישית לא יחול אם תנאי זה {0} תואם.",
"NextExecution": "הביצוע הבא",
"NoAltTitle": "אין כותרות חלופיות.",
"NoAlternativeTitles": "אין כותרות חלופיות.",
"OnHealthIssue": "בנושא הבריאות",
"OnImport": "בייבוא",
"OnLatestVersion": "הגרסה האחרונה של {appName} כבר מותקנת",

@ -410,7 +410,7 @@
"MovieIsRecommend": "हाल के जोड़ के आधार पर मूवी की सिफारिश की गई है",
"MovieNaming": "फिल्म का नामकरण",
"NegateHelpText": "यदि जाँच की जाती है, तो कस्टम प्रारूप लागू नहीं होगा यदि यह {0} स्थिति से मेल खाता है।",
"NoAltTitle": "कोई वैकल्पिक शीर्षक नहीं।",
"NoAlternativeTitles": "कोई वैकल्पिक शीर्षक नहीं।",
"NoMinimumForAnyRuntime": "किसी रनटाइम के लिए कोई न्यूनतम नहीं",
"NoMoveFilesSelf": " नहीं, मैं फ़ाइलों को स्वयं स्थानांतरित करूँगा",
"NoMoviesExist": "कोई फ़िल्म नहीं मिली, आरंभ करने के लिए आप एक नई फ़िल्म जोड़ना चाहेंगे या कुछ मौजूदा चीज़ों को आयात करेंगे।",
@ -512,7 +512,7 @@
"SuggestTranslationChange": "अनुवाद परिवर्तन का सुझाव दें",
"Tomorrow": "आने वाला कल",
"MovieIsUnmonitored": "मूवी अनमनी है",
"UnableToLoadAltTitle": "वैकल्पिक शीर्षक लोड करने में असमर्थ।",
"AlternativeTitlesLoadError": "वैकल्पिक शीर्षक लोड करने में असमर्थ।",
"Movies": "चलचित्र",
"MoviesSelectedInterp": "{0} मूवी (s) चयनित",
"MovieTitle": "चलचित्र शीर्षक",

@ -849,7 +849,7 @@
"Unlimited": "korlátlan",
"UpdateRadarrDirectlyLoadError": "Nem lehetséges közvetlenül frissíteni a {appName}-t",
"UnableToLoadManualImportItems": "Nem lehetséges betölteni a manuálisan importált elemeket",
"UnableToLoadAltTitle": "Nem lehetséges betölteni az alternatív címeket.",
"AlternativeTitlesLoadError": "Nem lehetséges betölteni az alternatív címeket.",
"Trigger": "Trigger",
"Trakt": "Trakt",
"Trailer": "Bemutató",
@ -915,7 +915,7 @@
"NoListRecommendations": "Nincs elem a listában és az ajánlások között, kezdésnek adjon hozzá egy filmet, importáljon meglévőket, vagy adjon hozzá egy listát.",
"NoLinks": "Nincsenek Linkek",
"NoEventsFound": "Nem található események",
"NoAltTitle": "Nincs alternatív cím.",
"NoAlternativeTitles": "Nincs alternatív cím.",
"NextExecution": "Következő végrehajtás",
"Negated": "Negatív",
"Negate": "Negatív",

@ -245,7 +245,7 @@
"MovieIsRecommend": "Mælt er með kvikmynd byggð á nýlegri viðbót",
"MovieNaming": "Nafngift kvikmynda",
"NextExecution": "Næsta framkvæmd",
"NoAltTitle": "Engir aðrir titlar.",
"NoAlternativeTitles": "Engir aðrir titlar.",
"NoEventsFound": "Engir viðburðir fundust",
"NoMinimumForAnyRuntime": "Ekkert lágmark fyrir neina keyrslutíma",
"NoMoveFilesSelf": " Nei, ég skal færa skrárnar sjálfur",
@ -369,7 +369,7 @@
"TestAllClients": "Prófaðu alla viðskiptavini",
"TestAllIndexers": "Prófaðu alla verðtryggjendur",
"TMDb": "TMDb",
"UnableToLoadAltTitle": "Ekki er hægt að hlaða aðra titla.",
"AlternativeTitlesLoadError": "Ekki er hægt að hlaða aðra titla.",
"WhatsNew": "Hvað er nýtt?",
"MustContain": "Verður að innihalda",
"MustNotContain": "Má ekki innihalda",

@ -809,7 +809,7 @@
"Medium": "medio",
"Minutes": "Minuti",
"NextExecution": "Prossima esecuzione",
"NoAltTitle": "Nessun titolo alternativo.",
"NoAlternativeTitles": "Nessun titolo alternativo.",
"NoEventsFound": "Nessun evento trovato",
"NoLinks": "Nessun Collegamento",
"NoMoveFilesSelf": " No, sposterò i file da solo",
@ -831,7 +831,7 @@
"QueueIsEmpty": "La coda è vuota",
"CalendarFeed": "Feed calendario {appName}",
"TMDb": "TMDb",
"UnableToLoadAltTitle": "Impossibile caricare titoli alternativi.",
"AlternativeTitlesLoadError": "Impossibile caricare titoli alternativi.",
"UpgradesAllowed": "Aggiornamenti consentiti",
"WhatsNew": "Cosa c'è di nuovo?",
"ImportNotForDownloads": "Non utilizzare per importare download dal tuo client di download, questo è solo per le librerie organizzate esistenti, non per i file non ordinati.",

@ -170,7 +170,7 @@
"TimeFormat": "時間形式",
"TotalSpace": "総スペース",
"ChownGroupHelpText": "グループ名またはgid。リモートファイルシステムにはgidを使用します。",
"UnableToLoadAltTitle": "代替タイトルを読み込めません。",
"AlternativeTitlesLoadError": "代替タイトルを読み込めません。",
"ChownGroupHelpTextWarning": "これは、{appName}を実行しているユーザーがファイルの所有者である場合にのみ機能します。ダウンロードクライアントが{appName}と同じグループを使用するようにすることをお勧めします。",
"CleanLibraryLevel": "クリーンライブラリレベル",
"ClientPriority": "クライアントの優先順位",
@ -225,7 +225,7 @@
"MovieIsRecommend": "最近の追加に基づいて映画をお勧めします",
"NegateHelpText": "オンにすると、この{0}条件が一致する場合、カスタム形式は適用されません。",
"NextExecution": "次の実行",
"NoAltTitle": "代替タイトルはありません。",
"NoAlternativeTitles": "代替タイトルはありません。",
"NoEventsFound": "イベントが見つかりません",
"NoLinks": "リンクなし",
"NoMinimumForAnyRuntime": "ランタイムの最小値はありません",

@ -176,7 +176,7 @@
"Indexer": "인덱서",
"CertificationCountryHelpText": "영화 인증 국가 선택",
"NextExecution": "다음 실행",
"NoAltTitle": "대체 제목이 없습니다.",
"NoAlternativeTitles": "대체 제목이 없습니다.",
"NoEventsFound": "이벤트가 없습니다.",
"NoLinks": "링크 없음",
"ImportHeader": "{appName}에 동영상을 추가하기 위해 기존의 구성 라이브러리 가져오기",
@ -281,7 +281,7 @@
"Queued": "대기 중",
"TMDb": "TMDb",
"Tomorrow": "내일",
"UnableToLoadAltTitle": "대체 제목을 불러올 수 없습니다.",
"AlternativeTitlesLoadError": "대체 제목을 불러올 수 없습니다.",
"Updates": "업데이트",
"UpgradesAllowed": "허용되는 업그레이드",
"WhatsNew": "무엇이 새로운가요?",

@ -906,7 +906,7 @@
"NoMatchFound": "Geen overeenkomst gevonden!",
"NoListRecommendations": "Geen lijst aanbevelingen gevonden, om te beginnen, voeg een nieuwe film toe, importeer bestaande of voeg een lijst toe.",
"NoLinks": "Geen koppelingen",
"NoAltTitle": "Geen alternatieve titels.",
"NoAlternativeTitles": "Geen alternatieve titels.",
"Negate": "Negeren",
"Negated": "Genegeerd",
"MultiLanguage": "Meertalig",
@ -919,7 +919,7 @@
"DoNotUpgradeAutomatically": "Niet Automatisch Upgraden",
"TMDb": "TMDb",
"Tomorrow": "Morgen",
"UnableToLoadAltTitle": "Kan alternatieve titels niet laden.",
"AlternativeTitlesLoadError": "Kan alternatieve titels niet laden.",
"UpgradesAllowed": "Upgrades toegestaan",
"WhatsNew": "Wat is er nieuw?",
"StartSearchForMissingMovie": "Begin met zoeken naar ontbrekende film",

@ -50,9 +50,9 @@
"ProxyBypassFilterHelpText": "Użyj znaku „,” jako separatora i „*”. jako symbol wieloznaczny dla subdomen",
"Queued": "W kolejce",
"Released": "Wydany",
"UnableToLoadAltTitle": "Nie można załadować alternatywnych tytułów.",
"AlternativeTitlesLoadError": "Nie można załadować alternatywnych tytułów.",
"NegateHelpText": "Jeśli zaznaczone, format niestandardowy nie będzie stosowany, jeśli ten {0} warunek będzie zgodny.",
"NoAltTitle": "Brak alternatywnych tytułów.",
"NoAlternativeTitles": "Brak alternatywnych tytułów.",
"None": "Żaden",
"QualitiesHelpText": "Cechy wyższe na liście są bardziej preferowane. Cechy w tej samej grupie są równe. Potrzebne są tylko sprawdzone cechy",
"ReadTheWikiForMoreInformation": "Przeczytaj Wiki, aby uzyskać więcej informacji",

@ -801,7 +801,7 @@
"Max": "Máx.",
"ChmodFolderHelpText": "Octal, aplicado durante a importação/renomeação para pastas e ficheiros de multimédia (sem executar bits)",
"NextExecution": "Próxima execução",
"NoAltTitle": "Sem títulos alternativos.",
"NoAlternativeTitles": "Sem títulos alternativos.",
"NoEventsFound": "Nenhum evento encontrado",
"NoLinks": "Sem ligações",
"NoMoveFilesSelf": " Não, eu mesmo moverei os ficheiros",
@ -838,7 +838,7 @@
"ReleasedMovieDescription": "Filme lançado",
"ReplaceWithDash": "Substituir por travessão",
"TMDb": "TMDb",
"UnableToLoadAltTitle": "Não foi possível carregar títulos alternativos.",
"AlternativeTitlesLoadError": "Não foi possível carregar títulos alternativos.",
"UpgradesAllowed": "Atualizações permitidas",
"ImportNotForDownloads": "Não use para importar transferências do seu cliente de transferências; isso é apenas para bibliotecas organizadas existentes, não para ficheiros não classificados.",
"EditDelayProfile": "Editar perfil de atraso",

@ -529,7 +529,7 @@
"NoChanges": "Sem alterações",
"NoChange": "Sem alteração",
"NoBackupsAreAvailable": "Não há backups disponíveis",
"NoAltTitle": "Nenhum título alternativo.",
"NoAlternativeTitles": "Nenhum título alternativo.",
"NextExecution": "Próxima Execução",
"New": "Novo",
"DotNetVersion": ".NET",
@ -760,7 +760,7 @@
"RecyclingBinHelpText": "Arquivos de filme virão para cá quando excluídos, em vez de serem apagados permanentemente",
"RecyclingBinCleanupHelpTextWarning": "Os arquivos na lixeira mais antigos do que o número de dias selecionado serão limpos automaticamente",
"BackupsLoadError": "Não foi possível carregar os backups",
"UnableToLoadAltTitle": "Não foi possível carregar títulos alternativos.",
"AlternativeTitlesLoadError": "Não foi possível carregar títulos alternativos.",
"Ui": "IU",
"Type": "Tipo",
"Torrents": "Torrents",

@ -434,7 +434,7 @@
"MinimumAge": "Varsta minima",
"Minutes": "Minute",
"MinimumLimits": "Limite minime",
"NoAltTitle": "Fără titluri alternative.",
"NoAlternativeTitles": "Fără titluri alternative.",
"Monday": "luni",
"MovieFiles": "Mută Fișiere",
"MovieFilesTotaling": "Total fișiere film",
@ -476,7 +476,7 @@
"Queued": "În așteptare",
"TMDb": "TMDb",
"Tomorrow": "Mâine",
"UnableToLoadAltTitle": "Nu se pot încărca titluri alternative.",
"AlternativeTitlesLoadError": "Nu se pot încărca titluri alternative.",
"UpgradesAllowed": "Sunt permise upgrade-uri",
"WhatsNew": "Ce mai e nou?",
"Uptime": "Timp de funcționare",

@ -479,7 +479,7 @@
"NoChanges": "Нет изменений",
"NoChange": "Нет изменений",
"NoBackupsAreAvailable": "Нет резервных копий",
"NoAltTitle": "Альтернативных названий нет.",
"NoAlternativeTitles": "Альтернативных названий нет.",
"NextExecution": "Следующее выполнение",
"New": "Новый",
"DotNetVersion": ".NET",
@ -743,7 +743,7 @@
"DownloadClientOptionsLoadError": "Не удалось загрузить параметры клиента загрузки",
"DelayProfilesLoadError": "Невозможно загрузить профили задержки",
"BackupsLoadError": "Невозможно загрузить резервные копии",
"UnableToLoadAltTitle": "Невозможно загрузить альтернативные заголовки.",
"AlternativeTitlesLoadError": "Невозможно загрузить альтернативные заголовки.",
"AddRemotePathMappingError": "Не удалось добавить новый удаленный путь, попробуйте еще раз.",
"AddQualityProfileError": "Не удалось добавить новый профиль качества. Повторите попытку.",
"AddListError": "Не удалось добавить новый список, попробуйте еще раз.",

@ -451,7 +451,7 @@
"OnlyUsenet": "Endast Usenet",
"OnlyTorrent": "Endast Torrent",
"OnGrab": "Vid hämtning",
"NoAltTitle": "Inga alternativa titlar.",
"NoAlternativeTitles": "Inga alternativa titlar.",
"MustContain": "Måste innehålla",
"NoLinks": "Inga länkar",
"NoLogFiles": "Inga loggfiler",
@ -645,7 +645,7 @@
"DeletedMovieDescription": "Filmen raderades från TMDb",
"DeleteMovieFolder": "Ta bort filmmapp",
"IMDb": "IMDb",
"UnableToLoadAltTitle": "Det gick inte att ladda alternativa titlar.",
"AlternativeTitlesLoadError": "Det gick inte att ladda alternativa titlar.",
"CertificationCountryHelpText": "Välj land för filmcertifiering",
"ImportFailed": "Import misslyckades: {0}",
"CouldNotConnectSignalR": "Kunde inte ansluta till SignalR, UI uppdateras inte",

@ -343,7 +343,7 @@
"MovieNaming": "การตั้งชื่อภาพยนตร์",
"NegateHelpText": "หากเลือกรูปแบบที่กำหนดเองจะใช้ไม่ได้หากเงื่อนไข {0} นี้ตรง",
"NextExecution": "การดำเนินการถัดไป",
"NoAltTitle": "ไม่มีชื่ออื่น",
"NoAlternativeTitles": "ไม่มีชื่ออื่น",
"NoEventsFound": "ไม่พบกิจกรรม",
"NoMoveFilesSelf": " ไม่ฉันจะย้ายไฟล์เอง",
"None": "ไม่มี",
@ -394,7 +394,7 @@
"SuggestTranslationChange": "แนะนำการเปลี่ยนคำแปล",
"Queued": "อยู่ในคิว",
"Tomorrow": "พรุ่งนี้",
"UnableToLoadAltTitle": "ไม่สามารถโหลดชื่ออื่นได้",
"AlternativeTitlesLoadError": "ไม่สามารถโหลดชื่ออื่นได้",
"Updates": "อัปเดต",
"WhatsNew": "มีอะไรใหม่",
"Uptime": "เวลาทำงาน",

@ -443,7 +443,7 @@
"ImportFailed": "İçe aktarma başarısız oldu: {sourceTitle}",
"CouldNotConnectSignalR": "SignalR'ye bağlanılamadı, kullanıcı arayüzü güncellenmeyecek",
"ImportLibrary": "Kütüphane İçe Aktarma",
"UnableToLoadAltTitle": "Alternatif başlıklar yüklenemiyor.",
"AlternativeTitlesLoadError": "Alternatif başlıklar yüklenemiyor.",
"WhatsNew": "Ne var ne yok?",
"Uptime": "Çalışma süresi",
"Announced": "Duyuruldu",
@ -469,7 +469,7 @@
"MinimumLimits": "Minimum Limitler",
"NegateHelpText": "İşaretlenirse, {implementationName} koşulu eşleşirse özel format uygulanmayacaktır.",
"NextExecution": "Sonraki Yürütme",
"NoAltTitle": "Alternatif başlık yok.",
"NoAlternativeTitles": "Alternatif başlık yok.",
"NoLinks": "Bağlantı Yok",
"NoMoveFilesSelf": " Hayır, Dosyaları Kendim Taşıyacağım",
"None": "Yok",

@ -389,7 +389,7 @@
"BrowserReloadRequired": "Потрібно перезавантажити браузер",
"BackupsLoadError": "Не вдалося завантажити резервні копії",
"UnableToLoadCollections": "Не вдалося завантажити колекції",
"UnableToLoadAltTitle": "Не вдалося завантажити альтернативні назви.",
"AlternativeTitlesLoadError": "Не вдалося завантажити альтернативні назви.",
"NamingSettingsLoadError": "Не вдалося завантажити налаштування імен",
"UnableToLoadRestrictions": "Не вдалося завантажити обмеження",
"CalendarLoadError": "Неможливо завантажити календар",
@ -947,7 +947,7 @@
"NegateHelpText": "Якщо позначено, настроюваний формат не застосовуватиметься, якщо ця умова {0} збігається.",
"Never": "Ніколи",
"New": "Новий",
"NoAltTitle": "Без альтернативних назв.",
"NoAlternativeTitles": "Без альтернативних назв.",
"NoBackupsAreAvailable": "Немає резервних копій",
"NoChange": "Без змін",
"NoChanges": "Жодних змін",

@ -15,7 +15,7 @@
"Size": "Kích thước",
"SuggestTranslationChange": "Đề xuất thay đổi bản dịch",
"Tomorrow": "Ngày mai",
"UnableToLoadAltTitle": "Không thể tải các tiêu đề thay thế.",
"AlternativeTitlesLoadError": "Không thể tải các tiêu đề thay thế.",
"WhatsNew": "Có gì mới?",
"Uptime": "Thời gian hoạt động",
"IndexerLongTermStatusCheckAllClientMessage": "Tất cả các trình lập chỉ mục không khả dụng do lỗi trong hơn 6 giờ",
@ -311,7 +311,7 @@
"AllFiles": "Tất cả các tệp",
"NegateHelpText": "Nếu được chọn, định dạng tùy chỉnh sẽ không áp dụng nếu điều kiện {0} này phù hợp.",
"NextExecution": "Thực hiện tiếp theo",
"NoAltTitle": "Không có tiêu đề thay thế.",
"NoAlternativeTitles": "Không có tiêu đề thay thế.",
"Always": "Luôn luôn",
"NoEventsFound": "Không tìm thấy sự kiện",
"NoLinks": "Không có liên kết",

@ -801,7 +801,7 @@
"CustomFormatHelpText": "{appName}会根据满足自定义格式与否给每个发布版本评分,如果一个新的发布版本有更高的分数,有相同或更高的影片质量,则{appName}会抓取该发布版本。",
"LookingForReleaseProfiles2": "代替。",
"MountCheckMessage": "包含电影路径的挂载点被设置为只读: ",
"NoAltTitle": "没有其他标题。",
"NoAlternativeTitles": "没有其他标题。",
"PreviewRenameHelpText": "小提示:要预览重命名效果,选择 “取消” ,然后点击任何电影标题并使用",
"PtpOldSettingsCheckMessage": "以下 PassThePopcorn 索引器的设置已弃用,应更新为:{0}",
"QualityDefinitions": "质量定义",
@ -844,7 +844,7 @@
"Trakt": "Trakt",
"AddConditionError": "无法添加新条件,请再试一次。",
"AddImportListExclusionError": "无法添加新排除列表,请再试一次。",
"UnableToLoadAltTitle": "无法加载其他标题。",
"AlternativeTitlesLoadError": "无法加载其他标题。",
"DelayProfilesLoadError": "无法加载延时配置",
"ImportListExclusionsLoadError": "无法加载排除列表",
"NotificationsLoadError": "无法加载通知连接",

Loading…
Cancel
Save