Merge branch 'develop'

This commit is contained in:
sct
2020-12-14 05:27:01 +00:00
20 changed files with 593 additions and 339 deletions

82
.all-contributorsrc Normal file
View File

@@ -0,0 +1,82 @@
{
"files": [
"README.md"
],
"imageSize": 100,
"commit": false,
"contributors": [
{
"login": "sct",
"name": "sct",
"avatar_url": "https://avatars1.githubusercontent.com/u/234213?v=4",
"profile": "https://sct.dev",
"contributions": [
"code",
"design",
"ideas"
]
},
{
"login": "azoitos",
"name": "Alex Zoitos",
"avatar_url": "https://avatars2.githubusercontent.com/u/26529049?v=4",
"profile": "https://github.com/azoitos",
"contributions": [
"code"
]
},
{
"login": "OwsleyJr",
"name": "Brandon Cohen",
"avatar_url": "https://avatars3.githubusercontent.com/u/8635678?v=4",
"profile": "https://github.com/OwsleyJr",
"contributions": [
"code",
"doc"
]
},
{
"login": "Ahreluth",
"name": "Ahreluth",
"avatar_url": "https://avatars2.githubusercontent.com/u/75682440?v=4",
"profile": "https://github.com/Ahreluth",
"contributions": [
"translation"
]
},
{
"login": "KovalevArtem",
"name": "KovalevArtem",
"avatar_url": "https://avatars0.githubusercontent.com/u/36500228?v=4",
"profile": "https://github.com/KovalevArtem",
"contributions": [
"translation"
]
},
{
"login": "GiyomuWeb",
"name": "GiyomuWeb",
"avatar_url": "https://avatars0.githubusercontent.com/u/62489209?v=4",
"profile": "https://github.com/GiyomuWeb",
"contributions": [
"translation"
]
},
{
"login": "angrycuban13",
"name": "Angry Cuban",
"avatar_url": "https://avatars3.githubusercontent.com/u/39564898?v=4",
"profile": "https://github.com/angrycuban13",
"contributions": [
"doc"
]
}
],
"badgeTemplate": "<a href=\"#contributors-\"><img alt=\"All Contributors\" src=\"https://img.shields.io/badge/all_contributors-<%= contributors.length %>-orange.svg\"/></a>",
"contributorsPerLine": 7,
"projectName": "overseerr",
"projectOwner": "sct",
"repoType": "github",
"repoHost": "https://github.com",
"skipCi": true
}

View File

@@ -26,7 +26,7 @@ jobs:
build_and_push: build_and_push:
name: Build and push Docker image to Docker Hub name: Build and push Docker image to Docker Hub
needs: test needs: test
if: github.ref == 'refs/heads/develop' if: github.ref == 'refs/heads/develop' && !contains(github.event.head_commit.message, 'skip ci')
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: checkout - name: checkout

View File

@@ -20,7 +20,7 @@ jobs:
run: yarn lint run: yarn lint
- name: build - name: build
run: yarn build run: yarn build
semnatic-release: semantic-release:
name: Tag and release latest version name: Tag and release latest version
needs: test needs: test
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -15,9 +15,12 @@
</a> </a>
<a href="https://lgtm.com/projects/g/sct/overseerr/context:javascript"><img alt="Language grade: JavaScript" src="https://img.shields.io/lgtm/grade/javascript/g/sct/overseerr.svg?logo=lgtm&logoWidth=18"/></a> <a href="https://lgtm.com/projects/g/sct/overseerr/context:javascript"><img alt="Language grade: JavaScript" src="https://img.shields.io/lgtm/grade/javascript/g/sct/overseerr.svg?logo=lgtm&logoWidth=18"/></a>
<img alt="GitHub" src="https://img.shields.io/github/license/sct/overseerr"> <img alt="GitHub" src="https://img.shields.io/github/license/sct/overseerr">
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
<a href="#contributors-"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-7-orange.svg"/></a>
<!-- ALL-CONTRIBUTORS-BADGE:END -->
</p> </p>
**Overseerr** is a libre software tool for managing requests for your media library. It integrates with existing services such as **Sonarr** and **Radarr**! **Overseerr** is a free and open source software application for managing requests for your media library. It integrates with your existing services such as **Sonarr**, **Radarr** and **Plex**!
## Current Features ## Current Features
@@ -52,9 +55,9 @@ docker run -d \
-e LOG_LEVEL=info \ -e LOG_LEVEL=info \
-e TZ=Asia/Tokyo \ -e TZ=Asia/Tokyo \
-p 5055:3000 \ -p 5055:3000 \
-v /path/to/appdata/config:/config \ -v /path/to/appdata/config:/app/config \
--restart unless-stopped \ --restart unless-stopped \
sctx/overseer sctx/overseerr
``` ```
After running Overseerr for the first time, configure it by visiting the web UI at http://[address]:5055 and completing the setup steps. After running Overseerr for the first time, configure it by visiting the web UI at http://[address]:5055 and completing the setup steps.
@@ -85,9 +88,25 @@ Our [Code of Conduct](https://github.com/sct/overseerr/blob/develop/CODE_OF_COND
## Contributors ## Contributors
<a href="https://github.com/sct/overseerr/graphs/contributors"> <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<img src="https://contributors-img.web.app/image?repo=sct/overseerr" /> <!-- prettier-ignore-start -->
</a> <!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://sct.dev"><img src="https://avatars1.githubusercontent.com/u/234213?v=4" width="100px;" alt=""/><br /><sub><b>sct</b></sub></a><br /><a href="https://github.com/sct/overseerr/commits?author=sct" title="Code">💻</a> <a href="#design-sct" title="Design">🎨</a> <a href="#ideas-sct" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://github.com/azoitos"><img src="https://avatars2.githubusercontent.com/u/26529049?v=4" width="100px;" alt=""/><br /><sub><b>Alex Zoitos</b></sub></a><br /><a href="https://github.com/sct/overseerr/commits?author=azoitos" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/OwsleyJr"><img src="https://avatars3.githubusercontent.com/u/8635678?v=4" width="100px;" alt=""/><br /><sub><b>Brandon Cohen</b></sub></a><br /><a href="https://github.com/sct/overseerr/commits?author=OwsleyJr" title="Code">💻</a> <a href="https://github.com/sct/overseerr/commits?author=OwsleyJr" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/Ahreluth"><img src="https://avatars2.githubusercontent.com/u/75682440?v=4" width="100px;" alt=""/><br /><sub><b>Ahreluth</b></sub></a><br /><a href="#translation-Ahreluth" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/KovalevArtem"><img src="https://avatars0.githubusercontent.com/u/36500228?v=4" width="100px;" alt=""/><br /><sub><b>KovalevArtem</b></sub></a><br /><a href="#translation-KovalevArtem" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/GiyomuWeb"><img src="https://avatars0.githubusercontent.com/u/62489209?v=4" width="100px;" alt=""/><br /><sub><b>GiyomuWeb</b></sub></a><br /><a href="#translation-GiyomuWeb" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/angrycuban13"><img src="https://avatars3.githubusercontent.com/u/39564898?v=4" width="100px;" alt=""/><br /><sub><b>Angry Cuban</b></sub></a><br /><a href="https://github.com/sct/overseerr/commits?author=angrycuban13" title="Documentation">📖</a></td>
</tr>
</table>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
## Contributing ## Contributing

View File

@@ -9,7 +9,7 @@
"build": "yarn build:next && yarn build:server", "build": "yarn build:next && yarn build:server",
"lint": "eslint \"./server/**/*.{ts,tsx}\" \"./src/**/*.{ts,tsx}\"", "lint": "eslint \"./server/**/*.{ts,tsx}\" \"./src/**/*.{ts,tsx}\"",
"start": "NODE_ENV=production node dist/index.js", "start": "NODE_ENV=production node dist/index.js",
"i18n:extract": "extract-messages -l=en,ja,fr,nb_NO,de,ru,nl -o src/i18n/locale -d en --flat true --overwriteDefault false './src/**/!(*.test).{ts,tsx}'", "i18n:extract": "extract-messages -l=en -o src/i18n/locale -d en --flat true --overwriteDefault false './src/**/!(*.test).{ts,tsx}'",
"migration:generate": "ts-node --project server/tsconfig.json ./node_modules/.bin/typeorm migration:generate", "migration:generate": "ts-node --project server/tsconfig.json ./node_modules/.bin/typeorm migration:generate",
"migration:run": "ts-node --project server/tsconfig.json ./node_modules/.bin/typeorm migration:run", "migration:run": "ts-node --project server/tsconfig.json ./node_modules/.bin/typeorm migration:run",
"format": "prettier --write ." "format": "prettier --write ."
@@ -52,7 +52,7 @@
"winston": "^3.3.3", "winston": "^3.3.3",
"xml2js": "^0.4.23", "xml2js": "^0.4.23",
"yamljs": "^0.3.0", "yamljs": "^0.3.0",
"yup": "^0.32.6" "yup": "^0.32.8"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.12.8", "@babel/cli": "^7.12.8",

View File

@@ -100,7 +100,7 @@ class Settings {
constructor(initialSettings?: AllSettings) { constructor(initialSettings?: AllSettings) {
this.data = { this.data = {
clientId: '', clientId: uuidv4(),
main: { main: {
apiKey: '', apiKey: '',
applicationUrl: '', applicationUrl: '',
@@ -222,10 +222,10 @@ class Settings {
* @param overrideSettings If passed in, will override all existing settings with these * @param overrideSettings If passed in, will override all existing settings with these
* values * values
*/ */
public load(overrideSettings?: AllSettings): AllSettings { public load(overrideSettings?: AllSettings): Settings {
if (overrideSettings) { if (overrideSettings) {
this.data = overrideSettings; this.data = overrideSettings;
return this.data; return this;
} }
if (!fs.existsSync(SETTINGS_PATH)) { if (!fs.existsSync(SETTINGS_PATH)) {
@@ -237,7 +237,7 @@ class Settings {
this.data = merge(this.data, JSON.parse(data)); this.data = merge(this.data, JSON.parse(data));
this.save(); this.save();
} }
return this.data; return this;
} }
public save(): void { public save(): void {

View File

@@ -2,7 +2,7 @@ import React from 'react';
interface HeaderProps { interface HeaderProps {
extraMargin?: number; extraMargin?: number;
subtext?: string; subtext?: React.ReactNode;
} }
const Header: React.FC<HeaderProps> = ({ const Header: React.FC<HeaderProps> = ({

View File

@@ -0,0 +1,66 @@
import Link from 'next/link';
import { useRouter } from 'next/router';
import React, { useContext } from 'react';
import { defineMessages, useIntl } from 'react-intl';
import useSWR from 'swr';
import { MovieDetails } from '../../../../server/models/Movie';
import { LanguageContext } from '../../../context/LanguageContext';
import Error from '../../../pages/_error';
import Header from '../../Common/Header';
import LoadingSpinner from '../../Common/LoadingSpinner';
import PersonCard from '../../PersonCard';
const messages = defineMessages({
fullcast: 'Full Cast',
});
const MovieCast: React.FC = () => {
const router = useRouter();
const intl = useIntl();
const { locale } = useContext(LanguageContext);
const { data, error } = useSWR<MovieDetails>(
`/api/v1/movie/${router.query.movieId}?language=${locale}`
);
if (!data && !error) {
return <LoadingSpinner />;
}
if (!data) {
return <Error statusCode={404} />;
}
return (
<>
<Header
subtext={
<Link href={`/movie/${data.id}`}>
<a className="hover:underline">{data.title}</a>
</Link>
}
>
{intl.formatMessage(messages.fullcast)}
</Header>
<ul className="grid grid-cols-2 gap-6 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-7 2xl:grid-cols-8">
{data?.credits.cast.map((person) => {
return (
<li
key={person.id}
className="col-span-1 flex flex-col text-center items-center"
>
<PersonCard
name={person.name}
personId={person.id}
subName={person.character}
profilePath={person.profilePath}
canExpand
/>
</li>
);
})}
</ul>
</>
);
};
export default MovieCast;

View File

@@ -5,7 +5,6 @@ import type { PersonDetail } from '../../../server/models/Person';
import type { PersonCombinedCreditsResponse } from '../../../server/interfaces/api/personInterfaces'; import type { PersonCombinedCreditsResponse } from '../../../server/interfaces/api/personInterfaces';
import Error from '../../pages/_error'; import Error from '../../pages/_error';
import LoadingSpinner from '../Common/LoadingSpinner'; import LoadingSpinner from '../Common/LoadingSpinner';
import Slider from '../Slider';
import TitleCard from '../TitleCard'; import TitleCard from '../TitleCard';
import { defineMessages, useIntl } from 'react-intl'; import { defineMessages, useIntl } from 'react-intl';
import { LanguageContext } from '../../context/LanguageContext'; import { LanguageContext } from '../../context/LanguageContext';
@@ -54,9 +53,11 @@ const PersonDetails: React.FC = () => {
return 1; return 1;
}); });
const isLoading = !combinedCredits && !errorCombinedCredits;
return ( return (
<> <>
<div className="flex mt-8 mb-8 flex-col md:flex-row items-center"> <div className="flex mt-8 mb-8 flex-col md:flex-row items-center md:items-start">
{data.profilePath && ( {data.profilePath && (
<div <div
style={{ style={{
@@ -81,13 +82,13 @@ const PersonDetails: React.FC = () => {
</div> </div>
</div> </div>
</div> </div>
<Slider <ul className="grid grid-cols-2 gap-6 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-7 2xl:grid-cols-8">
isEmpty={!sortedCast} {sortedCast?.map((media) => {
isLoading={!combinedCredits && !errorCombinedCredits}
sliderKey={`person-${data.id}-slider-cast`}
items={sortedCast?.map((media) => {
return ( return (
<div key={`slider-cast-item-${media.id}`} className="flex flex-col"> <li
key={`list-cast-item-${media.id}`}
className="col-span-1 flex flex-col text-center items-center"
>
<TitleCard <TitleCard
id={media.id} id={media.id}
title={media.mediaType === 'movie' ? media.title : media.name} title={media.mediaType === 'movie' ? media.title : media.name}
@@ -101,6 +102,7 @@ const PersonDetails: React.FC = () => {
summary={media.overview} summary={media.overview}
mediaType={media.mediaType as 'movie' | 'tv'} mediaType={media.mediaType as 'movie' | 'tv'}
status={media.mediaInfo?.status} status={media.mediaInfo?.status}
canExpand
/> />
{media.character && ( {media.character && (
<div className="mt-2 text-gray-300 text-xs truncate w-36 sm:w-36 md:w-44 text-center"> <div className="mt-2 text-gray-300 text-xs truncate w-36 sm:w-36 md:w-44 text-center">
@@ -109,10 +111,19 @@ const PersonDetails: React.FC = () => {
})} })}
</div> </div>
)} )}
</div> </li>
); );
})} })}
/> {isLoading &&
[...Array(20)].map((_item, i) => (
<li
key={`placeholder-${i}`}
className="col-span-1 flex flex-col text-center items-center"
>
<TitleCard.Placeholder canExpand />
</li>
))}
</ul>
</> </>
); );
}; };

View File

@@ -0,0 +1,66 @@
import Link from 'next/link';
import { useRouter } from 'next/router';
import React, { useContext } from 'react';
import { defineMessages, useIntl } from 'react-intl';
import useSWR from 'swr';
import type { TvDetails } from '../../../../server/models/Tv';
import { LanguageContext } from '../../../context/LanguageContext';
import Error from '../../../pages/_error';
import Header from '../../Common/Header';
import LoadingSpinner from '../../Common/LoadingSpinner';
import PersonCard from '../../PersonCard';
const messages = defineMessages({
fullseriescast: 'Full Series Cast',
});
const TvCast: React.FC = () => {
const router = useRouter();
const intl = useIntl();
const { locale } = useContext(LanguageContext);
const { data, error } = useSWR<TvDetails>(
`/api/v1/tv/${router.query.tvId}?language=${locale}`
);
if (!data && !error) {
return <LoadingSpinner />;
}
if (!data) {
return <Error statusCode={404} />;
}
return (
<>
<Header
subtext={
<Link href={`/tv/${data.id}`}>
<a className="hover:underline">{data.name}</a>
</Link>
}
>
{intl.formatMessage(messages.fullseriescast)}
</Header>
<ul className="grid grid-cols-2 gap-6 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-7 2xl:grid-cols-8">
{data?.credits.cast.map((person) => {
return (
<li
key={person.id}
className="col-span-1 flex flex-col text-center items-center"
>
<PersonCard
name={person.name}
personId={person.id}
subName={person.character}
profilePath={person.profilePath}
canExpand
/>
</li>
);
})}
</ul>
</>
);
};
export default TvCast;

View File

@@ -45,14 +45,14 @@
"components.MovieDetails.unavailable": "Nicht verfügbar", "components.MovieDetails.unavailable": "Nicht verfügbar",
"components.MovieDetails.userrating": "Benutzerbewertung", "components.MovieDetails.userrating": "Benutzerbewertung",
"components.MovieDetails.viewrequest": "Antrag anzeigen", "components.MovieDetails.viewrequest": "Antrag anzeigen",
"components.PersonDetails.appearsin": "", "components.PersonDetails.appearsin": "Erscheint in",
"components.PersonDetails.ascharacter": "", "components.PersonDetails.ascharacter": "als {character}",
"components.PersonDetails.nobiography": "", "components.PersonDetails.nobiography": "Keine Biografie verfügbar.",
"components.PlexLoginButton.loading": "Wird geladen …", "components.PlexLoginButton.loading": "Wird geladen …",
"components.PlexLoginButton.loggingin": "Wird angemeldet …", "components.PlexLoginButton.loggingin": "Wird angemeldet …",
"components.PlexLoginButton.loginwithplex": "Anmeldung mit Plex", "components.PlexLoginButton.loginwithplex": "Anmeldung mit Plex",
"components.RequestBlock.seasons": "Staffeln", "components.RequestBlock.seasons": "Staffeln",
"components.RequestCard.all": "", "components.RequestCard.all": "Alle",
"components.RequestCard.requestedby": "Antrag von {username}", "components.RequestCard.requestedby": "Antrag von {username}",
"components.RequestCard.seasons": "Staffeln", "components.RequestCard.seasons": "Staffeln",
"components.RequestList.RequestItem.notavailable": "entf.", "components.RequestList.RequestItem.notavailable": "entf.",
@@ -62,7 +62,7 @@
"components.RequestList.modifiedBy": "Zuletzt geändert von", "components.RequestList.modifiedBy": "Zuletzt geändert von",
"components.RequestList.next": "Nächste", "components.RequestList.next": "Nächste",
"components.RequestList.previous": "Vorherige", "components.RequestList.previous": "Vorherige",
"components.RequestList.requestedAt": "Antrag erstellt um", "components.RequestList.requestedAt": "Antrag erstellt am",
"components.RequestList.requests": "Anträge", "components.RequestList.requests": "Anträge",
"components.RequestList.showingresults": "Anzeigen von <strong>{from}</strong> bis <strong> {to} </strong> von <strong> {total} </strong> Ergebnissen", "components.RequestList.showingresults": "Anzeigen von <strong>{from}</strong> bis <strong> {to} </strong> von <strong> {total} </strong> Ergebnissen",
"components.RequestList.status": "Status", "components.RequestList.status": "Status",
@@ -88,22 +88,22 @@
"components.RequestModal.status": "Status", "components.RequestModal.status": "Status",
"components.Search.searchresults": "Suchergebnisse", "components.Search.searchresults": "Suchergebnisse",
"components.Settings.Notifications.agentenabled": "Agent aktiviert", "components.Settings.Notifications.agentenabled": "Agent aktiviert",
"components.Settings.Notifications.authPass": "", "components.Settings.Notifications.authPass": "Auth Pass",
"components.Settings.Notifications.authUser": "", "components.Settings.Notifications.authUser": "Auth User",
"components.Settings.Notifications.emailsender": "E-Mail-Absenderadresse", "components.Settings.Notifications.emailsender": "E-Mail-Absenderadresse",
"components.Settings.Notifications.enableSsl": "SSL aktivieren", "components.Settings.Notifications.enableSsl": "SSL aktivieren",
"components.Settings.Notifications.save": "", "components.Settings.Notifications.save": "Änderungen speichern",
"components.Settings.Notifications.saving": "", "components.Settings.Notifications.saving": "Speichern ",
"components.Settings.Notifications.smtpHost": "", "components.Settings.Notifications.smtpHost": "SMTP-Host",
"components.Settings.Notifications.smtpPort": "", "components.Settings.Notifications.smtpPort": "SMTP-Port",
"components.Settings.Notifications.validationFromRequired": "", "components.Settings.Notifications.validationFromRequired": "Sie müssen eine E-Mail-Absenderadresse angeben",
"components.Settings.Notifications.validationSmtpHostRequired": "", "components.Settings.Notifications.validationSmtpHostRequired": "Sie müssen einen SMTP-Host bereitstellen",
"components.Settings.Notifications.validationSmtpPortRequired": "Sie müssen einen SMTP-Port bereitstellen", "components.Settings.Notifications.validationSmtpPortRequired": "Sie müssen einen SMTP-Port bereitstellen",
"components.Settings.Notifications.validationWebhookUrlRequired": "Sie müssen eine Webhook-URL angeben", "components.Settings.Notifications.validationWebhookUrlRequired": "Sie müssen eine Webhook-URL angeben",
"components.Settings.Notifications.webhookUrl": "Webhook-URL", "components.Settings.Notifications.webhookUrl": "Webhook-URL",
"components.Settings.Notifications.webhookUrlPlaceholder": "Servereinstellungen -> Integrationen -> Webhooks", "components.Settings.Notifications.webhookUrlPlaceholder": "Servereinstellungen -> Integrationen -> Webhooks",
"components.Settings.RadarrModal.add": "", "components.Settings.RadarrModal.add": "Server hinzufügen",
"components.Settings.RadarrModal.apiKey": "", "components.Settings.RadarrModal.apiKey": "API-Schlüssel",
"components.Settings.RadarrModal.apiKeyPlaceholder": "Ihr Radarr-API-Schlüssel", "components.Settings.RadarrModal.apiKeyPlaceholder": "Ihr Radarr-API-Schlüssel",
"components.Settings.RadarrModal.baseUrl": "Basis-URL", "components.Settings.RadarrModal.baseUrl": "Basis-URL",
"components.Settings.RadarrModal.baseUrlPlaceholder": "Beispiel: /radarr", "components.Settings.RadarrModal.baseUrlPlaceholder": "Beispiel: /radarr",
@@ -138,169 +138,171 @@
"components.Settings.SonarrModal.apiKeyPlaceholder": "Ihr Sonarr-API-Schlüssel", "components.Settings.SonarrModal.apiKeyPlaceholder": "Ihr Sonarr-API-Schlüssel",
"components.Settings.SonarrModal.baseUrl": "Basis-URL", "components.Settings.SonarrModal.baseUrl": "Basis-URL",
"components.Settings.SonarrModal.baseUrlPlaceholder": "Beispiel: /sonarr", "components.Settings.SonarrModal.baseUrlPlaceholder": "Beispiel: /sonarr",
"components.Settings.SonarrModal.createsonarr": "", "components.Settings.SonarrModal.createsonarr": "Neuen Sonarr-Server erstellen",
"components.Settings.SonarrModal.defaultserver": "", "components.Settings.SonarrModal.defaultserver": "Standardserver",
"components.Settings.SonarrModal.editsonarr": "", "components.Settings.SonarrModal.editsonarr": "Sonarr-Server bearbeiten",
"components.Settings.SonarrModal.hostname": "", "components.Settings.SonarrModal.hostname": "Hostname",
"components.Settings.SonarrModal.port": "", "components.Settings.SonarrModal.port": "Port",
"components.Settings.SonarrModal.qualityprofile": "", "components.Settings.SonarrModal.qualityprofile": "Qualitätsprofil",
"components.Settings.SonarrModal.rootfolder": "", "components.Settings.SonarrModal.rootfolder": "Stammordner",
"components.Settings.SonarrModal.save": "", "components.Settings.SonarrModal.save": "Änderungen speichern",
"components.Settings.SonarrModal.saving": "", "components.Settings.SonarrModal.saving": "Speichern ",
"components.Settings.SonarrModal.seasonfolders": "", "components.Settings.SonarrModal.seasonfolders": "Staffelnordner",
"components.Settings.SonarrModal.selectQualityProfile": "", "components.Settings.SonarrModal.selectQualityProfile": "Wählen Sie ein Qualitätsprofil",
"components.Settings.SonarrModal.selectRootFolder": "", "components.Settings.SonarrModal.selectRootFolder": "Wählen Sie einen Stammordner",
"components.Settings.SonarrModal.server4k": "", "components.Settings.SonarrModal.server4k": "4K-Server",
"components.Settings.SonarrModal.servername": "", "components.Settings.SonarrModal.servername": "Servername",
"components.Settings.SonarrModal.servernamePlaceholder": "", "components.Settings.SonarrModal.servernamePlaceholder": "Ein Sonarr-Server",
"components.Settings.SonarrModal.ssl": "", "components.Settings.SonarrModal.ssl": "SSL",
"components.Settings.SonarrModal.test": "", "components.Settings.SonarrModal.test": "Test",
"components.Settings.SonarrModal.testing": "", "components.Settings.SonarrModal.testing": "Testen ",
"components.Settings.SonarrModal.toastRadarrTestFailure": "", "components.Settings.SonarrModal.toastRadarrTestFailure": "Es konnte keine Verbindung zu Sonarr-Server hergestellt werden",
"components.Settings.SonarrModal.toastRadarrTestSuccess": "", "components.Settings.SonarrModal.toastRadarrTestSuccess": "Sonarr-Verbindung hergestellt!",
"components.Settings.SonarrModal.validationApiKeyRequired": "", "components.Settings.SonarrModal.validationApiKeyRequired": "Sie müssen einen API-Schlüssel angeben",
"components.Settings.SonarrModal.validationHostnameRequired": "", "components.Settings.SonarrModal.validationHostnameRequired": "Sie müssen einen Hostnamen/IP angeben",
"components.Settings.SonarrModal.validationPortRequired": "", "components.Settings.SonarrModal.validationPortRequired": "Sie müssen einen Port angeben",
"components.Settings.SonarrModal.validationProfileRequired": "", "components.Settings.SonarrModal.validationProfileRequired": "Sie müssen ein Profil auswählen",
"components.Settings.SonarrModal.validationRootFolderRequired": "", "components.Settings.SonarrModal.validationRootFolderRequired": "Sie müssen einen Stammordner auswählen",
"components.Settings.activeProfile": "", "components.Settings.activeProfile": "Aktives Profil",
"components.Settings.addradarr": "", "components.Settings.addradarr": "Radarr-Server hinzufügen",
"components.Settings.address": "", "components.Settings.address": "Adresse",
"components.Settings.addsonarr": "", "components.Settings.addsonarr": "Sonarr-Server hinzufügen",
"components.Settings.apikey": "", "components.Settings.apikey": "API-Schlüssel",
"components.Settings.applicationurl": "", "components.Settings.applicationurl": "Anwendungs-URL",
"components.Settings.cancelscan": "", "components.Settings.cancelscan": "Scan abbrechen",
"components.Settings.copied": "", "components.Settings.copied": "Kopierter API-Schlüssel in die Zwischenablage",
"components.Settings.currentlibrary": "", "components.Settings.currentlibrary": "Aktuelle Bibliothek: {name}",
"components.Settings.default": "", "components.Settings.default": "Standardmäßig",
"components.Settings.default4k": "", "components.Settings.default4k": "Standard-4K",
"components.Settings.delete": "", "components.Settings.delete": "Löschen",
"components.Settings.deleteserverconfirm": "", "components.Settings.deleteserverconfirm": "Sind Sie sicher, dass Sie diesen Server löschen möchten?",
"components.Settings.edit": "", "components.Settings.edit": "Bearbeiten",
"components.Settings.generalsettings": "", "components.Settings.generalsettings": "Allgemeine Einstellungen",
"components.Settings.generalsettingsDescription": "", "components.Settings.generalsettingsDescription": "Dies sind Einstellungen, die sich auf die allgemeine Overseerr-Konfiguration beziehen.",
"components.Settings.hostname": "", "components.Settings.hostname": "Hostname/IP",
"components.Settings.jobname": "", "components.Settings.jobname": "Auftragsname",
"components.Settings.librariesRemaining": "", "components.Settings.librariesRemaining": "Verbleibende Bibliotheken: {count}",
"components.Settings.manualscan": "", "components.Settings.manualscan": "Manueller Bibliotheksscan",
"components.Settings.manualscanDescription": "", "components.Settings.manualscanDescription": "Normalerweise wird dies nur einmal alle 6 Stunden ausgeführt. Overseerr überprüft die kürzlich hinzugefügten Plex-Server aggressiver. Wenn Sie Plex zum ersten Mal konfigurieren, wird ein einmaliger vollständiger manueller Bibliotheksscan empfohlen!",
"components.Settings.menuAbout": "", "components.Settings.menuAbout": "Über",
"components.Settings.menuGeneralSettings": "", "components.Settings.menuGeneralSettings": "Allgemeine Einstellungen",
"components.Settings.menuJobs": "", "components.Settings.menuJobs": "Anträge",
"components.Settings.menuLogs": "", "components.Settings.menuLogs": "Protokolle",
"components.Settings.menuNotifications": "", "components.Settings.menuNotifications": "Benachrichtigungen",
"components.Settings.menuPlexSettings": "", "components.Settings.menuPlexSettings": "Plex",
"components.Settings.menuServices": "", "components.Settings.menuServices": "Dienste",
"components.Settings.nextexecution": "", "components.Settings.nextexecution": "Nächste Ausführung",
"components.Settings.notificationsettings": "", "components.Settings.notificationsettings": "Benachrichtigungseinstellungen",
"components.Settings.notificationsettingsDescription": "", "components.Settings.notificationsettingsDescription": "Hier können Sie auswählen, welche Arten von Benachrichtigungen gesendet werden sollen und über welche Arten von Diensten.",
"components.Settings.notrunning": "", "components.Settings.notrunning": "Nicht aktiv",
"components.Settings.plexlibraries": "", "components.Settings.plexlibraries": "Plex-Bibliotheken",
"components.Settings.plexlibrariesDescription": "", "components.Settings.plexlibrariesDescription": "Die Bibliotheken-Overseerr sucht nach Titeln. Richten Sie Ihre Plex-Verbindungseinstellungen ein und speichern Sie sie, und klicken Sie auf die Schaltfläche unten, wenn keine aufgeführt sind.",
"components.Settings.plexsettings": "", "components.Settings.plexsettings": "Plex-Einstellungen",
"components.Settings.plexsettingsDescription": "", "components.Settings.plexsettingsDescription": "Konfigurieren Sie die Einstellungen für Ihren Plex-Server. Overseerr verwendet Ihren Plex-Server, um Ihre Bibliothek in regelmäßigen Abständen zu scannen und festzustellen, welche Inhalte verfügbar sind.",
"components.Settings.port": "", "components.Settings.port": "Port",
"components.Settings.radarrSettingsDescription": "", "components.Settings.radarrSettingsDescription": "Richten Sie unten Ihre Radarr-Verbindung ein. Sie können jederzeit mehrere, aber nur zwei standardmäßig aktiv haben (eine für Standard-HD und eine für 4K). Administratoren können überschreiben, welcher Server für neue Anforderungen verwendet wird.",
"components.Settings.radarrsettings": "", "components.Settings.radarrsettings": "Radarr-Einstellungen",
"components.Settings.runnow": "", "components.Settings.runnow": "Jetzt ausführen",
"components.Settings.save": "", "components.Settings.save": "Änderungen speichern",
"components.Settings.saving": "", "components.Settings.saving": "Speichern ",
"components.Settings.servername": "", "components.Settings.servername": "Servername (automatisch festgelegt)",
"components.Settings.servernamePlaceholder": "", "components.Settings.servernamePlaceholder": "Plex-Servername",
"components.Settings.sonarrSettingsDescription": "", "components.Settings.sonarrSettingsDescription": "Richten Sie unten Ihre Sonarr-Verbindung ein. Sie können jederzeit mehrere, aber nur zwei standardmäßig aktiv haben (eine für Standard-HD und eine für 4K). Administratoren können überschreiben, welcher Server für neue Anforderungen verwendet wird.",
"components.Settings.sonarrsettings": "", "components.Settings.sonarrsettings": "Sonarr-Einstellungen",
"components.Settings.ssl": "", "components.Settings.ssl": "SSL",
"components.Settings.startscan": "", "components.Settings.startscan": "Scan starten",
"components.Settings.sync": "", "components.Settings.sync": "Plex-Bibliotheken synchronisieren",
"components.Settings.syncing": "", "components.Settings.syncing": "Synchronisierung ",
"components.Setup.configureplex": "", "components.Setup.configureplex": "Plex konfigurieren",
"components.Setup.configureservices": "", "components.Setup.configureservices": "Dienste konfigurieren",
"components.Setup.continue": "", "components.Setup.continue": "Fortfahren",
"components.Setup.finish": "", "components.Setup.finish": "Konfiguration beenden",
"components.Setup.finishing": "", "components.Setup.finishing": "Fertigstellung ",
"components.Setup.loginwithplex": "", "components.Setup.loginwithplex": "Anmeldung mit Plex",
"components.Setup.signinMessage": "", "components.Setup.signinMessage": "Melden Sie sich zunächst mit Ihrem Plex-Konto an",
"components.Setup.welcome": "", "components.Setup.welcome": "Willkommen bei Overseerr",
"components.Slider.noresults": "", "components.Slider.noresults": "Keine Ergebnisse",
"components.TitleCard.movie": "", "components.TitleCard.movie": "Film",
"components.TitleCard.tvshow": "", "components.TitleCard.tvshow": "Serie",
"components.TvDetails.approve": "", "components.TvDetails.approve": "Genehmigen",
"components.TvDetails.approverequests": "", "components.TvDetails.approverequests": "{requestCount} {requestCount, plural, one {Request} other {Requests}} genehmigen",
"components.TvDetails.available": "", "components.TvDetails.available": "Verfügbar",
"components.TvDetails.cancelrequest": "", "components.TvDetails.cancelrequest": "Antrag abbrechen",
"components.TvDetails.cast": "", "components.TvDetails.cast": "Besetzung",
"components.TvDetails.decline": "", "components.TvDetails.decline": "Ablehnen",
"components.TvDetails.declinerequests": "", "components.TvDetails.declinerequests": "{requestCount} {requestCount, plural, one {Request} andere {Requests}} ablehnen",
"components.TvDetails.manageModalClearMedia": "", "components.TvDetails.manageModalClearMedia": "Alle Mediendaten löschen",
"components.TvDetails.manageModalClearMediaWarning": "", "components.TvDetails.manageModalClearMediaWarning": "Dadurch werden alle Mediendaten einschließlich aller Anträge für dieses Element irreversibel entfernt. Wenn dieses Element in Ihrer Plex-Bibliothek vorhanden ist, werden die Medieninformationen bei der nächsten Synchronisierung neu erstellt.",
"components.TvDetails.manageModalNoRequests": "", "components.TvDetails.manageModalNoRequests": "Keine Anträge",
"components.TvDetails.manageModalRequests": "", "components.TvDetails.manageModalRequests": "Anträge",
"components.TvDetails.manageModalTitle": "", "components.TvDetails.manageModalTitle": "Serien verwalten",
"components.TvDetails.originallanguage": "", "components.TvDetails.originallanguage": "Originalsprache",
"components.TvDetails.overview": "", "components.TvDetails.overview": "Übersicht",
"components.TvDetails.overviewunavailable": "", "components.TvDetails.overviewunavailable": "Übersicht nicht verfügbar",
"components.TvDetails.pending": "", "components.TvDetails.pending": "Ausstehend",
"components.TvDetails.recommendations": "", "components.TvDetails.recommendations": "Empfehlungen",
"components.TvDetails.recommendationssubtext": "", "components.TvDetails.recommendationssubtext": "Wenn Ihnen {title} gefallen hat, könnte Ihnen auch gefallen ",
"components.TvDetails.request": "", "components.TvDetails.request": "Antrag",
"components.TvDetails.requestmore": "", "components.TvDetails.requestmore": "Mehr anfordern",
"components.TvDetails.similar": "", "components.TvDetails.similar": "Ähnliche Serien",
"components.TvDetails.similarsubtext": "", "components.TvDetails.similarsubtext": "Andere Serien {title} ähnlich",
"components.TvDetails.status": "", "components.TvDetails.status": "Status",
"components.TvDetails.unavailable": "", "components.TvDetails.unavailable": "Nicht verfügbar",
"components.TvDetails.userrating": "", "components.TvDetails.userrating": "Benutzerbewertung",
"components.UserEdit.admin": "", "components.UserEdit.admin": "Administrator/in",
"components.UserEdit.adminDescription": "", "components.UserEdit.adminDescription": "Voller Administratorzugriff. Umgeht alle Berechtigungsprüfungen.",
"components.UserEdit.autoapprove": "", "components.UserEdit.autoapprove": "Automatische Genehmigung",
"components.UserEdit.autoapproveDescription": "", "components.UserEdit.autoapproveDescription": "Gewährt die automatische Genehmigung für alle Anträge dieses Benutzers.",
"components.UserEdit.avatar": "", "components.UserEdit.avatar": "Avatar",
"components.UserEdit.edituser": "", "components.UserEdit.edituser": "Benutzer/in bearbeiten",
"components.UserEdit.email": "", "components.UserEdit.email": "E-Mail",
"components.UserEdit.managerequests": "", "components.UserEdit.managerequests": "Anträge verwalten",
"components.UserEdit.managerequestsDescription": "", "components.UserEdit.managerequestsDescription": "Erteilt die Berechtigung zum Verwalten von Overseerr-Anträgen. Dies umfasst das Genehmigen und Ablehnen von Anträgen.",
"components.UserEdit.permissions": "", "components.UserEdit.permissions": "Berechtigungen",
"components.UserEdit.request": "", "components.UserEdit.request": "Antrag",
"components.UserEdit.requestDescription": "", "components.UserEdit.requestDescription": "Erteilt die Berechtigung zum Anfordern von Filmen und Serien.",
"components.UserEdit.save": "", "components.UserEdit.save": "Speichern",
"components.UserEdit.saving": "", "components.UserEdit.saving": "Speichern ",
"components.UserEdit.settings": "", "components.UserEdit.settings": "Einstellungen verwalten",
"components.UserEdit.settingsDescription": "", "components.UserEdit.settingsDescription": "Erteilt die Berechtigung zum Ändern aller Overseerr-Einstellungen. Ein/e Benutzer/in muss über diese Berechtigung verfügen, um sie anderen Personen erteilen zu können.",
"components.UserEdit.userfail": "", "components.UserEdit.userfail": "Beim Speichern des Benutzers ist ein Fehler aufgetreten.",
"components.UserEdit.username": "", "components.UserEdit.username": "Benutzername",
"components.UserEdit.users": "", "components.UserEdit.users": "Benutzer verwalten",
"components.UserEdit.usersDescription": "", "components.UserEdit.usersDescription": "Erteilt die Berechtigung zum Verwalten von Overseerr-Benutzern. Benutzer/innen mit dieser Berechtigung können Benutzer/innen mit Administratorrechten nicht ändern oder gewähren.",
"components.UserEdit.usersaved": "", "components.UserEdit.usersaved": "Benutzer/in gespeichert",
"components.UserEdit.vote": "", "components.UserEdit.vote": "Abstimmen",
"components.UserEdit.voteDescription": "", "components.UserEdit.voteDescription": "Erteilt die Erlaubnis, über Anträge abzustimmen (Abstimmung noch nicht durchgeführt)",
"components.UserList.admin": "", "components.UserList.admin": "Admin",
"components.UserList.created": "", "components.UserList.created": "Erstellt",
"components.UserList.delete": "", "components.UserList.delete": "Löschen",
"components.UserList.edit": "", "components.UserList.edit": "Bearbeiten",
"components.UserList.lastupdated": "", "components.UserList.lastupdated": "Zuletzt aktualisiert",
"components.UserList.plexuser": "", "components.UserList.plexuser": "Plex-Benutzer/in",
"components.UserList.role": "", "components.UserList.role": "Rolle",
"components.UserList.totalrequests": "", "components.UserList.totalrequests": "Anträge insgesamt",
"components.UserList.user": "", "components.UserList.user": "Benutzer/in",
"components.UserList.userlist": "", "components.UserList.userlist": "Benutzer/innen-Liste",
"components.UserList.username": "", "components.UserList.username": "Benutzername",
"components.UserList.usertype": "", "components.UserList.usertype": "Benutzertyp",
"i18n.approve": "", "i18n.approve": "Genehmigen",
"i18n.approved": "", "i18n.approved": "Genehmigt",
"i18n.available": "", "i18n.available": "Verfügbar",
"i18n.cancel": "", "i18n.cancel": "Abbrechen",
"i18n.decline": "", "i18n.decline": "Ablehnen",
"i18n.declined": "", "i18n.declined": "Abgelehnt",
"i18n.delete": "", "i18n.delete": "Löschen",
"i18n.movies": "", "i18n.movies": "Films",
"i18n.partiallyavailable": "", "i18n.partiallyavailable": "Teilweise verfügbar",
"i18n.pending": "", "i18n.pending": "Ausstehend",
"i18n.processing": "", "i18n.processing": "Verarbeitung ",
"i18n.tvshows": "", "i18n.tvshows": "Serien",
"i18n.unavailable": "", "i18n.unavailable": "Nicht verfügbar",
"pages.internalServerError": "", "pages.internalServerError": "{statusCode} Interner Serverfehler",
"pages.oops": "", "pages.oops": "Hoppla",
"pages.pageNotFound": "", "pages.pageNotFound": "404 Seite nicht gefunden",
"pages.returnHome": "", "pages.returnHome": "Zur Starseite",
"pages.serviceUnavailable": "", "pages.serviceUnavailable": "{statusCode} Dienst nicht verfügbar",
"pages.somethingWentWrong": "" "pages.somethingWentWrong": "{statusCode} Es ist ein Fehler aufgetreten",
"components.TvDetails.TvCast.fullseriescast": "Vollserienbesetzung",
"components.MovieDetails.MovieCast.fullcast": "Vollständige Besetzung"
} }

View File

@@ -18,6 +18,7 @@
"components.Layout.UserDropdown.signout": "Sign Out", "components.Layout.UserDropdown.signout": "Sign Out",
"components.Layout.alphawarning": "This is ALPHA software. Almost everything is bound to be nearly broken and/or unstable. Please report issues to the Overseerr GitHub!", "components.Layout.alphawarning": "This is ALPHA software. Almost everything is bound to be nearly broken and/or unstable. Please report issues to the Overseerr GitHub!",
"components.Login.signinplex": "Sign in to continue", "components.Login.signinplex": "Sign in to continue",
"components.MovieDetails.MovieCast.fullcast": "Full Cast",
"components.MovieDetails.approve": "Approve", "components.MovieDetails.approve": "Approve",
"components.MovieDetails.available": "Available", "components.MovieDetails.available": "Available",
"components.MovieDetails.budget": "Budget", "components.MovieDetails.budget": "Budget",
@@ -212,7 +213,7 @@
"components.Settings.ssl": "SSL", "components.Settings.ssl": "SSL",
"components.Settings.startscan": "Start Scan", "components.Settings.startscan": "Start Scan",
"components.Settings.sync": "Sync Plex Libraries", "components.Settings.sync": "Sync Plex Libraries",
"components.Settings.syncing": "Syncing", "components.Settings.syncing": "Syncing",
"components.Setup.configureplex": "Configure Plex", "components.Setup.configureplex": "Configure Plex",
"components.Setup.configureservices": "Configure Services", "components.Setup.configureservices": "Configure Services",
"components.Setup.continue": "Continue", "components.Setup.continue": "Continue",
@@ -224,6 +225,7 @@
"components.Slider.noresults": "No Results", "components.Slider.noresults": "No Results",
"components.TitleCard.movie": "Movie", "components.TitleCard.movie": "Movie",
"components.TitleCard.tvshow": "Series", "components.TitleCard.tvshow": "Series",
"components.TvDetails.TvCast.fullseriescast": "Full Series Cast",
"components.TvDetails.approve": "Approve", "components.TvDetails.approve": "Approve",
"components.TvDetails.approverequests": "Approve {requestCount} {requestCount, plural, one {Request} other {Requests}}", "components.TvDetails.approverequests": "Approve {requestCount} {requestCount, plural, one {Request} other {Requests}}",
"components.TvDetails.available": "Available", "components.TvDetails.available": "Available",
@@ -260,7 +262,7 @@
"components.UserEdit.managerequestsDescription": "Grants permission to manage Overseerr requests. This includes approving and denying requests.", "components.UserEdit.managerequestsDescription": "Grants permission to manage Overseerr requests. This includes approving and denying requests.",
"components.UserEdit.permissions": "Permissions", "components.UserEdit.permissions": "Permissions",
"components.UserEdit.request": "Request", "components.UserEdit.request": "Request",
"components.UserEdit.requestDescription": "Grants permission to make requests for movies or tv shows.", "components.UserEdit.requestDescription": "Grants permission to request movies and series.",
"components.UserEdit.save": "Save", "components.UserEdit.save": "Save",
"components.UserEdit.saving": "Saving...", "components.UserEdit.saving": "Saving...",
"components.UserEdit.settings": "Manage Settings", "components.UserEdit.settings": "Manage Settings",
@@ -294,7 +296,7 @@
"i18n.movies": "Movies", "i18n.movies": "Movies",
"i18n.partiallyavailable": "Partially Available", "i18n.partiallyavailable": "Partially Available",
"i18n.pending": "Pending", "i18n.pending": "Pending",
"i18n.processing": "Processing", "i18n.processing": "Processing",
"i18n.tvshows": "Series", "i18n.tvshows": "Series",
"i18n.unavailable": "Unavailable", "i18n.unavailable": "Unavailable",
"pages.internalServerError": "{statusCode} - Internal Server Error", "pages.internalServerError": "{statusCode} - Internal Server Error",

View File

@@ -10,7 +10,7 @@
"components.Discover.upcoming": "Prochaines sorties", "components.Discover.upcoming": "Prochaines sorties",
"components.Discover.upcomingmovies": "Prochaines sorties", "components.Discover.upcomingmovies": "Prochaines sorties",
"components.Layout.LanguagePicker.changelanguage": "Changer la langue", "components.Layout.LanguagePicker.changelanguage": "Changer la langue",
"components.Layout.SearchInput.searchPlaceholder": "Rechercher films et TV", "components.Layout.SearchInput.searchPlaceholder": "Rechercher des films et des séries",
"components.Layout.Sidebar.dashboard": "Découverte", "components.Layout.Sidebar.dashboard": "Découverte",
"components.Layout.Sidebar.requests": "Demandes d'ajouts", "components.Layout.Sidebar.requests": "Demandes d'ajouts",
"components.Layout.Sidebar.settings": "Paramètres", "components.Layout.Sidebar.settings": "Paramètres",
@@ -22,12 +22,12 @@
"components.MovieDetails.available": "Disponible", "components.MovieDetails.available": "Disponible",
"components.MovieDetails.budget": "Budget", "components.MovieDetails.budget": "Budget",
"components.MovieDetails.cancelrequest": "Annuler la demande", "components.MovieDetails.cancelrequest": "Annuler la demande",
"components.MovieDetails.cast": "Distribution", "components.MovieDetails.cast": "Casting",
"components.MovieDetails.decline": "Refuser", "components.MovieDetails.decline": "Refuser",
"components.MovieDetails.manageModalClearMedia": "Effacer toutes les données médias", "components.MovieDetails.manageModalClearMedia": "Effacer toutes les données médias",
"components.MovieDetails.manageModalClearMediaWarning": "Toutes les donnés de médias vont être éffacées pour cet élément irréversiblement. Si cet élément existe dans votre bibliothèque Plex, les informations du média seront recrées à la prochaine synchronisation.", "components.MovieDetails.manageModalClearMediaWarning": "Toutes les donnés de médias vont être éffacées pour cet élément irréversiblement. Si cet élément existe dans votre bibliothèque Plex, les informations du média seront recrées à la prochaine synchronisation.",
"components.MovieDetails.manageModalNoRequests": "Aucune demande", "components.MovieDetails.manageModalNoRequests": "Aucune demande",
"components.MovieDetails.manageModalRequests": "Demandes d'ajouts", "components.MovieDetails.manageModalRequests": "Demandes d'ajout",
"components.MovieDetails.manageModalTitle": "Gérer les films", "components.MovieDetails.manageModalTitle": "Gérer les films",
"components.MovieDetails.originallanguage": "Langue originale", "components.MovieDetails.originallanguage": "Langue originale",
"components.MovieDetails.overview": "Résumé", "components.MovieDetails.overview": "Résumé",
@@ -45,14 +45,14 @@
"components.MovieDetails.unavailable": "Indisponible", "components.MovieDetails.unavailable": "Indisponible",
"components.MovieDetails.userrating": "Note utilisateur", "components.MovieDetails.userrating": "Note utilisateur",
"components.MovieDetails.viewrequest": "Voir la demande", "components.MovieDetails.viewrequest": "Voir la demande",
"components.PersonDetails.appearsin": "", "components.PersonDetails.appearsin": "Apparaît dans",
"components.PersonDetails.ascharacter": "", "components.PersonDetails.ascharacter": "comme {character}",
"components.PersonDetails.nobiography": "", "components.PersonDetails.nobiography": "Aucune biographie disponible.",
"components.PlexLoginButton.loading": "Chargement…", "components.PlexLoginButton.loading": "Chargement…",
"components.PlexLoginButton.loggingin": "Connexion en cours…", "components.PlexLoginButton.loggingin": "Connexion en cours…",
"components.PlexLoginButton.loginwithplex": "Se connecter avec Plex", "components.PlexLoginButton.loginwithplex": "Se connecter avec Plex",
"components.RequestBlock.seasons": "Saisons", "components.RequestBlock.seasons": "Saisons",
"components.RequestCard.all": "", "components.RequestCard.all": "Toutes",
"components.RequestCard.requestedby": "Demandé par {username}", "components.RequestCard.requestedby": "Demandé par {username}",
"components.RequestCard.seasons": "Saisons", "components.RequestCard.seasons": "Saisons",
"components.RequestList.RequestItem.notavailable": "s.o.", "components.RequestList.RequestItem.notavailable": "s.o.",
@@ -62,7 +62,7 @@
"components.RequestList.modifiedBy": "Dernière modification par", "components.RequestList.modifiedBy": "Dernière modification par",
"components.RequestList.next": "Suivant", "components.RequestList.next": "Suivant",
"components.RequestList.previous": "Précédent", "components.RequestList.previous": "Précédent",
"components.RequestList.requestedAt": "Demandé à", "components.RequestList.requestedAt": "Demandé le",
"components.RequestList.requests": "Demandes", "components.RequestList.requests": "Demandes",
"components.RequestList.showingresults": "Affichage de <strong>{from}</strong> à <strong>{to}</strong> sur <strong>{total </strong> résultats", "components.RequestList.showingresults": "Affichage de <strong>{from}</strong> à <strong>{to}</strong> sur <strong>{total </strong> résultats",
"components.RequestList.status": "Statut", "components.RequestList.status": "Statut",
@@ -212,7 +212,7 @@
"components.Settings.ssl": "SSL", "components.Settings.ssl": "SSL",
"components.Settings.startscan": "Commencer le scan", "components.Settings.startscan": "Commencer le scan",
"components.Settings.sync": "Synchroniser les bibliothèques Plex", "components.Settings.sync": "Synchroniser les bibliothèques Plex",
"components.Settings.syncing": "Synchronisation en cours", "components.Settings.syncing": "Synchronisation",
"components.Setup.configureplex": "Configurer Plex", "components.Setup.configureplex": "Configurer Plex",
"components.Setup.configureservices": "Configurer les Services", "components.Setup.configureservices": "Configurer les Services",
"components.Setup.continue": "Continuer", "components.Setup.continue": "Continuer",
@@ -227,7 +227,7 @@
"components.TvDetails.approve": "Valider", "components.TvDetails.approve": "Valider",
"components.TvDetails.approverequests": "Valider {requestCount} {requestCount, plural, one {Request} other {Requests}}", "components.TvDetails.approverequests": "Valider {requestCount} {requestCount, plural, one {Request} other {Requests}}",
"components.TvDetails.available": "Disponible", "components.TvDetails.available": "Disponible",
"components.TvDetails.cancelrequest": "Annuler la Demande", "components.TvDetails.cancelrequest": "Annuler la demande",
"components.TvDetails.cast": "Casting", "components.TvDetails.cast": "Casting",
"components.TvDetails.decline": "Refuser", "components.TvDetails.decline": "Refuser",
"components.TvDetails.declinerequests": "Refuser {requestCount} {requestCount, plural, one {Request} other {Requests}}", "components.TvDetails.declinerequests": "Refuser {requestCount} {requestCount, plural, one {Request} other {Requests}}",
@@ -250,7 +250,7 @@
"components.TvDetails.unavailable": "Indisponible", "components.TvDetails.unavailable": "Indisponible",
"components.TvDetails.userrating": "Note utilisateurs", "components.TvDetails.userrating": "Note utilisateurs",
"components.UserEdit.admin": "Administrateur", "components.UserEdit.admin": "Administrateur",
"components.UserEdit.adminDescription": "Accès administrateur complet. Contourner toutes les demandes de permissions.", "components.UserEdit.adminDescription": "Accès administrateur complet. Contourne toutes les demandes de permissions.",
"components.UserEdit.autoapprove": "Validation automatique", "components.UserEdit.autoapprove": "Validation automatique",
"components.UserEdit.autoapproveDescription": "Active la validation automatique de toutes les demandes d'ajouts de cet utilisateur.", "components.UserEdit.autoapproveDescription": "Active la validation automatique de toutes les demandes d'ajouts de cet utilisateur.",
"components.UserEdit.avatar": "Avatar", "components.UserEdit.avatar": "Avatar",
@@ -258,9 +258,9 @@
"components.UserEdit.email": "Courriel", "components.UserEdit.email": "Courriel",
"components.UserEdit.managerequests": "Gérer les demandes d'ajouts", "components.UserEdit.managerequests": "Gérer les demandes d'ajouts",
"components.UserEdit.managerequestsDescription": "Donne la permission de gérer les demandes d'ajouts sur Overseerr. Ceci inclut la possibilité de valider ou refuser une demande.", "components.UserEdit.managerequestsDescription": "Donne la permission de gérer les demandes d'ajouts sur Overseerr. Ceci inclut la possibilité de valider ou refuser une demande.",
"components.UserEdit.permissions": "Permissions", "components.UserEdit.permissions": "Autorisations",
"components.UserEdit.request": "Demandes d'ajouts", "components.UserEdit.request": "Demandes d'ajouts",
"components.UserEdit.requestDescription": "Donne la permission de faire des demandes d'ajouts pour les films et séries.", "components.UserEdit.requestDescription": "Accorde l'autorisation de demander des films et des séries.",
"components.UserEdit.save": "Sauvegarder", "components.UserEdit.save": "Sauvegarder",
"components.UserEdit.saving": "Enregistrement en cours…", "components.UserEdit.saving": "Enregistrement en cours…",
"components.UserEdit.settings": "Gérer les paramètres", "components.UserEdit.settings": "Gérer les paramètres",
@@ -279,7 +279,7 @@
"components.UserList.lastupdated": "Denière mise à jour", "components.UserList.lastupdated": "Denière mise à jour",
"components.UserList.plexuser": "Utilisateur Plex", "components.UserList.plexuser": "Utilisateur Plex",
"components.UserList.role": "Rôle", "components.UserList.role": "Rôle",
"components.UserList.totalrequests": "Demandes d'ajouts total", "components.UserList.totalrequests": "Demandes d'ajout totales",
"components.UserList.user": "Utilisateur", "components.UserList.user": "Utilisateur",
"components.UserList.userlist": "Liste des utilisateurs", "components.UserList.userlist": "Liste des utilisateurs",
"components.UserList.username": "Nom d'utilisateur", "components.UserList.username": "Nom d'utilisateur",
@@ -294,7 +294,7 @@
"i18n.movies": "Films", "i18n.movies": "Films",
"i18n.partiallyavailable": "Partiellement disponible", "i18n.partiallyavailable": "Partiellement disponible",
"i18n.pending": "En attente", "i18n.pending": "En attente",
"i18n.processing": "En cours", "i18n.processing": "Traitement en cours",
"i18n.tvshows": "Séries", "i18n.tvshows": "Séries",
"i18n.unavailable": "Indisponible", "i18n.unavailable": "Indisponible",
"pages.internalServerError": "{statusCode} Erreur du serveur interne", "pages.internalServerError": "{statusCode} Erreur du serveur interne",
@@ -302,5 +302,7 @@
"pages.pageNotFound": "404 Page non trouvée", "pages.pageNotFound": "404 Page non trouvée",
"pages.returnHome": "Retourner à l'acceuil", "pages.returnHome": "Retourner à l'acceuil",
"pages.serviceUnavailable": "{statusCode} Service indisponible", "pages.serviceUnavailable": "{statusCode} Service indisponible",
"pages.somethingWentWrong": "{statusCode} Il y a eu un problème" "pages.somethingWentWrong": "{statusCode} Une erreur est survenue",
"components.TvDetails.TvCast.fullseriescast": "Casting complet de la série",
"components.MovieDetails.MovieCast.fullcast": "Casting complet"
} }

View File

@@ -6,7 +6,7 @@
"components.Discover.populartv": "人気のテレビ番組", "components.Discover.populartv": "人気のテレビ番組",
"components.Discover.recentlyAdded": "最近追加された動画", "components.Discover.recentlyAdded": "最近追加された動画",
"components.Discover.recentrequests": "最近のリクエスト", "components.Discover.recentrequests": "最近のリクエスト",
"components.Discover.trending": "最近のトレンド", "components.Discover.trending": "トレンド",
"components.Discover.upcoming": "今後リリースされる映画", "components.Discover.upcoming": "今後リリースされる映画",
"components.Discover.upcomingmovies": "今後リリースされる映画", "components.Discover.upcomingmovies": "今後リリースされる映画",
"components.Layout.LanguagePicker.changelanguage": "言語", "components.Layout.LanguagePicker.changelanguage": "言語",
@@ -16,16 +16,16 @@
"components.Layout.Sidebar.settings": "設定", "components.Layout.Sidebar.settings": "設定",
"components.Layout.Sidebar.users": "ユーザー", "components.Layout.Sidebar.users": "ユーザー",
"components.Layout.UserDropdown.signout": "ログアウト", "components.Layout.UserDropdown.signout": "ログアウト",
"components.Layout.alphawarning": "このソフトはアルファ版です。ほとんどの機能は不安定又は故障している可能性があります。バグ発見したとき、OverseerrのGithubまでご連絡ください", "components.Layout.alphawarning": "このソフトはアルファ版です。ほとんどの機能は不安定又は故障している可能性があります。バグ発見した場合、OverseerrのGithubまでご連絡ください",
"components.Login.signinplex": "続にはログインしてください", "components.Login.signinplex": "続けるにはログインしてください",
"components.MovieDetails.approve": "承認", "components.MovieDetails.approve": "承認",
"components.MovieDetails.available": "鑑賞可能", "components.MovieDetails.available": "鑑賞可能",
"components.MovieDetails.budget": "予算", "components.MovieDetails.budget": "予算",
"components.MovieDetails.cancelrequest": "リクエストを取り消す", "components.MovieDetails.cancelrequest": "リクエストを取り消す",
"components.MovieDetails.cast": "キャスト", "components.MovieDetails.cast": "キャスト",
"components.MovieDetails.decline": "拒否する", "components.MovieDetails.decline": "拒否",
"components.MovieDetails.manageModalClearMedia": "メディアのデータを消去", "components.MovieDetails.manageModalClearMedia": "メディア情報を消去",
"components.MovieDetails.manageModalClearMediaWarning": "リクエストを含め、メーディアのデータをすべて消去されます。この操作は元に戻すことができません。このアイテムが Plex ライブラリに存在する場合、メディア情報は次の同期で再作成されます。", "components.MovieDetails.manageModalClearMediaWarning": "リクエストを含め、すべての詳細情報が消去されます。この操作は元に戻すことができません。この作品が Plex ライブラリに存在する場合、詳細情報は次の同期で再作成されます。",
"components.MovieDetails.manageModalNoRequests": "リクエストがありません", "components.MovieDetails.manageModalNoRequests": "リクエストがありません",
"components.MovieDetails.manageModalRequests": "リクエスト", "components.MovieDetails.manageModalRequests": "リクエスト",
"components.MovieDetails.manageModalTitle": "映画を管理", "components.MovieDetails.manageModalTitle": "映画を管理",
@@ -36,7 +36,7 @@
"components.MovieDetails.recommendations": "オススメの作品", "components.MovieDetails.recommendations": "オススメの作品",
"components.MovieDetails.recommendationssubtext": "{title}が好きだった人は、こんなのも好きかもしれません...", "components.MovieDetails.recommendationssubtext": "{title}が好きだった人は、こんなのも好きかもしれません...",
"components.MovieDetails.releasedate": "公開日", "components.MovieDetails.releasedate": "公開日",
"components.MovieDetails.request": "リクエストする", "components.MovieDetails.request": "リクエストする",
"components.MovieDetails.revenue": "収益", "components.MovieDetails.revenue": "収益",
"components.MovieDetails.runtime": "{minutes}分", "components.MovieDetails.runtime": "{minutes}分",
"components.MovieDetails.similar": "関連作品", "components.MovieDetails.similar": "関連作品",
@@ -45,28 +45,28 @@
"components.MovieDetails.unavailable": "鑑賞不可", "components.MovieDetails.unavailable": "鑑賞不可",
"components.MovieDetails.userrating": "ユーザー評価", "components.MovieDetails.userrating": "ユーザー評価",
"components.MovieDetails.viewrequest": "リクエストを閲覧", "components.MovieDetails.viewrequest": "リクエストを閲覧",
"components.PersonDetails.appearsin": "", "components.PersonDetails.appearsin": "出演作品",
"components.PersonDetails.ascharacter": "", "components.PersonDetails.ascharacter": "{character}役",
"components.PersonDetails.nobiography": "", "components.PersonDetails.nobiography": "出演作品の情報はありません。",
"components.PlexLoginButton.loading": "ロード中…", "components.PlexLoginButton.loading": "ロード中…",
"components.PlexLoginButton.loggingin": "ログイン中…", "components.PlexLoginButton.loggingin": "ログイン中…",
"components.PlexLoginButton.loginwithplex": "Plexでログイン", "components.PlexLoginButton.loginwithplex": "Plexでログイン",
"components.RequestBlock.seasons": "シーズン", "components.RequestBlock.seasons": "シーズン",
"components.RequestCard.all": "", "components.RequestCard.all": "すべて",
"components.RequestCard.requestedby": "{username}のリクエスト", "components.RequestCard.requestedby": "{username}のリクエスト",
"components.RequestCard.seasons": "シーズン", "components.RequestCard.seasons": "シーズン",
"components.RequestList.RequestItem.notavailable": "N/A", "components.RequestList.RequestItem.notavailable": "N/A",
"components.RequestList.RequestItem.requestedby": "{username}のリクエスト", "components.RequestList.RequestItem.requestedby": "{username}のリクエスト",
"components.RequestList.RequestItem.seasons": "シーズン", "components.RequestList.RequestItem.seasons": "シーズン",
"components.RequestList.mediaInfo": "メディア情報", "components.RequestList.mediaInfo": "詳細情報",
"components.RequestList.modifiedBy": "最終更新者", "components.RequestList.modifiedBy": "最終更新者",
"components.RequestList.next": "次", "components.RequestList.next": "次",
"components.RequestList.previous": "戻る", "components.RequestList.previous": "戻る",
"components.RequestList.requestedAt": "リクエスト日時", "components.RequestList.requestedAt": "リクエスト日時",
"components.RequestList.requests": "リクエスト", "components.RequestList.requests": "リクエスト",
"components.RequestList.showingresults": "<strong>{total}</strong>中<strong>{from}</strong><strong>{to}</strong>件", "components.RequestList.showingresults": "<strong>{total}</strong>中<strong>{from}</strong><strong>{to}</strong>件",
"components.RequestList.status": "ステータス", "components.RequestList.status": "状態",
"components.RequestModal.cancel": "ャンセルリクエスト", "components.RequestModal.cancel": "ャンセルリクエスト",
"components.RequestModal.cancelling": "取り消し中...", "components.RequestModal.cancelling": "取り消し中...",
"components.RequestModal.cancelrequest": "このリクエストをキャンセルしてよろしいですか?", "components.RequestModal.cancelrequest": "このリクエストをキャンセルしてよろしいですか?",
"components.RequestModal.close": "閉じる", "components.RequestModal.close": "閉じる",
@@ -75,9 +75,9 @@
"components.RequestModal.numberofepisodes": "エピソード数", "components.RequestModal.numberofepisodes": "エピソード数",
"components.RequestModal.pendingrequest": "{title}がリクエスト中", "components.RequestModal.pendingrequest": "{title}がリクエスト中",
"components.RequestModal.request": "リクエストする", "components.RequestModal.request": "リクエストする",
"components.RequestModal.requestCancel": "<strong>{title}</strong>のリクエストは取り消された", "components.RequestModal.requestCancel": "<strong>{title}</strong>のリクエストは取り消されました",
"components.RequestModal.requestSuccess": "<strong>{title}</strong>のリクエストは完了した。", "components.RequestModal.requestSuccess": "<strong>{title}</strong>のリクエストは完了しました。",
"components.RequestModal.requestadmin": "このリクエスト今すぐ承認ます。", "components.RequestModal.requestadmin": "このリクエスト今すぐ承認されます。",
"components.RequestModal.requestfrom": "{username}はすでにリクエストを上げています", "components.RequestModal.requestfrom": "{username}はすでにリクエストを上げています",
"components.RequestModal.requesting": "リクエスト中…", "components.RequestModal.requesting": "リクエスト中…",
"components.RequestModal.requestseasons": "{seasonCount} {seasonCount, plural, one {Season} other {Seasons}}をリクエスト", "components.RequestModal.requestseasons": "{seasonCount} {seasonCount, plural, one {Season} other {Seasons}}をリクエスト",
@@ -128,11 +128,11 @@
"components.Settings.RadarrModal.testing": "テスト中...", "components.Settings.RadarrModal.testing": "テスト中...",
"components.Settings.RadarrModal.toastRadarrTestFailure": "Radarrサーバーの接続は失敗しました", "components.Settings.RadarrModal.toastRadarrTestFailure": "Radarrサーバーの接続は失敗しました",
"components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarrサーバーの接続は成功しました!", "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarrサーバーの接続は成功しました!",
"components.Settings.RadarrModal.validationApiKeyRequired": "APIキーの入力必要です", "components.Settings.RadarrModal.validationApiKeyRequired": "APIキーの入力必要です",
"components.Settings.RadarrModal.validationHostnameRequired": "ホスト名/IPの入力必要です", "components.Settings.RadarrModal.validationHostnameRequired": "ホスト名/IPの入力必要です",
"components.Settings.RadarrModal.validationPortRequired": "ポートの入力必要です", "components.Settings.RadarrModal.validationPortRequired": "ポートの入力必要です",
"components.Settings.RadarrModal.validationProfileRequired": "プロファイルの選択必要です", "components.Settings.RadarrModal.validationProfileRequired": "プロファイルの選択必要です",
"components.Settings.RadarrModal.validationRootFolderRequired": "ルートフォルダーの選択必要です", "components.Settings.RadarrModal.validationRootFolderRequired": "ルートフォルダーの選択必要です",
"components.Settings.SonarrModal.add": "サーバーを追加", "components.Settings.SonarrModal.add": "サーバーを追加",
"components.Settings.SonarrModal.apiKey": "APIキー", "components.Settings.SonarrModal.apiKey": "APIキー",
"components.Settings.SonarrModal.apiKeyPlaceholder": "SonarrのAPIキー", "components.Settings.SonarrModal.apiKeyPlaceholder": "SonarrのAPIキー",
@@ -157,12 +157,12 @@
"components.Settings.SonarrModal.test": "テストする", "components.Settings.SonarrModal.test": "テストする",
"components.Settings.SonarrModal.testing": "テスト中...", "components.Settings.SonarrModal.testing": "テスト中...",
"components.Settings.SonarrModal.toastRadarrTestFailure": "Sonarrサーバーに接続できませんでした", "components.Settings.SonarrModal.toastRadarrTestFailure": "Sonarrサーバーに接続できませんでした",
"components.Settings.SonarrModal.toastRadarrTestSuccess": "Sonarrサーバーの接続成功しました!", "components.Settings.SonarrModal.toastRadarrTestSuccess": "Sonarrサーバーの接続成功しました!",
"components.Settings.SonarrModal.validationApiKeyRequired": "APIキーの入力必要です", "components.Settings.SonarrModal.validationApiKeyRequired": "APIキーの入力必要です",
"components.Settings.SonarrModal.validationHostnameRequired": "ホスト名/IPの入力必要です", "components.Settings.SonarrModal.validationHostnameRequired": "ホスト名/IPの入力必要です",
"components.Settings.SonarrModal.validationPortRequired": "ポートの入力必要です", "components.Settings.SonarrModal.validationPortRequired": "ポートの入力必要です",
"components.Settings.SonarrModal.validationProfileRequired": "プロファイルの選択必要です", "components.Settings.SonarrModal.validationProfileRequired": "プロファイルの選択必要です",
"components.Settings.SonarrModal.validationRootFolderRequired": "ルートフォルダーの選択必要です", "components.Settings.SonarrModal.validationRootFolderRequired": "ルートフォルダーの選択必要です",
"components.Settings.activeProfile": "アクティブプロファイル", "components.Settings.activeProfile": "アクティブプロファイル",
"components.Settings.addradarr": "Radarrサーバーを追加", "components.Settings.addradarr": "Radarrサーバーを追加",
"components.Settings.address": "アドレス", "components.Settings.address": "アドレス",
@@ -183,7 +183,7 @@
"components.Settings.jobname": "ジョブ名", "components.Settings.jobname": "ジョブ名",
"components.Settings.librariesRemaining": "残りのライブラリー: {count}", "components.Settings.librariesRemaining": "残りのライブラリー: {count}",
"components.Settings.manualscan": "手動ライブラリースキャン", "components.Settings.manualscan": "手動ライブラリースキャン",
"components.Settings.manualscanDescription": "通常は6時間に一度しか実行されません。Overseerr は、Plex サーバーの最近追加されたフォルダをより頻繁にチェックします。初めて Plex を設定する場合は、一度だけ手動でライブラリーをスキャンすることをお勧めします。", "components.Settings.manualscanDescription": "通常は6時間に一度しか実行されません。Overseerr は、Plex サーバーの最近追加されたフォルダをより頻繁にチェックします。初めて Plex を設定する場合は、一度手動でライブラリーをスキャンすることをお勧めします。",
"components.Settings.menuAbout": "Overseerrについて", "components.Settings.menuAbout": "Overseerrについて",
"components.Settings.menuGeneralSettings": "一般設定", "components.Settings.menuGeneralSettings": "一般設定",
"components.Settings.menuJobs": "ジョブ", "components.Settings.menuJobs": "ジョブ",
@@ -212,7 +212,7 @@
"components.Settings.ssl": "SSL", "components.Settings.ssl": "SSL",
"components.Settings.startscan": "スキャンを開始", "components.Settings.startscan": "スキャンを開始",
"components.Settings.sync": "Plexライブラリーの同期", "components.Settings.sync": "Plexライブラリーの同期",
"components.Settings.syncing": "同期中", "components.Settings.syncing": "同期中",
"components.Setup.configureplex": "Plexの設定", "components.Setup.configureplex": "Plexの設定",
"components.Setup.configureservices": "連携サービスの設定", "components.Setup.configureservices": "連携サービスの設定",
"components.Setup.continue": "続行", "components.Setup.continue": "続行",
@@ -294,7 +294,7 @@
"i18n.movies": "映画", "i18n.movies": "映画",
"i18n.partiallyavailable": "一部鑑賞可能", "i18n.partiallyavailable": "一部鑑賞可能",
"i18n.pending": "リクエスト中", "i18n.pending": "リクエスト中",
"i18n.processing": "処理中", "i18n.processing": "処理中",
"i18n.tvshows": "シリーズ", "i18n.tvshows": "シリーズ",
"i18n.unavailable": "鑑賞不可", "i18n.unavailable": "鑑賞不可",
"pages.internalServerError": "{statusCode} - 内部サーバーエラー", "pages.internalServerError": "{statusCode} - 内部サーバーエラー",

View File

@@ -45,14 +45,14 @@
"components.MovieDetails.unavailable": "Utilgjengelig", "components.MovieDetails.unavailable": "Utilgjengelig",
"components.MovieDetails.userrating": "Brukervurdering", "components.MovieDetails.userrating": "Brukervurdering",
"components.MovieDetails.viewrequest": "Vis forespørsel", "components.MovieDetails.viewrequest": "Vis forespørsel",
"components.PersonDetails.appearsin": "", "components.PersonDetails.appearsin": "Finnes i",
"components.PersonDetails.ascharacter": "", "components.PersonDetails.ascharacter": "som {character}",
"components.PersonDetails.nobiography": "", "components.PersonDetails.nobiography": "Ingen biografi tilgjengelig.",
"components.PlexLoginButton.loading": "Laster inn …", "components.PlexLoginButton.loading": "Laster inn …",
"components.PlexLoginButton.loggingin": "Logger inn …", "components.PlexLoginButton.loggingin": "Logger inn …",
"components.PlexLoginButton.loginwithplex": "Logg inn med Plex", "components.PlexLoginButton.loginwithplex": "Logg inn med Plex",
"components.RequestBlock.seasons": "Sesonger", "components.RequestBlock.seasons": "Sesonger",
"components.RequestCard.all": "", "components.RequestCard.all": "Alle",
"components.RequestCard.requestedby": "Forespurt av {username}", "components.RequestCard.requestedby": "Forespurt av {username}",
"components.RequestCard.seasons": "Sesonger", "components.RequestCard.seasons": "Sesonger",
"components.RequestList.RequestItem.notavailable": "I/T", "components.RequestList.RequestItem.notavailable": "I/T",

View File

@@ -1,61 +1,61 @@
{ {
"components.Discover.discovermovies": "", "components.Discover.discovermovies": "Populaire Films",
"components.Discover.discovertv": "", "components.Discover.discovertv": "Populaire Series",
"components.Discover.nopending": "", "components.Discover.nopending": "Geen Wachtende Verzoeken",
"components.Discover.popularmovies": "", "components.Discover.popularmovies": "Populaire Films",
"components.Discover.populartv": "", "components.Discover.populartv": "Populaire Series",
"components.Discover.recentlyAdded": "", "components.Discover.recentlyAdded": "RecentelijkToegevoegd",
"components.Discover.recentrequests": "", "components.Discover.recentrequests": "Recente Verzoeken",
"components.Discover.trending": "", "components.Discover.trending": "Trending",
"components.Discover.upcoming": "", "components.Discover.upcoming": "Verwachte Films",
"components.Discover.upcomingmovies": "", "components.Discover.upcomingmovies": "Verwachte Films",
"components.Layout.LanguagePicker.changelanguage": "", "components.Layout.LanguagePicker.changelanguage": "Wijzig Taal",
"components.Layout.SearchInput.searchPlaceholder": "", "components.Layout.SearchInput.searchPlaceholder": "Zoek Films & TV",
"components.Layout.Sidebar.dashboard": "", "components.Layout.Sidebar.dashboard": "Ontdek",
"components.Layout.Sidebar.requests": "", "components.Layout.Sidebar.requests": "Verzoeken",
"components.Layout.Sidebar.settings": "", "components.Layout.Sidebar.settings": "Instellingen",
"components.Layout.Sidebar.users": "", "components.Layout.Sidebar.users": "Gebruikers",
"components.Layout.UserDropdown.signout": "", "components.Layout.UserDropdown.signout": "Uitloggen",
"components.Layout.alphawarning": "", "components.Layout.alphawarning": "Dit is ALPHA software. Bijna alles is waarschijnlijk kapot of onstabiel. Rapporteer issues bij de Overseerr GitHub!",
"components.Login.signinplex": "", "components.Login.signinplex": "Log in om door te gaan",
"components.MovieDetails.approve": "", "components.MovieDetails.approve": "Goedkeuren",
"components.MovieDetails.available": "", "components.MovieDetails.available": "Beschikbaar",
"components.MovieDetails.budget": "", "components.MovieDetails.budget": "Budget",
"components.MovieDetails.cancelrequest": "", "components.MovieDetails.cancelrequest": "Annuleer Verzoek",
"components.MovieDetails.cast": "", "components.MovieDetails.cast": "Acteurs",
"components.MovieDetails.decline": "", "components.MovieDetails.decline": "Weigeren",
"components.MovieDetails.manageModalClearMedia": "", "components.MovieDetails.manageModalClearMedia": "Wis Alle Media Data",
"components.MovieDetails.manageModalClearMediaWarning": "", "components.MovieDetails.manageModalClearMediaWarning": "Dit wist alle media data inclusief alle verzoeken voor dit item zonder herstelmogelijkheden. Als dit item in je Plex bibliotheek bestaat zal alle media info bij de volgende sync hersteld worden.",
"components.MovieDetails.manageModalNoRequests": "", "components.MovieDetails.manageModalNoRequests": "Geen Verzoeken",
"components.MovieDetails.manageModalRequests": "", "components.MovieDetails.manageModalRequests": "Verzoeken",
"components.MovieDetails.manageModalTitle": "", "components.MovieDetails.manageModalTitle": "Beheer Film",
"components.MovieDetails.originallanguage": "", "components.MovieDetails.originallanguage": "Originele Taal",
"components.MovieDetails.overview": "", "components.MovieDetails.overview": "Overzicht",
"components.MovieDetails.overviewunavailable": "", "components.MovieDetails.overviewunavailable": "Overzicht onbeschikbaar",
"components.MovieDetails.pending": "", "components.MovieDetails.pending": "In afwachting",
"components.MovieDetails.recommendations": "", "components.MovieDetails.recommendations": "Aanbevelingen",
"components.MovieDetails.recommendationssubtext": "", "components.MovieDetails.recommendationssubtext": "Als je {title} leuk vond, vind je dit misschien ook leuk...",
"components.MovieDetails.releasedate": "", "components.MovieDetails.releasedate": "Release Datum",
"components.MovieDetails.request": "", "components.MovieDetails.request": "Verzoek",
"components.MovieDetails.revenue": "", "components.MovieDetails.revenue": "Omzet",
"components.MovieDetails.runtime": "", "components.MovieDetails.runtime": "{minutes} minuten",
"components.MovieDetails.similar": "", "components.MovieDetails.similar": "Vergelijkbare Titels",
"components.MovieDetails.similarsubtext": "", "components.MovieDetails.similarsubtext": "Andere films vergelijkbaar met {title}",
"components.MovieDetails.status": "", "components.MovieDetails.status": "Status",
"components.MovieDetails.unavailable": "", "components.MovieDetails.unavailable": "Onbeschikbaar",
"components.MovieDetails.userrating": "", "components.MovieDetails.userrating": "Gebruikersbeoordeling",
"components.MovieDetails.viewrequest": "", "components.MovieDetails.viewrequest": "Verzoek Bekijken",
"components.PersonDetails.appearsin": "", "components.PersonDetails.appearsin": "Verschijnt in",
"components.PersonDetails.ascharacter": "", "components.PersonDetails.ascharacter": "als {character}",
"components.PersonDetails.nobiography": "", "components.PersonDetails.nobiography": "Geen biografie beschikbaar.",
"components.PlexLoginButton.loading": "", "components.PlexLoginButton.loading": "Bezig met laden...",
"components.PlexLoginButton.loggingin": "", "components.PlexLoginButton.loggingin": "Bezig met inloggen...",
"components.PlexLoginButton.loginwithplex": "", "components.PlexLoginButton.loginwithplex": "Login met Plex",
"components.RequestBlock.seasons": "", "components.RequestBlock.seasons": "Seizoenen",
"components.RequestCard.all": "", "components.RequestCard.all": "Alle",
"components.RequestCard.requestedby": "", "components.RequestCard.requestedby": "Verzocht door {username}",
"components.RequestCard.seasons": "", "components.RequestCard.seasons": "Seizoenen",
"components.RequestList.RequestItem.notavailable": "", "components.RequestList.RequestItem.notavailable": "Nvt",
"components.RequestList.RequestItem.requestedby": "", "components.RequestList.RequestItem.requestedby": "",
"components.RequestList.RequestItem.seasons": "", "components.RequestList.RequestItem.seasons": "",
"components.RequestList.mediaInfo": "", "components.RequestList.mediaInfo": "",

View File

@@ -1,7 +1,7 @@
{ {
"components.Discover.discovermovies": "Популярные фильмы", "components.Discover.discovermovies": "Популярные фильмы",
"components.Discover.discovertv": "Популярные серии", "components.Discover.discovertv": "Популярные серии",
"components.Discover.nopending": "", "components.Discover.nopending": "Нет отложенных запросов",
"components.Discover.popularmovies": "Популярные фильмы", "components.Discover.popularmovies": "Популярные фильмы",
"components.Discover.populartv": "Популярные серии", "components.Discover.populartv": "Популярные серии",
"components.Discover.recentlyAdded": "Недавно добавленные", "components.Discover.recentlyAdded": "Недавно добавленные",

View File

@@ -0,0 +1,9 @@
import { NextPage } from 'next';
import React from 'react';
import MovieCast from '../../../components/MovieDetails/MovieCast';
const MovieCastPage: NextPage = () => {
return <MovieCast />;
};
export default MovieCastPage;

View File

@@ -0,0 +1,9 @@
import { NextPage } from 'next';
import React from 'react';
import TvCast from '../../../components/TvDetails/TvCast';
const TvCastPage: NextPage = () => {
return <TvCast />;
};
export default TvCastPage;

View File

@@ -1020,27 +1020,13 @@
core-js-pure "^3.0.0" core-js-pure "^3.0.0"
regenerator-runtime "^0.13.4" regenerator-runtime "^0.13.4"
"@babel/runtime@7.12.5": "@babel/runtime@7.12.5", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
version "7.12.5" version "7.12.5"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
dependencies: dependencies:
regenerator-runtime "^0.13.4" regenerator-runtime "^0.13.4"
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
version "7.11.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.10.5":
version "7.12.1"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740"
integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==
dependencies:
regenerator-runtime "^0.13.4"
"@babel/template@^7.10.4": "@babel/template@^7.10.4":
version "7.10.4" version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
@@ -7109,9 +7095,9 @@ inherits@2.0.3:
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
version "1.3.5" version "1.3.8"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
init-package-json@^1.10.3: init-package-json@^1.10.3:
version "1.10.3" version "1.10.3"
@@ -14197,10 +14183,10 @@ yn@3.1.1:
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
yup@^0.32.6: yup@^0.32.8:
version "0.32.6" version "0.32.8"
resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.6.tgz#7fd924536cdf61ec5df7a4bd0576d0a3954b03f6" resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.8.tgz#16e4a949a86a69505abf99fd0941305ac9adfc39"
integrity sha512-i5poB/ZWU0zGoCwViLw++NQbUFy+X9xfoSSK31JOLh3RoBVUaYrNlYIyxqK8HGrxTHPIl5BBNu/mJYKNeFVvdA== integrity sha512-SZulv5FIZ9d5H99EN5tRCRPXL0eyoYxWIP1AacCrjC9d4DfP13J1dROdKGfpfRHT3eQB6/ikBl5jG21smAfCkA==
dependencies: dependencies:
"@babel/runtime" "^7.10.5" "@babel/runtime" "^7.10.5"
"@types/lodash" "^4.14.165" "@types/lodash" "^4.14.165"