diff --git a/.all-contributorsrc b/.all-contributorsrc index 66a19d195..8df4a8c55 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -171,6 +171,24 @@ "contributions": [ "translation" ] + }, + { + "login": "Shagon94", + "name": "Shagon94", + "avatar_url": "https://avatars3.githubusercontent.com/u/9140783?v=4", + "profile": "https://github.com/Shagon94", + "contributions": [ + "translation" + ] + }, + { + "login": "sebstrgg", + "name": "sebstrgg", + "avatar_url": "https://avatars3.githubusercontent.com/u/27026694?v=4", + "profile": "https://github.com/sebstrgg", + "contributions": [ + "translation" + ] } ], "badgeTemplate": "\"All-orange.svg\"/>", diff --git a/README.md b/README.md index bb62d4f00..801338b90 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Language grade: JavaScript GitHub -All Contributors +All Contributors

@@ -121,6 +121,8 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Mārtiņš Možeiko

💻
mazzetta86

🌍
Paul Hagedorn

🌍 +
Shagon94

🌍 +
sebstrgg

🌍 diff --git a/package.json b/package.json index 2e77c7587..eb68615b2 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "react-dom": "17.0.1", "react-intersection-observer": "^8.31.0", "react-intl": "^5.10.6", + "react-markdown": "^5.0.3", "react-spring": "^8.0.27", "react-toast-notifications": "^2.4.0", "react-transition-group": "^4.4.1", @@ -175,7 +176,7 @@ [ "@semantic-release/github", { - "addReleases": "top" + "addReleases": "bottom" } ] ], diff --git a/src/components/Common/Alert/index.tsx b/src/components/Common/Alert/index.tsx new file mode 100644 index 000000000..60a9edca2 --- /dev/null +++ b/src/components/Common/Alert/index.tsx @@ -0,0 +1,36 @@ +import React from 'react'; + +interface AlertProps { + title: string; + type?: 'warning'; +} + +const Alert: React.FC = ({ title, children }) => { + return ( +
+
+
+ +
+
+

{title}

+
{children}
+
+
+
+ ); +}; + +export default Alert; diff --git a/src/components/Layout/LanguagePicker/index.tsx b/src/components/Layout/LanguagePicker/index.tsx index 2c82397d6..071f0506b 100644 --- a/src/components/Layout/LanguagePicker/index.tsx +++ b/src/components/Layout/LanguagePicker/index.tsx @@ -49,6 +49,22 @@ const availableLanguages: AvailableLanguageObject = { code: 'es', display: 'Spanish', }, + it: { + code: 'it', + display: 'Italian', + }, + 'pt-BR': { + code: 'pt-BR', + display: 'Portuguese (Brazil)', + }, + sr: { + code: 'sr', + display: 'Serbian', + }, + sv: { + code: 'sv', + display: 'Swedish', + }, }; const LanguagePicker: React.FC = () => { diff --git a/src/components/Login/index.tsx b/src/components/Login/index.tsx index 56dd81e12..2f7a7e599 100644 --- a/src/components/Login/index.tsx +++ b/src/components/Login/index.tsx @@ -6,6 +6,7 @@ import { useRouter } from 'next/dist/client/router'; import ImageFader from '../Common/ImageFader'; import { defineMessages, FormattedMessage } from 'react-intl'; import Transition from '../Transition'; +import LanguagePicker from '../Layout/LanguagePicker'; const messages = defineMessages({ signinplex: 'Sign in to continue', @@ -59,7 +60,10 @@ const Login: React.FC = () => { '/images/rotate4.jpg', ]} /> -
+
+ +
+
GitHub repository for latest updates.', +}); + +const REPO_RELEASE_API = + 'https://api.github.com/repos/sct/overseerr/releases?per_page=20'; + +interface GitHubRelease { + url: string; + assets_url: string; + upload_url: string; + html_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + tarball_url: string; + zipball_url: string; + body: string; +} + +interface ReleaseProps { + release: GitHubRelease; + isLatest: boolean; + currentVersion: string; +} + +const Release: React.FC = ({ + currentVersion, + release, + isLatest, +}) => { + const intl = useIntl(); + const [isModalOpen, setModalOpen] = useState(false); + return ( +
+ + setModalOpen(false)} + iconSvg={ + + + + } + title={intl.formatMessage(messages.versionChangelog)} + cancelText={intl.formatMessage(globalMessages.close)} + okText={intl.formatMessage(messages.viewongithub)} + onOk={() => { + window.open(release.html_url, '_blank'); + }} + > +
+ {release.body} +
+
+
+
+ {release.name} + {isLatest && ( + + + {intl.formatMessage(messages.latestversion)} + + + )} + {release.name.includes(currentVersion) && ( + + + {intl.formatMessage(messages.currentversion)} + + + )} +
+
+ +
+
+ ); +}; + +interface ReleasesProps { + currentVersion: string; +} + +const Releases: React.FC = ({ currentVersion }) => { + const intl = useIntl(); + const { data, error } = useSWR(REPO_RELEASE_API); + + if (!data && !error) { + return ; + } + + if (!data) { + return ( +
+ {intl.formatMessage(messages.releasedataMissing)} +
+ ); + } + + return ( +
+
+ {intl.formatMessage(messages.releases)} +
+ {currentVersion.startsWith('develop-') && ( + + {intl.formatMessage(messages.runningDevelopMessage, { + GithubLink: function GithubLink(msg) { + return ( + + {msg} + + ); + }, + })} + + )} + {data?.map((release, index) => { + return ( +
+ +
+ ); + })} +
+ ); +}; + +export default Releases; diff --git a/src/components/Settings/SettingsAbout/index.tsx b/src/components/Settings/SettingsAbout/index.tsx index 958951ffe..93d204231 100644 --- a/src/components/Settings/SettingsAbout/index.tsx +++ b/src/components/Settings/SettingsAbout/index.tsx @@ -5,6 +5,7 @@ import List from '../../Common/List'; import LoadingSpinner from '../../Common/LoadingSpinner'; import { SettingsAboutResponse } from '../../../../server/interfaces/api/settingsInterfaces'; import { defineMessages, FormattedNumber, useIntl } from 'react-intl'; +import Releases from './Releases'; const messages = defineMessages({ overseerrinformation: 'Overseerr Information', @@ -15,6 +16,8 @@ const messages = defineMessages({ githubdiscussions: 'GitHub Discussions', clickheretojoindiscord: 'Click here to join our Discord server.', timezone: 'Timezone', + supportoverseerr: 'Support Overseerr', + helppaycoffee: 'Help pay for coffee', }); const SettingsAbout: React.FC = () => { @@ -79,6 +82,25 @@ const SettingsAbout: React.FC = () => {
+
+ + + + https://patreon.com/overseerr + + + +
+
+ +
); }; diff --git a/src/components/Settings/SettingsServices.tsx b/src/components/Settings/SettingsServices.tsx index 5a3b1e8c5..c72ae3e7b 100644 --- a/src/components/Settings/SettingsServices.tsx +++ b/src/components/Settings/SettingsServices.tsx @@ -13,6 +13,7 @@ import Modal from '../Common/Modal'; import Transition from '../Transition'; import axios from 'axios'; import SonarrModal from './SonarrModal'; +import Alert from '../Common/Alert'; const messages = defineMessages({ radarrsettings: 'Radarr Settings', @@ -37,42 +38,6 @@ const messages = defineMessages({ no4kimplemented: '(Default 4K servers are not currently implemented)', }); -const NoDefaultAlert: React.FC = () => { - const intl = useIntl(); - return ( -
-
-
- -
-
-

- {intl.formatMessage(messages.nodefault)} -

-
-

{intl.formatMessage(messages.nodefaultdescription)}

-

- {intl.formatMessage(messages.no4kimplemented)} -

-
-
-
-
- ); -}; - interface ServerInstanceProps { name: string; isDefault?: boolean; @@ -188,6 +153,7 @@ const ServerInstance: React.FC = ({ }; const SettingsServices: React.FC = () => { + const intl = useIntl(); const { data: radarrData, error: radarrError, @@ -293,7 +259,14 @@ const SettingsServices: React.FC = () => { {radarrData.length > 0 && !radarrData.some( (radarr) => radarr.isDefault && !radarr.is4k - ) && } + ) && ( + +

{intl.formatMessage(messages.nodefaultdescription)}

+

+ {intl.formatMessage(messages.no4kimplemented)} +

+
+ )}
    {radarrData.map((radarr) => ( { {sonarrData.length > 0 && !sonarrData.some( (sonarr) => sonarr.isDefault && !sonarr.is4k - ) && } + ) && ( + +

    {intl.formatMessage(messages.nodefaultdescription)}

    +

    + {intl.formatMessage(messages.no4kimplemented)} +

    +
    + )}
      {sonarrData.map((sonarr) => ( { '/images/rotate4.jpg', ]} /> -
      +
      + +
      +
      {from} to {to} of {total} results", "components.RequestList.status": "Status", "components.RequestModal.cancel": "Cancel Request", - "components.RequestModal.cancelling": "Cancelling...", + "components.RequestModal.cancelling": "Cancelling…", "components.RequestModal.cancelrequest": "This will remove your request. Are you sure you want to continue?", "components.RequestModal.close": "Close", "components.RequestModal.extras": "Extras", @@ -99,7 +99,7 @@ "components.Settings.Notifications.emailsettingssaved": "Email notification settings saved!", "components.Settings.Notifications.enableSsl": "Enable SSL", "components.Settings.Notifications.save": "Save Changes", - "components.Settings.Notifications.saving": "Saving...", + "components.Settings.Notifications.saving": "Saving…", "components.Settings.Notifications.smtpHost": "SMTP Host", "components.Settings.Notifications.smtpPort": "SMTP Port", "components.Settings.Notifications.validationFromRequired": "You must provide an email sender address", @@ -124,7 +124,7 @@ "components.Settings.RadarrModal.qualityprofile": "Quality Profile", "components.Settings.RadarrModal.rootfolder": "Root Folder", "components.Settings.RadarrModal.save": "Save Changes", - "components.Settings.RadarrModal.saving": "Saving...", + "components.Settings.RadarrModal.saving": "Saving…", "components.Settings.RadarrModal.selectMinimumAvailability": "Select minimum availability", "components.Settings.RadarrModal.selectQualityProfile": "Select a Quality Profile", "components.Settings.RadarrModal.selectRootFolder": "Select a Root Folder", @@ -135,7 +135,7 @@ "components.Settings.RadarrModal.test": "Test", "components.Settings.RadarrModal.testFirstQualityProfiles": "Test your connection to load quality profiles", "components.Settings.RadarrModal.testFirstRootFolders": "Test your connection to load root folders", - "components.Settings.RadarrModal.testing": "Testing...", + "components.Settings.RadarrModal.testing": "Testing…", "components.Settings.RadarrModal.toastRadarrTestFailure": "Failed to connect to Radarr Server", "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr connection established!", "components.Settings.RadarrModal.validationApiKeyRequired": "You must provide an API key", @@ -145,10 +145,22 @@ "components.Settings.RadarrModal.validationPortRequired": "You must provide a port", "components.Settings.RadarrModal.validationProfileRequired": "You must select a profile", "components.Settings.RadarrModal.validationRootFolderRequired": "You must select a root folder", + "components.Settings.SettingsAbout.Releases.currentversion": "Current Version", + "components.Settings.SettingsAbout.Releases.latestversion": "Latest Version", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "Release data missing. Is GitHub down?", + "components.Settings.SettingsAbout.Releases.releases": "Releases", + "components.Settings.SettingsAbout.Releases.runningDevelop": "You are running a develop version of Overseerr!", + "components.Settings.SettingsAbout.Releases.runningDevelopMessage": "The changes in your version will not be available below. Please look at the GitHub repository for latest updates.", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Version Changelog", + "components.Settings.SettingsAbout.Releases.viewchangelog": "View Changelog", + "components.Settings.SettingsAbout.Releases.viewongithub": "View on GitHub", "components.Settings.SettingsAbout.clickheretojoindiscord": "Click here to join our Discord server.", "components.Settings.SettingsAbout.gettingsupport": "Getting Support", "components.Settings.SettingsAbout.githubdiscussions": "GitHub Discussions", + "components.Settings.SettingsAbout.helppaycoffee": "Help pay for coffee", "components.Settings.SettingsAbout.overseerrinformation": "Overseerr Information", + "components.Settings.SettingsAbout.supportoverseerr": "Support Overseerr", + "components.Settings.SettingsAbout.timezone": "Timezone", "components.Settings.SettingsAbout.totalmedia": "Total Media", "components.Settings.SettingsAbout.totalrequests": "Total Requests", "components.Settings.SettingsAbout.version": "Version", @@ -169,7 +181,7 @@ "components.Settings.SonarrModal.qualityprofile": "Quality Profile", "components.Settings.SonarrModal.rootfolder": "Root Folder", "components.Settings.SonarrModal.save": "Save Changes", - "components.Settings.SonarrModal.saving": "Saving...", + "components.Settings.SonarrModal.saving": "Saving…", "components.Settings.SonarrModal.seasonfolders": "Season Folders", "components.Settings.SonarrModal.selectQualityProfile": "Select a Quality Profile", "components.Settings.SonarrModal.selectRootFolder": "Select a Root Folder", @@ -180,7 +192,7 @@ "components.Settings.SonarrModal.test": "Test", "components.Settings.SonarrModal.testFirstQualityProfiles": "Test your connection to load quality profiles", "components.Settings.SonarrModal.testFirstRootFolders": "Test your connection to load root folders", - "components.Settings.SonarrModal.testing": "Testing...", + "components.Settings.SonarrModal.testing": "Testing…", "components.Settings.SonarrModal.toastRadarrTestFailure": "Could not connect to Sonarr Server", "components.Settings.SonarrModal.toastRadarrTestSuccess": "Sonarr connection established!", "components.Settings.SonarrModal.validationApiKeyRequired": "You must provide an API key", @@ -233,7 +245,7 @@ "components.Settings.radarrsettings": "Radarr Settings", "components.Settings.runnow": "Run Now", "components.Settings.save": "Save Changes", - "components.Settings.saving": "Saving...", + "components.Settings.saving": "Saving…", "components.Settings.servername": "Server Name (Automatically set after you save)", "components.Settings.servernamePlaceholder": "Plex Server Name", "components.Settings.sonarrSettingsDescription": "Set up your Sonarr connection below. You can have multiple, but only two active as defaults at any time (one for standard HD and one for 4K). Administrators can override which server is used for new requests.", @@ -252,7 +264,7 @@ "components.Setup.configureservices": "Configure Services", "components.Setup.continue": "Continue", "components.Setup.finish": "Finish Setup", - "components.Setup.finishing": "Finishing...", + "components.Setup.finishing": "Finishing…", "components.Setup.loginwithplex": "Login with Plex", "components.Setup.signinMessage": "Get started by logging in with your Plex account", "components.Setup.syncingbackground": "Syncing will run in the background. You can continue the setup process in the meantime.", @@ -281,7 +293,7 @@ "components.TvDetails.overviewunavailable": "Overview unavailable", "components.TvDetails.pending": "Pending", "components.TvDetails.recommendations": "Recommendations", - "components.TvDetails.recommendationssubtext": "If you liked {title}, you might also like...", + "components.TvDetails.recommendationssubtext": "If you liked {title}, you might also like…", "components.TvDetails.request": "Request", "components.TvDetails.requestmore": "Request More", "components.TvDetails.showtype": "Show Type", @@ -303,7 +315,7 @@ "components.UserEdit.request": "Request", "components.UserEdit.requestDescription": "Grants permission to request movies and series.", "components.UserEdit.save": "Save", - "components.UserEdit.saving": "Saving...", + "components.UserEdit.saving": "Saving…", "components.UserEdit.settings": "Manage Settings", "components.UserEdit.settingsDescription": "Grants permission to modify all Overseerr settings. A user must have this permission to grant it to others.", "components.UserEdit.userfail": "Something went wrong saving the user.", @@ -333,6 +345,7 @@ "i18n.approved": "Approved", "i18n.available": "Available", "i18n.cancel": "Cancel", + "i18n.close": "Close", "i18n.decline": "Decline", "i18n.declined": "Declined", "i18n.delete": "Delete", diff --git a/src/i18n/locale/es.json b/src/i18n/locale/es.json index 7ed562040..999d3806c 100644 --- a/src/i18n/locale/es.json +++ b/src/i18n/locale/es.json @@ -243,7 +243,7 @@ "components.TvDetails.similar": "Series similares", "components.TvDetails.requestmore": "Solicitar más", "components.TvDetails.request": "Solicitar", - "components.TvDetails.recommendationssubtext": "Si te gustó {title}, también te puede gustar...", + "components.TvDetails.recommendationssubtext": "Si te gustó {title}, también te puede gustar…", "components.TvDetails.recommendations": "Recomendaciones", "components.TvDetails.pending": "Pendiente", "components.TvDetails.overviewunavailable": "Resumen no disponible", diff --git a/src/i18n/locale/fr.json b/src/i18n/locale/fr.json index 2abc706b3..bb003703e 100644 --- a/src/i18n/locale/fr.json +++ b/src/i18n/locale/fr.json @@ -34,7 +34,7 @@ "components.MovieDetails.overviewunavailable": "Résumé indisponible", "components.MovieDetails.pending": "En attente", "components.MovieDetails.recommendations": "Recommendations", - "components.MovieDetails.recommendationssubtext": "Si vous avez aimé {title}, vous aimerez peut-être...", + "components.MovieDetails.recommendationssubtext": "Si vous avez aimé {title}, vous aimerez peut-être…", "components.MovieDetails.releasedate": "Date de sortie", "components.MovieDetails.request": "Demande d'ajout", "components.MovieDetails.revenue": "Revenus", diff --git a/src/i18n/locale/it.json b/src/i18n/locale/it.json index 544de73bb..311ae6a88 100644 --- a/src/i18n/locale/it.json +++ b/src/i18n/locale/it.json @@ -11,12 +11,12 @@ "components.Settings.Notifications.emailsettingssaved": "Impostazioni di notifica tramite posta elettronica salvate!", "components.Settings.Notifications.emailsettingsfailed": "Impossibile salvare le impostazioni di notifica tramite posta elettronica.", "components.Settings.Notifications.emailsender": "Indirizzo mittente di posta elettronica", - "components.Settings.SonarrModal.testing": "Test in corso...", - "components.Settings.RadarrModal.testing": "Test in corso...", + "components.Settings.SonarrModal.testing": "Test in corso…", + "components.Settings.RadarrModal.testing": "Test in corso…", "components.Settings.address": "Indirizzo", "components.Settings.SonarrModal.test": "Test", "components.Settings.SonarrModal.ssl": "SSL", - "components.Settings.SonarrModal.saving": "Salvataggio...", + "components.Settings.SonarrModal.saving": "Salvataggio…", "components.Settings.SonarrModal.port": "Porta", "components.Settings.SonarrModal.hostname": "Hostname", "components.Settings.SettingsAbout.version": "Versione", @@ -288,8 +288,8 @@ "components.Settings.Notifications.smtpHost": "Host SMTP", "components.Settings.Notifications.enableSsl": "Abilita SSL", "components.Settings.Notifications.discordsettingssaved": "Impostazioni di notifica Discord salvate!", - "components.Settings.Notifications.authUser": "Utente autenticazione", - "components.Settings.Notifications.authPass": "Password autenticazione", + "components.Settings.Notifications.authUser": "Nome utente", + "components.Settings.Notifications.authPass": "Password", "components.RequestModal.requestseasons": "Richiedi {seasonCount} {seasonCount, plural, one {Season} other {Seasons}}", "components.RequestList.showingresults": "Visualizzazione dei risultati da {from} a {to} di {total}", "components.UserEdit.userfail": "Qualcosa è andato storto salvando l'utente.", @@ -310,11 +310,43 @@ "components.TvDetails.showtype": "Tipo di serie", "components.TvDetails.requestmore": "Richiedi di più", "components.TvDetails.request": "Richiesta", - "components.TvDetails.recommendationssubtext": "Se ti è piaciuto {title}, potresti anche piacerti…", + "components.TvDetails.recommendationssubtext": "Se ti è piaciuto {title}, potrebbe anche piacerti…", "components.TvDetails.recommendations": "Consigli", "components.TvDetails.pending": "In sospeso", "components.TvDetails.overviewunavailable": "Trama non disponibile", "components.TvDetails.overview": "Trama", "components.TvDetails.originallanguage": "Lingua originale", - "components.TvDetails.network": "Rete" + "components.TvDetails.network": "Rete", + "components.Setup.finishing": "Finalizzazione…", + "components.Settings.menuJobs": "Task", + "components.Settings.jobname": "Nome Task", + "components.UserEdit.voteDescription": "Concede il permesso di votare sulle richieste (sistema di voto non acora implementato)", + "components.UserEdit.vote": "Vota", + "components.UserEdit.settingsDescription": "Concede l'autorizzazione a modificare tutte le impostazioni di Overseerr. Un utente deve disporre di questa autorizzazione per concederla ad altri.", + "components.TvDetails.manageModalClearMediaWarning": "Questo rimuoverà tutti i dati, incluse le richieste per questo elemento in modo irreversibile. Se questo elemento esiste nella tua libreria di Plex, i dati verranno ricreati alla prossima sincronizzazione.", + "components.Setup.syncingbackground": "La sincronizzazione verrà eseguita in background. Nel frattempo puoi continuare il processo di configurazione.", + "components.Setup.signinMessage": "Comincia accedendo con il tuo account Plex", + "components.Settings.sync": "Sincronizza le librerie di Plex", + "components.Settings.sonarrsettings": "Impostazioni Sonarr", + "components.Settings.sonarrSettingsDescription": "Imposta la connessione al tuo Sonarr qui sotto. È possibile avere più instanze, ma solo due attive come predefinite nello stesso momento (uno per l'HD standard e uno per 4K). Gli amministratori possono ignorare quale server è utilizzato per le nuove richieste.", + "components.Settings.radarrSettingsDescription": "Imposta la connessione al tuo Radarr qui sotto. È possibile avere più instanze, ma solo due attive come predefinite nello stesso momento (uno per l'HD standard e uno per 4K). Gli amministratori possono ignorare quale server è utilizzato per le nuove richieste.", + "components.Settings.plexsettingsDescription": "Configura le impostazioni per il tuo server Plex. Overseerr utilizza il tuo server Plex per scansionare la tua libreria a intervealli per vedere quali elementi sono disponibili.", + "components.Settings.plexlibrariesDescription": "Le librerie che verranno scansionate da Overseerr alla ricerca di titoli. Se non ci sono librerie, configura e salva le impostazioni di connessione a Plex e fai click sul pulsante qui sotto.", + "components.Settings.plexlibraries": "Librerie Plex", + "components.Settings.manualscanDescription": "Normalmente, questo verrà eseguito ogni 6 ore. Overseerr controllerà in modo più aggressivo i server Plex aggiunti di recente. Se è la prima volta che configuri Plex, si consiglia una scansione manuale completa della libreria!", + "components.Settings.port": "Porta", + "components.Settings.servername": "Nome server (impostato automaticamente dopo il salvataggio)", + "components.Settings.servernamePlaceholder": "Nome server Plex", + "components.Settings.toastSettingsFailure": "Qualcosa è andato storto durante il salvataggio delle impostazioni.", + "components.Settings.toastApiKeySuccess": "Nuova chiave API generata!", + "components.Settings.toastApiKeyFailure": "Qualcosa è andato storto generando una nuova chiave API.", + "components.Setup.configureservices": "Configura i servizi", + "components.Setup.finish": "Termina la configurazione", + "components.Setup.continue": "Continua", + "components.Setup.tip": "Consiglio", + "pages.internalServerError": "{statusCode} — Errore interno del server", + "pages.somethingWentWrong": "{statusCode} — Qualcosa è andato storto", + "pages.serviceUnavailable": "{statusCode} — Servizio non disponibile", + "pages.returnHome": "Ritorna alla pagina iniziale", + "pages.pageNotFound": "404 — Pagina non trovata" } diff --git a/src/i18n/locale/ja.json b/src/i18n/locale/ja.json index 9bb9937be..109649b41 100644 --- a/src/i18n/locale/ja.json +++ b/src/i18n/locale/ja.json @@ -34,7 +34,7 @@ "components.MovieDetails.overviewunavailable": "ストーリー情報がありません", "components.MovieDetails.pending": "リクエスト中", "components.MovieDetails.recommendations": "オススメの作品", - "components.MovieDetails.recommendationssubtext": "{title}が好きだった人は、こんなのも好きかもしれません...", + "components.MovieDetails.recommendationssubtext": "{title}が好きだった人は、こんなのも好きかもしれません…", "components.MovieDetails.releasedate": "公開日", "components.MovieDetails.request": "リクエストする", "components.MovieDetails.revenue": "収益", @@ -67,7 +67,7 @@ "components.RequestList.showingresults": "{total}{from}{to}件", "components.RequestList.status": "状態", "components.RequestModal.cancel": "キャンセルリクエスト", - "components.RequestModal.cancelling": "取り消し中...", + "components.RequestModal.cancelling": "取り消し中…", "components.RequestModal.cancelrequest": "このリクエストをキャンセルしてよろしいですか?", "components.RequestModal.close": "閉じる", "components.RequestModal.extras": "おまけ", @@ -93,7 +93,7 @@ "components.Settings.Notifications.emailsender": "配信元メールアドレス", "components.Settings.Notifications.enableSsl": "SSLを有効にする", "components.Settings.Notifications.save": "変更を保存", - "components.Settings.Notifications.saving": "保存中...", + "components.Settings.Notifications.saving": "保存中…", "components.Settings.Notifications.smtpHost": "SMTPホスト", "components.Settings.Notifications.smtpPort": "SMTPポート", "components.Settings.Notifications.validationFromRequired": "配信元メールアドレスの入力は必要です", @@ -116,7 +116,7 @@ "components.Settings.RadarrModal.qualityprofile": "画質プロファイル", "components.Settings.RadarrModal.rootfolder": "ルートフォルダー", "components.Settings.RadarrModal.save": "変更を保存", - "components.Settings.RadarrModal.saving": "保存中...", + "components.Settings.RadarrModal.saving": "保存中…", "components.Settings.RadarrModal.selectMinimumAvailability": "最低リリース状況を選ぶ", "components.Settings.RadarrModal.selectQualityProfile": "画質プロファイルを選ぶ", "components.Settings.RadarrModal.selectRootFolder": "ルートフォルダーを選ぶ", @@ -125,7 +125,7 @@ "components.Settings.RadarrModal.servernamePlaceholder": "Radarrサーバー", "components.Settings.RadarrModal.ssl": "SSL", "components.Settings.RadarrModal.test": "テストする", - "components.Settings.RadarrModal.testing": "テスト中...", + "components.Settings.RadarrModal.testing": "テスト中…", "components.Settings.RadarrModal.toastRadarrTestFailure": "Radarrサーバーの接続は失敗しました", "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarrサーバーの接続は成功しました!", "components.Settings.RadarrModal.validationApiKeyRequired": "APIキーの入力が必要です", @@ -146,7 +146,7 @@ "components.Settings.SonarrModal.qualityprofile": "画質プロファイル", "components.Settings.SonarrModal.rootfolder": "ルートフォルダー", "components.Settings.SonarrModal.save": "変更を保存", - "components.Settings.SonarrModal.saving": "保存中...", + "components.Settings.SonarrModal.saving": "保存中…", "components.Settings.SonarrModal.seasonfolders": "シーズンフォルダー", "components.Settings.SonarrModal.selectQualityProfile": "画質プロファイルを選ぶ", "components.Settings.SonarrModal.selectRootFolder": "ルートフォルダーを選ぶ", @@ -155,7 +155,7 @@ "components.Settings.SonarrModal.servernamePlaceholder": "Sonarrサーバー", "components.Settings.SonarrModal.ssl": "SSL", "components.Settings.SonarrModal.test": "テストする", - "components.Settings.SonarrModal.testing": "テスト中...", + "components.Settings.SonarrModal.testing": "テスト中…", "components.Settings.SonarrModal.toastRadarrTestFailure": "Sonarrサーバーに接続できませんでした", "components.Settings.SonarrModal.toastRadarrTestSuccess": "Sonarrサーバーの接続が成功しました!", "components.Settings.SonarrModal.validationApiKeyRequired": "APIキーの入力が必要です", @@ -204,7 +204,7 @@ "components.Settings.radarrsettings": "Radarr設定", "components.Settings.runnow": "今すぐ実行", "components.Settings.save": "変更を保存", - "components.Settings.saving": "保存中...", + "components.Settings.saving": "保存中…", "components.Settings.servername": "サーバー名 (保存時に自動で設定されます)", "components.Settings.servernamePlaceholder": "Plexサーバー名", "components.Settings.sonarrSettingsDescription": "Sonarr接続設定。複数のサーバーを繋ぐことができますが、デフォルトで常にアクティブなのは2つのみ(1つは標準HD用、もう1つは4K用)。管理者は、新しいリクエストに使用するサーバーを選択することができます。", @@ -217,7 +217,7 @@ "components.Setup.configureservices": "連携サービスの設定", "components.Setup.continue": "続行", "components.Setup.finish": "セットアップを完了", - "components.Setup.finishing": "保存中...", + "components.Setup.finishing": "保存中…", "components.Setup.loginwithplex": "Plexでログイン", "components.Setup.signinMessage": "Plexアカウントでログインして始める", "components.Setup.welcome": "Overseerrへようこそ", @@ -241,7 +241,7 @@ "components.TvDetails.overviewunavailable": "ストーリー情報がありません", "components.TvDetails.pending": "リクエスト中", "components.TvDetails.recommendations": "オススメの作品", - "components.TvDetails.recommendationssubtext": "{title}が好きだった人は、こんなのも好きかもしれません...", + "components.TvDetails.recommendationssubtext": "{title}が好きだった人は、こんなのも好きかもしれません…", "components.TvDetails.request": "リクエストする", "components.TvDetails.requestmore": "もっとリクエストする", "components.TvDetails.similar": "類似シリーズ", @@ -262,7 +262,7 @@ "components.UserEdit.request": "リクエストする", "components.UserEdit.requestDescription": "映画やテレビ番組のリクエスト権限を付与します。", "components.UserEdit.save": "保存", - "components.UserEdit.saving": "保存中...", + "components.UserEdit.saving": "保存中…", "components.UserEdit.settings": "設定の管理", "components.UserEdit.settingsDescription": "すべてのOverseerrの設定を変更する権限を付与します。他の人にこの権限を付与するには、ユーザーがこの権限を持っていなければなりません。", "components.UserEdit.userfail": "ユーザーの保存する時に問題が発生しました。", @@ -319,5 +319,34 @@ "components.Settings.Notifications.emailsettingsfailed": "メール通知設定の保存に失敗しました。", "components.Settings.Notifications.discordsettingsfailed": "ディスコード通知設定の保存に失敗しました。", "components.Settings.Notifications.discordsettingssaved": "ディスコードの通知設定が保存されました!", - "components.MovieDetails.MovieCast.fullcast": "フルキャスト" + "components.MovieDetails.MovieCast.fullcast": "フルキャスト", + "i18n.deleting": "削除中…", + "components.UserList.userdeleteerror": "ユーザーの削除する時に問題が発生しました", + "components.UserList.userdeleted": "ユーザーが削除されました", + "components.UserList.deleteuser": "ユーザーの削除", + "components.UserList.deleteconfirm": "このユーザーを削除しますか?このユーザーの既存のリクエストデータはすべて削除されます。", + "components.TvDetails.showtype": "番組タイプ", + "components.TvDetails.network": "ネットワーク", + "components.TvDetails.anime": "アニメ", + "components.Setup.tip": "ヒント", + "components.Setup.syncingbackground": "同期はバックグラウンドで実行されます。その間、セットアッププロセスを続行できます。", + "components.Settings.toastSettingsSuccess": "設定の変更は保存しました。", + "components.Settings.toastSettingsFailure": "設定保存中に問題が発生しました。", + "components.Settings.toastApiKeySuccess": "新しい API キーが生成されました。", + "components.Settings.toastApiKeyFailure": "新しい API キーの生成中に問題が発生しました。", + "components.Settings.nodefaultdescription": "サービスへのリクエストを行う前に、一つのサーバーをデフォルトとして設定する必要があります。", + "components.Settings.nodefault": "デフォルトサーバーが選択されていません。", + "components.Settings.no4kimplemented": "( 4K サーバーのデフォルト設定は未実装)", + "components.Settings.SonarrModal.testFirstRootFolders": "ルートフォルダーをロードするには先に接続をテストしてください", + "components.Settings.SonarrModal.testFirstQualityProfiles": "画質プロファイルをロードするには先に接続をテストしてください", + "components.Settings.SonarrModal.loadingrootfolders": "ルートフォルダー読込中…", + "components.Settings.SonarrModal.loadingprofiles": "画質プロファイル読込中…", + "components.Settings.SonarrModal.animerootfolder": "アニメルートフォルダー", + "components.Settings.SonarrModal.animequalityprofile": "アニメ画質プロファイル", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "最低リリース状況を選択してください", + "components.Settings.RadarrModal.testFirstRootFolders": "ルートフォルダーをロードするには先に接続をテストしてください", + "components.Settings.RadarrModal.testFirstQualityProfiles": "画質プロファイルをロードするには先に接続をテストしてください", + "components.Settings.RadarrModal.loadingprofiles": "画質プロファイルの読込中…", + "components.Settings.RadarrModal.loadingrootfolders": "ルートフォルダー読込中…", + "components.MovieDetails.studio": "スタジオ" } diff --git a/src/i18n/locale/nl.json b/src/i18n/locale/nl.json index 481becc60..033595b10 100644 --- a/src/i18n/locale/nl.json +++ b/src/i18n/locale/nl.json @@ -34,7 +34,7 @@ "components.MovieDetails.overviewunavailable": "Overzicht onbeschikbaar", "components.MovieDetails.pending": "Wachtende", "components.MovieDetails.recommendations": "Aanbevelingen", - "components.MovieDetails.recommendationssubtext": "Als je {title} leuk vond, vind je dit misschien ook leuk...", + "components.MovieDetails.recommendationssubtext": "Als je {title} leuk vond, vind je dit misschien ook leuk…", "components.MovieDetails.releasedate": "Releasedatum", "components.MovieDetails.request": "Verzoek", "components.MovieDetails.revenue": "Omzet", @@ -48,8 +48,8 @@ "components.PersonDetails.appearsin": "Verschijnt in", "components.PersonDetails.ascharacter": "als {character}", "components.PersonDetails.nobiography": "Geen biografie beschikbaar.", - "components.PlexLoginButton.loading": "Bezig met laden...", - "components.PlexLoginButton.loggingin": "Bezig met inloggen...", + "components.PlexLoginButton.loading": "Bezig met laden…", + "components.PlexLoginButton.loggingin": "Bezig met inloggen…", "components.PlexLoginButton.loginwithplex": "Login met Plex", "components.RequestBlock.seasons": "Seizoenen", "components.RequestCard.all": "Alle", @@ -67,7 +67,7 @@ "components.RequestList.showingresults": "{from} tot {to} van de {total} resultaten worden weergegeven", "components.RequestList.status": "Status", "components.RequestModal.cancel": "Verzoek Annuleren", - "components.RequestModal.cancelling": "Bezig met annuleren...", + "components.RequestModal.cancelling": "Bezig met annuleren…", "components.RequestModal.cancelrequest": "Hiermee wordt je verzoek verwijderd. Weet je zeker dat je door wilt gaan?", "components.RequestModal.close": "Sluiten", "components.RequestModal.extras": "Extra", @@ -93,7 +93,7 @@ "components.Settings.Notifications.emailsender": "E-mailadres Van Afzender", "components.Settings.Notifications.enableSsl": "Schakel SSL in", "components.Settings.Notifications.save": "Wijzigingen Opslaan", - "components.Settings.Notifications.saving": "Bezig met opslaan...", + "components.Settings.Notifications.saving": "Bezig met opslaan…", "components.Settings.Notifications.smtpHost": "SMTP Host", "components.Settings.Notifications.smtpPort": "SMTP Poort", "components.Settings.Notifications.validationFromRequired": "Je moet een afzenderadres opgeven", @@ -116,7 +116,7 @@ "components.Settings.RadarrModal.qualityprofile": "Kwaliteitsprofiel", "components.Settings.RadarrModal.rootfolder": "Hoofdmap", "components.Settings.RadarrModal.save": "Wijzigingen Opslaan", - "components.Settings.RadarrModal.saving": "Bezig met opslaan...", + "components.Settings.RadarrModal.saving": "Bezig met opslaan…", "components.Settings.RadarrModal.selectMinimumAvailability": "Selecteer minimale beschikbaarheid", "components.Settings.RadarrModal.selectQualityProfile": "Selecteer een kwaliteitsprofiel", "components.Settings.RadarrModal.selectRootFolder": "Selecteer een Hoofdmap", @@ -125,7 +125,7 @@ "components.Settings.RadarrModal.servernamePlaceholder": "Een Radarr Server", "components.Settings.RadarrModal.ssl": "SSL", "components.Settings.RadarrModal.test": "Test", - "components.Settings.RadarrModal.testing": "Bezig met testen...", + "components.Settings.RadarrModal.testing": "Bezig met testen…", "components.Settings.RadarrModal.toastRadarrTestFailure": "Kon niet verbinden met de Radarr Server", "components.Settings.RadarrModal.toastRadarrTestSuccess": "Verbonden met de Radarr server!", "components.Settings.RadarrModal.validationApiKeyRequired": "Je moet een API key opgeven", @@ -146,7 +146,7 @@ "components.Settings.SonarrModal.qualityprofile": "Kwaliteitsprofiel", "components.Settings.SonarrModal.rootfolder": "Basisfolder", "components.Settings.SonarrModal.save": "Wijzigingen Opslaan", - "components.Settings.SonarrModal.saving": "Bezig met opslaan...", + "components.Settings.SonarrModal.saving": "Bezig met opslaan…", "components.Settings.SonarrModal.seasonfolders": "Seizoenmappen", "components.Settings.SonarrModal.selectQualityProfile": "Selecteer een Kwaliteitsprofiel", "components.Settings.SonarrModal.selectRootFolder": "Selecteer een hoofdfolder", @@ -155,7 +155,7 @@ "components.Settings.SonarrModal.servernamePlaceholder": "Een Sonarr Server", "components.Settings.SonarrModal.ssl": "SSL", "components.Settings.SonarrModal.test": "Test", - "components.Settings.SonarrModal.testing": "Bezig met testen...", + "components.Settings.SonarrModal.testing": "Bezig met testen…", "components.Settings.SonarrModal.toastRadarrTestFailure": "Kon niet verbinden met de Sonarr Server", "components.Settings.SonarrModal.toastRadarrTestSuccess": "Verbonden met de Sonarr server!", "components.Settings.SonarrModal.validationApiKeyRequired": "Je moet een API key opgeven", @@ -204,7 +204,7 @@ "components.Settings.radarrsettings": "Radarr Instellingen", "components.Settings.runnow": "Nu Starten", "components.Settings.save": "Wijzigingen Opslaan", - "components.Settings.saving": "Bezig met opslaan...", + "components.Settings.saving": "Bezig met opslaan…", "components.Settings.servername": "Servernaam (Automatisch ingesteld na opslaan)", "components.Settings.servernamePlaceholder": "Plex Servernaam", "components.Settings.sonarrSettingsDescription": "Stel hier onder je Sonarr connectie in. Je kan er meerdere hebben, maar slechts twee actief hebben als standaard (één voor standaard HD, en één voor 4K). Beheerders kunnen bepalen welke server gebruikt wordt voor nieuwe verzoeken.", @@ -217,7 +217,7 @@ "components.Setup.configureservices": "Configureer Diensten", "components.Setup.continue": "Doorgaan", "components.Setup.finish": "Installatie Voltooien", - "components.Setup.finishing": "Bezig met voltooien...", + "components.Setup.finishing": "Bezig met voltooien…", "components.Setup.loginwithplex": "Login met Plex", "components.Setup.signinMessage": "Ga aan de slag door in te loggen met je Plex account", "components.Setup.welcome": "Welcome bij Overseerr", @@ -241,7 +241,7 @@ "components.TvDetails.overviewunavailable": "Overzicht onbeschikbaar", "components.TvDetails.pending": "Wachtende", "components.TvDetails.recommendations": "Aanbevelingen", - "components.TvDetails.recommendationssubtext": "Als je {title} leuk vond, vind je dit misschien ook leuk...", + "components.TvDetails.recommendationssubtext": "Als je {title} leuk vond, vind je dit misschien ook leuk…", "components.TvDetails.request": "Verzoek", "components.TvDetails.requestmore": "Verzoek Meer", "components.TvDetails.similar": "Soortgelijke Series", @@ -262,7 +262,7 @@ "components.UserEdit.request": "Verzoek", "components.UserEdit.requestDescription": "Geeft toestemming om films en series aan te vragen.", "components.UserEdit.save": "Sla op", - "components.UserEdit.saving": "Bezig met opslaan...", + "components.UserEdit.saving": "Bezig met opslaan…", "components.UserEdit.settings": "Instellingen Beheren", "components.UserEdit.settingsDescription": "Geeft toestemming om alle Overseerr-instellingen te wijzigen. Een gebruiker moet deze toestemming hebben om deze aan anderen te verlenen.", "components.UserEdit.userfail": "Er ging iets verkeerd bij het opslaan van de gebruiker.", diff --git a/src/i18n/locale/pt_BR.json b/src/i18n/locale/pt_BR.json index 58602ecbd..7f2b856c6 100644 --- a/src/i18n/locale/pt_BR.json +++ b/src/i18n/locale/pt_BR.json @@ -1,8 +1,8 @@ { - "components.RequestList.requestedAt": "Solicitado", + "components.RequestList.requestedAt": "Solicitado Em", "components.RequestList.next": "Próxima", - "components.RequestList.modifiedBy": "Última Modificação Feita", - "components.RequestList.mediaInfo": "Detalhes", + "components.RequestList.modifiedBy": "Última Mudança Feita Por", + "components.RequestList.mediaInfo": "Títulos", "components.RequestList.RequestItem.requestedby": "Solicitado por {username}", "components.RequestCard.seasons": "Temporadas", "components.RequestCard.requestedby": "Solicitado por {username}", @@ -60,5 +60,173 @@ "components.Discover.popularmovies": "Filmes Populares", "components.Discover.nopending": "Nenhuma Solicitação Pendente", "components.Discover.discovertv": "Séries Populares", - "components.Discover.discovermovies": "Filmes Populares" + "components.Discover.discovermovies": "Filmes Populares", + "components.Settings.SonarrModal.testing": "Testando...", + "components.Settings.SonarrModal.saving": "Salvando...", + "components.Settings.RadarrModal.testing": "Testando...", + "components.Settings.RadarrModal.saving": "Salvando...", + "components.Settings.Notifications.saving": "Salvando...", + "components.RequestModal.cancelling": "Cancelando...", + "components.Settings.plexlibraries": "Bibliotecas do Plex", + "components.Settings.notrunning": "Parado", + "components.Settings.notificationsettingsDescription": "Aqui você pode escolher e selecionar os tipos de notificações e através de quais serviços deseja enviar.", + "pages.pageNotFound": "404 - Página Não Encontrada", + "components.RequestModal.season": "Temporada", + "components.Settings.notificationsettings": "Configurações de Notificação", + "components.Settings.nodefaultdescription": "Pelo menos um servidor deve ser selecionado como padrão antes que qualquer solicitação chegue aos seus serviços.", + "components.Settings.nodefault": "Nenhum servidor padrão selecionado!", + "components.Settings.no4kimplemented": "(Servidores 4K padrões não configurados atualmente)", + "components.Settings.nextexecution": "Próxima Execução", + "components.Settings.menuServices": "Serviços", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuNotifications": "Notificações", + "components.Settings.menuLogs": "Logs", + "components.Settings.menuJobs": "Tarefas", + "components.Settings.menuGeneralSettings": "Configurações Gerais", + "components.Settings.menuAbout": "Sobre", + "components.Settings.manualscanDescription": "Normalmente, isso só será executado uma vez a cada 6 horas. Overseerr irá checar em detalhes items recentemente adicionados ao seu servidor Plex. Se essa é a primeira vez que você configura um servidor Plex, é recomendado a varredura completa de sua biblioteca!", + "components.Settings.manualscan": "Varredura Manual da Biblioteca", + "components.Settings.librariesRemaining": "Bibliotecas Restantes: {count}", + "components.Settings.jobname": "Nome da Tarefa", + "components.Settings.hostname": "Nome de Servidor/IP", + "components.Settings.generalsettingsDescription": "Essas são configurações gerais do Overseerr.", + "components.Settings.generalsettings": "Configurações Gerais", + "components.Settings.edit": "Editar", + "components.Settings.deleteserverconfirm": "Tem certeza que deseja apagar esse servidor?", + "components.Settings.delete": "Apagar", + "components.UserList.delete": "Apagar", + "i18n.deleting": "Apagando…", + "i18n.delete": "Apagar", + "components.Settings.default4k": "Padrão 4K", + "components.Settings.default": "Padrão", + "components.Settings.currentlibrary": "Biblioteca Atual: {name}", + "components.Settings.copied": "Chave de API copiada", + "components.Settings.cancelscan": "Cancelar Escaneamento", + "components.Settings.applicationurl": "URL da Aplicação", + "components.Settings.apikey": "Chave de API", + "components.Settings.addsonarr": "Adicionar Servidor Sonarr", + "components.Settings.address": "Endereço", + "components.Settings.addradarr": "Adicionar Servidor Radarr", + "components.Settings.activeProfile": "Perfil Ativo", + "components.Settings.SonarrModal.validationRootFolderRequired": "Você deve selecionar uma pasta raíz", + "components.Settings.SonarrModal.validationProfileRequired": "Você deve selecionar um perfil", + "components.Settings.SonarrModal.validationPortRequired": "Você deve prover uma porta", + "components.Settings.SonarrModal.validationNameRequired": "Você deve prover o nome do servidor", + "components.Settings.SonarrModal.validationHostnameRequired": "Você deve prover o Nome do Servidor/IP", + "components.Settings.SonarrModal.validationApiKeyRequired": "Você deve prover uma chave de API", + "components.Settings.SonarrModal.toastRadarrTestSuccess": "Conexão estabelecida com servidor Sonarr!", + "components.Settings.SonarrModal.toastRadarrTestFailure": "Falha ao conectar ao Servidor Sonarr", + "components.Settings.SonarrModal.testFirstRootFolders": "Teste sua conexão para carregar as pastas raízes", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Teste sua conexão para carregar perfis de qualidade", + "components.Settings.SonarrModal.test": "Testar", + "components.Settings.SonarrModal.ssl": "SSL", + "components.Settings.SonarrModal.servernamePlaceholder": "Meu Servidor Sonarr", + "components.Settings.SonarrModal.servername": "Nome do Servidor", + "components.Settings.SonarrModal.server4k": "Servidor 4K", + "components.Settings.SonarrModal.selectRootFolder": "Selecione a Pasta Raíz", + "components.Settings.SonarrModal.selectQualityProfile": "Selecione o Perfil de Qualidade", + "components.Settings.SonarrModal.seasonfolders": "Temporadas Em Pastas", + "components.Settings.SonarrModal.save": "Salvar Mudanças", + "components.Settings.SonarrModal.rootfolder": "Pasta Raíz", + "components.Settings.SonarrModal.qualityprofile": "Perfil de Qualidade", + "components.Settings.SonarrModal.port": "Porta", + "components.Settings.SonarrModal.loadingrootfolders": "Carregando Pastas Raízes…", + "components.Settings.SonarrModal.loadingprofiles": "Carregando Perfis de Qualidade…", + "components.Settings.SonarrModal.hostname": "Nome do Servidor / IP", + "components.Settings.SonarrModal.editsonarr": "Editar Servidor Sonarr", + "components.Settings.SonarrModal.defaultserver": "Servidor Padrão", + "components.Settings.SonarrModal.createsonarr": "Criar Um Novo Servidor Sonarr", + "components.Settings.SonarrModal.baseUrlPlaceholder": "Exemplo: /sonarr", + "components.Settings.SonarrModal.baseUrl": "URL Base", + "components.Settings.SonarrModal.apiKeyPlaceholder": "Sua Chave de API do Sonarr", + "components.Settings.SonarrModal.apiKey": "Chave de API", + "components.Settings.SonarrModal.animerootfolder": "Pasta Raíz de Animes", + "components.Settings.SonarrModal.animequalityprofile": "Perfil de Qualidade Para Animes", + "components.Settings.SonarrModal.add": "Adicionar Servidor", + "components.Settings.SettingsAbout.version": "Versão", + "components.Settings.SettingsAbout.totalrequests": "Total de Solicitações", + "components.Settings.SettingsAbout.totalmedia": "Total de Títulos", + "components.Settings.SettingsAbout.overseerrinformation": "Sobre Overseerr", + "components.Settings.SettingsAbout.githubdiscussions": "Discussões no GitHub", + "components.Settings.SettingsAbout.gettingsupport": "Obtenha Suporte", + "components.Settings.SettingsAbout.clickheretojoindiscord": "Clique aqui para participar de nosso servidor Discord.", + "components.Settings.RadarrModal.validationRootFolderRequired": "Você deve selecionar uma pasta raíz", + "components.Settings.RadarrModal.validationProfileRequired": "Você deve selecionar um perfil", + "components.Settings.RadarrModal.validationPortRequired": "Você deve prover uma porta", + "components.Settings.RadarrModal.validationNameRequired": "Você deve prover o nome do servidor", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Você deve selecionar a disponibilidade mínima", + "components.Settings.RadarrModal.validationHostnameRequired": "Você deve prover o Nome do Servidor/IP", + "components.Settings.RadarrModal.validationApiKeyRequired": "Você deve prover uma chave de API", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "Conexão estabelecida com Radarr!", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Falha ao conectar ao Servidor Radarr", + "components.Settings.RadarrModal.testFirstRootFolders": "Teste sua conexão para carregar as pastas raízes", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Teste sua conexão para carregar perfis de qualidade", + "components.Settings.RadarrModal.test": "Testar", + "components.Settings.RadarrModal.ssl": "SSL", + "components.Settings.RadarrModal.servernamePlaceholder": "Meu Servidor Radarr", + "components.Settings.RadarrModal.servername": "Nome do Servidor", + "components.Settings.RadarrModal.server4k": "Servidor 4K", + "components.Settings.RadarrModal.selectRootFolder": "Selecione a Pasta Raíz", + "components.Settings.RadarrModal.selectQualityProfile": "Selecione o Perfil de Qualidade", + "components.Settings.RadarrModal.selectMinimumAvailability": "Selecione disponibilidade mínima", + "components.Settings.RadarrModal.save": "Salvar Mudanças", + "components.Settings.RadarrModal.rootfolder": "Pasta Raíz", + "components.Settings.RadarrModal.qualityprofile": "Perfil de Qualidade", + "components.Settings.RadarrModal.port": "Porta", + "components.Settings.RadarrModal.minimumAvailability": "Disponibilidade Mínima", + "components.Settings.RadarrModal.loadingrootfolders": "Carregando Pastas Raízes…", + "components.Settings.RadarrModal.loadingprofiles": "Carregando Perfis de Qualidade…", + "components.Settings.RadarrModal.hostname": "Nome do Servidor / IP", + "components.Settings.RadarrModal.editradarr": "Editar Servidor Radarr", + "components.Settings.RadarrModal.defaultserver": "Servidor Padrão", + "components.Settings.RadarrModal.createradarr": "Criar Um Novo Servidor Radarr", + "components.Settings.RadarrModal.baseUrlPlaceholder": "Exemplo: /radarr", + "components.Settings.RadarrModal.baseUrl": "URL Base", + "components.Settings.RadarrModal.apiKeyPlaceholder": "Sua Chave de API do Radarr", + "components.Settings.RadarrModal.apiKey": "Chave de API", + "components.Settings.RadarrModal.add": "Adicionar Servidor", + "components.Settings.Notifications.webhookUrlPlaceholder": "Configurações do Servidor -> Integrações -> Webhooks", + "components.Settings.Notifications.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.validationWebhookUrlRequired": "Você deve prover uma URL de webhook", + "components.Settings.Notifications.validationSmtpPortRequired": "Você deve prover a porta SMTP", + "components.Settings.Notifications.validationFromRequired": "Você deve prover um e-mail de remetente", + "components.Settings.Notifications.validationSmtpHostRequired": "Você deve prover um servidor SMTP", + "components.Settings.Notifications.smtpPort": "Porta SMTP", + "components.Settings.Notifications.smtpHost": "Servidor SMTP", + "components.Settings.Notifications.save": "Salvar Mudanças", + "components.Settings.Notifications.enableSsl": "Habilitar SSL", + "components.Settings.Notifications.emailsettingssaved": "Configurações de notificação via e-mail salvas!", + "components.Settings.Notifications.emailsettingsfailed": "Falha ao salvar configurações de notificação via e-mail.", + "components.Settings.Notifications.emailsender": "Email do Remetente", + "components.Settings.Notifications.discordsettingssaved": "Configurações de notificação do Discord salvas!", + "components.Settings.Notifications.discordsettingsfailed": "Falha ao salvar configurações de notificação do Discord.", + "components.Settings.Notifications.authUser": "Usuário", + "components.Settings.Notifications.authPass": "Senha", + "components.Settings.Notifications.agentenabled": "Agente Habilitado", + "components.Search.searchresults": "Resultados da Pesquisa", + "components.TvDetails.status": "Estado", + "components.RequestModal.status": "Estado", + "components.RequestModal.selectseason": "Selecione temporada(s)", + "components.RequestModal.seasonnumber": "Temporada {number}", + "components.RequestModal.requesttitle": "Solicitar {title}", + "components.RequestModal.requesting": "Solicitando…", + "components.RequestModal.requestfrom": "Existe uma solicitação pendende de {username}", + "components.RequestModal.requestadmin": "Sua solicitação será aprovada imediatamente.", + "components.RequestModal.requestSuccess": "{title} solicitado.", + "components.RequestModal.requestCancel": "Solicitação para {title} cancelada", + "components.RequestModal.request": "Solicitar", + "components.RequestModal.pendingrequest": "Solicitação pendente para {title}", + "components.RequestModal.numberofepisodes": "# de Episódeos", + "components.RequestModal.notrequested": "Não Solicitado", + "components.RequestModal.extras": "Extras", + "components.RequestModal.close": "Fechar", + "components.RequestModal.cancelrequest": "Isso irá cancelar sua solicitação. Você tem certeza que deseja continuar?", + "components.RequestModal.cancel": "Cancelar Solicitação", + "components.RequestList.status": "Estado", + "components.RequestList.showingresults": "Exibindo {from} a {to} de {total} resultados", + "components.RequestList.requests": "Solicitações", + "components.RequestList.previous": "Anterior", + "components.RequestList.RequestItem.seasons": "Temporadas", + "components.RequestList.RequestItem.notavailable": "N/A", + "components.RequestCard.all": "Todas" } diff --git a/src/i18n/locale/ru.json b/src/i18n/locale/ru.json index da3115c77..fce84a9ed 100644 --- a/src/i18n/locale/ru.json +++ b/src/i18n/locale/ru.json @@ -48,7 +48,7 @@ "components.PersonDetails.appearsin": "", "components.PersonDetails.ascharacter": "", "components.PersonDetails.nobiography": "", - "components.PlexLoginButton.loading": "Загрузка...", + "components.PlexLoginButton.loading": "Загрузка…", "components.PlexLoginButton.loggingin": "", "components.PlexLoginButton.loginwithplex": "Войти через Plex", "components.RequestBlock.seasons": "Сезонов", @@ -93,7 +93,7 @@ "components.Settings.Notifications.emailsender": "", "components.Settings.Notifications.enableSsl": "Включить SSL", "components.Settings.Notifications.save": "Сохранить изменения", - "components.Settings.Notifications.saving": "Сохранение...", + "components.Settings.Notifications.saving": "Сохранение…", "components.Settings.Notifications.smtpHost": "", "components.Settings.Notifications.smtpPort": "", "components.Settings.Notifications.validationFromRequired": "", @@ -116,7 +116,7 @@ "components.Settings.RadarrModal.qualityprofile": "", "components.Settings.RadarrModal.rootfolder": "Корневая папка", "components.Settings.RadarrModal.save": "Сохранить изменения", - "components.Settings.RadarrModal.saving": "Сохранение...", + "components.Settings.RadarrModal.saving": "Сохранение…", "components.Settings.RadarrModal.selectMinimumAvailability": "", "components.Settings.RadarrModal.selectQualityProfile": "", "components.Settings.RadarrModal.selectRootFolder": "Выберите корневую папку", @@ -125,7 +125,7 @@ "components.Settings.RadarrModal.servernamePlaceholder": "", "components.Settings.RadarrModal.ssl": "SSL", "components.Settings.RadarrModal.test": "Тест", - "components.Settings.RadarrModal.testing": "Тестирование...", + "components.Settings.RadarrModal.testing": "Тестирование…", "components.Settings.RadarrModal.toastRadarrTestFailure": "", "components.Settings.RadarrModal.toastRadarrTestSuccess": "", "components.Settings.RadarrModal.validationApiKeyRequired": "", diff --git a/src/i18n/locale/sr.json b/src/i18n/locale/sr.json new file mode 100644 index 000000000..9555e7260 --- /dev/null +++ b/src/i18n/locale/sr.json @@ -0,0 +1,352 @@ +{ + "components.RequestList.mediaInfo": "Informacija o fajlu", + "components.TvDetails.manageModalClearMedia": "Obriši sve infomacije o fajlu", + "components.TvDetails.approverequests": "Odobri {requestCount} {requestCount, plural, {Request} drugih {Requests}}", + "components.RequestModal.requestseasons": "Zatraži {seasonCount} {seasonCount, plural, jednu {Season} više {Seasons}}", + "components.RequestList.showingresults": "Prikazivanje {from} do {to} od {total} rezultata", + "components.MovieDetails.decline": "Poništi", + "components.Layout.Sidebar.dashboard": "Pronadji Novo", + "pages.somethingWentWrong": "{statusCode} - Nesto se pokvarilo", + "pages.serviceUnavailable": "{statusCode} - Servis nije dostupan", + "pages.returnHome": "Povratak na glavnu stranicu", + "pages.pageNotFound": "404 - Stranica Nije Pronadjena", + "pages.oops": "Ups", + "pages.internalServerError": "{statusCode} - Greska na serveru", + "i18n.unavailable": "Nije dostupno", + "i18n.tvshows": "Serije", + "i18n.processing": "Obradjuje se…", + "i18n.pending": "Na čekanju", + "i18n.partiallyavailable": "Polovično Dostupno", + "i18n.movies": "Filmovi", + "i18n.deleting": "Brisanje u toku…", + "i18n.delete": "Izbriši", + "i18n.declined": "Odbijeno", + "i18n.decline": "Poništi", + "i18n.cancel": "Poništi", + "i18n.available": "Dostupno", + "i18n.approved": "Prihvaćeno", + "i18n.approve": "Prihvati", + "components.UserList.usertype": "Tip Korisnika", + "components.UserList.username": "Korisničko Ime", + "components.UserList.userlist": "Lista Korisnika", + "components.UserList.userdeleteerror": "Neuspešno brisanje korisnika", + "components.UserList.userdeleted": "Korisnik izbrisan", + "components.UserList.user": "Korisnik", + "components.UserList.totalrequests": "Ukupno Zahteva", + "components.UserList.role": "Uloga", + "components.UserList.plexuser": "Plex Korisnik", + "components.UserList.lastupdated": "Zadnja Promena", + "components.UserList.edit": "Edituj", + "components.UserList.deleteuser": "Izbriši Korisnika", + "components.UserList.deleteconfirm": "Da li ste sigurni da želite da izbrišete ovog korisnika? Svi njegovi zahtevi će biti izbrisani.", + "components.UserList.delete": "Izbriši", + "components.UserList.created": "Napravljeno", + "components.UserList.admin": "Administrator", + "components.UserEdit.voteDescription": "Dodaje permisiju da glasa na zahteve (glasanje jos nije implementirano)", + "components.UserEdit.vote": "Glasaj", + "components.UserEdit.usersaved": "Korisnik sačuvan", + "components.UserEdit.usersDescription": "Dodaje permisiju da upravlja Overseerr korisnicima. Korisnici sa ovom permisiju ne mogu da modifikuju korisnike sa Administratorskim statusom, niti da ga dodaju.", + "components.UserEdit.users": "Upravljaj Korisnicima", + "components.UserEdit.username": "Korisničko ime", + "components.UserEdit.userfail": "Neuspešno sačuvavanje korisnika.", + "components.UserEdit.settingsDescription": "Dodaje permisiju da menja sva Overseerr podešavanja. Korisnik mora da ima ovu permisiju da bi je dodao drugima.", + "components.UserEdit.settings": "Upravljaj Podešavanjima", + "components.UserEdit.saving": "Sačuvavanje…", + "components.UserEdit.save": "Sačuvaj", + "components.UserEdit.requestDescription": "Dodaje permisiju za zahtevanje filmova i serija.", + "components.UserEdit.request": "Zahtev", + "components.UserEdit.permissions": "Permisije", + "components.UserEdit.managerequestsDescription": "Dodaje permisiju za upravljanje Overseerr zahtevima. Ovo uključuje prihvatanje i odbijanje zahteva.", + "components.UserEdit.managerequests": "Upravljaj Zahtevima", + "components.UserEdit.email": "Email", + "components.UserEdit.edituser": "Edituj Korisnika", + "components.UserEdit.avatar": "Slika", + "components.UserEdit.autoapproveDescription": "Dozvoljava automatsko prihvatanje zahteva za ovog korisnika.", + "components.UserEdit.autoapprove": "Automatski Odobri", + "components.UserEdit.adminDescription": "Potpuni Administrativni Pristup. Zaobilazi sve provere permisija.", + "components.UserEdit.admin": "Admin", + "components.TvDetails.userrating": "Korisnički Rejting", + "components.TvDetails.unavailable": "Nije dostupno", + "components.TvDetails.status": "Status", + "components.TvDetails.similarsubtext": "Slične serije kao {title}", + "components.TvDetails.similar": "Slične Serije", + "components.TvDetails.showtype": "Tip Serije", + "components.TvDetails.requestmore": "Zatraži još", + "components.TvDetails.request": "Zatraži", + "components.TvDetails.recommendationssubtext": "Ako vam se svidja {title}, možda vam se svidi…", + "components.TvDetails.recommendations": "Preporuke", + "components.TvDetails.pending": "Na čekanju", + "components.TvDetails.overviewunavailable": "Pregled nije dostupan", + "components.TvDetails.overview": "Pregled", + "components.TvDetails.originallanguage": "Originalni Jezik", + "components.TvDetails.network": "Mreža", + "components.TvDetails.manageModalTitle": "Upravljaj Serijama", + "components.TvDetails.manageModalRequests": "Zahtevi", + "components.TvDetails.manageModalNoRequests": "Nema Zahteva", + "components.TvDetails.manageModalClearMediaWarning": "Ovo će ukloniti sve podatke o mediji uključujući i zahteve za ovaj sadrzaj nepovratno. Ako ovaj sadržaj postoji u vašoj plex biblioteci infomacija o mediji će biti kreirana pri sledećoj sinhronizaciji.", + "components.TvDetails.declinerequests": "Odbij {requestCount} {requestCount, plural, jedan {Request} drugih {Requests}}", + "components.TvDetails.decline": "Odbij", + "components.TvDetails.cast": "Repertoar", + "components.TvDetails.cancelrequest": "Otkaži Zahtev", + "components.TvDetails.available": "Dostupno", + "components.TvDetails.approve": "Odobri", + "components.TvDetails.anime": "Anime", + "components.TvDetails.TvCast.fullseriescast": "Ceo Repertoar Serije", + "components.TitleCard.tvshow": "Serija", + "components.TitleCard.movie": "Film", + "components.Slider.noresults": "Nema Rezultata", + "components.Setup.welcome": "Dobrodošli u Overseerr", + "components.Setup.tip": "Savet", + "components.Setup.syncingbackground": "Sinhronizacija će raditi u pozadini. Možete da nastavite podešavanja u toku rada.", + "components.Setup.signinMessage": "Započni sa prijavljivanjem sa Vašim Plex profilom", + "components.Setup.loginwithplex": "Prijavljivanje sa Plexom", + "components.Setup.finishing": "Završavam…", + "components.Setup.finish": "Završi Podešavanja", + "components.Setup.continue": "Nastavi", + "components.Setup.configureservices": "Konfigurišite Servise", + "components.Setup.configureplex": "Konfigurišite Plex", + "components.Settings.validationPortRequired": "Morate dodati port", + "components.Settings.validationHostnameRequired": "Morate dodati hostname ili IP adresu", + "components.Settings.toastSettingsSuccess": "Podešavanja sačuvana.", + "components.Settings.toastSettingsFailure": "Nešto se pokvarilo pri čuvanju podešavanja.", + "components.Settings.toastApiKeySuccess": "Novi API Ključ generisan!", + "components.Settings.toastApiKeyFailure": "Nešto nije odradjeno kako treba pri generisanju API ključa.", + "components.Settings.syncing": "Sinhronizacija u toku…", + "components.Settings.sync": "Sinhronizuj Plex Sadržaj", + "components.Settings.startscan": "Pokreni Skeniranje", + "components.Settings.ssl": "SSL", + "components.Settings.sonarrsettings": "Sonarr Podešavanja", + "components.Settings.sonarrSettingsDescription": "Podesite vaš Sonarr server ispod. Možete imati više, ali samo 2 mogu biti aktivna u bilo kom trenutku (jedan za HD, drugi za 4K). Administratori mogu da odaberu koji server je za nove zahteve.", + "components.Settings.servernamePlaceholder": "Ime Plex Servera", + "components.Settings.servername": "Ime Servera (Automatski se podesi kada sačuvate)", + "components.Settings.saving": "Sačuvavanje u toku…", + "components.Settings.save": "Sačuvaj Promene", + "components.Settings.runnow": "Pokreni Sad", + "components.Settings.radarrsettings": "Radarr Podešavanja", + "components.Settings.radarrSettingsDescription": "Podesite vaš Radarr server ispod. Možete imati više od jednog, ali samo 2 mogu biti aktivna u bilo kom trenutku (jedan za HD, drugi za 4K). Administratori mogu da odaberu koji server je za nove zahteve.", + "components.Settings.port": "Port", + "components.Settings.plexsettingsDescription": "Konfigurišite podešavanja za Vaš Plex server. Overseerr koristi vaš Plex server da skenira vaš sadržaj u nekom intervalu da proveri šta je dostupno.", + "components.Settings.plexsettings": "Plex Podešavanja", + "components.Settings.plexlibrariesDescription": "Overseerr skenira sadržaj za imena. Dodajte informacije o Plex konekciji i kliknite dole dugme ako nijedan nije na listi.", + "components.Settings.plexlibraries": "Plex Sadržaj", + "components.Settings.notificationsettingsDescription": "Ovde možete odabrati tipove notifikacija koji se šalju i ka kojim servisima.", + "components.Settings.notificationsettings": "Podešavanje Notifikacija", + "components.Settings.nodefaultdescription": "Barem jedan server mora biti označen kao defaultni da bi se zahtevi poslali ka servisima.", + "components.Settings.nodefault": "Nijedan defaultni server nije odabran!", + "components.Settings.no4kimplemented": "(Defaultni 4K serveri nisu trenutno implementirani)", + "components.Settings.nextexecution": "Sledeće pokretanje", + "components.Settings.menuServices": "Servisi", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuNotifications": "Notifikacije", + "components.Settings.menuLogs": "Logovi", + "components.Settings.menuJobs": "Poslovi", + "components.Settings.menuGeneralSettings": "Standardna Podešavanja", + "components.Settings.menuAbout": "O nama", + "components.Settings.manualscanDescription": "Normalno, ovo će biti pokrenutno na svakih 6 sati. Overseerr će proveriti nedavno dodati Plex sadržaj češće. Ako je ovo prvi put da se Plex konfiguriše, jedan ručni scan sadržaja je preporučen!", + "components.Settings.manualscan": "Ručno Skeniranje Sadržaja", + "components.Settings.librariesRemaining": "Broj sadržaja koji se obradjuje: {count}", + "components.Settings.jobname": "Ime posla", + "components.Settings.hostname": "Hostname/IP", + "components.Settings.generalsettingsDescription": "Ovo su podešavanja vezana za uobičajenu Overseerr konfiguraciju.", + "components.Settings.generalsettings": "Standarna Podešavanja", + "components.Settings.edit": "Izmena", + "components.Settings.deleteserverconfirm": "Da li ste sigurni da želite da izbrišete ovaj server?", + "components.Settings.delete": "Izbriši", + "components.Settings.default4k": "Defaultno 4K", + "components.Settings.default": "Defaultno", + "components.Settings.currentlibrary": "Trenutna Biblioteka: {name}", + "components.Settings.copied": "Kopiran API ključ", + "components.Settings.cancelscan": "Otkaži skeniranje", + "components.Settings.applicationurl": "URL Aplikacije", + "components.Settings.apikey": "API Ključ", + "components.Settings.addsonarr": "Dodaj Sonarr Server", + "components.Settings.address": "Adresa", + "components.Settings.addradarr": "Dodaj Radarr Server", + "components.Settings.activeProfile": "Aktivni Profil", + "components.Settings.SonarrModal.validationRootFolderRequired": "Morate odabrati root folder", + "components.Settings.SonarrModal.validationProfileRequired": "Morate odabrati profil kvaliteta", + "components.Settings.SonarrModal.validationPortRequired": "Morate popuniti port", + "components.Settings.SonarrModal.validationNameRequired": "Morate popuniti ime servera", + "components.Settings.SonarrModal.validationHostnameRequired": "Morate dodati hostname ili IP adresu", + "components.Settings.SonarrModal.validationApiKeyRequired": "Morate dodati API ključ", + "components.Settings.SonarrModal.toastRadarrTestSuccess": "Konekcija sa Sonarr serverom uspešna!", + "components.Settings.SonarrModal.toastRadarrTestFailure": "Konekcija sa Sonarr Serverom neuspešna", + "components.Settings.SonarrModal.testing": "Testiranje…", + "components.Settings.SonarrModal.testFirstRootFolders": "Testirajte Vašu konekciju da učitate root foldere", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Testirajte Vašu konekciju da učitate profile kvaliteta", + "components.Settings.SonarrModal.test": "Test", + "components.Settings.SonarrModal.ssl": "SSL", + "components.Settings.SonarrModal.servernamePlaceholder": "Sonarr Server", + "components.Settings.SonarrModal.servername": "Ime Servera", + "components.Settings.SonarrModal.server4k": "4K Server", + "components.Settings.SonarrModal.selectRootFolder": "Odaberi Root Folder", + "components.Settings.SonarrModal.selectQualityProfile": "Odaberi Profil Kvaliteta", + "components.Settings.SonarrModal.seasonfolders": "Folderi Sezone", + "components.Settings.SonarrModal.saving": "Čuvanje…", + "components.Settings.SonarrModal.save": "Sačuvaj Promene", + "components.Settings.SonarrModal.rootfolder": "Root Folder", + "components.Settings.SonarrModal.qualityprofile": "Profil Kvaliteta", + "components.Settings.SonarrModal.port": "Port", + "components.Settings.SonarrModal.loadingrootfolders": "Učitavanje root foldera…", + "components.Settings.SonarrModal.loadingprofiles": "Učitavanje profila kvaliteta…", + "components.Settings.SonarrModal.hostname": "Hostname", + "components.Settings.SonarrModal.editsonarr": "Edituj Sonarr Server", + "components.Settings.SonarrModal.defaultserver": "Defaultni Server", + "components.Settings.SonarrModal.createsonarr": "Dodajte Nov Sonarr Server", + "components.Settings.SonarrModal.baseUrlPlaceholder": "Primer: /sonarr", + "components.Settings.SonarrModal.baseUrl": "Osnovni URL", + "components.Settings.SonarrModal.apiKeyPlaceholder": "Vaš Sonarr API Ključ", + "components.Settings.SonarrModal.apiKey": "API Ključ", + "components.Settings.SonarrModal.animerootfolder": "Root folder za Anime", + "components.Settings.SonarrModal.animequalityprofile": "Kvalitet Profila za Anime", + "components.Settings.SonarrModal.add": "Dodaj Server", + "components.Settings.SettingsAbout.version": "Verzija", + "components.Settings.SettingsAbout.totalrequests": "Ukupno Zahteva", + "components.Settings.SettingsAbout.totalmedia": "Ukupno Medije", + "components.Settings.SettingsAbout.overseerrinformation": "Overseerr Informacije", + "components.Settings.SettingsAbout.githubdiscussions": "GitHub rasprave", + "components.Settings.SettingsAbout.gettingsupport": "Pomoć", + "components.Settings.SettingsAbout.clickheretojoindiscord": "Kliknite ovde da se učlanite u naš Discord server.", + "components.Settings.RadarrModal.validationRootFolderRequired": "Morate odabrati root folder", + "components.Settings.RadarrModal.validationProfileRequired": "Morate odabrati profil", + "components.Settings.RadarrModal.validationPortRequired": "Morate dodati port", + "components.Settings.RadarrModal.validationNameRequired": "Morate dodati ime servera", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Morate odabrati minimum dostupnost", + "components.Settings.RadarrModal.validationHostnameRequired": "Morate dodati hostname ili IP adresu", + "components.Settings.RadarrModal.validationApiKeyRequired": "Morate dodati API ključ", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "Konekcija sa Radarr serverom uspostavljena!", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Neuspešna konekcija ka Radarr Serveru", + "components.Settings.RadarrModal.testing": "Testiranje…", + "components.Settings.RadarrModal.testFirstRootFolders": "Testirajte vašu konekciju da učitate root foldere", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Testirajte vašu konekciju da učitate profile kvaliteta", + "components.Settings.notrunning": "Ne Izvršava se", + "components.Settings.RadarrModal.test": "Test", + "components.Settings.RadarrModal.ssl": "SSL", + "components.Settings.RadarrModal.servernamePlaceholder": "Radarr Server", + "components.Settings.RadarrModal.servername": "Ime Servera", + "components.Settings.RadarrModal.server4k": "4K Server", + "components.Settings.RadarrModal.selectRootFolder": "Odaberi Root Folder", + "components.Settings.RadarrModal.selectQualityProfile": "Odaberi Profil Kvaliteta", + "components.Settings.RadarrModal.selectMinimumAvailability": "Odaberi minimum dostupnost", + "components.Settings.RadarrModal.saving": "Sačuvavanje…", + "components.Settings.RadarrModal.save": "Sačuvaj Promene", + "components.Settings.RadarrModal.rootfolder": "Root Fascikla", + "components.Settings.RadarrModal.qualityprofile": "Profil Kvaliteta", + "components.Settings.RadarrModal.port": "Port", + "components.Settings.RadarrModal.minimumAvailability": "Minimum Dostupnost", + "components.Settings.RadarrModal.loadingrootfolders": "Učitavanje root foldera…", + "components.Settings.RadarrModal.loadingprofiles": "Učitavanje nivoa kvaliteta…", + "components.Settings.RadarrModal.hostname": "Hostname", + "components.Settings.RadarrModal.editradarr": "Edituj Radarr Server", + "components.Settings.RadarrModal.defaultserver": "Standardni Server", + "components.Settings.RadarrModal.createradarr": "Napravi Novi Radarr Server", + "components.Settings.RadarrModal.baseUrlPlaceholder": "Primer: /radarr", + "components.Settings.RadarrModal.baseUrl": "Osnovni URL", + "components.Settings.RadarrModal.apiKeyPlaceholder": "Vaš Radarr API Ključ", + "components.Settings.RadarrModal.apiKey": "API Ključ", + "components.Settings.RadarrModal.add": "Dodaj Server", + "components.Settings.Notifications.webhookUrlPlaceholder": "Podešavanje Servera -> Integracije -> Webhooks", + "components.Settings.Notifications.webhookUrl": "Webhook adresa", + "components.Settings.Notifications.validationWebhookUrlRequired": "Morate dodati webhook URL", + "components.Settings.Notifications.validationSmtpPortRequired": "Morate popuniti SMTP port polje", + "components.Settings.Notifications.validationSmtpHostRequired": "Morate popuniti SMTP host polje", + "components.Settings.Notifications.validationFromRequired": "Morate dodati email adresu", + "components.Settings.Notifications.smtpPort": "SMTP Port", + "components.Settings.Notifications.smtpHost": "SMTP Host", + "components.Settings.Notifications.saving": "Čuvam…", + "components.Settings.Notifications.save": "Sačuvaj Promene", + "components.Settings.Notifications.enableSsl": "Uključi SSL", + "components.Settings.Notifications.emailsettingssaved": "Email notifikacija uspešno sačuvana!", + "components.Settings.Notifications.emailsettingsfailed": "Email notifikacija nije uspešno sačuvana.", + "components.Settings.Notifications.emailsender": "Adresa email pošiljaoca", + "components.Settings.Notifications.discordsettingssaved": "Discord notifikacija uspešno sačuvana!", + "components.Settings.Notifications.discordsettingsfailed": "Discord notifikacija za podešavanje nije uspešno sačuvana.", + "components.Settings.Notifications.authUser": "Korisničko ime", + "components.Settings.Notifications.authPass": "Šifra", + "components.Settings.Notifications.agentenabled": "Agent Ukljucen", + "components.Search.searchresults": "Rezultati pretrage", + "components.RequestModal.status": "Status", + "components.RequestModal.selectseason": "Odaberi sezone", + "components.RequestModal.seasonnumber": "Sezona {number}", + "components.RequestModal.season": "Sezona", + "components.RequestModal.requesttitle": "Zatraži {title}", + "components.RequestModal.requesting": "Zahtevanje…", + "components.RequestModal.requestfrom": "Trenutno postoji zahtev na čekanju od {username}", + "components.RequestModal.requestadmin": "Vaš zahtev će odmah biti prihvaćen.", + "components.RequestModal.requestSuccess": "poslat zahtev za {title} .", + "components.RequestModal.requestCancel": "Zahtev za {title} otkazan", + "components.RequestModal.request": "Zahtev", + "components.RequestModal.pendingrequest": "Zahtev za {title} na čekanju", + "components.RequestModal.numberofepisodes": "Broj Epizoda", + "components.RequestModal.notrequested": "Nije Zahtevano", + "components.RequestModal.extras": "Dodatno", + "components.RequestModal.close": "Zatvori", + "components.RequestModal.cancelrequest": "Ovo će poništiti vaš zahtev. Da li ste sigurni da želite da otkažete?", + "components.RequestModal.cancelling": "Otkazivanje…", + "components.RequestModal.cancel": "Otkaži Zahtev", + "components.RequestList.status": "Status", + "components.RequestList.requests": "Zahtevi", + "components.RequestList.requestedAt": "Zahtevano", + "components.RequestList.previous": "Prethodni", + "components.RequestList.next": "Sledeći", + "components.RequestList.modifiedBy": "Zadnji put modifikovao", + "components.RequestList.RequestItem.seasons": "Sezone", + "components.RequestList.RequestItem.requestedby": "Zahtevao {username}", + "components.RequestList.RequestItem.notavailable": "Nije dostupno", + "components.RequestCard.seasons": "Sezone", + "components.RequestCard.requestedby": "Zahtevao {username}", + "components.RequestCard.all": "Sve", + "components.RequestBlock.seasons": "Sezone", + "components.PlexLoginButton.loginwithplex": "Prijavljivanje sa Plexom", + "components.PlexLoginButton.loggingin": "Prijavljivanje…", + "components.PlexLoginButton.loading": "Učitavanje…", + "components.PersonDetails.nobiography": "Biografija nije dostupna.", + "components.PersonDetails.ascharacter": "kao {character}", + "components.PersonDetails.appearsin": "Pojavljuje se u", + "components.MovieDetails.viewrequest": "Pogledaj Zahtev", + "components.MovieDetails.userrating": "Korisnički rejting", + "components.MovieDetails.unavailable": "Nije dostupno", + "components.MovieDetails.studio": "Studio", + "components.MovieDetails.status": "Status", + "components.MovieDetails.similarsubtext": "Drugi filmovi slični {title}", + "components.MovieDetails.similar": "Slični Naslovi", + "components.MovieDetails.runtime": "{minutes} minuta", + "components.MovieDetails.revenue": "Prihod", + "components.MovieDetails.request": "Zahtev", + "components.MovieDetails.releasedate": "Datum Izlaska", + "components.MovieDetails.recommendationssubtext": "Ako vam se svidja {title}, možda vam se dopadne…", + "components.MovieDetails.recommendations": "Predlozi", + "components.MovieDetails.pending": "Na čekanju", + "components.MovieDetails.overviewunavailable": "Pregled nije dostupan", + "components.MovieDetails.overview": "Pregled", + "components.MovieDetails.originallanguage": "Originalni Jezik", + "components.MovieDetails.manageModalTitle": "Upravljaj Filmom", + "components.MovieDetails.manageModalRequests": "Zahtevi", + "components.MovieDetails.manageModalNoRequests": "Nema zahteva", + "components.MovieDetails.manageModalClearMediaWarning": "Ovo će ukloniti sve media podatke uključujuci i sve zahteve za ovu stvar nepovratno. Ako ova stvar postoji u Vašoj Plex biblioteci, informacija o mediji će biti kreirana pri sledećoj sinhronizaciji.", + "components.MovieDetails.manageModalClearMedia": "Očisti sve media podatke", + "components.MovieDetails.cast": "Postava", + "components.MovieDetails.cancelrequest": "Otkaži Zahtev", + "components.MovieDetails.budget": "Budžet", + "components.MovieDetails.available": "Dostupno", + "components.MovieDetails.approve": "Odobri", + "components.MovieDetails.MovieCast.fullcast": "Kompletna Glumačka Postava", + "components.Login.signinplex": "Prijavite se da bi ste nastavili", + "components.Layout.alphawarning": "Ovo je softver u ALPHA stanju. Skoro sve je nestabilno. Molimo Vas prijavite sve probleme na Overseer GitHub stranici!", + "components.Layout.UserDropdown.signout": "Odjava", + "components.Layout.Sidebar.users": "Korisnici", + "components.Layout.Sidebar.settings": "Podešavanja", + "components.Layout.Sidebar.requests": "Zahtevi", + "components.Layout.SearchInput.searchPlaceholder": "Pretraži Filmove i Serije", + "components.Layout.LanguagePicker.changelanguage": "Promeni Jezik", + "components.Discover.upcomingmovies": "Predstojeći Filmovi", + "components.Discover.upcoming": "Predstojeći Filmovi", + "components.Discover.trending": "Popularno", + "components.Discover.recentrequests": "Nedavni Zahtevi", + "components.Discover.recentlyAdded": "Nedavno Dodati", + "components.Discover.populartv": "Popularne Serije", + "components.Discover.popularmovies": "Popularni Filmovi", + "components.Discover.nopending": "Nema zahteva na čekanju", + "components.Discover.discovertv": "Popularne Serije", + "components.Discover.discovermovies": "Popunarni Filmov" +} diff --git a/src/i18n/locale/sv.json b/src/i18n/locale/sv.json new file mode 100644 index 000000000..30b12e90e --- /dev/null +++ b/src/i18n/locale/sv.json @@ -0,0 +1,350 @@ +{ + "components.Setup.finishing": "Slutför…", + "components.Setup.finish": "Slutför konfiguration", + "components.Setup.continue": "Fortsätt", + "components.Setup.configureservices": "Konfigurera Tjänster", + "components.Setup.configureplex": "Konfigurera Plex", + "components.Settings.validationPortRequired": "Du måste ange en port", + "components.Settings.validationHostnameRequired": "Du måste ange hostname/IP", + "components.Settings.toastSettingsSuccess": "Inställningar sparade.", + "components.Settings.toastSettingsFailure": "Något gick fel när inställningarna skulle sparas.", + "components.Settings.toastApiKeySuccess": "Ny API-nyckel skapad!", + "components.Settings.toastApiKeyFailure": "Något gick fel vid skapandet av ny API-nyckel.", + "components.Settings.syncing": "Synkroniserar…", + "components.Settings.sync": "Synkronisera Plex Bibliotek", + "components.Settings.startscan": "Starta scanning", + "components.Settings.ssl": "SSL", + "components.Settings.sonarrsettings": "Sonarrinställningar", + "components.Settings.sonarrSettingsDescription": "Konfigurera anslutningen till Sonarr nedan. Du kan ha multipla Sonarr-servrar men enbart två aktiva som standard (en för standard HD-material och en för 4K-material). Administratörer kan åsidosätta vilken server som används för nya förfrågningar.", + "components.Settings.servernamePlaceholder": "Plex Servernamn", + "components.Settings.servername": "Servernamn (Anges automatiskt efter att du sparat)", + "components.Settings.saving": "Sparar…", + "components.Settings.save": "Spara ändringar", + "components.Settings.runnow": "Kör Nu", + "components.Settings.radarrsettings": "Radarrinställningar", + "components.Settings.radarrSettingsDescription": "Konfigurera anslutningen till Radarr nedan. Du kan ha multipla Radarr-servrar men enbart två aktiva som standard (en för standard HD-material och en för 4K-material). Administratörer kan åsidosätta vilken server som används för nya förfrågningar.", + "components.Settings.port": "Port", + "components.Settings.plexsettingsDescription": "Konfigurera inställningarna för din Plex-server. Overseerr använder din Plex-server för att scanna dina mediabibliotek på givna intervaller för att se vilka media som är tillgängliga.", + "components.Settings.plexsettings": "Plexinställningar", + "components.Settings.plexlibrariesDescription": "Mediabiblioteken Overseer scannar för titlar. Konfigurera och spara dina Plex anslutningsinställningar och klicka på knappen nedan utifall inga är listade.", + "components.Settings.plexlibraries": "Plex Bibliotek", + "components.Settings.notrunning": "Körs ej", + "components.Settings.notificationsettingsDescription": "Här kan du välja vilka typer av notifikationer som skall skickas och med vilken typ av tjänst.", + "components.Settings.notificationsettings": "Notifikationsinställningar", + "components.Settings.nodefaultdescription": "Minst en server måste markeras som standard före du kan göra förfrågningar.", + "components.Settings.nodefault": "Ingen standard-server är vald!", + "components.Settings.no4kimplemented": "(Standard 4K servrar är för tillfället inte implementerat)", + "components.Settings.nextexecution": "Nästa körning", + "components.Settings.menuServices": "Tjänster", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuNotifications": "Notifikationer", + "components.Settings.menuLogs": "Loggar", + "components.Settings.menuJobs": "Jobb", + "components.Settings.menuGeneralSettings": "Generella Inställningar", + "components.Settings.menuAbout": "Om", + "components.Settings.manualscanDescription": "Normalt körs denna var sjätte timme. Overseerr kommer kontrollera till Plex Servers \"senast tillagda\" oftare. Om detta är första gången du konfigurerar din Plex Server är det starkt rekommenderat att göra en manuell full scan av ditt mediabibliotek!", + "components.Settings.manualscan": "Manuell Biblioteksscan", + "components.Settings.librariesRemaining": "Kvarvarande Bibliotek: {count}", + "components.Settings.jobname": "Jobbnamn", + "components.Settings.hostname": "Hostname/IP", + "components.Settings.generalsettingsDescription": "Dessa inställningar avser konfiguration av Overseerr.", + "components.Settings.generalsettings": "Generella Inställningar", + "components.Settings.edit": "Ändra", + "components.Settings.deleteserverconfirm": "Är du säker på att du vill radera servern?", + "components.Settings.delete": "Radera", + "components.Settings.default4k": "Standard 4K", + "components.Settings.default": "Standard", + "components.Settings.currentlibrary": "Nuvarande Bibliotek: {name}", + "components.Settings.copied": "API-nyckel kopierad", + "components.Settings.cancelscan": "Avbryt scanning", + "components.Settings.applicationurl": "Applikations-URL", + "components.Settings.apikey": "API-nyckel", + "components.Settings.addsonarr": "Lägg till Sonarr Server", + "components.Settings.address": "Adress", + "components.Settings.addradarr": "Lägg till Radarr Server", + "components.Settings.activeProfile": "Aktiv Profil", + "components.Settings.SonarrModal.validationRootFolderRequired": "Du måste ange en root-mapp", + "components.Settings.SonarrModal.validationProfileRequired": "Du måste ange en profil", + "components.Settings.SonarrModal.validationPortRequired": "Du måste ange en port", + "components.Settings.SonarrModal.validationNameRequired": "Du måste ange ett servernamn", + "components.Settings.SonarrModal.validationHostnameRequired": "Du måste ange hostname/IP", + "components.Settings.SonarrModal.validationApiKeyRequired": "Du måste ange en API-nyckel", + "components.Settings.SonarrModal.toastRadarrTestFailure": "Anslutningen till Sonarr misslyckades", + "components.Settings.SonarrModal.toastRadarrTestSuccess": "Anslutningen till Sonarr lyckades!", + "components.Settings.SonarrModal.testing": "Testar…", + "components.Settings.SonarrModal.testFirstRootFolders": "Testa din anslutning för att ladda in root-mappar", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Testa din anslutning för att ladda in kvalitetsprofiler", + "components.Settings.SonarrModal.test": "Testa", + "components.Settings.SonarrModal.ssl": "SSL", + "components.Settings.SonarrModal.servernamePlaceholder": "En Sonarr Server", + "components.Settings.SonarrModal.servername": "Servernamn", + "components.Settings.SonarrModal.server4k": "4K Server", + "components.Settings.SonarrModal.selectRootFolder": "Välj en root-mapp", + "components.Settings.SonarrModal.selectQualityProfile": "Välj en kvalitetsprofil", + "components.Settings.SonarrModal.seasonfolders": "Säsongsmappar", + "components.Settings.SonarrModal.saving": "Sparar…", + "components.Settings.SonarrModal.save": "Spara ändringar", + "components.Settings.SonarrModal.rootfolder": "Root-mapp", + "components.Settings.SonarrModal.qualityprofile": "Kvalitetsprofiler", + "components.Settings.SonarrModal.port": "Port", + "components.Settings.SonarrModal.loadingrootfolders": "Laddar root-mappar…", + "components.Settings.SonarrModal.loadingprofiles": "Laddar kvalitetsprofiler…", + "components.Settings.SonarrModal.hostname": "Hostname/IP", + "components.Settings.SonarrModal.editsonarr": "Ändra Sonarr Server", + "components.Settings.SonarrModal.defaultserver": "Standard Server", + "components.Settings.SonarrModal.createsonarr": "Skapa ny Sonarr Server", + "components.Settings.SonarrModal.baseUrlPlaceholder": "Exempel: /sonarr", + "components.Settings.SonarrModal.baseUrl": "Bas-URL", + "components.Settings.SonarrModal.apiKeyPlaceholder": "Din Sonarr API-nyckel", + "components.Settings.SonarrModal.apiKey": "API-nyckel", + "components.Settings.SonarrModal.animerootfolder": "Anime Root-mapp", + "components.Settings.SonarrModal.animequalityprofile": "Anime Kvalitetsprofil", + "components.Settings.SonarrModal.add": "Lägg till Server", + "components.Settings.SettingsAbout.version": "Version", + "components.Settings.SettingsAbout.totalrequests": "Totalt antal förfrågningar", + "components.Settings.SettingsAbout.totalmedia": "Totalt antal mediaobjekt", + "components.Settings.SettingsAbout.overseerrinformation": "Information om Overseerr", + "components.Settings.SettingsAbout.githubdiscussions": "GitHub Diskussioner", + "components.Settings.SettingsAbout.gettingsupport": "Få Support", + "components.Settings.SettingsAbout.clickheretojoindiscord": "Klicka här för att gå med i vår Discord server.", + "components.Settings.RadarrModal.validationRootFolderRequired": "Du måste ange en root-mapp", + "components.Settings.RadarrModal.validationProfileRequired": "Du måste ange en profil", + "components.Settings.RadarrModal.validationPortRequired": "Du måste ange en port", + "components.Settings.RadarrModal.validationNameRequired": "Du måste ange ett servernamn", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Du måste välja minsta tillgänglighet", + "components.Settings.RadarrModal.validationHostnameRequired": "Du måste ange hostname/IP", + "components.Settings.RadarrModal.validationApiKeyRequired": "Du måste ange en API-nyckel", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "Anslutningen till Radarr lyckades!", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Misslyckades att ansluta till Radarr Server", + "components.Settings.RadarrModal.testing": "Testar…", + "components.Settings.RadarrModal.testFirstRootFolders": "Testa din anslutning för att ladda in root-mappar", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Testa din anslutning för att ladda in kvalitetsprofiler", + "components.Settings.RadarrModal.test": "Testa", + "components.Settings.RadarrModal.ssl": "SSL", + "components.Settings.RadarrModal.servernamePlaceholder": "En Radarr Server", + "components.Settings.RadarrModal.servername": "Servernamn", + "components.Settings.RadarrModal.server4k": "4K Server", + "components.Settings.RadarrModal.selectRootFolder": "Välj en root-mapp", + "components.Settings.RadarrModal.selectQualityProfile": "Välj en kvalitetsprofil", + "components.Settings.RadarrModal.selectMinimumAvailability": "Ange minsta tillgänglighet", + "components.Settings.RadarrModal.saving": "Sparar…", + "components.Settings.RadarrModal.save": "Spara ändringar", + "components.Settings.RadarrModal.rootfolder": "Root-mapp", + "components.Settings.RadarrModal.qualityprofile": "Kvalitetsprofiler", + "components.Settings.RadarrModal.port": "Port", + "components.Settings.RadarrModal.minimumAvailability": "Minsta tillgänglighet", + "components.Settings.RadarrModal.loadingrootfolders": "Laddar root-mappar…", + "components.Settings.RadarrModal.loadingprofiles": "Laddar kvalitetsprofiler…", + "components.Settings.RadarrModal.hostname": "Hostname/IP", + "components.Settings.RadarrModal.editradarr": "Ändra Radarr Server", + "components.Settings.RadarrModal.defaultserver": "Standard Server", + "components.Settings.RadarrModal.createradarr": "Skapa ny Radarr Server", + "components.Settings.RadarrModal.baseUrlPlaceholder": "Exempel: /radarr", + "components.Settings.RadarrModal.baseUrl": "Bas-URL", + "components.Settings.RadarrModal.apiKeyPlaceholder": "Din Radarr API-Nyckel", + "components.Settings.RadarrModal.apiKey": "API-Nyckel", + "components.Settings.RadarrModal.add": "Lägg till Server", + "components.Settings.Notifications.webhookUrlPlaceholder": "Serverinställningar -> Integrationer -> Webhooks", + "components.Settings.Notifications.webhookUrl": "Webhook-URL", + "components.Settings.Notifications.validationWebhookUrlRequired": "Du måste ange en webhook URL", + "components.Settings.Notifications.validationSmtpPortRequired": "Du måste ange en SMTP Port", + "components.Settings.Notifications.validationSmtpHostRequired": "Du måste ange en SMTP Server", + "components.Settings.Notifications.validationFromRequired": "Du måste ange en avsändaradress", + "components.Settings.Notifications.smtpPort": "SMTP Port", + "components.Settings.Notifications.smtpHost": "SMTP Server", + "components.Settings.Notifications.saving": "Sparar…", + "components.Settings.Notifications.save": "Spara ändringar", + "components.Settings.Notifications.enableSsl": "Aktivera SSL", + "components.Settings.Notifications.emailsettingssaved": "Notiferingsinställningar för e-post sparade!", + "components.Settings.Notifications.discordsettingsfailed": "Notifieringsinställningar för Discord misslyckades att sparas.", + "components.Settings.Notifications.emailsettingsfailed": "Notifieringsinställningar för e-post misslyckades att sparas.", + "components.Settings.Notifications.emailsender": "E-post avsändaradress", + "components.Settings.Notifications.discordsettingssaved": "Notiferingsinställningar för Discord sparade!", + "components.Settings.Notifications.authUser": "Användarnamn", + "components.Settings.Notifications.authPass": "Lösenord", + "components.Settings.Notifications.agentenabled": "Agent Aktiverad", + "components.Search.searchresults": "Sökresultat", + "components.RequestModal.status": "Status", + "components.RequestModal.selectseason": "Välj säsong(er)", + "components.RequestModal.seasonnumber": "Säsong {number}", + "components.RequestModal.season": "Säsong", + "components.RequestModal.requesttitle": "Begär {title}", + "components.RequestModal.requesting": "Skapar förfrågan…", + "components.RequestModal.requestfrom": "Det finns en väntande förfrågan från {username}", + "components.RequestModal.requestadmin": "Din förfrågan kommer bli godkänd omedelbart.", + "components.RequestModal.requestSuccess": "{title} begärd.", + "components.RequestModal.requestCancel": "Förfrågan för {title} avbruten", + "components.RequestModal.request": "Förfrågan", + "components.RequestModal.pendingrequest": "Väntande förfrågan för {title]", + "components.RequestModal.numberofepisodes": "Antal Avsnitt", + "components.RequestModal.notrequested": "Ej begärd", + "components.RequestModal.extras": "Extramaterial", + "components.RequestModal.close": "Stäng", + "components.RequestModal.cancelrequest": "Detta kommer ta bort din förfrågan. Är du säker på att du vill fortsätta?", + "components.RequestModal.cancelling": "Tar bort…", + "components.RequestModal.cancel": "Avbryt förfrågan", + "components.RequestList.status": "Status", + "components.RequestList.showingresults": "Visar {from} till {to} av {total} sökresultat", + "components.RequestList.requests": "Förfrågan", + "components.RequestList.requestedAt": "Begärd", + "components.RequestList.previous": "Föregående", + "components.RequestList.next": "Nästa", + "components.RequestList.modifiedBy": "Senast Ändrad Av", + "components.RequestList.mediaInfo": "Media Information", + "components.RequestList.RequestItem.seasons": "Säsonger", + "components.RequestList.RequestItem.requestedby": "Begärd av {username}", + "components.RequestList.RequestItem.notavailable": "N/A", + "components.RequestCard.seasons": "Säsonger", + "components.RequestCard.requestedby": "Begärd av {username}", + "components.RequestCard.all": "Alla", + "components.RequestBlock.seasons": "Säsonger", + "components.PlexLoginButton.loginwithplex": "Logga in med Plex", + "components.PlexLoginButton.loggingin": "Loggar in…", + "components.PlexLoginButton.loading": "Laddar…", + "components.PersonDetails.nobiography": "Ingen biografi tillgänglig.", + "components.PersonDetails.ascharacter": "som {character}", + "components.PersonDetails.appearsin": "Kan ses i", + "components.MovieDetails.viewrequest": "Visa förfrågan", + "components.MovieDetails.userrating": "Användarbetyg", + "components.MovieDetails.unavailable": "Otillgänglig", + "components.MovieDetails.studio": "Studio", + "components.MovieDetails.status": "Status", + "components.MovieDetails.similarsubtext": "Andra filmer som liknar {title}", + "components.MovieDetails.similar": "Liknande Titlar", + "components.MovieDetails.runtime": "{minutes} minuter", + "components.MovieDetails.revenue": "Inkomster", + "components.MovieDetails.request": "Förfrågan", + "components.MovieDetails.releasedate": "Utgivningsdatum", + "components.MovieDetails.recommendationssubtext": "Om du tycker om {title}, kanske du också tycker om…", + "components.MovieDetails.recommendations": "Rekommendationer", + "components.MovieDetails.pending": "Väntande", + "components.MovieDetails.overview": "Beskrivning", + "components.MovieDetails.overviewunavailable": "Beskrivning otillgänglig", + "components.MovieDetails.originallanguage": "Ursprungligt Språk", + "components.MovieDetails.manageModalTitle": "Hantera Film", + "components.MovieDetails.manageModalRequests": "Förfrågningar", + "components.MovieDetails.manageModalNoRequests": "Inga förfrågningar", + "components.MovieDetails.manageModalClearMediaWarning": "Detta kommer radera all media data inklusive förfrågningar för det här objektet och kan inte ångras. Om det här objektet finns i ditt Plex-bibliotek kommer media information att återskapas vid nästa synkronisering.", + "components.MovieDetails.manageModalClearMedia": "Rensa All Media Data", + "components.MovieDetails.decline": "Avböj", + "components.MovieDetails.cast": "Roller", + "components.MovieDetails.cancelrequest": "Avbryt begäran", + "components.MovieDetails.budget": "Budget", + "components.MovieDetails.available": "Tillgänglig", + "components.MovieDetails.approve": "Godkänn", + "components.MovieDetails.MovieCast.fullcast": "Rollista", + "components.Login.signinplex": "Logga in för att fortsätta", + "components.Layout.alphawarning": "Detta är ALPHA-mjukvara. Nästan allt riskerar att gå sönder/vara ostabilt. Vänligen rapportera problem till Overseerr GitHub!", + "components.Layout.UserDropdown.signout": "Logga ut", + "components.Layout.Sidebar.users": "Användare", + "components.Layout.Sidebar.settings": "Inställningar", + "components.Layout.Sidebar.requests": "Förfrågningar", + "components.Layout.Sidebar.dashboard": "Upptäck", + "components.Layout.SearchInput.searchPlaceholder": "Sök Filmer & TV-Serier", + "components.Layout.LanguagePicker.changelanguage": "Byt språk", + "components.Discover.upcomingmovies": "Kommande Filmer", + "components.Discover.upcoming": "Kommande Filmer", + "components.Discover.trending": "Trendande", + "components.Discover.recentrequests": "Senaste förfrågningar", + "components.Discover.recentlyAdded": "Nyligen tillagda", + "components.Discover.populartv": "Populära TV-Serier", + "components.Discover.popularmovies": "Populära Filmer", + "components.Discover.nopending": "Inga väntande förfrågningar", + "components.Discover.discovertv": "Populära TV-Serier", + "components.Discover.discovermovies": "Populära Filmer", + "components.TvDetails.approve": "Godkänn", + "components.TvDetails.anime": "Anime", + "components.TvDetails.TvCast.fullseriescast": "Rollista", + "components.TitleCard.tvshow": "TV-serier", + "components.TitleCard.movie": "Film", + "components.Slider.noresults": "Inga resultat", + "components.Setup.welcome": "Välkommen till Overseerr", + "components.Setup.tip": "Tips", + "components.Setup.syncingbackground": "Synkronisering kommer ske i bakgrunden. Du kan fortsätta med konfigurationen under tiden.", + "components.Setup.signinMessage": "Kom igång genom att logga in med ditt Plex-konto", + "components.UserEdit.email": "E-post", + "components.RequestModal.requestseasons": "Förfrågan {seasonCount} {seasonCount, plural, one {Season} other {Seasons}}", + "pages.somethingWentWrong": "{statusCode} - Något gick fel", + "pages.serviceUnavailable": "{statusCode} - Tjänsten är otillgänglig", + "pages.returnHome": "Gå tillbaka till startsidan", + "pages.pageNotFound": "404 - Sidan kunde ej hittas", + "pages.oops": "Ojsan", + "pages.internalServerError": "{statusCode} - Internt serverfel", + "i18n.unavailable": "Otillgänglig", + "i18n.tvshows": "TV-serier", + "i18n.processing": "Behandlar…", + "i18n.pending": "Väntande", + "i18n.partiallyavailable": "Delvis Tillgänglig", + "i18n.movies": "Filmer", + "i18n.deleting": "Raderar…", + "i18n.delete": "Radera", + "i18n.declined": "Avböjd", + "i18n.decline": "Avböj", + "i18n.cancel": "Avbryt", + "i18n.available": "Tillgänglig", + "i18n.approved": "Godkänd", + "i18n.approve": "Godkänn", + "components.UserList.usertype": "Användartyp", + "components.UserList.username": "Användarnamn", + "components.UserList.userlist": "Användarlista", + "components.UserList.userdeleteerror": "Något gick fel när användaren skulle tas bort", + "components.UserList.userdeleted": "Användare borttagen", + "components.UserList.user": "Användare", + "components.UserList.totalrequests": "Totalt antal förfrågningar", + "components.UserList.role": "Roll", + "components.UserList.plexuser": "Plexanvändare", + "components.UserList.lastupdated": "Senast uppdaterad", + "components.UserList.edit": "Redigera", + "components.UserList.deleteuser": "Ta bort användare", + "components.UserList.deleteconfirm": "Är du säker på att du vill ta bort användaren? All data för användaren kommer att raderas.", + "components.UserList.delete": "Radera", + "components.UserList.created": "Skapad", + "components.UserList.admin": "Administratör", + "components.UserEdit.voteDescription": "Ger behörighet att rösta på förfrågningar (röstning är inte implementerat ännu)", + "components.UserEdit.vote": "Rösta", + "components.UserEdit.usersaved": "Användare sparad", + "components.UserEdit.usersDescription": "Ger behörighet att hantera användare i Overseerr. Användare med denna behörighet kan ge eller ändra användare med administratörstillgång.", + "components.UserEdit.users": "Hantera användare", + "components.UserEdit.username": "Användarnamn", + "components.UserEdit.userfail": "Något gick fel när användaren skulle sparas.", + "components.UserEdit.settingsDescription": "Ger behörighet att ändra alla inställningar i Overseerr. En användare måste ha denna behörighet för att kunna ge den till andra.", + "components.UserEdit.settings": "Hantera Inställningar", + "components.UserEdit.saving": "Sparar…", + "components.UserEdit.save": "Spara", + "components.UserEdit.requestDescription": "Ge behörighet att skapa förfrågningar för filmer och TV-serier.", + "components.UserEdit.request": "Förfrågan", + "components.UserEdit.permissions": "Behörigheter", + "components.UserEdit.managerequestsDescription": "Ger behörighet att hantera förfrågningar i Overseerr. Detta gäller godkännande och nekande av förfrågningar.", + "components.UserEdit.managerequests": "Hantera förfrågningar", + "components.UserEdit.edituser": "Redigera användare", + "components.UserEdit.avatar": "Avatar", + "components.UserEdit.autoapproveDescription": "Automatiskt godkännande av samtliga förfrågningar skapade av denna användare.", + "components.UserEdit.autoapprove": "Automatiskt Godkännande", + "components.UserEdit.adminDescription": "Full administratörstillgång. Slipper alla behörighetskontroller.", + "components.UserEdit.admin": "Administratör", + "components.TvDetails.userrating": "Användarbetyg", + "components.TvDetails.unavailable": "Otillgänglig", + "components.TvDetails.status": "Status", + "components.TvDetails.similarsubtext": "Andra TV-serier som liknar {title}", + "components.TvDetails.similar": "Liknande TV-serier", + "components.TvDetails.showtype": "Visa Typ", + "components.TvDetails.requestmore": "Fler förfrågningar", + "components.TvDetails.request": "Förfrågan", + "components.TvDetails.recommendationssubtext": "Om du tycker om {title}, kanske du också tycker om…", + "components.TvDetails.recommendations": "Rekommendationer", + "components.TvDetails.pending": "Väntande", + "components.TvDetails.overviewunavailable": "Beskrivning otillgänglig", + "components.TvDetails.overview": "Beskrivning", + "components.TvDetails.originallanguage": "Ursprungligt Språk", + "components.TvDetails.network": "Nätverk", + "components.TvDetails.manageModalTitle": "Hantera TV-serier", + "components.TvDetails.manageModalRequests": "Förfrågningar", + "components.TvDetails.manageModalNoRequests": "Inga förfrågningar", + "components.TvDetails.manageModalClearMediaWarning": "Detta kommer radera all media data inklusive förfrågningar som finns för objektet. Detta går inte att ångra. Om objektet finns i ditt Plexbibliotek kommer media informationen att återskapas vid nästa synkronisering.", + "components.TvDetails.manageModalClearMedia": "Rensa All Media Data", + "components.TvDetails.declinerequests": "Avböj {requestCount} {requestCount, plural, one {Request} other {Requests}}", + "components.TvDetails.decline": "Avböj", + "components.TvDetails.cast": "Roller", + "components.TvDetails.cancelrequest": "Avbryt begäran", + "components.TvDetails.available": "Tillgänglig" +} diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 733eff793..974223d2c 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -31,6 +31,14 @@ const loadLocaleData = (locale: string): Promise => { return import('../i18n/locale/nl.json'); case 'es': return import('../i18n/locale/es.json'); + case 'it': + return import('../i18n/locale/it.json'); + case 'pt-BR': + return import('../i18n/locale/pt_BR.json'); + case 'sr': + return import('../i18n/locale/sr.json'); + case 'sv': + return import('../i18n/locale/sv.json'); default: return import('../i18n/locale/en.json'); } diff --git a/tailwind.config.js b/tailwind.config.js index 9793abc8d..01daf1bcb 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -8,6 +8,50 @@ module.exports = { fontFamily: { sans: ['Inter var', ...defaultTheme.fontFamily.sans], }, + typography: (theme) => ({ + DEFAULT: { + css: { + color: theme('colors.gray.300'), + a: { + color: theme('colors.indigo.500'), + '&:hover': { + color: theme('colors.indigo.400'), + }, + }, + + h1: { + color: theme('colors.gray.300'), + }, + h2: { + color: theme('colors.gray.300'), + }, + h3: { + color: theme('colors.gray.300'), + }, + h4: { + color: theme('colors.gray.300'), + }, + h5: { + color: theme('colors.gray.300'), + }, + h6: { + color: theme('colors.gray.300'), + }, + + strong: { + color: theme('colors.gray.400'), + }, + + code: { + color: theme('colors.gray.300'), + }, + + figcaption: { + color: theme('colors.gray.500'), + }, + }, + }, + }), }, }, variants: { diff --git a/yarn.lock b/yarn.lock index f2fc90782..bcf76484c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2076,6 +2076,13 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.165.tgz#74d55d947452e2de0742bad65270433b63a8c30f" integrity sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg== +"@types/mdast@^3.0.0", "@types/mdast@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" + integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== + dependencies: + "@types/unist" "*" + "@types/mime@*": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a" @@ -2215,6 +2222,11 @@ "@types/express" "*" "@types/serve-static" "*" +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + "@types/uuid@^8.3.0": version "8.3.0" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" @@ -3103,6 +3115,11 @@ babel-walk@3.0.0-canary-5: dependencies: "@babel/types" "^7.9.6" +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -3655,6 +3672,16 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + character-parser@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" @@ -3662,6 +3689,11 @@ character-parser@^2.2.0: dependencies: is-regex "^1.0.3" +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -5120,6 +5152,15 @@ dom-serializer@1.0.1: domhandler "^3.0.0" entities "^2.0.0" +dom-serializer@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" + integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + entities "^2.0.0" + dom-serializer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" @@ -5143,6 +5184,11 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== +domelementtype@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + domhandler@3.0.0, domhandler@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" @@ -5157,6 +5203,20 @@ domhandler@^2.3.0: dependencies: domelementtype "1" +domhandler@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" + integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== + dependencies: + domelementtype "^2.0.1" + +domhandler@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" + integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== + dependencies: + domelementtype "^2.1.0" + domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" @@ -5182,6 +5242,15 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" +domutils@^2.4.2: + version "2.4.4" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" + integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.0.1" + domhandler "^4.0.0" + dot-prop@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" @@ -5892,7 +5961,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -6802,6 +6871,16 @@ html-tags@^3.1.0: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== +html-to-react@^1.3.4: + version "1.4.5" + resolved "https://registry.yarnpkg.com/html-to-react/-/html-to-react-1.4.5.tgz#59091c11021d1ef315ef738460abb6a4a41fe1ce" + integrity sha512-KONZUDFPg5OodWaQu2ymfkDmU0JA7zB1iPfvyHehTmMUZnk0DS7/TyCMTzsLH6b4BvxX15g88qZCXFhJWktsmA== + dependencies: + domhandler "^3.3.0" + htmlparser2 "^5.0" + lodash.camelcase "^4.3.0" + ramda "^0.27.1" + html-to-text@6.0.0, html-to-text@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-6.0.0.tgz#8b48adb1b781a8378f374c5bb481864a169f59f4" @@ -6835,6 +6914,16 @@ htmlparser2@^3.9.1: inherits "^2.0.1" readable-stream "^3.1.1" +htmlparser2@^5.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" + integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.3.0" + domutils "^2.4.2" + entities "^2.0.0" + http-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -7212,6 +7301,19 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -7241,6 +7343,11 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-callable@^1.1.4, is-callable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" @@ -7298,6 +7405,11 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -7377,6 +7489,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + is-installed-globally@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" @@ -8209,6 +8326,11 @@ lodash._root@~3.0.0: resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" integrity sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI= +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + lodash.capitalize@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" @@ -8524,6 +8646,29 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mdast-add-list-metadata@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz#95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf" + integrity sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA== + dependencies: + unist-util-visit-parents "1.1.2" + +mdast-util-from-markdown@^0.8.0: + version "0.8.4" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz#2882100c1b9fc967d3f83806802f303666682d32" + integrity sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-string "^2.0.0" + micromark "~2.11.0" + parse-entities "^2.0.0" + unist-util-stringify-position "^2.0.0" + +mdast-util-to-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" + integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" @@ -8672,6 +8817,14 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= +micromark@~2.11.0: + version "2.11.2" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.2.tgz#e8b6a05f54697d2d3d27fc89600c6bc40dd05f35" + integrity sha512-IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ== + dependencies: + debug "^4.0.0" + parse-entities "^2.0.0" + micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -10054,6 +10207,18 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -11117,6 +11282,11 @@ qw@~1.0.1: resolved "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz#efbfdc740f9ad054304426acb183412cc8b996d4" integrity sha1-77/cdA+a0FQwRCassYNBLMi5ltQ= +ramda@^0.27.1: + version "0.27.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9" + integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw== + random-bytes@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" @@ -11209,11 +11379,27 @@ react-intl@^5.10.6: shallow-equal "^1.2.1" tslib "^2.0.1" -react-is@16.13.1, react-is@^16.7.0, react-is@^16.8.1: +react-is@16.13.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-markdown@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-5.0.3.tgz#41040ea7a9324b564b328fb81dd6c04f2a5373ac" + integrity sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w== + dependencies: + "@types/mdast" "^3.0.3" + "@types/unist" "^2.0.3" + html-to-react "^1.3.4" + mdast-add-list-metadata "1.0.1" + prop-types "^15.7.2" + react-is "^16.8.6" + remark-parse "^9.0.0" + unified "^9.0.0" + unist-util-visit "^2.0.0" + xtend "^4.0.1" + react-refresh@0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" @@ -11569,6 +11755,13 @@ regjsparser@^0.6.4: dependencies: jsesc "~0.5.0" +remark-parse@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" + integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw== + dependencies: + mdast-util-from-markdown "^0.8.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -13200,6 +13393,11 @@ triple-beam@^1.2.0, triple-beam@^1.3.0: resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + ts-node@^9.1.1: version "9.1.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" @@ -13422,6 +13620,18 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +unified@^9.0.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" + integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -13465,6 +13675,40 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +unist-util-is@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50" + integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA== + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-visit-parents@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" + integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q== + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" @@ -13704,6 +13948,24 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + vm-browserify@1.1.2, vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" @@ -14027,7 +14289,7 @@ xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= -xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==