1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge branch 'es6' into es6-migration-3

This commit is contained in:
dkanada 2020-06-28 04:40:43 +09:00 committed by GitHub
commit 8e35cceaf0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
110 changed files with 4577 additions and 1412 deletions

View file

@ -0,0 +1,63 @@
jobs:
- job: Build
displayName: 'Build'
strategy:
matrix:
Development:
BuildConfiguration: development
Production:
BuildConfiguration: production
Standalone:
BuildConfiguration: standalone
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
displayName: 'Install Node'
inputs:
versionSpec: '12.x'
- task: Cache@2
displayName: 'Check Cache'
inputs:
key: 'yarn | yarn.lock'
path: 'node_modules'
cacheHitVar: CACHE_RESTORED
- script: 'yarn install --frozen-lockfile'
displayName: 'Install Dependencies'
condition: ne(variables.CACHE_RESTORED, 'true')
- script: 'yarn build:development'
displayName: 'Build Development'
condition: eq(variables['BuildConfiguration'], 'development')
- script: 'yarn build:production'
displayName: 'Build Production'
condition: eq(variables['BuildConfiguration'], 'production')
- script: 'yarn build:standalone'
displayName: 'Build Standalone'
condition: eq(variables['BuildConfiguration'], 'standalone')
- script: 'test -d dist'
displayName: 'Check Build'
- script: 'mv dist jellyfin-web'
displayName: 'Rename Directory'
- task: ArchiveFiles@2
displayName: 'Archive Directory'
inputs:
rootFolderOrFile: 'jellyfin-web'
includeRootFolder: true
archiveFile: 'jellyfin-web-$(BuildConfiguration)'
- task: PublishPipelineArtifact@1
displayName: 'Publish Release'
inputs:
targetPath: '$(Build.SourcesDirectory)/jellyfin-web-$(BuildConfiguration).zip'
artifactName: 'jellyfin-web-$(BuildConfiguration)'

View file

@ -0,0 +1,29 @@
jobs:
- job: Lint
displayName: 'Lint'
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
displayName: 'Install Node'
inputs:
versionSpec: '12.x'
- task: Cache@2
displayName: 'Check Cache'
inputs:
key: 'yarn | yarn.lock'
path: 'node_modules'
cacheHitVar: CACHE_RESTORED
- script: 'yarn install --frozen-lockfile'
displayName: 'Install Dependencies'
condition: ne(variables.CACHE_RESTORED, 'true')
- script: 'yarn run lint --quiet'
displayName: 'Run ESLint'
- script: 'yarn run stylelint'
displayName: 'Run Stylelint'

View file

@ -0,0 +1,106 @@
jobs:
- job: BuildPackage
displayName: 'Build Packages'
strategy:
matrix:
CentOS:
BuildConfiguration: centos
Debian:
BuildConfiguration: debian
Fedora:
BuildConfiguration: fedora
Portable:
BuildConfiguration: portable
pool:
vmImage: 'ubuntu-latest'
steps:
- script: 'docker build -f deployment/Dockerfile.$(BuildConfiguration) -t jellyfin-web-$(BuildConfiguration) deployment'
displayName: 'Build Dockerfile'
condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), startsWith(variables['Build.SourceBranch'], 'refs/heads/master'))
- script: 'docker image ls -a && docker run -v $(pwd)/deployment/dist:/dist -v $(pwd):/jellyfin -e IS_UNSTABLE="yes" -e BUILD_ID=$(Build.BuildNumber) jellyfin-web-$(BuildConfiguration)'
displayName: 'Run Dockerfile (unstable)'
condition: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
- script: 'docker image ls -a && docker run -v $(pwd)/deployment/dist:/dist -v $(pwd):/jellyfin -e IS_UNSTABLE="no" -e BUILD_ID=$(Build.BuildNumber) jellyfin-web-$(BuildConfiguration)'
displayName: 'Run Dockerfile (stable)'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
- task: PublishPipelineArtifact@1
displayName: 'Publish Release'
condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), startsWith(variables['Build.SourceBranch'], 'refs/heads/master'))
inputs:
targetPath: '$(Build.SourcesDirectory)/deployment/dist'
artifactName: 'jellyfin-web-$(BuildConfiguration)'
- task: CopyFilesOverSSH@0
displayName: 'Upload artifacts to repository server'
condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), startsWith(variables['Build.SourceBranch'], 'refs/heads/master'))
inputs:
sshEndpoint: repository
sourceFolder: '$(Build.SourcesDirectory)/deployment/dist'
contents: '**'
targetFolder: '/srv/repository/incoming/azure/$(Build.BuildNumber)/$(BuildConfiguration)'
- job: BuildDocker
displayName: 'Build Docker'
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Docker@2
displayName: 'Push Unstable Image'
condition: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
inputs:
repository: 'jellyfin/jellyfin-web'
command: buildAndPush
buildContext: '.'
Dockerfile: 'deployment/Dockerfile.docker'
containerRegistry: Docker Hub
tags: |
unstable-$(Build.BuildNumber)
unstable
- task: Docker@2
displayName: 'Push Stable Image'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
inputs:
repository: 'jellyfin/jellyfin-web'
command: buildAndPush
buildContext: '.'
Dockerfile: 'deployment/Dockerfile.docker'
containerRegistry: Docker Hub
tags: |
stable-$(Build.BuildNumber)
stable
- job: CollectArtifacts
displayName: 'Collect Artifacts'
dependsOn:
- BuildPackage
- BuildDocker
condition: and(succeeded('BuildPackage'), succeeded('BuildDocker'))
pool:
vmImage: 'ubuntu-latest'
steps:
- task: SSH@0
displayName: 'Update Unstable Repository'
condition: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
inputs:
sshEndpoint: repository
runOptions: 'inline'
inline: 'sudo /srv/repository/collect-server.azure.sh /srv/repository/incoming/azure $(Build.BuildNumber) unstable'
- task: SSH@0
displayName: 'Update Stable Repository'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
inputs:
sshEndpoint: repository
runOptions: 'inline'
inline: 'sudo /srv/repository/collect-server.azure.sh /srv/repository/incoming/azure $(Build.BuildNumber)'

View file

@ -12,88 +12,6 @@ pr:
- '*' - '*'
jobs: jobs:
- job: Build - template: azure-pipelines-build.yml
displayName: 'Build' - template: azure-pipelines-lint.yml
- template: azure-pipelines-package.yml
strategy:
matrix:
Development:
BuildConfiguration: development
Production:
BuildConfiguration: production
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
displayName: 'Install Node'
inputs:
versionSpec: '12.x'
- task: Cache@2
displayName: 'Check Cache'
inputs:
key: 'yarn | yarn.lock'
path: 'node_modules'
cacheHitVar: CACHE_RESTORED
- script: 'yarn install --frozen-lockfile'
displayName: 'Install Dependencies'
condition: ne(variables.CACHE_RESTORED, 'true')
- script: 'yarn build:development'
displayName: 'Build Development'
condition: eq(variables['BuildConfiguration'], 'development')
- script: 'yarn build:production'
displayName: 'Build Production'
condition: eq(variables['BuildConfiguration'], 'production')
- script: 'test -d dist'
displayName: 'Check Build'
- script: 'mv dist jellyfin-web'
displayName: 'Rename Directory'
- task: ArchiveFiles@2
displayName: 'Archive Directory'
inputs:
rootFolderOrFile: 'jellyfin-web'
includeRootFolder: true
archiveFile: 'jellyfin-web-$(BuildConfiguration)'
- task: PublishPipelineArtifact@1
displayName: 'Publish Release'
inputs:
targetPath: '$(Build.SourcesDirectory)/jellyfin-web-$(BuildConfiguration).zip'
artifactName: 'jellyfin-web-$(BuildConfiguration)'
- job: Lint
displayName: 'Lint'
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
displayName: 'Install Node'
inputs:
versionSpec: '12.x'
- task: Cache@2
displayName: 'Check Cache'
inputs:
key: 'yarn | yarn.lock'
path: 'node_modules'
cacheHitVar: CACHE_RESTORED
- script: 'yarn install --frozen-lockfile'
displayName: 'Install Dependencies'
condition: ne(variables.CACHE_RESTORED, 'true')
- script: 'yarn run lint --quiet'
displayName: 'Run ESLint'
- script: 'yarn run stylelint'
displayName: 'Run Stylelint'

View file

@ -1,7 +1,9 @@
FROM centos:7 FROM centos:7
# Docker build arguments # Docker build arguments
ARG SOURCE_DIR=/jellyfin ARG SOURCE_DIR=/jellyfin
ARG ARTIFACT_DIR=/dist ARG ARTIFACT_DIR=/dist
# Docker run environment # Docker run environment
ENV SOURCE_DIR=/jellyfin ENV SOURCE_DIR=/jellyfin
ENV ARTIFACT_DIR=/dist ENV ARTIFACT_DIR=/dist
@ -9,19 +11,19 @@ ENV IS_DOCKER=YES
# Prepare CentOS environment # Prepare CentOS environment
RUN yum update -y \ RUN yum update -y \
&& yum install -y epel-release \ && yum install -y epel-release \
&& yum install -y @buildsys-build rpmdevtools git yum-plugins-core nodejs-yarn autoconf automake glibc-devel && yum install -y @buildsys-build rpmdevtools git yum-plugins-core nodejs-yarn autoconf automake glibc-devel
# Install recent NodeJS and Yarn # Install recent NodeJS and Yarn
RUN curl -fSsLo /etc/yum.repos.d/yarn.repo https://dl.yarnpkg.com/rpm/yarn.repo \ RUN curl -fSsLo /etc/yum.repos.d/yarn.repo https://dl.yarnpkg.com/rpm/yarn.repo \
&& rpm -i https://rpm.nodesource.com/pub_10.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm \ && rpm -i https://rpm.nodesource.com/pub_10.x/el/7/x86_64/nodesource-release-el7-1.noarch.rpm \
&& yum install -y yarn && yum install -y yarn
# Link to build script # Link to build script
RUN ln -sf ${SOURCE_DIR}/deployment/build.centos.all /build.sh RUN ln -sf ${SOURCE_DIR}/deployment/build.centos /build.sh
VOLUME ${SOURCE_DIR}/ VOLUME ${SOURCE_DIR}
VOLUME ${ARTIFACT_DIR}/ VOLUME ${ARTIFACT_DIR}
ENTRYPOINT ["/build.sh"] ENTRYPOINT ["/build.sh"]

View file

@ -1,7 +1,9 @@
FROM debian:10 FROM debian:10
# Docker build arguments # Docker build arguments
ARG SOURCE_DIR=/jellyfin ARG SOURCE_DIR=/jellyfin
ARG ARTIFACT_DIR=/dist ARG ARTIFACT_DIR=/dist
# Docker run environment # Docker run environment
ENV SOURCE_DIR=/jellyfin ENV SOURCE_DIR=/jellyfin
ENV ARTIFACT_DIR=/dist ENV ARTIFACT_DIR=/dist
@ -10,16 +12,16 @@ ENV IS_DOCKER=YES
# Prepare Debian build environment # Prepare Debian build environment
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y debhelper mmv npm git && apt-get install -y debhelper mmv npm git
# Prepare Yarn # Prepare Yarn
RUN npm install -g yarn RUN npm install -g yarn
# Link to build script # Link to build script
RUN ln -sf ${SOURCE_DIR}/deployment/build.debian.all /build.sh RUN ln -sf ${SOURCE_DIR}/deployment/build.debian /build.sh
VOLUME ${SOURCE_DIR}/ VOLUME ${SOURCE_DIR}
VOLUME ${ARTIFACT_DIR}/ VOLUME ${ARTIFACT_DIR}
ENTRYPOINT ["/build.sh"] ENTRYPOINT ["/build.sh"]

View file

@ -0,0 +1,11 @@
FROM node:alpine
ARG SOURCE_DIR=/src
ARG ARTIFACT_DIR=/jellyfin-web
RUN apk add autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python
WORKDIR ${SOURCE_DIR}
COPY . .
RUN yarn install && mv dist ${ARTIFACT_DIR}

View file

@ -1,7 +1,9 @@
FROM fedora:31 FROM fedora:31
# Docker build arguments # Docker build arguments
ARG SOURCE_DIR=/jellyfin ARG SOURCE_DIR=/jellyfin
ARG ARTIFACT_DIR=/dist ARG ARTIFACT_DIR=/dist
# Docker run environment # Docker run environment
ENV SOURCE_DIR=/jellyfin ENV SOURCE_DIR=/jellyfin
ENV ARTIFACT_DIR=/dist ENV ARTIFACT_DIR=/dist
@ -9,13 +11,13 @@ ENV IS_DOCKER=YES
# Prepare Fedora environment # Prepare Fedora environment
RUN dnf update -y \ RUN dnf update -y \
&& dnf install -y @buildsys-build rpmdevtools git dnf-plugins-core nodejs-yarn autoconf automake glibc-devel && dnf install -y @buildsys-build rpmdevtools git dnf-plugins-core nodejs-yarn autoconf automake glibc-devel
# Link to build script # Link to build script
RUN ln -sf ${SOURCE_DIR}/deployment/build.fedora.all /build.sh RUN ln -sf ${SOURCE_DIR}/deployment/build.fedora /build.sh
VOLUME ${SOURCE_DIR}/ VOLUME ${SOURCE_DIR}
VOLUME ${ARTIFACT_DIR}/ VOLUME ${ARTIFACT_DIR}
ENTRYPOINT ["/build.sh"] ENTRYPOINT ["/build.sh"]

View file

@ -1,16 +1,17 @@
FROM debian:10 FROM debian:10
# Docker build arguments # Docker build arguments
ARG SOURCE_DIR=/jellyfin ARG SOURCE_DIR=/jellyfin
ARG ARTIFACT_DIR=/dist ARG ARTIFACT_DIR=/dist
# Docker run environment # Docker run environment
ENV SOURCE_DIR=/jellyfin ENV SOURCE_DIR=/jellyfin
ENV ARTIFACT_DIR=/dist ENV ARTIFACT_DIR=/dist
ENV DEB_BUILD_OPTIONS=noddebs
ENV IS_DOCKER=YES ENV IS_DOCKER=YES
# Prepare Debian build environment # Prepare Debian build environment
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y mmv npm git && apt-get install -y mmv npm git
# Prepare Yarn # Prepare Yarn
RUN npm install -g yarn RUN npm install -g yarn
@ -18,8 +19,8 @@ RUN npm install -g yarn
# Link to build script # Link to build script
RUN ln -sf ${SOURCE_DIR}/deployment/build.portable /build.sh RUN ln -sf ${SOURCE_DIR}/deployment/build.portable /build.sh
VOLUME ${SOURCE_DIR}/ VOLUME ${SOURCE_DIR}
VOLUME ${ARTIFACT_DIR}/ VOLUME ${ARTIFACT_DIR}
ENTRYPOINT ["/build.sh"] ENTRYPOINT ["/build.sh"]

41
deployment/build.centos Executable file
View file

@ -0,0 +1,41 @@
#!/bin/bash
set -o errexit
set -o xtrace
# move to source directory
pushd ${SOURCE_DIR}
cp -a yarn.lock /tmp/yarn.lock
# modify changelog to unstable configuration if IS_UNSTABLE
if [[ ${IS_UNSTABLE} == 'yes' ]]; then
pushd fedora
PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
sed -i "s/Version:.*/Version: ${BUILD_ID}/" jellyfin-web.spec
sed -i "/%changelog/q" jellyfin-web.spec
cat <<EOF >>jellyfin-web.spec
* $( LANG=C date '+%a %b %d %Y' ) Jellyfin Packaging Team <packaging@jellyfin.org>
- Jellyfin Web unstable build ${BUILD_ID} for merged PR #${PR_ID}
EOF
popd
fi
# build rpm
make -f fedora/Makefile srpm outdir=/root/rpmbuild/SRPMS
rpmbuild --rebuild -bb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm
# move the artifacts
mv /root/rpmbuild/RPMS/noarch/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm ${ARTIFACT_DIR}/
if [[ ${IS_DOCKER} == YES ]]; then
chown -Rc $(stat -c %u:%g ${ARTIFACT_DIR}) ${ARTIFACT_DIR}
fi
rm -f fedora/jellyfin*.tar.gz
cp -a /tmp/yarn.lock yarn.lock
popd

View file

@ -1,27 +0,0 @@
#!/bin/bash
#= CentOS 7 all .rpm
set -o errexit
set -o xtrace
# Move to source directory
pushd ${SOURCE_DIR}
cp -a yarn.lock /tmp/yarn.lock
# Build RPM
make -f fedora/Makefile srpm outdir=/root/rpmbuild/SRPMS
rpmbuild --rebuild -bb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm
# Move the artifacts out
mv /root/rpmbuild/RPMS/noarch/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm ${ARTIFACT_DIR}/
if [[ ${IS_DOCKER} == YES ]]; then
chown -Rc $(stat -c %u:%g ${ARTIFACT_DIR}) ${ARTIFACT_DIR}
fi
rm -f fedora/jellyfin*.tar.gz
cp -a /tmp/yarn.lock yarn.lock
popd

39
deployment/build.debian Executable file
View file

@ -0,0 +1,39 @@
#!/bin/bash
set -o errexit
set -o xtrace
# move to source directory
pushd ${SOURCE_DIR}
cp -a yarn.lock /tmp/yarn.lock
# modify changelog to unstable configuration if IS_UNSTABLE
if [[ ${IS_UNSTABLE} == 'yes' ]]; then
pushd debian
PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
cat <<EOF >changelog
jellyfin-web (${BUILD_ID}-unstable) unstable; urgency=medium
* Jellyfin Web unstable build ${BUILD_ID} for merged PR #${PR_ID}
-- Jellyfin Packaging Team <packaging@jellyfin.org> $( date --rfc-2822 )
EOF
popd
fi
# build deb
dpkg-buildpackage -us -uc --pre-clean --post-clean
mkdir -p ${ARTIFACT_DIR}
mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} ${ARTIFACT_DIR}
cp -a /tmp/yarn.lock yarn.lock
if [[ ${IS_DOCKER} == YES ]]; then
chown -Rc $(stat -c %u:%g ${ARTIFACT_DIR}) ${ARTIFACT_DIR}
fi
popd

View file

@ -1,25 +0,0 @@
#!/bin/bash
#= Debian/Ubuntu all .deb
set -o errexit
set -o xtrace
# Move to source directory
pushd ${SOURCE_DIR}
cp -a yarn.lock /tmp/yarn.lock
# Build DEB
dpkg-buildpackage -us -uc --pre-clean --post-clean
mkdir -p ${ARTIFACT_DIR}/
mv ../jellyfin*.{deb,dsc,tar.gz,buildinfo,changes} ${ARTIFACT_DIR}/
cp -a /tmp/yarn.lock yarn.lock
if [[ ${IS_DOCKER} == YES ]]; then
chown -Rc $(stat -c %u:%g ${ARTIFACT_DIR}) ${ARTIFACT_DIR}
fi
popd

41
deployment/build.fedora Executable file
View file

@ -0,0 +1,41 @@
#!/bin/bash
set -o errexit
set -o xtrace
# move to source directory
pushd ${SOURCE_DIR}
cp -a yarn.lock /tmp/yarn.lock
# modify changelog to unstable configuration if IS_UNSTABLE
if [[ ${IS_UNSTABLE} == 'yes' ]]; then
pushd fedora
PR_ID=$( git log --grep 'Merge pull request' --oneline --single-worktree --first-parent | head -1 | grep --color=none -Eo '#[0-9]+' | tr -d '#' )
sed -i "s/Version:.*/Version: ${BUILD_ID}/" jellyfin-web.spec
sed -i "/%changelog/q" jellyfin-web.spec
cat <<EOF >>jellyfin-web.spec
* $( LANG=C date '+%a %b %d %Y' ) Jellyfin Packaging Team <packaging@jellyfin.org>
- Jellyfin Web unstable build ${BUILD_ID} for merged PR #${PR_ID}
EOF
popd
fi
# build rpm
make -f fedora/Makefile srpm outdir=/root/rpmbuild/SRPMS
rpmbuild -rb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm
# move the artifacts
mv /root/rpmbuild/RPMS/noarch/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm ${ARTIFACT_DIR}
if [[ ${IS_DOCKER} == YES ]]; then
chown -Rc $(stat -c %u:%g ${ARTIFACT_DIR}) ${ARTIFACT_DIR}
fi
rm -f fedora/jellyfin*.tar.gz
cp -a /tmp/yarn.lock yarn.lock
popd

View file

@ -1,27 +0,0 @@
#!/bin/bash
#= Fedora 29+ all .rpm
set -o errexit
set -o xtrace
# Move to source directory
pushd ${SOURCE_DIR}
cp -a yarn.lock /tmp/yarn.lock
# Build RPM
make -f fedora/Makefile srpm outdir=/root/rpmbuild/SRPMS
rpmbuild -rb /root/rpmbuild/SRPMS/jellyfin-*.src.rpm
# Move the artifacts out
mv /root/rpmbuild/RPMS/noarch/jellyfin-*.rpm /root/rpmbuild/SRPMS/jellyfin-*.src.rpm ${ARTIFACT_DIR}/
if [[ ${IS_DOCKER} == YES ]]; then
chown -Rc $(stat -c %u:%g ${ARTIFACT_DIR}) ${ARTIFACT_DIR}
fi
rm -f fedora/jellyfin*.tar.gz
cp -a /tmp/yarn.lock yarn.lock
popd

View file

@ -1,25 +1,27 @@
#!/bin/bash #!/bin/bash
#= Portable .NET DLL .tar.gz
set -o errexit set -o errexit
set -o xtrace set -o xtrace
# Move to source directory # move to source directory
pushd ${SOURCE_DIR} pushd ${SOURCE_DIR}
# Get version # get version
version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )" if [[ ${IS_UNSTABLE} == 'yes' ]]; then
version="${BUILD_ID}"
else
version="$( grep "version:" ./build.yaml | sed -E 's/version: "([0-9\.]+.*)"/\1/' )"
fi
# Build archives # build archives
npx yarn install npx yarn install
mv dist/ jellyfin-web_${version} mv dist jellyfin-web_${version}
tar -czf jellyfin-web_${version}_portable.tar.gz jellyfin-web_${version} tar -czf jellyfin-web_${version}_portable.tar.gz jellyfin-web_${version}
rm -rf dist/ rm -rf dist
# Move the artifacts out # move the artifacts
mkdir -p ${ARTIFACT_DIR}/ mkdir -p ${ARTIFACT_DIR}
mv jellyfin[-_]*.tar.gz ${ARTIFACT_DIR}/ mv jellyfin[-_]*.tar.gz ${ARTIFACT_DIR}
if [[ ${IS_DOCKER} == YES ]]; then if [[ ${IS_DOCKER} == YES ]]; then
chown -Rc $(stat -c %u:%g ${ARTIFACT_DIR}) ${ARTIFACT_DIR} chown -Rc $(stat -c %u:%g ${ARTIFACT_DIR}) ${ARTIFACT_DIR}

View file

@ -12,7 +12,7 @@ Source0: jellyfin-web-%{version}.tar.gz
%if 0%{?centos} %if 0%{?centos}
BuildRequires: yarn BuildRequires: yarn
%else %else
BuildRequires nodejs-yarn BuildRequires: nodejs-yarn
%endif %endif
BuildArch: noarch BuildArch: noarch

View file

@ -16,6 +16,7 @@ const stream = require('webpack-stream');
const inject = require('gulp-inject'); const inject = require('gulp-inject');
const postcss = require('gulp-postcss'); const postcss = require('gulp-postcss');
const sass = require('gulp-sass'); const sass = require('gulp-sass');
const gulpif = require('gulp-if');
const lazypipe = require('lazypipe'); const lazypipe = require('lazypipe');
sass.compiler = require('node-sass'); sass.compiler = require('node-sass');
@ -67,7 +68,7 @@ function serve() {
} }
}); });
watch(options.apploader.query, apploader()); watch(options.apploader.query, apploader(true));
watch('src/bundle.js', webpack); watch('src/bundle.js', webpack);
@ -130,12 +131,18 @@ function javascript(query) {
.pipe(browserSync.stream()); .pipe(browserSync.stream());
} }
function apploader() { function apploader(standalone) {
return src(options.apploader.query, { base: './src/' }) function task() {
.pipe(concat('scripts/apploader.js')) return src(options.apploader.query, { base: './src/' })
.pipe(pipelineJavascript()) .pipe(gulpif(standalone, concat('scripts/apploader.js')))
.pipe(dest('dist/')) .pipe(pipelineJavascript())
.pipe(browserSync.stream()); .pipe(dest('dist/'))
.pipe(browserSync.stream());
}
task.displayName = 'apploader';
return task;
} }
function webpack() { function webpack() {
@ -183,5 +190,10 @@ function injectBundle() {
.pipe(browserSync.stream()); .pipe(browserSync.stream());
} }
exports.default = series(clean, parallel(javascript, apploader, webpack, css, html, images, copy), injectBundle); function build(standalone) {
exports.serve = series(exports.default, serve); return series(clean, parallel(javascript, apploader(standalone), webpack, css, html, images, copy));
}
exports.default = series(build(false), injectBundle);
exports.standalone = series(build(true), injectBundle);
exports.serve = series(exports.standalone, serve);

View file

@ -5,24 +5,24 @@
"repository": "https://github.com/jellyfin/jellyfin-web", "repository": "https://github.com/jellyfin/jellyfin-web",
"license": "GPL-2.0-or-later", "license": "GPL-2.0-or-later",
"devDependencies": { "devDependencies": {
"@babel/core": "^7.10.2", "@babel/core": "^7.10.3",
"@babel/plugin-proposal-class-properties": "^7.10.1", "@babel/plugin-proposal-class-properties": "^7.10.1",
"@babel/plugin-proposal-private-methods": "^7.10.1", "@babel/plugin-proposal-private-methods": "^7.10.1",
"@babel/plugin-transform-modules-amd": "^7.9.6", "@babel/plugin-transform-modules-amd": "^7.9.6",
"@babel/polyfill": "^7.8.7", "@babel/polyfill": "^7.8.7",
"@babel/preset-env": "^7.10.2", "@babel/preset-env": "^7.10.3",
"autoprefixer": "^9.8.0", "autoprefixer": "^9.8.2",
"babel-eslint": "^11.0.0-beta.2", "babel-eslint": "^11.0.0-beta.2",
"babel-loader": "^8.0.6", "babel-loader": "^8.0.6",
"browser-sync": "^2.26.7", "browser-sync": "^2.26.7",
"copy-webpack-plugin": "^5.1.1", "copy-webpack-plugin": "^5.1.1",
"css-loader": "^3.4.2", "css-loader": "^3.6.0",
"cssnano": "^4.1.10", "cssnano": "^4.1.10",
"del": "^5.1.0", "del": "^5.1.0",
"eslint": "^6.8.0", "eslint": "^6.8.0",
"eslint-plugin-compat": "^3.5.1", "eslint-plugin-compat": "^3.5.1",
"eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-import": "^2.21.1", "eslint-plugin-import": "^2.21.2",
"eslint-plugin-promise": "^4.2.1", "eslint-plugin-promise": "^4.2.1",
"file-loader": "^6.0.0", "file-loader": "^6.0.0",
"gulp": "^4.0.2", "gulp": "^4.0.2",
@ -44,7 +44,7 @@
"postcss-loader": "^3.0.0", "postcss-loader": "^3.0.0",
"postcss-preset-env": "^6.7.0", "postcss-preset-env": "^6.7.0",
"style-loader": "^1.1.3", "style-loader": "^1.1.3",
"stylelint": "^13.6.0", "stylelint": "^13.6.1",
"stylelint-config-rational-order": "^0.1.2", "stylelint-config-rational-order": "^0.1.2",
"stylelint-no-browser-hacks": "^1.2.1", "stylelint-no-browser-hacks": "^1.2.1",
"stylelint-order": "^4.1.0", "stylelint-order": "^4.1.0",
@ -60,7 +60,7 @@
"date-fns": "^2.14.0", "date-fns": "^2.14.0",
"document-register-element": "^1.14.3", "document-register-element": "^1.14.3",
"epubjs": "^0.3.85", "epubjs": "^0.3.85",
"fast-text-encoding": "^1.0.1", "fast-text-encoding": "^1.0.3",
"flv.js": "^1.5.0", "flv.js": "^1.5.0",
"headroom.js": "^0.11.0", "headroom.js": "^0.11.0",
"hls.js": "^0.13.1", "hls.js": "^0.13.1",
@ -69,17 +69,17 @@
"jellyfin-apiclient": "^1.2.2", "jellyfin-apiclient": "^1.2.2",
"jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto", "jellyfin-noto": "https://github.com/jellyfin/jellyfin-noto",
"jquery": "^3.5.1", "jquery": "^3.5.1",
"jstree": "^3.3.7", "jstree": "^3.3.10",
"libass-wasm": "https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-smarttv", "libass-wasm": "https://github.com/jellyfin/JavascriptSubtitlesOctopus#4.0.0-jf-smarttv",
"material-design-icons-iconfont": "^5.0.1", "material-design-icons-iconfont": "^5.0.1",
"native-promise-only": "^0.8.0-a", "native-promise-only": "^0.8.0-a",
"page": "^1.11.6", "page": "^1.11.6",
"query-string": "^6.13.0", "query-string": "^6.13.1",
"resize-observer-polyfill": "^1.5.1", "resize-observer-polyfill": "^1.5.1",
"screenfull": "^5.0.2", "screenfull": "^5.0.2",
"shaka-player": "^2.5.12", "shaka-player": "^3.0.1",
"sortablejs": "^1.10.2", "sortablejs": "^1.10.2",
"swiper": "^5.4.2", "swiper": "^5.4.5",
"webcomponents.js": "^0.7.24", "webcomponents.js": "^0.7.24",
"whatwg-fetch": "^3.0.0" "whatwg-fetch": "^3.0.0"
}, },
@ -97,9 +97,13 @@
"src/components/cardbuilder/chaptercardbuilder.js", "src/components/cardbuilder/chaptercardbuilder.js",
"src/components/cardbuilder/peoplecardbuilder.js", "src/components/cardbuilder/peoplecardbuilder.js",
"src/components/collectionEditor/collectionEditor.js", "src/components/collectionEditor/collectionEditor.js",
"src/components/dialog/dialog.js",
"src/components/dialogHelper/dialogHelper.js",
"src/components/channelMapper/channelMapper.js",
"src/components/images/imageLoader.js", "src/components/images/imageLoader.js",
"src/components/indicators/indicators.js", "src/components/indicators/indicators.js",
"src/components/lazyLoader/lazyLoaderIntersectionObserver.js", "src/components/lazyLoader/lazyLoaderIntersectionObserver.js",
"src/components/listview/listview.js",
"src/components/playback/brightnessosd.js", "src/components/playback/brightnessosd.js",
"src/components/playback/mediasession.js", "src/components/playback/mediasession.js",
"src/components/playback/nowplayinghelper.js", "src/components/playback/nowplayinghelper.js",
@ -113,11 +117,13 @@
"src/components/playmenu.js", "src/components/playmenu.js",
"src/components/sanatizefilename.js", "src/components/sanatizefilename.js",
"src/components/scrollManager.js", "src/components/scrollManager.js",
"src/components/shortcuts.js",
"src/components/syncPlay/groupSelectionMenu.js", "src/components/syncPlay/groupSelectionMenu.js",
"src/components/syncPlay/playbackPermissionManager.js", "src/components/syncPlay/playbackPermissionManager.js",
"src/components/syncPlay/syncPlayManager.js", "src/components/syncPlay/syncPlayManager.js",
"src/components/syncPlay/timeSyncManager.js", "src/components/syncPlay/timeSyncManager.js",
"src/controllers/dashboard/logs.js", "src/controllers/dashboard/logs.js",
"src/controllers/dashboard/plugins/repositories.js",
"src/plugins/bookPlayer/plugin.js", "src/plugins/bookPlayer/plugin.js",
"src/plugins/bookPlayer/tableOfContents.js", "src/plugins/bookPlayer/tableOfContents.js",
"src/plugins/photoPlayer/plugin.js", "src/plugins/photoPlayer/plugin.js",
@ -164,6 +170,7 @@
"prepare": "gulp --production", "prepare": "gulp --production",
"build:development": "gulp --development", "build:development": "gulp --development",
"build:production": "gulp --production", "build:production": "gulp --production",
"build:standalone": "gulp standalone --development",
"lint": "eslint \".\"", "lint": "eslint \".\"",
"stylelint": "stylelint \"src/**/*.css\"" "stylelint": "stylelint \"src/**/*.css\""
} }

View file

@ -799,9 +799,9 @@ div.itemDetailGalleryLink.defaultCardBackground {
} }
.detailImageProgressContainer { .detailImageProgressContainer {
position: absolute;
bottom: 0; bottom: 0;
width: 22.786458333333332vw; margin-top: -0.4vw;
width: 100%;
} }
.detailButton-text { .detailButton-text {

View file

@ -121,6 +121,11 @@ div[data-role=page] {
transform: translateY(-100%); transform: translateY(-100%);
} }
.drawerContent {
/* make sure the bottom of the drawer is visible when music is playing */
padding-bottom: 4em;
}
.force-scroll { .force-scroll {
overflow-y: scroll; overflow-y: scroll;
} }

View file

@ -31,7 +31,7 @@ define(['browser', 'dialog', 'globalize'], function (browser, dialog, globalize)
options.buttons = items; options.buttons = items;
return dialog(options).then(function (result) { return dialog.show(options).then(function (result) {
if (result === 'ok') { if (result === 'ok') {
return Promise.resolve(); return Promise.resolve();
} }

View file

@ -192,9 +192,14 @@ button::-moz-focus-inner {
/* Needed in case this is a button */ /* Needed in case this is a button */
display: block; display: block;
/* Needed in case this is a button */
margin: 0 !important; margin: 0 !important;
border: 0 !important;
padding: 0 !important;
cursor: pointer;
color: inherit;
width: 100%;
font-family: inherit;
font-size: inherit;
/* Needed in safari */ /* Needed in safari */
height: 100%; height: 100%;
@ -203,19 +208,12 @@ button::-moz-focus-inner {
contain: strict; contain: strict;
} }
.cardContent-button { .cardContent:not(.defaultCardBackground) {
border: 0 !important; background-color: transparent;
padding: 0 !important;
cursor: pointer;
color: inherit;
width: 100%;
vertical-align: middle;
font-family: inherit;
font-size: inherit;
} }
.cardContent-button:not(.defaultCardBackground) { .cardBox:not(.visualCardBox) .cardPadder {
background-color: transparent; background-color: #242424;
} }
.visualCardBox .cardContent { .visualCardBox .cardContent {
@ -223,7 +221,8 @@ button::-moz-focus-inner {
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
.cardContent-shadow { .cardContent-shadow,
.cardBox:not(.visualCardBox) .cardPadder {
box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37); box-shadow: 0 0.0725em 0.29em 0 rgba(0, 0, 0, 0.37);
} }

View file

@ -368,9 +368,7 @@ import 'programStyles';
let apiClient; let apiClient;
let lastServerId; let lastServerId;
for (let i = 0; i < items.length; i++) { for (const [i, item] of items.entries()) {
let item = items[i];
let serverId = item.ServerId || options.serverId; let serverId = item.ServerId || options.serverId;
if (serverId !== lastServerId) { if (serverId !== lastServerId) {
@ -541,7 +539,7 @@ import 'programStyles';
imgType = 'Backdrop'; imgType = 'Backdrop';
imgTag = item.ParentBackdropImageTags[0]; imgTag = item.ParentBackdropImageTags[0];
itemId = item.ParentBackdropItemId; itemId = item.ParentBackdropItemId;
} else if (item.ImageTags && item.ImageTags.Primary) { } else if (item.ImageTags && item.ImageTags.Primary && (item.Type !== 'Episode' || item.ChildCount !== 0)) {
imgType = 'Primary'; imgType = 'Primary';
imgTag = item.ImageTags.Primary; imgTag = item.ImageTags.Primary;
height = width && primaryImageAspectRatio ? Math.round(width / primaryImageAspectRatio) : null; height = width && primaryImageAspectRatio ? Math.round(width / primaryImageAspectRatio) : null;
@ -556,7 +554,10 @@ import 'programStyles';
coverImage = (Math.abs(primaryImageAspectRatio - uiAspect) / uiAspect) <= 0.2; coverImage = (Math.abs(primaryImageAspectRatio - uiAspect) / uiAspect) <= 0.2;
} }
} }
} else if (item.SeriesPrimaryImageTag) {
imgType = 'Primary';
imgTag = item.SeriesPrimaryImageTag;
itemId = item.SeriesId;
} else if (item.PrimaryImageTag) { } else if (item.PrimaryImageTag) {
imgType = 'Primary'; imgType = 'Primary';
imgTag = item.PrimaryImageTag; imgTag = item.PrimaryImageTag;
@ -577,10 +578,6 @@ import 'programStyles';
imgType = 'Primary'; imgType = 'Primary';
imgTag = item.ParentPrimaryImageTag; imgTag = item.ParentPrimaryImageTag;
itemId = item.ParentPrimaryImageItemId; itemId = item.ParentPrimaryImageItemId;
} else if (item.SeriesPrimaryImageTag) {
imgType = 'Primary';
imgTag = item.SeriesPrimaryImageTag;
itemId = item.SeriesId;
} else if (item.AlbumId && item.AlbumPrimaryImageTag) { } else if (item.AlbumId && item.AlbumPrimaryImageTag) {
imgType = 'Primary'; imgType = 'Primary';
imgTag = item.AlbumPrimaryImageTag; imgTag = item.AlbumPrimaryImageTag;
@ -1370,9 +1367,6 @@ import 'programStyles';
let cardScalableClose = ''; let cardScalableClose = '';
let cardContentClass = 'cardContent'; let cardContentClass = 'cardContent';
if (!options.cardLayout) {
cardContentClass += ' cardContent-shadow';
}
let blurhashAttrib = ''; let blurhashAttrib = '';
if (blurhash && blurhash.length > 0) { if (blurhash && blurhash.length > 0) {
@ -1380,21 +1374,20 @@ import 'programStyles';
} }
if (layoutManager.tv) { if (layoutManager.tv) {
// Don't use the IMG tag with safari because it puts a white border around it // Don't use the IMG tag with safari because it puts a white border around it
cardImageContainerOpen = imgUrl ? ('<div class="' + cardImageContainerClass + ' ' + cardContentClass + ' lazy" data-src="' + imgUrl + '" ' + blurhashAttrib + '>') : ('<div class="' + cardImageContainerClass + ' ' + cardContentClass + '">'); cardImageContainerOpen = imgUrl ? ('<div class="' + cardImageContainerClass + ' ' + cardContentClass + ' lazy" data-src="' + imgUrl + '" ' + blurhashAttrib + '>') : ('<div class="' + cardImageContainerClass + ' ' + cardContentClass + '">');
cardImageContainerClose = '</div>'; cardImageContainerClose = '</div>';
} else { } else {
// Don't use the IMG tag with safari because it puts a white border around it // Don't use the IMG tag with safari because it puts a white border around it
cardImageContainerOpen = imgUrl ? ('<button data-action="' + action + '" class="cardContent-button ' + cardImageContainerClass + ' ' + cardContentClass + ' itemAction lazy" data-src="' + imgUrl + '" ' + blurhashAttrib + '>') : ('<button data-action="' + action + '" class="cardContent-button ' + cardImageContainerClass + ' ' + cardContentClass + ' itemAction">'); cardImageContainerOpen = imgUrl ? ('<button data-action="' + action + '" class="' + cardImageContainerClass + ' ' + cardContentClass + ' itemAction lazy" data-src="' + imgUrl + '" ' + blurhashAttrib + '>') : ('<button data-action="' + action + '" class="' + cardImageContainerClass + ' ' + cardContentClass + ' itemAction">');
cardImageContainerClose = '</button>'; cardImageContainerClose = '</button>';
} }
let cardScalableClass = 'cardScalable'; let cardScalableClass = 'cardScalable';
cardImageContainerOpen = '<div class="' + cardBoxClass + '"><div class="' + cardScalableClass + '"><div class="cardPadder-' + shape + '"></div>' + cardImageContainerOpen; cardImageContainerOpen = '<div class="' + cardBoxClass + '"><div class="' + cardScalableClass + '"><div class="cardPadder cardPadder-' + shape + '"></div>' + cardImageContainerOpen;
cardBoxClose = '</div>'; cardBoxClose = '</div>';
cardScalableClose = '</div>'; cardScalableClose = '</div>';

View file

@ -1,10 +1,21 @@
define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'actionsheet', 'emby-input', 'paper-icon-button-light', 'emby-button', 'listViewStyle', 'material-icons', 'formDialogStyle'], function (dom, dialogHelper, loading, connectionManager, globalize, actionsheet) { import dom from 'dom';
'use strict'; import dialogHelper from 'dialogHelper';
import loading from 'loading';
import connectionManager from 'connectionManager';
import globalize from 'globalize';
import actionsheet from 'actionsheet';
import 'emby-input';
import 'paper-icon-button-light';
import 'emby-button';
import 'listViewStyle';
import 'material-icons';
import 'formDialogStyle';
return function (options) { export default class channelMapper {
constructor(options) {
function mapChannel(button, channelId, providerChannelId) { function mapChannel(button, channelId, providerChannelId) {
loading.show(); loading.show();
var providerId = options.providerId; const providerId = options.providerId;
connectionManager.getApiClient(options.serverId).ajax({ connectionManager.getApiClient(options.serverId).ajax({
type: 'POST', type: 'POST',
url: ApiClient.getUrl('LiveTv/ChannelMappings'), url: ApiClient.getUrl('LiveTv/ChannelMappings'),
@ -14,8 +25,8 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act
providerChannelId: providerChannelId providerChannelId: providerChannelId
}, },
dataType: 'json' dataType: 'json'
}).then(function (mapping) { }).then(mapping => {
var listItem = dom.parentWithClass(button, 'listItem'); const listItem = dom.parentWithClass(button, 'listItem');
button.setAttribute('data-providerid', mapping.ProviderChannelId); button.setAttribute('data-providerid', mapping.ProviderChannelId);
listItem.querySelector('.secondary').innerHTML = getMappingSecondaryName(mapping, currentMappingOptions.ProviderName); listItem.querySelector('.secondary').innerHTML = getMappingSecondaryName(mapping, currentMappingOptions.ProviderName);
loading.hide(); loading.hide();
@ -23,42 +34,42 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act
} }
function onChannelsElementClick(e) { function onChannelsElementClick(e) {
var btnMap = dom.parentWithClass(e.target, 'btnMap'); const btnMap = dom.parentWithClass(e.target, 'btnMap');
if (btnMap) { if (btnMap) {
var channelId = btnMap.getAttribute('data-id'); const channelId = btnMap.getAttribute('data-id');
var providerChannelId = btnMap.getAttribute('data-providerid'); const providerChannelId = btnMap.getAttribute('data-providerid');
var menuItems = currentMappingOptions.ProviderChannels.map(function (m) { const menuItems = currentMappingOptions.ProviderChannels.map(m => {
return { return {
name: m.Name, name: m.Name,
id: m.Id, id: m.Id,
selected: m.Id.toLowerCase() === providerChannelId.toLowerCase() selected: m.Id.toLowerCase() === providerChannelId.toLowerCase()
}; };
}).sort(function (a, b) { }).sort((a, b) => {
return a.name.localeCompare(b.name); return a.name.localeCompare(b.name);
}); });
actionsheet.show({ actionsheet.show({
positionTo: btnMap, positionTo: btnMap,
items: menuItems items: menuItems
}).then(function (newChannelId) { }).then(newChannelId => {
mapChannel(btnMap, channelId, newChannelId); mapChannel(btnMap, channelId, newChannelId);
}); });
} }
} }
function getChannelMappingOptions(serverId, providerId) { function getChannelMappingOptions(serverId, providerId) {
var apiClient = connectionManager.getApiClient(serverId); const apiClient = connectionManager.getApiClient(serverId);
return apiClient.getJSON(apiClient.getUrl('LiveTv/ChannelMappingOptions', { return apiClient.getJSON(apiClient.getUrl('LiveTv/ChannelMappingOptions', {
providerId: providerId providerId: providerId
})); }));
} }
function getMappingSecondaryName(mapping, providerName) { function getMappingSecondaryName(mapping, providerName) {
return (mapping.ProviderChannelName || '') + ' - ' + providerName; return `${mapping.ProviderChannelName || ''} - ${providerName}`;
} }
function getTunerChannelHtml(channel, providerName) { function getTunerChannelHtml(channel, providerName) {
var html = ''; let html = '';
html += '<div class="listItem">'; html += '<div class="listItem">';
html += '<span class="material-icons listItemIcon dvr"></span>'; html += '<span class="material-icons listItemIcon dvr"></span>';
html += '<div class="listItemBody two-line">'; html += '<div class="listItemBody two-line">';
@ -73,16 +84,16 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act
html += '</div>'; html += '</div>';
html += '</div>'; html += '</div>';
html += '<button class="btnMap autoSize" is="paper-icon-button-light" type="button" data-id="' + channel.Id + '" data-providerid="' + channel.ProviderChannelId + '"><span class="material-icons mode_edit"></span></button>'; html += `<button class="btnMap autoSize" is="paper-icon-button-light" type="button" data-id="${channel.Id}" data-providerid="${channel.ProviderChannelId}"><span class="material-icons mode_edit"></span></button>`;
return html += '</div>'; return html += '</div>';
} }
function getEditorHtml() { function getEditorHtml() {
var html = ''; let html = '';
html += '<div class="formDialogContent smoothScrollY">'; html += '<div class="formDialogContent smoothScrollY">';
html += '<div class="dialogContentInner dialog-content-centered">'; html += '<div class="dialogContentInner dialog-content-centered">';
html += '<form style="margin:auto;">'; html += '<form style="margin:auto;">';
html += '<h1>' + globalize.translate('HeaderChannels') + '</h1>'; html += `<h1>${globalize.translate('HeaderChannels')}</h1>`;
html += '<div class="channels paperList">'; html += '<div class="channels paperList">';
html += '</div>'; html += '</div>';
html += '</form>'; html += '</form>';
@ -91,30 +102,29 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act
} }
function initEditor(dlg, options) { function initEditor(dlg, options) {
getChannelMappingOptions(options.serverId, options.providerId).then(function (result) { getChannelMappingOptions(options.serverId, options.providerId).then(result => {
currentMappingOptions = result; currentMappingOptions = result;
var channelsElement = dlg.querySelector('.channels'); const channelsElement = dlg.querySelector('.channels');
channelsElement.innerHTML = result.TunerChannels.map(function (channel) { channelsElement.innerHTML = result.TunerChannels.map(channel => {
return getTunerChannelHtml(channel, result.ProviderName); return getTunerChannelHtml(channel, result.ProviderName);
}).join(''); }).join('');
channelsElement.addEventListener('click', onChannelsElementClick); channelsElement.addEventListener('click', onChannelsElementClick);
}); });
} }
var currentMappingOptions; let currentMappingOptions;
var self = this;
self.show = function () { this.show = () => {
var dialogOptions = { const dialogOptions = {
removeOnClose: true removeOnClose: true
}; };
dialogOptions.size = 'small'; dialogOptions.size = 'small';
var dlg = dialogHelper.createDialog(dialogOptions); const dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('formDialog'); dlg.classList.add('formDialog');
dlg.classList.add('ui-body-a'); dlg.classList.add('ui-body-a');
dlg.classList.add('background-theme-a'); dlg.classList.add('background-theme-a');
var html = ''; let html = '';
var title = globalize.translate('MapChannels'); const title = globalize.translate('MapChannels');
html += '<div class="formDialogHeader">'; html += '<div class="formDialogHeader">';
html += '<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><span class="material-icons arrow_back"></span></button>'; html += '<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><span class="material-icons arrow_back"></span></button>';
html += '<h3 class="formDialogHeaderTitle">'; html += '<h3 class="formDialogHeaderTitle">';
@ -124,13 +134,13 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act
html += getEditorHtml(); html += getEditorHtml();
dlg.innerHTML = html; dlg.innerHTML = html;
initEditor(dlg, options); initEditor(dlg, options);
dlg.querySelector('.btnCancel').addEventListener('click', function () { dlg.querySelector('.btnCancel').addEventListener('click', () => {
dialogHelper.close(dlg); dialogHelper.close(dlg);
}); });
return new Promise(function (resolve, reject) { return new Promise(resolve => {
dlg.addEventListener('close', resolve); dlg.addEventListener('close', resolve);
dialogHelper.open(dlg); dialogHelper.open(dlg);
}); });
}; };
}; }
}); }

View file

@ -53,7 +53,7 @@ define(['browser', 'dialog', 'globalize'], function(browser, dialog, globalize)
options.buttons = items; options.buttons = items;
return dialog(options).then(function (result) { return dialog.show(options).then(function (result) {
if (result === 'ok') { if (result === 'ok') {
return Promise.resolve(); return Promise.resolve();
} }

View file

@ -1,20 +1,31 @@
define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'formDialogStyle', 'flexStyles'], function (dialogHelper, dom, layoutManager, scrollHelper, globalize, require) { import dialogHelper from 'dialogHelper';
'use strict'; import dom from 'dom';
import layoutManager from 'layoutManager';
import scrollHelper from 'scrollHelper';
import globalize from 'globalize';
import 'material-icons';
import 'emby-button';
import 'paper-icon-button-light';
import 'emby-input';
import 'formDialogStyle';
import 'flexStyles';
/* eslint-disable indent */
function showDialog(options, template) { function showDialog(options, template) {
var dialogOptions = { const dialogOptions = {
removeOnClose: true, removeOnClose: true,
scrollY: false scrollY: false
}; };
var enableTvLayout = layoutManager.tv; const enableTvLayout = layoutManager.tv;
if (enableTvLayout) { if (enableTvLayout) {
dialogOptions.size = 'fullscreen'; dialogOptions.size = 'fullscreen';
} }
var dlg = dialogHelper.createDialog(dialogOptions); const dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('formDialog'); dlg.classList.add('formDialog');
@ -22,7 +33,7 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're
dlg.classList.add('align-items-center'); dlg.classList.add('align-items-center');
dlg.classList.add('justify-content-center'); dlg.classList.add('justify-content-center');
var formDialogContent = dlg.querySelector('.formDialogContent'); const formDialogContent = dlg.querySelector('.formDialogContent');
formDialogContent.classList.add('no-grow'); formDialogContent.classList.add('no-grow');
if (enableTvLayout) { if (enableTvLayout) {
@ -30,7 +41,7 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're
formDialogContent.style['max-height'] = '60%'; formDialogContent.style['max-height'] = '60%';
scrollHelper.centerFocus.on(formDialogContent, false); scrollHelper.centerFocus.on(formDialogContent, false);
} else { } else {
formDialogContent.style.maxWidth = (Math.min((options.buttons.length * 150) + 200, dom.getWindowSize().innerWidth - 50)) + 'px'; formDialogContent.style.maxWidth = `${Math.min((options.buttons.length * 150) + 200, dom.getWindowSize().innerWidth - 50)}px`;
dlg.classList.add('dialog-fullscreen-lowres'); dlg.classList.add('dialog-fullscreen-lowres');
} }
@ -44,27 +55,27 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're
dlg.querySelector('.formDialogHeaderTitle').classList.add('hide'); dlg.querySelector('.formDialogHeaderTitle').classList.add('hide');
} }
var displayText = options.html || options.text || ''; const displayText = options.html || options.text || '';
dlg.querySelector('.text').innerHTML = displayText; dlg.querySelector('.text').innerHTML = displayText;
if (!displayText) { if (!displayText) {
dlg.querySelector('.dialogContentInner').classList.add('hide'); dlg.querySelector('.dialogContentInner').classList.add('hide');
} }
var i; let i;
var length; let length;
var html = ''; let html = '';
var hasDescriptions = false; let hasDescriptions = false;
for (i = 0, length = options.buttons.length; i < length; i++) { for (i = 0, length = options.buttons.length; i < length; i++) {
var item = options.buttons[i]; const item = options.buttons[i];
var autoFocus = i === 0 ? ' autofocus' : ''; const autoFocus = i === 0 ? ' autofocus' : '';
var buttonClass = 'btnOption raised formDialogFooterItem formDialogFooterItem-autosize'; let buttonClass = 'btnOption raised formDialogFooterItem formDialogFooterItem-autosize';
if (item.type) { if (item.type) {
buttonClass += ' button-' + item.type; buttonClass += ` button-${item.type}`;
} }
if (item.description) { if (item.description) {
@ -75,10 +86,10 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're
buttonClass += ' formDialogFooterItem-vertical formDialogFooterItem-nomarginbottom'; buttonClass += ' formDialogFooterItem-vertical formDialogFooterItem-nomarginbottom';
} }
html += '<button is="emby-button" type="button" class="' + buttonClass + '" data-id="' + item.id + '"' + autoFocus + '>' + item.name + '</button>'; html += `<button is="emby-button" type="button" class="${buttonClass}" data-id="${item.id}"${autoFocus}>${item.name}</button>`;
if (item.description) { if (item.description) {
html += '<div class="formDialogFooterItem formDialogFooterItem-autosize fieldDescription" style="margin-top:.25em!important;margin-bottom:1.25em!important;">' + item.description + '</div>'; html += `<div class="formDialogFooterItem formDialogFooterItem-autosize fieldDescription" style="margin-top:.25em!important;margin-bottom:1.25em!important;">${item.description}</div>`;
} }
} }
@ -88,18 +99,18 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're
dlg.querySelector('.formDialogFooter').classList.add('formDialogFooter-vertical'); dlg.querySelector('.formDialogFooter').classList.add('formDialogFooter-vertical');
} }
var dialogResult; let dialogResult;
function onButtonClick() { function onButtonClick() {
dialogResult = this.getAttribute('data-id'); dialogResult = this.getAttribute('data-id');
dialogHelper.close(dlg); dialogHelper.close(dlg);
} }
var buttons = dlg.querySelectorAll('.btnOption'); const buttons = dlg.querySelectorAll('.btnOption');
for (i = 0, length = buttons.length; i < length; i++) { for (i = 0, length = buttons.length; i < length; i++) {
buttons[i].addEventListener('click', onButtonClick); buttons[i].addEventListener('click', onButtonClick);
} }
return dialogHelper.open(dlg).then(function () { return dialogHelper.open(dlg).then(() => {
if (enableTvLayout) { if (enableTvLayout) {
scrollHelper.centerFocus.off(dlg.querySelector('.formDialogContent'), false); scrollHelper.centerFocus.off(dlg.querySelector('.formDialogContent'), false);
@ -113,9 +124,9 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're
}); });
} }
return function (text, title) { export async function show(text, title) {
var options; let options;
if (typeof text === 'string') { if (typeof text === 'string') {
options = { options = {
title: title, title: title,
@ -125,10 +136,13 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're
options = text; options = text;
} }
return new Promise(function (resolve, reject) { const { default: template } = await import('text!./dialog.template.html');
require(['text!./dialog.template.html'], function (template) { return new Promise((resolve, reject) => {
showDialog(options, template).then(resolve, reject); showDialog(options, template).then(resolve, reject);
});
}); });
}; }
});
/* eslint-enable indent */
export default {
show: show
};

View file

@ -4,12 +4,8 @@
<div class="formDialogContent smoothScrollY"> <div class="formDialogContent smoothScrollY">
<div class="dialogContentInner dialog-content-centered" style="padding-top:1em;padding-bottom: 1em; text-align: center;"> <div class="dialogContentInner dialog-content-centered" style="padding-top:1em;padding-bottom: 1em; text-align: center;">
<div class="text"></div>
<div class="text">
</div>
</div> </div>
</div> </div>
<div class="formDialogFooter formDialogFooter-clear formDialogFooter-flex" style="padding-bottom: 1.5em;"> <div class="formDialogFooter formDialogFooter-clear formDialogFooter-flex" style="margin:1em"></div>
</div>

View file

@ -1,7 +1,15 @@
define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager', 'dom', 'css!./dialoghelper.css', 'scrollStyles'], function (appRouter, focusManager, browser, layoutManager, inputManager, dom) { import appRouter from 'appRouter';
'use strict'; import focusManager from 'focusManager';
import browser from 'browser';
import layoutManager from 'layoutManager';
import inputManager from 'inputManager';
import dom from 'dom';
import 'css!./dialoghelper.css';
import 'scrollStyles';
var globalOnOpenCallback; /* eslint-disable indent */
let globalOnOpenCallback;
function enableAnimation() { function enableAnimation() {
@ -25,7 +33,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
} }
function tryRemoveElement(elem) { function tryRemoveElement(elem) {
var parentNode = elem.parentNode; const parentNode = elem.parentNode;
if (parentNode) { if (parentNode) {
// Seeing crashes in edge webview // Seeing crashes in edge webview
@ -39,14 +47,14 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
function DialogHashHandler(dlg, hash, resolve) { function DialogHashHandler(dlg, hash, resolve) {
var self = this; const self = this;
self.originalUrl = window.location.href; self.originalUrl = window.location.href;
var activeElement = document.activeElement; const activeElement = document.activeElement;
var removeScrollLockOnClose = false; let removeScrollLockOnClose = false;
function onHashChange(e) { function onHashChange(e) {
var isBack = self.originalUrl === window.location.href; const isBack = self.originalUrl === window.location.href;
if (isBack || !isOpened(dlg)) { if (isBack || !isOpened(dlg)) {
window.removeEventListener('popstate', onHashChange); window.removeEventListener('popstate', onHashChange);
@ -84,7 +92,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
} }
if (!self.closedByBack && isHistoryEnabled(dlg)) { if (!self.closedByBack && isHistoryEnabled(dlg)) {
var state = history.state || {}; const state = history.state || {};
if (state.dialogId === hash) { if (state.dialogId === hash) {
history.back(); history.back();
} }
@ -97,7 +105,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
if (dlg.getAttribute('data-removeonclose') !== 'false') { if (dlg.getAttribute('data-removeonclose') !== 'false') {
removeCenterFocus(dlg); removeCenterFocus(dlg);
var dialogContainer = dlg.dialogContainer; const dialogContainer = dlg.dialogContainer;
if (dialogContainer) { if (dialogContainer) {
tryRemoveElement(dialogContainer); tryRemoveElement(dialogContainer);
dlg.dialogContainer = null; dlg.dialogContainer = null;
@ -108,7 +116,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
//resolve(); //resolve();
// if we just called history.back(), then use a timeout to allow the history events to fire first // if we just called history.back(), then use a timeout to allow the history events to fire first
setTimeout(function () { setTimeout(() => {
resolve({ resolve({
element: dlg, element: dlg,
closedByBack: self.closedByBack closedByBack: self.closedByBack
@ -118,7 +126,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
dlg.addEventListener('close', onDialogClosed); dlg.addEventListener('close', onDialogClosed);
var center = !dlg.classList.contains('dialog-fixedSize'); const center = !dlg.classList.contains('dialog-fixedSize');
if (center) { if (center) {
dlg.classList.add('centeredDialog'); dlg.classList.add('centeredDialog');
} }
@ -141,7 +149,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
animateDialogOpen(dlg); animateDialogOpen(dlg);
if (isHistoryEnabled(dlg)) { if (isHistoryEnabled(dlg)) {
appRouter.pushState({ dialogId: hash }, 'Dialog', '#' + hash); appRouter.pushState({ dialogId: hash }, 'Dialog', `#${hash}`);
window.addEventListener('popstate', onHashChange); window.addEventListener('popstate', onHashChange);
} else { } else {
@ -151,10 +159,10 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
function addBackdropOverlay(dlg) { function addBackdropOverlay(dlg) {
var backdrop = document.createElement('div'); const backdrop = document.createElement('div');
backdrop.classList.add('dialogBackdrop'); backdrop.classList.add('dialogBackdrop');
var backdropParent = dlg.dialogContainer || dlg; const backdropParent = dlg.dialogContainer || dlg;
backdropParent.parentNode.insertBefore(backdrop, backdropParent); backdropParent.parentNode.insertBefore(backdrop, backdropParent);
dlg.backdrop = backdrop; dlg.backdrop = backdrop;
@ -162,7 +170,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
void backdrop.offsetWidth; void backdrop.offsetWidth;
backdrop.classList.add('dialogBackdropOpened'); backdrop.classList.add('dialogBackdropOpened');
dom.addEventListener((dlg.dialogContainer || backdrop), 'click', function (e) { dom.addEventListener((dlg.dialogContainer || backdrop), 'click', e => {
if (e.target === dlg.dialogContainer) { if (e.target === dlg.dialogContainer) {
close(dlg); close(dlg);
} }
@ -170,7 +178,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
passive: true passive: true
}); });
dom.addEventListener((dlg.dialogContainer || backdrop), 'contextmenu', function (e) { dom.addEventListener((dlg.dialogContainer || backdrop), 'contextmenu', e => {
if (e.target === dlg.dialogContainer) { if (e.target === dlg.dialogContainer) {
// Close the application dialog menu // Close the application dialog menu
close(dlg); close(dlg);
@ -184,26 +192,26 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
return dlg.getAttribute('data-history') === 'true'; return dlg.getAttribute('data-history') === 'true';
} }
function open(dlg) { export function open(dlg) {
if (globalOnOpenCallback) { if (globalOnOpenCallback) {
globalOnOpenCallback(dlg); globalOnOpenCallback(dlg);
} }
var parent = dlg.parentNode; const parent = dlg.parentNode;
if (parent) { if (parent) {
parent.removeChild(dlg); parent.removeChild(dlg);
} }
var dialogContainer = document.createElement('div'); const dialogContainer = document.createElement('div');
dialogContainer.classList.add('dialogContainer'); dialogContainer.classList.add('dialogContainer');
dialogContainer.appendChild(dlg); dialogContainer.appendChild(dlg);
dlg.dialogContainer = dialogContainer; dlg.dialogContainer = dialogContainer;
document.body.appendChild(dialogContainer); document.body.appendChild(dialogContainer);
return new Promise(function (resolve, reject) { return new Promise((resolve, reject) => {
new DialogHashHandler(dlg, 'dlg' + new Date().getTime(), resolve); new DialogHashHandler(dlg, `dlg${new Date().getTime()}`, resolve);
}); });
} }
@ -213,7 +221,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
return !dlg.classList.contains('hide'); return !dlg.classList.contains('hide');
} }
function close(dlg) { export function close(dlg) {
if (isOpened(dlg)) { if (isOpened(dlg)) {
if (isHistoryEnabled(dlg)) { if (isHistoryEnabled(dlg)) {
@ -233,7 +241,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
cancelable: false cancelable: false
})); }));
var onAnimationFinish = function () { const onAnimationFinish = () => {
focusManager.popScope(dlg); focusManager.popScope(dlg);
dlg.classList.add('hide'); dlg.classList.add('hide');
@ -249,7 +257,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
function animateDialogOpen(dlg) { function animateDialogOpen(dlg) {
var onAnimationFinish = function () { const onAnimationFinish = () => {
focusManager.pushScope(dlg); focusManager.pushScope(dlg);
if (dlg.getAttribute('data-autofocus') === 'true') { if (dlg.getAttribute('data-autofocus') === 'true') {
@ -264,7 +272,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
if (enableAnimation()) { if (enableAnimation()) {
var onFinish = function () { const onFinish = () => {
dom.removeEventListener(dlg, dom.whichAnimationEvent(), onFinish, { dom.removeEventListener(dlg, dom.whichAnimationEvent(), onFinish, {
once: true once: true
}); });
@ -283,24 +291,24 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
if (enableAnimation()) { if (enableAnimation()) {
var animated = true; let animated = true;
switch (dlg.animationConfig.exit.name) { switch (dlg.animationConfig.exit.name) {
case 'fadeout': case 'fadeout':
dlg.style.animation = 'fadeout ' + dlg.animationConfig.exit.timing.duration + 'ms ease-out normal both'; dlg.style.animation = `fadeout ${dlg.animationConfig.exit.timing.duration}ms ease-out normal both`;
break; break;
case 'scaledown': case 'scaledown':
dlg.style.animation = 'scaledown ' + dlg.animationConfig.exit.timing.duration + 'ms ease-out normal both'; dlg.style.animation = `scaledown ${dlg.animationConfig.exit.timing.duration}ms ease-out normal both`;
break; break;
case 'slidedown': case 'slidedown':
dlg.style.animation = 'slidedown ' + dlg.animationConfig.exit.timing.duration + 'ms ease-out normal both'; dlg.style.animation = `slidedown ${dlg.animationConfig.exit.timing.duration}ms ease-out normal both`;
break; break;
default: default:
animated = false; animated = false;
break; break;
} }
var onFinish = function () { const onFinish = () => {
dom.removeEventListener(dlg, dom.whichAnimationEvent(), onFinish, { dom.removeEventListener(dlg, dom.whichAnimationEvent(), onFinish, {
once: true once: true
}); });
@ -318,7 +326,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
onAnimationFinish(); onAnimationFinish();
} }
var supportsOverscrollBehavior = 'overscroll-behavior-y' in document.body.style; const supportsOverscrollBehavior = 'overscroll-behavior-y' in document.body.style;
function shouldLockDocumentScroll(options) { function shouldLockDocumentScroll(options) {
@ -343,7 +351,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
function removeBackdrop(dlg) { function removeBackdrop(dlg) {
var backdrop = dlg.backdrop; const backdrop = dlg.backdrop;
if (!backdrop) { if (!backdrop) {
return; return;
@ -351,7 +359,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
dlg.backdrop = null; dlg.backdrop = null;
var onAnimationFinish = function () { const onAnimationFinish = () => {
tryRemoveElement(backdrop); tryRemoveElement(backdrop);
}; };
@ -368,20 +376,20 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
} }
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {
require(['scrollHelper'], function (scrollHelper) { import('scrollHelper').then(scrollHelper => {
var fn = on ? 'on' : 'off'; const fn = on ? 'on' : 'off';
scrollHelper.centerFocus[fn](elem, horiz); scrollHelper.centerFocus[fn](elem, horiz);
}); });
} }
function createDialog(options) { export function createDialog(options) {
options = options || {}; options = options || {};
// If there's no native dialog support, use a plain div // If there's no native dialog support, use a plain div
// Also not working well in samsung tizen browser, content inside not clickable // Also not working well in samsung tizen browser, content inside not clickable
// Just go ahead and always use a plain div because we're seeing issues overlaying absoltutely positioned content over a modal dialog // Just go ahead and always use a plain div because we're seeing issues overlaying absoltutely positioned content over a modal dialog
var dlg = document.createElement('div'); const dlg = document.createElement('div');
dlg.classList.add('focuscontainer'); dlg.classList.add('focuscontainer');
dlg.classList.add('hide'); dlg.classList.add('hide');
@ -406,17 +414,17 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
dlg.setAttribute('data-autofocus', 'true'); dlg.setAttribute('data-autofocus', 'true');
} }
var defaultEntryAnimation; let defaultEntryAnimation;
var defaultExitAnimation; let defaultExitAnimation;
defaultEntryAnimation = 'scaleup'; defaultEntryAnimation = 'scaleup';
defaultExitAnimation = 'scaledown'; defaultExitAnimation = 'scaledown';
var entryAnimation = options.entryAnimation || defaultEntryAnimation; const entryAnimation = options.entryAnimation || defaultEntryAnimation;
var exitAnimation = options.exitAnimation || defaultExitAnimation; const exitAnimation = options.exitAnimation || defaultExitAnimation;
// If it's not fullscreen then lower the default animation speed to make it open really fast // If it's not fullscreen then lower the default animation speed to make it open really fast
var entryAnimationDuration = options.entryAnimationDuration || (options.size !== 'fullscreen' ? 180 : 280); const entryAnimationDuration = options.entryAnimationDuration || (options.size !== 'fullscreen' ? 180 : 280);
var exitAnimationDuration = options.exitAnimationDuration || (options.size !== 'fullscreen' ? 120 : 220); const exitAnimationDuration = options.exitAnimationDuration || (options.size !== 'fullscreen' ? 120 : 220);
dlg.animationConfig = { dlg.animationConfig = {
// scale up // scale up
@ -461,7 +469,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
if (options.size) { if (options.size) {
dlg.classList.add('dialog-fixedSize'); dlg.classList.add('dialog-fixedSize');
dlg.classList.add('dialog-' + options.size); dlg.classList.add(`dialog-${options.size}`);
} }
if (enableAnimation()) { if (enableAnimation()) {
@ -469,16 +477,16 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
switch (dlg.animationConfig.entry.name) { switch (dlg.animationConfig.entry.name) {
case 'fadein': case 'fadein':
dlg.style.animation = 'fadein ' + entryAnimationDuration + 'ms ease-out normal'; dlg.style.animation = `fadein ${entryAnimationDuration}ms ease-out normal`;
break; break;
case 'scaleup': case 'scaleup':
dlg.style.animation = 'scaleup ' + entryAnimationDuration + 'ms ease-out normal both'; dlg.style.animation = `scaleup ${entryAnimationDuration}ms ease-out normal both`;
break; break;
case 'slideup': case 'slideup':
dlg.style.animation = 'slideup ' + entryAnimationDuration + 'ms ease-out normal'; dlg.style.animation = `slideup ${entryAnimationDuration}ms ease-out normal`;
break; break;
case 'slidedown': case 'slidedown':
dlg.style.animation = 'slidedown ' + entryAnimationDuration + 'ms ease-out normal'; dlg.style.animation = `slidedown ${entryAnimationDuration}ms ease-out normal`;
break; break;
default: default:
break; break;
@ -488,12 +496,15 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
return dlg; return dlg;
} }
return { export function setOnOpen(val) {
open: open, globalOnOpenCallback = val;
close: close, }
createDialog: createDialog,
setOnOpen: function (val) { /* eslint-enable indent */
globalOnOpenCallback = val;
} export default {
}; open: open,
}); close: close,
createDialog: createDialog,
setOnOpen: setOnOpen
};

View file

@ -55,7 +55,7 @@
/* Without this emby-checkbox is able to appear on top */ /* Without this emby-checkbox is able to appear on top */
z-index: 1; z-index: 1;
align-items: flex-end; align-items: flex-end;
justify-content: flex-end; justify-content: center;
flex-wrap: wrap; flex-wrap: wrap;
} }

View file

@ -168,7 +168,7 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la
} }
function getPortraitShape() { function getPortraitShape() {
return enableScrollX() ? 'autooverflow' : 'auto'; return enableScrollX() ? 'overflowPortrait' : 'portrait';
} }
function getLibraryButtonsHtml(items) { function getLibraryButtonsHtml(items) {
@ -254,7 +254,7 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la
return cardBuilder.getCardsHtml({ return cardBuilder.getCardsHtml({
items: items, items: items,
shape: shape, shape: shape,
preferThumb: viewType !== 'movies' && itemType !== 'Channel' && viewType !== 'music' ? 'auto' : null, preferThumb: viewType !== 'movies' && viewType !== 'tvshows' && itemType !== 'Channel' && viewType !== 'music' ? 'auto' : null,
showUnplayedIndicator: false, showUnplayedIndicator: false,
showChildCountIndicator: true, showChildCountIndicator: true,
context: 'home', context: 'home',

View file

@ -58,6 +58,7 @@ define(['dialogHelper', 'connectionManager', 'dom', 'loading', 'scrollHelper', '
var html = ['<img style="max-width:100%;max-height:100%;" src="', e.target.result, '" title="', escape(theFile.name), '"/>'].join(''); var html = ['<img style="max-width:100%;max-height:100%;" src="', e.target.result, '" title="', escape(theFile.name), '"/>'].join('');
page.querySelector('#imageOutput').innerHTML = html; page.querySelector('#imageOutput').innerHTML = html;
page.querySelector('#dropImageText').classList.add('hide');
page.querySelector('#fldUpload').classList.remove('hide'); page.querySelector('#fldUpload').classList.remove('hide');
}; };
})(file); })(file);

View file

@ -20,7 +20,7 @@
</div> </div>
<div> <div>
<div class="imageEditor-dropZone fieldDescription"> <div class="imageEditor-dropZone fieldDescription">
<div>${LabelDropImageHere}</div> <div id="dropImageText">${LabelDropImageHere}</div>
<output id="imageOutput" class="flex align-items-center justify-content-center" style="position: absolute;top:0;left:0;right:0;bottom:0;width:100%;"></output> <output id="imageOutput" class="flex align-items-center justify-content-center" style="position: absolute;top:0;left:0;right:0;bottom:0;width:100%;"></output>
<input type="file" accept="image/*" id="uploadImage" name="uploadImage" style="position: absolute;top:0;left:0;right:0;bottom:0;width:100%;opacity:0;" /> <input type="file" accept="image/*" id="uploadImage" name="uploadImage" style="position: absolute;top:0;left:0;right:0;bottom:0;width:100%;opacity:0;" />
</div> </div>

View file

@ -1,11 +1,11 @@
.lazy-image-fadein { .lazy-image-fadein {
opacity: 1; opacity: 1;
transition: opacity 0.7s; transition: opacity 0.5s;
} }
.lazy-image-fadein-fast { .lazy-image-fadein-fast {
opacity: 1; opacity: 1;
transition: opacity 0.2s; transition: opacity 0.1s;
} }
.lazy-hidden { .lazy-hidden {

View file

@ -403,7 +403,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'appRouter',
break; break;
case 'moremediainfo': case 'moremediainfo':
require(['itemMediaInfo'], function (itemMediaInfo) { require(['itemMediaInfo'], function (itemMediaInfo) {
itemMediaInfo.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id)); itemMediaInfo.show(itemId, serverId).then(getResolveFunction(resolve, id), getResolveFunction(resolve, id));
}); });
break; break;
case 'refresh': case 'refresh':

View file

@ -11,9 +11,9 @@
(entries) => { (entries) => {
entries.forEach(entry => { entries.forEach(entry => {
callback(entry); callback(entry);
}, });
{rootMargin: '50%'}); },
}); {rootMargin: '25%'});
this.observer = observer; this.observer = observer;
} }

View file

@ -1,5 +1,20 @@
define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutManager', 'globalize', 'datetime', 'apphost', 'css!./listview', 'emby-ratingbutton', 'emby-playstatebutton'], function (itemHelper, mediaInfo, indicators, connectionManager, layoutManager, globalize, datetime, appHost) { /* eslint-disable indent */
'use strict';
/**
* Module for display list view.
* @module components/listview/listview
*/
import itemHelper from 'itemHelper';
import mediaInfo from 'mediaInfo';
import indicators from 'indicators';
import connectionManager from 'connectionManager';
import layoutManager from 'layoutManager';
import globalize from 'globalize';
import datetime from 'datetime';
import 'css!./listview';
import 'emby-ratingbutton';
import 'emby-playstatebutton';
function getIndex(item, options) { function getIndex(item, options) {
@ -8,9 +23,9 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
return item.ParentIndexNumber == null ? '' : globalize.translate('ValueDiscNumber', item.ParentIndexNumber); return item.ParentIndexNumber == null ? '' : globalize.translate('ValueDiscNumber', item.ParentIndexNumber);
} }
var sortBy = (options.sortBy || '').toLowerCase(); const sortBy = (options.sortBy || '').toLowerCase();
var code; let code;
var name; let name;
if (sortBy.indexOf('sortname') === 0) { if (sortBy.indexOf('sortname') === 0) {
@ -69,10 +84,10 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
function getImageUrl(item, width) { function getImageUrl(item, width) {
var apiClient = connectionManager.getApiClient(item.ServerId); const apiClient = connectionManager.getApiClient(item.ServerId);
let itemId; let itemId;
var options = { const options = {
maxWidth: width * 2, maxWidth: width * 2,
type: 'Primary' type: 'Primary'
}; };
@ -102,8 +117,8 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
function getChannelImageUrl(item, width) { function getChannelImageUrl(item, width) {
var apiClient = connectionManager.getApiClient(item.ServerId); const apiClient = connectionManager.getApiClient(item.ServerId);
var options = { const options = {
maxWidth: width * 2, maxWidth: width * 2,
type: 'Primary' type: 'Primary'
}; };
@ -121,13 +136,13 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
function getTextLinesHtml(textlines, isLargeStyle) { function getTextLinesHtml(textlines, isLargeStyle) {
var html = ''; let html = '';
var largeTitleTagName = layoutManager.tv ? 'h2' : 'div'; const largeTitleTagName = layoutManager.tv ? 'h2' : 'div';
for (var i = 0, length = textlines.length; i < length; i++) { for (let i = 0, length = textlines.length; i < length; i++) {
var text = textlines[i]; const text = textlines[i];
if (!text) { if (!text) {
continue; continue;
@ -135,7 +150,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (i === 0) { if (i === 0) {
if (isLargeStyle) { if (isLargeStyle) {
html += '<' + largeTitleTagName + ' class="listItemBodyText">'; html += `<${largeTitleTagName} class="listItemBodyText">`;
} else { } else {
html += '<div class="listItemBodyText">'; html += '<div class="listItemBodyText">';
} }
@ -144,7 +159,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
} }
html += (textlines[i] || '&nbsp;'); html += (textlines[i] || '&nbsp;');
if (i === 0 && isLargeStyle) { if (i === 0 && isLargeStyle) {
html += '</' + largeTitleTagName + '>'; html += `</${largeTitleTagName}>`;
} else { } else {
html += '</div>'; html += '</div>';
} }
@ -155,13 +170,13 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
function getRightButtonsHtml(options) { function getRightButtonsHtml(options) {
var html = ''; let html = '';
for (var i = 0, length = options.rightButtons.length; i < length; i++) { for (let i = 0, length = options.rightButtons.length; i < length; i++) {
var button = options.rightButtons[i]; const button = options.rightButtons[i];
html += '<button is="paper-icon-button-light" class="listItemButton itemAction" data-action="custom" data-customaction="' + button.id + '" title="' + button.title + '"><span class="material-icons ' + button.icon + '"></span></button>'; html += `<button is="paper-icon-button-light" class="listItemButton itemAction" data-action="custom" data-customaction="${button.id}" title="${button.title}"><span class="material-icons ${button.icon}"></span></button>`;
} }
return html; return html;
@ -171,34 +186,34 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
return item.Id; return item.Id;
} }
function getListViewHtml(options) { export function getListViewHtml(options) {
var items = options.items; const items = options.items;
var groupTitle = ''; let groupTitle = '';
var action = options.action || 'link'; const action = options.action || 'link';
var isLargeStyle = options.imageSize === 'large'; const isLargeStyle = options.imageSize === 'large';
var enableOverview = options.enableOverview; const enableOverview = options.enableOverview;
var clickEntireItem = layoutManager.tv ? true : false; const clickEntireItem = layoutManager.tv ? true : false;
var outerTagName = clickEntireItem ? 'button' : 'div'; const outerTagName = clickEntireItem ? 'button' : 'div';
var enableSideMediaInfo = options.enableSideMediaInfo != null ? options.enableSideMediaInfo : true; const enableSideMediaInfo = options.enableSideMediaInfo != null ? options.enableSideMediaInfo : true;
var outerHtml = ''; let outerHtml = '';
var enableContentWrapper = options.enableOverview && !layoutManager.tv; const enableContentWrapper = options.enableOverview && !layoutManager.tv;
var containerAlbumArtistIds = (options.containerAlbumArtists || []).map(getId); const containerAlbumArtistIds = (options.containerAlbumArtists || []).map(getId);
for (var i = 0, length = items.length; i < length; i++) { for (let i = 0, length = items.length; i < length; i++) {
var item = items[i]; const item = items[i];
var html = ''; let html = '';
if (options.showIndex) { if (options.showIndex) {
var itemGroupTitle = getIndex(item, options); const itemGroupTitle = getIndex(item, options);
if (itemGroupTitle !== groupTitle) { if (itemGroupTitle !== groupTitle) {
@ -220,7 +235,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
} }
} }
var cssClass = 'listItem'; let cssClass = 'listItem';
if (options.border || (options.highlight !== false && !layoutManager.tv)) { if (options.border || (options.highlight !== false && !layoutManager.tv)) {
cssClass += ' listItem-border'; cssClass += ' listItem-border';
@ -234,28 +249,28 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
cssClass += ' listItem-focusscale'; cssClass += ' listItem-focusscale';
} }
var downloadWidth = 80; let downloadWidth = 80;
if (isLargeStyle) { if (isLargeStyle) {
cssClass += ' listItem-largeImage'; cssClass += ' listItem-largeImage';
downloadWidth = 500; downloadWidth = 500;
} }
var playlistItemId = item.PlaylistItemId ? (' data-playlistitemid="' + item.PlaylistItemId + '"') : ''; const playlistItemId = item.PlaylistItemId ? (` data-playlistitemid="${item.PlaylistItemId}"`) : '';
var positionTicksData = item.UserData && item.UserData.PlaybackPositionTicks ? (' data-positionticks="' + item.UserData.PlaybackPositionTicks + '"') : ''; const positionTicksData = item.UserData && item.UserData.PlaybackPositionTicks ? (` data-positionticks="${item.UserData.PlaybackPositionTicks}"`) : '';
var collectionIdData = options.collectionId ? (' data-collectionid="' + options.collectionId + '"') : ''; const collectionIdData = options.collectionId ? (` data-collectionid="${options.collectionId}"`) : '';
var playlistIdData = options.playlistId ? (' data-playlistid="' + options.playlistId + '"') : ''; const playlistIdData = options.playlistId ? (` data-playlistid="${options.playlistId}"`) : '';
var mediaTypeData = item.MediaType ? (' data-mediatype="' + item.MediaType + '"') : ''; const mediaTypeData = item.MediaType ? (` data-mediatype="${item.MediaType}"`) : '';
var collectionTypeData = item.CollectionType ? (' data-collectiontype="' + item.CollectionType + '"') : ''; const collectionTypeData = item.CollectionType ? (` data-collectiontype="${item.CollectionType}"`) : '';
var channelIdData = item.ChannelId ? (' data-channelid="' + item.ChannelId + '"') : ''; const channelIdData = item.ChannelId ? (` data-channelid="${item.ChannelId}"`) : '';
if (enableContentWrapper) { if (enableContentWrapper) {
cssClass += ' listItem-withContentWrapper'; cssClass += ' listItem-withContentWrapper';
} }
html += '<' + outerTagName + ' class="' + cssClass + '"' + playlistItemId + ' data-action="' + action + '" data-isfolder="' + item.IsFolder + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-type="' + item.Type + '"' + mediaTypeData + collectionTypeData + channelIdData + positionTicksData + collectionIdData + playlistIdData + '>'; html += `<${outerTagName} class="${cssClass}"${playlistItemId} data-action="${action}" data-isfolder="${item.IsFolder}" data-id="${item.Id}" data-serverid="${item.ServerId}" data-type="${item.Type}"${mediaTypeData}${collectionTypeData}${channelIdData}${positionTicksData}${collectionIdData}${playlistIdData}>`;
if (enableContentWrapper) { if (enableContentWrapper) {
@ -278,37 +293,37 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
imageClass += ' listItemImage-large-tv'; imageClass += ' listItemImage-large-tv';
} }
var playOnImageClick = options.imagePlayButton && !layoutManager.tv; const playOnImageClick = options.imagePlayButton && !layoutManager.tv;
if (!clickEntireItem) { if (!clickEntireItem) {
imageClass += ' itemAction'; imageClass += ' itemAction';
} }
var imageAction = playOnImageClick ? 'resume' : action; const imageAction = playOnImageClick ? 'resume' : action;
let blurhashAttrib = ''; let blurhashAttrib = '';
if (blurhash && blurhash.length > 0) { if (blurhash && blurhash.length > 0) {
blurhashAttrib = 'data-blurhash="' + blurhash + '"'; blurhashAttrib = `data-blurhash="${blurhash}"`;
} }
if (imgUrl) { if (imgUrl) {
html += '<div data-action="' + imageAction + '" class="' + imageClass + ' lazy" data-src="' + imgUrl + '" ' + blurhashAttrib + ' item-icon>'; html += `<div data-action="${imageAction}" class="${imageClass} lazy" data-src="${imgUrl}" ${blurhashAttrib} item-icon>`;
} else { } else {
html += '<div class="' + imageClass + '">'; html += `<div class="${imageClass}">`;
} }
var indicatorsHtml = ''; let indicatorsHtml = '';
indicatorsHtml += indicators.getPlayedIndicatorHtml(item); indicatorsHtml += indicators.getPlayedIndicatorHtml(item);
if (indicatorsHtml) { if (indicatorsHtml) {
html += '<div class="indicators listItemIndicators">' + indicatorsHtml + '</div>'; html += `<div class="indicators listItemIndicators">${indicatorsHtml}</div>`;
} }
if (playOnImageClick) { if (playOnImageClick) {
html += '<button is="paper-icon-button-light" class="listItemImageButton itemAction" data-action="resume"><span class="material-icons listItemImageButton-icon play_arrow"></span></button>'; html += '<button is="paper-icon-button-light" class="listItemImageButton itemAction" data-action="resume"><span class="material-icons listItemImageButton-icon play_arrow"></span></button>';
} }
var progressHtml = indicators.getProgressBarHtml(item, { const progressHtml = indicators.getProgressBarHtml(item, {
containerClass: 'listItemProgressBar' containerClass: 'listItemProgressBar'
}); });
@ -325,7 +340,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
html += '</div>'; html += '</div>';
} }
var textlines = []; const textlines = [];
if (options.showProgramDateTime) { if (options.showProgramDateTime) {
textlines.push(datetime.toLocaleString(datetime.parseISO8601Date(item.StartDate), { textlines.push(datetime.toLocaleString(datetime.parseISO8601Date(item.StartDate), {
@ -348,7 +363,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
} }
} }
var parentTitle = null; let parentTitle = null;
if (options.showParentTitle) { if (options.showParentTitle) {
if (item.Type === 'Episode') { if (item.Type === 'Episode') {
@ -358,12 +373,12 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
} }
} }
var displayName = itemHelper.getDisplayName(item, { let displayName = itemHelper.getDisplayName(item, {
includeParentInfo: options.includeParentInfoInTitle includeParentInfo: options.includeParentInfoInTitle
}); });
if (options.showIndexNumber && item.IndexNumber != null) { if (options.showIndexNumber && item.IndexNumber != null) {
displayName = item.IndexNumber + '. ' + displayName; displayName = `${item.IndexNumber}. ${displayName}`;
} }
if (options.showParentTitle && options.parentTitleWithTitle) { if (options.showParentTitle && options.parentTitleWithTitle) {
@ -394,14 +409,14 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
} }
} else { } else {
var showArtist = options.artist === true; let showArtist = options.artist === true;
var artistItems = item.ArtistItems; const artistItems = item.ArtistItems;
if (!showArtist && options.artist !== false) { if (!showArtist && options.artist !== false) {
if (!artistItems || !artistItems.length) { if (!artistItems || !artistItems.length) {
showArtist = true; showArtist = true;
} else if (artistItems.length > 1 || containerAlbumArtistIds.indexOf(artistItems[0].Id) === -1) { } else if (artistItems.length > 1 || !containerAlbumArtistIds.includes(artistItems[0].Id)) {
showArtist = true; showArtist = true;
} }
} }
@ -409,7 +424,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (showArtist) { if (showArtist) {
if (artistItems && item.Type !== 'MusicAlbum') { if (artistItems && item.Type !== 'MusicAlbum') {
textlines.push(artistItems.map(function (a) { textlines.push(artistItems.map(a => {
return a.Name; return a.Name;
}).join(', ')); }).join(', '));
} }
@ -432,7 +447,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
cssClass += ' listItemBody-noleftpadding'; cssClass += ' listItemBody-noleftpadding';
} }
html += '<div class="' + cssClass + '">'; html += `<div class="${cssClass}">`;
const moreIcon = 'more_vert'; const moreIcon = 'more_vert';
@ -441,14 +456,16 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (options.mediaInfo !== false) { if (options.mediaInfo !== false) {
if (!enableSideMediaInfo) { if (!enableSideMediaInfo) {
var mediaInfoClass = 'secondary listItemMediaInfo listItemBodyText'; const mediaInfoClass = 'secondary listItemMediaInfo listItemBodyText';
html += '<div class="' + mediaInfoClass + '">' + mediaInfo.getPrimaryMediaInfoHtml(item, { html += `<div class="${mediaInfoClass}">`;
html += mediaInfo.getPrimaryMediaInfoHtml(item, {
episodeTitle: false, episodeTitle: false,
originalAirDate: false, originalAirDate: false,
subtitles: false subtitles: false
}) + '</div>'; });
html += '</div>';
} }
} }
@ -462,7 +479,8 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (options.mediaInfo !== false) { if (options.mediaInfo !== false) {
if (enableSideMediaInfo) { if (enableSideMediaInfo) {
html += '<div class="secondary listItemMediaInfo">' + mediaInfo.getPrimaryMediaInfoHtml(item, { html += '<div class="secondary listItemMediaInfo">';
html += mediaInfo.getPrimaryMediaInfoHtml(item, {
year: false, year: false,
container: false, container: false,
@ -470,7 +488,8 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
criticRating: false, criticRating: false,
endsAt: false endsAt: false
}) + '</div>'; });
html += '</div>';
} }
} }
@ -487,7 +506,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
} }
if (options.moreButton !== false) { if (options.moreButton !== false) {
html += '<button is="paper-icon-button-light" class="listItemButton itemAction" data-action="menu"><span class="material-icons ' + moreIcon + '"></span></button>'; html += `<button is="paper-icon-button-light" class="listItemButton itemAction" data-action="menu"><span class="material-icons ${moreIcon}"></span></button>`;
} }
if (options.infoButton) { if (options.infoButton) {
@ -500,15 +519,15 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (options.enableUserDataButtons !== false) { if (options.enableUserDataButtons !== false) {
var userData = item.UserData || {}; const userData = item.UserData || {};
var likes = userData.Likes == null ? '' : userData.Likes; const likes = userData.Likes == null ? '' : userData.Likes;
if (itemHelper.canMarkPlayed(item)) { if (itemHelper.canMarkPlayed(item)) {
html += '<button is="emby-playstatebutton" type="button" class="listItemButton paper-icon-button-light" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-itemtype="' + item.Type + '" data-played="' + (userData.Played) + '"><span class="material-icons check"></span></button>'; html += `<button is="emby-playstatebutton" type="button" class="listItemButton paper-icon-button-light" data-id="${item.Id}" data-serverid="${item.ServerId}" data-itemtype="${item.Type}" data-played="${userData.Played}"><span class="material-icons check"></span></button>`;
} }
if (itemHelper.canRate(item)) { if (itemHelper.canRate(item)) {
html += '<button is="emby-ratingbutton" type="button" class="listItemButton paper-icon-button-light" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-itemtype="' + item.Type + '" data-likes="' + likes + '" data-isfavorite="' + (userData.IsFavorite) + '"><span class="material-icons favorite"></span></button>'; html += `<button is="emby-ratingbutton" type="button" class="listItemButton paper-icon-button-light" data-id="${item.Id}" data-serverid="${item.ServerId}" data-itemtype="${item.Type}" data-likes="${likes}" data-isfavorite="${userData.IsFavorite}"><span class="material-icons favorite"></span></button>`;
} }
} }
} }
@ -524,7 +543,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
} }
} }
html += '</' + outerTagName + '>'; html += `</${outerTagName}>`;
outerHtml += html; outerHtml += html;
} }
@ -532,7 +551,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
return outerHtml; return outerHtml;
} }
return { /* eslint-enable indent */
getListViewHtml: getListViewHtml export default {
}; getListViewHtml: getListViewHtml
}); };

View file

@ -1,92 +0,0 @@
define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'formDialogStyle', 'flexStyles'], function (loading, events, dialogHelper, dom, layoutManager, scrollHelper, globalize, require) {
'use strict';
function showDialog(instance, options, template) {
var dialogOptions = {
removeOnClose: true,
scrollY: false
};
var enableTvLayout = layoutManager.tv;
if (enableTvLayout) {
dialogOptions.size = 'fullscreen';
}
var dlg = dialogHelper.createDialog(dialogOptions);
var configuredButtons = [];
dlg.classList.add('formDialog');
dlg.innerHTML = globalize.translateHtml(template, 'core');
dlg.classList.add('align-items-center');
dlg.classList.add('justify-items-center');
var formDialogContent = dlg.querySelector('.formDialogContent');
formDialogContent.style['flex-grow'] = 'initial';
formDialogContent.style['max-width'] = '50%';
formDialogContent.style['max-height'] = '60%';
if (enableTvLayout) {
scrollHelper.centerFocus.on(formDialogContent, false);
dlg.querySelector('.formDialogHeader').style.marginTop = '15%';
} else {
dlg.classList.add('dialog-fullscreen-lowres');
}
//dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
// dialogHelper.close(dlg);
//});
dlg.querySelector('.formDialogHeaderTitle').innerHTML = options.title;
dlg.querySelector('.text').innerHTML = options.text;
instance.dlg = dlg;
return dialogHelper.open(dlg).then(function () {
if (enableTvLayout) {
scrollHelper.centerFocus.off(dlg.querySelector('.formDialogContent'), false);
}
loading.hide();
});
}
function LoadingDialog(options) {
this.options = options;
}
LoadingDialog.prototype.show = function () {
var instance = this;
loading.show();
return new Promise(function (resolve, reject) {
require(['text!./../dialog/dialog.template.html'], function (template) {
showDialog(instance, instance.options, template);
resolve();
});
});
};
LoadingDialog.prototype.setTitle = function (title) {
};
LoadingDialog.prototype.setText = function (text) {
};
LoadingDialog.prototype.hide = function () {
if (this.dlg) {
dialogHelper.close(this.dlg);
this.dlg = null;
}
};
LoadingDialog.prototype.destroy = function () {
this.dlg = null;
this.options = null;
};
return LoadingDialog;
});

View file

@ -308,8 +308,8 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
} }
}); });
context.removeEventListener('submit', onEditorClick); context.removeEventListener('click', onEditorClick);
context.addEventListener('submit', onEditorClick); context.addEventListener('click', onEditorClick);
var form = context.querySelector('form'); var form = context.querySelector('form');
form.removeEventListener('submit', onSubmit); form.removeEventListener('submit', onSubmit);

View file

@ -7,7 +7,6 @@
<div class="formDialogContent smoothScrollY" style="padding-top:2em;"> <div class="formDialogContent smoothScrollY" style="padding-top:2em;">
<form class="popupEditPersonForm dialogContentInner dialog-content-centered"> <form class="popupEditPersonForm dialogContentInner dialog-content-centered">
<div class="inputContainer"> <div class="inputContainer">
<input type="text" is="emby-input" class="txtPersonName" required="required" label="${LabelName}" /> <input type="text" is="emby-input" class="txtPersonName" required="required" label="${LabelName}" />
</div> </div>
@ -23,6 +22,7 @@
<option value="Writer">${Writer}</option> <option value="Writer">${Writer}</option>
</select> </select>
</div> </div>
<div class="inputContainer fldRole hide"> <div class="inputContainer fldRole hide">
<input is="emby-input" type="text" class="txtPersonRole" label="${LabelPersonRole}" /> <input is="emby-input" type="text" class="txtPersonRole" label="${LabelPersonRole}" />
<div class="fieldDescription">${LabelPersonRoleHelp}</div> <div class="fieldDescription">${LabelPersonRoleHelp}</div>
@ -33,6 +33,5 @@
<span>${Save}</span> <span>${Save}</span>
</button> </button>
</div> </div>
</form> </form>
</div> </div>

View file

@ -241,6 +241,15 @@ import connectionManager from 'connectionManager';
navigator.mediaSession.setActionHandler('seekforward', function () { navigator.mediaSession.setActionHandler('seekforward', function () {
execute('fastForward'); execute('fastForward');
}); });
/* eslint-disable-next-line compat/compat */
navigator.mediaSession.setActionHandler('seekto', function (object) {
let item = playbackManager.getPlayerState(currentPlayer).NowPlayingItem;
// Convert to ms
let duration = parseInt(item.RunTimeTicks ? (item.RunTimeTicks / 10000) : 0);
let wantedTime = object.seekTime * 1000;
playbackManager.seekPercent(wantedTime / duration * 100, currentPlayer);
});
} }
events.on(playbackManager, 'playerchange', function () { events.on(playbackManager, 'playerchange', function () {

View file

@ -2,12 +2,12 @@
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1">
<span class="material-icons arrow_back"></span> <span class="material-icons arrow_back"></span>
</button> </button>
<h3 class="formDialogHeaderTitle"></h3> <h3 class="formDialogHeaderTitle"></h3>
</div> </div>
<div class="formDialogContent smoothScrollY"> <div class="formDialogContent smoothScrollY">
<div class="dialogContentInner dialog-content-centered" style="padding-top:2em;"> <div class="dialogContentInner dialog-content-centered" style="padding-top:2em;">
<form> <form>
<div class="inputContainer"> <div class="inputContainer">
<input is="emby-input" type="text" id="txtInput" label="" /> <input is="emby-input" type="text" id="txtInput" label="" />
@ -19,7 +19,6 @@
<span class="submitText"></span> <span class="submitText"></span>
</button> </button>
</div> </div>
</form> </form>
</div> </div>
</div> </div>

View file

@ -196,7 +196,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
context.querySelector('.nowPlayingPageImage').classList.remove('nowPlayingPageImageAudio'); context.querySelector('.nowPlayingPageImage').classList.remove('nowPlayingPageImageAudio');
} }
} else { } else {
imgContainer.innerHTML = '<div class="nowPlayingPageImageContainerNoAlbum"><button data-action="link" class="cardContent-button cardImageContainer coveredImage ' + cardBuilder.getDefaultBackgroundClass(item.Name) + ' cardContent cardContent-shadow itemAction"><span class="cardImageIcon material-icons album"></span></button></div>'; imgContainer.innerHTML = '<div class="nowPlayingPageImageContainerNoAlbum"><button data-action="link" class="cardImageContainer coveredImage ' + cardBuilder.getDefaultBackgroundClass(item.Name) + ' cardContent cardContent-shadow itemAction"><span class="cardImageIcon material-icons album"></span></button></div>';
} }
} }

View file

@ -1,158 +0,0 @@
define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'formDialogStyle', 'flexStyles'], function (loading, events, dialogHelper, dom, layoutManager, scrollHelper, globalize, require) {
'use strict';
var currentApiClient;
var currentDlg;
var currentInstance;
function reloadPageWhenServerAvailable(retryCount) {
var apiClient = currentApiClient;
if (!apiClient) {
return;
}
// Don't use apiclient method because we don't want it reporting authentication under the old version
apiClient.getJSON(apiClient.getUrl('System/Info')).then(function (info) {
// If this is back to false, the restart completed
if (!info.IsShuttingDown) {
currentInstance.restarted = true;
dialogHelper.close(currentDlg);
} else {
retryReload(retryCount);
}
}, function () {
retryReload(retryCount);
});
}
function retryReload(retryCount) {
setTimeout(function () {
retryCount = retryCount || 0;
retryCount++;
if (retryCount < 150) {
reloadPageWhenServerAvailable(retryCount);
}
}, 500);
}
function startRestart(instance, apiClient, dlg) {
currentApiClient = apiClient;
currentDlg = dlg;
currentInstance = instance;
apiClient.restartServer().then(function () {
setTimeout(reloadPageWhenServerAvailable, 250);
});
}
function showDialog(instance, options, template) {
var dialogOptions = {
removeOnClose: true,
scrollY: false
};
var enableTvLayout = layoutManager.tv;
if (enableTvLayout) {
dialogOptions.size = 'fullscreen';
}
var dlg = dialogHelper.createDialog(dialogOptions);
var configuredButtons = [];
dlg.classList.add('formDialog');
dlg.innerHTML = globalize.translateHtml(template, 'core');
dlg.classList.add('align-items-center');
dlg.classList.add('justify-items-center');
var formDialogContent = dlg.querySelector('.formDialogContent');
formDialogContent.style['flex-grow'] = 'initial';
if (enableTvLayout) {
formDialogContent.style['max-width'] = '50%';
formDialogContent.style['max-height'] = '60%';
scrollHelper.centerFocus.on(formDialogContent, false);
} else {
formDialogContent.style.maxWidth = (Math.min((configuredButtons.length * 150) + 200, dom.getWindowSize().innerWidth - 50)) + 'px';
dlg.classList.add('dialog-fullscreen-lowres');
}
dlg.querySelector('.formDialogHeaderTitle').innerHTML = globalize.translate('HeaderRestartingServer');
dlg.querySelector('.text').innerHTML = globalize.translate('RestartPleaseWaitMessage');
var i;
var length;
var html = '';
for (i = 0, length = configuredButtons.length; i < length; i++) {
var item = configuredButtons[i];
var autoFocus = i === 0 ? ' autofocus' : '';
var buttonClass = 'btnOption raised formDialogFooterItem formDialogFooterItem-autosize';
if (item.type) {
buttonClass += ' button-' + item.type;
}
html += '<button is="emby-button" type="button" class="' + buttonClass + '" data-id="' + item.id + '"' + autoFocus + '>' + item.name + '</button>';
}
dlg.querySelector('.formDialogFooter').innerHTML = html;
function onButtonClick() {
dialogHelper.close(dlg);
}
var buttons = dlg.querySelectorAll('.btnOption');
for (i = 0, length = buttons.length; i < length; i++) {
buttons[i].addEventListener('click', onButtonClick);
}
var dlgPromise = dialogHelper.open(dlg);
startRestart(instance, options.apiClient, dlg);
return dlgPromise.then(function () {
if (enableTvLayout) {
scrollHelper.centerFocus.off(dlg.querySelector('.formDialogContent'), false);
}
instance.destroy();
loading.hide();
if (instance.restarted) {
events.trigger(instance, 'restarted');
}
});
}
function ServerRestartDialog(options) {
this.options = options;
}
ServerRestartDialog.prototype.show = function () {
var instance = this;
loading.show();
return new Promise(function (resolve, reject) {
require(['text!./../dialog/dialog.template.html'], function (template) {
showDialog(instance, instance.options, template).then(resolve, reject);
});
});
};
ServerRestartDialog.prototype.destroy = function () {
currentApiClient = null;
currentDlg = null;
currentInstance = null;
this.options = null;
};
return ServerRestartDialog;
});

View file

@ -1,18 +1,30 @@
define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'globalize', 'loading', 'dom', 'recordingHelper'], function (playbackManager, inputManager, connectionManager, appRouter, globalize, loading, dom, recordingHelper) { /* eslint-disable indent */
'use strict';
/**
* Module shortcuts.
* @module components/shortcuts
*/
import playbackManager from 'playbackManager';
import inputManager from 'inputManager';
import connectionManager from 'connectionManager';
import appRouter from 'appRouter';
import globalize from 'globalize';
import dom from 'dom';
import recordingHelper from 'recordingHelper';
function playAllFromHere(card, serverId, queue) { function playAllFromHere(card, serverId, queue) {
var parent = card.parentNode; const parent = card.parentNode;
var className = card.classList.length ? ('.' + card.classList[0]) : ''; const className = card.classList.length ? (`.${card.classList[0]}`) : '';
var cards = parent.querySelectorAll(className + '[data-id]'); const cards = parent.querySelectorAll(`${className}[data-id]`);
var ids = []; const ids = [];
var foundCard = false; let foundCard = false;
var startIndex; let startIndex;
for (var i = 0, length = cards.length; i < length; i++) { for (let i = 0, length = cards.length; i < length; i++) {
if (cards[i] === card) { if (cards[i] === card) {
foundCard = true; foundCard = true;
startIndex = i; startIndex = i;
@ -22,12 +34,12 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
} }
} }
var itemsContainer = dom.parentWithClass(card, 'itemsContainer'); const itemsContainer = dom.parentWithClass(card, 'itemsContainer');
if (itemsContainer && itemsContainer.fetchData) { if (itemsContainer && itemsContainer.fetchData) {
var queryOptions = queue ? { StartIndex: startIndex } : {}; const queryOptions = queue ? { StartIndex: startIndex } : {};
return itemsContainer.fetchData(queryOptions).then(function (result) { return itemsContainer.fetchData(queryOptions).then(result => {
if (queue) { if (queue) {
return playbackManager.queue({ return playbackManager.queue({
@ -64,7 +76,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
function showProgramDialog(item) { function showProgramDialog(item) {
require(['recordingCreator'], function (recordingCreator) { import('recordingCreator').then(({default:recordingCreator}) => {
recordingCreator.show(item.Id, item.ServerId); recordingCreator.show(item.Id, item.ServerId);
}); });
@ -73,11 +85,11 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
function getItem(button) { function getItem(button) {
button = dom.parentWithAttribute(button, 'data-id'); button = dom.parentWithAttribute(button, 'data-id');
var serverId = button.getAttribute('data-serverid'); const serverId = button.getAttribute('data-serverid');
var id = button.getAttribute('data-id'); const id = button.getAttribute('data-id');
var type = button.getAttribute('data-type'); const type = button.getAttribute('data-type');
var apiClient = connectionManager.getApiClient(serverId); const apiClient = connectionManager.getApiClient(serverId);
if (type === 'Timer') { if (type === 'Timer') {
return apiClient.getLiveTvTimer(id); return apiClient.getLiveTvTimer(id);
@ -99,19 +111,19 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
function showContextMenu(card, options) { function showContextMenu(card, options) {
getItem(card).then(function (item) { getItem(card).then(item => {
var playlistId = card.getAttribute('data-playlistid'); const playlistId = card.getAttribute('data-playlistid');
var collectionId = card.getAttribute('data-collectionid'); const collectionId = card.getAttribute('data-collectionid');
if (playlistId) { if (playlistId) {
var elem = dom.parentWithAttribute(card, 'data-playlistitemid'); const elem = dom.parentWithAttribute(card, 'data-playlistitemid');
item.PlaylistItemId = elem ? elem.getAttribute('data-playlistitemid') : null; item.PlaylistItemId = elem ? elem.getAttribute('data-playlistitemid') : null;
} }
require(['itemContextMenu'], function (itemContextMenu) { import('itemContextMenu').then(({default: itemContextMenu}) => {
connectionManager.getApiClient(item.ServerId).getCurrentUser().then(function (user) { connectionManager.getApiClient(item.ServerId).getCurrentUser().then(user => {
itemContextMenu.show(Object.assign({ itemContextMenu.show(Object.assign({
item: item, item: item,
play: true, play: true,
@ -122,9 +134,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
collectionId: collectionId, collectionId: collectionId,
user: user user: user
}, options || {})).then(function (result) { }, options || {})).then(result => {
var itemsContainer;
if (result.command === 'playallfromhere' || result.command === 'queueallfromhere') { if (result.command === 'playallfromhere' || result.command === 'queueallfromhere') {
executeAction(card, options.positionTo, result.command); executeAction(card, options.positionTo, result.command);
@ -157,9 +167,9 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
function showPlayMenu(card, target) { function showPlayMenu(card, target) {
var item = getItemInfoFromCard(card); const item = getItemInfoFromCard(card);
require(['playMenu'], function (playMenu) { import('playMenu').then(({default: playMenu}) => {
playMenu.show({ playMenu.show({
@ -170,7 +180,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
} }
function sendToast(text) { function sendToast(text) {
require(['toast'], function (toast) { import('toast').then(({default: toast}) => {
toast(text); toast(text);
}); });
} }
@ -179,19 +189,19 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
target = target || card; target = target || card;
var id = card.getAttribute('data-id'); let id = card.getAttribute('data-id');
if (!id) { if (!id) {
card = dom.parentWithAttribute(card, 'data-id'); card = dom.parentWithAttribute(card, 'data-id');
id = card.getAttribute('data-id'); id = card.getAttribute('data-id');
} }
var item = getItemInfoFromCard(card); const item = getItemInfoFromCard(card);
var serverId = item.ServerId; const serverId = item.ServerId;
var type = item.Type; const type = item.Type;
var playableItemId = type === 'Program' ? item.ChannelId : item.Id; const playableItemId = type === 'Program' ? item.ChannelId : item.Id;
if (item.MediaType === 'Photo' && action === 'link') { if (item.MediaType === 'Photo' && action === 'link') {
action = 'play'; action = 'play';
@ -213,7 +223,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
}); });
} else if (action === 'play' || action === 'resume') { } else if (action === 'play' || action === 'resume') {
var startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0'); const startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0');
playbackManager.play({ playbackManager.play({
ids: [playableItemId], ids: [playableItemId],
@ -244,7 +254,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
onRecordCommand(serverId, id, type, card.getAttribute('data-timerid'), card.getAttribute('data-seriestimerid')); onRecordCommand(serverId, id, type, card.getAttribute('data-timerid'), card.getAttribute('data-seriestimerid'));
} else if (action === 'menu') { } else if (action === 'menu') {
var options = target.getAttribute('data-playoptions') === 'false' ? const options = target.getAttribute('data-playoptions') === 'false' ?
{ {
shuffle: false, shuffle: false,
instantMix: false, instantMix: false,
@ -261,7 +271,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
} else if (action === 'playmenu') { } else if (action === 'playmenu') {
showPlayMenu(card, target); showPlayMenu(card, target);
} else if (action === 'edit') { } else if (action === 'edit') {
getItem(target).then(function (item) { getItem(target).then(item => {
editItem(item, serverId); editItem(item, serverId);
}); });
} else if (action === 'playtrailer') { } else if (action === 'playtrailer') {
@ -270,9 +280,9 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
getItem(target).then(addToPlaylist); getItem(target).then(addToPlaylist);
} else if (action === 'custom') { } else if (action === 'custom') {
var customAction = target.getAttribute('data-customaction'); const customAction = target.getAttribute('data-customaction');
card.dispatchEvent(new CustomEvent('action-' + customAction, { card.dispatchEvent(new CustomEvent(`action-${customAction}`, {
detail: { detail: {
playlistItemId: card.getAttribute('data-playlistitemid') playlistItemId: card.getAttribute('data-playlistitemid')
}, },
@ -283,7 +293,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
} }
function addToPlaylist(item) { function addToPlaylist(item) {
require(['playlistEditor'], function (playlistEditor) { import('playlistEditor').then(({default: playlistEditor}) => {
new playlistEditor().show({ new playlistEditor().show({
items: [item.Id], items: [item.Id],
@ -295,35 +305,35 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
function playTrailer(item) { function playTrailer(item) {
var apiClient = connectionManager.getApiClient(item.ServerId); const apiClient = connectionManager.getApiClient(item.ServerId);
apiClient.getLocalTrailers(apiClient.getCurrentUserId(), item.Id).then(function (trailers) { apiClient.getLocalTrailers(apiClient.getCurrentUserId(), item.Id).then(trailers => {
playbackManager.play({ items: trailers }); playbackManager.play({ items: trailers });
}); });
} }
function editItem(item, serverId) { function editItem(item, serverId) {
var apiClient = connectionManager.getApiClient(serverId); const apiClient = connectionManager.getApiClient(serverId);
return new Promise(function (resolve, reject) { return new Promise((resolve, reject) => {
var serverId = apiClient.serverInfo().Id; const serverId = apiClient.serverInfo().Id;
if (item.Type === 'Timer') { if (item.Type === 'Timer') {
if (item.ProgramId) { if (item.ProgramId) {
require(['recordingCreator'], function (recordingCreator) { import('recordingCreator').then(({default: recordingCreator}) => {
recordingCreator.show(item.ProgramId, serverId).then(resolve, reject); recordingCreator.show(item.ProgramId, serverId).then(resolve, reject);
}); });
} else { } else {
require(['recordingEditor'], function (recordingEditor) { import('recordingEditor').then(({default: recordingEditor}) => {
recordingEditor.show(item.Id, serverId).then(resolve, reject); recordingEditor.show(item.Id, serverId).then(resolve, reject);
}); });
} }
} else { } else {
require(['metadataEditor'], function (metadataEditor) { import('metadataEditor').then(({default: metadataEditor}) => {
metadataEditor.show(item.Id, serverId).then(resolve, reject); metadataEditor.show(item.Id, serverId).then(resolve, reject);
}); });
@ -335,19 +345,19 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
if (type === 'Program' || timerId || seriesTimerId) { if (type === 'Program' || timerId || seriesTimerId) {
var programId = type === 'Program' ? id : null; const programId = type === 'Program' ? id : null;
recordingHelper.toggleRecording(serverId, programId, timerId, seriesTimerId); recordingHelper.toggleRecording(serverId, programId, timerId, seriesTimerId);
} }
} }
function onClick(e) { export function onClick(e) {
var card = dom.parentWithClass(e.target, 'itemAction'); const card = dom.parentWithClass(e.target, 'itemAction');
if (card) { if (card) {
var actionElement = card; let actionElement = card;
var action = actionElement.getAttribute('data-action'); let action = actionElement.getAttribute('data-action');
if (!action) { if (!action) {
actionElement = dom.parentWithAttribute(actionElement, 'data-action'); actionElement = dom.parentWithAttribute(actionElement, 'data-action');
@ -368,12 +378,12 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
function onCommand(e) { function onCommand(e) {
var cmd = e.detail.command; const cmd = e.detail.command;
if (cmd === 'play' || cmd === 'resume' || cmd === 'record' || cmd === 'menu' || cmd === 'info') { if (cmd === 'play' || cmd === 'resume' || cmd === 'record' || cmd === 'menu' || cmd === 'info') {
var target = e.target; const target = e.target;
var card = dom.parentWithClass(target, 'itemAction') || dom.parentWithAttribute(target, 'data-id'); const card = dom.parentWithClass(target, 'itemAction') || dom.parentWithAttribute(target, 'data-id');
if (card) { if (card) {
e.preventDefault(); e.preventDefault();
@ -383,7 +393,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
} }
} }
function on(context, options) { export function on(context, options) {
options = options || {}; options = options || {};
@ -396,7 +406,7 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
} }
} }
function off(context, options) { export function off(context, options) {
options = options || {}; options = options || {};
context.removeEventListener('click', onClick); context.removeEventListener('click', onClick);
@ -406,23 +416,24 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'appRouter', 'gl
} }
} }
function getShortcutAttributesHtml(item, serverId) { export function getShortcutAttributesHtml(item, serverId) {
var html = 'data-id="' + item.Id + '" data-serverid="' + (serverId || item.ServerId) + '" data-type="' + item.Type + '" data-mediatype="' + item.MediaType + '" data-channelid="' + item.ChannelId + '" data-isfolder="' + item.IsFolder + '"'; let html = `data-id="${item.Id}" data-serverid="${serverId || item.ServerId}" data-type="${item.Type}" data-mediatype="${item.MediaType}" data-channelid="${item.ChannelId}" data-isfolder="${item.IsFolder}"`;
var collectionType = item.CollectionType; const collectionType = item.CollectionType;
if (collectionType) { if (collectionType) {
html += ' data-collectiontype="' + collectionType + '"'; html += ` data-collectiontype="${collectionType}"`;
} }
return html; return html;
} }
return { /* eslint-enable indent */
on: on,
off: off, export default {
onClick: onClick, on: on,
getShortcutAttributesHtml: getShortcutAttributesHtml off: off,
}; onClick: onClick,
getShortcutAttributesHtml: getShortcutAttributesHtml
};
});

View file

@ -2,9 +2,20 @@
* Image viewer component * Image viewer component
* @module components/slideshow/slideshow * @module components/slideshow/slideshow
*/ */
define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'focusManager', 'browser', 'apphost', 'css!./style', 'material-icons', 'paper-icon-button-light'], function (dialogHelper, inputManager, connectionManager, layoutManager, focusManager, browser, appHost) { define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'focusManager', 'browser', 'apphost', 'dom', 'css!./style', 'material-icons', 'paper-icon-button-light'], function (dialogHelper, inputManager, connectionManager, layoutManager, focusManager, browser, appHost, dom) {
'use strict'; 'use strict';
/**
* Name of transition event.
*/
const transitionEndEventName = dom.whichTransitionEvent();
/**
* Flag to use fake image to fix blurry zoomed image.
* At least WebKit doesn't restore quality for zoomed images.
*/
const useFakeZoomImage = browser.safari;
/** /**
* Retrieves an item's image URL from the API. * Retrieves an item's image URL from the API.
* @param {object|string} item - Item used to generate the image URL. * @param {object|string} item - Item used to generate the image URL.
@ -240,6 +251,41 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
} }
} }
/**
* Handles zoom changes.
*/
function onZoomChange(scale, imageEl, slideEl) {
const zoomImage = slideEl.querySelector('.swiper-zoom-fakeimg');
if (zoomImage) {
zoomImage.style.width = zoomImage.style.height = scale * 100 + '%';
if (scale > 1) {
if (zoomImage.classList.contains('swiper-zoom-fakeimg-hidden')) {
// Await for Swiper style changes
setTimeout(() => {
const callback = () => {
imageEl.removeEventListener(transitionEndEventName, callback);
zoomImage.classList.remove('swiper-zoom-fakeimg-hidden');
};
// Swiper set 'transition-duration: 300ms' for auto zoom
// and 'transition-duration: 0s' for touch zoom
const transitionDuration = parseFloat(imageEl.style.transitionDuration.replace(/[a-z]/i, ''));
if (transitionDuration > 0) {
imageEl.addEventListener(transitionEndEventName, callback);
} else {
callback();
}
}, 0);
}
} else {
zoomImage.classList.add('swiper-zoom-fakeimg-hidden');
}
}
}
/** /**
* Initializes the Swiper instance and binds the relevant events. * Initializes the Swiper instance and binds the relevant events.
* @param {HTMLElement} dialog - Element containing the dialog. * @param {HTMLElement} dialog - Element containing the dialog.
@ -260,8 +306,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
loop: false, loop: false,
zoom: { zoom: {
minRatio: 1, minRatio: 1,
toggle: true, toggle: true
containerClass: 'slider-zoom-container'
}, },
autoplay: !options.interactive, autoplay: !options.interactive,
keyboard: { keyboard: {
@ -288,6 +333,10 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
swiperInstance.on('autoplayStart', onAutoplayStart); swiperInstance.on('autoplayStart', onAutoplayStart);
swiperInstance.on('autoplayStop', onAutoplayStop); swiperInstance.on('autoplayStop', onAutoplayStop);
if (useFakeZoomImage) {
swiperInstance.on('zoomChange', onZoomChange);
}
}); });
} }
@ -328,7 +377,10 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
function getSwiperSlideHtmlFromSlide(item) { function getSwiperSlideHtmlFromSlide(item) {
var html = ''; var html = '';
html += '<div class="swiper-slide" data-original="' + item.originalImage + '" data-itemid="' + item.Id + '" data-serverid="' + item.ServerId + '">'; html += '<div class="swiper-slide" data-original="' + item.originalImage + '" data-itemid="' + item.Id + '" data-serverid="' + item.ServerId + '">';
html += '<div class="slider-zoom-container">'; html += '<div class="swiper-zoom-container">';
if (useFakeZoomImage) {
html += `<div class="swiper-zoom-fakeimg swiper-zoom-fakeimg-hidden" style="background-image: url('${item.originalImage}')"></div>`;
}
html += '<img src="' + item.originalImage + '" class="swiper-slide-img">'; html += '<img src="' + item.originalImage + '" class="swiper-slide-img">';
html += '</div>'; html += '</div>';
if (item.title || item.subtitle) { if (item.title || item.subtitle) {

View file

@ -40,16 +40,6 @@
text-shadow: 3px 3px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; text-shadow: 3px 3px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
} }
.swiper-slide-img {
max-height: 100%;
max-width: 100%;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
margin: auto;
}
.slideshowButtonIcon { .slideshowButtonIcon {
color: #fff; color: #fff;
opacity: 0.7; opacity: 0.7;
@ -135,13 +125,18 @@
color: #ccc; color: #ccc;
} }
.swiper-slide { .swiper-zoom-fakeimg {
display: flex; position: absolute;
flex-direction: column; top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-position: 50% 50%;
background-repeat: no-repeat;
background-size: contain;
z-index: 1;
pointer-events: none;
} }
.slider-zoom-container { .swiper-zoom-fakeimg-hidden {
margin: auto; display: none;
max-height: 100%;
max-width: 100%;
} }

View file

@ -65,8 +65,6 @@ class TimeSyncManager {
this.pings = 0; // number of pings this.pings = 0; // number of pings
this.measurement = null; // current time sync this.measurement = null; // current time sync
this.measurements = []; this.measurements = [];
this.startPing();
} }
/** /**

View file

@ -252,12 +252,6 @@ define(['datetime', 'events', 'itemHelper', 'serverNotifications', 'dom', 'globa
html += '</div>'; html += '</div>';
html += '</div>'; html += '</div>';
if (session.TranscodingInfo && session.TranscodingInfo.Framerate) {
html += '<div class="sessionTranscodingFramerate">' + session.TranscodingInfo.Framerate + ' fps</div>';
} else {
html += '<div class="sessionTranscodingFramerate"></div>';
}
html += '<div class="sessionNowPlayingDetails">'; html += '<div class="sessionNowPlayingDetails">';
var nowPlayingName = DashboardPage.getNowPlayingName(session); var nowPlayingName = DashboardPage.getNowPlayingName(session);
html += '<div class="sessionNowPlayingInfo" data-imgsrc="' + nowPlayingName.image + '">'; html += '<div class="sessionNowPlayingInfo" data-imgsrc="' + nowPlayingName.image + '">';
@ -573,7 +567,6 @@ define(['datetime', 'events', 'itemHelper', 'serverNotifications', 'dom', 'globa
row.querySelector('.sessionNowPlayingTime').innerHTML = DashboardPage.getSessionNowPlayingTime(session); row.querySelector('.sessionNowPlayingTime').innerHTML = DashboardPage.getSessionNowPlayingTime(session);
row.querySelector('.sessionUserName').innerHTML = DashboardPage.getUsersHtml(session); row.querySelector('.sessionUserName').innerHTML = DashboardPage.getUsersHtml(session);
row.querySelector('.sessionAppSecondaryText').innerHTML = DashboardPage.getAppSecondaryText(session); row.querySelector('.sessionAppSecondaryText').innerHTML = DashboardPage.getAppSecondaryText(session);
row.querySelector('.sessionTranscodingFramerate').innerHTML = session.TranscodingInfo && session.TranscodingInfo.Framerate ? session.TranscodingInfo.Framerate + ' fps' : '';
var nowPlayingName = DashboardPage.getNowPlayingName(session); var nowPlayingName = DashboardPage.getNowPlayingName(session);
var nowPlayingInfoElem = row.querySelector('.sessionNowPlayingInfo'); var nowPlayingInfoElem = row.querySelector('.sessionNowPlayingInfo');

View file

@ -5,6 +5,8 @@ define(['jQuery', 'loading', 'globalize', 'dom', 'libraryMenu'], function ($, lo
Array.prototype.forEach.call(page.querySelectorAll('.chkDecodeCodec'), function (c) { Array.prototype.forEach.call(page.querySelectorAll('.chkDecodeCodec'), function (c) {
c.checked = -1 !== (config.HardwareDecodingCodecs || []).indexOf(c.getAttribute('data-codec')); c.checked = -1 !== (config.HardwareDecodingCodecs || []).indexOf(c.getAttribute('data-codec'));
}); });
page.querySelector('#chkDecodingColorDepth10Hevc').checked = config.EnableDecodingColorDepth10Hevc;
page.querySelector('#chkDecodingColorDepth10Vp9').checked = config.EnableDecodingColorDepth10Vp9;
page.querySelector('#chkHardwareEncoding').checked = config.EnableHardwareEncoding; page.querySelector('#chkHardwareEncoding').checked = config.EnableHardwareEncoding;
$('#selectVideoDecoder', page).val(config.HardwareAccelerationType); $('#selectVideoDecoder', page).val(config.HardwareAccelerationType);
$('#selectThreadCount', page).val(config.EncodingThreadCount); $('#selectThreadCount', page).val(config.EncodingThreadCount);
@ -67,6 +69,8 @@ define(['jQuery', 'loading', 'globalize', 'dom', 'libraryMenu'], function ($, lo
}), function (c) { }), function (c) {
return c.getAttribute('data-codec'); return c.getAttribute('data-codec');
}); });
config.EnableDecodingColorDepth10Hevc = form.querySelector('#chkDecodingColorDepth10Hevc').checked;
config.EnableDecodingColorDepth10Vp9 = form.querySelector('#chkDecodingColorDepth10Vp9').checked;
config.EnableHardwareEncoding = form.querySelector('#chkHardwareEncoding').checked; config.EnableHardwareEncoding = form.querySelector('#chkHardwareEncoding').checked;
ApiClient.updateNamedConfiguration('encoding', config).then(function () { ApiClient.updateNamedConfiguration('encoding', config).then(function () {
updateEncoder(form); updateEncoder(form);

View file

@ -123,6 +123,9 @@ define(['loading', 'libraryMenu', 'globalize', 'cardStyle', 'emby-button', 'emby
}, { }, {
href: 'availableplugins.html', href: 'availableplugins.html',
name: globalize.translate('TabCatalog') name: globalize.translate('TabCatalog')
}, {
href: 'repositories.html',
name: globalize.translate('TabRepositories')
}]; }];
} }

View file

@ -37,18 +37,22 @@ define(['loading', 'libraryMenu', 'dom', 'globalize', 'cardStyle', 'emby-button'
})[0]; })[0];
var configPageUrl = configPage ? Dashboard.getConfigurationPageUrl(configPage.Name) : null; var configPageUrl = configPage ? Dashboard.getConfigurationPageUrl(configPage.Name) : null;
var html = ''; var html = '';
html += "<div data-id='" + plugin.Id + "' data-name='" + plugin.Name + "' class='card backdropCard'>"; html += "<div data-id='" + plugin.Id + "' data-name='" + plugin.Name + "' data-removable='" + plugin.CanUninstall + "' class='card backdropCard'>";
html += '<div class="cardBox visualCardBox">'; html += '<div class="cardBox visualCardBox">';
html += '<div class="cardScalable">'; html += '<div class="cardScalable">';
html += '<div class="cardPadder cardPadder-backdrop"></div>'; html += '<div class="cardPadder cardPadder-backdrop"></div>';
html += configPageUrl ? '<a class="cardContent cardImageContainer" is="emby-linkbutton" href="' + configPageUrl + '">' : '<div class="cardContent noConfigPluginCard noHoverEffect cardImageContainer">'; html += configPageUrl ? '<a class="cardContent cardImageContainer" is="emby-linkbutton" href="' + configPageUrl + '">' : '<div class="cardContent noConfigPluginCard noHoverEffect cardImageContainer emby-button">';
html += '<span class="cardImageIcon material-icons folder"></span>'; html += '<span class="cardImageIcon material-icons folder"></span>';
html += configPageUrl ? '</a>' : '</div>'; html += configPageUrl ? '</a>' : '</div>';
html += '</div>'; html += '</div>';
html += '<div class="cardFooter">'; html += '<div class="cardFooter">';
html += '<div style="text-align:right; float:right;padding-top:5px;">';
html += '<button type="button" is="paper-icon-button-light" class="btnCardMenu autoSize"><span class="material-icons more_vert"></span></button>'; if (configPage || plugin.CanUninstall) {
html += '</div>'; html += '<div style="text-align:right; float:right;padding-top:5px;">';
html += '<button type="button" is="paper-icon-button-light" class="btnCardMenu autoSize"><span class="material-icons more_vert"></span></button>';
html += '</div>';
}
html += "<div class='cardText'>"; html += "<div class='cardText'>";
html += configPage && configPage.DisplayName ? configPage.DisplayName : plugin.Name; html += configPage && configPage.DisplayName ? configPage.DisplayName : plugin.Name;
html += '</div>'; html += '</div>';
@ -104,6 +108,7 @@ define(['loading', 'libraryMenu', 'dom', 'globalize', 'cardStyle', 'emby-button'
var card = dom.parentWithClass(elem, 'card'); var card = dom.parentWithClass(elem, 'card');
var id = card.getAttribute('data-id'); var id = card.getAttribute('data-id');
var name = card.getAttribute('data-name'); var name = card.getAttribute('data-name');
var removable = card.getAttribute('data-removable');
var configHref = card.querySelector('.cardContent').getAttribute('href'); var configHref = card.querySelector('.cardContent').getAttribute('href');
var menuItems = []; var menuItems = [];
@ -115,11 +120,13 @@ define(['loading', 'libraryMenu', 'dom', 'globalize', 'cardStyle', 'emby-button'
}); });
} }
menuItems.push({ if (removable === 'true') {
name: globalize.translate('ButtonUninstall'), menuItems.push({
id: 'delete', name: globalize.translate('ButtonUninstall'),
icon: 'delete' id: 'delete',
}); icon: 'delete'
});
}
require(['actionsheet'], function (actionsheet) { require(['actionsheet'], function (actionsheet) {
actionsheet.show({ actionsheet.show({
@ -153,6 +160,9 @@ define(['loading', 'libraryMenu', 'dom', 'globalize', 'cardStyle', 'emby-button'
}, { }, {
href: 'availableplugins.html', href: 'availableplugins.html',
name: globalize.translate('TabCatalog') name: globalize.translate('TabCatalog')
}, {
href: 'repositories.html',
name: globalize.translate('TabRepositories')
}]; }];
} }

View file

@ -0,0 +1,153 @@
import loading from 'loading';
import libraryMenu from 'libraryMenu';
import globalize from 'globalize';
import dialogHelper from 'dialogHelper';
import 'emby-button';
import 'emby-checkbox';
import 'emby-select';
import 'formDialogStyle';
import 'listViewStyle';
let repositories = [];
function reloadList(page) {
loading.show();
ApiClient.getJSON(ApiClient.getUrl('Repositories')).then(list => {
repositories = list;
populateList({
listElement: page.querySelector('#repositories'),
noneElement: page.querySelector('#none'),
repositories: repositories
});
}).catch(error => {
console.error('error loading repositories');
page.querySelector('#none').classList.remove('hide');
loading.hide();
});
}
function saveList(page) {
loading.show();
ApiClient.ajax({
type: 'POST',
url: ApiClient.getUrl('Repositories'),
data: JSON.stringify(repositories),
contentType: 'application/json'
}).then(response => {
reloadList(page);
}).catch(error => {
console.error('error saving repositories');
loading.hide();
});
}
function populateList(options) {
var html = '';
html += '<div class="paperList">';
for (var i = 0; i < options.repositories.length; i++) {
html += getRepositoryHtml(options.repositories[i]);
}
html += '</div>';
if (!options.repositories.length) {
options.noneElement.classList.remove('hide');
}
options.listElement.innerHTML = html;
loading.hide();
}
function getRepositoryHtml(repository) {
var html = '';
html += '<div class="listItem listItem-border">';
html += `<a is="emby-linkbutton" style="margin:0;padding:0" class="clearLink listItemIconContainer" href="${repository.Url}">`;
html += '<span class="material-icons listItemIcon open_in_new"></span>';
html += '</a>';
html += '<div class="listItemBody two-line">';
html += `<h3 class="listItemBodyText">${repository.Name}</h3>`;
html += `<div class="listItemBodyText secondary">${repository.Url}</div>`;
html += '</div>';
html += `<button type="button" is="paper-icon-button-light" id="${repository.Url}" class="btnDelete" title="${globalize.translate('ButtonDelete')}"><span class="material-icons delete"></span></button>`;
html += '</div>';
return html;
}
function getTabs() {
return [{
href: 'installedplugins.html',
name: globalize.translate('TabMyPlugins')
}, {
href: 'availableplugins.html',
name: globalize.translate('TabCatalog')
}, {
href: 'repositories.html',
name: globalize.translate('TabRepositories')
}];
}
export default function(view, params) {
view.addEventListener('viewshow', function () {
libraryMenu.setTabs('plugins', 2, getTabs);
reloadList(this);
var save = this;
$('#repositories', view).on('click', '.btnDelete', function() {
var button = this;
repositories = repositories.filter(function (r) {
return r.Url !== button.id;
});
saveList(save);
});
});
view.querySelector('.btnNewRepository').addEventListener('click', () => {
let dialog = dialogHelper.createDialog({
scrollY: false,
size: 'large',
modal: false,
removeOnClose: true
});
let html = '';
html += '<div class="formDialogHeader">';
html += '<button type="button" is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><span class="material-icons arrow_back"></span></button>';
html += `<h3 class="formDialogHeaderTitle">${globalize.translate('HeaderNewRepository')}</h3>`;
html += '</div>';
html += '<form class="newPluginForm" style="margin:4em">';
html += '<div class="inputContainer">';
html += `<input is="emby-input" id="txtRepositoryName" label="${globalize.translate('LabelRepositoryName')}" type="text" required />`;
html += `<div class="fieldDescription">${globalize.translate('LabelRepositoryNameHelp')}</div>`;
html += '</div>';
html += '<div class="inputContainer">';
html += `<input is="emby-input" id="txtRepositoryUrl" label="${globalize.translate('LabelRepositoryUrl')}" type="url" required />`;
html += `<div class="fieldDescription">${globalize.translate('LabelRepositoryUrlHelp')}</div>`;
html += '</div>';
html += `<button is="emby-button" type="submit" class="raised button-submit block"><span>${globalize.translate('ButtonSave')}</span></button>`;
html += '</div>';
html += '</form>';
dialog.innerHTML = html;
dialog.querySelector('.btnCancel').addEventListener('click', () => {
dialogHelper.close(dialog);
});
dialog.querySelector('.newPluginForm').addEventListener('submit', () => {
repositories.push({
Name: dialog.querySelector('#txtRepositoryName').value,
Url: dialog.querySelector('#txtRepositoryUrl').value,
Enabled: true
});
saveList(view);
dialogHelper.close(dialog);
return false;
});
dialogHelper.open(dialog);
});
}

View file

@ -141,29 +141,29 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
return; return;
} }
playbackManager.getPlaybackMediaSources(item).then(function (mediaSources) { var mediaSources = item.MediaSources;
instance._currentPlaybackMediaSources = mediaSources; instance._currentPlaybackMediaSources = mediaSources;
page.querySelector('.trackSelections').classList.remove('hide'); page.querySelector('.trackSelections').classList.remove('hide');
select.setLabel(globalize.translate('LabelVersion')); select.setLabel(globalize.translate('LabelVersion'));
var currentValue = select.value; var currentValue = select.value;
var selectedId = mediaSources[0].Id; var selectedId = mediaSources[0].Id;
select.innerHTML = mediaSources.map(function (v) { select.innerHTML = mediaSources.map(function (v) {
var selected = v.Id === selectedId ? ' selected' : ''; var selected = v.Id === selectedId ? ' selected' : '';
return '<option value="' + v.Id + '"' + selected + '>' + v.Name + '</option>'; return '<option value="' + v.Id + '"' + selected + '>' + v.Name + '</option>';
}).join(''); }).join('');
if (mediaSources.length > 1) { if (mediaSources.length > 1) {
page.querySelector('.selectSourceContainer').classList.remove('hide'); page.querySelector('.selectSourceContainer').classList.remove('hide');
} else { } else {
page.querySelector('.selectSourceContainer').classList.add('hide'); page.querySelector('.selectSourceContainer').classList.add('hide');
} }
if (select.value !== currentValue || forceReload) {
renderVideoSelections(page, mediaSources);
renderAudioSelections(page, mediaSources);
renderSubtitleSelections(page, mediaSources);
}
if (select.value !== currentValue || forceReload) {
renderVideoSelections(page, mediaSources);
renderAudioSelections(page, mediaSources);
renderSubtitleSelections(page, mediaSources);
}
});
} }
function renderVideoSelections(page, mediaSources) { function renderVideoSelections(page, mediaSources) {
@ -400,6 +400,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
} else if (item.Album) { } else if (item.Album) {
parentNameHtml.push(item.Album); parentNameHtml.push(item.Album);
} }
// FIXME: This whole section needs some refactoring, so it becames easier to scale across all form factors. See GH #1022 // FIXME: This whole section needs some refactoring, so it becames easier to scale across all form factors. See GH #1022
var html = ''; var html = '';
var tvShowHtml = parentNameHtml[0]; var tvShowHtml = parentNameHtml[0];
@ -415,9 +416,9 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
} }
} else { } else {
if (layoutManager.mobile) { if (layoutManager.mobile) {
html = '<h1 class="parentName" style="margin: .1em 0 .25em;">' + parentNameHtml.join('</br>') + '</h1>'; html = '<h1 class="parentName" style="margin: 0.2em 0 0">' + parentNameHtml.join('</br>') + '</h1>';
} else { } else {
html = '<h1 class="parentName" style="margin: .1em 0 .25em;">' + tvShowHtml + '</h1>'; html = '<h1 class="parentName" style="margin: 0.2em 0 0">' + tvShowHtml + '</h1>';
} }
} }
} }
@ -425,20 +426,19 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
var name = itemHelper.getDisplayName(item, { var name = itemHelper.getDisplayName(item, {
includeParentInfo: false includeParentInfo: false
}); });
var offset = parentNameLast ? '.25em' : '.5em';
if (html && !parentNameLast) { if (html && !parentNameLast) {
if (!layoutManager.mobile && tvSeasonHtml) { if (!layoutManager.mobile && tvSeasonHtml) {
html += '<h3 class="itemName infoText" style="margin: .25em 0 .5em;">' + tvSeasonHtml + ' - ' + name + '</h3>'; html += '<h3 class="itemName infoText" style="margin: 0.2em 0 0">' + tvSeasonHtml + ' - ' + name + '</h3>';
} else { } else {
html += '<h3 class="itemName infoText" style="margin: .25em 0 .5em;">' + name + '</h3>'; html += '<h3 class="itemName infoText" style="margin: 0.2em 0 0">' + name + '</h3>';
} }
} else { } else {
html = '<h1 class="itemName infoText" style="margin: .1em 0 ' + offset + ';">' + name + '</h1>' + html; html = '<h1 class="itemName infoText" style="margin: 0.4em 0 0">' + name + '</h1>' + html;
} }
if (item.OriginalTitle && item.OriginalTitle != item.Name) { if (item.OriginalTitle && item.OriginalTitle != item.Name) {
html += '<h4 class="itemName infoText" style="margin: -' + offset + ' 0 0;">' + item.OriginalTitle + '</h4>'; html += '<h4 class="itemName infoText" style="margin: 0 0 0;">' + item.OriginalTitle + '</h4>';
} }
container.innerHTML = html; container.innerHTML = html;
@ -1106,10 +1106,10 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
var externalLinksElem = page.querySelector('.itemExternalLinks'); var externalLinksElem = page.querySelector('.itemExternalLinks');
renderOverview([overview], item); renderOverview([overview], item);
var i; var i;
var itemMiscInfo; var itemMiscInfo;
itemMiscInfo = page.querySelectorAll('.itemMiscInfo-primary'); itemMiscInfo = page.querySelectorAll('.itemMiscInfo-primary');
for (i = 0; i < itemMiscInfo.length; i++) { for (i = 0; i < itemMiscInfo.length; i++) {
mediaInfo.fillPrimaryMediaInfo(itemMiscInfo[i], item, { mediaInfo.fillPrimaryMediaInfo(itemMiscInfo[i], item, {
interactive: true, interactive: true,
@ -1125,7 +1125,6 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
} }
itemMiscInfo = page.querySelectorAll('.itemMiscInfo-secondary'); itemMiscInfo = page.querySelectorAll('.itemMiscInfo-secondary');
for (i = 0; i < itemMiscInfo.length; i++) { for (i = 0; i < itemMiscInfo.length; i++) {
mediaInfo.fillSecondaryMediaInfo(itemMiscInfo[i], item, { mediaInfo.fillSecondaryMediaInfo(itemMiscInfo[i], item, {
interactive: true interactive: true

View file

@ -155,8 +155,8 @@ define(['jQuery', 'globalize', 'scripts/taskbutton', 'dom', 'libraryMenu', 'layo
} }
function mapChannels(page, providerId) { function mapChannels(page, providerId) {
require(['components/channelMapper/channelMapper'], function (channelmapper) { require(['components/channelMapper/channelMapper'], function (channelMapper) {
new channelmapper({ new channelMapper.default({
serverId: ApiClient.serverInfo().Id, serverId: ApiClient.serverInfo().Id,
providerId: providerId providerId: providerId
}).show(); }).show();

View file

@ -109,9 +109,7 @@ define(['layoutManager', 'browser', 'dom', 'css!./emby-input', 'registerElement'
} }
EmbyInputPrototype.attachedCallback = function () { EmbyInputPrototype.attachedCallback = function () {
this.labelElement.htmlFor = this.id; this.labelElement.htmlFor = this.id;
onChange.call(this); onChange.call(this);
}; };

View file

@ -19,6 +19,7 @@
<option value="nvenc">Nvidia NVENC</option> <option value="nvenc">Nvidia NVENC</option>
<option value="vaapi">Video Acceleration API (VAAPI)</option> <option value="vaapi">Video Acceleration API (VAAPI)</option>
<option value="h264_v4l2m2m">Exynos V4L2 MFC</option> <option value="h264_v4l2m2m">Exynos V4L2 MFC</option>
<option value="videotoolbox">Video ToolBox</option>
</select> </select>
<div class="fieldDescription"> <div class="fieldDescription">
<a is="emby-linkbutton" rel="noopener noreferrer" class="button-link" href="https://docs.jellyfin.org/general/administration/hardware-acceleration.html" target="_blank">${LabelHardwareAccelerationTypeHelp}</a> <a is="emby-linkbutton" rel="noopener noreferrer" class="button-link" href="https://docs.jellyfin.org/general/administration/hardware-acceleration.html" target="_blank">${LabelHardwareAccelerationTypeHelp}</a>
@ -35,36 +36,49 @@
<h3 class="checkboxListLabel">${LabelEnableHardwareDecodingFor}</h3> <h3 class="checkboxListLabel">${LabelEnableHardwareDecodingFor}</h3>
<div class="checkboxList"> <div class="checkboxList">
<label> <label>
<input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="h264" data-types="qsv,nvenc,omx,mediacodec" /> <input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="h264" data-types="amf,qsv,nvenc,vaapi,omx,mediacodec,videotoolbox" />
<span>H264</span> <span>H264</span>
</label> </label>
<label> <label>
<input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="hevc" data-types="qsv,nvenc,mediacodec" /> <input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="hevc" data-types="amf,qsv,nvenc,vaapi,mediacodec,videotoolbox" />
<span>HEVC</span> <span>HEVC</span>
</label> </label>
<label> <label>
<input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="mpeg2video" data-types="qsv,nvenc,omx,mediacodec" /> <input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="mpeg2video" data-types="amf,qsv,nvenc,vaapi,omx,mediacodec,videotoolbox" />
<span>MPEG2</span> <span>MPEG2</span>
</label> </label>
<label> <label>
<input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="mpeg4" data-types="nvenc,mediacodec" /> <input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="mpeg4" data-types="amf,nvenc,omx,mediacodec,videotoolbox" />
<span>MPEG4</span> <span>MPEG4</span>
</label> </label>
<label> <label>
<input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="vc1" data-types="qsv,nvenc" /> <input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="vc1" data-types="amf,qsv,nvenc,vaapi,omx,videotoolbox" />
<span>VC1</span> <span>VC1</span>
</label> </label>
<label> <label>
<input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="vp8" data-types="mediacodec" /> <input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="vp8" data-types="qsv,nvenc,vaapi,mediacodec,videotoolbox" />
<span>VP8</span> <span>VP8</span>
</label> </label>
<label> <label>
<input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="vp9" data-types="mediacodec" /> <input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="vp9" data-types="amf,qsv,nvenc,vaapi,mediacodec,videotoolbox" />
<span>VP9</span> <span>VP9</span>
</label> </label>
</div> </div>
</div> </div>
<div class="checkboxListContainer">
<label>
<input type="checkbox" is="emby-checkbox" id="chkDecodingColorDepth10Hevc" />
<span>${EnableDecodingColorDepth10Hevc}</span>
</label>
</div>
<div class="checkboxListContainer">
<label>
<input type="checkbox" is="emby-checkbox" id="chkDecodingColorDepth10Vp9" />
<span>${EnableDecodingColorDepth10Vp9}</span>
</label>
</div>
<div class="checkboxListContainer"> <div class="checkboxListContainer">
<div class="checkboxList"> <div class="checkboxList">
<label> <label>

View file

@ -10,8 +10,8 @@
<div class="detailPagePrimaryContainer padded-left padded-right"> <div class="detailPagePrimaryContainer padded-left padded-right">
<div class="infoWrapper infoText"> <div class="infoWrapper infoText">
<div class="nameContainer"></div> <div class="nameContainer"></div>
<div class="itemMiscInfo itemMiscInfo-primary"></div> <div class="itemMiscInfo itemMiscInfo-primary" style="margin-bottom: 0.6em"></div>
<div class="itemMiscInfo itemMiscInfo-secondary"></div> <div class="itemMiscInfo itemMiscInfo-secondary" style="margin-bottom: 0.6em"></div>
</div> </div>
<div class="mainDetailButtons"> <div class="mainDetailButtons">

19
src/repositories.html Normal file
View file

@ -0,0 +1,19 @@
<div id="repositories" data-role="page" class="page type-interior withTabs fullWidthContent">
<div>
<div class="content-primary">
<div class="sectionTitleContainer flex align-items-center">
<h2 class="sectionTitle">${TabRepositories}</h2>
<button is="emby-button" type="button" class="fab btnNewRepository submit" style="margin-left:1em;" title="${ButtonAdd}">
<span class="material-icons add" aria-hidden="true"></span>
</button>
</div>
<div id="repositories"></div>
<div id="none" class="noItemsMessage centerMessage hide">
<h1>${MessageNoRepositories}</h1>
<p>${MessageAddRepository}</p>
</div>
</div>
</div>
</div>

View file

@ -12,10 +12,10 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
html += '</div>'; html += '</div>';
html += '<div class="headerRight">'; html += '<div class="headerRight">';
html += '<span class="headerSelectedPlayer"></span>'; html += '<span class="headerSelectedPlayer"></span>';
html += '<button is="paper-icon-button-light" class="headerSyncButton syncButton headerButton headerButtonRight hide"><span class="material-icons sync_disabled"></span></button>'; html += `<button is="paper-icon-button-light" class="headerSyncButton syncButton headerButton headerButtonRight hide" title="${globalize.translate('ButtonSyncPlay')}"><span class="material-icons sync_disabled"></span></button>`;
html += '<button is="paper-icon-button-light" class="headerAudioPlayerButton audioPlayerButton headerButton headerButtonRight hide"><span class="material-icons music_note"></span></button>'; html += '<button is="paper-icon-button-light" class="headerAudioPlayerButton audioPlayerButton headerButton headerButtonRight hide"><span class="material-icons music_note"></span></button>';
html += '<button is="paper-icon-button-light" class="headerCastButton castButton headerButton headerButtonRight hide"><span class="material-icons cast"></span></button>'; html += `<button is="paper-icon-button-light" class="headerCastButton castButton headerButton headerButtonRight hide" title="${globalize.translate('ButtonCast')}"><span class="material-icons cast"></span></button>`;
html += '<button type="button" is="paper-icon-button-light" class="headerButton headerButtonRight headerSearchButton hide"><span class="material-icons search"></span></button>'; html += `<button type="button" is="paper-icon-button-light" class="headerButton headerButtonRight headerSearchButton hide" title="${globalize.translate('ButtonSearch')}"><span class="material-icons search"></span></button>`;
html += '<button is="paper-icon-button-light" class="headerButton headerButtonRight headerUserButton hide"><span class="material-icons person"></span></button>'; html += '<button is="paper-icon-button-light" class="headerButton headerButtonRight headerUserButton hide"><span class="material-icons person"></span></button>';
html += '</div>'; html += '</div>';
html += '</div>'; html += '</div>';
@ -64,7 +64,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
updateHeaderUserButton(url); updateHeaderUserButton(url);
hasImage = true; hasImage = true;
} }
headerUserButton.title = user.name;
headerUserButton.classList.remove('hide'); headerUserButton.classList.remove('hide');
} else { } else {
headerUserButton.classList.add('hide'); headerUserButton.classList.add('hide');
@ -834,6 +834,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
var headerAudioPlayerButton; var headerAudioPlayerButton;
var headerSyncButton; var headerSyncButton;
var enableLibraryNavDrawer = layoutManager.desktop; var enableLibraryNavDrawer = layoutManager.desktop;
var enableLibraryNavDrawerHome = !layoutManager.tv;
var skinHeader = document.querySelector('.skinHeader'); var skinHeader = document.querySelector('.skinHeader');
var requiresUserRefresh = true; var requiresUserRefresh = true;
var lastOpenTime = new Date().getTime(); var lastOpenTime = new Date().getTime();
@ -920,7 +921,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
refreshDashboardInfoInDrawer(apiClient); refreshDashboardInfoInDrawer(apiClient);
} else { } else {
if (mainDrawerButton) { if (mainDrawerButton) {
if (enableLibraryNavDrawer || isHomePage) { if (enableLibraryNavDrawer || (isHomePage && enableLibraryNavDrawerHome)) {
mainDrawerButton.classList.remove('hide'); mainDrawerButton.classList.remove('hide');
} else { } else {
mainDrawerButton.classList.add('hide'); mainDrawerButton.classList.add('hide');

View file

@ -215,6 +215,12 @@ define([
roles: 'admin', roles: 'admin',
controller: 'dashboard/plugins/available' controller: 'dashboard/plugins/available'
}); });
defineRoute({
path: '/repositories.html',
autoFocus: false,
roles: 'admin',
controller: 'dashboard/plugins/repositories'
});
defineRoute({ defineRoute({
path: '/home.html', path: '/home.html',

View file

@ -193,25 +193,6 @@ var Dashboard = {
}).then(options.callback || function () {}); }).then(options.callback || function () {});
}); });
}, },
restartServer: function () {
var apiClient = window.ApiClient;
if (apiClient) {
require(['serverRestartDialog', 'events'], function (ServerRestartDialog, events) {
var dialog = new ServerRestartDialog({
apiClient: apiClient
});
events.on(dialog, 'restarted', function () {
if (AppInfo.isNativeApp) {
apiClient.ensureWebSocket();
} else {
window.location.reload(true);
}
});
dialog.show();
});
}
},
capabilities: function (appHost) { capabilities: function (appHost) {
var capabilities = { var capabilities = {
PlayableMediaTypes: ['Audio', 'Video'], PlayableMediaTypes: ['Audio', 'Video'],
@ -814,7 +795,6 @@ var AppInfo = {};
define('tabbedView', [componentsPath + '/tabbedview/tabbedview'], returnFirstDependency); define('tabbedView', [componentsPath + '/tabbedview/tabbedview'], returnFirstDependency);
define('itemsTab', [componentsPath + '/tabbedview/itemstab'], returnFirstDependency); define('itemsTab', [componentsPath + '/tabbedview/itemstab'], returnFirstDependency);
define('collectionEditor', [componentsPath + '/collectionEditor/collectionEditor'], returnFirstDependency); define('collectionEditor', [componentsPath + '/collectionEditor/collectionEditor'], returnFirstDependency);
define('serverRestartDialog', [componentsPath + '/serverRestartDialog'], returnFirstDependency);
define('playlistEditor', [componentsPath + '/playlisteditor/playlisteditor'], returnFirstDependency); define('playlistEditor', [componentsPath + '/playlisteditor/playlisteditor'], returnFirstDependency);
define('recordingCreator', [componentsPath + '/recordingcreator/recordingcreator'], returnFirstDependency); define('recordingCreator', [componentsPath + '/recordingcreator/recordingcreator'], returnFirstDependency);
define('recordingEditor', [componentsPath + '/recordingcreator/recordingeditor'], returnFirstDependency); define('recordingEditor', [componentsPath + '/recordingcreator/recordingeditor'], returnFirstDependency);
@ -857,7 +837,6 @@ var AppInfo = {};
define('deleteHelper', [scriptsPath + '/deleteHelper'], returnFirstDependency); define('deleteHelper', [scriptsPath + '/deleteHelper'], returnFirstDependency);
define('tvguide', [componentsPath + '/guide/guide'], returnFirstDependency); define('tvguide', [componentsPath + '/guide/guide'], returnFirstDependency);
define('guide-settings-dialog', [componentsPath + '/guide/guide-settings'], returnFirstDependency); define('guide-settings-dialog', [componentsPath + '/guide/guide-settings'], returnFirstDependency);
define('loadingDialog', [componentsPath + '/loadingDialog/loadingDialog'], returnFirstDependency);
define('viewManager', [componentsPath + '/viewManager/viewManager'], function (viewManager) { define('viewManager', [componentsPath + '/viewManager/viewManager'], function (viewManager) {
window.ViewManager = viewManager; window.ViewManager = viewManager;
viewManager.dispatchPageEvents(true); viewManager.dispatchPageEvents(true);

View file

@ -1018,7 +1018,6 @@
"HeaderSeriesStatus": "حالة المسلسل", "HeaderSeriesStatus": "حالة المسلسل",
"HeaderSeriesOptions": "اعدادات المسلسل", "HeaderSeriesOptions": "اعدادات المسلسل",
"HeaderSecondsValue": "{0} ثوانى", "HeaderSecondsValue": "{0} ثوانى",
"HeaderRestartingServer": "اعادة تشغيل الخادم",
"HeaderRecordingOptions": "اعدادات التسجيل", "HeaderRecordingOptions": "اعدادات التسجيل",
"HeaderPlaybackError": "خطأ فى التشغيل", "HeaderPlaybackError": "خطأ فى التشغيل",
"HeaderPlayOn": "شغل على", "HeaderPlayOn": "شغل على",

View file

@ -277,7 +277,7 @@
"Identify": "Разпознаване", "Identify": "Разпознаване",
"Images": "Изображения", "Images": "Изображения",
"ImportMissingEpisodesHelp": "Ако е активирано, информация за липсващи епизоди ще бъде добавена в базата данни на Jellyfin и ще бъде показвана заедно със сезони и серии. Това може да доведе до значително по-дълго сканиране на библиотеката.", "ImportMissingEpisodesHelp": "Ако е активирано, информация за липсващи епизоди ще бъде добавена в базата данни на Jellyfin и ще бъде показвана заедно със сезони и серии. Това може да доведе до значително по-дълго сканиране на библиотеката.",
"InstallingPackage": "Инсталиране на {0}", "InstallingPackage": "Инсталиране на {0} на версия {1})",
"InstantMix": "Пускане на подобни", "InstantMix": "Пускане на подобни",
"Label3DFormat": "Триизмерен формат:", "Label3DFormat": "Триизмерен формат:",
"LabelAirDays": "Дни на излъчване:", "LabelAirDays": "Дни на излъчване:",
@ -302,7 +302,7 @@
"LabelCountry": "Държава:", "LabelCountry": "Държава:",
"LabelCriticRating": "Оценка на критиците:", "LabelCriticRating": "Оценка на критиците:",
"LabelCurrentPassword": "Текуща парола:", "LabelCurrentPassword": "Текуща парола:",
"LabelCustomCertificatePath": "Път към потребителския сертификат:", "LabelCustomCertificatePath": "Ръчно задаване на пътя към SSL сертификата:",
"LabelCustomCertificatePathHelp": "Път до файл с шифровъчен стандарт №12 (PKCS #12), съдържащ сертификат и частен ключ за поддръжка на протокол TLS на собствен домейн.", "LabelCustomCertificatePathHelp": "Път до файл с шифровъчен стандарт №12 (PKCS #12), съдържащ сертификат и частен ключ за поддръжка на протокол TLS на собствен домейн.",
"LabelCustomCss": "CSS по избор:", "LabelCustomCss": "CSS по избор:",
"LabelCustomCssHelp": "Добавете собствен стил към уеб-интерфейса.", "LabelCustomCssHelp": "Добавете собствен стил към уеб-интерфейса.",
@ -333,7 +333,7 @@
"LabelEnableDlnaPlayTo": "Включване на функцията \"възпроизвеждане с ДЛНА\"", "LabelEnableDlnaPlayTo": "Включване на функцията \"възпроизвеждане с ДЛНА\"",
"LabelEnableDlnaPlayToHelp": "Засичане на устройства в мрежата ви и предлагане на възможност за дистанционно управление.", "LabelEnableDlnaPlayToHelp": "Засичане на устройства в мрежата ви и предлагане на възможност за дистанционно управление.",
"LabelEnableDlnaServer": "Включване на ДЛНА-сървър", "LabelEnableDlnaServer": "Включване на ДЛНА-сървър",
"LabelEnableDlnaServerHelp": "Разрешава на UPnP устройства в мрежата да разглеждат и пускат Jellyfin съдържание.", "LabelEnableDlnaServerHelp": "Разрешава на UPnP устройства в мрежата да разглеждат и пускат Джелифин съдържание.",
"LabelEnableRealtimeMonitor": "Активиране на наблюдение в реално време", "LabelEnableRealtimeMonitor": "Активиране на наблюдение в реално време",
"LabelEnableRealtimeMonitorHelp": "Промените ще бъдат обработени веднага, на поддържани файлови системи.", "LabelEnableRealtimeMonitorHelp": "Промените ще бъдат обработени веднага, на поддържани файлови системи.",
"LabelEpisodeNumber": "Номер на епизода:", "LabelEpisodeNumber": "Номер на епизода:",
@ -348,20 +348,20 @@
"LabelHomeNetworkQuality": "Качество на домашната мрежа:", "LabelHomeNetworkQuality": "Качество на домашната мрежа:",
"LabelHomeScreenSectionValue": "Раздел {0} на началния екран:", "LabelHomeScreenSectionValue": "Раздел {0} на началния екран:",
"LabelHttpsPort": "Локален HTTPS порт:", "LabelHttpsPort": "Локален HTTPS порт:",
"LabelHttpsPortHelp": "TCP портът на който HTTPS сървърът на Jellyfin трябва да се закачи.", "LabelHttpsPortHelp": "TCP портът на който HTTPS сървърът на Джелифин трябва да се закачи.",
"LabelImageType": "Вид изображение:", "LabelImageType": "Вид изображение:",
"LabelInternetQuality": "Качество на интернетната връзка:", "LabelInternetQuality": "Качество на интернетната връзка:",
"LabelKodiMetadataDateFormat": "Формат на датата на издаване:", "LabelKodiMetadataDateFormat": "Формат на датата на издаване:",
"LabelKodiMetadataUserHelp": "Разрешете това, за да запазите данните за гледанията във файлове Nfo за употреба от други програми.", "LabelKodiMetadataUserHelp": "Разрешете това, за да запазите данните за гледанията във файлове Nfo за употреба от други програми.",
"LabelLanguage": "Език:", "LabelLanguage": "Език:",
"LabelLocalHttpServerPortNumber": "Локален HTTP порт:", "LabelLocalHttpServerPortNumber": "Локален HTTP порт:",
"LabelLocalHttpServerPortNumberHelp": "TCP портът на който HTTP сървърът на Jellyfin трябва да се закачи.", "LabelLocalHttpServerPortNumberHelp": "TCP портът на който HTTP сървърът на Джелифин трябва да се закачи.",
"LabelLogs": "Журнали:", "LabelLogs": "Журнали:",
"LabelManufacturer": "Производител", "LabelManufacturer": "Производител:",
"LabelManufacturerUrl": "Адрес на производителя", "LabelManufacturerUrl": "Адрес на производителя",
"LabelMaxBackdropsPerItem": "Максимален брой фонове на медия:", "LabelMaxBackdropsPerItem": "Максимален брой фонове на медия:",
"LabelMaxParentalRating": "Максимално допустима родителска оценка:", "LabelMaxParentalRating": "Максимално допустима родителска оценка:",
"LabelMaxResumePercentage": "Макс процент за продължение:", "LabelMaxResumePercentage": "Максимален процент за продължение:",
"LabelMaxScreenshotsPerItem": "Максимален брой снимки на екрана на медия:", "LabelMaxScreenshotsPerItem": "Максимален брой снимки на екрана на медия:",
"LabelMaxStreamingBitrate": "Максимално качество на излъчване:", "LabelMaxStreamingBitrate": "Максимално качество на излъчване:",
"LabelMetadata": "Метаданни:", "LabelMetadata": "Метаданни:",
@ -369,9 +369,9 @@
"LabelMetadataPath": "Път към метаданните:", "LabelMetadataPath": "Път към метаданните:",
"LabelMetadataPathHelp": "Задайте място по избор за свалени картини и метаданни.", "LabelMetadataPathHelp": "Задайте място по избор за свалени картини и метаданни.",
"LabelMinBackdropDownloadWidth": "Минимална широчина на сваления фон:", "LabelMinBackdropDownloadWidth": "Минимална широчина на сваления фон:",
"LabelMinResumeDuration": "Мин време за продължение (секунди):", "LabelMinResumeDuration": "Минимално време за продължение:",
"LabelMinResumePercentage": "Мин процент за продължение:", "LabelMinResumePercentage": "Минимален процент за продължение:",
"LabelMinResumePercentageHelp": "Заглавията се считат за непускани ако бъдат спрени преди това време.", "LabelMinResumePercentageHelp": "Заглавията се считат ,че не са възпроизведени ако бъдат спрени преди този момент.",
"LabelMinScreenshotDownloadWidth": "Минимална широчина на свалената снимка на екрана:", "LabelMinScreenshotDownloadWidth": "Минимална широчина на свалената снимка на екрана:",
"LabelModelDescription": "Описание на модела", "LabelModelDescription": "Описание на модела",
"LabelModelName": "Модел", "LabelModelName": "Модел",
@ -443,7 +443,7 @@
"LabelTimeLimitHours": "Времево ограничение (часове):", "LabelTimeLimitHours": "Времево ограничение (часове):",
"LabelTitle": "Заглавие:", "LabelTitle": "Заглавие:",
"LabelTranscodingAudioCodec": "Звуков кодек:", "LabelTranscodingAudioCodec": "Звуков кодек:",
"LabelTranscodingTempPathHelp": "Тази папка съдържа работни файлове използвани от транскодера. Задайте място по избор или оставете празно за мястото по подразбиране.", "LabelTranscodingTempPathHelp": "Посочете персонализиран път за файлове,които е необходимо да бъдат транскодирани и доставени на клиентите. Оставете празно ,за да се използва мястото по подразбиране.",
"LabelTranscodingVideoCodec": "Видеокодек:", "LabelTranscodingVideoCodec": "Видеокодек:",
"LabelTriggerType": "Тип на спусъка:", "LabelTriggerType": "Тип на спусъка:",
"LabelType": "Вид:", "LabelType": "Вид:",
@ -512,7 +512,7 @@
"News": "Новини", "News": "Новини",
"NoNextUpItemsMessage": "Нищо не е намерено. Започнете да гледате вашите предавания!", "NoNextUpItemsMessage": "Нищо не е намерено. Започнете да гледате вашите предавания!",
"NoSubtitleSearchResultsFound": "Няма намерени резултати.", "NoSubtitleSearchResultsFound": "Няма намерени резултати.",
"NoSubtitles": "Без субтитри", "NoSubtitles": "Без",
"None": "Нищо", "None": "Нищо",
"Normal": "Нормален", "Normal": "Нормален",
"NumLocationsValue": "{0} папки", "NumLocationsValue": "{0} папки",
@ -583,7 +583,7 @@
"OptionMissingEpisode": "Липсващи епизоди", "OptionMissingEpisode": "Липсващи епизоди",
"OptionMonday": "Понеделник", "OptionMonday": "Понеделник",
"OptionNameSort": "Име", "OptionNameSort": "Име",
"OptionNew": "Нов...", "OptionNew": "Нов",
"OptionNone": "Нищо", "OptionNone": "Нищо",
"OptionOnAppStartup": "Като се стартира приложението", "OptionOnAppStartup": "Като се стартира приложението",
"OptionOnInterval": "През интервал", "OptionOnInterval": "През интервал",
@ -640,7 +640,7 @@
"Refresh": "Опресняване", "Refresh": "Опресняване",
"RefreshMetadata": "Опресняване на метаданните", "RefreshMetadata": "Опресняване на метаданните",
"ReleaseDate": "Дата на издаване", "ReleaseDate": "Дата на издаване",
"RememberMe": "Запомняне на данните", "RememberMe": "Запомни ме",
"RemoveFromCollection": "Премахване от колекцията", "RemoveFromCollection": "Премахване от колекцията",
"RemoveFromPlaylist": "Премахване от списъка", "RemoveFromPlaylist": "Премахване от списъка",
"Repeat": "Повтаряне", "Repeat": "Повтаряне",
@ -711,7 +711,7 @@
"TabMusicVideos": "Музикални клипове", "TabMusicVideos": "Музикални клипове",
"TabMyPlugins": "Моите приставки", "TabMyPlugins": "Моите приставки",
"TabNetworks": "Мрежи", "TabNetworks": "Мрежи",
"TabNfoSettings": "Формат за метаданни .nfo", "TabNfoSettings": "Формат за метаданни NFO",
"TabNotifications": "Известия", "TabNotifications": "Известия",
"TabOther": "Други", "TabOther": "Други",
"TabParentalControl": "Родителски контрол", "TabParentalControl": "Родителски контрол",
@ -724,7 +724,7 @@
"TabProfiles": "Профили", "TabProfiles": "Профили",
"TabRecordings": "Записи", "TabRecordings": "Записи",
"TabResponses": "Отговори", "TabResponses": "Отговори",
"TabResumeSettings": "Настройки за продължаване", "TabResumeSettings": "Възобнови",
"TabScheduledTasks": "Планирани задачи", "TabScheduledTasks": "Планирани задачи",
"TabSeries": "Сериали", "TabSeries": "Сериали",
"TabServer": "Сървър", "TabServer": "Сървър",
@ -847,7 +847,7 @@
"BrowsePluginCatalogMessage": "За да видите наличните добавки, прегледайте каталога с добавките.", "BrowsePluginCatalogMessage": "За да видите наличните добавки, прегледайте каталога с добавките.",
"Box": "Кутия", "Box": "Кутия",
"AlwaysPlaySubtitlesHelp": "Поднадписите, съвпадащи с езика от настройките, ще се зареждат, независимо от езика на аудио то.", "AlwaysPlaySubtitlesHelp": "Поднадписите, съвпадащи с езика от настройките, ще се зареждат, независимо от езика на аудио то.",
"BookLibraryHelp": "Поддържат се звукови и текстови книги. Преглед на инструкция за наименоване {1} на книга {0}.", "BookLibraryHelp": "Поддържат се аудио книги такива съдържащи текст. Проверете ръководството за наименуване {1} на книги {0}.",
"Blacklist": "Списък с блокирани", "Blacklist": "Списък с блокирани",
"BirthLocation": "Месторождение", "BirthLocation": "Месторождение",
"Banner": "Банер", "Banner": "Банер",
@ -856,7 +856,7 @@
"Ascending": "Възходящо", "Ascending": "Възходящо",
"AsManyAsPossible": "Колкото е възможно повече", "AsManyAsPossible": "Колкото е възможно повече",
"Artist": "Артист", "Artist": "Артист",
"AroundTime": "Към {0}", "AroundTime": "Около {0}",
"Anytime": "По всяко време", "Anytime": "По всяко време",
"AnyLanguage": "Който и да е език", "AnyLanguage": "Който и да е език",
"AlwaysPlaySubtitles": "Постоянно изпълнение", "AlwaysPlaySubtitles": "Постоянно изпълнение",
@ -879,9 +879,9 @@
"BoxSet": "Комплект", "BoxSet": "Комплект",
"AuthProviderHelp": "Избор на доставчик на услуга за Автентификация, която ще се използва за автентификация на потребителската парола.", "AuthProviderHelp": "Избор на доставчик на услуга за Автентификация, която ще се използва за автентификация на потребителската парола.",
"AllowedRemoteAddressesHelp": "Списък с IP адреси или IP/маска записи, разделени със запетая, които ще имат отдалечен достъп. Ако полето не е попълнено всички адреси ще имат отдалечен достъп.", "AllowedRemoteAddressesHelp": "Списък с IP адреси или IP/маска записи, разделени със запетая, които ще имат отдалечен достъп. Ако полето не е попълнено всички адреси ще имат отдалечен достъп.",
"BurnSubtitlesHelp": "Определя дали сървърът трябва да записва субтитри във видеоклиповете припрекодиране. Избягването на това значително ще подобри производителността. Изберете Auto, за да запишете формати, базирани на изображения (VOBSUB, PGS, SUB, IDX) и някои ASS или SSA субтитри.", "BurnSubtitlesHelp": "Определя дали сървърът трябва да записва субтитри във видеофайлове при прекодиране. Избягването на това значително ще подобри производителността. Изберете Auto, за да запишете формати, базирани на изображения (VOBSUB, PGS, SUB, IDX) и някои ASS или SSA субтитри.",
"AllowFfmpegThrottlingHelp": "Когато прекодирането или запазването на видео стигне достатъчно далеч напред от текущата позиция за възпроизвеждане, поставете на пауза процеса, така ще се изразходват по-малко ресурси. Това е най-полезно, когато се гледа, без да се търси често из видеото. Изключете това, ако имате проблеми с възпроизвеждането.", "AllowFfmpegThrottlingHelp": "Когато прекодирането или запазването на видео стигне достатъчно далеч напред от текущата позиция за възпроизвеждане, поставете на пауза процеса, така ще се изразходват по-малко ресурси. Това е най-полезно, когато се гледа, без да се търси често из видеото. Изключете това, ако имате проблеми с възпроизвеждането.",
"AllowOnTheFlySubtitleExtractionHelp": "Вградените субтитри могат да бъдат извлечени от видеоклиповете и прехвърлени към клиентите като обикновен текст, за да се предотврати транскодирането на видеото. В някои системи това може да отнеме много време и да спре възпроизвеждането на видео по време на процеса на извличане. Деактивирайте това, за да има вградени субтитри, записани с видео кодиране, когато те не се поддържат от клиентското устройство.", "AllowOnTheFlySubtitleExtractionHelp": "Вградените субтитри могат да бъдат извлечени от видеофайловете и прехвърлени към клиентите като обикновен текст, за да се предотврати транскодирането на видеото. В някои системи това може да отнеме много време и да спре възпроизвеждането на видео по време на процеса на извличане. Деактивирайте това, за да има вградени субтитри, записани с видео кодиране, когато те не се поддържат от клиентското устройство.",
"CinemaModeConfigurationHelp": "Режимът на кино носи театрално изживяване направо във вашата всекидневна с възможност за пускане на трейлъри и персонализирани интродукции преди основния филм.", "CinemaModeConfigurationHelp": "Режимът на кино носи театрално изживяване направо във вашата всекидневна с възможност за пускане на трейлъри и персонализирани интродукции преди основния филм.",
"ChangingMetadataImageSettingsNewContent": "Промените в настройките за изтегляне на метаданни или изображения ще се прилагат само за ново съдържание, добавено към вашата библиотека. За да приложите промените към съществуващите заглавия, ще трябва да обновите метаданните им ръчно.", "ChangingMetadataImageSettingsNewContent": "Промените в настройките за изтегляне на метаданни или изображения ще се прилагат само за ново съдържание, добавено към вашата библиотека. За да приложите промените към съществуващите заглавия, ще трябва да обновите метаданните им ръчно.",
"DefaultMetadataLangaugeDescription": "Това са настройки по подразбиране и могат да се променят на база библиотека.", "DefaultMetadataLangaugeDescription": "Това са настройки по подразбиране и могат да се променят на база библиотека.",
@ -903,5 +903,653 @@
"DeleteImageConfirmation": "Сигурнили сте че искате да премахнете това Изображение?", "DeleteImageConfirmation": "Сигурнили сте че искате да премахнете това Изображение?",
"DeleteImage": "Премахване на Исображение", "DeleteImage": "Премахване на Исображение",
"ButtonTogglePlaylist": "Списък с изпълнения", "ButtonTogglePlaylist": "Списък с изпълнения",
"ButtonToggleContextMenu": "Повече" "ButtonToggleContextMenu": "Повече",
"ErrorSavingTvProvider": "Има проблем със запазването на ТВ доставчика.Убедете се ,че е достъпен и опитайте отново.",
"ErrorPleaseSelectLineup": "Моля изберете списък и опитайте отново.Ако няма налични списъци се убедете ,че името,паролата и пощенския код са точни.",
"ErrorMessageStartHourGreaterThanEnd": "Времето за край трябва да бъде по-голямо от началното време.",
"ErrorGettingTvLineups": "Има проблем при опита да бъдат свалени списъци с ТВ.Убедете се ,че информацията е правилна и опитайте отново.",
"ErrorDeletingItem": "Има проблем при опита да бъде изтрит файла от сървъра.Убедете се ,че сървъра има право да трие папки и опитайте отново.",
"ErrorAddingXmlTvFile": "Има проблем при достъпа на XMLTV файла.Уверете се ,че е наличен и пробвайте отново.",
"ErrorAddingTunerDevice": "Възникна проблем при добавянето на тунера. Уверете се ,че устройството е достъпно и пробвайте отново.",
"ErrorAddingMediaPathToVirtualFolder": "Има проблем при добавянето на пътя.Моля уверете се ,че е валиден и сървъра има достъп до папката.",
"Episode": "Епизод",
"EnableDetailsBannerHelp": "Покажи картинка с банер в горната част на страницата с детайли.",
"EnableDetailsBanner": "Банер с подробности",
"EnableThemeVideosHelp": "Пускай тематични видеа на заден план ,докато се разглежда библиотеката.",
"EnableThemeVideos": "Тематични видеа",
"EnableThemeSongsHelp": "Пускай тематична музика ,докато се разглежда библиотеката.",
"EnableStreamLoopingHelp": "Включи това ,ако поточното видео се предава на кратки интервали и е необходимо да се изпращат заявки постоянно.Включването на тази опция без нужда може да породи проблеми.",
"EnableStreamLooping": "Автоматично повторение на поточни видеа",
"EnablePhotosHelp": "Снимките ще бъдат разпознати и показани заедно с другите медийни файлове.",
"EnablePhotos": "Покажи снимки",
"EnableNextVideoInfoOverlayHelp": "В края на видеото покажи информация за следващия файл от текущия списък.",
"EnableNextVideoInfoOverlay": "Покажи информация за следващото видео по време на възпроизвеждане",
"EnableHardwareEncoding": "Включи хардуерно енкодиране",
"EnableExternalVideoPlayersHelp": "Меню от външен плеър ще бъде показано при стартиране на възпроизвеждането.",
"EnableDisplayMirroring": "Дублиране на дисплей",
"EnableColorCodedBackgrounds": "Цветни \"декори\"",
"EnableBackdropsHelp": "Показвай \"декори\" на заден план за някои страници ,докато се разглежда библиотеката.",
"DrmChannelsNotImported": "Канали със DRM няма да бъдат импортирани.",
"Down": "Долу",
"DoNotRecord": "Не записвай",
"DisplayModeHelp": "Изберете какво оформление желаете за интерфейса.",
"DisplayMissingEpisodesWithinSeasonsHelp": "Това трябва да бъде включено и за ТВ библиотеки в настройките на сървъра.",
"DisplayMissingEpisodesWithinSeasons": "Показвай липсващите епизоди от сезона",
"DisplayInOtherHomeScreenSections": "Покажи на главната страница (като \"последно добавени\" и \"продължи да гледаш\")",
"DisplayInMyMedia": "Покажи на главната страница",
"Disconnect": "Прекъсване",
"Disabled": "Изключено",
"DirectStreaming": "Директно възпроизвеждане",
"DirectStreamHelp2": "Директното възпроизвеждане на файла използва минимална процесорна мощност без загуба на качество.",
"DirectStreamHelp1": "Файлът е съвместим с устройството по отношение на резолюция и тип (H.264, AC3 и т.н.), но контейнера е несъвместим (mkv, avi, wmv, т.н.).Файлът ще бъде \"препакетиран\" преди да се възпроизведе от устройството.",
"DirectPlaying": "Директен метод на възпроизвеждане",
"DetectingDevices": "Откриване на устройства",
"Descending": "Намаляващ",
"Depressed": "Понижен",
"DeleteDeviceConfirmation": "Сигурни ли сте ,че искате да изтриете устройството? Ще се появи отново ,когато потребителят се впише с него.",
"DeinterlaceMethodHelp": "Избери типа деинтерлейсинг ,когато е необходимо транскодиране на подобно съдържание.",
"DefaultSubtitlesHelp": "Субтитрите са заредени според настройките зададени в метадатата на видеофайла.Когато има повече от едни субтитри се зарежда първо зададените в настройките.",
"HeaderFavoriteVideos": "Любими видеа",
"HeaderFavoritePeople": "Любими хора",
"HeaderFavoriteMovies": "Любими филми",
"HeaderFavoriteBooks": "Любими книги",
"HeaderExternalIds": "Външни идентификатори:",
"HeaderEpisodes": "Епизоди",
"HeaderEnabledFieldsHelp": "Махни отметката ,за да го заключиш и да предотвратиш неговата промяна.",
"HeaderDVR": "DVR (Цифрово записващо устройство)",
"HeaderDirectPlayProfileHelp": "Добави профили за директно възпроизвеждане ,за да се укаже кои формати може да възпроизвежда устройството.",
"HeaderDeleteTaskTrigger": "Изтрий \"пусковият механизъм\" за задачи",
"HeaderDeleteProvider": "Изтрий доставчик",
"HeaderDeleteItems": "Изтрий елемент",
"HeaderDeleteItem": "Изтрий елемент",
"HeaderDeleteDevice": "Изтрий устройство",
"HeaderDefaultRecordingSettings": "Стандартни настройки за запис",
"HeaderDateIssued": "Дата на издаване",
"HeaderContainerProfileHelp": "Профилите на различните контейнери показват ограниченията на устройството ,когато се възпроизвеждат определени формати.Ако ограничението е валидно - медията ще бъде транскодирана дори дадения формат да е конфигуриран за директно възпроизвеждане.",
"HeaderConnectionFailure": "Проблем при свързване",
"HeaderConnectToServer": "Свържи се със сървър",
"HeaderConfirmRevokeApiKey": "Отмяна на API ключа",
"HeaderConfirmProfileDeletion": "Потвърди изтриването на профила",
"HeaderConfirmPluginInstallation": "Потвърди инсталирането на плъгина",
"HeaderConfigureRemoteAccess": "Настройка на отдалечения достъп",
"HeaderCodecProfileHelp": "Профилите на различните кодеци показват ограниченията на устройството при тяхното възпроизвеждане.Ако ограничението е валидно - медията ще бъде транскодирана дори дадения кодек да е конфигуриран за директно възпроизвеждане.",
"HeaderChapterImages": "Картинки към раздела",
"HeaderChannelAccess": "Достъп до канали",
"HeaderCancelSeries": "Отмени сериал",
"HeaderCancelRecording": "Отмени запис",
"HeaderBranding": "Оформление",
"HeaderBlockItemsWithNoRating": "Забрани достъпа на елементи без информация за рейтинг:",
"HeaderAudioBooks": "Аудио книги",
"HeaderAppearsOn": "Фигурира в",
"ApiKeysCaption": "Списък с работещите в момента API ключове",
"HeaderApiKeysHelp": "Външните програми се налага да имат API ключ ,за да комуникират правилно със сървъра.Такива се издават при вписването в сървъра или чрез ръчно предоставяне.",
"HeaderAllowMediaDeletionFrom": "Позволи изтриването на медия от",
"HeaderAlert": "Предупреждение",
"HeaderAccessScheduleHelp": "Създай разписание за достъп ,за да го ограничиш до определени часове.",
"HeaderAccessSchedule": "Разписание за достъп",
"HardwareAccelerationWarning": "Включването на хардуерното ускорение може да предизвика нестабилност в някои случаи.Уверете се ,че операционната ви система и видео драйверите са актуални.Ако имате проблеми с възпроизвеждането при включена настройка е необходимо да я изключите.",
"EncoderPresetHelp": "Избери по-бърза стойност ,за да се подобри производителността или по-бавна стойност ,за да се подобри качеството.",
"H264CrfHelp": "Факторът \"постоянна скорост на предаване\" (CRF) е настройката по подразбиране на x264 енкодера.Може да определите стойност между 0 и 51, където най-ниската стойност ще даде по-добро качество (като се вземе предвид,че крайния размер на файла ще се увеличи).Препоръчват се стойности между 18 и 28.Стойността по подразбиране за x264 е 23 ,така че може да я имате за някакъв ориентир.",
"GuideProviderSelectListings": "Избери списъци",
"GroupBySeries": "Групирай по сериали",
"General": "Общи",
"FileReadError": "Има проблем при четенето на файла.",
"FileReadCancelled": "Четенето на файла е преустановено.",
"FileNotFound": "Файлът не е намерен.",
"FetchingData": "Извличане на допълнителни данни",
"Features": "Характеристики",
"FFmpegSavePathNotFound": "Не е намерен FFmpeg в зададения път.FFprobe е също задължителен и трябва да се намира в същата папка.Двете програми обикновено вървят заедно ,когато ги теглите.Уверете се ,че пътя е правилен и опитайте отново.",
"ExtractChapterImagesHelp": "Извличането на снимки от раздел ще позволи на устройствата да възпроизвеждат графични кадри при избора на меню.Този процес може бавен,ресурсно натоварващ и може да е необходимо да се заемат няколко гигабайта дисково пространство.Процесът се извършва при откриването на нови файлове или може да бъде зададен , като планирана задача при слаба активност на сървъра.Това може да бъде конфигурирано в раздела с планирани задачи.Не е препоръчително да се задава изпълнението на такава задача в натоварените часове на сървъра.",
"HttpsRequiresCert": "За да разрешите \"сигурни връзки\" е необходимо да притежавате доверен издател на сертификати ,като Let's Encrypt.Моля въведете ,ако притежавате такъв или изключете \"сигурни връзки\".",
"HeaderXmlSettings": "Настройки на XML",
"HeaderXmlDocumentAttributes": "Атрибути на XML документа",
"HeaderXmlDocumentAttribute": "Атрибут на XML документа",
"HeaderUpcomingOnTV": "Скоро по ТВ",
"HeaderTypeText": "Въведи текст",
"HeaderTypeImageFetchers": "{0} Извличане на картини",
"HeaderTuners": "Тунери",
"HeaderTranscodingProfileHelp": "Добави профили за транскодиране ,за да се види кои формати ще се използват ,когато е необходимо транскодиране.",
"HeaderThisUserIsCurrentlyDisabled": "Този потребител в момента е блокиран",
"HeaderSyncPlayEnabled": "Включване на \"синхронизирано възпроизвеждане\"",
"HeaderSyncPlaySelectGroup": "Присъединяване към група",
"HeaderSubtitleProfilesHelp": "Профилите за субтитри показват форматите поддържани от устройството.",
"HeaderSubtitleProfiles": "Профили за субтитри",
"HeaderSubtitleProfile": "Профил за субтитри",
"HeaderSubtitleDownloads": "Сваляне на субтитри",
"HeaderStopRecording": "Спри запис",
"HeaderSpecialEpisodeInfo": "Информация за специалните епизоди",
"HeaderShutdown": "Изключване",
"HeaderServerAddressSettings": "Настройки за адреса на сървъра",
"HeaderSeriesStatus": "Състояние на сериала",
"HeaderSeriesOptions": "Настройки на сериала",
"HeaderSelectTranscodingPathHelp": "Търси или въведи ръчно пътя ,където искаш да се съхраняват временните файлове при транскодиране.Папката трябва да има права за запис.",
"HeaderSelectTranscodingPath": "Избери папка за временното транскодиране на файлове",
"HeaderSelectServerCachePathHelp": "Търси или въведи ръчно пътя до временните файлове на сървъра.Папката трябва да има права за запис.",
"HeaderSelectServerCachePath": "Избери папка за временните файлове на сървъра",
"HeaderSelectServer": "Избери сървър",
"HeaderSelectMetadataPathHelp": "Търси или въведи ръчно пътя ,където искаш да се съхраняват метаданните.Папката трябва да има права за запис.",
"HeaderSelectMetadataPath": "Избери папка със метаданни",
"HeaderSelectCertificatePath": "Избери папка със сертификат",
"HeaderRestartingServer": "Рестартиране на сървъра",
"HeaderResponseProfileHelp": "Профилите за комуникация дават възможност да се настрои типът информация ,която се изпраща към устройството при възпроизвеждането на определени типове медия.",
"HeaderRemoveMediaLocation": "Премахни папката с медия",
"HeaderRemoteAccessSettings": "Настройки за отдалечен достъп",
"HeaderRecordingPostProcessing": "Последваща обработка на записи",
"HeaderRecordingOptions": "Настройки за запис",
"HeaderPluginInstallation": "Инсталиране на добавка",
"HeaderPlaybackError": "Грешка при възпроизвеждане",
"HeaderPlayback": "Възпроизвеждане на медия",
"HeaderPinCodeReset": "Зануляване на пин код",
"HeaderPhotoAlbums": "Фото албум",
"HeaderPasswordReset": "Зануляване на парола",
"HeaderOtherItems": "Други елементи",
"HeaderNextVideoPlayingInValue": "Следващото видео ще се възпроизведе след {0}",
"HeaderNavigation": "Навигация",
"HeaderLiveTvTunerSetup": "Настройка на тв тунера",
"HeaderKodiMetadataHelp": "За да включиш или изключиш използването на NFO метаданните влез в настройките за библиотеки на сървъра и намери секцията за съхранение.",
"HeaderKeepSeries": "Запази сериалите",
"HeaderKeepRecording": "Запази записите",
"HeaderItems": "Елементи",
"HeaderImageOptions": "Настройки на картини",
"HeaderIdentifyItemHelp": "Въведете един или повече критерии за търсене.Премахнете ,ако искате да увеличите резултатите при търсенето.",
"HeaderIdentificationHeader": "Идентификационен хедър",
"HeaderIdentificationCriteriaHelp": "Въведете пони един критерии.",
"HeaderHttpsSettings": "HTTPS настройки",
"HeaderHttpHeaders": "HTTP Хедъри",
"HeaderHome": "Главна",
"HeaderFetcherSettings": "Настройки на програмата за изтегляне",
"HeaderFavoritePlaylists": "Любими списъци",
"LabelDeathDate": "Дата на смърт:",
"LabelDateAddedBehaviorHelp": "Ако е взета стойност от метаданните, тя винаги ще бъде използвана преди някоя от тези опции.",
"LabelDateAddedBehavior": "за ново съдържание се приема дата на добавяне:",
"LabelCustomDeviceDisplayNameHelp": "Добави ръчно име ,с което ще се показва устройството или остави това ,което е по подразбиране.",
"LabelCorruptedFrames": "Повредени кадри:",
"LabelCancelled": "Отменено",
"LabelCache": "Временни файлове:",
"LabelBurnSubtitles": "Вграждане на субтитри:",
"LabelBlockContentWithTags": "Блокирай елементи с етикети:",
"LabelBlastMessageIntervalHelp": "Определя продължителността в секунди при \"бомбардирането\" с активни съобщения.",
"LabelBlastMessageInterval": "Интервал на активните съобщения (в секунди)",
"LabelBitrate": "Битрейт:",
"LabelBirthYear": "Година на раждане:",
"LabelBirthDate": "Дата на раждане:",
"LabelBindToLocalNetworkAddressHelp": "Не задължително.Замени локалния IP адрес за \"закачане\" към http сървъра.Ако полето е празно сървъра ще \"закачи\" всички налични адреси.Промяната на тази стойност изисква рестарт на сървъра.",
"LabelBindToLocalNetworkAddress": "\"Закачи\" към локален мрежов адрес:",
"LabelAutomaticallyRefreshInternetMetadataEvery": "Автоматично обновявай метаданните от Интернет:",
"LabelAuthProvider": "Доставчик за идентификация:",
"LabelAudioSampleRate": "Честотна дискретизация на аудиото:",
"LabelAudioCodec": "Аудио кодек:",
"LabelAudioChannels": "Аудио канали:",
"LabelAudioBitrate": "Скорост на предаване на аудиото:",
"LabelAudioBitDepth": "Битова дълбочина на аудиото:",
"LabelAudio": "Аудио",
"LabelAppNameExample": "Примерно: Sickbeard, Sonarr",
"LabelAllowedRemoteAddressesMode": "Режим на филтъра за външни ИП адреси:",
"LabelAllowedRemoteAddresses": "Филтър за външни ИП адреси:",
"LabelAllowHWTranscoding": "Разреши хардуерно транскодиране",
"LabelAll": "Всички",
"LabelAlbumArtMaxWidthHelp": "Максимална резолюция на обложките за албуми показани чрез upnp:albumArtURI.",
"LabelAlbumArtMaxHeightHelp": "Максимална резолюция на обложките за албуми показани чрез upnp:albumArtURI.",
"LabelAlbumArtMaxHeight": "Максимална височина на обложките за албуми:",
"LabelAlbumArtHelp": "PN се използва за обложки на албуми dlna:profileID attribute on upnp:albumArtURI.Някои устройства се нуждаят от определена стойност ,независимо от размера на картината.",
"LabelAirsBeforeSeason": "Ще бъде излъчен преди сезон:",
"LabelAirsBeforeEpisode": "Ще бъде излъчен преди епизод:",
"LabelAirsAfterSeason": "Ще бъде излъчен след сезон:",
"LabelAccessStart": "Начално време:",
"LabelAccessEnd": "Време на приключване:",
"LabelAccessDay": "Ден от седмицата:",
"LabelAbortedByServerShutdown": "(Прекъснато поради изключването на сървъра)",
"Kids": "Деца",
"Items": "Елементи",
"ItemCount": "{0} Елементи",
"ImportFavoriteChannelsHelp": "Ако е включено само канали ,които са отбелязани ,като любими на устройството ще бъдат добавени.",
"LabelFriendlyName": "Лесно име:",
"LabelFormat": "Формат:",
"LabelFolder": "Папка:",
"LabelFileOrUrl": "Файл или URL:",
"LabelExtractChaptersDuringLibraryScanHelp": "Генерирай изображения от различните раздели при импортиране на видеофайлове (по време на сканиране на библиотеката).В противен случай те ще бъдат извлечени при планиране на такава задача,което ще позволи сканирането на библиотеката да се извърши по-бързо.",
"LabelExtractChaptersDuringLibraryScan": "Извлечи изображения от разделите при сканиране на библиотеката",
"LabelBaseUrlHelp": "Добавя потребителска папка към адреса на съръвра.Например: <code>http://example.com/<b>&lt;baseurl&gt;</b></code>",
"LabelBaseUrl": "Основен URL:",
"LabelEndDate": "Крайна дата:",
"LabelEnableSingleImageInDidlLimitHelp": "Някои устройства няма да го покажат правилно ,ако множество изображения са вградени в Didl.",
"LabelEnableSingleImageInDidlLimit": "Ограничи до едно вградено изображение",
"LabelEnableHttpsHelp": "Позволява на сървъра да \"слуша\" на предварително зададен HTTPS порт.Необходимо е да има настроен валиден сертификат ,за да работи правилно настройката.",
"LabelEnableHttps": "Включи HTTPS",
"LabelEnableHardwareDecodingFor": "Включи хардуерно декодиране за:",
"LabelEnableDlnaDebugLoggingHelp": "Създава големи журнали файлове и е редно да се използва само с цел отстраняване на проблеми.",
"LabelEnableBlastAliveMessagesHelp": "Включи ,ако сървъра не се открива правилно от други UPnP устройства в мрежата.",
"LabelEnableBlastAliveMessages": "\"Бомбардира\" активните съобщения",
"LabelEnableAutomaticPortMapHelp": "Автоматично пренасочва външните портове на рутера към локалните портове на сървъра чрез UPnP.Тази опция може да на работи при някои модели рутери или мрежови конфигурации.Промените влизат в сила само след рестарт на сървъра.",
"LabelEmbedAlbumArtDidlHelp": "Някои устройства предпочитат този метод за извличане на обложки за албуми.При други може да има проблем при възпроизвеждането ,ако опцията е включена.",
"LabelEasyPinCode": "Лесен пин код:",
"LabelDynamicExternalId": "{0} Ид:",
"LabelDroppedFrames": "Пропуснати кадри:",
"LabelDiscNumber": "Диск номер:",
"LabelDidlMode": "DIDL режим:",
"LabelDeinterlaceMethod": "Метод на деинтерлейсинг:",
"LabelDefaultUserHelp": "Определя коя потребителска библиотека ще се показва на свързаните устройства.Това може да бъде отменено за всяко отделно устройство чрез използване на профилите.",
"LabelDefaultUser": "Потребител по подразбиране:",
"LabelDefaultScreen": "Дисплей по подразбиране:",
"LabelPostProcessor": "Приложение за последваща обработка:",
"LabelPleaseRestart": "Промените ще влязат в сила след ръчно презареждане на уеб клиента.",
"LabelPlayMethod": "Метод на възпроизвеждане:",
"LabelPlayerDimensions": "Размери на плеъра:",
"LabelPlayer": "Плеър:",
"LabelPersonRoleHelp": "Пример: Шофьор на камион за сладолед",
"LabelPasswordRecoveryPinCode": "Пин код:",
"LabelPasswordResetProvider": "Услуга за нулиране на парола:",
"LabelParentNumber": "Родителски номер:",
"LabelOptionalNetworkPathHelp": "Ако папката е споделена във вашата мрежа,предоставянето на споделения път ще позволи приложения инсталирани на други устройства да имат достъп до медията директно.Например, {0} or {1}.",
"LabelNumber": "Номер:",
"LabelNotificationEnabled": "Включване на известие",
"LabelNewsCategories": "Категории новини:",
"LabelNightly": "Тестов",
"LabelStable": "Стабилна",
"LabelChromecastVersion": "Версия на Chromecast",
"LabelMusicStreamingTranscodingBitrateHelp": "Посочете максимален битрейт при поточно предаване на музика.",
"LabelMusicStreamingTranscodingBitrate": "Битрейт при транскодиране на музика:",
"LabelMoviePrefixHelp": "Ако има добавен префикс към филмовите заглавия го въведете тук ,за да може сървъра да го обработи правилно.",
"LabelMoviePrefix": "Префикс на филма:",
"LabelMovieCategories": "Филмови категории:",
"LabelMonitorUsers": "Следете активността от:",
"LabelMinResumeDurationHelp": "Най-краткото време в секунди позволяващо ви да запазите текущата позиция на възпроизвеждане и впоследствие да я възобновите.",
"LabelMethod": "Метод:",
"LabelMetadataSaversHelp": "Изберете форматите на файловете, в които да запишете метаданните си.",
"LabelMetadataSavers": "Хранилища на метаданни:",
"LabelMetadataReadersHelp": "Подреди по важност любимите си източници на локални метаданни.Първият намерен файл ще бъде прочетен.",
"LabelMetadataReaders": "Четци на метаданни:",
"LabelMetadataDownloadersHelp": "Включи и подреди по важност любимите си програми за изтегляне на метаданни.Тези с по-нисък ранг ще се използват само за попълване на липсваща информация.",
"LabelMessageTitle": "Заглавие на съобщението:",
"LabelMessageText": "Текст на съобщението:",
"LabelMaxStreamingBitrateHelp": "Определете максималния битрейт при излъчване.",
"LabelMaxResumePercentageHelp": "Приема се ,че файловете се възпроизведени до края ,ако се спре след този момент.",
"LabelMaxChromecastBitrate": "Качество на излъчване чрез Chromecast:",
"LabelMatchType": "Тип съвпадение:",
"LabelLoginDisclaimerHelp": "Съобщението ще се показва в долната част на страницата за вход.",
"LabelLoginDisclaimer": "Предупреждение при вход:",
"LabelLockItemToPreventChanges": "Заключи дадения елемент ,за да забраниш бъдещи промени",
"LabelLineup": "Редица:",
"LabelLibraryPageSizeHelp": "Настройва броя елементи ,които ще се показват в страницата на библиотеката.Въведете 0 ,за да забраните номерирането.",
"LabelLibraryPageSize": "Размер на страницата на библиотеката:",
"LabelKodiMetadataUser": "Запази данните за активността на потребителя в файл тип NFO за:",
"LabelKodiMetadataEnablePathSubstitutionHelp": "Активирай подмяната на пътя за изображения ,като се използват настройките зададени от сървъра.",
"LabelKodiMetadataEnablePathSubstitution": "Активирай подмяната на пътя",
"LabelKodiMetadataEnableExtraThumbsHelp": "Когато се свалят изображения те могат да бъдат запазени и в двете полета extrathumbs и extrafanart за по-добра съвместимост с облиците на Коди.",
"LabelKodiMetadataEnableExtraThumbs": "Копирай extrafanart в полето extrathumbs",
"LabelKodiMetadataDateFormatHelp": "Всички дати в NFO файловете ще бъдат анализирани в този формат.",
"LabelKidsCategories": "Детски категории:",
"LabelKeepUpTo": "Пази до:",
"LabelInNetworkSignInWithEasyPasswordHelp": "Използвай лесен пин код за вписване от потребителите в домашната мрежа.Основната ви парола ще се използва ,само когато сте вписвате отдалечено.Ако полето за пин код е празно няма да имате нужда да се вписвате с парола в домашната мрежа.",
"LabelInNetworkSignInWithEasyPassword": "Включи вписване в мрежата с лесен пин код",
"LabelImportOnlyFavoriteChannels": "Ограничи до канали обозначени ,като любими",
"LabelImageFetchersHelp": "Включете и подредете любимите ви услуги за извличане на изображения по важност.",
"LabelIconMaxWidthHelp": "Максимална резолюция на иконите показани чрез upnp:icon.",
"LabelIconMaxWidth": "Максимална ширина на икона:",
"LabelIconMaxHeightHelp": "Максимална резолюция на иконите показани чрез upnp:icon.",
"LabelIconMaxHeight": "Максимална височина на икона:",
"LabelHardwareAccelerationTypeHelp": "Хардуерното ускорение се нуждае от допълнителни настройки.",
"LabelEncoderPreset": "Шаблон за енкодиране чрез H264 и H265 :",
"LabelH264Crf": "Значение на CRF H264-кодиране:",
"LabelGroupMoviesIntoCollectionsHelp": "Когато се показват списъци с филми, филмите, принадлежащи към колекция, ще бъдат показани като един общ елемент.",
"LabelServerNameHelp": "Това е името ,което ще се ползва ,за да се разпознава сървъра и по подразбиране съвпада с името на компютъра.",
"LabelRefreshMode": "Режим на опресняване:",
"LabelRecordingPathHelp": "Посочете местоположението по подразбиране, за запазване на записи.Ако полето е празно ще се използва папката на сървъра.",
"LabelRecord": "Запис:",
"LabelReasonForTranscoding": "Причина за транскодиране:",
"LabelProtocolInfoHelp": "Стойността, която ще бъде използвана при отговор към GetProtocolInfo заявките от устройството.",
"LabelProtocolInfo": "Информация за протокола:",
"LabelPostProcessorArgumentsHelp": "Използвай {path},като път за записване на файла.",
"LabelPostProcessorArguments": "Аргументи на командния ред след обработка:",
"EnableBlurhashHelp": "Изображенията, които все още се зареждат, ще се показват чрез функцията\"размито запълване\"",
"EnableBlurhash": "Активиране на функцията \"размито запълване\" за изображения",
"UnsupportedPlayback": "Джелифин не може да дешифрира съдържание, защитено с DRM, но въпреки това цялото съдържание ще бъде обработено, включително защитените заглавия. Някои файлове могат да изглеждат напълно черни поради криптиране или други неподдържани функции, например интерактивни заглавия.",
"OnApplicationStartup": "При стартиране на приложението",
"EveryXHours": "На всеки {0} часа",
"EveryHour": "Всеки час",
"EveryXMinutes": "Всеки {0} минути",
"OnWakeFromSleep": "При \"събуждане от сън\"",
"WeeklyAt": "{0}сек в {1}",
"DailyAt": "Ежедневно в {0}",
"LastSeen": "Последно видян {0}",
"PersonRole": "като {0}",
"ListPaging": "{0}-{1} от {2}",
"WriteAccessRequired": "Джелифин сървъра изисква достъп с права за запис до тази папка. Моля, осигурете достъп с права за запис и опитайте отново.",
"PathNotFound": "Пътят не можа да бъде намерен. Моля, уверете се, че пътят е валиден и опитайте отново.",
"Yesterday": "Вчера",
"YadifBob": "YADIF х2",
"Yadif": "YADIF (Yet Another DeInterlacing Filter)",
"XmlTvSportsCategoriesHelp": "Програмите от тези категории ще се показват като спортни програми.За разделяне на множество използвайте '|'.",
"XmlTvPathHelp": "Път до XMLTV файла.Джелифин ще чете от този файл и периодично ще го проверява за актуализации.Ваша грижа е да го създадете и редовно да го обновявате.",
"XmlTvKidsCategoriesHelp": "Програмите с тези категории ще се показват като програми за деца.За разделяне на множество използвайте '|'.",
"XmlTvNewsCategoriesHelp": "Програмите от тези категории ще се показват като новинарски програми.За разделяне на множество използвайте '|'.",
"XmlTvMovieCategoriesHelp": "Програмите от тези категории ще се показват като филми.За разделяне на множество използвайте '|'.",
"XmlDocumentAttributeListHelp": "Тези атрибути се прилагат към коренния елемент на всеки XML отговор.",
"Whitelist": "Бял списък",
"ViewPlaybackInfo": "Вижте информация за възпроизвеждането",
"VideoRange": "Диапазон на видео",
"ValueTimeLimitSingleHour": "Времеви лимит: 1 час",
"ValueTimeLimitMultiHour": "Времеви лимит {0} часове",
"ValueContainer": "Контейнер: {0}",
"UserAgentHelp": "Предоставяне на персонализиран ползавтел-агент HTTP хедър.",
"Up": "Нагоре",
"Unrated": "Без категории",
"UninstallPluginConfirmation": "Сигурни ли сте ,че искате да премахнете {0}?",
"Uniform": "Еднороден",
"TvLibraryHelp": "Прегледайте {0}ръководството за именуване на ТВ{1}.",
"Transcoding": "Транскодиране",
"Track": "Пътека",
"TitleHostingSettings": "Настройки за хостинг",
"TitleHardwareAcceleration": "Хардуерно ускорение",
"TabNetworking": "Работа в мрежа",
"TabDVR": "ДВР",
"SystemDlnaProfilesHelp": "Системните профили са с достъп \"само за четене\".При промяна в системния профил ще бъде създаден нов персонализиран профил.",
"SyncPlayAccessHelp": "Избери нивото на достъп ,който този потребител ще има за услугата \"Синхронизирано възпроизвеждане\".С нейна помощ може да синхронизирате възпроизвеждането с други устройства.",
"SubtitleOffset": "Изместване на субтитрите",
"SubtitleDownloadersHelp": "Включи и подреди по собствени предпочитания услугите за сваляне на субтитри.",
"SubtitleAppearanceSettingsDisclaimer": "Настройките не могат да се приложат за графични субтитри (PGS, DVD, т.н.) или ASS/SSA ,защото те зареждат свои стилове.",
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Настройките важат за всеки Chromecast поток стартиран от това устройство.",
"StopRecording": "Спри запис",
"SortName": "Подреди по име",
"SortChannelsBy": "Подреди канали по:",
"SmartSubtitlesHelp": "Когато аудиото е чуждоезично ще бъдат заредени субтитри според зададените настройки за език.",
"ErrorAddingListingsToSchedulesDirect": "Възникна грешка при добавянето на списъка към вашия \"Schedules Direct\" акаунт.Услугата позволява определен брой списъци към един акаунт.Ще е необходимо да влезете в акаунта си (през сайта на услугата) и да отстраните другите списъци преди да продължите с добавянето на нови.",
"LabelIdentificationFieldHelp": "Подниз или регулярен израз с различаване на главни букви.",
"EnableFastImageFadeInHelp": "Използвай бързи анимации преходи",
"EnableFastImageFadeIn": "Бързи анимации",
"LabelScreensaver": "Скрийнсейвър:",
"LabelScheduledTaskLastRan": "Последно пускан {0}, заел {1}.",
"LabelRuntimeMinutes": "Продължителност (в минути):",
"LabelRequireHttpsHelp": "Ако е отметнато сървъра ще пренасочва автоматично всички заявка от HTTP към HTTPS.Няма никакъв ефект ,ако сървъра не \"слуша\" по HTTPS.",
"LabelRequireHttps": "Изисква HTTPS",
"LabelRemoteClientBitrateLimitHelp": "Допълнително ограничаване битрейта на поточното предаване за всички мрежови устройства.Това е необходимо ,за да не допуснете устройствата да изискват по-висок битрейт, отколкото вашата интернет връзка позволява.Това може да доведе до повишено натоварване на процесора на вашия сървър, за щото видеата ще се прекодират \"в движение\" до по-нисък битрейт.",
"LabelTranscodingThreadCount": "Количество транскодирани потоци :",
"LabelTranscodingProgress": "Прогрес на транскодирането:",
"LabelTranscodingFramerate": "Честота на кадрите при транскодиране:",
"LabelTranscodes": "Транскодирания:",
"LabelTranscodePath": "Път за транскодиране:",
"LabelTranscodingContainer": "Контейнер:",
"LabelTrackNumber": "Номер на песен:",
"LabelTextBackgroundColor": "Цвят на фона на текста:",
"LabelTagline": "Ключова фраза:",
"LabelTVHomeScreen": "Главна страница в режим ТВ:",
"LabelSyncPlayAccess": "Достъп до \"синхронизирано възпроизвеждане\"",
"LabelSyncPlayAccessNone": "Изключено за този потребител",
"LabelSyncPlayAccessJoinGroups": "Разрешаване на потребителя да се присъединява към групи",
"LabelSyncPlayAccessCreateAndJoinGroups": "Разрешаване на потребителя да създава и да се присъединява към групи",
"LabelSyncPlayLeaveGroupDescription": "Деактивирай \"синхронизирано възпроизвеждане\"",
"LabelSyncPlayLeaveGroup": "Напусни групата",
"LabelSyncPlayNewGroupDescription": "Създай нова група",
"LabelSyncPlayNewGroup": "Нова група",
"LabelSyncPlaySyncMethod": "Метод за синхронизиране:",
"LabelSyncPlayPlaybackDiff": "Разлика във времето на възпроизвеждане:",
"MillisecondsUnit": "мс",
"LabelSyncPlayTimeOffset": "Компенсиране на разликата във времето със сървъра:",
"LabelSubtitleFormatHelp": "Пример: srt",
"LabelSubtitleDownloaders": "Услуги за сваляне на субтитри:",
"LabelStreamType": "Вид на потока:",
"LabelStopping": "Спиране",
"LabelSportsCategories": "Спортни категории:",
"LabelSoundEffects": "Звукови ефекти:",
"LabelSortTitle": "Подреди по заглавие:",
"LabelSonyAggregationFlags": "\"Флагове\" за статистическа обработка на Сони:",
"LabelSkipIfGraphicalSubsPresentHelp": "Наличието на текстови версии на субтитрите ще доведе до по-ефективна доставка и намаляване на вероятността от транскодиране на видеото.",
"LabelSkipIfAudioTrackPresentHelp": "Махнете отметката ,за да се гарантира ,че всички видеофайлове имат субтитри,независимо от езика на аудиото им.",
"LabelSkin": "Облик:",
"LabelSize": "Размер:",
"LabelSimultaneousConnectionLimit": "Ограничение на броя едновременни потоци:",
"LabelServerName": "Име на сървъра:",
"LabelServerHostHelp": "192.168.1.100:8096 или https://myserver.com",
"LabelServerHost": "Хост:",
"LabelSendNotificationToUsers": "Изпрати уведомление до:",
"LabelSelectFolderGroupsHelp": "Папките ,които не са отметнати ще се показват самостоятелно с техен изглед.",
"LabelSelectFolderGroups": "Автоматично групира съдържанието от следните папки в режим \"изглед\" като Филми, Музика и ТВ:",
"MessageConfirmRemoveMediaLocation": "Сигурни ли сте ,че искате да премахнете мястото?",
"MessageConfirmRecordingCancellation": "Отмяна на записа?",
"MessageConfirmProfileDeletion": "Сигурни ли сте ,че искате да изтриете този профил?",
"MessageConfirmDeleteTunerDevice": "Сигурни ли сте ,че искате да изтриете това устройство?",
"MessageConfirmDeleteGuideProvider": "Сигурни ли се ,че искате да изтриете доставчика на справочника?",
"MessageConfirmAppExit": "Искате ли да излезете?",
"MessageAreYouSureDeleteSubtitles": "Сигурни ли се ,че искате да изтриете файла със субтитри?",
"MediaIsBeingConverted": "Медията е конвертирана във формат ,който е съвместим с устройството ,което ще я възпроизведе.",
"MediaInfoSoftware": "Софтуер",
"MediaInfoTimestamp": "Времеви отпечатък",
"MediaInfoSampleRate": "Кадрова честота",
"MediaInfoRefFrames": "Ref кадри",
"MediaInfoPixelFormat": "Пикселен формат",
"MediaInfoCodecTag": "Етикет на кодека",
"MediaInfoBitDepth": "Дълбочина на цвета",
"MediaInfoAnamorphic": "Анаморфно",
"MapChannels": "Разпредели канали",
"ManageRecording": "Управление на записа",
"ManageLibrary": "Управление на библиотеката",
"LiveBroadcasts": "Предавания на живо",
"LeaveBlankToNotSetAPassword": "Можете да оставите това поле празно и да не задавате парола.",
"LearnHowYouCanContribute": "Научете как можете да допринесете.",
"LaunchWebAppOnStartupHelp": "Отвори уеб клиента във браузъра по подразбиране при първото стартиране на сървъра.Това няма да се случи при използване на функцията на сървъра за рестартиране.",
"LaunchWebAppOnStartup": "Стартирай уеб интерфейса ,когато се стартира сървъра",
"LanNetworksHelp": "Списък разделен със запетая съдържащ ИП адреси или записи за ИП/мрежова маски отнасящи се за мрежи ,които ще се считат за локални ,когато се налагат ограничения в честотната лента.Ако е зададено всички други ИП адреси ще се считат за принадлежащи към външни мрежи и за тях ще важат правилата за ограничения на външни ИП -та.Ако полето е празно ще се счита ,че само подмрежата на сървъра е част от локалната мрежа.",
"LabelffmpegPathHelp": "Пътят към файла на приложението ffmpeg или папката, съдържаща ffmpeg.",
"LabelffmpegPath": "Път към FFmpeg:",
"LabelZipCode": "Пощенски код:",
"LabelXDlnaDoc": "Схема X-DLNA:",
"LabelXDlnaCapHelp": "Определя съдържанието на елемента X_DLNACAP във urn:schemas-dlna-org:device-1-0 в пространството от имена.",
"LabelXDlnaCap": "Свойства на X-Dlna:",
"LabelWeb": "Уеб:",
"LabelVideoResolution": "Видео резолюция:",
"LabelVideoCodec": "Видео кодек:",
"LabelVideoBitrate": "Видео битрейт:",
"DashboardArchitecture": "Архитектура: {0}",
"DashboardOperatingSystem": "Операционна система: {0}",
"DashboardServerName": "Сървър: {0}",
"DashboardVersionNumber": "Версия: {0}",
"LabelVersionInstalled": "{0} Инсталирано",
"LabelValue": "Стойност:",
"LabelVaapiDeviceHelp": "Това е възелът на визуализация, който се използва при хардуерно ускорение.",
"LabelVaapiDevice": "Устройство VA-API:",
"LabelUserRemoteClientBitrateLimitHelp": "Замени глобалната стойност по подразбиране, зададена в настройките за възпроизвеждане на сървъра.",
"LabelUserLoginAttemptsBeforeLockout": "Неуспешни опити за влизане, преди потребителският акаунт да бъде заключен:",
"LabelUserLibraryHelp": "Изберете коя библиотека да се показва на устройството.Оставете полето празно ,за да работят настройките по подразбиране.",
"LabelUserAgent": "Потребителски агент:",
"LabelUseNotificationServices": "Използвайте следните услуги:",
"LabelTypeMetadataDownloaders": "{0} услуги за сваляне на метаданни:",
"LabelTunerType": "Тип на тунера:",
"LabelTunerIpAddress": "ИП адрес на тунера:",
"LabelTranscodingThreadCountHelp": "Изберете максималния брой процесорни нишки ,които ще се използват при транскодиране.Намаляването на броя на нишките ще намали използването на процесора, но може да не преобразува достатъчно бързо за да осигури гладко възпроизвеждане.",
"MessageForgotPasswordFileCreated": "Следния файл беше създаден на вашия сървър и съдържа инструкции как да постъпите:",
"MessageFileReadError": "Възникна грешка при четенето на файла.Моля опитайте отново.",
"MessageEnablingOptionLongerScans": "Включването на тази опция значително ще удължи сканирането на библиотеките.",
"MessageDownloadQueued": "Свалянето е на опашката.",
"MessageDirectoryPickerLinuxInstruction": "За потребителите на следните Линукс дистрибуции: Arch Linux, CentOS, Debian, Fedora, openSUSE, или Ubuntu е необходимо да се предостави на сервизния потребител поне достъп с права за четене на вашите хранилища.",
"MessageDirectoryPickerBSDInstruction": "За BSD ще е нужно да настроите хранилище във вашия FreeNAS Jail ,за да може сървъра да има достъп до него.",
"MessageDeleteTaskTrigger": "Сигурни ли сте ,че искате да изтриете \"пусковият механизъм\" за задачи?",
"MessageCreateAccountAt": "Създай акаунт в {0}",
"MessageContactAdminToResetPassword": "Моля, свържете се със системния си администратор, за да нулирате паролата си.",
"MessageConfirmRevokeApiKey": "Сигурни ли сте ,че искате да оттеглите api ключа?Връзката на приложението със сървъра ще бъде прекратена незабавно.",
"MessageSyncPlayGroupDoesNotExist": "Неуспешно присъединяване към групата, защото не съществува.",
"MessageSyncPlayPlaybackPermissionRequired": "Необходимо е разрешение за възпроизвеждане.",
"MessageSyncPlayNoGroupsAvailable": "Няма налични групи.Пуснете нещо да се възпроизвежда.",
"MessageSyncPlayGroupWait": "<b>{0}</b> буферира се...",
"MessageSyncPlayUserLeft": "<b>{0}</b> е напуснал групата.",
"MessageSyncPlayUserJoined": "<b>{0}</b> се присъедини към групата.",
"MessageSyncPlayDisabled": "Услугата \"синхронизирано възпроизвеждане\" е изключена.",
"MessageSyncPlayEnabled": "Услугата \"синхронизирано възпроизвеждане\" е включена.",
"MessageUnsetContentHelp": "Съдържанието ще се показва като обикновени папки. За най-добри резултати използвайте мениджъра на метаданни, за да зададете типовете съдържание на подпапките.",
"MessageUnableToConnectToServer": "В момента не можем да се свържем с избрания сървър. Моля, уверете се, че работи и опитайте отново.",
"MessageReenableUser": "Вижте по-долу, за да активирате отново",
"MessagePluginInstallDisclaimer": "Приставките, създадени от членове на общността, са чудесен начин да подобрите изживяването с Джелифин чрез допълнителните функции и предимства.Преди да инсталирате, имайте предвид ефектите, които те могат да имат върху вашия Джелифин сървър, като по-дълго време за сканиране на библиотеки, допълнителна обработка на заден фон и намалена стабилност на системата.",
"MessagePluginConfigurationRequiresLocalAccess": "За да конфигурирате тази приставка, моля, впишете се директно в локалния си сървър.",
"MessagePleaseWait": "Моля,изчакайте. Това може да отнеме минута.",
"MessagePlayAccessRestricted": "Възпроизвеждането на това съдържание в момента е ограничено.Моля, свържете се с администратора на вашия сървър за повече информация.",
"MessagePasswordResetForUsers": "Следните потребители са занулили паролите си.Те вече могат да влязат с пин кодовете, използвани за извършване на нулирането.",
"MessageNoTrailersFound": "Не са намерени трейлъри.За да подобрите филмовото изживяване инсталирайте канал за трейлъри,може да подредите няколко канала в библиотека.",
"MessageNoServersAvailable": "Не са намерени сървъри, използващи функцията за автоматично откриване на сървър.",
"MessageNoMovieSuggestionsAvailable": "Понастоящем няма предложени филми. Започнете да гледате и оценявате филмите си, а след това се върнете, за да видите препоръките си.",
"MessageNoCollectionsAvailable": "Колекциите ви позволяват да се наслаждавате на персонализирани групи от филми, сериали и албуми. Кликнете върху бутона +, за да започнете да създавате колекции.",
"MessageLeaveEmptyToInherit": "Оставете празни, за да наследите настройки от родителски елемент или глобалната стойност по подразбиране.",
"MessageItemsAdded": "Добавени са елементи.",
"MessageItemSaved": "Елементът е запазен.",
"MessageUnauthorizedUser": "Понастоящем нямате право да получите достъп до сървъра. Моля, свържете се с администратора на вашия сървър за повече информация.",
"MessageInvalidUser": "Невалидно потребителско име или парола. Моля, опитайте отново.",
"MessageInvalidForgotPasswordPin": "Въведен е невалиден или изтекъл пин код. Моля, опитайте отново.",
"MessageInstallPluginFromApp": "Този плъгин трябва да бъде инсталиран от приложението, в което възнамерявате да го използвате.",
"MessageImageTypeNotSelected": "Изберете типът изображение от падащото меню.",
"MessageImageFileTypeAllowed": "Поддържат се само файлове с разширение JPEG и PNG.",
"MessageForgotPasswordInNetworkRequired": "Опитайте пак в домашната мрежа да повторите процеса по нулиране на паролата.",
"Smaller": "По-малък",
"SmallCaps": "Малки букви",
"SkipEpisodesAlreadyInMyLibraryHelp": "Епизодите ще се сравняват, като се използват номера на сезона и епизода, когато са налични.",
"SkipEpisodesAlreadyInMyLibrary": "Не записвай епизоди, които вече са в моята библиотека",
"SimultaneousConnectionLimitHelp": "Максималният брой разрешени едновременни потоци. Въвеждането на 0 означава ,че няма ограничение.",
"Filter": "Филтър",
"New": "Нов",
"ShowMore": "Покажи повече",
"ShowLess": "Покажи по-малко",
"ShowIndicatorsFor": "Показване на индикатори за:",
"SettingsWarning": "Промяната на тези стойности може да доведе до нестабилност или проблеми в свързаността. Ако срещнете някакви проблеми, препоръчваме ви да ги върнете по подразбиране.",
"SeriesSettings": "Настройки на сериала",
"SeriesRecordingScheduled": "Назначено е запис на сериал.",
"SeriesDisplayOrderHelp": "Подредете епизодите по дата на излъчване, излизане на DVD или абсолютна номерация.",
"SeriesCancelled": "Сериала е отменен.",
"Series": "Сериал",
"SelectAdminUsername": "Моля, изберете потребителско име за администраторския акаунт.",
"Season": "Сезон",
"SearchResults": "Резултати от търсенето",
"ScanForNewAndUpdatedFiles": "Сканирай за нови и актуализирани файлове",
"SaveSubtitlesIntoMediaFoldersHelp": "Съхраняването на субтитрите при видео файлове ще позволи по-лесното им управление.",
"SaveSubtitlesIntoMediaFolders": "Запазване на субтитрите в папките с медията",
"SaveChanges": "Запазете промените",
"RunAtStartup": "Пускай при стартиране",
"RestartPleaseWaitMessage": "Моля, изчакайте, докато сървъра се изключи и рестартира. Това може да отнеме минута или две.",
"RepeatOne": "Повтори един път",
"RepeatMode": "Режим на повторение",
"RepeatEpisodes": "Повтори епизодите",
"RepeatAll": "Повтори всички",
"ReleaseGroup": "Издаден от група",
"RefreshQueued": "Назначено е обновяване.",
"RefreshDialogHelp": "Метаданните се обновяват въз основа на настройките и интернет услугите, които са активирани от таблото за управление на сървъра.",
"Recordings": "Записи",
"RecordingScheduled": "Записът е насрочен.",
"RecordingPathChangeMessage": "Промяната на вашата папка за запис няма да мигрира съществуващите записи от старото местоположение към новото.Необходимо е да направите това ръчно.",
"RecordSeries": "Запиши сериал",
"RecommendationStarring": "В главните роли {0}",
"RecommendationDirectedBy": "Режисьор {0}",
"Rate": "Оценка",
"QueueAllFromHere": "Поред всичко от тук",
"ProductionLocations": "Места на заснемане",
"Previous": "Предишен",
"PreferEmbeddedEpisodeInfosOverFileNames": "Предпочитай \"вградената\" информация за епизода вместо името на файла",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Това използва информацията за епизода от вградените метаданни, ако е налична.",
"PreferEmbeddedTitlesOverFileNamesHelp": "Това определя заглавието по подразбиране, когато няма интернет метаданни или локални метаданни.",
"PluginInstalledMessage": "Добавката е успешно инсталирана. Джелифин ще трябва да бъде рестартиран, за да влязат в сила промените.",
"PleaseSelectTwoItems": "Моля, изберете поне два елемента.",
"PleaseEnterNameOrId": "Моля, въведете име или външен идентификатор.",
"PleaseConfirmPluginInstallation": "Моля, щракнете върху OK, за да потвърдите, че сте прочели горното и искате да продължите с инсталирането на добавката.",
"PleaseAddAtLeastOneFolder": "Моля, добавете поне една папка към тази библиотека, като щракнете върху бутона \"Добавяне\".",
"PlaybackErrorNoCompatibleStream": "Този клиент не е съвместим с медията и сървърът не изпраща съвместим формат за медията.",
"PlayNext": "Възпроизведи следващ",
"PlayFromBeginning": "Възпроизведи от началото",
"PlayCount": "Брой възпроизвеждания",
"PlaybackData": "Данни за възпроизвеждане",
"PlaceFavoriteChannelsAtBeginning": "Постави любимите канали в началото",
"PinCodeResetConfirmation": "Сигурни ли сте, че искате да нулирате пин кода?",
"PinCodeResetComplete": "Пин кодът е нулиран.",
"Person": "Личност",
"PerfectMatch": "Перфектно съвпадение",
"PasswordSaved": "Паролата е запазена.",
"PasswordResetProviderHelp": "Изберете доставчик за нулиране на пароли, който да се използва, когато този потребител поиска нулиране на паролата",
"PasswordResetConfirmation": "Сигурни ли сте, че искате да нулирате паролата?",
"PasswordResetComplete": "Паролата е нулирана.",
"PasswordMatchError": "Паролата и потвърждението на паролата трябва да съвпадат.",
"PackageInstallFailed": "Инсталирането на {0} версия {1}) е неуспешно.",
"PackageInstallCompleted": "Инсталирането на {0} версия {1}) е завършено.",
"PackageInstallCancelled": "Инсталирането на {0} версия {1}) е отменено.",
"OtherArtist": "Друг изпълнител",
"OptionWeekends": "Почивни дни",
"OptionWeekdays": "Делници",
"OptionTvdbRating": "Рейтинг според ТВДБ",
"OptionThumbCard": "Икона карта",
"OptionThumb": "Икона",
"OptionSubstring": "Подниз",
"OptionSaveMetadataAsHiddenHelp": "Промяната на това ще се прилага за нови метаданни, запазени занапред. Съществуващите файлове с метаданни ще бъдат актуализирани следващия път, когато бъдат запазени на сървъра.",
"OptionSaveMetadataAsHidden": "Запишете метаданните и изображенията като скрити файлове",
"OptionRequirePerfectSubtitleMatchHelp": "Изискването за перфектно съвпадение ще филтрира субтитрите, за да включва само тези, които са тествани и проверени с точния видео файл.Ако премахнете отметката, това ще увеличи броя изтеглени субтитри, но ще увеличи шансовете за изтегляне на субтитри с неправилна синхронизация или несъвпадащи с видеофайла.",
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Това е необходимо за някои устройства, които не търсят \"по време\" правилно.",
"OptionReportByteRangeSeekingWhenTranscoding": "Подава информация, че сървърът поддържа търсене на байтове при прекодиране",
"OptionRegex": "Регуларен",
"OptionRandom": "Случаен",
"OptionProtocolHttp": "HTTP",
"OptionProtocolHls": "Директно предаване по HTTP",
"OptionPosterCard": "Плакат карта",
"OptionPoster": "Плакат",
"OptionPlainVideoItemsHelp": "Ако е активирано, всички видеофайлове са представени в DIDL като \"object.item.videoItem\" вместо по-конкретен тип, като например \"object.item.videoItem.movie\".",
"OptionPlainStorageFoldersHelp": "Ако е активирано, всички папки са представени в DIDL като \"object.container.storageFolder\" вместо по-конкретен тип, като например \"object.container.person.musicArtist\".",
"OptionMax": "Максимално",
"OptionLoginAttemptsBeforeLockoutHelp": "Стойност нула означава наследяване по подразбиране на три опита за нормални потребители и пет за администратори. Задаването на това на -1 ще деактивира функцията.",
"OptionLoginAttemptsBeforeLockout": "Определя колко неправилни опита за влизане могат да бъдат направени, преди да бъде блокиран.",
"OptionList": "Списък",
"OptionIgnoreTranscodeByteRangeRequestsHelp": "Ако са активирани, тези заявки ще бъдат удовлетворени, но ще се пренебрегне заглавната част от обхвата на байтовете.",
"OptionIgnoreTranscodeByteRangeRequests": "Игнорирайте заявките за обхват на байтове при прекодиране",
"OptionHlsSegmentedSubtitles": "HLS сегментирани субтитри",
"OptionExtractChapterImage": "Включи извличането на изображения от разделите",
"OptionEstimateContentLength": "Приблизителна дължина на съдържанието при транскодиране",
"OptionEquals": "Се равнява",
"OptionEnableM2tsModeHelp": "Включи режим m2ts ,когато се декодира до mpegts.",
"OptionEnableM2tsMode": "Включи режим M2ts",
"OptionEnableForAllTuners": "Активиране за всички тунер устройства",
"OptionEnableExternalContentInSuggestionsHelp": "Разрешете интернет трейлърите и телевизионните програми на живо да бъдат включени в предложеното съдържание.",
"OptionEnableExternalContentInSuggestions": "Активиране на външно съдържание в предложенията",
"OptionEmbedSubtitles": "Внедрено вътре в контейнера",
"OptionDownloadImagesInAdvanceHelp": "По подразбиране повечето изображения се изтеглят само когато са поискани от приложенията свързани с Джелифин.Активирайте тази опция, за да изтеглите всички изображения предварително, при добавянето на нова медия. Това може да доведе до значително по-дълго сканиране на библиотеката.",
"OptionDisplayFolderViewHelp": "Показвай папките заедно с тези от медийната библиотека. Това може да бъде полезно, ако искате да имате по разбираем изглед за папките.",
"OptionDateAddedImportTime": "Използвай датата на сканиране в библиотеката",
"OptionDateAddedFileTime": "Използвай датата на създаване на файла",
"OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)",
"OptionBluray": "Блу-рей",
"OptionBlockTrailers": "Трейлъри",
"OptionBlockMusic": "Музика",
"OptionBlockLiveTvChannels": "Телевизионни канали на живо",
"OptionBlockChannelContent": "Съдържание на интернет канала",
"OptionBanner": "Банер",
"OptionAutomaticallyGroupSeriesHelp": "Ако е активирано, сезоните, които се намират в различни папки, ще бъдат автоматично обединени в един сериал.",
"OptionAutomaticallyGroupSeries": "Автоматично обединява сезони, които са разпределени в множество папки",
"OptionAllowVideoPlaybackTranscoding": "Разреши възпроизвеждане на видео, което изисква транскодиране",
"OptionAllowVideoPlaybackRemuxing": "Разреши възпроизвеждане на видео, което изисква преобразуване без повторно кодиране",
"OptionAllowSyncTranscoding": "Разреши изтегляне и синхронизиране на медия, която изисква транскодиране",
"OptionAllowMediaPlaybackTranscodingHelp": "Ограничаването на достъпа до транскодирането може да доведе до проблеми при възпроизвеждането в приложенията на Джелифин поради неподдържани медийни формати.",
"OptionAllowLinkSharingHelp": "Споделят се само уеб страници, съдържащи медийна информация.Медийните файлове никога не се споделят публично. Споделянията са ограничени във времето и изтичат след {0} дни.",
"OptionAllowContentDownloading": "Разрешаване на изтегляне и синхронизиране на медия",
"OptionForceRemoteSourceTranscoding": "Принудително транскодиране на отдалечени медийни източници (като поточна ТВ)",
"OptionAllowAudioPlaybackTranscoding": "Разреши възпроизвеждане на аудио, което изисква транскодиране",
"OnlyImageFormats": "Само графични формати (VOBSUB, PGS, SUB)",
"OnlyForcedSubtitlesHelp": "Ще бъдат показани само субтитри, маркирани за \"принудително\" зареждане.",
"OnlyForcedSubtitles": "Само принудително",
"OneChannel": "Един канал",
"NoSubtitlesHelp": "Субтитрите няма да бъдат заредени по подразбиране. Те все още могат да бъдат включени ръчно по време на възпроизвеждане.",
"NoPluginConfigurationMessage": "Тази добавка няма настройки за конфигуриране.",
"NoNewDevicesFound": "Не са намерени нови устройства. За да добавите нов тунер, затворете този диалогов прозорец и въведете ръчно информацията за устройството.",
"NoCreatedLibraries": "Изглежда, че все още не сте създали библиотеки. {0} Искате ли да ги създадете сега? {1}",
"NextUp": "Следващ по ред",
"Next": "Следващ",
"NewCollectionHelp": "Колекциите ви позволяват да създавате персонализирани групи от филми и друго библиотечно съдържание.",
"MusicLibraryHelp": "Прегледайте {0} ръководството за именуване на музика {1}.",
"MusicArtist": "Музикален изпълнител",
"MusicAlbum": "Музикален албум",
"Movie": "Филм",
"MovieLibraryHelp": "Прегледайте {0} ръководството за именуване на филми {1}.",
"MoveRight": "Премести надясно",
"MoveLeft": "Премести на ляво",
"MoreMediaInfo": "Информация за медията",
"MetadataSettingChangeHelp": "Промяната на настройките на метаданните ще повлияе на новото съдържание, което ще се добавя занапред.За да обновите съществуващото съдържание, отворете панела с подробности и щракнете върху бутона за опресняване или извършете групово обновяване с помощта на мениджъра на метаданни.",
"MessageSyncPlayErrorMedia": "Неуспешно активиране на услугата \"синхронизирано възпроизвеждане\"!Грешка в медията.",
"MessageSyncPlayErrorMissingSession": "Неуспешно активиране на услугата \"синхронизирано възпроизвеждане\"! Липсва сесия.",
"MessageSyncPlayErrorNoActivePlayer": "Не е намерен активен плеър.Функцията \"синхронизирано възпроизвеждане\" е изключена.",
"MessageSyncPlayErrorAccessingGroups": "Възникна грешка при достъп до списъка с групи.",
"MessageSyncPlayLibraryAccessDenied": "Достъпът до това съдържание е ограничен.",
"MessageSyncPlayJoinGroupDenied": "Необходимо е разрешени за използване на функцията \"синхронизирано възпроизвеждане\".",
"MessageSyncPlayCreateGroupDenied": "Необходимо е разрешени за създаване на група.",
"LabelSonyAggregationFlagsHelp": "Определя съдържанието на aggregationFlags елемента във urn:schemas-sonycom:av пространство от имена.",
"LabelXDlnaDocHelp": "Определя съдържанието на X_DLNADOC елемента в urn:schemas-dlna-org:device-1-0 пространство от имена.",
"LabelSkipForwardLength": "Време за придвижване напред:",
"LabelSkipBackLength": "Време за придвижване назад:"
} }

View file

@ -812,7 +812,7 @@
"MessageNoAvailablePlugins": "Nejsou dostupné žádné zásuvné moduly.", "MessageNoAvailablePlugins": "Nejsou dostupné žádné zásuvné moduly.",
"MessageNoMovieSuggestionsAvailable": "Žádné návrhy nejsou v současnosti k dispozici. Začněte sledovat a hodnotit filmy, a pak se vám doporučení zobrazí.", "MessageNoMovieSuggestionsAvailable": "Žádné návrhy nejsou v současnosti k dispozici. Začněte sledovat a hodnotit filmy, a pak se vám doporučení zobrazí.",
"MessageNoPluginsInstalled": "Nemáte instalovány žádné zásuvné moduly.", "MessageNoPluginsInstalled": "Nemáte instalovány žádné zásuvné moduly.",
"MessageNoTrailersFound": "Nebyly nalezeny žádné upoutávky k filmu. Chcete-li si zlepšit zážitek ze sledování, nainstalujte si kanál s upoutávkami.", "MessageNoTrailersFound": "Chcete-li si zlepšit zážitek ze sledování, nainstalujte si kanál s upoutávkami.",
"MessageNothingHere": "Tady nic není.", "MessageNothingHere": "Tady nic není.",
"MessagePasswordResetForUsers": "Obnovení hesla bylo provedeno následujícími uživateli. Nyní se mohou přihlásit pomocí kódů PIN, které byly použity k provedení resetu.", "MessagePasswordResetForUsers": "Obnovení hesla bylo provedeno následujícími uživateli. Nyní se mohou přihlásit pomocí kódů PIN, které byly použity k provedení resetu.",
"MessagePlayAccessRestricted": "Přehrávání tohoto obsahu je aktuálně omezeno. Další informace získáte od správce serveru.", "MessagePlayAccessRestricted": "Přehrávání tohoto obsahu je aktuálně omezeno. Další informace získáte od správce serveru.",
@ -1059,7 +1059,6 @@
"RepeatOne": "Opakovat jeden", "RepeatOne": "Opakovat jeden",
"ReplaceAllMetadata": "Přepsat všechna metadata", "ReplaceAllMetadata": "Přepsat všechna metadata",
"ReplaceExistingImages": "Nahradit existující obrázky", "ReplaceExistingImages": "Nahradit existující obrázky",
"RestartPleaseWaitMessage": "Počkejte prosím, než se server Jellyfin vypne a restartuje. Může to trvat několik minut.",
"ResumeAt": "Obnovit přehrávání od {0}", "ResumeAt": "Obnovit přehrávání od {0}",
"Rewind": "Přetočit zpět", "Rewind": "Přetočit zpět",
"RunAtStartup": "Spustit po startu", "RunAtStartup": "Spustit po startu",
@ -1395,7 +1394,6 @@
"HeaderFavoriteAlbums": "Oblíbená alba", "HeaderFavoriteAlbums": "Oblíbená alba",
"HeaderFavoriteArtists": "Oblíbení interpreti", "HeaderFavoriteArtists": "Oblíbení interpreti",
"HeaderFavoriteSongs": "Oblíbená hudba", "HeaderFavoriteSongs": "Oblíbená hudba",
"HeaderRestartingServer": "Restartování serveru",
"LabelAuthProvider": "Poskytovatel ověření:", "LabelAuthProvider": "Poskytovatel ověření:",
"LabelServerNameHelp": "Tento název bude použit k identifikaci serveru a bude výchozí pro název počítače serveru.", "LabelServerNameHelp": "Tento název bude použit k identifikaci serveru a bude výchozí pro název počítače serveru.",
"LabelPasswordResetProvider": "Poskytovatel obnovy hesla:", "LabelPasswordResetProvider": "Poskytovatel obnovy hesla:",
@ -1633,5 +1631,22 @@
"EnableDetailsBannerHelp": "Zobrazí obrázek ve vrchní části detailu položky.", "EnableDetailsBannerHelp": "Zobrazí obrázek ve vrchní části detailu položky.",
"EnableDetailsBanner": "Obrázek detailu", "EnableDetailsBanner": "Obrázek detailu",
"ShowMore": "Zobrazit více", "ShowMore": "Zobrazit více",
"ShowLess": "Zobrazit méně" "ShowLess": "Zobrazit méně",
"EnableBlurhashHelp": "Nenačtené obrázky budou zobrazeny pomocí neurčitých zástupných obrázků",
"EnableBlurhash": "Povolit zástupné obrázky",
"ButtonCast": "Přehrát v zařízení",
"ButtonSyncPlay": "Synchronizace přehrávání",
"MessageNoGenresAvailable": "Povolit některým poskytovatelům metadat stahovat informace o žánrech z Internetu.",
"EnableFasterAnimationsHelp": "Použít rychlejší animace a přechody",
"EnableFasterAnimations": "Rychlejší animace",
"EnableDecodingColorDepth10Vp9": "Povolit 10bitové hardwarové dekódování formátu VP9",
"EnableDecodingColorDepth10Hevc": "Povolit 10bitové hardwarové dekódování formátu HEVC",
"TabRepositories": "Repozitáře",
"MessageAddRepository": "Pokud chcete přidat repozitář, klikněte na tlačítko vedle záhlaví a vyplňte požadované informace.",
"LabelRepositoryNameHelp": "Vlastní pojmenování, které slouží k odlišení tohoto repozitáře od ostatních repozitářů přidaných na vašem serveru.",
"LabelRepositoryName": "Název repozitáře",
"LabelRepositoryUrlHelp": "Umístění manifestu repozitáře, který chcete zahrnout.",
"LabelRepositoryUrl": "URL adresa repozitáře",
"HeaderNewRepository": "Nový repozitář",
"MessageNoRepositories": "Neexistují žádné repozitáře."
} }

View file

@ -1414,7 +1414,6 @@
"RepeatAll": "Gentag alle", "RepeatAll": "Gentag alle",
"RepeatMode": "Gentagelses tilstand", "RepeatMode": "Gentagelses tilstand",
"RepeatOne": "Gentag én", "RepeatOne": "Gentag én",
"RestartPleaseWaitMessage": "Vent venligst mens Jellyfin Server lukker og genstarter. Dette kan tage et minut eller to.",
"RunAtStartup": "Kør ved opstart", "RunAtStartup": "Kør ved opstart",
"ScanForNewAndUpdatedFiles": "Skan for nye og opdaterede filer", "ScanForNewAndUpdatedFiles": "Skan for nye og opdaterede filer",
"Schedule": "Tidsplan", "Schedule": "Tidsplan",
@ -1500,7 +1499,6 @@
"HeaderHome": "Hjem", "HeaderHome": "Hjem",
"LabelServerName": "Server navn:", "LabelServerName": "Server navn:",
"LabelUserLoginAttemptsBeforeLockout": "Fejlede loginforsøg før bruger lukkes ude:", "LabelUserLoginAttemptsBeforeLockout": "Fejlede loginforsøg før bruger lukkes ude:",
"HeaderRestartingServer": "Genstarter Server",
"ButtonAddImage": "Tilføj billede", "ButtonAddImage": "Tilføj billede",
"AllowFfmpegThrottlingHelp": "Når en omkodning eller remux kommer langt nok foran den nuværende afspildings position, pauses processen så der bruges færre resurser. Dette er mest brugbart når man ikke springer i filmen. Slå dette fra hvis du har problemer med playback.", "AllowFfmpegThrottlingHelp": "Når en omkodning eller remux kommer langt nok foran den nuværende afspildings position, pauses processen så der bruges færre resurser. Dette er mest brugbart når man ikke springer i filmen. Slå dette fra hvis du har problemer med playback.",
"AllowFfmpegThrottling": "Begræns Omkodning", "AllowFfmpegThrottling": "Begræns Omkodning",

View file

@ -145,7 +145,7 @@
"ConfirmDeletion": "Bestätige Löschung", "ConfirmDeletion": "Bestätige Löschung",
"ConfirmEndPlayerSession": "Möchtest du Jellyfin auf {0} beenden?", "ConfirmEndPlayerSession": "Möchtest du Jellyfin auf {0} beenden?",
"Connect": "Verbinde", "Connect": "Verbinde",
"ContinueWatching": "Weiterschauen", "ContinueWatching": "Fortsetzen",
"Continuing": "Fortlaufend", "Continuing": "Fortlaufend",
"CriticRating": "Kritiker Bewertung", "CriticRating": "Kritiker Bewertung",
"CustomDlnaProfilesHelp": "Erstelle ein benutzerdefiniertes Profil für ein neues Zielgerät, oder um ein vorhandenes Systemprofil zu überschreiben.", "CustomDlnaProfilesHelp": "Erstelle ein benutzerdefiniertes Profil für ein neues Zielgerät, oder um ein vorhandenes Systemprofil zu überschreiben.",
@ -837,7 +837,7 @@
"MessageConfirmDeleteGuideProvider": "Möchten Sie diese Quelle wirklich löschen?", "MessageConfirmDeleteGuideProvider": "Möchten Sie diese Quelle wirklich löschen?",
"MessageConfirmDeleteTunerDevice": "Möchten Sie dieses Gerät wirklich löschen?", "MessageConfirmDeleteTunerDevice": "Möchten Sie dieses Gerät wirklich löschen?",
"MessageConfirmProfileDeletion": "Bist du dir sicher, dass du dieses Profil löschen möchtest?", "MessageConfirmProfileDeletion": "Bist du dir sicher, dass du dieses Profil löschen möchtest?",
"MessageConfirmRecordingCancellation": "Aufzeichnung abbrechen?", "MessageConfirmRecordingCancellation": "Aufnahme abbrechen?",
"MessageConfirmRemoveMediaLocation": "Bist du dir sicher diese Medienquelle entfernen zu wollen?", "MessageConfirmRemoveMediaLocation": "Bist du dir sicher diese Medienquelle entfernen zu wollen?",
"MessageConfirmRestart": "Möchten Sie Jellyfin Server wirklich neu starten?", "MessageConfirmRestart": "Möchten Sie Jellyfin Server wirklich neu starten?",
"MessageConfirmRevokeApiKey": "Möchten Sie diesen API Schlüssel wirklich löschen? Die Verbindung der Anwendung zum Jellyfin Server wird sofort unterbrochen.", "MessageConfirmRevokeApiKey": "Möchten Sie diesen API Schlüssel wirklich löschen? Die Verbindung der Anwendung zum Jellyfin Server wird sofort unterbrochen.",
@ -862,7 +862,7 @@
"MessageNoAvailablePlugins": "Keine verfügbaren Erweiterungen.", "MessageNoAvailablePlugins": "Keine verfügbaren Erweiterungen.",
"MessageNoMovieSuggestionsAvailable": "Momentan sind keine Filmvorschläge verfügbar. Schaue und bewerte zuerst deine Filme. Komme danach zurück, um deine Filmvorschläge anzuschauen.", "MessageNoMovieSuggestionsAvailable": "Momentan sind keine Filmvorschläge verfügbar. Schaue und bewerte zuerst deine Filme. Komme danach zurück, um deine Filmvorschläge anzuschauen.",
"MessageNoPluginsInstalled": "Du hast keine Plugins installiert.", "MessageNoPluginsInstalled": "Du hast keine Plugins installiert.",
"MessageNoTrailersFound": "Keine Trailer gefunden. Installieren Sie den Trailer-Channel um Ihre Film-Bibliothek mit Trailer aus dem Internet zu erweitern.", "MessageNoTrailersFound": "Installiere den Filmvorschau-Kanal um die Film-Bibliothek mit Filmvorschauen aus dem Internet zu erweitern.",
"MessageNothingHere": "Nichts hier.", "MessageNothingHere": "Nichts hier.",
"MessagePasswordResetForUsers": "Die Passwörter der folgenden Benutzer wurden zurückgesetzt. Diese können sich nun mit den PIN-Codes anmelden, mit denen der Reset durchgeführt wurde.", "MessagePasswordResetForUsers": "Die Passwörter der folgenden Benutzer wurden zurückgesetzt. Diese können sich nun mit den PIN-Codes anmelden, mit denen der Reset durchgeführt wurde.",
"MessagePlayAccessRestricted": "Das Abspielen dieses Inhaltes ist derzeit eingeschränkt. Bitte kontaktiere deinen Server-Administrator für weitere Informationen.", "MessagePlayAccessRestricted": "Das Abspielen dieses Inhaltes ist derzeit eingeschränkt. Bitte kontaktiere deinen Server-Administrator für weitere Informationen.",
@ -1085,7 +1085,7 @@
"RecommendationStarring": "In der Hauptrolle {0}", "RecommendationStarring": "In der Hauptrolle {0}",
"Record": "Aufnehmen", "Record": "Aufnehmen",
"RecordSeries": "Serie aufnehmen", "RecordSeries": "Serie aufnehmen",
"RecordingCancelled": "Aufzeichnung abgebrochen.", "RecordingCancelled": "Aufnahme abgebrochen.",
"RecordingPathChangeMessage": "Das Ändern des Aufnahmeverzeichnisses wird alte Aufnahmen nicht automatisch verschieben. Wenn Du das möchtest, musst Du das selber machen.", "RecordingPathChangeMessage": "Das Ändern des Aufnahmeverzeichnisses wird alte Aufnahmen nicht automatisch verschieben. Wenn Du das möchtest, musst Du das selber machen.",
"RecordingScheduled": "Aufnahme geplant.", "RecordingScheduled": "Aufnahme geplant.",
"Recordings": "Aufnahmen", "Recordings": "Aufnahmen",
@ -1105,7 +1105,6 @@
"ReplaceAllMetadata": "Ersetze alle Metadaten", "ReplaceAllMetadata": "Ersetze alle Metadaten",
"ReplaceExistingImages": "Ersetze vorhandene Bilder", "ReplaceExistingImages": "Ersetze vorhandene Bilder",
"RequiredForAllRemoteConnections": "Benötigt für alle Remote Verbindungen", "RequiredForAllRemoteConnections": "Benötigt für alle Remote Verbindungen",
"RestartPleaseWaitMessage": "Warte bitte bis der Jellyfin Server heruntergefahren und neu gestartet wurde. Dieser Vorgang dauert 1 bis 2 Minuten.",
"ResumeAt": "Fortsetzen bei {0}", "ResumeAt": "Fortsetzen bei {0}",
"Rewind": "Zurückspulen", "Rewind": "Zurückspulen",
"RunAtStartup": "Nach Hochfahren automatisch starten", "RunAtStartup": "Nach Hochfahren automatisch starten",
@ -1407,7 +1406,6 @@
"HeaderFavoriteArtists": "Lieblings-Interpreten", "HeaderFavoriteArtists": "Lieblings-Interpreten",
"HeaderFavoriteSongs": "Lieblingslieder", "HeaderFavoriteSongs": "Lieblingslieder",
"HeaderFavoriteVideos": "Lieblingsvideos", "HeaderFavoriteVideos": "Lieblingsvideos",
"HeaderRestartingServer": "Server startet neu",
"LabelAuthProvider": "Authentifizierungsanbieter:", "LabelAuthProvider": "Authentifizierungsanbieter:",
"LabelServerName": "Servername:", "LabelServerName": "Servername:",
"LabelTranscodePath": "Transkodierungspfad:", "LabelTranscodePath": "Transkodierungspfad:",
@ -1571,5 +1569,22 @@
"EnableDetailsBannerHelp": "Zeigt ein Bannerbild im oberen Bereich der Seite Item-Details.", "EnableDetailsBannerHelp": "Zeigt ein Bannerbild im oberen Bereich der Seite Item-Details.",
"EnableDetailsBanner": "Detailbanner", "EnableDetailsBanner": "Detailbanner",
"ShowMore": "Mehr anzeigen", "ShowMore": "Mehr anzeigen",
"ShowLess": "Weniger anzeigen" "ShowLess": "Weniger anzeigen",
"EnableBlurhashHelp": "Bilder, die noch nicht fertig geladen wurden, werden mit einem verschwommenen Platzhalter dargestellt",
"EnableBlurhash": "Verschwommene Platzhalter für Bilder erlauben",
"EnableFasterAnimations": "Schnellere Animationen",
"EnableDecodingColorDepth10Vp9": "Aktiviere 10-Bit-Hardware-Dekodierung für VP9",
"EnableDecodingColorDepth10Hevc": "Aktiviere 10-Bit-Hardware-Dekodierung für HEVC",
"MessageNoGenresAvailable": "Aktiviere einige Metadaten-Anbieter um Genres aus dem Internet zu holen.",
"EnableFasterAnimationsHelp": "Benutze schnellere Animationen und Übergänge",
"ButtonCast": "Besetzung",
"ButtonSyncPlay": "SyncPlay",
"TabRepositories": "Repositories",
"MessageAddRepository": "Wenn Sie ein Repository hinzufügen möchten, klicken Sie auf die Schaltfläche neben der Kopfzeile und füllen Sie die angeforderten Informationen aus.",
"LabelRepositoryUrlHelp": "Der Speicherort des Repository-Manifests, das Sie aufnehmen möchten.",
"LabelRepositoryNameHelp": "Ein benutzerdefinierter Name zur Unterscheidung dieses Repositorys von den anderen, die zu Ihrem Server hinzugefügt wurden.",
"LabelRepositoryName": "Name des Repository",
"LabelRepositoryUrl": "URL des Repository",
"HeaderNewRepository": "Neues Repository",
"MessageNoRepositories": "Keine Repositories."
} }

View file

@ -13,7 +13,7 @@
"Albums": "Άλμπουμς", "Albums": "Άλμπουμς",
"All": "Όλα", "All": "Όλα",
"AllChannels": "Όλα τα κανάλια", "AllChannels": "Όλα τα κανάλια",
"AllComplexFormats": "Όλες οι σύνθετες μορφές (ASS, SSA, VOBSUB, PGS, SUB / IDX κ.λπ.)", "AllComplexFormats": "Όλες οι σύνθετες μορφές (ASS, SSA, VOBSUB, PGS, SUB / IDX, ...)",
"AllEpisodes": "Ολα τα επεισόδια", "AllEpisodes": "Ολα τα επεισόδια",
"AllLanguages": "Όλες οι γλώσσες", "AllLanguages": "Όλες οι γλώσσες",
"AllLibraries": "Όλες οι βιβλιοθήκες", "AllLibraries": "Όλες οι βιβλιοθήκες",
@ -23,7 +23,7 @@
"AlwaysPlaySubtitlesHelp": "Οι υπότιτλοι που ταιριάζουν με τις προτιμήσεις γλώσσας θα φορτωθούν ανεξάρτητα από τη γλώσσα του ήχου.", "AlwaysPlaySubtitlesHelp": "Οι υπότιτλοι που ταιριάζουν με τις προτιμήσεις γλώσσας θα φορτωθούν ανεξάρτητα από τη γλώσσα του ήχου.",
"AnyLanguage": "Οποιαδήποτε γλώσσα", "AnyLanguage": "Οποιαδήποτε γλώσσα",
"Anytime": "Οποτεδήποτε", "Anytime": "Οποτεδήποτε",
"AroundTime": "Περίπου {0}", "AroundTime": "Περίπου",
"Art": "Τέχνη", "Art": "Τέχνη",
"Artists": "Καλλιτέχνες", "Artists": "Καλλιτέχνες",
"AsManyAsPossible": "Οσο το δυνατον περισσοτερα", "AsManyAsPossible": "Οσο το δυνατον περισσοτερα",
@ -985,7 +985,6 @@
"RepeatOne": "Επαναλάβετε ένα", "RepeatOne": "Επαναλάβετε ένα",
"ReplaceAllMetadata": "Αντικατάσταση όλων των μεταδεδομένων", "ReplaceAllMetadata": "Αντικατάσταση όλων των μεταδεδομένων",
"ReplaceExistingImages": "Αντικατάσταση υπαρχουσών εικόνων", "ReplaceExistingImages": "Αντικατάσταση υπαρχουσών εικόνων",
"RestartPleaseWaitMessage": "Περιμένετε μέχρι ο τερματικός σταθμός Jellyfin να τερματιστεί και να επανεκκινήσει. Αυτό μπορεί να διαρκέσει ένα λεπτό ή δύο.",
"ResumeAt": "Συνέχιση από {0}", "ResumeAt": "Συνέχιση από {0}",
"Rewind": "Αναπαραγωγή προς τα πίσω", "Rewind": "Αναπαραγωγή προς τα πίσω",
"RunAtStartup": "Εκτέλεση κατά την εκκίνηση", "RunAtStartup": "Εκτέλεση κατά την εκκίνηση",
@ -1165,7 +1164,6 @@
"HeaderSelectMetadataPathHelp": "Περιηγηθείτε ή επιλέξτε την διαδρομή αποθήκευσης των μεταδεδομένων. Ο φάκελος πρέπει να είναι εγγράψιμος.", "HeaderSelectMetadataPathHelp": "Περιηγηθείτε ή επιλέξτε την διαδρομή αποθήκευσης των μεταδεδομένων. Ο φάκελος πρέπει να είναι εγγράψιμος.",
"HeaderSelectMetadataPath": "Επιλέξτε Διαδρομή Μεταδεδομένων", "HeaderSelectMetadataPath": "Επιλέξτε Διαδρομή Μεταδεδομένων",
"HeaderSelectCertificatePath": "Επιλέξτε Διαδρομή Πιστοποιητικού", "HeaderSelectCertificatePath": "Επιλέξτε Διαδρομή Πιστοποιητικού",
"HeaderRestartingServer": "Επανεκκίνηση Διακομιστή",
"HeaderRemoveMediaFolder": "Αφαίρεση Φακέλου Μέσων", "HeaderRemoveMediaFolder": "Αφαίρεση Φακέλου Μέσων",
"HeaderPeople": "Πρόσωπα", "HeaderPeople": "Πρόσωπα",
"HeaderIdentification": "Ταυτοποίηση", "HeaderIdentification": "Ταυτοποίηση",

View file

@ -63,7 +63,7 @@
"Alerts": "Alerts", "Alerts": "Alerts",
"All": "All", "All": "All",
"AllChannels": "All channels", "AllChannels": "All channels",
"AllComplexFormats": "All complex formats (ASS, SSA, VOBSUB, PGS, SUB/IDX, etc.)", "AllComplexFormats": "All Complex Formats (ASS, SSA, VOBSUB, PGS, SUB, IDX, …)",
"AllEpisodes": "All episodes", "AllEpisodes": "All episodes",
"AllLanguages": "All languages", "AllLanguages": "All languages",
"AllLibraries": "All libraries", "AllLibraries": "All libraries",
@ -71,7 +71,7 @@
"AllowMediaConversion": "Allow media conversion", "AllowMediaConversion": "Allow media conversion",
"AllowMediaConversionHelp": "Grant or deny access to the convert media feature.", "AllowMediaConversionHelp": "Grant or deny access to the convert media feature.",
"AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly", "AllowOnTheFlySubtitleExtraction": "Allow subtitle extraction on the fly",
"AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to clients in plain text in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.", "AllowOnTheFlySubtitleExtractionHelp": "Embedded subtitles can be extracted from videos and delivered to clients in plain text, in order to help prevent video transcoding. On some systems this can take a long time and cause video playback to stall during the extraction process. Disable this to have embedded subtitles burned in with video transcoding when they are not natively supported by the client device.",
"AllowRemoteAccess": "Allow remote connections to this Jellyfin Server.", "AllowRemoteAccess": "Allow remote connections to this Jellyfin Server.",
"AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.", "AllowRemoteAccessHelp": "If unchecked, all remote connections will be blocked.",
"AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed to connect remotely. If left blank, all remote addresses will be allowed.", "AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed to connect remotely. If left blank, all remote addresses will be allowed.",
@ -79,7 +79,7 @@
"AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.", "AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.",
"AnyLanguage": "Any Language", "AnyLanguage": "Any Language",
"Anytime": "Anytime", "Anytime": "Anytime",
"AroundTime": "Around {0}", "AroundTime": "Around",
"Art": "Art", "Art": "Art",
"AsManyAsPossible": "As many as possible", "AsManyAsPossible": "As many as possible",
"Ascending": "Ascending", "Ascending": "Ascending",
@ -96,11 +96,11 @@
"BirthLocation": "Birth location", "BirthLocation": "Birth location",
"BirthPlaceValue": "Birth place: {0}", "BirthPlaceValue": "Birth place: {0}",
"Blacklist": "Blacklist", "Blacklist": "Blacklist",
"BookLibraryHelp": "Audio and text books are supported. Review the {0}book naming guide{1}.", "BookLibraryHelp": "Audio and text books are supported. Review the {0} book naming guide {1}.",
"Box": "Box", "Box": "Box",
"BoxRear": "Box (rear)", "BoxRear": "Box (rear)",
"Browse": "Browse", "Browse": "Browse",
"BurnSubtitlesHelp": "Determines if the server should burn in subtitles when transcoding videos. Avoiding this will greatly improve performance. Select Auto to burn image based formats (VOBSUB, PGS, SUB, IDX) and certain ASS or SSA subtitles.", "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when transcoding videos. Avoiding this will greatly improve performance. Select Auto to burn image based formats (VOBSUB, PGS, SUB, IDX, …) and certain ASS or SSA subtitles.",
"ButtonAdd": "Add", "ButtonAdd": "Add",
"ButtonAddMediaLibrary": "Add Media Library", "ButtonAddMediaLibrary": "Add Media Library",
"ButtonAddScheduledTaskTrigger": "Add Trigger", "ButtonAddScheduledTaskTrigger": "Add Trigger",
@ -561,7 +561,6 @@
"RunAtStartup": "Run at startup", "RunAtStartup": "Run at startup",
"Rewind": "Rewind", "Rewind": "Rewind",
"ResumeAt": "Resume from {0}", "ResumeAt": "Resume from {0}",
"RestartPleaseWaitMessage": "Please wait while Jellyfin Server shuts down and restarts. This may take a minute or two.",
"RequiredForAllRemoteConnections": "Required for all remote connections", "RequiredForAllRemoteConnections": "Required for all remote connections",
"ReplaceExistingImages": "Replace existing images", "ReplaceExistingImages": "Replace existing images",
"ReplaceAllMetadata": "Replace all metadata", "ReplaceAllMetadata": "Replace all metadata",
@ -720,7 +719,7 @@
"MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your server administrator for more information.", "MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your server administrator for more information.",
"MessagePasswordResetForUsers": "The following users have had their passwords reset. They can now sign in with the pin codes that were used to perform the reset.", "MessagePasswordResetForUsers": "The following users have had their passwords reset. They can now sign in with the pin codes that were used to perform the reset.",
"MessageNothingHere": "Nothing here.", "MessageNothingHere": "Nothing here.",
"MessageNoTrailersFound": "No trailers found. Install the Trailer channel to enhance your movie experience by adding a library of internet trailers.", "MessageNoTrailersFound": "Install the trailers channel to enhance your movie experience by adding a library of internet trailers.",
"MessageNoServersAvailable": "No servers have been found using the automatic server discovery.", "MessageNoServersAvailable": "No servers have been found using the automatic server discovery.",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.", "MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoAvailablePlugins": "No available plugins.", "MessageNoAvailablePlugins": "No available plugins.",
@ -1246,7 +1245,7 @@
"LabelPasswordResetProvider": "Password Reset Provider:", "LabelPasswordResetProvider": "Password Reset Provider:",
"LabelPasswordConfirm": "Password (confirm):", "LabelPasswordConfirm": "Password (confirm):",
"LabelOriginalTitle": "Original title:", "LabelOriginalTitle": "Original title:",
"LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Jellyfin apps on other devices to access media files directly.", "LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Jellyfin apps on other devices to access media files directly. For example, {0} or {1}.",
"LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels.", "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels.",
"LabelNumberOfGuideDays": "Number of days of guide data to download:", "LabelNumberOfGuideDays": "Number of days of guide data to download:",
"LabelNumber": "Number:", "LabelNumber": "Number:",
@ -1435,7 +1434,6 @@
"HeaderScenes": "Scenes", "HeaderScenes": "Scenes",
"HeaderRunningTasks": "Running Tasks", "HeaderRunningTasks": "Running Tasks",
"HeaderRevisionHistory": "Revision History", "HeaderRevisionHistory": "Revision History",
"HeaderRestartingServer": "Restarting Server",
"HeaderRestart": "Restart", "HeaderRestart": "Restart",
"HeaderResponseProfile": "Response Profile", "HeaderResponseProfile": "Response Profile",
"HeaderRemoveMediaLocation": "Remove Media Location", "HeaderRemoveMediaLocation": "Remove Media Location",
@ -1515,5 +1513,66 @@
"ButtonTogglePlaylist": "Playlist", "ButtonTogglePlaylist": "Playlist",
"ButtonToggleContextMenu": "More", "ButtonToggleContextMenu": "More",
"HeaderDVR": "DVR", "HeaderDVR": "DVR",
"ApiKeysCaption": "List of the currently enabled API keys" "ApiKeysCaption": "List of the currently enabled API keys",
"ButtonCast": "Cast",
"ButtonSyncPlay": "SyncPlay",
"EnableBlurhashHelp": "Images that are still being loaded will be displayed with a blurred placeholder",
"EnableBlurhash": "Enable blurred placeholders for images",
"TabDVR": "DVR",
"TabRepositories": "Repositories",
"SyncPlayAccessHelp": "Select the level of access this user has to the SyncPlay feature. SyncPlay enables to sync playback with other devices.",
"ShowMore": "Show more",
"ShowLess": "Show less",
"SaveChanges": "Save changes",
"MessageSyncPlayErrorMedia": "Failed to enable SyncPlay! Media error.",
"MessageSyncPlayErrorMissingSession": "Failed to enable SyncPlay! Missing session.",
"MessageSyncPlayErrorNoActivePlayer": "No active player found. SyncPlay has been disabled.",
"MessageSyncPlayErrorAccessingGroups": "An error occurred while accessing groups list.",
"MessageSyncPlayLibraryAccessDenied": "Access to this content is restricted.",
"MessageSyncPlayJoinGroupDenied": "Permission required to use SyncPlay.",
"MessageSyncPlayCreateGroupDenied": "Permission required to create a group.",
"MessageSyncPlayGroupDoesNotExist": "Failed to join group because it does not exist.",
"MessageSyncPlayPlaybackPermissionRequired": "Playback permission required.",
"MessageSyncPlayNoGroupsAvailable": "No groups available. Start playing something first.",
"MessageSyncPlayGroupWait": "<b>{0}</b> is buffering...",
"MessageSyncPlayUserLeft": "<b>{0}</b> has left the group.",
"MessageSyncPlayUserJoined": "<b>{0}</b> has joined the group.",
"MessageSyncPlayDisabled": "SyncPlay disabled.",
"MessageSyncPlayEnabled": "SyncPlay enabled.",
"MessageNoGenresAvailable": "Enable some metadata providers to pull genres from the internet.",
"MessageAddRepository": "If you wish to add a repository, click the button next to the header and fill out the requested information.",
"LabelRepositoryNameHelp": "A custom name to distinguish this repository from any others added to your server.",
"LabelRepositoryName": "Repository Name",
"LabelRepositoryUrlHelp": "The location of the repository manifest you want to include.",
"LabelRepositoryUrl": "Repository URL",
"HeaderNewRepository": "New Repository",
"MessageNoRepositories": "No repositories.",
"LabelSyncPlayAccess": "SyncPlay access",
"LabelSyncPlayAccessNone": "Disabled for this user",
"LabelSyncPlayAccessJoinGroups": "Allow user to join groups",
"LabelSyncPlayAccessCreateAndJoinGroups": "Allow user to create and join groups",
"LabelSyncPlayLeaveGroupDescription": "Disable SyncPlay",
"LabelSyncPlayLeaveGroup": "Leave group",
"LabelSyncPlayNewGroupDescription": "Create a new group",
"LabelSyncPlayNewGroup": "New group",
"LabelSyncPlaySyncMethod": "Sync method:",
"LabelSyncPlayPlaybackDiff": "Playback time difference:",
"MillisecondsUnit": "ms",
"LabelSyncPlayTimeOffset": "Time offset with the server:",
"LabelRequireHttpsHelp": "If checked, the server will automatically redirect all requests over HTTP to HTTPS. This has no effect if the server is not listening on HTTPS.",
"LabelRequireHttps": "Require HTTPS",
"LabelNightly": "Nightly",
"LabelStable": "Stable",
"LabelChromecastVersion": "Chromecast Version",
"LabelEnableHttpsHelp": "Enables the server to listen on the configured HTTPS port. A valid certificate must also be configured in order for this to take effect.",
"LabelEnableHttps": "Enable HTTPS",
"HeaderSyncPlayEnabled": "SyncPlay enabled",
"HeaderSyncPlaySelectGroup": "Join a group",
"HeaderServerAddressSettings": "Server Address Settings",
"HeaderRemoteAccessSettings": "Remote Access Settings",
"HeaderHttpsSettings": "HTTPS Settings",
"EnableDetailsBannerHelp": "Display a banner image at the top of the item details page.",
"EnableDetailsBanner": "Details Banner",
"EnableDecodingColorDepth10Vp9": "Enable 10-Bit hardware decoding for VP9",
"EnableDecodingColorDepth10Hevc": "Enable 10-Bit hardware decoding for HEVC"
} }

View file

@ -225,6 +225,8 @@
"EnableBackdropsHelp": "Display backdrops in the background of some pages while browsing the library.", "EnableBackdropsHelp": "Display backdrops in the background of some pages while browsing the library.",
"EnableCinemaMode": "Cinema mode", "EnableCinemaMode": "Cinema mode",
"EnableColorCodedBackgrounds": "Color coded backgrounds", "EnableColorCodedBackgrounds": "Color coded backgrounds",
"EnableDecodingColorDepth10Hevc": "Enable 10-Bit hardware decoding for HEVC",
"EnableDecodingColorDepth10Vp9": "Enable 10-Bit hardware decoding for VP9",
"EnableDisplayMirroring": "Display mirroring", "EnableDisplayMirroring": "Display mirroring",
"EnableExternalVideoPlayers": "External video players", "EnableExternalVideoPlayers": "External video players",
"EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.", "EnableExternalVideoPlayersHelp": "An external player menu will be shown when starting video playback.",
@ -460,7 +462,6 @@
"HeaderResponseProfile": "Response Profile", "HeaderResponseProfile": "Response Profile",
"HeaderResponseProfileHelp": "Response profiles provide a way to customize information sent to the device when playing certain kinds of media.", "HeaderResponseProfileHelp": "Response profiles provide a way to customize information sent to the device when playing certain kinds of media.",
"HeaderRestart": "Restart", "HeaderRestart": "Restart",
"HeaderRestartingServer": "Restarting Server",
"HeaderRevisionHistory": "Revision History", "HeaderRevisionHistory": "Revision History",
"HeaderRunningTasks": "Running Tasks", "HeaderRunningTasks": "Running Tasks",
"HeaderScenes": "Scenes", "HeaderScenes": "Scenes",
@ -1023,6 +1024,13 @@
"MessageItemsAdded": "Items added.", "MessageItemsAdded": "Items added.",
"MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item or the global default value.", "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item or the global default value.",
"MessageNoAvailablePlugins": "No available plugins.", "MessageNoAvailablePlugins": "No available plugins.",
"MessageNoRepositories": "No repositories.",
"HeaderNewRepository": "New Repository",
"LabelRepositoryUrl": "Repository URL",
"LabelRepositoryUrlHelp": "The location of the repository manifest you want to include.",
"LabelRepositoryName": "Repository Name",
"LabelRepositoryNameHelp": "A custom name to distinguish this repository from any others added to your server.",
"MessageAddRepository": "If you wish to add a repository, click the button next to the header and fill out the requested information.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, and Albums. Click the + button to start creating collections.", "MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, and Albums. Click the + button to start creating collections.",
"MessageNoGenresAvailable": "Enable some metadata providers to pull genres from the internet.", "MessageNoGenresAvailable": "Enable some metadata providers to pull genres from the internet.",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.", "MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
@ -1335,7 +1343,6 @@
"RepeatOne": "Repeat one", "RepeatOne": "Repeat one",
"ReplaceAllMetadata": "Replace all metadata", "ReplaceAllMetadata": "Replace all metadata",
"ReplaceExistingImages": "Replace existing images", "ReplaceExistingImages": "Replace existing images",
"RestartPleaseWaitMessage": "Please wait while Jellyfin Server shuts down and restarts. This may take a minute or two.",
"ResumeAt": "Resume from {0}", "ResumeAt": "Resume from {0}",
"Rewind": "Rewind", "Rewind": "Rewind",
"RunAtStartup": "Run at startup", "RunAtStartup": "Run at startup",
@ -1415,6 +1422,7 @@
"TabAlbums": "Albums", "TabAlbums": "Albums",
"TabArtists": "Artists", "TabArtists": "Artists",
"TabCatalog": "Catalog", "TabCatalog": "Catalog",
"TabRepositories": "Repositories",
"TabChannels": "Channels", "TabChannels": "Channels",
"TabCodecs": "Codecs", "TabCodecs": "Codecs",
"TabCollections": "Collections", "TabCollections": "Collections",
@ -1551,5 +1559,7 @@
"OnApplicationStartup": "On application startup", "OnApplicationStartup": "On application startup",
"UnsupportedPlayback": "Jellyfin cannot decrypt content protected by DRM but all content will be attempted regardless, including protected titles. Some files may appear completely black due to encryption or other unsupported features, such as interactive titles.", "UnsupportedPlayback": "Jellyfin cannot decrypt content protected by DRM but all content will be attempted regardless, including protected titles. Some files may appear completely black due to encryption or other unsupported features, such as interactive titles.",
"EnableBlurhash": "Enable blurred placeholders for images", "EnableBlurhash": "Enable blurred placeholders for images",
"EnableBlurhashHelp": "Images that are still being loaded will be displayed with a blurred placeholder" "EnableBlurhashHelp": "Images that are still being loaded will be displayed with a blurred placeholder",
"ButtonSyncPlay": "SyncPlay",
"ButtonCast": "Cast"
} }

File diff suppressed because it is too large Load diff

View file

@ -1159,7 +1159,6 @@
"ReplaceAllMetadata": "Reemplazar todos los metadatos", "ReplaceAllMetadata": "Reemplazar todos los metadatos",
"ReplaceExistingImages": "Reemplazar imágenes existentes", "ReplaceExistingImages": "Reemplazar imágenes existentes",
"RequiredForAllRemoteConnections": "Requerido para todas las conexiones remotas", "RequiredForAllRemoteConnections": "Requerido para todas las conexiones remotas",
"RestartPleaseWaitMessage": "Por favor, espera mientras el servidor Jellyfin se apaga y reinicia. Esto puede tomar un minuto o dos.",
"ResumeAt": "Reanudar desde {0}", "ResumeAt": "Reanudar desde {0}",
"Rewind": "Rebobinar", "Rewind": "Rebobinar",
"RunAtStartup": "Ejecutar al iniciar", "RunAtStartup": "Ejecutar al iniciar",
@ -1361,7 +1360,6 @@
"HeaderFavoriteSongs": "Canciones favoritas", "HeaderFavoriteSongs": "Canciones favoritas",
"HeaderFavoriteVideos": "Videos favoritos", "HeaderFavoriteVideos": "Videos favoritos",
"HeaderHome": "Inicio", "HeaderHome": "Inicio",
"HeaderRestartingServer": "Reiniciando servidor",
"HeaderVideos": "Videos", "HeaderVideos": "Videos",
"Horizontal": "Horizontal", "Horizontal": "Horizontal",
"LabelAudio": "Audio", "LabelAudio": "Audio",

View file

@ -1,9 +1,9 @@
{ {
"AccessRestrictedTryAgainLater": "Actualmente el acceso está restringido. Por favor, inténtalo de nuevo más tarde.", "AccessRestrictedTryAgainLater": "Actualmente el acceso está restringido. Por favor, inténtalo de nuevo más tarde.",
"Add": "Añadir", "Add": "Añadir",
"AddItemToCollectionHelp": "Agregue elementos a las colecciones buscándolos y haciendo clic con el botón derecho o tocando los menús para agregarlos a una colección.", "AddItemToCollectionHelp": "Puedes añadir elementos a las colecciones buscándolos en tu biblioteca. Una vez hecho esto, abre el menú y selecciona 'Añadir a una colección'.",
"AddToCollection": "Añadir a la colección", "AddToCollection": "Añadir a una colección",
"AddToPlaylist": "Añadir a la lista de reproducción", "AddToPlaylist": "Añadir a una lista de reproducción",
"AddedOnValue": "Añadido {0}", "AddedOnValue": "Añadido {0}",
"AdditionalNotificationServices": "Visite el catálogo de extensiones para instalar servicios de notificación adicionales.", "AdditionalNotificationServices": "Visite el catálogo de extensiones para instalar servicios de notificación adicionales.",
"Albums": "Álbumes", "Albums": "Álbumes",
@ -14,11 +14,11 @@
"AllEpisodes": "Todos los episodios", "AllEpisodes": "Todos los episodios",
"AllLanguages": "Todos los idiomas", "AllLanguages": "Todos los idiomas",
"AllLibraries": "Todas las bibliotecas", "AllLibraries": "Todas las bibliotecas",
"AllowHWTranscodingHelp": "Permite al sintonizador transcodificar secuencias en vivo. Esto puede ayudar a reducir la transcodificación requerida por el servidor.", "AllowHWTranscodingHelp": "Permite al sintonizador convertir el contenido directamente. Esto puede ayudar a reducir la potencia requerida por el servidor.",
"AllowMediaConversion": "Permitir convertir los medios", "AllowMediaConversion": "Permitir convertir los medios",
"AllowMediaConversionHelp": "Concede o deniega el acceso a la función de conversión de medios.", "AllowMediaConversionHelp": "Concede o deniega el acceso a la función de conversión de medios.",
"AllowOnTheFlySubtitleExtraction": "Permitir la extracción de subtítulos sobre la marcha", "AllowOnTheFlySubtitleExtraction": "Permitir la extracción de subtítulos sobre la marcha",
"AllowOnTheFlySubtitleExtractionHelp": "Los subtítulos incrustados pueden extraerse de los vídeos y enviarse en texto sin formato para ayudar a evitar la transcodificación del vídeo. En algunos sistemas, esto puede llevar mucho tiempo y hacer que la reproducción de vídeo se bloquee durante el proceso de extracción. Deshabilite esta opción para tener subtítulos incrustados grabados con transcodificación de video cuando no sean compatibles de forma nativa con el cliente.", "AllowOnTheFlySubtitleExtractionHelp": "Cuando el cliente sea compatible, los subtítulos pueden extraerse durante la reproducción para evitar convertir el vídeo. Sin embargo, y en algunos servidores, esto puede llevar mucho tiempo y hacer que la reproducción tenga cortes durante el proceso. Deshabilita esta opción para grabar los subtítulos directamente en el vídeo cuando no sean compatibles de forma nativa con el cliente.",
"AllowRemoteAccess": "Permitir conexiones remotas a este servidor Jellyfin.", "AllowRemoteAccess": "Permitir conexiones remotas a este servidor Jellyfin.",
"AllowRemoteAccessHelp": "Si no está activado, todas las conexiones remotas serán bloqueadas.", "AllowRemoteAccessHelp": "Si no está activado, todas las conexiones remotas serán bloqueadas.",
"AllowedRemoteAddressesHelp": "Lista separada por comas de direcciones IP o entradas de IP / máscara de red para redes a las que se les permitirá conectarse de forma remota. Si se deja en blanco, se permitirán todas las direcciones remotas.", "AllowedRemoteAddressesHelp": "Lista separada por comas de direcciones IP o entradas de IP / máscara de red para redes a las que se les permitirá conectarse de forma remota. Si se deja en blanco, se permitirán todas las direcciones remotas.",
@ -376,7 +376,7 @@
"HeaderSelectServerCachePath": "Seleccione la ruta para el caché del servidor", "HeaderSelectServerCachePath": "Seleccione la ruta para el caché del servidor",
"HeaderSelectServerCachePathHelp": "Navega o introduce la ruta para alojar los archivos caché del servidor. Tienes que tener permisos de escritura en esa carpeta.", "HeaderSelectServerCachePathHelp": "Navega o introduce la ruta para alojar los archivos caché del servidor. Tienes que tener permisos de escritura en esa carpeta.",
"HeaderSelectTranscodingPath": "Seleccione la ruta temporal del transcodificador", "HeaderSelectTranscodingPath": "Seleccione la ruta temporal del transcodificador",
"HeaderSelectTranscodingPathHelp": "Busque o escriba la ruta de acceso que se utilizará para la transcodificación de archivos temporales. La carpeta debe tener permiso de escritura.", "HeaderSelectTranscodingPathHelp": "Busca o escribe la ruta que se utilizará para guardar los archivos temporales que se generarán mientras se convierten los archivos. Jellyfin debe tener permisos de escritura en la carpeta.",
"HeaderSendMessage": "Enviar mensaje", "HeaderSendMessage": "Enviar mensaje",
"HeaderSeries": "Series", "HeaderSeries": "Series",
"HeaderSeriesOptions": "Opciones de series", "HeaderSeriesOptions": "Opciones de series",
@ -399,8 +399,8 @@
"HeaderTags": "Etiquetas", "HeaderTags": "Etiquetas",
"HeaderTaskTriggers": "Tareas de activación", "HeaderTaskTriggers": "Tareas de activación",
"HeaderThisUserIsCurrentlyDisabled": "Este usuario está desactivado", "HeaderThisUserIsCurrentlyDisabled": "Este usuario está desactivado",
"HeaderTranscodingProfile": "Perfil de transcodificación", "HeaderTranscodingProfile": "Parámetros de conversión",
"HeaderTranscodingProfileHelp": "Añadir perfiles de transcodificación para indicar qué formatos se deben utilizar cuando se requiera transcodificación.", "HeaderTranscodingProfileHelp": "Añade los diferentes parámetros de conversión para este dispositivo, de manera que el servidor convierta automáticamente el contenido en un formato compatible para él.",
"HeaderTunerDevices": "Sintonizadores", "HeaderTunerDevices": "Sintonizadores",
"HeaderTuners": "Sintonizadores", "HeaderTuners": "Sintonizadores",
"HeaderTypeImageFetchers": "{0} capturadores de imágenes", "HeaderTypeImageFetchers": "{0} capturadores de imágenes",
@ -449,7 +449,7 @@
"LabelAlbumArtPN": "Carátula del album PN:", "LabelAlbumArtPN": "Carátula del album PN:",
"LabelAlbumArtists": "Artistas de los álbumes:", "LabelAlbumArtists": "Artistas de los álbumes:",
"LabelAll": "Todo", "LabelAll": "Todo",
"LabelAllowHWTranscoding": "Permitir transcodificación por hardware", "LabelAllowHWTranscoding": "Activar la conversión acelerada por hardware",
"LabelAllowServerAutoRestart": "Permitir al servidor reiniciarse automáticamente para aplicar las actualizaciones", "LabelAllowServerAutoRestart": "Permitir al servidor reiniciarse automáticamente para aplicar las actualizaciones",
"LabelAllowServerAutoRestartHelp": "El servidor solo se reiniciará durante periodos de reposo, cuando no haya usuarios activos.", "LabelAllowServerAutoRestartHelp": "El servidor solo se reiniciará durante periodos de reposo, cuando no haya usuarios activos.",
"LabelAllowedRemoteAddresses": "Filtro de dirección IP remota:", "LabelAllowedRemoteAddresses": "Filtro de dirección IP remota:",
@ -620,7 +620,7 @@
"LabelMoviePrefix": "Prefijo de película:", "LabelMoviePrefix": "Prefijo de película:",
"LabelMoviePrefixHelp": "Si se aplica un prefijo a títulos de películas, escríbalo para que el servidor pueda manejarlo correctamente.", "LabelMoviePrefixHelp": "Si se aplica un prefijo a títulos de películas, escríbalo para que el servidor pueda manejarlo correctamente.",
"LabelMovieRecordingPath": "Ruta de grabaciones de películas (opcional):", "LabelMovieRecordingPath": "Ruta de grabaciones de películas (opcional):",
"LabelMusicStreamingTranscodingBitrate": "Tasa de bits de transcodificación de música:", "LabelMusicStreamingTranscodingBitrate": "Tasa de bits para la reproducción de música:",
"LabelMusicStreamingTranscodingBitrateHelp": "Especifique una tasa de bits máxima cuando transmita música.", "LabelMusicStreamingTranscodingBitrateHelp": "Especifique una tasa de bits máxima cuando transmita música.",
"LabelName": "Nombre:", "LabelName": "Nombre:",
"LabelNewName": "Nuevo nombre:", "LabelNewName": "Nuevo nombre:",
@ -667,7 +667,7 @@
"LabelPublicHttpsPort": "Puerto público HTTPS:", "LabelPublicHttpsPort": "Puerto público HTTPS:",
"LabelPublicHttpsPortHelp": "Puerto público que debe ser enlazado al puerto local HTTPS.", "LabelPublicHttpsPortHelp": "Puerto público que debe ser enlazado al puerto local HTTPS.",
"LabelReadHowYouCanContribute": "Aprenda cómo contribuir.", "LabelReadHowYouCanContribute": "Aprenda cómo contribuir.",
"LabelReasonForTranscoding": "Motivo de la transcodificación:", "LabelReasonForTranscoding": "Motivo por el que se realiza la conversión:",
"LabelRecord": "Grabar:", "LabelRecord": "Grabar:",
"LabelRecordingPath": "Ruta de grabaciones por defecto:", "LabelRecordingPath": "Ruta de grabaciones por defecto:",
"LabelRecordingPathHelp": "Especifica la ubicación por defecto para guardar las grabaciones. Si lo dejas vacío se usará la carpeta de datos del servidor.", "LabelRecordingPathHelp": "Especifica la ubicación por defecto para guardar las grabaciones. Si lo dejas vacío se usará la carpeta de datos del servidor.",
@ -694,7 +694,7 @@
"LabelSkipIfAudioTrackPresent": "Omitir si la pista de audio por defecto coincide con el idioma de descarga", "LabelSkipIfAudioTrackPresent": "Omitir si la pista de audio por defecto coincide con el idioma de descarga",
"LabelSkipIfAudioTrackPresentHelp": "Desactive esta opción para asegurar que todos los vídeos tienen subtítulos, sin importar el idioma de audio.", "LabelSkipIfAudioTrackPresentHelp": "Desactive esta opción para asegurar que todos los vídeos tienen subtítulos, sin importar el idioma de audio.",
"LabelSkipIfGraphicalSubsPresent": "Saltar si el vídeo tiene subtítulos integrados", "LabelSkipIfGraphicalSubsPresent": "Saltar si el vídeo tiene subtítulos integrados",
"LabelSkipIfGraphicalSubsPresentHelp": "Mantener versiones de texto de subtítulos dará lugar a una entrega más eficiente y a disminuir la probabilidad de transcodificación de vídeo.", "LabelSkipIfGraphicalSubsPresentHelp": "Mantener versiones de los subtítulos en texto plano puede hacer que la reproducción sea más eficiente en un número mayor de dispositivos, evitando la conversión del vídeo.",
"LabelSonyAggregationFlags": "Agregación de banderas Sony:", "LabelSonyAggregationFlags": "Agregación de banderas Sony:",
"LabelSonyAggregationFlagsHelp": "Determina el contenido del elemento aggregationFlags en el espacio de nombre urn:schemas-sonycom:av.", "LabelSonyAggregationFlagsHelp": "Determina el contenido del elemento aggregationFlags en el espacio de nombre urn:schemas-sonycom:av.",
"LabelSortTitle": "Clasificar por título:", "LabelSortTitle": "Clasificar por título:",
@ -721,9 +721,9 @@
"LabelTrackNumber": "Número de pista:", "LabelTrackNumber": "Número de pista:",
"LabelTranscodingAudioCodec": "Códec de audio:", "LabelTranscodingAudioCodec": "Códec de audio:",
"LabelTranscodingContainer": "Contenedor:", "LabelTranscodingContainer": "Contenedor:",
"LabelTranscodingTempPathHelp": "Establece la ruta personaliza para la transcodificación de archivos servidos a los clientes. Dejar en blanco para usar la ruta por defecto del servidor.", "LabelTranscodingTempPathHelp": "Establece la carpeta que se usará para almacenar los archivos temporales de las conversiones. Déjalo en blanco para usar la ruta por defecto.",
"LabelTranscodingThreadCount": "Cantidad de instancias de transcodificación:", "LabelTranscodingThreadCount": "Núcleos a utilizar durante la conversión:",
"LabelTranscodingThreadCountHelp": "Selecciona el número máximo de instancias de transcodificación. Reducirlas disminuirá el uso del procesador pero puede no convertirá lo suficientemente rápido para una reproducción fluida.", "LabelTranscodingThreadCountHelp": "Selecciona el número de núcleos a utilizar para la conversión. A menos núcleos, menor será el uso del procesador, pero puede que la conversión no vaya lo suficientemente rápido para una reproducción fluida.",
"LabelTranscodingVideoCodec": "Códec de video:", "LabelTranscodingVideoCodec": "Códec de video:",
"LabelTriggerType": "Tipo de evento:", "LabelTriggerType": "Tipo de evento:",
"LabelTunerIpAddress": "IP del sintonizador:", "LabelTunerIpAddress": "IP del sintonizador:",
@ -821,7 +821,7 @@
"MessageNoAvailablePlugins": "No hay extensiones disponibles.", "MessageNoAvailablePlugins": "No hay extensiones disponibles.",
"MessageNoMovieSuggestionsAvailable": "No hay sugerencias de películas disponibles. Comience ver y calificar sus películas y vuelva para ver las recomendaciones.", "MessageNoMovieSuggestionsAvailable": "No hay sugerencias de películas disponibles. Comience ver y calificar sus películas y vuelva para ver las recomendaciones.",
"MessageNoPluginsInstalled": "No hay extensiones instaladas.", "MessageNoPluginsInstalled": "No hay extensiones instaladas.",
"MessageNoTrailersFound": "No se han encontrado tráilers. Instala el canal de tráilers para mejorar su experiencia añadiendo una biblioteca de tráilers por internet.", "MessageNoTrailersFound": "Instale el canal de tráilers para mejorar su experiencia cinematográfica agregando una biblioteca de tráilers de Internet.",
"MessageNothingHere": "Nada aquí.", "MessageNothingHere": "Nada aquí.",
"MessagePasswordResetForUsers": "Se ha restablecido las contraseñas a los siguientes usuarios. Ahora pueden iniciar sesión con los códigos PIN que usaron para el restablecimiento.", "MessagePasswordResetForUsers": "Se ha restablecido las contraseñas a los siguientes usuarios. Ahora pueden iniciar sesión con los códigos PIN que usaron para el restablecimiento.",
"MessagePleaseEnsureInternetMetadata": "Asegúrate de que la descarga de etiquetas desde internet está activada.", "MessagePleaseEnsureInternetMetadata": "Asegúrate de que la descarga de etiquetas desde internet está activada.",
@ -874,21 +874,21 @@
"OptionAlbum": "Álbum", "OptionAlbum": "Álbum",
"OptionAlbumArtist": "Artista de álbum", "OptionAlbumArtist": "Artista de álbum",
"OptionAllUsers": "Todos los usuarios", "OptionAllUsers": "Todos los usuarios",
"OptionAllowAudioPlaybackTranscoding": "Permitir reproducción de audio que requiere transcodificación", "OptionAllowAudioPlaybackTranscoding": "Activar la conversión del audio",
"OptionAllowBrowsingLiveTv": "Permitir acceso a la televisión en directo", "OptionAllowBrowsingLiveTv": "Permitir acceso a la televisión en directo",
"OptionAllowContentDownloading": "Permitir la descarga de medios", "OptionAllowContentDownloading": "Permitir la descarga de medios",
"OptionAllowLinkSharing": "Permitir compartir los medios en redes sociales", "OptionAllowLinkSharing": "Permitir compartir los medios en redes sociales",
"OptionAllowLinkSharingHelp": "Sólo se comparten las páginas web con información de medios. Los archivos nunca se comparten públicamente. Lo compartido expirará después de {0} días.", "OptionAllowLinkSharingHelp": "Sólo se comparten las páginas web con información de medios. Los archivos nunca se comparten públicamente. Lo compartido expirará después de {0} días.",
"OptionAllowManageLiveTv": "Habilitar la administración de grabación de la televisión en directo", "OptionAllowManageLiveTv": "Habilitar la administración de grabación de la televisión en directo",
"OptionAllowMediaPlayback": "Permitir la reproducción de medios", "OptionAllowMediaPlayback": "Permitir la reproducción de medios",
"OptionAllowMediaPlaybackTranscodingHelp": "Restringir el acceso a la transcodificación puede causar fallos de reproducción en aplicaciones Jellyfin debido a formatos de medios no compatibles.", "OptionAllowMediaPlaybackTranscodingHelp": "Con la conversión, el servidor se asegura que cualquier cliente es capaz de reproducir el contenido, sin importar su formato. Al desactivar la conversión de alguno de estos elementos, es posible que los vídeos no tengan audio o que, directamente, no se pueda reproducir el archivo por no ser compatible con el dispositivo. Para evitar problemas con la reproducción es mejor dejarlas todas por defecto.",
"OptionAllowRemoteControlOthers": "Habilitar el control remoto de otros usuarios", "OptionAllowRemoteControlOthers": "Habilitar el control remoto de otros usuarios",
"OptionAllowRemoteSharedDevices": "Habilitar el control remoto de otros equipos compartidos", "OptionAllowRemoteSharedDevices": "Habilitar el control remoto de otros equipos compartidos",
"OptionAllowRemoteSharedDevicesHelp": "Los equipos DLNA son considerados compartidos hasta que un usuario empiece a controlarlos.", "OptionAllowRemoteSharedDevicesHelp": "Los equipos DLNA son considerados compartidos hasta que un usuario empiece a controlarlos.",
"OptionAllowSyncTranscoding": "Permitir la descarga que requiera transcodificación", "OptionAllowSyncTranscoding": "Permitir la conversión del contenido cuando se descargue o se sincronice",
"OptionAllowUserToManageServer": "Permite a este usuario administrar el servidor", "OptionAllowUserToManageServer": "Permite a este usuario administrar el servidor",
"OptionAllowVideoPlaybackRemuxing": "Permitir la reproducción de vídeo que requiere conversión sin necesidad de volver a codificar", "OptionAllowVideoPlaybackRemuxing": "Activar el cambio de contenedor para el contenido cuyo audio y vídeo es compatible, pero no lo es su contenedor",
"OptionAllowVideoPlaybackTranscoding": "Permitir reproducción de vídeo que requiere transcodificación", "OptionAllowVideoPlaybackTranscoding": "Activar la conversión del vídeo",
"OptionArtist": "Artista", "OptionArtist": "Artista",
"OptionAscending": "Ascendente", "OptionAscending": "Ascendente",
"OptionAutomaticallyGroupSeries": "Combinar automáticamente series que se distribuyen en varias carpetas", "OptionAutomaticallyGroupSeries": "Combinar automáticamente series que se distribuyen en varias carpetas",
@ -949,7 +949,7 @@
"OptionHideUserFromLoginHelp": "Útil para privado o cuentas de administradores escondidos. El usuario tendrá que acceder entrando su nombre de usuario y contraseña manualmente.", "OptionHideUserFromLoginHelp": "Útil para privado o cuentas de administradores escondidos. El usuario tendrá que acceder entrando su nombre de usuario y contraseña manualmente.",
"OptionHlsSegmentedSubtitles": "Subtítulos segmentados HLS", "OptionHlsSegmentedSubtitles": "Subtítulos segmentados HLS",
"OptionHomeVideos": "Fotos", "OptionHomeVideos": "Fotos",
"OptionIgnoreTranscodeByteRangeRequests": "Ignorar las solicitudes de intervalo de bytes de transcodificación", "OptionIgnoreTranscodeByteRangeRequests": "En las conversiones, ignorar las solicitudes de un intervalo específico de bytes",
"OptionIgnoreTranscodeByteRangeRequestsHelp": "Si está activado, estas solicitudes serán atendidas pero ignorarán el encabezado de intervalo de bytes.", "OptionIgnoreTranscodeByteRangeRequestsHelp": "Si está activado, estas solicitudes serán atendidas pero ignorarán el encabezado de intervalo de bytes.",
"OptionImdbRating": "Valoración IMDb", "OptionImdbRating": "Valoración IMDb",
"OptionLikes": "Me gusta", "OptionLikes": "Me gusta",
@ -1160,7 +1160,7 @@
"TabSongs": "Canciones", "TabSongs": "Canciones",
"TabStreaming": "Transmisión", "TabStreaming": "Transmisión",
"TabSuggestions": "Sugerencias", "TabSuggestions": "Sugerencias",
"TabTranscoding": "Transcodificación", "TabTranscoding": "Conversión",
"TabUpcoming": "Próximos", "TabUpcoming": "Próximos",
"TabUsers": "Usuarios", "TabUsers": "Usuarios",
"Tags": "Etiquetas", "Tags": "Etiquetas",
@ -1173,7 +1173,7 @@
"TitleHostingSettings": "Configuración del alojamiento", "TitleHostingSettings": "Configuración del alojamiento",
"TitlePlayback": "Reproducción", "TitlePlayback": "Reproducción",
"TrackCount": "{0} pistas", "TrackCount": "{0} pistas",
"Transcoding": "Transcodificación", "Transcoding": "Conversión",
"Tuesday": "Martes", "Tuesday": "Martes",
"TvLibraryHelp": "Revisar la {0}guía de nombres de los programas de TV{1}.", "TvLibraryHelp": "Revisar la {0}guía de nombres de los programas de TV{1}.",
"UninstallPluginConfirmation": "¿Esta seguro que desea desinstalar {0}?", "UninstallPluginConfirmation": "¿Esta seguro que desea desinstalar {0}?",
@ -1351,11 +1351,10 @@
"HeaderFavoriteSongs": "Canciones favoritas", "HeaderFavoriteSongs": "Canciones favoritas",
"HeaderFavoriteVideos": "Vídeos favoritos", "HeaderFavoriteVideos": "Vídeos favoritos",
"HeaderHome": "Inicio", "HeaderHome": "Inicio",
"HeaderRestartingServer": "Reiniciando servidor",
"LabelAuthProvider": "Proveedor de autenticación:", "LabelAuthProvider": "Proveedor de autenticación:",
"LabelPasswordResetProvider": "Proveedor de restablecimiento de contraseña:", "LabelPasswordResetProvider": "Proveedor de restablecimiento de contraseña:",
"LabelServerName": "Nombre del servidor:", "LabelServerName": "Nombre del servidor:",
"LabelTranscodePath": "Ruta de transcodificación:", "LabelTranscodePath": "Ruta para los archivos temporales de las conversiones:",
"LabelTranscodes": "Transcodificaciones:", "LabelTranscodes": "Transcodificaciones:",
"LabelUserLoginAttemptsBeforeLockout": "Intentos fallidos de inicio de sesión antes de que el usuario sea bloqueado:", "LabelUserLoginAttemptsBeforeLockout": "Intentos fallidos de inicio de sesión antes de que el usuario sea bloqueado:",
"DashboardVersionNumber": "Versión: {0}", "DashboardVersionNumber": "Versión: {0}",
@ -1397,7 +1396,6 @@
"Premiere": "Estreno", "Premiere": "Estreno",
"Raised": "Elevación", "Raised": "Elevación",
"RefreshDialogHelp": "Las etiquetas se actualizan basándose en las configuraciones y los servicios de internet activados desde el panel de control de Jellyfin.", "RefreshDialogHelp": "Las etiquetas se actualizan basándose en las configuraciones y los servicios de internet activados desde el panel de control de Jellyfin.",
"RestartPleaseWaitMessage": "Por favor, espera mientras el servidor Jellyfin se reinicia. Esto puede tardar un minuto o dos.",
"RunAtStartup": "Ejecutar al iniciar", "RunAtStartup": "Ejecutar al iniciar",
"Series": "Series", "Series": "Series",
"SeriesDisplayOrderHelp": "Ordena los episodios por fecha de emisión, orden de DVD o número absoluto.", "SeriesDisplayOrderHelp": "Ordena los episodios por fecha de emisión, orden de DVD o número absoluto.",
@ -1432,8 +1430,8 @@
"MoreMediaInfo": "Información del archivo", "MoreMediaInfo": "Información del archivo",
"LabelVideoCodec": "Codec de video:", "LabelVideoCodec": "Codec de video:",
"LabelVideoBitrate": "Bitrade de video:", "LabelVideoBitrate": "Bitrade de video:",
"LabelTranscodingProgress": "Progreso de la transcodificación:", "LabelTranscodingProgress": "Progreso de la conversión:",
"LabelTranscodingFramerate": "Velocidad de fotogramas de la transcodificación:", "LabelTranscodingFramerate": "Velocidad de la conversión:",
"LabelSize": "Tamaño:", "LabelSize": "Tamaño:",
"LabelPleaseRestart": "Los cambios surtirán efecto tras recargar manualmente el cliente web.", "LabelPleaseRestart": "Los cambios surtirán efecto tras recargar manualmente el cliente web.",
"LabelPlayMethod": "Método de reproducción:", "LabelPlayMethod": "Método de reproducción:",
@ -1461,9 +1459,9 @@
"EnableFasterAnimationsHelp": "Las animaciones y transiciones durarán menos tiempo", "EnableFasterAnimationsHelp": "Las animaciones y transiciones durarán menos tiempo",
"EnableFasterAnimations": "Animaciones más rápidas", "EnableFasterAnimations": "Animaciones más rápidas",
"CopyStreamURLError": "Ha habido un error copiando la dirección.", "CopyStreamURLError": "Ha habido un error copiando la dirección.",
"AllowFfmpegThrottlingHelp": "Cuando una transcodificación o un remux se adelanta lo suficiente desde la posición de reproducción actual, pause el proceso para que consuma menos recursos. Esto es más útil cuando se reproduce de forma linear, sin saltar de posición de reproducción a menudo. Desactívelo si experimenta problemas de reproducción.", "AllowFfmpegThrottlingHelp": "Las conversiones se pausarán cuando se adelanten lo suficiente desde la posición en la que se encuentre el reproductor. Puede reducir la carga en el servidor y es útil cuando se reproduce de forma continua, sin saltar entre intervalos de tiempo, pero puede que tengas que desactivarlo si experimentas problemas en la reproducción o cambias de posición frecuentemente mientras reproduces contenido.",
"PlaybackErrorNoCompatibleStream": "Este contenido no es compatible con este dispositivo y no se puede reproducir: No se puede obtener del servidor en un formato compatible.", "PlaybackErrorNoCompatibleStream": "Este contenido no es compatible con este dispositivo y no se puede reproducir: No se puede obtener del servidor en un formato compatible.",
"OptionForceRemoteSourceTranscoding": "Forzar la transcodificación para fuentes remotas de medios (como LiveTV)", "OptionForceRemoteSourceTranscoding": "Forzar la conversión para fuentes externas (como la televisión en directo)",
"NoCreatedLibraries": "Parece que aún no se han creado librearías. {0}¿Quiere crear una ahora?{1}", "NoCreatedLibraries": "Parece que aún no se han creado librearías. {0}¿Quiere crear una ahora?{1}",
"LabelVideoResolution": "Resolución de video:", "LabelVideoResolution": "Resolución de video:",
"LabelStreamType": "Tipo de stream:", "LabelStreamType": "Tipo de stream:",
@ -1471,7 +1469,7 @@
"LabelDroppedFrames": "Frames perdidos:", "LabelDroppedFrames": "Frames perdidos:",
"LabelCorruptedFrames": "Frames corruptos:", "LabelCorruptedFrames": "Frames corruptos:",
"AskAdminToCreateLibrary": "Solo un administrador puede crear librerías.", "AskAdminToCreateLibrary": "Solo un administrador puede crear librerías.",
"AllowFfmpegThrottling": "Acelerar transcodificación", "AllowFfmpegThrottling": "Pausar las conversiones",
"ClientSettings": "Ajustes de cliente", "ClientSettings": "Ajustes de cliente",
"PreferEmbeddedEpisodeInfosOverFileNames": "Priorizar la información embebida sobre los nombres de archivos", "PreferEmbeddedEpisodeInfosOverFileNames": "Priorizar la información embebida sobre los nombres de archivos",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Usar la información de episodio de los metadatos embebidos si está disponible.", "PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Usar la información de episodio de los metadatos embebidos si está disponible.",
@ -1559,6 +1557,11 @@
"HeaderSyncPlaySelectGroup": "Unirse a un grupo", "HeaderSyncPlaySelectGroup": "Unirse a un grupo",
"EnableDetailsBannerHelp": "Mostrar imagen de banner en el tope de la página de detalles del elemento.", "EnableDetailsBannerHelp": "Mostrar imagen de banner en el tope de la página de detalles del elemento.",
"EnableDetailsBanner": "Barra de Detalles", "EnableDetailsBanner": "Barra de Detalles",
"ShowMore": "Mostrar más", "ShowMore": "Ver más",
"ShowLess": "Mostrar menos" "ShowLess": "Ver menos",
"ButtonSyncPlay": "SyncPlay",
"ButtonCast": "Enviar",
"MessageNoGenresAvailable": "Permitir a algunos proveedores de metadatos extraer géneros de Internet.",
"EnableDecodingColorDepth10Vp9": "Habilite la decodificación por hardware de 10 bits para Vp9",
"EnableDecodingColorDepth10Hevc": "Habilite la decodificación por hardware de 10 bits para HEVC"
} }

View file

@ -51,8 +51,8 @@
"LabelNightly": "Nocturno", "LabelNightly": "Nocturno",
"HeaderVideos": "Videos", "HeaderVideos": "Videos",
"Director": "Director", "Director": "Director",
"Depressed": "Presionado", "Depressed": "No presionado",
"BoxSet": "Box Set", "BoxSet": "Caja",
"UnsupportedPlayback": "Jellyfin no puede desencriptar contenido protegido por DRM de todas formas todo el contenido será intentado, incluyendo los títulos protegidos. Algunos archivos pueden aparecer completamente en negro debido al encriptado o características no soportadas, como títulos interactivos.", "UnsupportedPlayback": "Jellyfin no puede desencriptar contenido protegido por DRM de todas formas todo el contenido será intentado, incluyendo los títulos protegidos. Algunos archivos pueden aparecer completamente en negro debido al encriptado o características no soportadas, como títulos interactivos.",
"OnApplicationStartup": "Cuando se inicia la aplicación", "OnApplicationStartup": "Cuando se inicia la aplicación",
"EveryXHours": "Cada {0} horas", "EveryXHours": "Cada {0} horas",
@ -564,7 +564,6 @@
"RunAtStartup": "Ejecutar al iniciar", "RunAtStartup": "Ejecutar al iniciar",
"Rewind": "Rebobinar", "Rewind": "Rebobinar",
"ResumeAt": "Reanudar desde {0}", "ResumeAt": "Reanudar desde {0}",
"RestartPleaseWaitMessage": "Por favor, espera mientras el servidor Jellyfin se apaga y reinicia. Esto puede tomar un minuto o dos.",
"ReplaceExistingImages": "Reemplazar imágenes existentes", "ReplaceExistingImages": "Reemplazar imágenes existentes",
"ReplaceAllMetadata": "Reemplazar todos los metadatos", "ReplaceAllMetadata": "Reemplazar todos los metadatos",
"RepeatOne": "Repetir uno", "RepeatOne": "Repetir uno",
@ -1074,7 +1073,6 @@
"HeaderScenes": "Escenas", "HeaderScenes": "Escenas",
"HeaderRunningTasks": "Tareas en ejecución", "HeaderRunningTasks": "Tareas en ejecución",
"HeaderRevisionHistory": "Historial de versiones", "HeaderRevisionHistory": "Historial de versiones",
"HeaderRestartingServer": "Reiniciando servidor",
"HeaderRestart": "Reiniciar", "HeaderRestart": "Reiniciar",
"HeaderResponseProfileHelp": "Los perfiles de respuesta proporcionan un medio para personalizar la información enviada al dispositivo cuando se reproducen ciertos tipos de medios.", "HeaderResponseProfileHelp": "Los perfiles de respuesta proporcionan un medio para personalizar la información enviada al dispositivo cuando se reproducen ciertos tipos de medios.",
"HeaderResponseProfile": "Perfil de respuesta", "HeaderResponseProfile": "Perfil de respuesta",
@ -1546,5 +1544,9 @@
"AllComplexFormats": "Todos los formatos complejos (ASS, SSA, VOBSUB, PGS, SUB, IDX...)", "AllComplexFormats": "Todos los formatos complejos (ASS, SSA, VOBSUB, PGS, SUB, IDX...)",
"AllChannels": "Todos los canales", "AllChannels": "Todos los canales",
"All": "Todo", "All": "Todo",
"Alerts": "Alertas" "Alerts": "Alertas",
"EnableBlurhash": "Habilitar marcadores de posición borrosos para imágenes",
"ShowMore": "Mostrar más",
"ShowLess": "Mostrar menos",
"EnableBlurhashHelp": "Las imágenes que aún se están cargando se mostrarán con un marcador de posición borroso"
} }

View file

@ -799,5 +799,759 @@
"LabelSeasonNumber": "شماره فصل:", "LabelSeasonNumber": "شماره فصل:",
"ConfigureDateAdded": "تنظیم کنید که چگونه تاریخ اضافه شده در داشبورد سرور Jellyfin تحت تنظیمات کتابخانه تعیین می‌شود", "ConfigureDateAdded": "تنظیم کنید که چگونه تاریخ اضافه شده در داشبورد سرور Jellyfin تحت تنظیمات کتابخانه تعیین می‌شود",
"CinemaModeConfigurationHelp": "حالت سینما تجربه تئاتر گونه را مستقیم به اتاق نشیمن شما می‌آورد با قابلیت پخش تریلرها و پیش نمایش‌ها قبل از سایر ویژگی‌های اصلی.", "CinemaModeConfigurationHelp": "حالت سینما تجربه تئاتر گونه را مستقیم به اتاق نشیمن شما می‌آورد با قابلیت پخش تریلرها و پیش نمایش‌ها قبل از سایر ویژگی‌های اصلی.",
"LaunchWebAppOnStartup": "نمای وب هنگامی که سرور آغاز به کار می‌کند باز بشود" "LaunchWebAppOnStartup": "نمای وب هنگامی که سرور آغاز به کار می‌کند باز بشود",
"NoSubtitles": "خالی",
"NoSubtitleSearchResultsFound": "نتیجه‌ای یافت نشد.",
"NoPluginConfigurationMessage": "این افزونه هیچ تنظیماتی برای پیکربندی ندارد.",
"No": "خیر",
"Next": "بعدی",
"News": "اخبار",
"NewEpisodesOnly": "فقط قسمت‌های جدید",
"NewEpisodes": "قسمت‌های جدید",
"NewCollectionNameExample": "مثال: مجموعه‌ی جنگ ستارگان",
"NewCollection": "مجموعه جدید",
"Never": "هرگز",
"Name": "نام",
"MySubtitles": "زیرنویس‌های من",
"Mute": "سکوت",
"MusicVideo": "موزیک ویدیو",
"MusicArtist": "هنرمند موسیقی",
"MusicAlbum": "آلبوم موسیقی",
"Movie": "فیلم",
"AddItemToCollectionHelp": "افزودن موارد به مجموعه ها با جستجوی آنها و استفاده از منوهای راست کلیک یا ضربه بزنید تا آنها را به مجموعه اضافه کنید.",
"AllowFfmpegThrottlingHelp": "هنگامی که یک transcode یا remux به اندازه کافی پیش از موقعیت پخش فعلی می شود ، روند را متوقف می کند تا منابع کمتری مصرف کند. این بیشتر مفید است در هنگام تماشای بدون به دنبال اغلب. اگر مسائل مربوط به پخش را تجربه کنید ، این را خاموش کنید.",
"DefaultSubtitlesHelp": "زیرنویس ها بر اساس پرچم های پیش فرض و اجباری در ابرداده تعبیه شده بارگذاری می شوند. تنظیمات زبان در نظر گرفته می شوند زمانی که گزینه های متعدد در دسترس هستند.",
"DeinterlaceMethodHelp": "روش deinterlacing برای استفاده از زمانی که transcoding محتوای هم آمیختن را انتخاب کنید.",
"DeviceAccessHelp": "این فقط برای دستگاههایی است که می توانند به صورت منحصر به فرد شناسایی شوند و از دسترسی مرورگر جلوگیری نکنند. فیلتر کردن دسترسی دستگاه کاربر مانع از استفاده از دستگاه های جدید می شود تا اینکه در اینجا تایید شده باشند.",
"DirectStreamHelp1": "رسانه ها با دستگاه مربوط به رزولوشن و نوع رسانه (H. 264 ، AC3 و غیره) سازگار است ، اما در یک ظرف فایل ناسازگار (mkv ، avi ، wmv و غیره) است. ویدیو قبل از پخش آن به دستگاه دوباره بسته بندی می شود.",
"EasyPasswordHelp": "کد pin آسان شما برای دسترسی آفلاین در مشتریان پشتیبانی شده استفاده می شود و همچنین برای ورود به سیستم در شبکه آسان است.",
"EnableBackdropsHelp": "Display backdrops in the background of some pages while browsing the library.",
"EnableNextVideoInfoOverlayHelp": "At the end of a video, display info about the next video coming up in the current playlist.",
"EnablePhotosHelp": "Images will be detected and displayed alongside other media files.",
"EnableStreamLoopingHelp": "Enable this if live streams only contain a few seconds of data and need to be continuously requested. Enabling this when not needed may cause problems.",
"EnableThemeSongsHelp": "Play theme songs in the background while browsing the library.",
"EnableThemeVideosHelp": "Play theme videos in the background while browsing the library.",
"BurnSubtitlesHelp": "Determines if the server should burn in subtitles when transcoding videos. Avoiding this will greatly improve performance. Select Auto to burn image based formats (VOBSUB, PGS, SUB, IDX, …) and certain ASS or SSA subtitles.",
"Episode": "Episode",
"ErrorAddingListingsToSchedulesDirect": "There was an error adding the lineup to your Schedules Direct account. Schedules Direct only allows a limited number of lineups per account. You may need to log into the Schedules Direct website and remove others listings from your account before proceeding.",
"ErrorAddingMediaPathToVirtualFolder": "There was an error adding the media path. Please ensure the path is valid and the Jellyfin Server process has access to that location.",
"ErrorAddingTunerDevice": "There was an error adding the tuner device. Please ensure it is accessible and try again.",
"ErrorAddingXmlTvFile": "There was an error accessing the XMLTV file. Please ensure the file exists and try again.",
"ErrorDeletingItem": "There was an error deleting the item from Jellyfin Server. Please check that Jellyfin Server has write access to the media folder and try again.",
"ErrorGettingTvLineups": "There was an error downloading TV lineups. Please ensure your information is correct and try again.",
"ErrorPleaseSelectLineup": "Please select a lineup and try again. If no lineups are available, then please check that your username, password, and postal code is correct.",
"ErrorSavingTvProvider": "There was an error saving the TV provider. Please ensure it is accessible and try again.",
"LabelExtractChaptersDuringLibraryScanHelp": "Generate chapter images when videos are imported during the library scan. Otherwise, they will be extracted during the chapter images scheduled task, allowing the regular library scan to complete faster.",
"LabelFailed": "Failed",
"LabelFileOrUrl": "File or URL:",
"HeaderSelectServerCachePath": "Select Server Cache Path",
"HeaderSelectServerCachePathHelp": "Browse or enter the path to use for server cache files. The folder must be writeable.",
"HeaderSelectTranscodingPath": "Select Transcoding Temporary Path",
"HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.",
"LabelArtistsHelp": "Separate multiple using ;",
"LabelAudio": "Audio",
"LabelAudioBitDepth": "Audio bit depth:",
"LabelAudioBitrate": "Audio bitrate:",
"LabelAudioChannels": "Audio channels:",
"LabelAudioCodec": "Audio codec:",
"LabelAudioSampleRate": "Audio sample rate:",
"LabelAuthProvider": "Authentication Provider:",
"LabelAutomaticallyRefreshInternetMetadataEvery": "Automatically refresh metadata from the internet:",
"LabelBindToLocalNetworkAddress": "Bind to local network address:",
"LabelBindToLocalNetworkAddressHelp": "Optional. Override the local IP address to bind the http server to. If left empty, the server will bind to all availabile addresses. Changing this value requires restarting Jellyfin Server.",
"LabelBirthDate": "Birth date:",
"LabelBirthYear": "Birth year:",
"LabelBitrate": "Bitrate:",
"LabelBlastMessageInterval": "Alive message interval (seconds)",
"LabelBlastMessageIntervalHelp": "Determines the duration in seconds between blast alive messages.",
"LabelBlockContentWithTags": "Block items with tags:",
"LabelBurnSubtitles": "Burn subtitles:",
"LabelCache": "Cache:",
"LabelCachePath": "Cache path:",
"LabelCachePathHelp": "Specify a custom location for server cache files such as images. Leave blank to use the server default.",
"LabelCancelled": "Cancelled",
"LabelCertificatePassword": "Certificate password:",
"LabelCertificatePasswordHelp": "If your certificate requires a password, please enter it here.",
"LabelChannels": "Channels:",
"LabelCollection": "Collection:",
"LabelCommunityRating": "Community rating:",
"LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.",
"LabelDateAddedBehavior": "Date added behavior for new content:",
"LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.",
"LabelDateTimeLocale": "Date time locale:",
"LabelDay": "Day:",
"LabelDeathDate": "Death date:",
"LabelDefaultScreen": "Default screen:",
"LabelDefaultUser": "Default user:",
"LabelDefaultUserHelp": "Determines which user library should be displayed on connected devices. This can be overridden for each device using profiles.",
"LabelDeinterlaceMethod": "Deinterlacing method:",
"LabelDeviceDescription": "Device description",
"LabelDidlMode": "DIDL mode:",
"LabelDiscNumber": "Disc number:",
"LabelDisplayLanguage": "Display language:",
"LabelDisplayLanguageHelp": "Translating Jellyfin is an ongoing project.",
"LabelDisplayMode": "Display mode:",
"LabelDisplayName": "Display name:",
"LabelDisplayOrder": "Display order:",
"LabelDisplaySpecialsWithinSeasons": "Display specials within seasons they aired in",
"LabelDownMixAudioScale": "Audio boost when downmixing:",
"LabelDownMixAudioScaleHelp": "Boost audio when downmixing. A value of one will preserve the original volume.",
"LabelDownloadLanguages": "Download languages:",
"LabelDropImageHere": "Drop image here, or click to browse.",
"LabelDroppedFrames": "Dropped frames:",
"LabelDropShadow": "Drop shadow:",
"LabelDynamicExternalId": "{0} Id:",
"LabelEasyPinCode": "Easy pin code:",
"LabelEmbedAlbumArtDidl": "Embed album art in Didl",
"LabelEmbedAlbumArtDidlHelp": "Some devices prefer this method for obtaining album art. Others may fail to play with this option enabled.",
"LabelEnableAutomaticPortMap": "Enable automatic port mapping",
"LabelEnableAutomaticPortMapHelp": "Automatically forward public ports on your router to local ports on your server via UPnP. This may not work with some router models or network configurations. Changes will not apply until after a server restart.",
"LabelEnableBlastAliveMessages": "Blast alive messages",
"LabelEnableBlastAliveMessagesHelp": "Enable this if the server is not detected reliably by other UPnP devices on your network.",
"LabelEnableDlnaClientDiscoveryInterval": "Client discovery interval (seconds)",
"LabelEnableDlnaClientDiscoveryIntervalHelp": "Determines the duration in seconds between SSDP searches performed by Jellyfin.",
"LabelEnableDlnaDebugLogging": "Enable DLNA debug logging",
"LabelEnableDlnaDebugLoggingHelp": "Create large log files and should only be used as needed for troubleshooting purposes.",
"LabelEnableDlnaPlayTo": "Enable DLNA Play To",
"LabelEnableDlnaPlayToHelp": "Detect devices within your network and offer the ability to remote control them.",
"LabelEnableDlnaServer": "Enable DLNA server",
"LabelEnableDlnaServerHelp": "Allows UPnP devices on your network to browse and play content.",
"LabelEnableHardwareDecodingFor": "Enable hardware decoding for:",
"LabelEnableHttps": "Enable HTTPS",
"LabelEnableHttpsHelp": "Enables the server to listen on the configured HTTPS port. A valid certificate must also be configured in order for this to take effect.",
"LabelEnableRealtimeMonitor": "Enable real time monitoring",
"LabelEnableRealtimeMonitorHelp": "Changes to files will be processed immediately, on supported file systems.",
"LabelEnableSingleImageInDidlLimit": "Limit to single embedded image",
"LabelEnableSingleImageInDidlLimitHelp": "Some devices will not render properly if multiple images are embedded within Didl.",
"LabelEndDate": "End date:",
"LabelEpisodeNumber": "Episode number:",
"LabelEvent": "Event:",
"LabelEveryXMinutes": "Every:",
"LabelBaseUrl": "Base URL:",
"LabelBaseUrlHelp": "Adds a custom subdirectory to the server URL. For example: <code>http://example.com/<b>&lt;baseurl&gt;</b></code>",
"LabelExtractChaptersDuringLibraryScan": "Extract chapter images during the library scan",
"EnableDetailsBanner": "Details Banner",
"EnableDetailsBannerHelp": "Display a banner image at the top of the item details page.",
"ExtractChapterImagesHelp": "Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, resource intensive, and may require several gigabytes of space. It runs when videos are discovered, and also as a nightly scheduled task. The schedule is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.",
"FFmpegSavePathNotFound": "We're unable to locate FFmpeg using the path you've entered. FFprobe is also required and must exist in the same folder. These components are normally bundled together in the same download. Please check the path and try again.",
"LabelTagline": "Tagline:",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Jellyfin Server dashboard.",
"RefreshMetadata": "Refresh metadata",
"RefreshQueued": "Refresh queued.",
"ReleaseDate": "Release date",
"ReleaseGroup": "Release Group",
"RememberMe": "Remember Me",
"RemoveFromCollection": "Remove from collection",
"RemoveFromPlaylist": "Remove from playlist",
"Repeat": "Repeat",
"RepeatAll": "Repeat all",
"RepeatEpisodes": "Repeat episodes",
"RepeatMode": "Repeat Mode",
"RepeatOne": "Repeat one",
"GuideProviderSelectListings": "Select Listings",
"H264CrfHelp": "The Constant Rate Factor (CRF) is the default quality setting for the x264 encoder. You can set the values between 0 and 51, where lower values would result in better quality (at the expense of higher file sizes). Sane values are between 18 and 28. The default for x264 is 23, so you can use this as a starting point.",
"HardwareAccelerationWarning": "Enabling hardware acceleration may cause instability in some environments. Ensure that your operating system and video drivers are fully up to date. If you have difficulty playing video after enabling this, you'll need to change the setting back to None.",
"HeaderAddToCollection": "Add to Collection",
"HeaderAddToPlaylist": "Add to Playlist",
"HeaderAddUpdateImage": "Add/Update Image",
"HeaderAdditionalParts": "Additional Parts",
"HeaderAdmin": "Admin",
"HeaderAlbums": "Albums",
"HeaderAlert": "Alert",
"HeaderAllowMediaDeletionFrom": "Allow Media Deletion From",
"HeaderApiKey": "API Key",
"HeaderApiKeys": "API Keys",
"HeaderApiKeysHelp": "External applications are required to have an API key in order to communicate with Jellyfin Server. Keys are issued by logging in with a Jellyfin account, or by manually granting the application a key.",
"ApiKeysCaption": "List of the currently enabled API keys",
"HeaderApp": "App",
"LabelFont": "Font:",
"LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
"LabelFormat": "Format:",
"LabelFriendlyName": "Friendly name:",
"LabelServerNameHelp": "This name will be used to identify the server and will default to the server's computer name.",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
"LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
"LabelH264Crf": "H264 encoding CRF:",
"LabelEncoderPreset": "H264 and H265 encoding preset:",
"LabelHardwareAccelerationType": "Hardware acceleration:",
"LabelHomeScreenSectionValue": "Home screen section {0}:",
"LabelHttpsPortHelp": "The TCP port number that Jellyfin's HTTPS server should bind to.",
"LabelIconMaxHeightHelp": "Maximum resolution of icons exposed via upnp:icon.",
"LabelIconMaxWidthHelp": "Maximum resolution of icons exposed via upnp:icon.",
"LabelIdentificationFieldHelp": "A case-insensitive substring or regex expression.",
"LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.",
"LabelInNetworkSignInWithEasyPassword": "Enable in-network sign in with my easy pin code",
"Off": "Off",
"OneChannel": "One channel",
"OnlyForcedSubtitles": "Only Forced",
"OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.",
"OnlyImageFormats": "Only Image Formats (VOBSUB, PGS, SUB)",
"Option3D": "3D",
"OptionAdminUsers": "Administrators",
"OptionAlbum": "Album",
"OptionAlbumArtist": "Album Artist",
"OptionAllUsers": "All users",
"OptionAllowAudioPlaybackTranscoding": "Allow audio playback that requires transcoding",
"OptionForceRemoteSourceTranscoding": "Force transcoding of remote media sources (like LiveTV)",
"OptionAllowBrowsingLiveTv": "Allow Live TV access",
"OptionAllowContentDownloading": "Allow media downloading and syncing",
"OptionAllowLinkSharing": "Allow social media sharing",
"OptionAllowLinkSharingHelp": "Only web pages containing media information are shared. Media files are never shared publicly. Shares are time-limited and will expire after {0} days.",
"OptionAllowManageLiveTv": "Allow Live TV recording management",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowMediaPlaybackTranscodingHelp": "Restricting access to transcoding may cause playback failures in Jellyfin apps due to unsupported media formats.",
"OptionAllowRemoteControlOthers": "Allow remote control of other users",
"OptionAllowRemoteSharedDevices": "Allow remote control of shared devices",
"OptionAllowRemoteSharedDevicesHelp": "DLNA devices are considered shared until a user begins controlling them.",
"OptionAllowSyncTranscoding": "Allow media downloading and syncing that requires transcoding",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
"OptionAllowVideoPlaybackRemuxing": "Allow video playback that requires conversion without re-encoding",
"OptionAllowVideoPlaybackTranscoding": "Allow video playback that requires transcoding",
"OptionArtist": "Artist",
"OptionAuto": "Auto",
"OptionAutomatic": "Auto",
"OptionAutomaticallyGroupSeries": "Automatically merge series that are spread across multiple folders",
"OptionAutomaticallyGroupSeriesHelp": "If enabled, series that are spread across multiple folders within this library will be automatically merged into a single series.",
"OptionBanner": "Banner",
"OptionBlockBooks": "Books",
"OptionBlockChannelContent": "Internet Channel Content",
"OptionBlockLiveTvChannels": "Live TV Channels",
"OptionBlockMovies": "Movies",
"OptionBlockMusic": "Music",
"OptionBlockTrailers": "Trailers",
"OptionBlockTvShows": "TV Shows",
"OptionBluray": "Blu-ray",
"OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)",
"OptionCommunityRating": "Community Rating",
"OptionContinuing": "Continuing",
"OptionCriticRating": "Critic Rating",
"OptionCustomUsers": "Custom",
"OptionDaily": "Daily",
"OptionDateAdded": "Date Added",
"OptionDateAddedFileTime": "Use file creation date",
"OptionDateAddedImportTime": "Use date scanned into the library",
"OptionDatePlayed": "Date Played",
"OptionDisableUser": "Disable this user",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
"OptionDisplayFolderView": "Display a folder view to show plain media folders",
"OptionDisplayFolderViewHelp": "Display folders alongside your other media libraries. This can be useful if you'd like to have a plain folder view.",
"OptionDownloadArtImage": "Art",
"OptionDownloadBackImage": "Back",
"OptionDownloadBannerImage": "Banner",
"OptionDownloadBoxImage": "Box",
"OptionDownloadDiscImage": "Disc",
"OptionDownloadImagesInAdvance": "Download images in advance",
"OptionDownloadImagesInAdvanceHelp": "By default, most images are only downloaded when requested by a Jellyfin app. Enable this option to download all images in advance, as new media is imported. This may cause significantly longer library scans.",
"OptionDownloadLogoImage": "Logo",
"OptionDownloadMenuImage": "Menu",
"OptionDownloadPrimaryImage": "Primary",
"OptionDownloadThumbImage": "Thumb",
"OptionDvd": "DVD",
"OptionEmbedSubtitles": "Embed within container",
"OptionEnableExternalContentInSuggestions": "Enable external content in suggestions",
"OptionEnableExternalContentInSuggestionsHelp": "Allow internet trailers and live TV programs to be included within suggested content.",
"OptionEnableForAllTuners": "Enable for all tuner devices",
"OptionEnableM2tsMode": "Enable M2ts mode",
"OptionEnableM2tsModeHelp": "Enable m2ts mode when encoding to mpegts.",
"OptionEnded": "Ended",
"OptionEquals": "Equals",
"OptionEstimateContentLength": "Estimate content length when transcoding",
"OptionEveryday": "Every day",
"OptionExternallyDownloaded": "External download",
"OptionExtractChapterImage": "Enable chapter image extraction",
"OptionFriday": "Friday",
"OptionHasSpecialFeatures": "Special Features",
"OptionHasSubtitles": "Subtitles",
"OptionHasThemeSong": "Theme Song",
"OptionHasThemeVideo": "Theme Video",
"OptionHasTrailer": "Trailer",
"OptionHideUser": "Hide this user from login screens",
"OptionHideUserFromLoginHelp": "Useful for private or hidden administrator accounts. The user will need to sign in manually by entering their username and password.",
"HeaderSendMessage": "Send Message",
"HeaderSeries": "Series",
"HeaderSeriesOptions": "Series Options",
"HeaderSeriesStatus": "Series Status",
"HeaderServerAddressSettings": "Server Address Settings",
"HeaderServerSettings": "Server Settings",
"HeaderSettings": "Settings",
"HeaderShutdown": "Shutdown",
"HeaderSortBy": "Sort By",
"HeaderSortOrder": "Sort Order",
"HeaderSpecialEpisodeInfo": "Special Episode Info",
"HeaderSpecialFeatures": "Special Features",
"HeaderStartNow": "Start Now",
"HeaderStatus": "Status",
"HeaderStopRecording": "Stop Recording",
"HeaderSubtitleAppearance": "Subtitle Appearance",
"HeaderSubtitleDownloads": "Subtitle Downloads",
"HeaderSubtitleProfile": "Subtitle Profile",
"HeaderSubtitleProfiles": "Subtitle Profiles",
"HeaderSubtitleProfilesHelp": "Subtitle profiles describe the subtitle formats supported by the device.",
"HeaderSyncPlaySelectGroup": "Join a group",
"HeaderSyncPlayEnabled": "SyncPlay enabled",
"HeaderTags": "Tags",
"HeaderThisUserIsCurrentlyDisabled": "This user is currently disabled",
"HeaderTracks": "Tracks",
"HeaderTranscodingProfile": "Transcoding Profile",
"HeaderTranscodingProfileHelp": "Add transcoding profiles to indicate which formats should be used when transcoding is required.",
"HeaderTunerDevices": "Tuner Devices",
"HeaderTuners": "Tuners",
"HeaderTypeText": "Enter Text",
"HeaderUpcomingOnTV": "Upcoming On TV",
"HeaderUploadImage": "Upload Image",
"HeaderUser": "User",
"HeaderVideoQuality": "Video Quality",
"HeaderVideoType": "Video Type",
"HeaderVideoTypes": "Video Types",
"HeaderVideos": "Videos",
"HeaderXmlDocumentAttribute": "Xml Document Attribute",
"HeaderXmlDocumentAttributes": "Xml Document Attributes",
"HeaderXmlSettings": "Xml Settings",
"HeaderYears": "Years",
"HeadersFolders": "Folders",
"Help": "Help",
"Hide": "Hide",
"HideWatchedContentFromLatestMedia": "Hide watched content from latest media",
"Home": "Home",
"Horizontal": "Horizontal",
"HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Let's Encrypt. Please either supply a certificate, or disable secure connections.",
"Identify": "Identify",
"Images": "Images",
"ImportFavoriteChannelsHelp": "If enabled, only channels that are marked as favorite on the tuner device will be imported.",
"ImportMissingEpisodesHelp": "If enabled, information about missing episodes will be imported into your Jellyfin database and displayed within seasons and series. This may cause significantly longer library scans.",
"InstallingPackage": "Installing {0} (version {1})",
"InstantMix": "Instant mix",
"ItemCount": "{0} items",
"Items": "Items",
"Kids": "Kids",
"Label3DFormat": "3D format:",
"LabelAbortedByServerShutdown": "(Aborted by server shutdown)",
"LabelAccessDay": "Day of week:",
"LabelAccessEnd": "End time:",
"LabelAccessStart": "Start time:",
"LabelAirDays": "Air days:",
"LabelAirTime": "Air time:",
"LabelAirsAfterSeason": "Airs after season:",
"LabelAirsBeforeEpisode": "Airs before episode:",
"LabelAirsBeforeSeason": "Airs before season:",
"LabelAlbum": "Album:",
"LabelAlbumArtHelp": "PN used for album art, within the dlna:profileID attribute on upnp:albumArtURI. Some devices require a specific value, regardless of the size of the image.",
"LabelAlbumArtMaxHeight": "Album art max height:",
"LabelAlbumArtMaxHeightHelp": "Max resolution of album art exposed via upnp:albumArtURI.",
"LabelAlbumArtMaxWidth": "Album art max width:",
"LabelAlbumArtMaxWidthHelp": "Max resolution of album art exposed via upnp:albumArtURI.",
"LabelAlbumArtPN": "Album art PN:",
"LabelAlbumArtists": "Album artists:",
"LabelAll": "All",
"LabelAllowHWTranscoding": "Allow hardware transcoding",
"LabelAllowServerAutoRestart": "Allow the server to restart automatically to apply updates",
"LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods when no users are active.",
"LabelAllowedRemoteAddresses": "Remote IP address filter:",
"LabelAllowedRemoteAddressesMode": "Remote IP address filter mode:",
"LabelAppName": "App name",
"LabelAppNameExample": "Example: Sickbeard, Sonarr",
"LabelArtists": "Artists:",
"OptionHlsSegmentedSubtitles": "HLS segmented subtitles",
"OptionHomeVideos": "Photos",
"OptionIgnoreTranscodeByteRangeRequests": "Ignore transcode byte range requests",
"OptionIgnoreTranscodeByteRangeRequestsHelp": "If enabled, these requests will be honored but will ignore the byte range header.",
"OptionImdbRating": "IMDb Rating",
"OptionIsHD": "HD",
"OptionIsSD": "SD",
"OptionList": "List",
"OptionLoginAttemptsBeforeLockout": "Determines how many incorrect login attempts can be made before lockout occurs.",
"OptionLoginAttemptsBeforeLockoutHelp": "A value of zero means inheriting the default of three attempts for normal users and five for administrators. Setting this to -1 will disable the feature.",
"OptionMax": "Max",
"OptionMissingEpisode": "Missing Episodes",
"OptionMonday": "Monday",
"OptionNameSort": "Name",
"OptionNew": "New…",
"OptionNone": "None",
"OptionOnAppStartup": "On application startup",
"LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time.",
"LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item:",
"LabelMaxStreamingBitrate": "Maximum streaming quality:",
"LabelMaxStreamingBitrateHelp": "Specify a maximum bitrate when streaming.",
"LabelMessageText": "Message text:",
"LabelMessageTitle": "Message title:",
"LabelMetadata": "Metadata:",
"LabelMetadataDownloadLanguage": "Preferred download language:",
"LabelMetadataDownloadersHelp": "Enable and rank your preferred metadata downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.",
"LabelMetadataPath": "Metadata path:",
"LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata.",
"LabelMetadataReaders": "Metadata readers:",
"LabelMetadataReadersHelp": "Rank your preferred local metadata sources in order of priority. The first file found will be read.",
"LabelMetadataSavers": "Metadata savers:",
"LabelMetadataSaversHelp": "Choose the file formats to save your metadata to.",
"LabelMethod": "Method:",
"LabelMinBackdropDownloadWidth": "Minimum backdrop download width:",
"LabelMinResumeDuration": "Minimum resume duration:",
"LabelMinResumeDurationHelp": "The shortest video length in seconds that will save playback location and let you resume.",
"LabelMinResumePercentage": "Minimum resume percentage:",
"LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time.",
"LabelMinScreenshotDownloadWidth": "Minimum screenshot download width:",
"LabelModelDescription": "Model description",
"LabelModelName": "Model name",
"LabelModelNumber": "Model number",
"LabelModelUrl": "Model URL",
"LabelMonitorUsers": "Monitor activity from:",
"LabelMovieCategories": "Movie categories:",
"LabelMoviePrefix": "Movie prefix:",
"LabelMoviePrefixHelp": "If a prefix is applied to movie titles, enter it here so the server can handle it properly.",
"LabelMovieRecordingPath": "Movie recording path (optional):",
"LabelMusicStreamingTranscodingBitrate": "Music transcoding bitrate:",
"LabelMusicStreamingTranscodingBitrateHelp": "Specify a max bitrate when streaming music.",
"LabelName": "Name:",
"LabelChromecastVersion": "Chromecast Version",
"LabelStable": "Stable",
"LabelNightly": "Nightly",
"LabelNewName": "New name:",
"LabelNewsCategories": "News categories:",
"LabelNotificationEnabled": "Enable this notification",
"LabelNumber": "Number:",
"LabelNumberOfGuideDays": "Number of days of guide data to download:",
"LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels.",
"LabelOptionalNetworkPath": "(Optional) Shared network folder:",
"LabelOptionalNetworkPathHelp": "If this folder is shared on your network, supplying the network share path can allow Jellyfin apps on other devices to access media files directly. For example, {0} or {1}.",
"LabelOriginalAspectRatio": "Original aspect ratio:",
"LabelOriginalTitle": "Original title:",
"LabelOverview": "Overview:",
"LabelParentNumber": "Parent number:",
"LabelParentalRating": "Parental rating:",
"LabelPassword": "Password:",
"LabelPasswordConfirm": "Password (confirm):",
"LabelPasswordResetProvider": "Password Reset Provider:",
"LabelPasswordRecoveryPinCode": "Pin code:",
"LabelPath": "Path:",
"LabelPersonRole": "Role:",
"LabelPersonRoleHelp": "Example: Ice cream truck driver",
"LabelPlaceOfBirth": "Place of birth:",
"LabelPlayDefaultAudioTrack": "Play default audio track regardless of language",
"LabelPlayer": "Player:",
"LabelPlayerDimensions": "Player dimensions:",
"LabelPlaylist": "Playlist:",
"LabelPlayMethod": "Play method:",
"LabelPleaseRestart": "Changes will take effect after manually reloading the web client.",
"LabelPostProcessor": "Post-processing application:",
"LabelPostProcessorArguments": "Post-processor command line arguments:",
"LabelPostProcessorArgumentsHelp": "Use {path} as the path to the recording file.",
"LabelPreferredDisplayLanguage": "Preferred display language:",
"LabelPreferredDisplayLanguageHelp": "Translating Jellyfin is an ongoing project.",
"LabelPreferredSubtitleLanguage": "Preferred subtitle language:",
"LabelProfileAudioCodecs": "Audio codecs:",
"LabelProfileCodecs": "Codecs:",
"LabelProfileContainer": "Container:",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"LabelProfileVideoCodecs": "Video codecs:",
"LabelProtocol": "Protocol:",
"LabelProtocolInfo": "Protocol info:",
"LabelProtocolInfoHelp": "The value that will be used when responding to GetProtocolInfo requests from the device.",
"LabelPublicHttpPort": "Public HTTP port number:",
"LabelPublicHttpPortHelp": "The public port number that should be mapped to the local HTTP port.",
"LabelPublicHttpsPort": "Public HTTPS port number:",
"LabelPublicHttpsPortHelp": "The public port number that should be mapped to the local HTTPS port.",
"LabelReadHowYouCanContribute": "Learn how you can contribute.",
"LabelReasonForTranscoding": "Reason for transcoding:",
"LabelRecord": "Record:",
"LabelRecordingPath": "Default recording path:",
"LabelRecordingPathHelp": "Specify the default location to save recordings. If left empty, the server's program data folder will be used.",
"LabelRefreshMode": "Refresh mode:",
"LabelReleaseDate": "Release date:",
"LabelRemoteClientBitrateLimit": "Internet streaming bitrate limit (Mbps):",
"LabelRemoteClientBitrateLimitHelp": "An optional per-stream bitrate limit for all out of network devices. This is useful to prevent devices from requesting a higher bitrate than your internet connection can handle. This may result in increased CPU load on your server in order to transcode videos on the fly to a lower bitrate.",
"LabelRequireHttps": "Require HTTPS",
"LabelRequireHttpsHelp": "If checked, the server will automatically redirect all requests over HTTP to HTTPS. This has no effect if the server is not listening on HTTPS.",
"LabelRuntimeMinutes": "Run time (minutes):",
"LabelScheduledTaskLastRan": "Last ran {0}, taking {1}.",
"LabelScreensaver": "Screensaver:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery and decrease the likelihood of video transcoding.",
"LabelSonyAggregationFlagsHelp": "Determines the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace.",
"LabelSyncPlayPlaybackDiff": "Playback time difference:",
"LabelSyncPlaySyncMethod": "Sync method:",
"LabelSyncPlayNewGroup": "New group",
"LabelSyncPlayNewGroupDescription": "Create a new group",
"LabelSyncPlayLeaveGroup": "Leave group",
"HeaderAppearsOn": "Appears On",
"HeaderAudioBooks": "Audio Books",
"HeaderAudioSettings": "Audio Settings",
"HeaderAutomaticUpdates": "Automatic Updates",
"HeaderBranding": "Branding",
"HeaderConfigureRemoteAccess": "Configure Remote Access",
"HeaderConfirmPluginInstallation": "Confirm Plugin Installation",
"HeaderConfirmProfileDeletion": "Confirm Profile Deletion",
"HeaderConfirmRevokeApiKey": "Revoke API Key",
"HeaderConnectToServer": "Connect to Server",
"HeaderConnectionFailure": "Connection Failure",
"HeaderContainerProfile": "Container Profile",
"HeaderContainerProfileHelp": "Container profiles indicate the limitations of a device when playing specific formats. If a limitation applies then the media will be transcoded, even if the format is configured for direct play.",
"HeaderContinueListening": "Continue Listening",
"HeaderDVR": "DVR",
"HeaderFavoritePlaylists": "Favorite Playlists",
"HeaderHttpsSettings": "HTTPS Settings",
"HeaderNavigation": "Navigation",
"HeaderProfileServerSettingsHelp": "These values control how Jellyfin Server will present itself to the device.",
"HeaderRemoteAccessSettings": "Remote Access Settings",
"HeaderRemoteControl": "Remote Control",
"HeaderRemoveMediaFolder": "Remove Media Folder",
"HeaderRemoveMediaLocation": "Remove Media Location",
"HeaderResponseProfile": "Response Profile",
"HeaderResponseProfileHelp": "Response profiles provide a way to customize information sent to the device when playing certain kinds of media.",
"HeaderRestart": "Restart",
"HeaderRestartingServer": "Restarting Server",
"HeaderRevisionHistory": "Revision History",
"HeaderRunningTasks": "Running Tasks",
"HeaderScenes": "Scenes",
"HeaderSchedule": "Schedule",
"HeaderSeasons": "Seasons",
"HeaderSecondsValue": "{0} Seconds",
"HeaderSelectCertificatePath": "Select Certificate Path",
"HeaderSelectMetadataPath": "Select Metadata Path",
"HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.",
"HeaderSelectPath": "Select Path",
"HeaderSelectServer": "Select Server",
"LabelFolder": "Folder:",
"LabelSyncPlayLeaveGroupDescription": "Disable SyncPlay",
"LabelSyncPlayAccessCreateAndJoinGroups": "Allow user to create and join groups",
"LabelSyncPlayAccessJoinGroups": "Allow user to join groups",
"LabelSyncPlayAccessNone": "Disabled for this user",
"LabelSyncPlayAccess": "SyncPlay access",
"LabelTVHomeScreen": "TV mode home screen:",
"LabelTag": "Tag:",
"LabelTextBackgroundColor": "Text background color:",
"LabelTextColor": "Text color:",
"LabelTextSize": "Text size:",
"LabelTheme": "Theme:",
"LabelTime": "Time:",
"LabelTitle": "Title:",
"LabelTrackNumber": "Track number:",
"LabelTranscodingAudioCodec": "Audio codec:",
"LabelTranscodingContainer": "Container:",
"LabelTranscodePath": "Transcode path:",
"LabelTranscodingTempPathHelp": "Specify a custom path for the transcode files served to clients. Leave blank to use the server default.",
"LabelTranscodes": "Transcodes:",
"LabelTranscodingFramerate": "Transcoding framerate:",
"LabelTranscodingProgress": "Transcoding progress:",
"LabelTranscodingThreadCount": "Transcoding thread count:",
"LabelTranscodingThreadCountHelp": "Select the maximum number of threads to use when transcoding. Reducing the thread count will lower CPU usage but may not convert fast enough for a smooth playback experience.",
"LabelTranscodingVideoCodec": "Video codec:",
"LabelTriggerType": "Trigger Type:",
"LabelTunerIpAddress": "Tuner IP Address:",
"LabelTunerType": "Tuner type:",
"LabelUserLibraryHelp": "Select which user library to display to the device. Leave empty to inherit the default setting.",
"LabelUserLoginAttemptsBeforeLockout": "Failed login attempts before user is locked out:",
"LabelUserRemoteClientBitrateLimitHelp": "Override the default global value set in server playback settings.",
"LabelVaapiDeviceHelp": "This is the render node that is used for hardware acceleration.",
"LabelVideoBitrate": "Video bitrate:",
"LabelVideoCodec": "Video codec:",
"LabelXDlnaCap": "X-DLNA cap:",
"LabelXDlnaCapHelp": "Determines the content of the X_DLNACAP element in the urn:schemas-dlna-org:device-1-0 namespace.",
"LabelXDlnaDoc": "X-DLNA doc:",
"LabelXDlnaDocHelp": "Determines the content of the X_DLNADOC element in the urn:schemas-dlna-org:device-1-0 namespace.",
"LabelffmpegPathHelp": "The path to the ffmpeg application file, or folder containing ffmpeg.",
"LanNetworksHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be considered on local network when enforcing bandwidth restrictions. If set, all other IP addresses will be considered to be on the external network and will be subject to the external bandwidth restrictions. If left blank, only the server's subnet is considered to be on the local network.",
"LaunchWebAppOnStartupHelp": "Open the web client in your default web browser when the server initially starts. This will not occur when using the restart server function.",
"LearnHowYouCanContribute": "Learn how you can contribute.",
"LeaveBlankToNotSetAPassword": "You can leave this field blank to set no password.",
"Like": "Like",
"LinksValue": "Links: {0}",
"List": "List",
"Live": "Live",
"LiveBroadcasts": "Live broadcasts",
"LiveTV": "Live TV",
"Logo": "Logo",
"ManageRecording": "Manage recording",
"MapChannels": "Map Channels",
"MarkPlayed": "Mark played",
"MarkUnplayed": "Mark unplayed",
"MediaInfoAnamorphic": "Anamorphic",
"MediaInfoAspectRatio": "Aspect ratio",
"MediaInfoBitDepth": "Bit depth",
"MediaInfoBitrate": "Bitrate",
"MediaInfoChannels": "Channels",
"MediaInfoCodec": "Codec",
"MediaInfoCodecTag": "Codec tag",
"MediaInfoContainer": "Container",
"MediaInfoDefault": "Default",
"MediaInfoExternal": "External",
"MediaInfoForced": "Forced",
"MediaInfoFramerate": "Framerate",
"MediaInfoInterlaced": "Interlaced",
"MediaInfoLanguage": "Language",
"MediaInfoLayout": "Layout",
"MediaInfoLevel": "Level",
"MediaInfoPath": "Path",
"MediaInfoPixelFormat": "Pixel format",
"MediaInfoProfile": "Profile",
"MediaInfoRefFrames": "Ref frames",
"MediaInfoResolution": "Resolution",
"MediaInfoSampleRate": "Sample rate",
"MediaInfoSize": "Size",
"MediaInfoTimestamp": "Timestamp",
"MediaInfoSoftware": "Software",
"MediaInfoStreamTypeAudio": "Audio",
"MediaInfoStreamTypeData": "Data",
"MediaInfoStreamTypeEmbeddedImage": "Embedded Image",
"MediaInfoStreamTypeSubtitle": "Subtitle",
"MediaInfoStreamTypeVideo": "Video",
"MediaIsBeingConverted": "The media is being converted into a format that is compatible with the device that is playing the media.",
"Menu": "Menu",
"MessageAlreadyInstalled": "This version is already installed.",
"MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
"MessageAreYouSureYouWishToRemoveMediaFolder": "Are you sure you wish to remove this media folder?",
"MessageConfirmAppExit": "Do you want to exit?",
"MessageConfirmDeleteGuideProvider": "Are you sure you wish to delete this guide provider?",
"MessageConfirmDeleteTunerDevice": "Are you sure you wish to delete this device?",
"MessageConfirmProfileDeletion": "Are you sure you wish to delete this profile?",
"MessageConfirmRecordingCancellation": "Cancel recording?",
"MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?",
"MessageConfirmRestart": "Are you sure you wish to restart Jellyfin Server?",
"MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Jellyfin Server will be abruptly terminated.",
"MessageConfirmShutdown": "Are you sure you wish to shutdown the server?",
"MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
"MessageCreateAccountAt": "Create an account at {0}",
"MessageDeleteTaskTrigger": "Are you sure you wish to delete this task trigger?",
"MessageDirectoryPickerBSDInstruction": "For BSD, you may need to configure storage within your FreeNAS Jail in order to allow Jellyfin to access it.",
"MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, openSUSE, or Ubuntu, you must grant the service user at least read access to your storage locations.",
"MessageDownloadQueued": "Download queued.",
"MessageEnablingOptionLongerScans": "Enabling this option may result in significantly longer library scans.",
"MessageFileReadError": "There was an error reading the file. Please try again.",
"MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
"MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
"MessageImageFileTypeAllowed": "Only JPEG and PNG files are supported.",
"MessageImageTypeNotSelected": "Please select an image type from the drop-down menu.",
"MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item or the global default value.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, and Albums. Click the + button to start creating collections.",
"MessageNoTrailersFound": "No trailers found. Install the Trailer channel to enhance your movie experience by adding a library of internet trailers.",
"MessagePasswordResetForUsers": "The following users have had their passwords reset. They can now sign in with the pin codes that were used to perform the reset.",
"MessagePlayAccessRestricted": "Playback of this content is currently restricted. Please contact your server administrator for more information.",
"MessagePluginInstallDisclaimer": "Plugins built by Jellyfin community members are a great way to enhance your Jellyfin experience with additional features and benefits. Before installing, please be aware of the effects they may have on your Jellyfin Server, such as longer library scans, additional background processing, and decreased system stability.",
"MessageReenableUser": "See below to reenable",
"MessageSettingsSaved": "Settings saved.",
"MessageTheFollowingLocationWillBeRemovedFromLibrary": "The following media locations will be removed from your library:",
"MessageUnableToConnectToServer": "We're unable to connect to the selected server right now. Please ensure it is running and try again.",
"MessageUnsetContentHelp": "Content will be displayed as plain folders. For best results use the metadata manager to set the content types of sub-folders.",
"OptionPlainStorageFoldersHelp": "If enabled, all folders are represented in DIDL as \"object.container.storageFolder\" instead of a more specific type, such as \"object.container.person.musicArtist\".",
"OptionPlainVideoItemsHelp": "If enabled, all videos are represented in DIDL as \"object.item.videoItem\" instead of a more specific type, such as \"object.item.videoItem.movie\".",
"OptionReportByteRangeSeekingWhenTranscoding": "Report that the server supports byte seeking when transcoding",
"OptionReportByteRangeSeekingWhenTranscodingHelp": "This is required for some devices that don't time seek very well.",
"OptionRequirePerfectSubtitleMatch": "Only download subtitles that are a perfect match for my video files",
"OptionSaveMetadataAsHiddenHelp": "Changing this will apply to new metadata saved going forward. Existing metadata files will be updated the next time they are saved by Jellyfin Server.",
"ParentalRating": "Parental rating",
"PasswordResetProviderHelp": "Choose a Password Reset Provider to be used when this user requests a password reset",
"PasswordSaved": "Password saved.",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"PlayCount": "Play count",
"ReplaceAllMetadata": "Replace all metadata",
"ReplaceExistingImages": "Replace existing images",
"RestartPleaseWaitMessage": "Please wait while Jellyfin Server shuts down and restarts. This may take a minute or two.",
"ResumeAt": "Resume from {0}",
"Rewind": "Rewind",
"RunAtStartup": "Run at startup",
"Runtime": "Runtime",
"Saturday": "Saturday",
"Save": "Save",
"SaveChanges": "Save changes",
"SaveSubtitlesIntoMediaFolders": "Save subtitles into media folders",
"SaveSubtitlesIntoMediaFoldersHelp": "Storing subtitles next to video files will allow them to be more easily managed.",
"SendMessage": "Send message",
"LabelInNetworkSignInWithEasyPasswordHelp": "Use the easy pin code to sign in to clients within your local network. Your regular password will only be needed away from home. If the pin code is left blank, you won't need a password within your home network.",
"LabelInternetQuality": "Internet quality:",
"LabelKeepUpTo": "Keep up to:",
"LabelKodiMetadataEnableExtraThumbs": "Copy extrafanart to extrathumbs field",
"LabelKodiMetadataEnableExtraThumbsHelp": "When downloading images they can be saved into both extrafanart and extrathumbs for maximum Kodi skin compatibility.",
"LabelKodiMetadataEnablePathSubstitutionHelp": "Enables path substitution of image paths using the server's path substitution settings.",
"LabelKodiMetadataSaveImagePaths": "Save image paths within nfo files",
"LabelKodiMetadataSaveImagePathsHelp": "This is recommended if you have image file names that don't conform to Kodi guidelines.",
"LabelKodiMetadataUser": "Save user watch data to NFO files for:",
"LabelKodiMetadataUserHelp": "Save watch data to NFO files for other applications to utilize.",
"LabelLanNetworks": "LAN networks:",
"LabelLibraryPageSize": "Library page size:",
"LabelLibraryPageSizeHelp": "Sets the amount of items to show on a library page. Set to 0 in order to disable paging.",
"LabelLineup": "Lineup:",
"LabelLocalHttpServerPortNumber": "Local HTTP port number:",
"LabelLocalHttpServerPortNumberHelp": "The TCP port number that Jellyfin's HTTP server should bind to.",
"LabelLockItemToPreventChanges": "Lock this item to prevent future changes",
"LabelLoginDisclaimer": "Login disclaimer:",
"LabelLoginDisclaimerHelp": "A message that will be displayed at the bottom of the login page.",
"LabelLogs": "Logs:",
"LabelManufacturer": "Manufacturer:",
"LabelManufacturerUrl": "Manufacturer URL",
"LabelMatchType": "Match type:",
"LabelMaxBackdropsPerItem": "Maximum number of backdrops per item:",
"LabelMaxChromecastBitrate": "Chromecast streaming quality:",
"LabelMaxResumePercentage": "Maximum resume percentage:",
"MessageYouHaveVersionInstalled": "You currently have version {0} installed.",
"MessageSyncPlayEnabled": "SyncPlay enabled.",
"MessageSyncPlayDisabled": "SyncPlay disabled.",
"MessageSyncPlayUserJoined": "<b>{0}</b> has joined the group.",
"MessageSyncPlayUserLeft": "<b>{0}</b> has left the group.",
"MessageSyncPlayGroupWait": "<b>{0}</b> is buffering...",
"MessageSyncPlayNoGroupsAvailable": "No groups available. Start playing something first.",
"MessageSyncPlayPlaybackPermissionRequired": "Playback permission required.",
"MessageSyncPlayGroupDoesNotExist": "Failed to join group because it does not exist.",
"MessageSyncPlayCreateGroupDenied": "Permission required to create a group.",
"MessageSyncPlayJoinGroupDenied": "Permission required to use SyncPlay.",
"MessageSyncPlayLibraryAccessDenied": "Access to this content is restricted.",
"MessageSyncPlayErrorAccessingGroups": "An error occurred while accessing groups list.",
"MessageSyncPlayErrorNoActivePlayer": "No active player found. SyncPlay has been disabled.",
"MessageSyncPlayErrorMissingSession": "Failed to enable SyncPlay! Missing session.",
"MessageSyncPlayErrorMedia": "Failed to enable SyncPlay! Media error.",
"Metadata": "Metadata",
"MetadataManager": "Metadata Manager",
"MetadataSettingChangeHelp": "Changing metadata settings will affect new content that is added going forward. To refresh existing content, open the detail screen and click the refresh button, or perform bulk refreshes using the metadata manager.",
"MinutesAfter": "minutes after",
"MinutesBefore": "minutes before",
"Mobile": "Mobile",
"Monday": "Monday",
"MoreFromValue": "More from {0}",
"MoreMediaInfo": "Media Info",
"MoveLeft": "Move left",
"MoveRight": "Move right",
"MovieLibraryHelp": "Review the {0}movie naming guide{1}.",
"MusicLibraryHelp": "Review the {0}music naming guide{1}.",
"NewCollectionHelp": "Collections allow you to create personalized groupings of movies and other library content.",
"NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}",
"NoNewDevicesFound": "No new devices found. To add a new tuner, close this dialog and enter the device information manually.",
"NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.",
"None": "None",
"Normal": "Normal",
"NumLocationsValue": "{0} folders",
"ServerRestartNeededAfterPluginInstall": "Jellyfin Server will need to be restarted after installing a plugin.",
"ServerUpdateNeeded": "This Jellyfin Server needs to be updated. To download the latest version, please visit {0}",
"Settings": "Settings",
"SettingsSaved": "Settings saved.",
"SettingsWarning": "Changing these values may cause instability or connectivity failures. If you experience any problems, we recommend changing them back to default.",
"Share": "Share",
"ShowIndicatorsFor": "Show indicators for:",
"XmlDocumentAttributeListHelp": "These attributes are applied to the root element of every XML response.",
"XmlTvKidsCategoriesHelp": "Programs with these categories will be displayed as programs for children. Separate multiple with '|'.",
"XmlTvMovieCategoriesHelp": "Programs with these categories will be displayed as movies. Separate multiple with '|'.",
"XmlTvNewsCategoriesHelp": "Programs with these categories will be displayed as news programs. Separate multiple with '|'.",
"XmlTvPathHelp": "A path to a XMLTV file. Jellyfin will read this file and periodically check it for updates. You are responsible for creating and updating the file.",
"XmlTvSportsCategoriesHelp": "Programs with these categories will be displayed as sports programs. Separate multiple with '|'.",
"PathNotFound": "The path could not be found. Please ensure the path is valid and try again.",
"WriteAccessRequired": "Jellyfin Server requires write access to this folder. Please ensure write access and try again.",
"UnsupportedPlayback": "Jellyfin cannot decrypt content protected by DRM but all content will be attempted regardless, including protected titles. Some files may appear completely black due to encryption or other unsupported features, such as interactive titles.",
"ShowLess": "Show less",
"ShowMore": "Show more",
"Shuffle": "Shuffle",
"New": "New",
"Filter": "Filter",
"SkipEpisodesAlreadyInMyLibraryHelp": "Episodes will be compared using season and episode numbers, when available.",
"SmallCaps": "Small Caps",
"SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc) or ASS/SSA subtitles that embed their own styles.",
"SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority.",
"SubtitleOffset": "Subtitle Offset",
"SyncPlayAccessHelp": "Select the level of access this user has to the SyncPlay feature. SyncPlay enables to sync playback with other devices.",
"SystemDlnaProfilesHelp": "System profiles are read-only. Changes to a system profile will be saved to a new custom profile.",
"TabContainers": "Containers",
"TabDVR": "DVR",
"TvLibraryHelp": "Review the {0}TV naming guide{1}.",
"UserAgentHelp": "Supply a custom user-agent HTTP header.",
"ValueContainer": "Container: {0}",
"EnableFastImageFadeIn": "Faster animations",
"EnableFastImageFadeInHelp": "Use faster animations and transitions",
"EnableBlurhash": "Enable blurred placeholders for images",
"EnableBlurhashHelp": "Images that are still being loaded will be displayed with a blurred placeholder"
} }

View file

@ -776,7 +776,6 @@
"SaveSubtitlesIntoMediaFolders": "Tallenna tekstitykset mediakansioihin", "SaveSubtitlesIntoMediaFolders": "Tallenna tekstitykset mediakansioihin",
"Saturday": "Lauantai", "Saturday": "Lauantai",
"ResumeAt": "Jatka kohdasta {0}", "ResumeAt": "Jatka kohdasta {0}",
"RestartPleaseWaitMessage": "Odota kunnes Jellyfin palvelin sammuu ja käynnistyy uudelleen. Tämä voi kestää hetken aikaa.",
"RequiredForAllRemoteConnections": "Vaadittu kaikille etäyhteyksille", "RequiredForAllRemoteConnections": "Vaadittu kaikille etäyhteyksille",
"ReplaceExistingImages": "Korvaa olemassaolevat kuvat", "ReplaceExistingImages": "Korvaa olemassaolevat kuvat",
"ReplaceAllMetadata": "Korvaa kaikki metadata", "ReplaceAllMetadata": "Korvaa kaikki metadata",
@ -902,7 +901,6 @@
"HeaderSecondsValue": "{0} Sekuntia", "HeaderSecondsValue": "{0} Sekuntia",
"HeaderRunningTasks": "Käynnissä olevat tehtävät", "HeaderRunningTasks": "Käynnissä olevat tehtävät",
"HeaderRevisionHistory": "Versiohistoria", "HeaderRevisionHistory": "Versiohistoria",
"HeaderRestartingServer": "Uudelleenkäynnistetään palvelinta",
"HeaderRemoveMediaFolder": "Poista mediakansio", "HeaderRemoveMediaFolder": "Poista mediakansio",
"HeaderRemoteControl": "Etäohjaus", "HeaderRemoteControl": "Etäohjaus",
"HeaderPleaseSignIn": "Ole hyvä ja kirjaudu sisään", "HeaderPleaseSignIn": "Ole hyvä ja kirjaudu sisään",
@ -1245,5 +1243,8 @@
"FetchingData": "Noudetaan lisätietoja", "FetchingData": "Noudetaan lisätietoja",
"Features": "Ominaisuudet", "Features": "Ominaisuudet",
"ErrorMessageStartHourGreaterThanEnd": "Loppumisajan on oltava myöhemmin kuin aloitusaika.", "ErrorMessageStartHourGreaterThanEnd": "Loppumisajan on oltava myöhemmin kuin aloitusaika.",
"MediaInfoAnamorphic": "Anamorfinen" "MediaInfoAnamorphic": "Anamorfinen",
"ErrorGettingTvLineups": "TV esiintyjälistan lataamisessa tapahtui virhe. Varmista, että tiedot on oikein ja yritä uudelleen.",
"EnableDetailsBannerHelp": "Näyttää julistekuvan yksityiskohdat -sivun ylälaidassa.",
"EnableDetailsBanner": "Yksityiskohtien banneri"
} }

View file

@ -90,7 +90,7 @@
"Alerts": "Alertes", "Alerts": "Alertes",
"All": "Tout", "All": "Tout",
"AllChannels": "Toutes les chaînes", "AllChannels": "Toutes les chaînes",
"AllComplexFormats": "Tous les formats complexes (ASS, SSA, VOBSUB, PGS, SUB/IDX etc)", "AllComplexFormats": "Tous les formats complexes (ASS, SSA, VOBSUB, PGS, SUB/IDX, ...)",
"AllEpisodes": "Tous les épisodes", "AllEpisodes": "Tous les épisodes",
"AllLanguages": "Toutes les langues", "AllLanguages": "Toutes les langues",
"AllLibraries": "Toutes les médiathèques", "AllLibraries": "Toutes les médiathèques",

View file

@ -3,14 +3,14 @@
"AccessRestrictedTryAgainLater": "L'accès est actuellement restreint. Veuillez réessayer plus tard.", "AccessRestrictedTryAgainLater": "L'accès est actuellement restreint. Veuillez réessayer plus tard.",
"Actor": "Acteur(trice)", "Actor": "Acteur(trice)",
"Add": "Ajouter", "Add": "Ajouter",
"AddItemToCollectionHelp": "Ajoutez des éléments à des collections en les recherchant et en utilisant leurs menus contextuels (clic droit ou appui long).", "AddItemToCollectionHelp": "Ajoutez des éléments à des collections en les recherchant et en utilisant leurs menus contextuels (clic droit ou appui long) pour les ajouter à une collection.",
"AddToCollection": "Ajouter à la collection", "AddToCollection": "Ajouter à la collection",
"AddToPlayQueue": "Ajouter à la file d'attente", "AddToPlayQueue": "Ajouter à la file d'attente",
"AddToPlaylist": "Ajouter à la liste de lecture", "AddToPlaylist": "Ajouter à la liste de lecture",
"AddedOnValue": "Ajouté le {0}", "AddedOnValue": "Ajouté le {0}",
"AdditionalNotificationServices": "Visitez le catalogue d'extensions pour installer des services de notifications supplémentaires.", "AdditionalNotificationServices": "Visitez le catalogue d'extensions pour installer des services de notifications supplémentaires.",
"AirDate": "Date de diffusion", "AirDate": "Date de diffusion",
"Aired": "Diffusé", "Aired": "Diffusé sur",
"Alerts": "Alertes", "Alerts": "Alertes",
"All": "Tout", "All": "Tout",
"AllChannels": "Toutes les chaînes", "AllChannels": "Toutes les chaînes",
@ -896,7 +896,7 @@
"MessageNoAvailablePlugins": "Aucune extension disponible.", "MessageNoAvailablePlugins": "Aucune extension disponible.",
"MessageNoMovieSuggestionsAvailable": "Aucune suggestion de film n'est actuellement disponible. Commencez à regarder et à noter vos films pour avoir des suggestions.", "MessageNoMovieSuggestionsAvailable": "Aucune suggestion de film n'est actuellement disponible. Commencez à regarder et à noter vos films pour avoir des suggestions.",
"MessageNoPluginsInstalled": "Vous n'avez aucune extension installée.", "MessageNoPluginsInstalled": "Vous n'avez aucune extension installée.",
"MessageNoTrailersFound": "Aucune bande-annonce trouvée. Installez la chaîne Trailers pour améliorer votre expérience, par l'ajout d'une médiathèque de bandes-annonces disponibles sur Internet.", "MessageNoTrailersFound": "Installez la chaîne Trailers pour améliorer votre expérience cinéma, par l'ajout d'une médiathèque de bandes-annonces disponibles sur Internet.",
"MessageNothingHere": "Il n'y a rien ici.", "MessageNothingHere": "Il n'y a rien ici.",
"MessagePasswordResetForUsers": "Les mot de passes de ces utilisateurs ont été réinitialisés. Ils peuvent maintenant se connecter avec le code PIN utilisé pour la réinitialisation.", "MessagePasswordResetForUsers": "Les mot de passes de ces utilisateurs ont été réinitialisés. Ils peuvent maintenant se connecter avec le code PIN utilisé pour la réinitialisation.",
"MessagePlayAccessRestricted": "La lecture de ce contenu est actuellement restreinte. Contactez l'administrateur de votre serveur pour plus d'informations.", "MessagePlayAccessRestricted": "La lecture de ce contenu est actuellement restreinte. Contactez l'administrateur de votre serveur pour plus d'informations.",
@ -1120,7 +1120,7 @@
"Programs": "Programmes", "Programs": "Programmes",
"Quality": "Qualité", "Quality": "Qualité",
"QueueAllFromHere": "Tout mettre en file d'attente à partir d'ici", "QueueAllFromHere": "Tout mettre en file d'attente à partir d'ici",
"Raised": "Augmenter", "Raised": "Élevé",
"Rate": "Débit", "Rate": "Débit",
"RecentlyWatched": "Lu récemment", "RecentlyWatched": "Lu récemment",
"RecommendationBecauseYouLike": "Parce que vous aimez {0}", "RecommendationBecauseYouLike": "Parce que vous aimez {0}",
@ -1149,7 +1149,6 @@
"ReplaceAllMetadata": "Remplacer toutes les métadonnées", "ReplaceAllMetadata": "Remplacer toutes les métadonnées",
"ReplaceExistingImages": "Remplacer les images existantes", "ReplaceExistingImages": "Remplacer les images existantes",
"RequiredForAllRemoteConnections": "Obligatoire pour toutes les connexions externes", "RequiredForAllRemoteConnections": "Obligatoire pour toutes les connexions externes",
"RestartPleaseWaitMessage": "Veuillez patienter pendant que le serveur Jellyfin s'arrête et redémarre. Cela peut prendre une minute ou deux.",
"ResumeAt": "Reprendre à {0}", "ResumeAt": "Reprendre à {0}",
"Rewind": "Rembobiner", "Rewind": "Rembobiner",
"RunAtStartup": "Exécuter au démarrage", "RunAtStartup": "Exécuter au démarrage",
@ -1386,7 +1385,6 @@
"HeaderFavoriteArtists": "Artistes préférés", "HeaderFavoriteArtists": "Artistes préférés",
"HeaderFavoriteSongs": "Chansons préférées", "HeaderFavoriteSongs": "Chansons préférées",
"HeaderFavoriteVideos": "Vidéos préférées", "HeaderFavoriteVideos": "Vidéos préférées",
"HeaderRestartingServer": "Redémarrage du serveur",
"LabelServerName": "Nom du serveur :", "LabelServerName": "Nom du serveur :",
"DashboardVersionNumber": "Version : {0}", "DashboardVersionNumber": "Version : {0}",
"DashboardServerName": "Serveur : {0}", "DashboardServerName": "Serveur : {0}",
@ -1448,7 +1446,7 @@
"FetchingData": "Récuperer des données suplémentaires", "FetchingData": "Récuperer des données suplémentaires",
"CopyStreamURLSuccess": "URL copiée avec succès.", "CopyStreamURLSuccess": "URL copiée avec succès.",
"CopyStreamURL": "Copier l'URL du flux", "CopyStreamURL": "Copier l'URL du flux",
"LabelBaseUrlHelp": "Ajoute un sous-répertoire personnalisé à l'adresse URL du serveur. Par exemple: <code>http://example.com/<b>&lt;baseurl&gt;</b></code>", "LabelBaseUrlHelp": "Ajoute un sous-répertoire personnalisé à l'adresse URL du serveur. Par exemple : <code>http://exemple.com/<b>&lt;baseurl&gt;</b></code>",
"HeaderFavoritePeople": "Personnes préférées", "HeaderFavoritePeople": "Personnes préférées",
"OptionRandom": "Aléatoire", "OptionRandom": "Aléatoire",
"ButtonSplit": "Séparer", "ButtonSplit": "Séparer",
@ -1551,5 +1549,24 @@
"MessageSyncPlayErrorMedia": "Impossible d'activer SyncPlay ! Erreur média.", "MessageSyncPlayErrorMedia": "Impossible d'activer SyncPlay ! Erreur média.",
"MessageSyncPlayErrorMissingSession": "Impossible d'activer SyncPlay ! Session manquante.", "MessageSyncPlayErrorMissingSession": "Impossible d'activer SyncPlay ! Session manquante.",
"MessageSyncPlayErrorNoActivePlayer": "Aucun player actif trouvé. SyncPlay a été désactivé.", "MessageSyncPlayErrorNoActivePlayer": "Aucun player actif trouvé. SyncPlay a été désactivé.",
"MessageSyncPlayErrorAccessingGroups": "Une erreur s'est produite pendant l'accès à la liste de groupes." "MessageSyncPlayErrorAccessingGroups": "Une erreur s'est produite pendant l'accès à la liste de groupes.",
"ShowMore": "Voir plus",
"ShowLess": "Voir moins",
"EnableBlurhashHelp": "Les images qui sont encore en cours de chargement seront remplacées par une image générique floue",
"EnableBlurhash": "Utilise des images génériques floues à la place des images",
"ButtonCast": "Diffuser",
"ButtonSyncPlay": "Lecture synchronisée",
"TabRepositories": "Dépôts",
"MessageNoGenresAvailable": "Utiliser des fournisseurs de métadonnées pour récupérer les genres depuis internet.",
"MessageAddRepository": "Si vous souhaitez ajouter un dépôt, cliquez sur le bouton près de l'entête et renseignez les informations demandées.",
"LabelRepositoryNameHelp": "Un nom personnalisé pour distinguer ce dépôt des autres ajoutés sur votre serveur.",
"LabelRepositoryName": "Nom du dépôt",
"LabelRepositoryUrlHelp": "La localisation du manifeste du dépôt que vous voulez inclure.",
"LabelRepositoryUrl": "URL du dépôt",
"HeaderNewRepository": "Nouveau dépôt",
"MessageNoRepositories": "Pas de dépôts.",
"EnableFasterAnimationsHelp": "Utiliser des animations et des transitions plus rapides",
"EnableFasterAnimations": "Animations plus rapides",
"EnableDecodingColorDepth10Vp9": "Activer le décodage hardware 10-Bit pour VP9",
"EnableDecodingColorDepth10Hevc": "Activer le décodage hardware 10-Bit pour HEVC"
} }

View file

@ -607,7 +607,6 @@
"HeaderSelectServer": "בחר שרת", "HeaderSelectServer": "בחר שרת",
"HeaderSecondsValue": "{0} שניות", "HeaderSecondsValue": "{0} שניות",
"HeaderSeasons": "עונות", "HeaderSeasons": "עונות",
"HeaderRestartingServer": "מאתחל שרת",
"HeaderRestart": "הפעלה מחדש", "HeaderRestart": "הפעלה מחדש",
"HeaderProfileInformation": "מידע פרופיל", "HeaderProfileInformation": "מידע פרופיל",
"HeaderProfile": "פרופיל", "HeaderProfile": "פרופיל",

View file

@ -7,14 +7,14 @@
"AdditionalNotificationServices": "Pretražite katalog dodataka kako bi instalirali dodatne servise za obavijesti.", "AdditionalNotificationServices": "Pretražite katalog dodataka kako bi instalirali dodatne servise za obavijesti.",
"AllChannels": "Svi kanali", "AllChannels": "Svi kanali",
"AllEpisodes": "Sve epizode", "AllEpisodes": "Sve epizode",
"AllowHWTranscodingHelp": "Ako je omogućeno, omogućite TV/radio uređaju da konvertira strujanja u letu. Ovo može pomoći smanjiti konvertiranje koje zahtijeva Jellyfin Server.", "AllowHWTranscodingHelp": "Omogućite TV/radio uređaju da konvertira strujanja u letu. Ovo može pomoći smanjiti konvertiranje koje zahtijeva Jellyfin Server.",
"Anytime": "Bilo kada", "Anytime": "Bilo kada",
"AroundTime": "Oko {0}", "AroundTime": "Oko",
"AsManyAsPossible": "Što više je moguće", "AsManyAsPossible": "Što više je moguće",
"AttributeNew": "Novo", "AttributeNew": "Novo",
"Backdrops": "Pozadine", "Backdrops": "Pozadine",
"BirthDateValue": "Rođen: {0}", "BirthDateValue": "Rođen: {0}",
"BirthLocation": "Lokacije rođenja", "BirthLocation": "Lokacija rođenja",
"BirthPlaceValue": "Mjesto rođenja: {0}", "BirthPlaceValue": "Mjesto rođenja: {0}",
"BrowsePluginCatalogMessage": "Pregledajte dostupne dodatke u našem katalogu.", "BrowsePluginCatalogMessage": "Pregledajte dostupne dodatke u našem katalogu.",
"ButtonAdd": "Dodaj", "ButtonAdd": "Dodaj",
@ -120,35 +120,35 @@
"DoNotRecord": "Ne snimi", "DoNotRecord": "Ne snimi",
"Download": "Preuzimanje", "Download": "Preuzimanje",
"DrmChannelsNotImported": "Kanali s DRM se neće uvesti.", "DrmChannelsNotImported": "Kanali s DRM se neće uvesti.",
"EasyPasswordHelp": "Vaš laki PIN kod se koristi za izvan-mrežni pristup s podržanim Jellyfin aplikacijama, a također se može koristiti za jednostavnu mrežnu prijavu.", "EasyPasswordHelp": "Vaš laki PIN kod se koristi za izvan-mrežni pristup na podržanim klijentima i također se može koristiti za jednostavnu mrežnu prijavu.",
"Edit": "Izmjeni", "Edit": "Izmjeni",
"EditImages": "Uređivanje slika", "EditImages": "Uređivanje slika",
"EditSubtitles": "Uredi titlove", "EditSubtitles": "Uredi titlove",
"EnableColorCodedBackgrounds": "Omogući kodirane boje pozadine", "EnableColorCodedBackgrounds": "Kodirane boje pozadine",
"EnablePhotos": "Omogući slike", "EnablePhotos": "Prikaži slike",
"EnablePhotosHelp": "Slike će biti otkrite i prikazivane zajedno s drugim medijskim datotekama.", "EnablePhotosHelp": "Slike će biti otkrivene i prikazivane zajedno s drugim medijskim datotekama.",
"Ended": "Završeno", "Ended": "Završeno",
"EndsAtValue": "Završava u {0}", "EndsAtValue": "Završava u {0}",
"ErrorAddingListingsToSchedulesDirect": "Došlo je do pogreške prilikom dodavanja postava vašim zakazanim direktnim računima. Raspored dopušta samo ograničen broj postava po računu. Možda ćete morati se prijavite u zakazanim \"Direct\" web stranicama i ukloniti unose drugih s računa prije nastavka.", "ErrorAddingListingsToSchedulesDirect": "Došlo je do pogreške prilikom dodavanja postava vašim zakazanim direktnim računima. Raspored dopušta samo ograničen broj postava po računu. Možda ćete morati se prijavite u zakazanim \"Direct\" web stranicama i ukloniti unose drugih s računa prije nastavka.",
"ErrorAddingMediaPathToVirtualFolder": "Došlo je do pogreške prilikom dodavanja putanje medija. Provjerite dali je putanja valjana i da proces Jellyfin Server-a ima pristup tom mjestu.", "ErrorAddingMediaPathToVirtualFolder": "Došlo je do pogreške prilikom dodavanja putanje medija. Provjerite dali je putanja valjana i da proces Jellyfin Server-a ima pristup tom mjestu.",
"ErrorAddingTunerDevice": "Došlo je do pogreške prilikom dodavanja uređaja TV/radio pretraživača. Provjerite da je dostupan i pokušajte ponovno.", "ErrorAddingTunerDevice": "Došlo je do pogreške prilikom dodavanja uređaja TV/radio pretraživača. Provjerite da je dostupan i pokušajte ponovno.",
"ErrorGettingTvLineups": "Došlo je do pogreške prilikom preuzimanja tv postave. Provjerite dali su vaše informacije točne i pokušajte ponovno.", "ErrorGettingTvLineups": "Došlo je do pogreške prilikom preuzimanja TV postave. Provjerite dali su vaše informacije točne i pokušajte ponovno.",
"ErrorMessageStartHourGreaterThanEnd": "Vrijeme završetka mora biti veće od početka.", "ErrorMessageStartHourGreaterThanEnd": "Vrijeme završetka mora biti veće od početka.",
"ErrorPleaseSelectLineup": "Odaberite postavu i pokušajte ponovno. Ako niti jedna postava nije dostupna provjerite dali su korisničko ime, lozinka i poštanski broj točni.", "ErrorPleaseSelectLineup": "Odaberite postavu i pokušajte ponovno. Ako niti jedna postava nije dostupna provjerite dali su korisničko ime, lozinka i poštanski broj točni.",
"ErrorSavingTvProvider": "Došlo je do pogreške prilikom snimanja TV pružatelja. Provjerite da je dostupan i pokušajte ponovno.", "ErrorSavingTvProvider": "Došlo je do pogreške prilikom snimanja TV pružatelja. Provjerite da je dostupan i pokušajte ponovno.",
"ExtractChapterImagesHelp": "Izdvajanje slika poglavlja omogućiti će Jellyfin aplikaciji za prikaz grafičkih izbornika za odabir scena. Proces može biti spor, CPU intenzivno korišten i može zahtijevati nekoliko gigabajta prostora. Ono se pokreće kad je otkriven video, a također i kao noćni zadatak. Raspored je podesiv u području rasporeda zadataka. Ne preporučuje se za pokretanje ovog zadatka tijekom sati čestog korištenja.", "ExtractChapterImagesHelp": "Izdvajanje slika poglavlja omogućiti će klijentima prikaz grafičkih izbornika za odabir scena. Proces može biti spor, resursi intenzivno korišteni i može zahtijevati nekoliko gigabajta prostora. Ono se pokreće kad je otkriven video, a također i kao noćni zadatak. Raspored je podesiv u području rasporeda zadataka. Ne preporučuje se za pokretanje ovog zadatka tijekom sati čestog korištenja.",
"FFmpegSavePathNotFound": "Nismo mogli locirati FFmpeg korištenjem putanje koju ste unijeli. FFprobe je također potreban i mora postojati u istoj mapi. Te komponente su obično u paketu zajedno u istom preuzimanju. Provjerite putanju i pokušajte ponovno.", "FFmpegSavePathNotFound": "Nismo mogli locirati FFmpeg korištenjem putanje koju ste unijeli. FFprobe je također potreban i mora postojati u istoj mapi. Te komponente su obično u paketu zajedno u istom preuzimanju. Provjerite putanju i pokušajte ponovno.",
"Favorite": "Omiljeni", "Favorite": "Omiljeni",
"File": "Datoteka", "File": "Datoteka",
"FileNotFound": "Datoteka nije pronađena.", "FileNotFound": "Datoteka nije pronađena.",
"FileReadCancelled": "Učitavanje datoteke je prekinuto.", "FileReadCancelled": "Učitavanje datoteke je prekinuto.",
"FileReadError": "Prilikom učitavanja datoteke desila se greška", "FileReadError": "Prilikom učitavanja datoteke dogodila se greška.",
"FolderTypeBooks": "Knjige", "FolderTypeBooks": "Knjige",
"FolderTypeMovies": "Filmovi", "FolderTypeMovies": "Filmovi",
"FolderTypeMusic": "Glazba", "FolderTypeMusic": "Glazba",
"FolderTypeMusicVideos": "Glazbeni videi", "FolderTypeMusicVideos": "Glazbeni spotovi",
"FolderTypeTvShows": "TV", "FolderTypeTvShows": "TV",
"FolderTypeUnset": "Isključi (miješani sadržaj)", "FolderTypeUnset": "Miješani sadržaj",
"Friday": "Petak", "Friday": "Petak",
"Genres": "Žanrovi", "Genres": "Žanrovi",
"GroupVersions": "Verzija grupe", "GroupVersions": "Verzija grupe",
@ -158,7 +158,7 @@
"H264CrfHelp": "Konstante brzine faktora (CRF) je postavka zadane kvalitete za x264 enkodera. Možete postaviti vrijednosti između 0 i 51, gdje će niže vrijednosti rezultirati boljom kvalitetom (na račun veće veličine datoteka). Razumne vrijednosti su između 18 i 28. Zadana za x264 je 23, tako da to možete koristiti kao početnu točku.", "H264CrfHelp": "Konstante brzine faktora (CRF) je postavka zadane kvalitete za x264 enkodera. Možete postaviti vrijednosti između 0 i 51, gdje će niže vrijednosti rezultirati boljom kvalitetom (na račun veće veličine datoteka). Razumne vrijednosti su između 18 i 28. Zadana za x264 je 23, tako da to možete koristiti kao početnu točku.",
"EncoderPresetHelp": "Odaberite bržu vrijednost za poboljšanje performansi ili sporiju za poboljšanje kvalitete.", "EncoderPresetHelp": "Odaberite bržu vrijednost za poboljšanje performansi ili sporiju za poboljšanje kvalitete.",
"HDPrograms": "HD programi", "HDPrograms": "HD programi",
"HardwareAccelerationWarning": "Omogućavanje hardverskog ubrzanja može uzrokovati nestabilnostima u nekim sredinama. Pobrinite se da Vaš operativni sustav i video drajveri su u potpunosti ažurni. Ako imate poteškoća s reprodukcijom videa nakon omogućavanja ovoga, morat ćete promijeniti postavku natrag na Automatski.", "HardwareAccelerationWarning": "Omogućavanje hardverskog ubrzanja može uzrokovati nestabilnostima u nekim sredinama. Pobrinite se da Vaš operativni sustav i video drajveri su u potpunosti ažurni. Ako imate poteškoća s reprodukcijom videa nakon omogućavanja ovoga, morat ćete promijeniti postavku natrag na Ništa.",
"HeaderAccessSchedule": "Raspored pristupa", "HeaderAccessSchedule": "Raspored pristupa",
"HeaderAccessScheduleHelp": "Napravite raspored pristupa da bi ograničili pristup određenim satima.", "HeaderAccessScheduleHelp": "Napravite raspored pristupa da bi ograničili pristup određenim satima.",
"HeaderActiveDevices": "Aktivni uređaji", "HeaderActiveDevices": "Aktivni uređaji",
@ -189,7 +189,7 @@
"HeaderCodecProfileHelp": "Profili kodeka definiraju ograničenja kada uređaji izvode sadržaj u specifičnom kodeku. Ako se ograničenja podudaraju tada će sadržaj biti transkodiran, iako je kodek konfiguriran za direktno izvođenje.", "HeaderCodecProfileHelp": "Profili kodeka definiraju ograničenja kada uređaji izvode sadržaj u specifičnom kodeku. Ako se ograničenja podudaraju tada će sadržaj biti transkodiran, iako je kodek konfiguriran za direktno izvođenje.",
"HeaderConfirmPluginInstallation": "Potvrdi instalaciju dodatka", "HeaderConfirmPluginInstallation": "Potvrdi instalaciju dodatka",
"HeaderConfirmProfileDeletion": "Potvrdite brisanje profila", "HeaderConfirmProfileDeletion": "Potvrdite brisanje profila",
"HeaderConfirmRevokeApiKey": "Opozovi Api ključ", "HeaderConfirmRevokeApiKey": "Opozovi API ključ",
"HeaderConnectToServer": "Spoji se na Server", "HeaderConnectToServer": "Spoji se na Server",
"HeaderConnectionFailure": "Neuspjelo spajanje", "HeaderConnectionFailure": "Neuspjelo spajanje",
"HeaderContainerProfile": "Profil spremnika", "HeaderContainerProfile": "Profil spremnika",
@ -221,7 +221,7 @@
"HeaderForgotPassword": "Zaboravili ste lozinku", "HeaderForgotPassword": "Zaboravili ste lozinku",
"HeaderFrequentlyPlayed": "Često izvođeno", "HeaderFrequentlyPlayed": "Često izvođeno",
"HeaderGuideProviders": "Pružatelji vodiča", "HeaderGuideProviders": "Pružatelji vodiča",
"HeaderHttpHeaders": "Http zaglavlja", "HeaderHttpHeaders": "HTTP zaglavlja",
"HeaderIdentification": "Identifikacija", "HeaderIdentification": "Identifikacija",
"HeaderIdentificationCriteriaHelp": "Unesite barem jedan kriterij za identifikaciju.", "HeaderIdentificationCriteriaHelp": "Unesite barem jedan kriterij za identifikaciju.",
"HeaderIdentificationHeader": "Identifikacija zaglavlja", "HeaderIdentificationHeader": "Identifikacija zaglavlja",
@ -244,7 +244,7 @@
"HeaderLoginFailure": "Neuspjela prijava", "HeaderLoginFailure": "Neuspjela prijava",
"HeaderMedia": "Medij", "HeaderMedia": "Medij",
"HeaderMediaFolders": "Medijska mapa", "HeaderMediaFolders": "Medijska mapa",
"HeaderMediaInfo": "Info medija:", "HeaderMediaInfo": "Info medija",
"HeaderMetadataSettings": "Postavke meta-podataka", "HeaderMetadataSettings": "Postavke meta-podataka",
"HeaderMoreLikeThis": "Više ovakvih", "HeaderMoreLikeThis": "Više ovakvih",
"HeaderMovies": "Filmovi", "HeaderMovies": "Filmovi",
@ -278,8 +278,8 @@
"HeaderScenes": "Scene", "HeaderScenes": "Scene",
"HeaderSchedule": "Raspored", "HeaderSchedule": "Raspored",
"HeaderSeasons": "Sezone", "HeaderSeasons": "Sezone",
"HeaderSelectCertificatePath": "Odaberi put certifikata:", "HeaderSelectCertificatePath": "Odaberi putanju certifikata",
"HeaderSelectMetadataPath": "Odaberite putanju meta-podataka:", "HeaderSelectMetadataPath": "Odaberite putanju meta-podataka",
"HeaderSelectMetadataPathHelp": "Pregledajte ili unesite putanju za pohranu meta-podataka. U mapu se mora moći pisati.", "HeaderSelectMetadataPathHelp": "Pregledajte ili unesite putanju za pohranu meta-podataka. U mapu se mora moći pisati.",
"HeaderSelectPath": "Odaberi putanju", "HeaderSelectPath": "Odaberi putanju",
"HeaderSelectServer": "Odaberi Server", "HeaderSelectServer": "Odaberi Server",
@ -288,7 +288,7 @@
"HeaderSelectTranscodingPath": "Odaberite privremenu putanju konvertiranja", "HeaderSelectTranscodingPath": "Odaberite privremenu putanju konvertiranja",
"HeaderSelectTranscodingPathHelp": "Pregledajte ili unesite putanju za korištenje konvertiranja privremenih datoteka. U mapu se mora moći pisati.", "HeaderSelectTranscodingPathHelp": "Pregledajte ili unesite putanju za korištenje konvertiranja privremenih datoteka. U mapu se mora moći pisati.",
"HeaderSendMessage": "Pošalji poruku", "HeaderSendMessage": "Pošalji poruku",
"HeaderSeries": "Series:", "HeaderSeries": "Serija",
"HeaderSeriesOptions": "Opcije serija", "HeaderSeriesOptions": "Opcije serija",
"HeaderServerSettings": "Postavke Servera", "HeaderServerSettings": "Postavke Servera",
"HeaderSettings": "Postavke", "HeaderSettings": "Postavke",
@ -325,7 +325,7 @@
"Identify": "Identificiraj", "Identify": "Identificiraj",
"Images": "Slike", "Images": "Slike",
"ImportFavoriteChannelsHelp": "Ako je omogućeno, samo kanali koji su označeni kao omiljeni na uređaju TV/radio pretraživača će se uvesti.", "ImportFavoriteChannelsHelp": "Ako je omogućeno, samo kanali koji su označeni kao omiljeni na uređaju TV/radio pretraživača će se uvesti.",
"InstallingPackage": "Instaliranje {0}", "InstallingPackage": "Instaliranje {0} (verzija {1})",
"InstantMix": "Trenutno miješanje", "InstantMix": "Trenutno miješanje",
"ItemCount": "{0} stavaka", "ItemCount": "{0} stavaka",
"Kids": "Djeca", "Kids": "Djeca",
@ -344,13 +344,13 @@
"LabelAlbumArtMaxWidth": "Maksimalna širina Album art-a:", "LabelAlbumArtMaxWidth": "Maksimalna širina Album art-a:",
"LabelAlbumArtMaxWidthHelp": "Maksimalna rezolucija albuma izloženih putem UPnP:albumArtURI.", "LabelAlbumArtMaxWidthHelp": "Maksimalna rezolucija albuma izloženih putem UPnP:albumArtURI.",
"LabelAlbumArtPN": "Grafika albuma PN:", "LabelAlbumArtPN": "Grafika albuma PN:",
"LabelAlbumArtists": "Izvođači albuma", "LabelAlbumArtists": "Izvođači albuma:",
"LabelAll": "Sve", "LabelAll": "Sve",
"LabelAllowHWTranscoding": "Dopusti hardversko konvertiranje", "LabelAllowHWTranscoding": "Dopusti hardversko konvertiranje",
"LabelAllowServerAutoRestart": "Dopusti serveru da se automatski resetira kako bi proveo nadogradnje", "LabelAllowServerAutoRestart": "Dopusti serveru da se automatski resetira kako bi proveo nadogradnje",
"LabelAllowServerAutoRestartHelp": "Server će se resetirati dok je u statusu mirovanja, odnosno kada nema aktivnih korisnika.", "LabelAllowServerAutoRestartHelp": "Server će se resetirati samo dok je u statusu mirovanja kada nema aktivnih korisnika.",
"LabelAppName": "Ime aplikacije", "LabelAppName": "Ime aplikacije",
"LabelAppNameExample": "Primjer: Sickbeard, NzbDrone", "LabelAppNameExample": "Primjer: Sickbeard, Sonarr",
"LabelArtists": "Izvođači:", "LabelArtists": "Izvođači:",
"LabelArtistsHelp": "Odvoji višestruko koristeći ;", "LabelArtistsHelp": "Odvoji višestruko koristeći ;",
"LabelAudioLanguagePreference": "Postavke audio jezika:", "LabelAudioLanguagePreference": "Postavke audio jezika:",
@ -362,7 +362,7 @@
"LabelBlastMessageIntervalHelp": "Određuje trajanje u sekundama između svake poruke dostupnosti servera.", "LabelBlastMessageIntervalHelp": "Određuje trajanje u sekundama između svake poruke dostupnosti servera.",
"LabelCache": "Predmemorija:", "LabelCache": "Predmemorija:",
"LabelCachePath": "Putanja predmemorije:", "LabelCachePath": "Putanja predmemorije:",
"LabelCachePathHelp": "Odredite prilagođenu lokaciju za predmemorijske datoteke servera, kao što su slike. Ostavite prazno za korištenje zadanog poslužitelja.", "LabelCachePathHelp": "Odredite prilagođenu lokaciju za predmemorijske datoteke servera kao što su slike. Ostavite prazno za korištenje zadanog poslužitelja.",
"LabelCancelled": "Otkazan", "LabelCancelled": "Otkazan",
"LabelChannels": "Kanali:", "LabelChannels": "Kanali:",
"LabelCollection": "Kolekcija:", "LabelCollection": "Kolekcija:",
@ -371,12 +371,12 @@
"LabelCountry": "Zemlja:", "LabelCountry": "Zemlja:",
"LabelCriticRating": "Ocjene kritike:", "LabelCriticRating": "Ocjene kritike:",
"LabelCurrentPassword": "Sadašnja lozinka:", "LabelCurrentPassword": "Sadašnja lozinka:",
"LabelCustomCss": "Prilagođen css:", "LabelCustomCss": "Prilagođeni CSS:",
"LabelCustomCssHelp": "Primijenite svoj vlastiti prilagođeni css na web sučelje.", "LabelCustomCssHelp": "Primijenite svoj vlastiti prilagođeni stil na web sučelje.",
"LabelCustomDeviceDisplayName": "Prikaz naziva:", "LabelCustomDeviceDisplayName": "Prikaz naziva:",
"LabelCustomDeviceDisplayNameHelp": "Navedite naziv prilagođenog prikaza ili ostaviti prazno za korištenje naziva koji je izvijestio uređaj.", "LabelCustomDeviceDisplayNameHelp": "Navedite naziv prilagođenog prikaza ili ostaviti prazno za korištenje naziva koji je izvijestio uređaj.",
"LabelCustomRating": "Prilagođena ocjena:", "LabelCustomRating": "Prilagođena ocjena:",
"LabelDateAdded": "Datumu dodavanja", "LabelDateAdded": "Datum dodavanja:",
"LabelDateAddedBehavior": "Ponašanje datuma dodanog za novi sadržaj:", "LabelDateAddedBehavior": "Ponašanje datuma dodanog za novi sadržaj:",
"LabelDateAddedBehaviorHelp": "Ako je prisutna vrijednost meta-podataka uvijek će se koristiti prije bilo kojih od ovih opcija.", "LabelDateAddedBehaviorHelp": "Ako je prisutna vrijednost meta-podataka uvijek će se koristiti prije bilo kojih od ovih opcija.",
"LabelDay": "Dan:", "LabelDay": "Dan:",
@ -384,29 +384,29 @@
"LabelDefaultUser": "Zadani korisnik:", "LabelDefaultUser": "Zadani korisnik:",
"LabelDefaultUserHelp": "Određuje koja će biblioteka biti prikazana na spojenim uređajima. Ovo se može zaobići za svaki uređaj koristeći profile.", "LabelDefaultUserHelp": "Određuje koja će biblioteka biti prikazana na spojenim uređajima. Ovo se može zaobići za svaki uređaj koristeći profile.",
"LabelDeviceDescription": "Opis uređaja", "LabelDeviceDescription": "Opis uređaja",
"LabelDidlMode": "Didl način:", "LabelDidlMode": "DIDL način:",
"LabelDisplayMissingEpisodesWithinSeasons": "Prikaži epizode koje nedostaju unutar sezone", "LabelDisplayMissingEpisodesWithinSeasons": "Prikaži epizode koje nedostaju unutar sezone",
"LabelDisplayName": "Prikaz naziva:", "LabelDisplayName": "Prikaz naziva:",
"LabelDisplayOrder": "Poredak prikaza:", "LabelDisplayOrder": "Poredak prikaza:",
"LabelDisplaySpecialsWithinSeasons": "Prikaz specijalnih dodataka unutar sezona u kojima su emitirani", "LabelDisplaySpecialsWithinSeasons": "Prikaz specijalnih dodataka unutar sezona u kojima su emitirani",
"LabelDownMixAudioScale": "Pojačaj zvuk kada radiš downmix:", "LabelDownMixAudioScale": "Pojačaj zvuk kada radiš downmix:",
"LabelDownMixAudioScaleHelp": "Pojačaj zvuk kada radiš downmix. Postavi na 1 ako želiš zadržati orginalnu jačinu zvuka.", "LabelDownMixAudioScaleHelp": "Pojačaj zvuk prilikom downmix-a. Vrijednost 1 će zadržati originalnu jačinu zvuka.",
"LabelDownloadLanguages": "Jezici za preuzimanje:", "LabelDownloadLanguages": "Jezici za preuzimanje:",
"LabelEasyPinCode": "Lagan PIN kod:", "LabelEasyPinCode": "Lagan PIN kod:",
"LabelEmbedAlbumArtDidl": "Ugradi grafike albuma u Didl", "LabelEmbedAlbumArtDidl": "Ugradi grafike albuma u Didl",
"LabelEmbedAlbumArtDidlHelp": "Neki uređaji podržavaju ovu metodu za prikaz grafike albuma. Drugi bi mogli imati problema sa ovom opcijom uključenom.", "LabelEmbedAlbumArtDidlHelp": "Neki uređaji podržavaju ovu metodu za prikaz grafike albuma. Drugi bi mogli imati problema sa ovom opcijom uključenom.",
"LabelEnableAutomaticPortMap": "Omogući automatsko mapiranje porta", "LabelEnableAutomaticPortMap": "Omogući automatsko mapiranje porta",
"LabelEnableAutomaticPortMapHelp": "Pokušaj automatski mapirati javni port za lokalni port preko UPnP. Možda neće raditi s nekim modelima router-a.", "LabelEnableAutomaticPortMapHelp": "Automatski proslijedi javni port na svom ruteru na lokalni port preko UPnP. Možda neće raditi sa nekim modelima router-a ili mrežnim konfiguracijama. Promjene se neće primijeniti do restarta servera.",
"LabelEnableBlastAliveMessages": "Objavi poruke dostupnosti", "LabelEnableBlastAliveMessages": "Objavi poruke dostupnosti",
"LabelEnableBlastAliveMessagesHelp": "Omogući ovo ako server nije prikazan kao siguran za druge UPnP uređaje na mreži.", "LabelEnableBlastAliveMessagesHelp": "Omogući ovo ako server nije prikazan kao siguran za druge UPnP uređaje na mreži.",
"LabelEnableDlnaClientDiscoveryInterval": "Interval za otkrivanje kljenata (sekunde)", "LabelEnableDlnaClientDiscoveryInterval": "Interval za otkrivanje kljenata (sekunde)",
"LabelEnableDlnaClientDiscoveryIntervalHelp": "Određuje trajanje u sekundama između SSDP pretraživanja obavljenih od Jellyfin-a.", "LabelEnableDlnaClientDiscoveryIntervalHelp": "Određuje trajanje u sekundama između SSDP pretraživanja obavljenih od Jellyfin-a.",
"LabelEnableDlnaDebugLogging": "Omogući DLNA logiranje grešaka.", "LabelEnableDlnaDebugLogging": "Omogući DLNA logiranje grešaka",
"LabelEnableDlnaDebugLoggingHelp": "Ovo će kreirati iznimno velike log datoteke i jedino se preporuča koristiti u slučaju problema.", "LabelEnableDlnaDebugLoggingHelp": "Kreiraj iznimno velike log datoteke i preporuča se koristiti jedino u slučaju problema.",
"LabelEnableDlnaPlayTo": "Omogući DLNA izvođenje na", "LabelEnableDlnaPlayTo": "Omogući DLNA izvođenje na",
"LabelEnableDlnaPlayToHelp": "Jellyfin može otkriti uređaje unutar svoje mreže i ponuditi mogućnost da ih daljinski upravlja.", "LabelEnableDlnaPlayToHelp": "Otkrij uređaje unutar svoje mreže i ponudi mogućnost da ih daljinski upravlja.",
"LabelEnableDlnaServer": "Omogući Dlna server", "LabelEnableDlnaServer": "Omogući DLNA server",
"LabelEnableDlnaServerHelp": "Omogućuje UPnP uređajima na mreži da pregledavaju i pokreću Jellyfin sadržaj.", "LabelEnableDlnaServerHelp": "Omogućuje UPnP uređajima na mreži da pregledavaju i pokreću sadržaj.",
"LabelEnableRealtimeMonitor": "Omogući nadgledanje u realnom vremenu", "LabelEnableRealtimeMonitor": "Omogući nadgledanje u realnom vremenu",
"LabelEnableRealtimeMonitorHelp": "Promjene će biti procesuirane odmah, nad podržanim datotekama sistema.", "LabelEnableRealtimeMonitorHelp": "Promjene će biti procesuirane odmah, nad podržanim datotekama sistema.",
"LabelEnableSingleImageInDidlLimit": "Ograničenje na jednu ugrađenu sliku", "LabelEnableSingleImageInDidlLimit": "Ograničenje na jednu ugrađenu sliku",
@ -416,12 +416,12 @@
"LabelEvent": "Događaj:", "LabelEvent": "Događaj:",
"LabelEveryXMinutes": "Svaki:", "LabelEveryXMinutes": "Svaki:",
"LabelExtractChaptersDuringLibraryScan": "Izvadi slike poglavlja dok traje skeniranje biblioteke", "LabelExtractChaptersDuringLibraryScan": "Izvadi slike poglavlja dok traje skeniranje biblioteke",
"LabelExtractChaptersDuringLibraryScanHelp": "Ako je omogućeno, slike poglavlje će se izdvojiti kad se videozapisi uvezu tijekom skeniranja biblioteke. Ako je onemogućeno izdvojiti će se u rasporedu zadatka slika poglavlja, čime se omogućuje da se skeniranje redovne biblioteke završiti brže.", "LabelExtractChaptersDuringLibraryScanHelp": "Generiraj slike poglavlje kad se videozapisi uvezu tijekom skeniranja biblioteke. U suprotnom, izdvajanje će se odraditi u rasporedu zadatka slika poglavlja, čime se omogućuje da se skeniranje redovne biblioteke završi brže.",
"LabelFailed": "Neuspješno", "LabelFailed": "Neuspješno",
"LabelFileOrUrl": "Datoteka ili url:", "LabelFileOrUrl": "Datoteka ili url:",
"LabelFinish": "Kraj", "LabelFinish": "Kraj",
"LabelForgotPasswordUsernameHelp": "Unesite korisničko ime, ako se sjećate.", "LabelForgotPasswordUsernameHelp": "Unesite korisničko ime, ako se sjećate.",
"LabelFriendlyName": "Prijateljsko ime", "LabelFriendlyName": "Prijateljsko ime:",
"LabelServerNameHelp": "Ovo ime će se koristiti za identifikaciju servera. Ako ostavite prazno, ime računala će se koristi kao identifikator.", "LabelServerNameHelp": "Ovo ime će se koristiti za identifikaciju servera. Ako ostavite prazno, ime računala će se koristi kao identifikator.",
"LabelGroupMoviesIntoCollections": "Grupiraj filmove u kolekciju", "LabelGroupMoviesIntoCollections": "Grupiraj filmove u kolekciju",
"LabelGroupMoviesIntoCollectionsHelp": "Kada se prikazuje lista filmova, filmovi koji pripadaju kolekciji biti će prikazani kao jedna stavka.", "LabelGroupMoviesIntoCollectionsHelp": "Kada se prikazuje lista filmova, filmovi koji pripadaju kolekciji biti će prikazani kao jedna stavka.",
@ -475,7 +475,7 @@
"LabelMetadataDownloadersHelp": "Omogućite i poredajte željene preuzimatelje meta-podataka po redu prioriteta. Manjeg prioriteta preuzimatelji koristit će se samo za ispunjavanje nedostajućih informacija.", "LabelMetadataDownloadersHelp": "Omogućite i poredajte željene preuzimatelje meta-podataka po redu prioriteta. Manjeg prioriteta preuzimatelji koristit će se samo za ispunjavanje nedostajućih informacija.",
"LabelMetadataPath": "Put meta-podataka:", "LabelMetadataPath": "Put meta-podataka:",
"LabelMetadataPathHelp": "Odredite prilagođenu lokaciju za preuzete ilustracije i meta-podatke.", "LabelMetadataPathHelp": "Odredite prilagođenu lokaciju za preuzete ilustracije i meta-podatke.",
"LabelMetadataReaders": "Čitači meta-podataka", "LabelMetadataReaders": "Čitači meta-podataka:",
"LabelMetadataReadersHelp": "Poredajte željene lokalne izvore meta-podataka po redu prioriteta. Prva nađena datoteka biti će čitana.", "LabelMetadataReadersHelp": "Poredajte željene lokalne izvore meta-podataka po redu prioriteta. Prva nađena datoteka biti će čitana.",
"LabelMetadataSavers": "Snimači meta-podataka:", "LabelMetadataSavers": "Snimači meta-podataka:",
"LabelMetadataSaversHelp": "Odaberite formate datoteka za spremanje meta-podataka.", "LabelMetadataSaversHelp": "Odaberite formate datoteka za spremanje meta-podataka.",
@ -567,7 +567,7 @@
"LabelStopWhenPossible": "Zaustavi kada je moguće:", "LabelStopWhenPossible": "Zaustavi kada je moguće:",
"LabelStopping": "Zaustavljanje", "LabelStopping": "Zaustavljanje",
"LabelSubtitleFormatHelp": "Npr.: srt", "LabelSubtitleFormatHelp": "Npr.: srt",
"LabelSubtitlePlaybackMode": "Način titlova prijevoda", "LabelSubtitlePlaybackMode": "Način prijevoda:",
"LabelSupportedMediaTypes": "Podržani tipovi medija:", "LabelSupportedMediaTypes": "Podržani tipovi medija:",
"LabelTag": "Oznaka:", "LabelTag": "Oznaka:",
"LabelTagline": "Slogan:", "LabelTagline": "Slogan:",
@ -652,15 +652,15 @@
"MessageDirectoryPickerBSDInstruction": "Za BSD možda ćete morati podesiti pohranu unutar vašega FreeNAS kako bi se omogućilo Jellyfin-u pristup.", "MessageDirectoryPickerBSDInstruction": "Za BSD možda ćete morati podesiti pohranu unutar vašega FreeNAS kako bi se omogućilo Jellyfin-u pristup.",
"MessageDirectoryPickerInstruction": "Mrežne putanje mogu se unijeti ručno u slučaju da gumb Mreže ne uspije locirati vaše uređaje. Na primjer, {0} ili {1}.", "MessageDirectoryPickerInstruction": "Mrežne putanje mogu se unijeti ručno u slučaju da gumb Mreže ne uspije locirati vaše uređaje. Na primjer, {0} ili {1}.",
"MessageDirectoryPickerLinuxInstruction": "Za Linux na Arch Linux, CentOS, Debian, Fedora, OpenSuse ili Ubuntu morate dati korisniku Jellyfin sistema barem pristup čitanja vašim lokacijama za skladištenje.", "MessageDirectoryPickerLinuxInstruction": "Za Linux na Arch Linux, CentOS, Debian, Fedora, OpenSuse ili Ubuntu morate dati korisniku Jellyfin sistema barem pristup čitanja vašim lokacijama za skladištenje.",
"MessageDownloadQueued": "Preuzimanje na čekanju", "MessageDownloadQueued": "Preuzimanje na čekanju.",
"MessageFileReadError": "Prilikom učitavanja datoteke desila se greška", "MessageFileReadError": "Prilikom učitavanja datoteke desila se greška. Pokušajte ponovno.",
"MessageForgotPasswordFileCreated": "Sljedeća datoteka je stvorena na vašem poslužitelju i sadrži upute o tome kako postupiti:", "MessageForgotPasswordFileCreated": "Sljedeća datoteka je stvorena na vašem poslužitelju i sadrži upute o tome kako postupiti:",
"MessageForgotPasswordInNetworkRequired": "Molim pokušajte ponovno unutar kućne mreže za pokretanje postupka za poništavanje zaporke.", "MessageForgotPasswordInNetworkRequired": "Molim pokušajte ponovno unutar kućne mreže za pokretanje postupka za poništavanje zaporke.",
"MessageInstallPluginFromApp": "Ovaj dodatak mora biti instaliran unutar aplikacije u kojoj ga namjeravate koristiti.", "MessageInstallPluginFromApp": "Ovaj dodatak mora biti instaliran unutar aplikacije u kojoj ga namjeravate koristiti.",
"MessageInvalidForgotPasswordPin": "Upisan je neispravan ili zastarjele pin. Molim, pokušajte ponovno.", "MessageInvalidForgotPasswordPin": "Upisan je neispravan ili zastarjele pin. Molim, pokušajte ponovno.",
"MessageInvalidUser": "Pogrešno korisničko ime ili lozinka. Molim, pokušajte ponovo.", "MessageInvalidUser": "Pogrešno korisničko ime ili lozinka. Molim, pokušajte ponovo.",
"MessageItemSaved": "Stavka je snimljena.", "MessageItemSaved": "Stavka je snimljena.",
"MessageItemsAdded": "Stavke su dodane", "MessageItemsAdded": "Stavke su dodane.",
"MessageLeaveEmptyToInherit": "Ostavite prazno da naslijedi postavke od roditelja stavke ili globalnu zadanu vrijednost.", "MessageLeaveEmptyToInherit": "Ostavite prazno da naslijedi postavke od roditelja stavke ili globalnu zadanu vrijednost.",
"MessageNoAvailablePlugins": "Nema odgovarajućih dodataka.", "MessageNoAvailablePlugins": "Nema odgovarajućih dodataka.",
"MessageNoMovieSuggestionsAvailable": "Filmski prijedlozi nisu trenutno dostupni. Počnite s gledanjem i ocjenjivanjem svoje filmove, a zatim se vratite da biste vidjeli svoje preporuke.", "MessageNoMovieSuggestionsAvailable": "Filmski prijedlozi nisu trenutno dostupni. Počnite s gledanjem i ocjenjivanjem svoje filmove, a zatim se vratite da biste vidjeli svoje preporuke.",
@ -672,7 +672,7 @@
"MessagePluginConfigurationRequiresLocalAccess": "Za podešavanje ovog dodatka prijavite se izravno na lokalni server.", "MessagePluginConfigurationRequiresLocalAccess": "Za podešavanje ovog dodatka prijavite se izravno na lokalni server.",
"MessagePluginInstallDisclaimer": "Dodaci izgrađeni od strane članova Jellyfin zajednice su sjajan način kako bi unaprijedili Vaše iskustvo Jellyfin s dodatnim značajkama i prednostima. Prije instaliranja budite svjesni učinaka koje mogu imati na vaš Jellyfin Server, kao što je duže skeniranje biblioteke, dodatna pozadinska obrada, a smanjena stabilnost sustava.", "MessagePluginInstallDisclaimer": "Dodaci izgrađeni od strane članova Jellyfin zajednice su sjajan način kako bi unaprijedili Vaše iskustvo Jellyfin s dodatnim značajkama i prednostima. Prije instaliranja budite svjesni učinaka koje mogu imati na vaš Jellyfin Server, kao što je duže skeniranje biblioteke, dodatna pozadinska obrada, a smanjena stabilnost sustava.",
"MessageReenableUser": "Pogledajte dolje za ponovno omogućenje", "MessageReenableUser": "Pogledajte dolje za ponovno omogućenje",
"MessageSettingsSaved": "Postavke snimljene", "MessageSettingsSaved": "Postavke spremljene.",
"MessageTheFollowingLocationWillBeRemovedFromLibrary": "Sljedeće lokacije medija biti će uklonjene iz vaše Jellyfin biblioteke:", "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Sljedeće lokacije medija biti će uklonjene iz vaše Jellyfin biblioteke:",
"MessageUnableToConnectToServer": "Nismo u mogućnosti spojiti se na odabrani poslužitelj. Provjerite dali je pokrenut i pokušajte ponovno.", "MessageUnableToConnectToServer": "Nismo u mogućnosti spojiti se na odabrani poslužitelj. Provjerite dali je pokrenut i pokušajte ponovno.",
"MessageUnsetContentHelp": "Sadržaj će biti prikazan kao obične mape. Za najbolje rezultate upotrijebite upravitelj meta-podataka za postavljanje vrste sadržaja pod-mapa.", "MessageUnsetContentHelp": "Sadržaj će biti prikazan kao obične mape. Za najbolje rezultate upotrijebite upravitelj meta-podataka za postavljanje vrste sadržaja pod-mapa.",
@ -785,14 +785,14 @@
"OptionMissingEpisode": "Epizode koje nedostaju", "OptionMissingEpisode": "Epizode koje nedostaju",
"OptionMonday": "Ponedjeljak", "OptionMonday": "Ponedjeljak",
"OptionNameSort": "Nazivu", "OptionNameSort": "Nazivu",
"OptionNew": "Novo...", "OptionNew": "Novo",
"OptionNone": "Ništa", "OptionNone": "Ništa",
"OptionOnAppStartup": "Kada se aplikacija pokrene", "OptionOnAppStartup": "Kada se aplikacija pokrene",
"OptionOnInterval": "U intervalu", "OptionOnInterval": "U intervalu",
"OptionParentalRating": "Roditeljska ocjena", "OptionParentalRating": "Roditeljska ocjena",
"OptionPlainStorageFolders": "Prikaži sve mape kako jednostavne mape za skladištenje", "OptionPlainStorageFolders": "Prikaži sve mape kako jednostavne mape za skladištenje",
"OptionPlainStorageFoldersHelp": "Ako je omogućeno, sve mape se prezentiraju u DIDL-u kao \"objekt.spremnik.skladišnaMapa\" umjesto više specijaliziranog tipa kao \"objekt.spremnik.osoba.glazbaIzvođač\".", "OptionPlainStorageFoldersHelp": "Ako je omogućeno, sve mape se prezentiraju u DIDL-u kao \"objekt.spremnik.skladišnaMapa\" umjesto više specijaliziranog tipa kao \"objekt.spremnik.osoba.glazbaIzvođač\".",
"OptionPlainVideoItems": "Prikaži sav video kao jednostavne video stavke.", "OptionPlainVideoItems": "Prikaži sve video zapise kao jednostavne video stavke",
"OptionPlainVideoItemsHelp": "Ako je omogućeno, sav video se prezentira u DIDL-u kao \"objekt.stavka.videoStavka\" umjesto više specijaliziranog tipa kao \"objekt.stavka.videoStavka.film\".", "OptionPlainVideoItemsHelp": "Ako je omogućeno, sav video se prezentira u DIDL-u kao \"objekt.stavka.videoStavka\" umjesto više specijaliziranog tipa kao \"objekt.stavka.videoStavka.film\".",
"OptionPlayCount": "Broju izvođenja", "OptionPlayCount": "Broju izvođenja",
"OptionPlayed": "Izvođeni", "OptionPlayed": "Izvođeni",
@ -862,7 +862,7 @@
"RecordingScheduled": "Snimka je zakazana.", "RecordingScheduled": "Snimka je zakazana.",
"Refresh": "Osviježi", "Refresh": "Osviježi",
"RefreshDialogHelp": "Meta-podaci se osvježavaju na temelju postavki i internet usluga koje su omogućene u nadzornoj ploči Jellyfin Server-a.", "RefreshDialogHelp": "Meta-podaci se osvježavaju na temelju postavki i internet usluga koje su omogućene u nadzornoj ploči Jellyfin Server-a.",
"RefreshQueued": "Osviježi stavke na čekanju", "RefreshQueued": "Osviježi stavke na čekanju.",
"ReleaseDate": "Datum izdavanja", "ReleaseDate": "Datum izdavanja",
"RememberMe": "Zapamti me", "RememberMe": "Zapamti me",
"RemoveFromCollection": "Ukloni iz kolekcije", "RemoveFromCollection": "Ukloni iz kolekcije",
@ -890,7 +890,7 @@
"ServerNameIsShuttingDown": "Jellyfin Server - {0} se gasi.", "ServerNameIsShuttingDown": "Jellyfin Server - {0} se gasi.",
"ServerUpdateNeeded": "Jellyfin Server treba ažurirati. Da biste preuzeli najnoviju verziju, posjetite {0}", "ServerUpdateNeeded": "Jellyfin Server treba ažurirati. Da biste preuzeli najnoviju verziju, posjetite {0}",
"Settings": "Postavke", "Settings": "Postavke",
"SettingsSaved": "Postavke snimljene", "SettingsSaved": "Postavke spremljene.",
"SettingsWarning": "Mijenjanje ove vrijednosti može uzrokovati nestabilnost ili kvarove na povezivanju. Ako naiđete na bilo kakve probleme, preporučamo da ih promijenite natrag na zadane.", "SettingsWarning": "Mijenjanje ove vrijednosti može uzrokovati nestabilnost ili kvarove na povezivanju. Ako naiđete na bilo kakve probleme, preporučamo da ih promijenite natrag na zadane.",
"Share": "Dijeli", "Share": "Dijeli",
"ShowIndicatorsFor": "Prikaži pokazatelja za:", "ShowIndicatorsFor": "Prikaži pokazatelja za:",
@ -1006,9 +1006,49 @@
"AccessRestrictedTryAgainLater": "Dostup je trenutačno ograničen. Pokušajte poslije ponovno.", "AccessRestrictedTryAgainLater": "Dostup je trenutačno ograničen. Pokušajte poslije ponovno.",
"Albums": "Albumi", "Albums": "Albumi",
"All": "Sve", "All": "Sve",
"AllComplexFormats": "Svi kompleksni formati (ASS, SSA, VOBSUB, PGS, SUB/IDX, itd.)", "AllComplexFormats": "Svi kompleksni formati (ASS, SSA, VOBSUB, PGS, SUB, IDX, ...)",
"Books": "Knjige", "Books": "Knjige",
"Channels": "Kanali", "Channels": "Kanali",
"Collections": "Kolekcije", "Collections": "Kolekcije",
"Artists": "Izvođači" "Artists": "Izvođači",
"DownloadsValue": "{0} preuzimanja",
"Down": "Dolje",
"Playlists": "Popis za reprodukciju",
"AllowMediaConversionHelp": "Dopusti ili odbij pristup mogućnosti konverzije datoteke.",
"AllLibraries": "Sve biblioteke",
"Aired": "Prikazano",
"AirDate": "Datum prikazivanja",
"AddedOnValue": "Dodano {0}",
"Songs": "Pjesme",
"Shows": "Serije",
"Photos": "Slike",
"HeaderFavoriteSongs": "Omiljene pjesme",
"HeaderFavoriteArtists": "Omiljeni izvođači",
"HeaderFavoriteAlbums": "Omiljeni albumi",
"HeaderFavoriteEpisodes": "Omiljene epizode",
"HeaderFavoriteShows": "Omiljene serije",
"HeaderContinueWatching": "Nastavi gledati",
"HeaderAlbumArtists": "Izvođači na albumu",
"Folders": "Mape",
"Favorites": "Favoriti",
"ButtonCast": "Uloge",
"EveryXHours": "Svakih {0} sati",
"EveryHour": "Svaki sat",
"OnApplicationStartup": "Prilikom pokretanja aplikacije",
"Backdrop": "Pozadina",
"Auto": "Automatski",
"Audio": "Audio",
"Artist": "Izvođač",
"AnyLanguage": "Bilo koji jezik",
"AlwaysPlaySubtitlesHelp": "Prijevodi koji odgovaraju odabranom jeziku će uvijek biti odabrani unatoč jeziku audio zapisa.",
"AlwaysPlaySubtitles": "Uvijek prikaži prijevod",
"AllowRemoteAccessHelp": "Ako je odznačeno, svi udaljeni pristupi će biti blokirani.",
"AllowRemoteAccess": "Dopusti udaljene pristupe na ovaj Jellyfin server.",
"AllowOnTheFlySubtitleExtraction": "Dopusti izvlačenje prijevoda u hodu",
"AllowMediaConversion": "Dopusti konverziju datoteke",
"AllLanguages": "Svi jezici",
"Alerts": "Upozorenja",
"AlbumArtist": "Izvođač na albumu",
"Album": "Album",
"AddToPlayQueue": "Dodaj u red izvođenja"
} }

View file

@ -1127,7 +1127,7 @@
"AddToPlayQueue": "Hozzáadás a lejátszási sorhoz", "AddToPlayQueue": "Hozzáadás a lejátszási sorhoz",
"AllowHWTranscodingHelp": "Lehetővé teszi a tuner számára, hogy át tudja kódolni a streameket valós időben. Ez segíthet csökkenteni a Szerver által igényelt átkódolást.", "AllowHWTranscodingHelp": "Lehetővé teszi a tuner számára, hogy át tudja kódolni a streameket valós időben. Ez segíthet csökkenteni a Szerver által igényelt átkódolást.",
"AllowOnTheFlySubtitleExtraction": "Felirat kinyerésének engedélyezése valós időben", "AllowOnTheFlySubtitleExtraction": "Felirat kinyerésének engedélyezése valós időben",
"MessageNoTrailersFound": "Nincsenek előzetesek. Telepítsd a Trailer csatornát, hogy javítsd a filmélményt az internetes előzetesek könyvtárának hozzáadásával.", "MessageNoTrailersFound": "Telepítsd a Trailer csatornát, hogy javítsd a filmélményt az internetes előzetesek könyvtárának hozzáadásával.",
"OptionEnableM2tsMode": "M2ts mód engedélyezése", "OptionEnableM2tsMode": "M2ts mód engedélyezése",
"OptionEnableM2tsModeHelp": "Engedélyezze az m2ts módot amikor mpegts kódolás történik.", "OptionEnableM2tsModeHelp": "Engedélyezze az m2ts módot amikor mpegts kódolás történik.",
"OptionEnded": "Befejezett", "OptionEnded": "Befejezett",
@ -1196,11 +1196,10 @@
"RecordingScheduled": "A rögzítés ütemezett.", "RecordingScheduled": "A rögzítés ütemezett.",
"Recordings": "Felvételek", "Recordings": "Felvételek",
"RefreshQueued": "Frissítés sorba állítva.", "RefreshQueued": "Frissítés sorba állítva.",
"RemoveFromCollection": "Gyűjteményből eltávolítani", "RemoveFromCollection": "Törlés a gyűjteményből",
"RemoveFromPlaylist": "Lejátszási listáról eltávolítani", "RemoveFromPlaylist": "Lejátszási listáról eltávolítani",
"RepeatEpisodes": "Epizódok ismétlése", "RepeatEpisodes": "Epizódok ismétlése",
"RequiredForAllRemoteConnections": "Minden távoli kapcsolathoz szükséges", "RequiredForAllRemoteConnections": "Minden távoli kapcsolathoz szükséges",
"RestartPleaseWaitMessage": "Kérlek várj, amíg a Jellyfin Szerver leáll és újraindul. Ez eltarthat egy-két percig.",
"ResumeAt": "Folytatás: {0}", "ResumeAt": "Folytatás: {0}",
"RunAtStartup": "Futtassa indításkor", "RunAtStartup": "Futtassa indításkor",
"SaveSubtitlesIntoMediaFolders": "Mentse a feliratokat a média mappákba", "SaveSubtitlesIntoMediaFolders": "Mentse a feliratokat a média mappákba",
@ -1324,7 +1323,6 @@
"HeaderFavoriteVideos": "Kedvenc Videók", "HeaderFavoriteVideos": "Kedvenc Videók",
"HeaderGuideProviders": "TV műsorújság Szolgáltatók", "HeaderGuideProviders": "TV műsorújság Szolgáltatók",
"HeaderHome": "Kezdőlap", "HeaderHome": "Kezdőlap",
"HeaderRestartingServer": "Szerver újraindítása",
"HeaderUpcomingOnTV": "Következő TV műsorok", "HeaderUpcomingOnTV": "Következő TV műsorok",
"ImportFavoriteChannelsHelp": "Ha engedélyezve van, csak a tuner eszközön kedvencként megjelölt csatornák kerülnek importálásra.", "ImportFavoriteChannelsHelp": "Ha engedélyezve van, csak a tuner eszközön kedvencként megjelölt csatornák kerülnek importálásra.",
"LabelAlbumArtHelp": "A használandó PN érték az albumborítók esetében, mely a upnp:albumArtURI dlna:profileID tulajdonságában szerepel. Néhány eszköz meghatározott értéket vár el, függetlenül a kép méretétől.", "LabelAlbumArtHelp": "A használandó PN érték az albumborítók esetében, mely a upnp:albumArtURI dlna:profileID tulajdonságában szerepel. Néhány eszköz meghatározott értéket vár el, függetlenül a kép méretétől.",
@ -1554,5 +1552,16 @@
"LabelSyncPlayPlaybackDiff": "Lejátszási időkülönbség:", "LabelSyncPlayPlaybackDiff": "Lejátszási időkülönbség:",
"LabelSyncPlayTimeOffset": "Időeltolás a szerverhez képest:", "LabelSyncPlayTimeOffset": "Időeltolás a szerverhez képest:",
"EnableDetailsBannerHelp": "Megjelenít egy banner képet a részletes információoldal tetején.", "EnableDetailsBannerHelp": "Megjelenít egy banner képet a részletes információoldal tetején.",
"EnableDetailsBanner": "Banner a részletes oldalon" "EnableDetailsBanner": "Banner a részletes oldalon",
"EnableBlurhashHelp": "A még betöltés alatt álló képek helyén egy elmosódott helyettesítő képet jelenít meg",
"EnableBlurhash": "Elmosódott helyettesítőképek engedélyezése",
"ShowMore": "Továbbiak megtekintése",
"ShowLess": "Kevesebb mutatása",
"ButtonCast": "Vetítés",
"ButtonSyncPlay": "SyncPlay",
"MessageNoGenresAvailable": "Engedélyezz néhány metaadat szolgáltatót, hogy műfaj adatokat tölthess le az internetről.",
"EnableFasterAnimationsHelp": "Gyorsabb animációk és áttűnések használata",
"EnableFasterAnimations": "Gyorsabb animációk",
"EnableDecodingColorDepth10Vp9": "10 bites hardveres dekódolás engedélyezése Vp9-hez",
"EnableDecodingColorDepth10Hevc": "10 bites hardveres dekódolás engedélyezése HEVC-hez"
} }

View file

@ -543,5 +543,9 @@
"LabelAllowServerAutoRestart": "Leyfa netþjóni að endurræsa sig sjálfkrafa til þess að uppfæra sig", "LabelAllowServerAutoRestart": "Leyfa netþjóni að endurræsa sig sjálfkrafa til þess að uppfæra sig",
"LabelAllowHWTranscoding": "Leyfa vélbúnaðarumkóðun", "LabelAllowHWTranscoding": "Leyfa vélbúnaðarumkóðun",
"Label3DFormat": "3D snið:", "Label3DFormat": "3D snið:",
"HeaderIdentification": "Auðkenning" "HeaderIdentification": "Auðkenning",
"ConfirmDeleteItems": "Ef þessum skrám er eytt verða þær fjarlægðar úr bæði stýrikerfinu og miðlasafninu. Ertu viss um að þú viljir halda áfram?",
"CommunityRating": "Mat samfélagsins",
"ButtonStart": "Byrja",
"BoxSet": "Kassasett"
} }

View file

@ -861,7 +861,7 @@
"MessageNoAvailablePlugins": "Nessun plugin disponibile.", "MessageNoAvailablePlugins": "Nessun plugin disponibile.",
"MessageNoMovieSuggestionsAvailable": "Nessun suggerimento di film attualmente disponibile. Iniziare a guardare e valutare i vostri film, e poi tornare per i suggerimenti.", "MessageNoMovieSuggestionsAvailable": "Nessun suggerimento di film attualmente disponibile. Iniziare a guardare e valutare i vostri film, e poi tornare per i suggerimenti.",
"MessageNoPluginsInstalled": "Non hai plugin installati.", "MessageNoPluginsInstalled": "Non hai plugin installati.",
"MessageNoTrailersFound": "Nessun trailer trovato. Installa il canale dei Trailer per migliorare la tua esperienza cinematografica importando una libreria di trailer da internet.", "MessageNoTrailersFound": "Installa il canale dei trailer per migliorare la tua esperienza cinematografica aggiungendo una libreria di trailer da internet.",
"MessageNothingHere": "Non c'è niente qui.", "MessageNothingHere": "Non c'è niente qui.",
"MessagePasswordResetForUsers": "I seguenti utenti havvo avuto le loro password resettate. Adesso possono accedere con i codici pin che sono stati utilizzati per eseguire il reset.", "MessagePasswordResetForUsers": "I seguenti utenti havvo avuto le loro password resettate. Adesso possono accedere con i codici pin che sono stati utilizzati per eseguire il reset.",
"MessagePlayAccessRestricted": "Le riproduzione di questi contenuti è bloccata. Per favore contatta il tuo amministratore del server per maggiori informazioni.", "MessagePlayAccessRestricted": "Le riproduzione di questi contenuti è bloccata. Per favore contatta il tuo amministratore del server per maggiori informazioni.",
@ -1105,7 +1105,6 @@
"ReplaceAllMetadata": "Sostituisci tutti i metadati", "ReplaceAllMetadata": "Sostituisci tutti i metadati",
"ReplaceExistingImages": "Sovrascrivi immagini esistenti", "ReplaceExistingImages": "Sovrascrivi immagini esistenti",
"RequiredForAllRemoteConnections": "Richiesto per tutte le connessioni remote", "RequiredForAllRemoteConnections": "Richiesto per tutte le connessioni remote",
"RestartPleaseWaitMessage": "Per piacere aspetta mentre Jellyfin Server si arresta e riavvia. Questo può richiedere un minuto o due.",
"ResumeAt": "Riprendi da {0}", "ResumeAt": "Riprendi da {0}",
"Rewind": "Riavvolgi", "Rewind": "Riavvolgi",
"RunAtStartup": "Esegui all'avvio", "RunAtStartup": "Esegui all'avvio",
@ -1314,7 +1313,6 @@
"HeaderFavoriteVideos": "Video Preferiti", "HeaderFavoriteVideos": "Video Preferiti",
"HeaderFetcherSettings": "Impostazioni del Fetcher", "HeaderFetcherSettings": "Impostazioni del Fetcher",
"HeaderImageOptions": "Opzioni Immagine", "HeaderImageOptions": "Opzioni Immagine",
"HeaderRestartingServer": "Riavvio Server",
"Home": "Home", "Home": "Home",
"LabelAlbum": "Album:", "LabelAlbum": "Album:",
"LabelAudio": "Audio", "LabelAudio": "Audio",
@ -1510,7 +1508,7 @@
"LabelChromecastVersion": "Versione Chromecast", "LabelChromecastVersion": "Versione Chromecast",
"LabelRequireHttpsHelp": "Se selezionata, il server reindirizzerà tutte le richieste HTTP a HTTPS. Vale solo se il sever è configurato per l'ascolto in HTTPS.", "LabelRequireHttpsHelp": "Se selezionata, il server reindirizzerà tutte le richieste HTTP a HTTPS. Vale solo se il sever è configurato per l'ascolto in HTTPS.",
"LabelRequireHttps": "Richiede HTTPS", "LabelRequireHttps": "Richiede HTTPS",
"LabelEnableHttpsHelp": "Abilita il server all'ascolto sulla porta HTTPS. Il certificato deve essere configurato e valido per l'abilitazione.", "LabelEnableHttpsHelp": "Abilita il server all'ascolto sulla porta HTTPS configurata. Il certificato deve essere configurato e valido per l'abilitazione.",
"LabelEnableHttps": "Abilita HTTPS", "LabelEnableHttps": "Abilita HTTPS",
"HeaderServerAddressSettings": "Configurazione Indirizzo Server", "HeaderServerAddressSettings": "Configurazione Indirizzo Server",
"HeaderRemoteAccessSettings": "Configurazione Access Remoto", "HeaderRemoteAccessSettings": "Configurazione Access Remoto",
@ -1519,7 +1517,7 @@
"SaveChanges": "Salva modifiche", "SaveChanges": "Salva modifiche",
"HeaderDVR": "DVR", "HeaderDVR": "DVR",
"LabelNightly": "Nightly", "LabelNightly": "Nightly",
"SyncPlayAccessHelp": "Scegli il livello d'accesso di questo utente a SyncPlay. SyncPlay ti permette di riprodurre contemporaneamente su diversi dispositivi.", "SyncPlayAccessHelp": "Selezionare il livello d'accesso di questo utente a SyncPlay che permetterà di riprodurre contemporaneamente su diversi dispositivi.",
"MessageSyncPlayErrorMedia": "Impossibile abilitare SyncPlay! Errore media.", "MessageSyncPlayErrorMedia": "Impossibile abilitare SyncPlay! Errore media.",
"MessageSyncPlayErrorMissingSession": "Impossibile abilitare SyncPlay! Sessione mancante.", "MessageSyncPlayErrorMissingSession": "Impossibile abilitare SyncPlay! Sessione mancante.",
"MessageSyncPlayErrorNoActivePlayer": "Nessun player attivo. SyncPlay è stato disabilitato.", "MessageSyncPlayErrorNoActivePlayer": "Nessun player attivo. SyncPlay è stato disabilitato.",
@ -1550,5 +1548,24 @@
"HeaderSyncPlayEnabled": "SyncPlay abilitato", "HeaderSyncPlayEnabled": "SyncPlay abilitato",
"HeaderSyncPlaySelectGroup": "Unisciti a un gruppo", "HeaderSyncPlaySelectGroup": "Unisciti a un gruppo",
"EnableDetailsBannerHelp": "Mostra il banner nella parte superiore della pagina di dettaglio dell'elemento.", "EnableDetailsBannerHelp": "Mostra il banner nella parte superiore della pagina di dettaglio dell'elemento.",
"EnableDetailsBanner": "Banner Dettagli" "EnableDetailsBanner": "Banner Dettagli",
"EnableBlurhashHelp": "Le immagini ancora da caricare saranno mostrate inizialmente sfocate",
"EnableBlurhash": "Abilita i segnaposto sfocati per le immagini",
"ShowMore": "Mostra di più",
"ShowLess": "Mostra meno",
"ButtonCast": "Cast",
"ButtonSyncPlay": "SyncPlay",
"EnableFasterAnimationsHelp": "Utilizza animazioni e transizioni veloci",
"EnableFasterAnimations": "Animazioni veloci",
"EnableDecodingColorDepth10Vp9": "Abilita la decodifica hardware 10-Bit per VP9",
"EnableDecodingColorDepth10Hevc": "Abilita la decodifica hardware 10-Bit per HEVC",
"TabRepositories": "Repository",
"MessageNoGenresAvailable": "Abilita un metadata provider per recuperare i generi da internet.",
"MessageAddRepository": "Cliccare sul bottone vicino all'header se si intende aggiungere un nuovo repository.",
"LabelRepositoryNameHelp": "Nome personalizzato per distinguere questo repository dagli altri sul tuo server.",
"LabelRepositoryName": "Nome Repository",
"LabelRepositoryUrlHelp": "URL del repository manifest che si vuole includere.",
"LabelRepositoryUrl": "URL Repository",
"HeaderNewRepository": "Nuovo Repository",
"MessageNoRepositories": "Nessun repository."
} }

View file

@ -435,7 +435,6 @@
"HeaderResponseProfile": "レスポンスプロファイル", "HeaderResponseProfile": "レスポンスプロファイル",
"HeaderResponseProfileHelp": "レスポンスプロファイルは、特定の種類のメディアを再生するときにデバイスに送信される情報をカスタマイズする方法を提供します。", "HeaderResponseProfileHelp": "レスポンスプロファイルは、特定の種類のメディアを再生するときにデバイスに送信される情報をカスタマイズする方法を提供します。",
"HeaderRestart": "リスタート", "HeaderRestart": "リスタート",
"HeaderRestartingServer": "サーバーの再起動",
"HeaderRevisionHistory": "更新履歴", "HeaderRevisionHistory": "更新履歴",
"HeaderRunningTasks": "実行中のタスク", "HeaderRunningTasks": "実行中のタスク",
"HeaderScenes": "シーン", "HeaderScenes": "シーン",

View file

@ -15,7 +15,7 @@
"Alerts": "Eskertýler", "Alerts": "Eskertýler",
"All": "Bári", "All": "Bári",
"AllChannels": "Barlyq arnalar", "AllChannels": "Barlyq arnalar",
"AllComplexFormats": "Barlyq kúrdeli pishimder (ASS, SSA, VOBSUB, PGS, SUB jáne IDX)", "AllComplexFormats": "Barlyq kúrdeli pishimder (ASS, SSA, VOBSUB, PGS, SUB, IDX j.t.b.)",
"AllEpisodes": "Barlyq bólimder", "AllEpisodes": "Barlyq bólimder",
"AllLanguages": "Barlyq tilder", "AllLanguages": "Barlyq tilder",
"AllLibraries": "Barlyq tasyǵyshhanalar", "AllLibraries": "Barlyq tasyǵyshhanalar",
@ -23,7 +23,7 @@
"AllowMediaConversion": "Tasyǵyshderekterdi túrlendirýge ruqsat etý", "AllowMediaConversion": "Tasyǵyshderekterdi túrlendirýge ruqsat etý",
"AllowMediaConversionHelp": "Tasyǵyshderekterdi túrlendirý ereksheligine qatynaý úshin jol berý nemese tıym salý.", "AllowMediaConversionHelp": "Tasyǵyshderekterdi túrlendirý ereksheligine qatynaý úshin jol berý nemese tıym salý.",
"AllowOnTheFlySubtitleExtraction": "Naqty ýaqytta sýbtıtrlerdi shyǵarýǵa ruqsat etý", "AllowOnTheFlySubtitleExtraction": "Naqty ýaqytta sýbtıtrlerdi shyǵarýǵa ruqsat etý",
"AllowOnTheFlySubtitleExtractionHelp": "Beıne qaıta kodtaýyna tıym salýǵa kómektesý úshin endirilgen sýbtıtrler beıneden shyǵarylyp, klıentterge kádimgi mátinben jetkizilý múmkin. Keıbir júıelerde buǵan uzaq ýaqyt ketýi jáne shyǵarý úrdisi barysynda beıne oınatý toqtatylýy múmkin. Tutynǵysh qurylǵyda olarǵa qoldaý kórsetilmegen kezde, beıne qaıta kodtalý arqyly endirilgen sýbtıtrler jazylýy úshin ony óshirińiz.", "AllowOnTheFlySubtitleExtractionHelp": "Beıne qaıta kodtaýyna tıym salýǵa kómektesý úshin, endirilgen sýbtıtrler beıneden shyǵarylyp, klıentterge kádimgi mátinben jetkizilý múmkin. Keıbir júıelerde buǵan uzaq ýaqyt ketýi jáne shyǵarý úrdisi barysynda beıne oınatý toqtatylýy múmkin. Tutynǵysh qurylǵyda olarǵa qoldaý kórsetilmegen kezde, beıne qaıta kodtalý arqyly endirilgen sýbtıtrler jazylýy úshin ony óshirińiz.",
"AllowRemoteAccess": "Osy Jellyfin Serverine syrtqy qosylymdar úshin ruqsat etý.", "AllowRemoteAccess": "Osy Jellyfin Serverine syrtqy qosylymdar úshin ruqsat etý.",
"AllowRemoteAccessHelp": "Eger jalaýsha alastalǵan bolsa, baryq syrtqy baılanystar qursaýlanady.", "AllowRemoteAccessHelp": "Eger jalaýsha alastalǵan bolsa, baryq syrtqy baılanystar qursaýlanady.",
"AllowedRemoteAddressesHelp": "Qashyqtan qosylýǵa ruqsat etiletin jeliler úshin útirlermen bólingen IP-mekenjaılarynyń tizbesi nemese IP/netmask jazbalar Eger bos qaldyrylsa, barlyq qashyqtaǵy mekenjaılarǵa ruqsat etiledi.", "AllowedRemoteAddressesHelp": "Qashyqtan qosylýǵa ruqsat etiletin jeliler úshin útirlermen bólingen IP-mekenjaılarynyń tizbesi nemese IP/netmask jazbalar Eger bos qaldyrylsa, barlyq qashyqtaǵy mekenjaılarǵa ruqsat etiledi.",
@ -32,7 +32,7 @@
"AnamorphicVideoNotSupported": "Anamorftyq beıne úshin qoldaý kórsetilmeıdi", "AnamorphicVideoNotSupported": "Anamorftyq beıne úshin qoldaý kórsetilmeıdi",
"AnyLanguage": "Qaı-qaısy til", "AnyLanguage": "Qaı-qaısy til",
"Anytime": "Árkezde", "Anytime": "Árkezde",
"AroundTime": "{0} aınalasynda", "AroundTime": "Shamamen",
"Art": "Oıý sýret", "Art": "Oıý sýret",
"Artists": "Oryndaýshylar", "Artists": "Oryndaýshylar",
"AsManyAsPossible": "Múmkindiginshe kóp", "AsManyAsPossible": "Múmkindiginshe kóp",
@ -49,13 +49,13 @@
"BirthLocation": "Týǵan orny", "BirthLocation": "Týǵan orny",
"BirthPlaceValue": "Týǵan orny: {0}", "BirthPlaceValue": "Týǵan orny: {0}",
"Blacklist": "Qara tizim", "Blacklist": "Qara tizim",
"BookLibraryHelp": "Dybystyq jáne mátindik kitaptar qoldaýda. {0}Kitapty ataý nusqaýlyǵyn{1} qarap shyǵý.", "BookLibraryHelp": "Dybystyq jáne mátindik kitaptar qoldaýda. {0} Kitapty ataý nusqaýlyǵyn {1} qarap shyǵý.",
"Books": "Kitaptar", "Books": "Kitaptar",
"Box": "Qorap", "Box": "Qorap",
"BoxRear": "Qorap arty", "BoxRear": "Qorap arty",
"Browse": "Sharlaý", "Browse": "Sharlaý",
"BrowsePluginCatalogMessage": "Qoljetimdi plagındermen tanysý úshin plagın tizimdemesin sholyńyz.", "BrowsePluginCatalogMessage": "Qoljetimdi plagındermen tanysý úshin plagın tizimdemesin sholyńyz.",
"BurnSubtitlesHelp": "Beıneni qaıta kodtaǵan kezde server sýbtıtrlerdi jazyýyn anyqtaıdy. Onan qashqaqtaý serverdiń ónimdiligin biraz jaqsartady. Sýretke negizdelgen pishimderdi (VOBSUB, PGS, SUB jáne IDX) jáne keıbir ASS nemese SSA sýbtıtrlerin jazý úshin Avtomattyny tańdańyz.", "BurnSubtitlesHelp": "Beıneni qaıta kodtaǵan kezde server sýbtıtrlerdi jazyýyn anyqtaıdy. Onan qashqaqtaý serverdiń ónimdiligin biraz jaqsartady. Sýretke negizdelgen pishimderdi (VOBSUB, PGS, SUB, IDX, j.t.b.) jáne keıbir ASS nemese SSA sýbtıtrlerin jazý úshin Avtomattyny tańdańyz.",
"ButtonAdd": "Ústeý", "ButtonAdd": "Ústeý",
"ButtonAddMediaLibrary": "Tasyǵyshhana ústeý", "ButtonAddMediaLibrary": "Tasyǵyshhana ústeý",
"ButtonAddScheduledTaskTrigger": "Trıger ústeý", "ButtonAddScheduledTaskTrigger": "Trıger ústeý",
@ -599,7 +599,7 @@
"LabelEmbedAlbumArtDidl": "DIDL ishine álbom sýretin endirý", "LabelEmbedAlbumArtDidl": "DIDL ishine álbom sýretin endirý",
"LabelEmbedAlbumArtDidlHelp": "Álbom sýretin alý úshin keıbir qurylǵylar osy ádisti qalaıdy. Basqalar úshin, osy opsıa qosylǵanda, oınatý sátsiz bolýy múmkin.", "LabelEmbedAlbumArtDidlHelp": "Álbom sýretin alý úshin keıbir qurylǵylar osy ádisti qalaıdy. Basqalar úshin, osy opsıa qosylǵanda, oınatý sátsiz bolýy múmkin.",
"LabelEnableAutomaticPortMap": "Avtomatty port salǵastyrýyn qosý", "LabelEnableAutomaticPortMap": "Avtomatty port salǵastyrýyn qosý",
"LabelEnableAutomaticPortMapHelp": "Jarıa portty jergilikti portqa UPnP arqyly avtomatty salǵastyrý áreketi. Bul keıbir jol josparlaǵysh ulgilerimen jumys istemeıtini múmkin. Ózgerister server qaıta iske qosylǵansha deıin qoldanylmaıdy.", "LabelEnableAutomaticPortMapHelp": "Jol josparlaǵysh jarıa portyn server jergilikti portyna UPnP arqyly avtomatty qaıta jiberý. Bul keıbir jol josparlaǵysh ulgilerimen ne jeli ishqyrylymdarymen jumys istemeıtini múmkin. Ózgerister server qaıta iske qosylǵansha deıin qoldanylmaıdy.",
"LabelEnableBlastAliveMessages": "Belsendilikti tekserý habarlaryn jaýdyrý", "LabelEnableBlastAliveMessages": "Belsendilikti tekserý habarlaryn jaýdyrý",
"LabelEnableBlastAliveMessagesHelp": "Eger jelidegi basqa UPnP qurylǵylarymen server nyq tabylmasa buny qosyńyz.", "LabelEnableBlastAliveMessagesHelp": "Eger jelidegi basqa UPnP qurylǵylarymen server nyq tabylmasa buny qosyńyz.",
"LabelEnableDlnaClientDiscoveryInterval": "Klıentterdi taýyp ashý aralyǵy, s", "LabelEnableDlnaClientDiscoveryInterval": "Klıentterdi taýyp ashý aralyǵy, s",
@ -722,7 +722,7 @@
"LabelNumberOfGuideDays": "Júktep alý úshin Telegıd derekterindegi kún sany:", "LabelNumberOfGuideDays": "Júktep alý úshin Telegıd derekterindegi kún sany:",
"LabelNumberOfGuideDaysHelp": "Kóbirek kúndi júktep alý Telegıd derekteriniń qundylyǵyn kóteredi de aldyn-ala josparlaý úshin qabiletin jáne kóbirek tizbeler kórýdi qamtamasyz etedi, biraq bul júkteý ýaqytyn da sozdyrady. Avtomatty tańdaý arna sanyna negizdelinedi.", "LabelNumberOfGuideDaysHelp": "Kóbirek kúndi júktep alý Telegıd derekteriniń qundylyǵyn kóteredi de aldyn-ala josparlaý úshin qabiletin jáne kóbirek tizbeler kórýdi qamtamasyz etedi, biraq bul júkteý ýaqytyn da sozdyrady. Avtomatty tańdaý arna sanyna negizdelinedi.",
"LabelOptionalNetworkPath": "(Mindetti emes) Ortaqtastyrylǵan jelilik qalta:", "LabelOptionalNetworkPath": "(Mindetti emes) Ortaqtastyrylǵan jelilik qalta:",
"LabelOptionalNetworkPathHelp": "Eger osy qalta óz jelińizde ortaqtastyrylsa, jelide ortaqtastyrylǵan joldy qamtamasyz etý basqa qurylǵylardaǵy Jellyfin-baǵdarlamalarǵa tasyǵysh faıldaryna tikeleı qol jetkizýge múmkindik beredi.", "LabelOptionalNetworkPathHelp": "Eger osy qalta óz jelińizde ortaqtastyrylsa, jelide ortaqtastyrylǵan joldy qamtamasyz etý basqa qurylǵylardaǵy Jellyfin-baǵdarlamalarǵa tasyǵysh faıldaryna tikeleı qol jetkizýge múmkindik beredi. Mysaly, {0} nemese {1}.",
"LabelOriginalAspectRatio": "Bastapqy pishimdik araqatynasy:", "LabelOriginalAspectRatio": "Bastapqy pishimdik araqatynasy:",
"LabelOriginalTitle": "Bastapqy ataýy:", "LabelOriginalTitle": "Bastapqy ataýy:",
"LabelOverview": "Jalpy sholý:", "LabelOverview": "Jalpy sholý:",
@ -1089,7 +1089,7 @@
"OptionMissingEpisode": "Joq bólimder", "OptionMissingEpisode": "Joq bólimder",
"OptionMonday": "dúısenbi", "OptionMonday": "dúısenbi",
"OptionNameSort": "Aty", "OptionNameSort": "Aty",
"OptionNew": "Jańa...", "OptionNew": "Jańa",
"OptionNone": "Eshqandaı", "OptionNone": "Eshqandaı",
"OptionOnAppStartup": "Qoldanba iske qosylǵanda", "OptionOnAppStartup": "Qoldanba iske qosylǵanda",
"OptionOnInterval": "Aralyqta", "OptionOnInterval": "Aralyqta",
@ -1205,7 +1205,6 @@
"ReplaceAllMetadata": "Barlyq metaderekterdi aýystyrý", "ReplaceAllMetadata": "Barlyq metaderekterdi aýystyrý",
"ReplaceExistingImages": "Bar sýretterdi aýystyrý", "ReplaceExistingImages": "Bar sýretterdi aýystyrý",
"RequiredForAllRemoteConnections": "Barlyq qashyqtaǵy qosylymdar úshin qajet", "RequiredForAllRemoteConnections": "Barlyq qashyqtaǵy qosylymdar úshin qajet",
"RestartPleaseWaitMessage": "Jellyfin Server jumysy aıaqtalyp, qaıta iske qosylǵansha deıin kúte turyńyz. Bul bir-eki mınótqa sozylýy múmkin.",
"ResumeAt": "{0} bastap jalǵastyrý", "ResumeAt": "{0} bastap jalǵastyrý",
"Rewind": "Shegindirý", "Rewind": "Shegindirý",
"RunAtStartup": "Iske qosylýdan bastap oryndaý", "RunAtStartup": "Iske qosylýdan bastap oryndaý",
@ -1411,7 +1410,6 @@
"HeaderFavoriteSongs": "Tańdaýly áýender", "HeaderFavoriteSongs": "Tańdaýly áýender",
"HeaderFavoriteVideos": "Tandaýly beıneler", "HeaderFavoriteVideos": "Tandaýly beıneler",
"HeaderHome": "Basqy", "HeaderHome": "Basqy",
"HeaderRestartingServer": "Serverdi qaıta iske qosý",
"LabelAuthProvider": "Túpnusqalyq rastamasyn jetkizýshi:", "LabelAuthProvider": "Túpnusqalyq rastamasyn jetkizýshi:",
"LabelPasswordResetProvider": "Paróldi ysyrý jetkizýshisi:", "LabelPasswordResetProvider": "Paróldi ysyrý jetkizýshisi:",
"LabelServerName": "Server aty:", "LabelServerName": "Server aty:",
@ -1453,7 +1451,7 @@
"SubtitleOffset": "Sýbtıtrler yǵysýy", "SubtitleOffset": "Sýbtıtrler yǵysýy",
"TabNetworking": "Jelilik jumys", "TabNetworking": "Jelilik jumys",
"HeaderFavoriteBooks": "Tańdaýly kitaptar", "HeaderFavoriteBooks": "Tańdaýly kitaptar",
"LabelBaseUrlHelp": "Serverge neǵurlym erekshe URL mekenjaıynan kirý úshin osynda jeke ishki katalogty qosýǵa bolady.", "LabelBaseUrlHelp": "Serverdiń URL-mekenjaıyna jeke ishki katalogty qosady. Mysaly: <code>http://example.com/<b>&lt;baseurl&gt;</b></code>",
"MoreMediaInfo": "Tasyǵyshderekter týraly", "MoreMediaInfo": "Tasyǵyshderekter týraly",
"LabelVideoCodec": "Beınelik kodek:", "LabelVideoCodec": "Beınelik kodek:",
"LabelVideoBitrate": "Beıne qarqyny:", "LabelVideoBitrate": "Beıne qarqyny:",
@ -1522,5 +1520,28 @@
"ButtonToggleContextMenu": "Kúbirek", "ButtonToggleContextMenu": "Kúbirek",
"BoxSet": "Jıyntyq", "BoxSet": "Jıyntyq",
"Artist": "Ornatýshy", "Artist": "Ornatýshy",
"AlbumArtist": "Álbom ornatýshysy" "AlbumArtist": "Álbom ornatýshysy",
"MessageSyncPlayDisabled": "SyncPlay óshirýli.",
"MessageSyncPlayEnabled": "SyncPlay qosýly.",
"LabelSyncPlayAccess": "SyncPlay qatynasy",
"LabelSyncPlayLeaveGroupDescription": "SyncPlay óshirý",
"LabelSyncPlayLeaveGroup": "Toptan shyǵý",
"LabelSyncPlayNewGroupDescription": "Jańa topty jasaý",
"LabelSyncPlayNewGroup": "Jańa top",
"LabelSyncPlaySyncMethod": "Úndestirý ádisi:",
"LabelSyncPlayPlaybackDiff": "Oınatý ýaqytynyń aıyrmashylyǵy:",
"MillisecondsUnit": "ms",
"LabelSyncPlayTimeOffset": "Server ýaqtynan aýytqýy:",
"LabelRequireHttps": "HTTPS qajet etedi",
"LabelNightly": "Túngi",
"LabelStable": "Turaqty",
"LabelChromecastVersion": "Chromecast nusqasy",
"LabelEnableHttps": "HTTPS qosý",
"HeaderSyncPlayEnabled": "SyncPlay qosýly",
"HeaderSyncPlaySelectGroup": "Topty qosý",
"HeaderServerAddressSettings": "Server mekenjaıy parametrleri",
"HeaderRemoteAccessSettings": "Qashyqtan qatynaý parametrleri",
"HeaderHttpsSettings": "HTTPS parametrleri",
"HeaderFavoritePlaylists": "Tańdaýly oınatý tizimder",
"HeaderDVR": "DVR"
} }

View file

@ -1093,7 +1093,6 @@
"HeaderTuners": "튜너", "HeaderTuners": "튜너",
"HeaderStopRecording": "녹화 중지", "HeaderStopRecording": "녹화 중지",
"HeaderStartNow": "지금 시작", "HeaderStartNow": "지금 시작",
"HeaderRestartingServer": "서버 재시작",
"HeaderPhotoAlbums": "사진 앨범", "HeaderPhotoAlbums": "사진 앨범",
"HeaderNewDevices": "새 장치", "HeaderNewDevices": "새 장치",
"HeaderMyDevice": "내 장치", "HeaderMyDevice": "내 장치",
@ -1267,7 +1266,6 @@
"RefreshQueued": "새로 고침 대기 중", "RefreshQueued": "새로 고침 대기 중",
"NoPluginConfigurationMessage": "이 플러그인은 설정할 것이 없습니다.", "NoPluginConfigurationMessage": "이 플러그인은 설정할 것이 없습니다.",
"OptionExtractChapterImage": "챕터 이미지 추출 활성화", "OptionExtractChapterImage": "챕터 이미지 추출 활성화",
"RestartPleaseWaitMessage": "Jellyfin 서버가 종료되었다가 다시 시작될 때까지 기다리십시오. 1-2분 정도 걸릴 수 있습니다.",
"Up": "위", "Up": "위",
"EasyPasswordHelp": "쉬운 핀 코드는 지원되는 기기에서 오프라인 접근을 할 때나 내부 내트워크 로그인에서 사용됩니다.", "EasyPasswordHelp": "쉬운 핀 코드는 지원되는 기기에서 오프라인 접근을 할 때나 내부 내트워크 로그인에서 사용됩니다.",
"CriticRating": "평점", "CriticRating": "평점",

View file

@ -780,7 +780,6 @@
"LabelAllowHWTranscoding": "Leisti naudoti aparatinę įrangą perkodavimui", "LabelAllowHWTranscoding": "Leisti naudoti aparatinę įrangą perkodavimui",
"LabelAllowedRemoteAddresses": "Nuotolinis IP adresų filtras:", "LabelAllowedRemoteAddresses": "Nuotolinis IP adresų filtras:",
"LabelAllowedRemoteAddressesMode": "Nuotolinio IP adresų filtro režimas:", "LabelAllowedRemoteAddressesMode": "Nuotolinio IP adresų filtro režimas:",
"HeaderRestartingServer": "Serveris perkraunamas",
"HeaderLoginFailure": "Prisijungimo klaida", "HeaderLoginFailure": "Prisijungimo klaida",
"Hide": "Paslėpti", "Hide": "Paslėpti",
"LabelAll": "Visi", "LabelAll": "Visi",

View file

@ -266,7 +266,6 @@
"HeaderSeasons": "Sezonas", "HeaderSeasons": "Sezonas",
"HeaderSchedule": "Grafiks", "HeaderSchedule": "Grafiks",
"HeaderRevisionHistory": "Revīziju Vēsture", "HeaderRevisionHistory": "Revīziju Vēsture",
"HeaderRestartingServer": "Restartē Serveri",
"HeaderRestart": "Restartēt", "HeaderRestart": "Restartēt",
"HeaderRemoveMediaLocation": "Noņemt Multvides Atrašanās Vietu", "HeaderRemoveMediaLocation": "Noņemt Multvides Atrašanās Vietu",
"HeaderRemoveMediaFolder": "Noņemt Multvides Mapi", "HeaderRemoveMediaFolder": "Noņemt Multvides Mapi",

View file

@ -21,7 +21,7 @@
"AllowRemoteAccess": "Tillat eksterne tilkoblinger til denne Jellyfin-serveren.", "AllowRemoteAccess": "Tillat eksterne tilkoblinger til denne Jellyfin-serveren.",
"AllowRemoteAccessHelp": "Alle tilkoblinger via nettverk vil blokkeres dersom du ikke aktiverer denne innstillingen.", "AllowRemoteAccessHelp": "Alle tilkoblinger via nettverk vil blokkeres dersom du ikke aktiverer denne innstillingen.",
"Anytime": "Når som helst", "Anytime": "Når som helst",
"AroundTime": "Rundt {0}", "AroundTime": "Rundt",
"Artists": "Artister", "Artists": "Artister",
"AsManyAsPossible": "Så mange som mulig", "AsManyAsPossible": "Så mange som mulig",
"AspectRatio": "Størrelsesforhold", "AspectRatio": "Størrelsesforhold",
@ -31,7 +31,7 @@
"BirthDateValue": "Født: {0}", "BirthDateValue": "Født: {0}",
"BirthLocation": "Fødested", "BirthLocation": "Fødested",
"BirthPlaceValue": "Fødested: {0}", "BirthPlaceValue": "Fødested: {0}",
"BookLibraryHelp": "Lyd- og tekstbøker støttes. Se igjennom {0}navneguiden for bøker{1}.", "BookLibraryHelp": "Lyd- og tekstbøker støttes. Se igjennom {0} navneguiden for bøker {1}.",
"Books": "Bøker", "Books": "Bøker",
"BrowsePluginCatalogMessage": "Bla i tilleggskatalogen vår for å se tilgjengelige applikasjonstillegg.", "BrowsePluginCatalogMessage": "Bla i tilleggskatalogen vår for å se tilgjengelige applikasjonstillegg.",
"ButtonAdd": "Legg til", "ButtonAdd": "Legg til",
@ -457,7 +457,7 @@
"LabelEmbedAlbumArtDidl": "Bygg inn albumbilder i DIDL", "LabelEmbedAlbumArtDidl": "Bygg inn albumbilder i DIDL",
"LabelEmbedAlbumArtDidlHelp": "Noen enheter foretrekker denne metoden for å motta albumomslag. Andre vil kunne få problemer med avspilling hvis dette alternativet er aktivert.", "LabelEmbedAlbumArtDidlHelp": "Noen enheter foretrekker denne metoden for å motta albumomslag. Andre vil kunne få problemer med avspilling hvis dette alternativet er aktivert.",
"LabelEnableAutomaticPortMap": "Aktiver automatisk portmapping", "LabelEnableAutomaticPortMap": "Aktiver automatisk portmapping",
"LabelEnableAutomaticPortMapHelp": "Forsøk å automatisk koble den eksterne porten til den lokale porten via UPnP. Dette fungerer ikke med alle rutere. Endringer trer ikke kraft før serveren startes på nytt.", "LabelEnableAutomaticPortMapHelp": "Automatisk koble eksterne porter på ruteren til lokale porter på serveren din via UPnP. Dette fungerer ikke med alle rutere eller nettverkskonfigurasjoner. Endringer trer ikke kraft før serveren startes på nytt.",
"LabelEnableBlastAliveMessages": "Kringkast keepalive-meldinger", "LabelEnableBlastAliveMessages": "Kringkast keepalive-meldinger",
"LabelEnableBlastAliveMessagesHelp": "Aktiver hvis serveren ikke blir konsekvent oppdaget av andre UPnP-enheter på nettverket ditt.", "LabelEnableBlastAliveMessagesHelp": "Aktiver hvis serveren ikke blir konsekvent oppdaget av andre UPnP-enheter på nettverket ditt.",
"LabelEnableDlnaClientDiscoveryInterval": "Oppdateringsintervall for klient (i sekunder)", "LabelEnableDlnaClientDiscoveryInterval": "Oppdateringsintervall for klient (i sekunder)",
@ -566,7 +566,7 @@
"LabelNumberOfGuideDays": "Antall dager med TV-guidedata som skal lastes ned:", "LabelNumberOfGuideDays": "Antall dager med TV-guidedata som skal lastes ned:",
"LabelNumberOfGuideDaysHelp": "Nedlasting av TV-guide for flere dager gir muligheten for å planlegge lenger i forveien og for å se flere listinger, men vil også føre til at nedlastningen tar lenger tid. Auto vil velge basert på antall kanaler.", "LabelNumberOfGuideDaysHelp": "Nedlasting av TV-guide for flere dager gir muligheten for å planlegge lenger i forveien og for å se flere listinger, men vil også føre til at nedlastningen tar lenger tid. Auto vil velge basert på antall kanaler.",
"LabelOptionalNetworkPath": "(Valgfritt) Delt nettverksmappe:", "LabelOptionalNetworkPath": "(Valgfritt) Delt nettverksmappe:",
"LabelOptionalNetworkPathHelp": "Hvis denne mappen er delt på nettverket, vil Jellyfin-apper på andre enheter kunne få tilgang til mediefilene direkte dersom du spesifiserer nettverksbanen her.", "LabelOptionalNetworkPathHelp": "Hvis denne mappen er delt på nettverket, vil Jellyfin-apper på andre enheter kunne få tilgang til mediefilene direkte dersom du spesifiserer nettverksbanen her. For eksempel, {0} eller {1}.",
"LabelOriginalAspectRatio": "Originalt sideforhold:", "LabelOriginalAspectRatio": "Originalt sideforhold:",
"LabelOriginalTitle": "Original tittel:", "LabelOriginalTitle": "Original tittel:",
"LabelOverview": "Oversikt:", "LabelOverview": "Oversikt:",
@ -850,7 +850,7 @@
"OptionMissingEpisode": "Manglende episoder", "OptionMissingEpisode": "Manglende episoder",
"OptionMonday": "Mandag", "OptionMonday": "Mandag",
"OptionNameSort": "Navn", "OptionNameSort": "Navn",
"OptionNew": "Ny...", "OptionNew": "Ny",
"OptionNone": "Ingen", "OptionNone": "Ingen",
"OptionOnAppStartup": "Ved applikasjonsoppstart", "OptionOnAppStartup": "Ved applikasjonsoppstart",
"OptionOnInterval": "Per intervall", "OptionOnInterval": "Per intervall",
@ -891,9 +891,9 @@
"OptionWeekly": "Ukentlig", "OptionWeekly": "Ukentlig",
"OriginalAirDateValue": "Original utgivelsedato: {0}", "OriginalAirDateValue": "Original utgivelsedato: {0}",
"Overview": "Oversikt", "Overview": "Oversikt",
"PackageInstallCancelled": "{0}-installasjon avbrutt.", "PackageInstallCancelled": "Installasjon av {0} (versjon {1}) avbrutt.",
"PackageInstallCompleted": "{0}-installering fullført.", "PackageInstallCompleted": "Installasjon av {0} (versjon {1}) fullført.",
"PackageInstallFailed": "{0}-installasjon feilet.", "PackageInstallFailed": "Installasjon av {0} (versjon {1}) feilet.",
"ParentalRating": "Aldersgrense", "ParentalRating": "Aldersgrense",
"PasswordMatchError": "Passord og passordbekreftelsen må matche.", "PasswordMatchError": "Passord og passordbekreftelsen må matche.",
"PasswordResetComplete": "Passordet har blitt tilbakestilt.", "PasswordResetComplete": "Passordet har blitt tilbakestilt.",
@ -1124,14 +1124,14 @@
"Art": "Omslagsbilde", "Art": "Omslagsbilde",
"AnyLanguage": "Hvilket som helst språk", "AnyLanguage": "Hvilket som helst språk",
"AlwaysPlaySubtitlesHelp": "Undertekster som matcher foretrukket språk vil bli tatt i bruk uansett språk på lydspor.", "AlwaysPlaySubtitlesHelp": "Undertekster som matcher foretrukket språk vil bli tatt i bruk uansett språk på lydspor.",
"AlwaysPlaySubtitles": "Bruk alltid undertekster", "AlwaysPlaySubtitles": "Bruk alltid",
"AllowedRemoteAddressesHelp": "Kommaseparert liste over IP-addresser eller IP/nettverksmaske for nettverk som er godkjent for eksterne tilkoblinger. Dersom feltet står tomt er alle adresser tillatt.", "AllowedRemoteAddressesHelp": "Kommaseparert liste over IP-addresser eller IP/nettverksmaske for nettverk som er godkjent for eksterne tilkoblinger. Dersom feltet står tomt er alle adresser tillatt.",
"AllowOnTheFlySubtitleExtractionHelp": "Integrerte undertekster kan hentes ut fra videoer og bli levert til klienter i klartekst for å unngå omkoding av video. På noen systemer kan dette ta lang tid og føre til opphold i avspillingen samtidig som prosessen pågår. Deaktiver innstillingen for å brenne inn underteksten i videoen ved hjelp av omkoding når undertekstformatet ikke er støttet av klienten.", "AllowOnTheFlySubtitleExtractionHelp": "Integrerte undertekster kan hentes ut fra videoer og bli levert til klienter i klartekst for å unngå omkoding av video. På noen systemer kan dette ta lang tid og føre til opphold i avspillingen samtidig som prosessen pågår. Deaktiver innstillingen for å brenne inn underteksten i videoen ved hjelp av omkoding når undertekstformatet ikke er støttet av klienten.",
"AllowOnTheFlySubtitleExtraction": "Tillat at undertekster hentes ut fortløpende", "AllowOnTheFlySubtitleExtraction": "Tillat at undertekster hentes ut fortløpende",
"AllLanguages": "Alle språk", "AllLanguages": "Alle språk",
"AllComplexFormats": "Alle avanserte formater (ASS, SSA, VOBSUB, PGS, SUB, IDX)", "AllComplexFormats": "Alle avanserte formater (ASS, SSA, VOBSUB, PGS, SUB, IDX, ...)",
"AccessRestrictedTryAgainLater": "Tilgang er for øyeblikket begrenset. Vennligst prøv igjen senere.", "AccessRestrictedTryAgainLater": "Tilgang er for øyeblikket begrenset. Vennligst prøv igjen senere.",
"BurnSubtitlesHelp": "Angir om serveren skal brenne inn teksting når videoer konverteres, basert på tekstformatet. Ytelsen på serveren vil forbedres dersom tekstingen ikke brennes inn. Velg Automatisk for å brenne inn bildebaserte formater (VOBSUB, PGS, SUB, IDX) og enkelte ASS eller SSA-undertekster.", "BurnSubtitlesHelp": "Angir om serveren skal brenne inn teksting når videoer konverteres, basert på tekstformatet. Ytelsen på serveren vil forbedres dersom tekstingen ikke brennes inn. Velg Automatisk for å brenne inn bildebaserte formater (VOBSUB, PGS, SUB, IDX, ...) og enkelte ASS eller SSA-undertekster.",
"General": "Generelt", "General": "Generelt",
"ChangingMetadataImageSettingsNewContent": "Endringer gjort i innstillinger for metadata eller omslagsbilder vil kun gjelde nytt innhold i biblioteket ditt. For å endre eksisterende innhold, må du oppdatere dets metadata manuelt.", "ChangingMetadataImageSettingsNewContent": "Endringer gjort i innstillinger for metadata eller omslagsbilder vil kun gjelde nytt innhold i biblioteket ditt. For å endre eksisterende innhold, må du oppdatere dets metadata manuelt.",
"DefaultSubtitlesHelp": "Undertekster lastes inn basert på flaggene \"standard\" og \"tvungen\" i videoens integrerte metadata. Språkpreferanser tas høyde for dersom flere valg er tilgjengelig.", "DefaultSubtitlesHelp": "Undertekster lastes inn basert på flaggene \"standard\" og \"tvungen\" i videoens integrerte metadata. Språkpreferanser tas høyde for dersom flere valg er tilgjengelig.",
@ -1226,7 +1226,6 @@
"HeaderKodiMetadataHelp": "For å aktivere eller deaktivere NFO-metadata, gå til bibliotekoppsettet i Jellyfin og finn valgene for lagring av metadata.", "HeaderKodiMetadataHelp": "For å aktivere eller deaktivere NFO-metadata, gå til bibliotekoppsettet i Jellyfin og finn valgene for lagring av metadata.",
"OptionArtist": "Artist", "OptionArtist": "Artist",
"HeaderPhotoAlbums": "Fotoalbum", "HeaderPhotoAlbums": "Fotoalbum",
"HeaderRestartingServer": "Serveren starter på nytt",
"HeaderSecondsValue": "{0} sekunder", "HeaderSecondsValue": "{0} sekunder",
"LabelAllowedRemoteAddresses": "Filter for eksterne IP-adresser:", "LabelAllowedRemoteAddresses": "Filter for eksterne IP-adresser:",
"LabelAllowedRemoteAddressesMode": "Modus for filter for eksterne IP-adresser:", "LabelAllowedRemoteAddressesMode": "Modus for filter for eksterne IP-adresser:",
@ -1261,7 +1260,7 @@
"LaunchWebAppOnStartupHelp": "Åpne web-klienten i din standard nettleser når serveren starter opp. Dette vil ikke skje ved omstart av serveren.", "LaunchWebAppOnStartupHelp": "Åpne web-klienten i din standard nettleser når serveren starter opp. Dette vil ikke skje ved omstart av serveren.",
"LearnHowYouCanContribute": "Finn ut hvordan du kan bidra.", "LearnHowYouCanContribute": "Finn ut hvordan du kan bidra.",
"SeriesYearToPresent": "{0} - Nå", "SeriesYearToPresent": "{0} - Nå",
"LabelBaseUrlHelp": "Du kan legge til din egen undermappe her for å få tilgang til serveren fra en mer unik URL.", "LabelBaseUrlHelp": "Legger til en egendefinert undermappe til serverens nettadresse. For eksempel: <code>http://example.com/<b>&lt;baseurl&gt;</b></code>",
"LabelFont": "Skrifttype:", "LabelFont": "Skrifttype:",
"LabelMatchType": "Matchtype:", "LabelMatchType": "Matchtype:",
"OptionPosterCard": "Plakatkort", "OptionPosterCard": "Plakatkort",
@ -1378,12 +1377,12 @@
"MusicAlbum": "Musikkalbum", "MusicAlbum": "Musikkalbum",
"MusicArtist": "Musikkartist", "MusicArtist": "Musikkartist",
"Next": "Neste", "Next": "Neste",
"NoSubtitles": "Ingen teksting", "NoSubtitles": "Ingen",
"NoSubtitlesHelp": "Undertekster vil ikke lastes inn som standard. De kan fortsatt aktiveres manuelt under avspilling.", "NoSubtitlesHelp": "Undertekster vil ikke lastes inn som standard. De kan fortsatt aktiveres manuelt under avspilling.",
"Normal": "Normal", "Normal": "Normal",
"OnlyForcedSubtitles": "Kun tvungen teksting", "OnlyForcedSubtitles": "Kun tvungen",
"OnlyForcedSubtitlesHelp": "Bare last inn undertekster merket som tvungen.", "OnlyForcedSubtitlesHelp": "Bare last inn undertekster merket som tvungen.",
"OnlyImageFormats": "Bare bildeformater (VOBSUB, PGS, SUB, osv.)", "OnlyImageFormats": "Bare bildeformater (VOBSUB, PGS, SUB)",
"OptionAllowMediaPlaybackTranscodingHelp": "Begrensning av tilgang til omkoding kan føre til avspillingsfeil i Jellyfin-apper grunnet at medieformater ikke støtes.", "OptionAllowMediaPlaybackTranscodingHelp": "Begrensning av tilgang til omkoding kan føre til avspillingsfeil i Jellyfin-apper grunnet at medieformater ikke støtes.",
"OptionAllowSyncTranscoding": "Tillat nedlastning og synkronisering av media som krever omkoding", "OptionAllowSyncTranscoding": "Tillat nedlastning og synkronisering av media som krever omkoding",
"OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)",
@ -1407,7 +1406,6 @@
"Previous": "Forrige", "Previous": "Forrige",
"Primary": "Primær", "Primary": "Primær",
"RequiredForAllRemoteConnections": "Påkrevd for alle eksterne tilkoblinger", "RequiredForAllRemoteConnections": "Påkrevd for alle eksterne tilkoblinger",
"RestartPleaseWaitMessage": "Vennligst vent mens Jellyfin-serveren skrus av og restartes. Dette kan ta et minutt eller to.",
"RunAtStartup": "Kjør ved oppstart", "RunAtStartup": "Kjør ved oppstart",
"SaveSubtitlesIntoMediaFolders": "Lagre undertekster i mediemapper", "SaveSubtitlesIntoMediaFolders": "Lagre undertekster i mediemapper",
"SaveSubtitlesIntoMediaFoldersHelp": "Lagring av undertekster ved siden av videofilene vil gjøre det lettere å behandle dem.", "SaveSubtitlesIntoMediaFoldersHelp": "Lagring av undertekster ved siden av videofilene vil gjøre det lettere å behandle dem.",
@ -1463,7 +1461,7 @@
"OptionForceRemoteSourceTranscoding": "Tvunget omkoding av eksterne media-kilder (som Direkte-TV)", "OptionForceRemoteSourceTranscoding": "Tvunget omkoding av eksterne media-kilder (som Direkte-TV)",
"NoCreatedLibraries": "Det virker som at du ikke har opprettet noen biblioteker ennå. {0}Vil du opprette et nå?{1}", "NoCreatedLibraries": "Det virker som at du ikke har opprettet noen biblioteker ennå. {0}Vil du opprette et nå?{1}",
"AskAdminToCreateLibrary": "Spør en administrator om å lage et bibliotek.", "AskAdminToCreateLibrary": "Spør en administrator om å lage et bibliotek.",
"PlaybackErrorNoCompatibleStream": "Det oppstod et problem med klientprofilering, og serveren sender ikke et kompatibelt medieformat.", "PlaybackErrorNoCompatibleStream": "Denne klienten er ikke kompatibel med mediet, og serveren sender ikke et kompatibelt medieformat.",
"AllowFfmpegThrottlingHelp": "Når en omkoding eller ompakking kommer langt nok foran den nåværende avspillingsposisjonen stoppes prosessen slik at den bruker mindre ressurser. Dette er mest nyttig når du sjeldent bytter posisjon i videoen. Slå av dette hvis du opplever problemer med avspilling.", "AllowFfmpegThrottlingHelp": "Når en omkoding eller ompakking kommer langt nok foran den nåværende avspillingsposisjonen stoppes prosessen slik at den bruker mindre ressurser. Dette er mest nyttig når du sjeldent bytter posisjon i videoen. Slå av dette hvis du opplever problemer med avspilling.",
"AllowFfmpegThrottling": "Begrens hastighet på omkoding", "AllowFfmpegThrottling": "Begrens hastighet på omkoding",
"Episode": "Episode", "Episode": "Episode",
@ -1478,5 +1476,81 @@
"HeaderFavoritePlaylists": "Favorittspillelister", "HeaderFavoritePlaylists": "Favorittspillelister",
"DeinterlaceMethodHelp": "Velg deinterlacing metoden som skal bli brukt når man transkoder interlaced innhold.", "DeinterlaceMethodHelp": "Velg deinterlacing metoden som skal bli brukt når man transkoder interlaced innhold.",
"ButtonTogglePlaylist": "Spilleliste", "ButtonTogglePlaylist": "Spilleliste",
"ButtonToggleContextMenu": "Mer" "ButtonToggleContextMenu": "Mer",
"EnableBlurhashHelp": "Bilder som fortsatt lastes inn vil vises med en tåkete plassholder",
"EnableBlurhash": "Aktiver tåkete plassholdere for bilder",
"UnsupportedPlayback": "Jellyfin kan ikke dekryptere innhold beskyttet med DRM, men alt innhold vil bli forsøkt uansett, inkludert beskyttede titler. Noen filer kan fremstå helt svarte grunnet kryptering eller andre ikke støttede funksjoner, som interaktive titler.",
"OnApplicationStartup": "Ved oppstart av applikasjonen",
"EveryXHours": "Hver {0}. time",
"EveryHour": "Hver time",
"EveryXMinutes": "Hvert {0}. minutt",
"OnWakeFromSleep": "Ved oppvåkning fra hvilemodus",
"WeeklyAt": "{0}er kl. {1}",
"DailyAt": "Daglig kl. {0}",
"LastSeen": "Sist sett {0}",
"PersonRole": "som {0}",
"ListPaging": "{0}-{1} av {2}",
"WriteAccessRequired": "Jellyfin Server krever skrivetilgang til denne mappen. Vennligst påse at skrivetilgang er gitt og prøv igjen.",
"PathNotFound": "Banen ble ikke funnet. Påse at banen er gyldig og prøv igjen.",
"YadifBob": "YADIF Bob",
"Yadif": "YADIF",
"Track": "Spor",
"TabDVR": "Opptak",
"SyncPlayAccessHelp": "Velg tilgangsnivået denne brukeren skal ha til SyncPlay-funksjonen. SyncPlay muliggjør synkronisert avspilling med andre enheter.",
"Filter": "Filter",
"New": "Ny",
"ShowMore": "Vis mer",
"ShowLess": "Vis mindre",
"Season": "Sesong",
"SaveChanges": "Lagre endringer",
"ReleaseGroup": "Utgivelsesgruppe",
"PreferEmbeddedEpisodeInfosOverFileNames": "Foretrekk innebygd episodeinformasjon framfor filnavn",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Dette bruker episodeinformasjonen fra innebygd metadata hvis tilgjengelig.",
"Person": "Person",
"OtherArtist": "Annen artist",
"Movie": "Film",
"MessageSyncPlayErrorMedia": "Kunne ikke aktivere SyncPlay! Mediefeil.",
"MessageSyncPlayErrorMissingSession": "Kunne ikke aktivere SyncPlay! Mangler sesjon.",
"MessageSyncPlayErrorNoActivePlayer": "Ingen aktiv avspiller funnet. SyncPlay har blitt deaktivert.",
"MessageSyncPlayErrorAccessingGroups": "En feil oppstod under lasting av gruppelisten.",
"MessageSyncPlayLibraryAccessDenied": "Tilgang til dette innholdet er begrenset.",
"MessageSyncPlayJoinGroupDenied": "Tillatelse kreves for å bruke SyncPlay.",
"MessageSyncPlayCreateGroupDenied": "Tillatelse kreves for å opprette en gruppe.",
"MessageSyncPlayGroupDoesNotExist": "Kunne ikke bli med i gruppen fordi den ikke finnes.",
"MessageSyncPlayPlaybackPermissionRequired": "Tillatelse for avspilling kreves.",
"MessageSyncPlayNoGroupsAvailable": "Ingen grupper tilgjengelige. Begynn å spill noe først.",
"MessageSyncPlayGroupWait": "<b>{0}</b> bufrer...",
"MessageSyncPlayUserLeft": "<b>{0}</b> har forlatt gruppen.",
"MessageSyncPlayUserJoined": "<b>{0}</b> har blitt med i gruppen.",
"MessageSyncPlayDisabled": "SyncPlay deaktivert.",
"MessageSyncPlayEnabled": "SyncPlay aktivert.",
"MessageUnauthorizedUser": "Du har ikke autorisert tilgang til serveren akkurat nå. Vennligst kontakt serveradministratoren din for mer informasjon.",
"LabelSyncPlayAccess": "SyncPlay-tilgang",
"LabelSyncPlayAccessNone": "Deaktivert for denne brukeren",
"LabelSyncPlayAccessJoinGroups": "Tillat brukeren å bli med i grupper",
"LabelSyncPlayAccessCreateAndJoinGroups": "Tillat brukeren å lage og bli med i grupper",
"LabelSyncPlayLeaveGroupDescription": "Deaktiver SyncPlay",
"LabelSyncPlayLeaveGroup": "Forlat gruppe",
"LabelSyncPlayNewGroupDescription": "Lag en ny gruppe",
"LabelSyncPlayNewGroup": "Ny gruppe",
"LabelSyncPlaySyncMethod": "Synkroniseringsmetode:",
"LabelSyncPlayPlaybackDiff": "Tidsforskjell på avspilling:",
"MillisecondsUnit": "ms",
"LabelSyncPlayTimeOffset": "Tidsforskyvning mot serveren:",
"LabelRequireHttpsHelp": "Hvis valgt, vil serveren automatisk omdirigere alle HTTP-forespørsler til HTTPS. Dette har ingen effekt dersom serveren ikke lytter etter HTTPS.",
"LabelRequireHttps": "Krev HTTPS",
"LabelNightly": "Nattlig",
"LabelStable": "Stabil",
"LabelChromecastVersion": "Chromecast-versjon",
"LabelEnableHttpsHelp": "Aktiverer at serveren skal lytte på den valgte HTTPS-porten. Et gyldig sertifikat må også være konfigurert for at dette skal tre i kraft.",
"LabelEnableHttps": "Aktiver HTTPS",
"HeaderSyncPlayEnabled": "SyncPlay aktivert",
"HeaderSyncPlaySelectGroup": "Bli med i en gruppe",
"HeaderServerAddressSettings": "Innstillinger for serveradresse",
"HeaderRemoteAccessSettings": "Innstillinger for fjerntilgang",
"HeaderHttpsSettings": "HTTPS-innstillinger",
"HeaderDVR": "Opptak",
"ApiKeysCaption": "Liste over aktive API-nøkler",
"EnableDetailsBannerHelp": "Viser et bildebanner øverst på detaljsiden.",
"EnableDetailsBanner": "Detaljebanner"
} }

View file

@ -1090,7 +1090,6 @@
"ReplaceAllMetadata": "Alle metadata vervangen", "ReplaceAllMetadata": "Alle metadata vervangen",
"ReplaceExistingImages": "Bestaande afbeeldingen vervangen", "ReplaceExistingImages": "Bestaande afbeeldingen vervangen",
"RequiredForAllRemoteConnections": "Vereist voor alle externe verbindingen", "RequiredForAllRemoteConnections": "Vereist voor alle externe verbindingen",
"RestartPleaseWaitMessage": "Wacht totdat Jellyfin Server is afgesloten en opnieuw is gestart. Dit kan een paar minuten duren.",
"ResumeAt": "Hervatten vanaf {0}", "ResumeAt": "Hervatten vanaf {0}",
"Rewind": "Terugspoelen", "Rewind": "Terugspoelen",
"RunAtStartup": "Uitvoeren bij opstarten", "RunAtStartup": "Uitvoeren bij opstarten",
@ -1301,7 +1300,6 @@
"HeaderJellyfinServer": "Jellyfin Server", "HeaderJellyfinServer": "Jellyfin Server",
"HeaderLiveTv": "Live TV", "HeaderLiveTv": "Live TV",
"HeaderMedia": "Media", "HeaderMedia": "Media",
"HeaderRestartingServer": "Server wordt herstart",
"HeaderTracks": "Nummers", "HeaderTracks": "Nummers",
"HeaderTuners": "Stemmers", "HeaderTuners": "Stemmers",
"InstantMix": "Instant mix", "InstantMix": "Instant mix",

View file

@ -1171,7 +1171,6 @@
"ReplaceAllMetadata": "Zastępuj wszystkie metadane", "ReplaceAllMetadata": "Zastępuj wszystkie metadane",
"ReplaceExistingImages": "Zastępuj istniejące obrazy", "ReplaceExistingImages": "Zastępuj istniejące obrazy",
"RequiredForAllRemoteConnections": "Wymagane dla wszystkich zdalnych połączeń", "RequiredForAllRemoteConnections": "Wymagane dla wszystkich zdalnych połączeń",
"RestartPleaseWaitMessage": "Czekaj na zamknięcie i ponowne uruchomienie serwera Jellyfin. To może trwać ok. jednej, dwóch minut.",
"ResumeAt": "Wznów odtwarzanie od {0}", "ResumeAt": "Wznów odtwarzanie od {0}",
"Rewind": "Do tyłu", "Rewind": "Do tyłu",
"RunAtStartup": "Uruchamiaj po starcie", "RunAtStartup": "Uruchamiaj po starcie",
@ -1368,7 +1367,6 @@
"HeaderFavoriteSongs": "Ulubione utwory", "HeaderFavoriteSongs": "Ulubione utwory",
"HeaderFavoriteVideos": "Ulubione Filmy", "HeaderFavoriteVideos": "Ulubione Filmy",
"HeaderHome": "Strona główna", "HeaderHome": "Strona główna",
"HeaderRestartingServer": "Ponowne uruchamianie serwera",
"LabelAuthProvider": "Dostawca autentykacji:", "LabelAuthProvider": "Dostawca autentykacji:",
"LabelDynamicExternalId": "{0} Id:", "LabelDynamicExternalId": "{0} Id:",
"LabelFormat": "Format:", "LabelFormat": "Format:",

View file

@ -19,5 +19,8 @@
"HeaderHome": "Poop Deck", "HeaderHome": "Poop Deck",
"DisplayInOtherHomeScreenSections": "Show on Poop Deck such as latest booty and continue plundering", "DisplayInOtherHomeScreenSections": "Show on Poop Deck such as latest booty and continue plundering",
"ButtonHome": "Poop deck", "ButtonHome": "Poop deck",
"HeaderCastCrew": "Mateys" "HeaderCastCrew": "Mateys",
"Add": "Upend",
"Actor": "Privateer",
"AccessRestrictedTryAgainLater": "Ye arn't appearin' on the list o' the livin'!"
} }

View file

@ -882,7 +882,7 @@
"MessageNoAvailablePlugins": "Não existem plugins disponíveis.", "MessageNoAvailablePlugins": "Não existem plugins disponíveis.",
"MessageNoMovieSuggestionsAvailable": "Não existem sugestões de filmes disponíveis atualmente. Comece a assistir e avaliar seus filmes e então retorne para ver suas recomendações.", "MessageNoMovieSuggestionsAvailable": "Não existem sugestões de filmes disponíveis atualmente. Comece a assistir e avaliar seus filmes e então retorne para ver suas recomendações.",
"MessageNoPluginsInstalled": "Você não tem plugins instalados.", "MessageNoPluginsInstalled": "Você não tem plugins instalados.",
"MessageNoTrailersFound": "Nenhum trailer encontrado. Instale o canal Trailer para melhorar sua experiência com filmes, adicionando uma biblioteca de trailers da internet.", "MessageNoTrailersFound": "Instale o canal de trailers para melhorar sua experiência com filmes, adicionando uma biblioteca de trailers da internet.",
"MessageNothingHere": "Nada aqui.", "MessageNothingHere": "Nada aqui.",
"MessagePasswordResetForUsers": "As senhas foram removidas dos seguintes usuários. Para entrar, eles devem acessar com o código pin usado para fazer a redefinição de senha.", "MessagePasswordResetForUsers": "As senhas foram removidas dos seguintes usuários. Para entrar, eles devem acessar com o código pin usado para fazer a redefinição de senha.",
"MessagePlayAccessRestricted": "A reprodução para este conteúdo está atualmente restrita. Por favor, contate o administrador do servidor para mais informações.", "MessagePlayAccessRestricted": "A reprodução para este conteúdo está atualmente restrita. Por favor, contate o administrador do servidor para mais informações.",
@ -1132,7 +1132,6 @@
"ReplaceAllMetadata": "Substituir todos os metadados", "ReplaceAllMetadata": "Substituir todos os metadados",
"ReplaceExistingImages": "Substituir imagens existentes", "ReplaceExistingImages": "Substituir imagens existentes",
"RequiredForAllRemoteConnections": "Necessário para todas as conexões remotas", "RequiredForAllRemoteConnections": "Necessário para todas as conexões remotas",
"RestartPleaseWaitMessage": "Por favor, aguarde enquanto o Servidor Jellyfin reinicia. Isto pode levar um ou dois minutos.",
"ResumeAt": "Retomar de {0}", "ResumeAt": "Retomar de {0}",
"Rewind": "Retroceder", "Rewind": "Retroceder",
"RunAtStartup": "Executar ao iniciar", "RunAtStartup": "Executar ao iniciar",
@ -1350,7 +1349,6 @@
"HeaderFavoriteSongs": "Músicas favoritas", "HeaderFavoriteSongs": "Músicas favoritas",
"HeaderFavoriteVideos": "Videos favoritos", "HeaderFavoriteVideos": "Videos favoritos",
"HeaderHome": "Inicio", "HeaderHome": "Inicio",
"HeaderRestartingServer": "Reiniciando servidor",
"LabelAuthProvider": "Provedor de autenticação:", "LabelAuthProvider": "Provedor de autenticação:",
"LabelServerName": "Nome do servidor:", "LabelServerName": "Nome do servidor:",
"LabelTranscodePath": "Pasta de transcodificação:", "LabelTranscodePath": "Pasta de transcodificação:",
@ -1520,7 +1518,7 @@
"HeaderHttpsSettings": "Configurações HTTPS", "HeaderHttpsSettings": "Configurações HTTPS",
"HeaderDVR": "DVR", "HeaderDVR": "DVR",
"LabelSyncPlayTimeOffset": "Diferença de tempo com o servidor:", "LabelSyncPlayTimeOffset": "Diferença de tempo com o servidor:",
"SyncPlayAccessHelp": "Selecione o nível de acesso desse usuário aos recursos do SyncPlay. SyncPlay habilita a reprodução sincronizada com outros usuários.", "SyncPlayAccessHelp": "Selecione o nível de acesso desse usuário aos recursos do SyncPlay. SyncPlay habilita a reprodução sincronizada com outros dispositivos.",
"MessageSyncPlayErrorMedia": "Falha ao ativar SyncPlay! Erro de mídia.", "MessageSyncPlayErrorMedia": "Falha ao ativar SyncPlay! Erro de mídia.",
"MessageSyncPlayErrorMissingSession": "Falha ao ativar SyncPlay! Sessão em falta.", "MessageSyncPlayErrorMissingSession": "Falha ao ativar SyncPlay! Sessão em falta.",
"MessageSyncPlayErrorNoActivePlayer": "Nenhum reprodutor ativo encontrado. SyncPlay foi desativado.", "MessageSyncPlayErrorNoActivePlayer": "Nenhum reprodutor ativo encontrado. SyncPlay foi desativado.",
@ -1550,5 +1548,24 @@
"HeaderSyncPlayEnabled": "SyncPlay ativado", "HeaderSyncPlayEnabled": "SyncPlay ativado",
"HeaderSyncPlaySelectGroup": "Entrar em um grupo", "HeaderSyncPlaySelectGroup": "Entrar em um grupo",
"EnableDetailsBanner": "Banner de detalhes", "EnableDetailsBanner": "Banner de detalhes",
"EnableDetailsBannerHelp": "Exibe um banner na parte superior da página de detalhes do item." "EnableDetailsBannerHelp": "Exibe um banner na parte superior da página de detalhes do item.",
"EnableBlurhashHelp": "Imagens que ainda estão carregando vão mostrar em seu lugar representações",
"EnableBlurhash": "Habilitar efeito borrado para imagens previas",
"ShowMore": "Mostrar mais",
"ShowLess": "Mostrar menos",
"ButtonSyncPlay": "SyncPlay",
"ButtonCast": "Elenco",
"MessageNoGenresAvailable": "Habilitar alguns provedores de metadados a baixar gêneros da internet.",
"EnableFasterAnimationsHelp": "Usar animações e transições mais rápidas",
"EnableFasterAnimations": "Animações mais rápidas",
"EnableDecodingColorDepth10Vp9": "Habilitar decodificação de hardware de 10 bits para VP9",
"EnableDecodingColorDepth10Hevc": "Habilitar decodificação de hardware de 10 bits para HEVC",
"TabRepositories": "Repositórios",
"MessageAddRepository": "Se você deseja adicionar um repositório, clique no botão próximo ao cabeçalho e preencha as informações requisitadas.",
"LabelRepositoryNameHelp": "Um nome personalizado para distinguir esse repositório dos outros adicionados ao seu servidor.",
"LabelRepositoryName": "Nome do repositório",
"LabelRepositoryUrlHelp": "A localização do manifesto do repositório que você deseja incluir.",
"LabelRepositoryUrl": "URL do repositório",
"HeaderNewRepository": "Novo repositório",
"MessageNoRepositories": "Não há repositórios."
} }

View file

@ -997,7 +997,6 @@
"Runtime": "Duração", "Runtime": "Duração",
"RunAtStartup": "Executar no arranque", "RunAtStartup": "Executar no arranque",
"ResumeAt": "Retomar a partir de {0}", "ResumeAt": "Retomar a partir de {0}",
"RestartPleaseWaitMessage": "Por favor aguarde enquanto o Servidor Jellyfin reinicia. Poderá demorar alguns minutos.",
"RequiredForAllRemoteConnections": "Necessário para todas as ligações externas", "RequiredForAllRemoteConnections": "Necessário para todas as ligações externas",
"ReplaceAllMetadata": "Substituir todos os metadados", "ReplaceAllMetadata": "Substituir todos os metadados",
"RepeatOne": "Repetir este", "RepeatOne": "Repetir este",
@ -1182,7 +1181,6 @@
"CopyStreamURL": "Copiar URL da transmissão", "CopyStreamURL": "Copiar URL da transmissão",
"Disc": "Disco", "Disc": "Disco",
"EnableBackdrops": "Imagens de Fundo", "EnableBackdrops": "Imagens de Fundo",
"HeaderRestartingServer": "A reiniciar o Servidor",
"HeaderTags": "Etiquetas", "HeaderTags": "Etiquetas",
"LabelLogs": "Registos:", "LabelLogs": "Registos:",
"LabelSortTitle": "Título para ordenação:", "LabelSortTitle": "Título para ordenação:",

View file

@ -1,7 +1,6 @@
{ {
"HeaderTypeImageFetchers": "{0} Pesquisadores de Imagens", "HeaderTypeImageFetchers": "{0} Pesquisadores de Imagens",
"HeaderSubtitleDownloads": "Transferências de Legendas", "HeaderSubtitleDownloads": "Transferências de Legendas",
"HeaderRestartingServer": "A reiniciar o servidor",
"HeaderKodiMetadataHelp": "Para ativar ou desativar metadados, editar uma biblioteca nas configurações e localizar a seção dos metadados.", "HeaderKodiMetadataHelp": "Para ativar ou desativar metadados, editar uma biblioteca nas configurações e localizar a seção dos metadados.",
"HeaderFetcherSettings": "Definições do Pesquisador", "HeaderFetcherSettings": "Definições do Pesquisador",
"HeaderFavoritePeople": "Pessoas Preferidas", "HeaderFavoritePeople": "Pessoas Preferidas",
@ -121,7 +120,6 @@
"RunAtStartup": "Executar no arranque", "RunAtStartup": "Executar no arranque",
"Rewind": "Retroceder", "Rewind": "Retroceder",
"ResumeAt": "Retomar a partir de {0}", "ResumeAt": "Retomar a partir de {0}",
"RestartPleaseWaitMessage": "Por favor aguarde enquanto o Servidor Jellyfin reinicia. Isto poderá demorar alguns minutos.",
"RequiredForAllRemoteConnections": "Necessário para todas as ligações externas", "RequiredForAllRemoteConnections": "Necessário para todas as ligações externas",
"ReplaceExistingImages": "Substituir imagens existentes", "ReplaceExistingImages": "Substituir imagens existentes",
"ReplaceAllMetadata": "Substituir todos os metadados", "ReplaceAllMetadata": "Substituir todos os metadados",

View file

@ -493,7 +493,6 @@
"HeaderRemoveMediaLocation": "Eliminați locația Media", "HeaderRemoveMediaLocation": "Eliminați locația Media",
"HeaderResponseProfile": "Profilul de răspuns", "HeaderResponseProfile": "Profilul de răspuns",
"HeaderRestart": "Repornire", "HeaderRestart": "Repornire",
"HeaderRestartingServer": "Se repornește serverul",
"HeaderRevisionHistory": "Istoricul reviziilor", "HeaderRevisionHistory": "Istoricul reviziilor",
"HeaderRunningTasks": "În desfășurare", "HeaderRunningTasks": "În desfășurare",
"HeaderScenes": "Scene", "HeaderScenes": "Scene",
@ -1049,7 +1048,7 @@
"MessagePleaseWait": "Te rog așteaptă. Poate dura un minut.", "MessagePleaseWait": "Te rog așteaptă. Poate dura un minut.",
"MessagePlayAccessRestricted": "Redarea acestui conținut este în prezent restricționată. Vă rugăm să contactați administratorul serverului pentru mai multe informații.", "MessagePlayAccessRestricted": "Redarea acestui conținut este în prezent restricționată. Vă rugăm să contactați administratorul serverului pentru mai multe informații.",
"MessagePasswordResetForUsers": "Următorii utilizatori au resetat parolele. Acum se pot conecta cu codurile pin care au fost utilizate pentru a efectua resetarea.", "MessagePasswordResetForUsers": "Următorii utilizatori au resetat parolele. Acum se pot conecta cu codurile pin care au fost utilizate pentru a efectua resetarea.",
"MessageNoTrailersFound": "Nu s-au găsit trailere. Instalați canalul Trailer pentru a îmbunătăți experiența dvs. de film adăugând o bibliotecă de trailere din internet.", "MessageNoTrailersFound": "Instalați canalul Trailer pentru a îmbunătăți experiența dvs. de film adăugând o bibliotecă de trailere din internet.",
"MessageNoServersAvailable": "Nu au fost găsite servere folosind descoperirea automată de servere.", "MessageNoServersAvailable": "Nu au fost găsite servere folosind descoperirea automată de servere.",
"MessageNoPluginsInstalled": "Nu aveți plugin-uri instalate.", "MessageNoPluginsInstalled": "Nu aveți plugin-uri instalate.",
"MessageNoMovieSuggestionsAvailable": "În prezent, nu există sugestii de film. Începeți să vizionați și să evaluați filmele, apoi reveniți pentru a vedea recomandările dvs.", "MessageNoMovieSuggestionsAvailable": "În prezent, nu există sugestii de film. Începeți să vizionați și să evaluați filmele, apoi reveniți pentru a vedea recomandările dvs.",
@ -1227,7 +1226,6 @@
"RunAtStartup": "Rulați la pornire", "RunAtStartup": "Rulați la pornire",
"Rewind": "Derulează", "Rewind": "Derulează",
"ResumeAt": "Reluați de la {0}", "ResumeAt": "Reluați de la {0}",
"RestartPleaseWaitMessage": "Vă rugăm să așteptați cât Jellyfin Server se închide și repornește. Acest lucru poate dura un minut sau două.",
"RequiredForAllRemoteConnections": "Obligatoriu pentru toate conexiunile distante", "RequiredForAllRemoteConnections": "Obligatoriu pentru toate conexiunile distante",
"ReplaceExistingImages": "Înlocuiți toate imaginile", "ReplaceExistingImages": "Înlocuiți toate imaginile",
"ReplaceAllMetadata": "Înlocuiți toate metadatele", "ReplaceAllMetadata": "Înlocuiți toate metadatele",
@ -1549,5 +1547,16 @@
"HeaderSyncPlayEnabled": "SyncPlay activat", "HeaderSyncPlayEnabled": "SyncPlay activat",
"HeaderSyncPlaySelectGroup": "Alăturați-vă unui grup", "HeaderSyncPlaySelectGroup": "Alăturați-vă unui grup",
"EnableDetailsBannerHelp": "Afișați o imagine de bandou în partea de sus a paginii cu detalii ale articolului.", "EnableDetailsBannerHelp": "Afișați o imagine de bandou în partea de sus a paginii cu detalii ale articolului.",
"EnableDetailsBanner": "Detalii Bandou" "EnableDetailsBanner": "Detalii Bandou",
"EnableBlurhashHelp": "Imaginile care sunt în curs de încărcare vor fi afișate cu un marcaj întinat",
"EnableBlurhash": "Activați marcatoarele întinate pentru imagini",
"ShowMore": "Arată mai mult",
"ShowLess": "Arată mai puțin",
"ButtonCast": "Proiectează",
"ButtonSyncPlay": "SyncPlay",
"MessageNoGenresAvailable": "Permiteți unor furnizori de metadate să tragă genul media de pe internet.",
"EnableFasterAnimationsHelp": "Utilizați animații și tranziții mai rapide",
"EnableFasterAnimations": "Animații mai rapide",
"EnableDecodingColorDepth10Vp9": "Activați decodarea hardware pe 10 biți pentru VP9",
"EnableDecodingColorDepth10Hevc": "Activați decodarea hardware pe 10 biți pentru HEVC"
} }

View file

@ -919,7 +919,7 @@
"MessageNoAvailablePlugins": "Плагинов не имеется.", "MessageNoAvailablePlugins": "Плагинов не имеется.",
"MessageNoMovieSuggestionsAvailable": "В настоящее время предложений фильмов не имеются. Начните смотреть и оценивать свои фильмы, а затем вернитесь, чтобы просмотреть рекомендации.", "MessageNoMovieSuggestionsAvailable": "В настоящее время предложений фильмов не имеются. Начните смотреть и оценивать свои фильмы, а затем вернитесь, чтобы просмотреть рекомендации.",
"MessageNoPluginsInstalled": "Нет установленных плагинов.", "MessageNoPluginsInstalled": "Нет установленных плагинов.",
"MessageNoTrailersFound": "Трейлеры не найдены. Установите канал трейлеров, чтобы повысить своё впечатление от фильма путём добавления собрания интернет-трейлеров.", "MessageNoTrailersFound": "Установите канал трейлеров, чтобы повысить своё впечатление от фильма путём добавления собрания интернет-трейлеров.",
"MessageNothingHere": "Здесь ничего нет.", "MessageNothingHere": "Здесь ничего нет.",
"MessagePasswordResetForUsers": "Следующие пользователи сбросили свои пароли. Теперь они могут войти с помощью PIN-кодов, которые использовались для сброса.", "MessagePasswordResetForUsers": "Следующие пользователи сбросили свои пароли. Теперь они могут войти с помощью PIN-кодов, которые использовались для сброса.",
"MessagePlayAccessRestricted": "Воспроизведение данного содержания в настоящее время ограничено. За дополнительными сведениями обратитесь к администратору сервера.", "MessagePlayAccessRestricted": "Воспроизведение данного содержания в настоящее время ограничено. За дополнительными сведениями обратитесь к администратору сервера.",
@ -1183,7 +1183,6 @@
"ReplaceAllMetadata": "Замена всех метаданных", "ReplaceAllMetadata": "Замена всех метаданных",
"ReplaceExistingImages": "Замена имеющихся изображений", "ReplaceExistingImages": "Замена имеющихся изображений",
"RequiredForAllRemoteConnections": "Требуется для всех внешних подключений", "RequiredForAllRemoteConnections": "Требуется для всех внешних подключений",
"RestartPleaseWaitMessage": "Подождите, пока Jellyfin Server выключится и перезапустится. Это может занять минуту или две.",
"ResumeAt": "Возобновить с {0}", "ResumeAt": "Возобновить с {0}",
"Rewind": "Отмотать", "Rewind": "Отмотать",
"RunAtStartup": "Запускать при старте системы", "RunAtStartup": "Запускать при старте системы",
@ -1388,7 +1387,6 @@
"HeaderFavoriteSongs": "Избранные композиции", "HeaderFavoriteSongs": "Избранные композиции",
"HeaderFavoriteVideos": "Избранные видео", "HeaderFavoriteVideos": "Избранные видео",
"HeaderHome": "Главное", "HeaderHome": "Главное",
"HeaderRestartingServer": "Перезапустить сервер",
"LabelAuthProvider": "Поставщик аутентификации:", "LabelAuthProvider": "Поставщик аутентификации:",
"LabelPasswordResetProvider": "Поставщик сброса пароля:", "LabelPasswordResetProvider": "Поставщик сброса пароля:",
"LabelServerName": "Имя сервера:", "LabelServerName": "Имя сервера:",
@ -1552,5 +1550,7 @@
"MessageSyncPlayErrorMissingSession": "Не удалось включить SyncPlay! Отсутствует сеанс.", "MessageSyncPlayErrorMissingSession": "Не удалось включить SyncPlay! Отсутствует сеанс.",
"MessageSyncPlayErrorNoActivePlayer": "Активный проигрыватель не найден. SyncPlay был отключен.", "MessageSyncPlayErrorNoActivePlayer": "Активный проигрыватель не найден. SyncPlay был отключен.",
"ShowMore": "Показать больше", "ShowMore": "Показать больше",
"ShowLess": "Показать меньше" "ShowLess": "Показать меньше",
"EnableBlurhashHelp": "Рисунки, которые всё ещё загружаются, будут отображаться с размытым заполнением",
"EnableBlurhash": "Включить размытые заполнители для изображений"
} }

View file

@ -236,7 +236,7 @@
"HeaderMedia": "Médiá", "HeaderMedia": "Médiá",
"HeaderMediaInfo": "Informácie o médiu", "HeaderMediaInfo": "Informácie o médiu",
"HeaderMetadataSettings": "Nastavenia metadát", "HeaderMetadataSettings": "Nastavenia metadát",
"HeaderMoreLikeThis": "Podobné ako toto", "HeaderMoreLikeThis": "Podobné položky",
"HeaderMovies": "Filmy", "HeaderMovies": "Filmy",
"HeaderMusicQuality": "Kvalita hudby", "HeaderMusicQuality": "Kvalita hudby",
"HeaderMusicVideos": "Hudobné videá", "HeaderMusicVideos": "Hudobné videá",
@ -293,7 +293,7 @@
"HeaderTypeText": "Vložte text", "HeaderTypeText": "Vložte text",
"HeaderUploadImage": "Nahrať obrázok", "HeaderUploadImage": "Nahrať obrázok",
"HeaderUser": "Používateľ", "HeaderUser": "Používateľ",
"HeaderUsers": "Užívatelia", "HeaderUsers": "Používatelia",
"HeaderVideoQuality": "Kvalita videa", "HeaderVideoQuality": "Kvalita videa",
"HeaderVideos": "Videá", "HeaderVideos": "Videá",
"HeaderXmlSettings": "Nastavenia XML", "HeaderXmlSettings": "Nastavenia XML",
@ -728,7 +728,6 @@
"RepeatOne": "Opakovať jedno", "RepeatOne": "Opakovať jedno",
"ReplaceAllMetadata": "Nahradiť všetky metadáta", "ReplaceAllMetadata": "Nahradiť všetky metadáta",
"ReplaceExistingImages": "Nahradiť existujúce obrázky", "ReplaceExistingImages": "Nahradiť existujúce obrázky",
"RestartPleaseWaitMessage": "Počkajte prosím kým sa Jellyfin Server vypne a znova naštartuje. Môže to trvať minútu alebo dve.",
"ResumeAt": "Pokračovať od {0}", "ResumeAt": "Pokračovať od {0}",
"RunAtStartup": "Spustiť pri štarte", "RunAtStartup": "Spustiť pri štarte",
"Saturday": "Sobota", "Saturday": "Sobota",
@ -777,7 +776,7 @@
"TabCatalog": "Katalóg", "TabCatalog": "Katalóg",
"TabChannels": "Kanály", "TabChannels": "Kanály",
"TabCodecs": "Kodeky", "TabCodecs": "Kodeky",
"TabCollections": "Zbierky", "TabCollections": "Kolekcie",
"TabContainers": "Kontajnery", "TabContainers": "Kontajnery",
"TabDashboard": "Dashboard", "TabDashboard": "Dashboard",
"TabDevices": "Zariadenia", "TabDevices": "Zariadenia",
@ -1045,7 +1044,6 @@
"HideWatchedContentFromLatestMedia": "Skryť pozreté položky zo zoznamu najnovších médií", "HideWatchedContentFromLatestMedia": "Skryť pozreté položky zo zoznamu najnovších médií",
"HeaderTranscodingProfile": "Profil prekódovania", "HeaderTranscodingProfile": "Profil prekódovania",
"HeaderSeriesOptions": "Nastavenia seriálov", "HeaderSeriesOptions": "Nastavenia seriálov",
"HeaderRestartingServer": "Server sa reštartuje",
"HeaderParentalRatings": "Rodičovské hodnotenia", "HeaderParentalRatings": "Rodičovské hodnotenia",
"HeaderEnabledFields": "Povolené polia", "HeaderEnabledFields": "Povolené polia",
"HeaderAudioLanguages": "Jazyk zvuku", "HeaderAudioLanguages": "Jazyk zvuku",
@ -1269,7 +1267,7 @@
"OptionAllowVideoPlaybackRemuxing": "Povoliť prehrávanie videa, ktoré vyžaduje konverziu bez opätovného enkódovania", "OptionAllowVideoPlaybackRemuxing": "Povoliť prehrávanie videa, ktoré vyžaduje konverziu bez opätovného enkódovania",
"OptionAllowSyncTranscoding": "Povoliť sťahovanie a synchronizáciu medií, ktoré vyžadujú transkódovanie", "OptionAllowSyncTranscoding": "Povoliť sťahovanie a synchronizáciu medií, ktoré vyžadujú transkódovanie",
"OptionAllowMediaPlaybackTranscodingHelp": "Obmedzenie prístupu ku transkódovaniu môže spôsobiť zlyhania prehrávania v Jellyfin aplikáciách kvôli nepodporovaným formátom medií.", "OptionAllowMediaPlaybackTranscodingHelp": "Obmedzenie prístupu ku transkódovaniu môže spôsobiť zlyhania prehrávania v Jellyfin aplikáciách kvôli nepodporovaným formátom medií.",
"MessageNoTrailersFound": "Neboli nájdené žiadne trailery. Nainštalujte Trailer kanál pre rozšírenie vášho filmového zážitku pridaním knižnice trailerov z internetu.", "MessageNoTrailersFound": "Nainštalujte Trailer kanál pre rozšírenie vášho filmového zážitku pridaním knižnice trailerov z internetu.",
"LanNetworksHelp": "Zoznam IP adries alebo IP/netmask záznamov pre všetky siete oddelené čiarkami ktoré budú považované za lokálnu sieť pri vynucovaní obmedzenia šírky pásma. Pokiaľ je toto nastavené, všetky ostatné IP adresy budú považované za vonkajšiu sieť a budú podliehať obmedzeniam šírky pásma vonkajšej siete. Pokiaľ pole ostane prázdne, podsieť serveru bude považovaná za lokálnu sieť.", "LanNetworksHelp": "Zoznam IP adries alebo IP/netmask záznamov pre všetky siete oddelené čiarkami ktoré budú považované za lokálnu sieť pri vynucovaní obmedzenia šírky pásma. Pokiaľ je toto nastavené, všetky ostatné IP adresy budú považované za vonkajšiu sieť a budú podliehať obmedzeniam šírky pásma vonkajšej siete. Pokiaľ pole ostane prázdne, podsieť serveru bude považovaná za lokálnu sieť.",
"LabelUserAgent": "User agent:", "LabelUserAgent": "User agent:",
"LabelEnableBlastAliveMessagesHelp": "Povolte v prípade, že server nie je viditeľný inými UPnP zariadeniami na vašej sieti.", "LabelEnableBlastAliveMessagesHelp": "Povolte v prípade, že server nie je viditeľný inými UPnP zariadeniami na vašej sieti.",
@ -1292,7 +1290,7 @@
"MessagePlayAccessRestricted": "Prehrávanie tohoto obsahuje je aktuálne obmedzené. Prosím, kontaktujte svojho administrátora servera pre viac informácií.", "MessagePlayAccessRestricted": "Prehrávanie tohoto obsahuje je aktuálne obmedzené. Prosím, kontaktujte svojho administrátora servera pre viac informácií.",
"MessagePasswordResetForUsers": "Nasledujúci používatelia si nechali obnoviť heslo. Teraz sa môžu prihlásiť s PIN kódom, ktorý použijú k vykonaniu obnovy hesla.", "MessagePasswordResetForUsers": "Nasledujúci používatelia si nechali obnoviť heslo. Teraz sa môžu prihlásiť s PIN kódom, ktorý použijú k vykonaniu obnovy hesla.",
"MessageNoServersAvailable": "Žiadne servery neboli nájdené pomocou automatického objavovania serverov.", "MessageNoServersAvailable": "Žiadne servery neboli nájdené pomocou automatického objavovania serverov.",
"MessageNoMovieSuggestionsAvailable": "Žiadne filmové návrhy nie sú v súčastnosti k dispozícií. Začnite pozerať a hodnotiť vaše filmy, potom sa sem vráťte pre vaše odporúčania.", "MessageNoMovieSuggestionsAvailable": "V súčastnosti nie sú k dispozícií žiadne filmové návrhy. Začnite pozerať a hodnotiť vaše filmy, potom sa sem vráťte pre Vaše odporúčania.",
"MessageNoCollectionsAvailable": "Kolekcie vám umožnia užiť si vlastné zoskupenia filmov, seriálov a albumov. Kliknite na tlačítko + pre začatie vytvárania kolekcie.", "MessageNoCollectionsAvailable": "Kolekcie vám umožnia užiť si vlastné zoskupenia filmov, seriálov a albumov. Kliknite na tlačítko + pre začatie vytvárania kolekcie.",
"MessageInstallPluginFromApp": "Tento zásuvný modul musí byť nainštalovaný z aplikácie, ktorú chcete používať.", "MessageInstallPluginFromApp": "Tento zásuvný modul musí byť nainštalovaný z aplikácie, ktorú chcete používať.",
"MessageImageTypeNotSelected": "Prosím, vyberte typ obrázku z rozbalovacieho menu.", "MessageImageTypeNotSelected": "Prosím, vyberte typ obrázku z rozbalovacieho menu.",
@ -1520,12 +1518,12 @@
"HeaderHttpsSettings": "Nastavenia HTTPS", "HeaderHttpsSettings": "Nastavenia HTTPS",
"HeaderDVR": "DVR", "HeaderDVR": "DVR",
"SaveChanges": "Uložiť zmeny", "SaveChanges": "Uložiť zmeny",
"MessageSyncPlayErrorMedia": "Povolenie synchronizácie prehrávania zlyhalo! Chyba média.", "MessageSyncPlayErrorMedia": "Povolenie funkcie SyncPlay zlyhalo! Chyba média.",
"MessageSyncPlayErrorMissingSession": "Zapnutie synchronizácie prehrávania zlyhalo! Aktívna relácia nebola nájdená.", "MessageSyncPlayErrorMissingSession": "Zapnutie funkcie SyncPlay zlyhalo! Aktívna relácia nebola nájdená.",
"MessageSyncPlayErrorNoActivePlayer": "Nebol nájdený žiadny aktívny prehrávač. Synchronizácia prehrávania bola vypnutá.", "MessageSyncPlayErrorNoActivePlayer": "Nebol nájdený žiadny aktívny prehrávač. Funkcia SyncPlay bola vypnutá.",
"MessageSyncPlayErrorAccessingGroups": "Pri načítaní zoznamu skupín sa vyskytla chyba.", "MessageSyncPlayErrorAccessingGroups": "Pri načítaní zoznamu skupín sa vyskytla chyba.",
"MessageSyncPlayLibraryAccessDenied": "Prístup k tomuto obsahuje je obmedzený.", "MessageSyncPlayLibraryAccessDenied": "Prístup k tomuto obsahuje je obmedzený.",
"MessageSyncPlayJoinGroupDenied": "K použitiu synchronizácie prehrávania je vyžadované povolenie.", "MessageSyncPlayJoinGroupDenied": "K použitiu funkcie SyncPlay je požadované povolenie.",
"MessageSyncPlayCreateGroupDenied": "K vytvoreniu skupiny je požadované povolenie.", "MessageSyncPlayCreateGroupDenied": "K vytvoreniu skupiny je požadované povolenie.",
"MessageSyncPlayGroupDoesNotExist": "Pripojenie ku skupine zlyhalo, pretože skupina neexistuje.", "MessageSyncPlayGroupDoesNotExist": "Pripojenie ku skupine zlyhalo, pretože skupina neexistuje.",
"MessageSyncPlayPlaybackPermissionRequired": "K prehrávaniu je potrebné povolenie.", "MessageSyncPlayPlaybackPermissionRequired": "K prehrávaniu je potrebné povolenie.",
@ -1533,13 +1531,13 @@
"MessageSyncPlayGroupWait": "Prehrávanie používateľa <b>{0}</b> sa načítava...", "MessageSyncPlayGroupWait": "Prehrávanie používateľa <b>{0}</b> sa načítava...",
"MessageSyncPlayUserLeft": "Používateľ <b>{0}</b> opustil skupinu.", "MessageSyncPlayUserLeft": "Používateľ <b>{0}</b> opustil skupinu.",
"MessageSyncPlayUserJoined": "Používateľ <b>{0}</b> sa pripojil k skupine.", "MessageSyncPlayUserJoined": "Používateľ <b>{0}</b> sa pripojil k skupine.",
"MessageSyncPlayDisabled": "Synchronizácia prehrávania zakázana.", "MessageSyncPlayDisabled": "SyncPlay zakázaný.",
"MessageSyncPlayEnabled": "Synchronizácia prehrávania povolená.", "MessageSyncPlayEnabled": "SyncPlay povolený.",
"LabelSyncPlayAccess": "Prístup k synchronizácií prehrávania", "LabelSyncPlayAccess": "Prístup k funkcií SyncPlay",
"LabelSyncPlayAccessNone": "Zakázať pre tohoto používateľa", "LabelSyncPlayAccessNone": "Zakázať pre tohoto používateľa",
"LabelSyncPlayAccessJoinGroups": "Povoliť použivateľovi pripájať sa do skupín", "LabelSyncPlayAccessJoinGroups": "Povoliť použivateľovi pripájať sa do skupín",
"LabelSyncPlayAccessCreateAndJoinGroups": "Povoliť používateľovi vytvárať a pripájať sa do skupín", "LabelSyncPlayAccessCreateAndJoinGroups": "Povoliť používateľovi vytvárať a pripájať sa do skupín",
"LabelSyncPlayLeaveGroupDescription": "Zakázať synchronizáciu prehrávania", "LabelSyncPlayLeaveGroupDescription": "Zakázať SyncPlay",
"LabelSyncPlayLeaveGroup": "Opustiť skupinu", "LabelSyncPlayLeaveGroup": "Opustiť skupinu",
"LabelSyncPlayNewGroupDescription": "Vytvoriť novú skupinu", "LabelSyncPlayNewGroupDescription": "Vytvoriť novú skupinu",
"LabelSyncPlayNewGroup": "Nová skupina", "LabelSyncPlayNewGroup": "Nová skupina",
@ -1547,9 +1545,28 @@
"LabelSyncPlayPlaybackDiff": "Rozdiel v dobe prehrávania:", "LabelSyncPlayPlaybackDiff": "Rozdiel v dobe prehrávania:",
"MillisecondsUnit": "ms", "MillisecondsUnit": "ms",
"LabelSyncPlayTimeOffset": "Časový rozdiel so serverom:", "LabelSyncPlayTimeOffset": "Časový rozdiel so serverom:",
"HeaderSyncPlayEnabled": "Synchronizácia prehrávania je povolená", "HeaderSyncPlayEnabled": "SyncPlay je povolené",
"HeaderSyncPlaySelectGroup": "Pripojiť sa k skupine", "HeaderSyncPlaySelectGroup": "Pripojiť sa k skupine",
"SyncPlayAccessHelp": "Vyberte úroveň prístupu pre tohto používateľa k funkcií synchronizácie prehrávania. Synchronizácia prehrávania umožňuje zosynchronizovať prehrávanie s ostatnými zariadeniami.", "SyncPlayAccessHelp": "Vyberte úroveň prístupu pre tohto používateľa k funkcií SyncPlay. SyncPlay umožňuje zosynchronizovať prehrávanie s ostatnými zariadeniami.",
"EnableDetailsBannerHelp": "Zobrazí banner na vrchnej časti detailu položky.", "EnableDetailsBannerHelp": "Zobrazí banner na vrchnej časti detailu položky.",
"EnableDetailsBanner": "Detail banneru" "EnableDetailsBanner": "Detail banneru",
"EnableBlurhashHelp": "Obrázky, ktoré sa stále načítavajú budú zobrazené ako dočasný obrázok s rozmazaným pozadím",
"EnableBlurhash": "Povoliť obrázok s rozmazaným pozadím pre chýbajúce obrázky",
"ShowMore": "Zobraziť viac",
"ShowLess": "Zobraziť menej",
"ButtonCast": "Prenášať",
"ButtonSyncPlay": "SyncPlay",
"MessageNoGenresAvailable": "Povoliť vybraným metadáta poskytovateľom stiahnuť žánre z internetu.",
"EnableFasterAnimationsHelp": "Použiť rýchlejšiu animáciu a prechody",
"EnableFasterAnimations": "Rýchlejšia animácia",
"EnableDecodingColorDepth10Vp9": "Povoliť 10-Bitové hardvérové dekódovanie pre VP9",
"EnableDecodingColorDepth10Hevc": "Povoliť 10-Bitové hardvérové dekódovanie pre HEVC",
"LabelRepositoryUrl": "URL adresa repozitára",
"HeaderNewRepository": "Nový repozitár",
"MessageNoRepositories": "Neexistujú žiadne repozitáre.",
"TabRepositories": "Repozitáre",
"MessageAddRepository": "Pokiaľ chcete pridať repozitár, kliknite na tlačidlo vedľa hlavičky a vyplňte požadované informácie.",
"LabelRepositoryNameHelp": "Vlastné pomenovanie, ktoré slúži na odlíšenie tohto repozitára od ostatných repozitárov pridaných na vašom serveri.",
"LabelRepositoryName": "Názov repozitára",
"LabelRepositoryUrlHelp": "Umiestnenie manifestu repozitára, ktorý chcete zahrnúť."
} }

View file

@ -312,7 +312,6 @@
"HeaderSchedule": "Urnik", "HeaderSchedule": "Urnik",
"HeaderScenes": "Scene", "HeaderScenes": "Scene",
"HeaderRunningTasks": "Aktivni procesi", "HeaderRunningTasks": "Aktivni procesi",
"HeaderRestartingServer": "Ponovno zaganjanje",
"HeaderRestart": "Ponovni zagon", "HeaderRestart": "Ponovni zagon",
"HeaderResponseProfileHelp": "Profili odziva omogočajo prilagoditev informacij poslanih sprejemniku pri predvajanju določenih vrst predstavnosti.", "HeaderResponseProfileHelp": "Profili odziva omogočajo prilagoditev informacij poslanih sprejemniku pri predvajanju določenih vrst predstavnosti.",
"HeaderResponseProfile": "Profil odziva", "HeaderResponseProfile": "Profil odziva",
@ -372,7 +371,7 @@
"HeaderInstall": "Namesti", "HeaderInstall": "Namesti",
"HeaderImageSettings": "Nastavitve slike", "HeaderImageSettings": "Nastavitve slike",
"HeaderImageOptions": "Možnosti slike", "HeaderImageOptions": "Možnosti slike",
"HeaderIdentifyItemHelp": "Vnesite vsaj en kriterij iskanja. Odstranitr kriterije za več rezultatov.", "HeaderIdentifyItemHelp": "Vnesite vsaj en kriterij iskanja. Odstranite kriterije za več rezultatov.",
"HeaderIdentificationCriteriaHelp": "Vnesite vsaj en kriterij za identifikacijo.", "HeaderIdentificationCriteriaHelp": "Vnesite vsaj en kriterij za identifikacijo.",
"HeaderIdentification": "Identifikacija", "HeaderIdentification": "Identifikacija",
"HeaderHome": "Domov", "HeaderHome": "Domov",
@ -1211,5 +1210,70 @@
"TitleHardwareAcceleration": "Strojno pospeševanje", "TitleHardwareAcceleration": "Strojno pospeševanje",
"Thursday": "Četrtek", "Thursday": "Četrtek",
"TabUsers": "Uporabniki", "TabUsers": "Uporabniki",
"TabTrailers": "Napovedniki" "TabTrailers": "Napovedniki",
"ClientSettings": "Nastavitve odjemalca",
"ButtonTogglePlaylist": "Seznam predvajanja",
"ButtonToggleContextMenu": "Več",
"Artist": "Izvajalec",
"AlbumArtist": "Izvajalec albuma",
"Album": "Album",
"LibraryAccessHelp": "Izberite knjižnice, ki bodo deljenje s tem uporabnikom. Upravitelji bodo lahko urejali metapodatke z upraviteljem metapodatkov.",
"LeaveBlankToNotSetAPassword": "To polje lahko pustite prazno za uporabo brez gesla.",
"LearnHowYouCanContribute": "Poglejte, kako lahko pomagate.",
"LaunchWebAppOnStartupHelp": "Ob prvem zagonu strežnika se bo v privzetem brskalniku odprl spletni vmesnik. To se ne bo zgodilo pri uporabi možnosti za ponovni zagon.",
"LaunchWebAppOnStartup": "Ob zagonu strežnika zaženi spletni vmesnik",
"LabelffmpegPathHelp": "Pot do datoteke aplikacije ffmpeg ali mape, ki jo vsebuje.",
"LabelffmpegPath": "Pot FFmpeg:",
"LabelZipCode": "Poštna številka:",
"LabelYear": "Leto:",
"LabelVideoResolution": "Ločljivost videa:",
"LabelVideoCodec": "Video kodek:",
"LabelVideoBitrate": "Bitna hitrost videa:",
"LabelVideo": "Video",
"DashboardArchitecture": "Arhitektura: {0}",
"DashboardOperatingSystem": "Operacijski sistem: {0}",
"DashboardServerName": "Strežnik: {0}",
"LabelVersionInstalled": "{0} nameščeno",
"LabelValue": "Vrednost:",
"LabelVaapiDeviceHelp": "To je vozlišče naprave, ki bo uporabljena za strojno pospeševanje.",
"LabelVaapiDevice": "Naprava VAAPI:",
"LabelUsername": "Uporabniško ime:",
"LabelUserRemoteClientBitrateLimitHelp": "Povozi privzeto globalno nastavitev v nastavitvah strežnika.",
"LabelUserLoginAttemptsBeforeLockout": "Število spodletelih prijav preden bo profil uporabnika zaklenjen:",
"LabelUserLibraryHelp": "Izberite katera uporabniška knjižnica naj bo prikazana na napravi. Pustite prazno za uporabo privzetih nastavitev.",
"LabelUserLibrary": "Uporabniška knjižnica:",
"LabelUser": "Uporabnik:",
"LabelUseNotificationServices": "Uporabi naslednje storitve:",
"LabelTypeText": "Tekst",
"LabelTypeMetadataDownloaders": "{0} prenašalci metapodatkov:",
"LabelType": "Vrsta:",
"LabelTunerType": "Vrsta sprejemnika:",
"LabelSyncPlayAccess": "Dostop do SyncPlay",
"LabelSyncPlayAccessNone": "Onemogočeno za tega uporabnika",
"LabelSyncPlayAccessJoinGroups": "Dovoli uporabniku pridružitev skupinam",
"LabelSyncPlayAccessCreateAndJoinGroups": "Dovoli uporabniku ustvarjanje in pridružitev skupinam",
"LabelSyncPlayLeaveGroupDescription": "Onemogoči SyncPlay",
"LabelSyncPlayLeaveGroup": "Zapusti skupino",
"LabelSyncPlayNewGroupDescription": "Ustvari novo skupino",
"LabelSyncPlayNewGroup": "Nova skupina",
"LabelSyncPlaySyncMethod": "Način sinhronizacije:",
"LabelSyncPlayPlaybackDiff": "Razlika v času predvajanja:",
"MillisecondsUnit": "ms",
"LabelSyncPlayTimeOffset": "Zamik časa na strežniku:",
"EnableFastImageFadeInHelp": "Uporabi hitrejše animacije in prehode",
"EnableFastImageFadeIn": "Hitrejše animacije",
"LabelRequireHttpsHelp": "Če je označeno, bo strežnik samodejno preusmeril vse HTTP zahteva na HTTPS. Nima vpliva, če strežnik ne posluša na HTTPS.",
"LabelRequireHttps": "Zahtevaj HTTPS",
"HeaderInstantMix": "Hitri miks",
"HeaderIdentificationHeader": "Identifikacija zaglavja",
"HeaderHttpsSettings": "Nastavitve HTTPS",
"HeaderHttpHeaders": "HTTP zaglavje",
"HeaderFavoritePlaylists": "Priljubljeni seznami predvajanja",
"HeaderDVR": "DVR",
"HeaderBlockItemsWithNoRating": "Blokiraj vsebine brez oziroma z neprepoznanimi starševskimi ocenami:",
"ApiKeysCaption": "Seznam trenutno uporabljenih API ključev",
"Episode": "Epizoda",
"EnableDetailsBannerHelp": "Prikaži sliko pasice na vrhu strani podrobnosti.",
"EnableDetailsBanner": "Pasica podrobnosti",
"DeinterlaceMethodHelp": "Izberite način razpletanja pri prekodiranju prepletenih vsebin."
} }

View file

@ -1097,7 +1097,6 @@
"RepeatOne": "Upprepa en gång", "RepeatOne": "Upprepa en gång",
"ReplaceAllMetadata": "Ersätt all metadata", "ReplaceAllMetadata": "Ersätt all metadata",
"ReplaceExistingImages": "Skriv över befintliga bilder", "ReplaceExistingImages": "Skriv över befintliga bilder",
"RestartPleaseWaitMessage": "Vänligen vänta medan Jellyfin-servern stängs av och startar om. Detta kan ta en minut eller två.",
"ResumeAt": "Återuppta från {0}", "ResumeAt": "Återuppta från {0}",
"RunAtStartup": "Kör vid uppstart", "RunAtStartup": "Kör vid uppstart",
"Runtime": "Speltid", "Runtime": "Speltid",
@ -1317,7 +1316,6 @@
"HeaderImageOptions": "Bildalternativ", "HeaderImageOptions": "Bildalternativ",
"Absolute": "Komplett", "Absolute": "Komplett",
"HeaderFavoritePeople": "Favoritmänniskor", "HeaderFavoritePeople": "Favoritmänniskor",
"HeaderRestartingServer": "Startar om server",
"HeaderStatus": "Status", "HeaderStatus": "Status",
"LabelPostProcessor": "Program för efterbehandling:", "LabelPostProcessor": "Program för efterbehandling:",
"LabelPleaseRestart": "Ändringar genomförs efter att webbklienten manuellt har laddats om .", "LabelPleaseRestart": "Ändringar genomförs efter att webbklienten manuellt har laddats om .",

Some files were not shown because too many files have changed in this diff Show more