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

Merge branch 'jellyfin:master' into audio-normalization

This commit is contained in:
TelepathicWalrus 2023-03-27 18:05:56 +01:00 committed by GitHub
commit 8110c324d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
46 changed files with 1402 additions and 1210 deletions

View file

@ -26,8 +26,6 @@ jobs:
- script: 'npm ci --no-audit' - script: 'npm ci --no-audit'
displayName: 'Install Dependencies' displayName: 'Install Dependencies'
env:
SKIP_PREPARE: 'true'
- script: 'npm run build:development' - script: 'npm run build:development'
displayName: 'Build Development' displayName: 'Build Development'

View file

@ -17,4 +17,5 @@ jobs:
- uses: eps1lon/actions-label-merge-conflict@fd1f295ee7443d13745804bc49fe158e240f6c6e # tag=v2.1.0 - uses: eps1lon/actions-label-merge-conflict@fd1f295ee7443d13745804bc49fe158e240f6c6e # tag=v2.1.0
with: with:
dirtyLabel: 'merge conflict' dirtyLabel: 'merge conflict'
commentOnDirty: 'This pull request has merge conflicts. Please resolve the conflicts so the PR can be successfully reviewed and merged.'
repoToken: ${{ secrets.JF_BOT_TOKEN }} repoToken: ${{ secrets.JF_BOT_TOKEN }}

View file

@ -19,13 +19,13 @@ jobs:
language: [ 'javascript' ] language: [ 'javascript' ]
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6 uses: github/codeql-action/init@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
queries: +security-extended queries: +security-extended
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6 uses: github/codeql-action/autobuild@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@16964e90ba004cdf0cd845b866b5df21038b7723 # v2.2.6 uses: github/codeql-action/analyze@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7

View file

@ -18,7 +18,7 @@ jobs:
comment-id: ${{ github.event.comment.id }} comment-id: ${{ github.event.comment.id }}
reactions: '+1' reactions: '+1'
- name: Checkout the latest code - name: Checkout the latest code
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
with: with:
token: ${{ secrets.JF_BOT_TOKEN }} token: ${{ secrets.JF_BOT_TOKEN }}
fetch-depth: 0 fetch-depth: 0

View file

@ -13,7 +13,7 @@ jobs:
steps: steps:
- name: Check out Git repository - name: Check out Git repository
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment - name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
@ -24,8 +24,6 @@ jobs:
- name: Install Node.js dependencies - name: Install Node.js dependencies
run: npm ci --no-audit run: npm ci --no-audit
env:
SKIP_PREPARE: true
- name: Run a production build - name: Run a production build
run: npm run build:production run: npm run build:production
@ -39,7 +37,7 @@ jobs:
steps: steps:
- name: Check out Git repository - name: Check out Git repository
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment - name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
@ -50,8 +48,6 @@ jobs:
- name: Install Node.js dependencies - name: Install Node.js dependencies
run: npm ci --no-audit run: npm ci --no-audit
env:
SKIP_PREPARE: true
- name: Run eslint - name: Run eslint
run: npm run lint run: npm run lint
@ -62,7 +58,7 @@ jobs:
steps: steps:
- name: Check out Git repository - name: Check out Git repository
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment - name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
@ -76,8 +72,6 @@ jobs:
- name: Install Node.js dependencies - name: Install Node.js dependencies
run: npm ci --no-audit run: npm ci --no-audit
env:
SKIP_PREPARE: true
- name: Run stylelint - name: Run stylelint
run: npm run stylelint:css run: npm run stylelint:css
@ -88,7 +82,7 @@ jobs:
steps: steps:
- name: Check out Git repository - name: Check out Git repository
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment - name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
@ -102,8 +96,6 @@ jobs:
- name: Install Node.js dependencies - name: Install Node.js dependencies
run: npm ci --no-audit run: npm ci --no-audit
env:
SKIP_PREPARE: true
- name: Run stylelint - name: Run stylelint
run: npm run stylelint:scss run: npm run stylelint:scss

View file

@ -1,18 +1,24 @@
name: Issue Stale Check name: Stale Check
on: on:
schedule: schedule:
- cron: '30 1 * * *' - cron: '30 1 * * *'
workflow_dispatch: workflow_dispatch:
permissions:
issues: write
pull-requests: write
jobs: jobs:
stale: issues:
name: Check issues
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: ${{ contains(github.repository, 'jellyfin/') }} if: ${{ contains(github.repository, 'jellyfin/') }}
steps: steps:
- uses: actions/stale@6f05e4244c9a0b2ed3401882b05d701dd0a7289b # v7.0.0 - uses: actions/stale@6f05e4244c9a0b2ed3401882b05d701dd0a7289b # v7.0.0
with: with:
repo-token: ${{ secrets.JF_BOT_TOKEN }} repo-token: ${{ secrets.JF_BOT_TOKEN }}
operations-per-run: 75
days-before-stale: 120 days-before-stale: 120
days-before-pr-stale: -1 days-before-pr-stale: -1
days-before-close: 21 days-before-close: 21
@ -25,3 +31,21 @@ jobs:
If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label. If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.
This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on [Matrix or Social Media](https://jellyfin.org/contact). This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on [Matrix or Social Media](https://jellyfin.org/contact).
prs-conflicts:
name: Check PRs with merge conflicts
runs-on: ubuntu-latest
if: ${{ contains(github.repository, 'jellyfin/') }}
steps:
- uses: actions/stale@6f05e4244c9a0b2ed3401882b05d701dd0a7289b # v7.0.0
with:
repo-token: ${{ secrets.JF_BOT_TOKEN }}
operations-per-run: 75
# The merge conflict action will remove the label when updated
remove-stale-when-updated: false
days-before-stale: -1
days-before-close: 90
days-before-issue-close: -1
stale-pr-label: merge conflict
close-pr-message: |-
This PR has been closed due to having unresolved merge conflicts.

View file

@ -13,7 +13,7 @@ jobs:
steps: steps:
- name: Check out Git repository - name: Check out Git repository
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3 uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
- name: Setup node environment - name: Setup node environment
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0 uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3.6.0
@ -24,8 +24,6 @@ jobs:
- name: Install Node.js dependencies - name: Install Node.js dependencies
run: npm ci --no-audit run: npm ci --no-audit
env:
SKIP_PREPARE: true
- name: Run tsc - name: Run tsc
run: npm run build:check run: npm run build:check

1
debian/rules vendored
View file

@ -12,6 +12,7 @@ override_dh_clistrip:
override_dh_auto_build: override_dh_auto_build:
npm ci --no-audit --unsafe-perm npm ci --no-audit --unsafe-perm
npm run build:production
mv $(CURDIR)/dist $(CURDIR)/web mv $(CURDIR)/dist $(CURDIR)/web
override_dh_auto_clean: override_dh_auto_clean:

View file

@ -8,4 +8,6 @@ RUN apk add autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool ma
WORKDIR ${SOURCE_DIR} WORKDIR ${SOURCE_DIR}
COPY . . COPY . .
RUN npm ci --no-audit --unsafe-perm && mv dist ${ARTIFACT_DIR} RUN npm ci --no-audit --unsafe-perm \
&& npm run build:production \
&& mv dist ${ARTIFACT_DIR}

View file

@ -15,6 +15,7 @@ fi
# build archives # build archives
npm ci --no-audit --unsafe-perm npm ci --no-audit --unsafe-perm
npm run build:production
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

View file

@ -35,6 +35,7 @@ chown root:root -R .
%build %build
npm ci --no-audit --unsafe-perm npm ci --no-audit --unsafe-perm
npm run build:production
%install %install

278
package-lock.json generated
View file

@ -23,14 +23,14 @@
"classnames": "2.3.2", "classnames": "2.3.2",
"core-js": "3.29.0", "core-js": "3.29.0",
"date-fns": "2.29.3", "date-fns": "2.29.3",
"dompurify": "2.4.4", "dompurify": "3.0.1",
"epubjs": "0.4.2", "epubjs": "0.4.2",
"escape-html": "1.0.3", "escape-html": "1.0.3",
"fast-text-encoding": "1.0.6", "fast-text-encoding": "1.0.6",
"flv.js": "1.6.2", "flv.js": "1.6.2",
"headroom.js": "0.12.0", "headroom.js": "0.12.0",
"history": "5.3.0", "history": "5.3.0",
"hls.js": "1.3.4", "hls.js": "1.2.4",
"intersection-observer": "0.12.2", "intersection-observer": "0.12.2",
"jellyfin-apiclient": "1.10.0", "jellyfin-apiclient": "1.10.0",
"jquery": "3.6.3", "jquery": "3.6.3",
@ -68,8 +68,8 @@
"@types/lodash-es": "4.17.6", "@types/lodash-es": "4.17.6",
"@types/react": "17.0.53", "@types/react": "17.0.53",
"@types/react-dom": "17.0.19", "@types/react-dom": "17.0.19",
"@typescript-eslint/eslint-plugin": "5.54.0", "@typescript-eslint/eslint-plugin": "5.54.1",
"@typescript-eslint/parser": "5.54.0", "@typescript-eslint/parser": "5.54.1",
"@uupaa/dynamic-import-polyfill": "1.0.2", "@uupaa/dynamic-import-polyfill": "1.0.2",
"autoprefixer": "10.4.13", "autoprefixer": "10.4.13",
"babel-loader": "9.1.2", "babel-loader": "9.1.2",
@ -93,7 +93,7 @@
"expose-loader": "4.0.0", "expose-loader": "4.0.0",
"html-loader": "4.2.0", "html-loader": "4.2.0",
"html-webpack-plugin": "5.5.0", "html-webpack-plugin": "5.5.0",
"mini-css-extract-plugin": "2.7.2", "mini-css-extract-plugin": "2.7.3",
"postcss": "8.4.21", "postcss": "8.4.21",
"postcss-loader": "7.0.2", "postcss-loader": "7.0.2",
"postcss-preset-env": "8.0.1", "postcss-preset-env": "8.0.1",
@ -105,11 +105,11 @@
"stylelint": "15.2.0", "stylelint": "15.2.0",
"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": "6.0.2", "stylelint-order": "6.0.3",
"stylelint-scss": "4.4.0", "stylelint-scss": "4.4.0",
"ts-loader": "9.4.2", "ts-loader": "9.4.2",
"typescript": "4.9.5", "typescript": "4.9.5",
"webpack": "5.75.0", "webpack": "5.76.0",
"webpack-cli": "5.0.1", "webpack-cli": "5.0.1",
"webpack-dev-server": "4.11.1", "webpack-dev-server": "4.11.1",
"webpack-merge": "5.8.0", "webpack-merge": "5.8.0",
@ -2611,11 +2611,11 @@
"integrity": "sha512-xQVJw+lZUg4U1TmLS80reBECfPtpCgRF8hhUSvUUQM9g68OvINyUU3K2yqRH+8tomGpghiRaIcr/bUJ83e0veA==" "integrity": "sha512-xQVJw+lZUg4U1TmLS80reBECfPtpCgRF8hhUSvUUQM9g68OvINyUU3K2yqRH+8tomGpghiRaIcr/bUJ83e0veA=="
}, },
"node_modules/@jellyfin/sdk": { "node_modules/@jellyfin/sdk": {
"version": "0.0.0-unstable.202302070552", "version": "0.0.0-unstable.202303130502",
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202302070552.tgz", "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202303130502.tgz",
"integrity": "sha512-hwrHLLFPTCEcrMywpLWwgGKEDKBjgu3o+ruMV3qCG7uAmKAQq48kuaZ818rJD+LjWBjBIUixnLJq1qUlHsgc+A==", "integrity": "sha512-j3ntDjTnZlU511J0CpuPVSSSYrx9so4Y3q6qYOVsB6/evH4/2BNkWYRbKgCnUtCULIV90T6KGc2EcS4GGxojCg==",
"dependencies": { "dependencies": {
"axios": "1.2.6", "axios": "1.3.4",
"compare-versions": "5.0.3" "compare-versions": "5.0.3"
} }
}, },
@ -3200,14 +3200,14 @@
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz",
"integrity": "sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==", "integrity": "sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "5.54.0", "@typescript-eslint/scope-manager": "5.54.1",
"@typescript-eslint/type-utils": "5.54.0", "@typescript-eslint/type-utils": "5.54.1",
"@typescript-eslint/utils": "5.54.0", "@typescript-eslint/utils": "5.54.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"grapheme-splitter": "^1.0.4", "grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0", "ignore": "^5.2.0",
@ -3249,14 +3249,14 @@
} }
}, },
"node_modules/@typescript-eslint/parser": { "node_modules/@typescript-eslint/parser": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.1.tgz",
"integrity": "sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==", "integrity": "sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "5.54.0", "@typescript-eslint/scope-manager": "5.54.1",
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"@typescript-eslint/typescript-estree": "5.54.0", "@typescript-eslint/typescript-estree": "5.54.1",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"engines": { "engines": {
@ -3276,13 +3276,13 @@
} }
}, },
"node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/scope-manager": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz",
"integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", "integrity": "sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"@typescript-eslint/visitor-keys": "5.54.0" "@typescript-eslint/visitor-keys": "5.54.1"
}, },
"engines": { "engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0" "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@ -3293,13 +3293,13 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz",
"integrity": "sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==", "integrity": "sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "5.54.0", "@typescript-eslint/typescript-estree": "5.54.1",
"@typescript-eslint/utils": "5.54.0", "@typescript-eslint/utils": "5.54.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"tsutils": "^3.21.0" "tsutils": "^3.21.0"
}, },
@ -3320,9 +3320,9 @@
} }
}, },
"node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/types": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz",
"integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", "integrity": "sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0" "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@ -3333,13 +3333,13 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/typescript-estree": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz",
"integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", "integrity": "sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"@typescript-eslint/visitor-keys": "5.54.0", "@typescript-eslint/visitor-keys": "5.54.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@ -3404,16 +3404,16 @@
} }
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.1.tgz",
"integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", "integrity": "sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/json-schema": "^7.0.9", "@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12", "@types/semver": "^7.3.12",
"@typescript-eslint/scope-manager": "5.54.0", "@typescript-eslint/scope-manager": "5.54.1",
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"@typescript-eslint/typescript-estree": "5.54.0", "@typescript-eslint/typescript-estree": "5.54.1",
"eslint-scope": "^5.1.1", "eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0", "eslint-utils": "^3.0.0",
"semver": "^7.3.7" "semver": "^7.3.7"
@ -3445,12 +3445,12 @@
} }
}, },
"node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/visitor-keys": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz",
"integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", "integrity": "sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"eslint-visitor-keys": "^3.3.0" "eslint-visitor-keys": "^3.3.0"
}, },
"engines": { "engines": {
@ -4111,9 +4111,9 @@
} }
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.2.6", "version": "1.3.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.6.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz",
"integrity": "sha512-rC/7F08XxZwjMV4iuWv+JpD3E0Ksqg9nac4IIg6RwNuF0JTeWoCo/mBNG54+tNhhI11G3/VDRbdDQTs9hGp4pQ==", "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==",
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.0", "follow-redirects": "^1.15.0",
"form-data": "^4.0.0", "form-data": "^4.0.0",
@ -5965,9 +5965,9 @@
"integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==" "integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww=="
}, },
"node_modules/dompurify": { "node_modules/dompurify": {
"version": "2.4.4", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.4.tgz", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.1.tgz",
"integrity": "sha512-1e2SpqHiRx4DPvmRuXU5J0di3iQACwJM+mFGE2HAkkK7Tbnfk9WcghcAmyWc9CRrjyRRUpmuhPUH6LphQQR3EQ==" "integrity": "sha512-60tsgvPKwItxZZdfLmamp0MTcecCta3avOhsLgPZ0qcWt96OasFfhkeIRbJ6br5i0fQawT1/RBGB5L58/Jpwuw=="
}, },
"node_modules/domutils": { "node_modules/domutils": {
"version": "1.7.0", "version": "1.7.0",
@ -8468,9 +8468,9 @@
} }
}, },
"node_modules/hls.js": { "node_modules/hls.js": {
"version": "1.3.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.3.4.tgz", "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.2.4.tgz",
"integrity": "sha512-iFEwVqtEDk6sKotcTwtJ5OMo/nuDTk9PrpB8FI2J2WYf8EriTVfR4FaK0aNyYtwbYeRSWCXJKlz23xeREdlNYg==" "integrity": "sha512-yC3K79Kzq1W+OgjT12JxKMDXv9DbfvulppxmPBl7D04SaTyd2IwWk5eNASQV1mUaPlKbjr16yI9292qpSGo0ig=="
}, },
"node_modules/hoist-non-react-statics": { "node_modules/hoist-non-react-statics": {
"version": "3.3.2", "version": "3.3.2",
@ -10400,9 +10400,9 @@
} }
}, },
"node_modules/mini-css-extract-plugin": { "node_modules/mini-css-extract-plugin": {
"version": "2.7.2", "version": "2.7.3",
"resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.3.tgz",
"integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", "integrity": "sha512-CD9cXeKeXLcnMw8FZdtfrRrLaM7gwCl4nKuKn2YkY2Bw5wdlB8zU2cCzw+w2zS9RFvbrufTBkMCJACNPwqQA0w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"schema-utils": "^4.0.0" "schema-utils": "^4.0.0"
@ -17063,22 +17063,22 @@
} }
}, },
"node_modules/stylelint-order": { "node_modules/stylelint-order": {
"version": "6.0.2", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.2.tgz", "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.3.tgz",
"integrity": "sha512-yuac0BE6toHd27wUPvYVVQicAJthKFIv1HPQFH3Q0dExiO3Z6Uam7geoO0tUd5Z9ddsATYK++1qWNDX4RxMH5Q==", "integrity": "sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"postcss": "^8.4.21", "postcss": "^8.4.21",
"postcss-sorting": "^8.0.1" "postcss-sorting": "^8.0.2"
}, },
"peerDependencies": { "peerDependencies": {
"stylelint": "^14.0.0 || ^15.0.0" "stylelint": "^14.0.0 || ^15.0.0"
} }
}, },
"node_modules/stylelint-order/node_modules/postcss-sorting": { "node_modules/stylelint-order/node_modules/postcss-sorting": {
"version": "8.0.1", "version": "8.0.2",
"resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz",
"integrity": "sha512-go9Zoxx7KQH+uLrJ9xa5wRErFeXu01ydA6O8m7koPXkmAN7Ts//eRcIqjo0stBR4+Nir2gMYDOWAOx7O5EPUZA==", "integrity": "sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==",
"dev": true, "dev": true,
"peerDependencies": { "peerDependencies": {
"postcss": "^8.4.20" "postcss": "^8.4.20"
@ -18361,9 +18361,9 @@
"dev": true "dev": true
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.75.0", "version": "5.76.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.0.tgz",
"integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", "integrity": "sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==",
"devOptional": true, "devOptional": true,
"dependencies": { "dependencies": {
"@types/eslint-scope": "^3.7.3", "@types/eslint-scope": "^3.7.3",
@ -20912,11 +20912,11 @@
"integrity": "sha512-xQVJw+lZUg4U1TmLS80reBECfPtpCgRF8hhUSvUUQM9g68OvINyUU3K2yqRH+8tomGpghiRaIcr/bUJ83e0veA==" "integrity": "sha512-xQVJw+lZUg4U1TmLS80reBECfPtpCgRF8hhUSvUUQM9g68OvINyUU3K2yqRH+8tomGpghiRaIcr/bUJ83e0veA=="
}, },
"@jellyfin/sdk": { "@jellyfin/sdk": {
"version": "0.0.0-unstable.202302070552", "version": "0.0.0-unstable.202303130502",
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202302070552.tgz", "resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202303130502.tgz",
"integrity": "sha512-hwrHLLFPTCEcrMywpLWwgGKEDKBjgu3o+ruMV3qCG7uAmKAQq48kuaZ818rJD+LjWBjBIUixnLJq1qUlHsgc+A==", "integrity": "sha512-j3ntDjTnZlU511J0CpuPVSSSYrx9so4Y3q6qYOVsB6/evH4/2BNkWYRbKgCnUtCULIV90T6KGc2EcS4GGxojCg==",
"requires": { "requires": {
"axios": "1.2.6", "axios": "1.3.4",
"compare-versions": "5.0.3" "compare-versions": "5.0.3"
} }
}, },
@ -21437,14 +21437,14 @@
} }
}, },
"@typescript-eslint/eslint-plugin": { "@typescript-eslint/eslint-plugin": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz",
"integrity": "sha512-+hSN9BdSr629RF02d7mMtXhAJvDTyCbprNYJKrXETlul/Aml6YZwd90XioVbjejQeHbb3R8Dg0CkRgoJDxo8aw==", "integrity": "sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/scope-manager": "5.54.0", "@typescript-eslint/scope-manager": "5.54.1",
"@typescript-eslint/type-utils": "5.54.0", "@typescript-eslint/type-utils": "5.54.1",
"@typescript-eslint/utils": "5.54.0", "@typescript-eslint/utils": "5.54.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"grapheme-splitter": "^1.0.4", "grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0", "ignore": "^5.2.0",
@ -21466,53 +21466,53 @@
} }
}, },
"@typescript-eslint/parser": { "@typescript-eslint/parser": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.1.tgz",
"integrity": "sha512-aAVL3Mu2qTi+h/r04WI/5PfNWvO6pdhpeMRWk9R7rEV4mwJNzoWf5CCU5vDKBsPIFQFjEq1xg7XBI2rjiMXQbQ==", "integrity": "sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/scope-manager": "5.54.0", "@typescript-eslint/scope-manager": "5.54.1",
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"@typescript-eslint/typescript-estree": "5.54.0", "@typescript-eslint/typescript-estree": "5.54.1",
"debug": "^4.3.4" "debug": "^4.3.4"
} }
}, },
"@typescript-eslint/scope-manager": { "@typescript-eslint/scope-manager": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz",
"integrity": "sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==", "integrity": "sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"@typescript-eslint/visitor-keys": "5.54.0" "@typescript-eslint/visitor-keys": "5.54.1"
} }
}, },
"@typescript-eslint/type-utils": { "@typescript-eslint/type-utils": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz",
"integrity": "sha512-WI+WMJ8+oS+LyflqsD4nlXMsVdzTMYTxl16myXPaCXnSgc7LWwMsjxQFZCK/rVmTZ3FN71Ct78ehO9bRC7erYQ==", "integrity": "sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/typescript-estree": "5.54.0", "@typescript-eslint/typescript-estree": "5.54.1",
"@typescript-eslint/utils": "5.54.0", "@typescript-eslint/utils": "5.54.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"tsutils": "^3.21.0" "tsutils": "^3.21.0"
} }
}, },
"@typescript-eslint/types": { "@typescript-eslint/types": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz",
"integrity": "sha512-nExy+fDCBEgqblasfeE3aQ3NuafBUxZxgxXcYfzYRZFHdVvk5q60KhCSkG0noHgHRo/xQ/BOzURLZAafFpTkmQ==", "integrity": "sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==",
"dev": true "dev": true
}, },
"@typescript-eslint/typescript-estree": { "@typescript-eslint/typescript-estree": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz",
"integrity": "sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==", "integrity": "sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"@typescript-eslint/visitor-keys": "5.54.0", "@typescript-eslint/visitor-keys": "5.54.1",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@ -21552,16 +21552,16 @@
} }
}, },
"@typescript-eslint/utils": { "@typescript-eslint/utils": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.1.tgz",
"integrity": "sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==", "integrity": "sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/json-schema": "^7.0.9", "@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12", "@types/semver": "^7.3.12",
"@typescript-eslint/scope-manager": "5.54.0", "@typescript-eslint/scope-manager": "5.54.1",
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"@typescript-eslint/typescript-estree": "5.54.0", "@typescript-eslint/typescript-estree": "5.54.1",
"eslint-scope": "^5.1.1", "eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0", "eslint-utils": "^3.0.0",
"semver": "^7.3.7" "semver": "^7.3.7"
@ -21579,12 +21579,12 @@
} }
}, },
"@typescript-eslint/visitor-keys": { "@typescript-eslint/visitor-keys": {
"version": "5.54.0", "version": "5.54.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz",
"integrity": "sha512-xu4wT7aRCakGINTLGeyGqDn+78BwFlggwBjnHa1ar/KaGagnmwLYmlrXIrgAaQ3AE1Vd6nLfKASm7LrFHNbKGA==", "integrity": "sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@typescript-eslint/types": "5.54.0", "@typescript-eslint/types": "5.54.1",
"eslint-visitor-keys": "^3.3.0" "eslint-visitor-keys": "^3.3.0"
}, },
"dependencies": { "dependencies": {
@ -22088,9 +22088,9 @@
"dev": true "dev": true
}, },
"axios": { "axios": {
"version": "1.2.6", "version": "1.3.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.2.6.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz",
"integrity": "sha512-rC/7F08XxZwjMV4iuWv+JpD3E0Ksqg9nac4IIg6RwNuF0JTeWoCo/mBNG54+tNhhI11G3/VDRbdDQTs9hGp4pQ==", "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==",
"requires": { "requires": {
"follow-redirects": "^1.15.0", "follow-redirects": "^1.15.0",
"form-data": "^4.0.0", "form-data": "^4.0.0",
@ -23480,9 +23480,9 @@
"integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==" "integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww=="
}, },
"dompurify": { "dompurify": {
"version": "2.4.4", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.4.tgz", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.1.tgz",
"integrity": "sha512-1e2SpqHiRx4DPvmRuXU5J0di3iQACwJM+mFGE2HAkkK7Tbnfk9WcghcAmyWc9CRrjyRRUpmuhPUH6LphQQR3EQ==" "integrity": "sha512-60tsgvPKwItxZZdfLmamp0MTcecCta3avOhsLgPZ0qcWt96OasFfhkeIRbJ6br5i0fQawT1/RBGB5L58/Jpwuw=="
}, },
"domutils": { "domutils": {
"version": "1.7.0", "version": "1.7.0",
@ -25398,9 +25398,9 @@
} }
}, },
"hls.js": { "hls.js": {
"version": "1.3.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.3.4.tgz", "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.2.4.tgz",
"integrity": "sha512-iFEwVqtEDk6sKotcTwtJ5OMo/nuDTk9PrpB8FI2J2WYf8EriTVfR4FaK0aNyYtwbYeRSWCXJKlz23xeREdlNYg==" "integrity": "sha512-yC3K79Kzq1W+OgjT12JxKMDXv9DbfvulppxmPBl7D04SaTyd2IwWk5eNASQV1mUaPlKbjr16yI9292qpSGo0ig=="
}, },
"hoist-non-react-statics": { "hoist-non-react-statics": {
"version": "3.3.2", "version": "3.3.2",
@ -26818,9 +26818,9 @@
"dev": true "dev": true
}, },
"mini-css-extract-plugin": { "mini-css-extract-plugin": {
"version": "2.7.2", "version": "2.7.3",
"resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.3.tgz",
"integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", "integrity": "sha512-CD9cXeKeXLcnMw8FZdtfrRrLaM7gwCl4nKuKn2YkY2Bw5wdlB8zU2cCzw+w2zS9RFvbrufTBkMCJACNPwqQA0w==",
"dev": true, "dev": true,
"requires": { "requires": {
"schema-utils": "^4.0.0" "schema-utils": "^4.0.0"
@ -31951,19 +31951,19 @@
} }
}, },
"stylelint-order": { "stylelint-order": {
"version": "6.0.2", "version": "6.0.3",
"resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.2.tgz", "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.3.tgz",
"integrity": "sha512-yuac0BE6toHd27wUPvYVVQicAJthKFIv1HPQFH3Q0dExiO3Z6Uam7geoO0tUd5Z9ddsATYK++1qWNDX4RxMH5Q==", "integrity": "sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==",
"dev": true, "dev": true,
"requires": { "requires": {
"postcss": "^8.4.21", "postcss": "^8.4.21",
"postcss-sorting": "^8.0.1" "postcss-sorting": "^8.0.2"
}, },
"dependencies": { "dependencies": {
"postcss-sorting": { "postcss-sorting": {
"version": "8.0.1", "version": "8.0.2",
"resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.2.tgz",
"integrity": "sha512-go9Zoxx7KQH+uLrJ9xa5wRErFeXu01ydA6O8m7koPXkmAN7Ts//eRcIqjo0stBR4+Nir2gMYDOWAOx7O5EPUZA==", "integrity": "sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==",
"dev": true, "dev": true,
"requires": {} "requires": {}
} }
@ -32798,9 +32798,9 @@
"dev": true "dev": true
}, },
"webpack": { "webpack": {
"version": "5.75.0", "version": "5.76.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.0.tgz",
"integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", "integrity": "sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==",
"devOptional": true, "devOptional": true,
"requires": { "requires": {
"@types/eslint-scope": "^3.7.3", "@types/eslint-scope": "^3.7.3",

View file

@ -19,8 +19,8 @@
"@types/lodash-es": "4.17.6", "@types/lodash-es": "4.17.6",
"@types/react": "17.0.53", "@types/react": "17.0.53",
"@types/react-dom": "17.0.19", "@types/react-dom": "17.0.19",
"@typescript-eslint/eslint-plugin": "5.54.0", "@typescript-eslint/eslint-plugin": "5.54.1",
"@typescript-eslint/parser": "5.54.0", "@typescript-eslint/parser": "5.54.1",
"@uupaa/dynamic-import-polyfill": "1.0.2", "@uupaa/dynamic-import-polyfill": "1.0.2",
"autoprefixer": "10.4.13", "autoprefixer": "10.4.13",
"babel-loader": "9.1.2", "babel-loader": "9.1.2",
@ -44,7 +44,7 @@
"expose-loader": "4.0.0", "expose-loader": "4.0.0",
"html-loader": "4.2.0", "html-loader": "4.2.0",
"html-webpack-plugin": "5.5.0", "html-webpack-plugin": "5.5.0",
"mini-css-extract-plugin": "2.7.2", "mini-css-extract-plugin": "2.7.3",
"postcss": "8.4.21", "postcss": "8.4.21",
"postcss-loader": "7.0.2", "postcss-loader": "7.0.2",
"postcss-preset-env": "8.0.1", "postcss-preset-env": "8.0.1",
@ -56,11 +56,11 @@
"stylelint": "15.2.0", "stylelint": "15.2.0",
"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": "6.0.2", "stylelint-order": "6.0.3",
"stylelint-scss": "4.4.0", "stylelint-scss": "4.4.0",
"ts-loader": "9.4.2", "ts-loader": "9.4.2",
"typescript": "4.9.5", "typescript": "4.9.5",
"webpack": "5.75.0", "webpack": "5.76.0",
"webpack-cli": "5.0.1", "webpack-cli": "5.0.1",
"webpack-dev-server": "4.11.1", "webpack-dev-server": "4.11.1",
"webpack-merge": "5.8.0", "webpack-merge": "5.8.0",
@ -82,14 +82,14 @@
"classnames": "2.3.2", "classnames": "2.3.2",
"core-js": "3.29.0", "core-js": "3.29.0",
"date-fns": "2.29.3", "date-fns": "2.29.3",
"dompurify": "2.4.4", "dompurify": "3.0.1",
"epubjs": "0.4.2", "epubjs": "0.4.2",
"escape-html": "1.0.3", "escape-html": "1.0.3",
"fast-text-encoding": "1.0.6", "fast-text-encoding": "1.0.6",
"flv.js": "1.6.2", "flv.js": "1.6.2",
"headroom.js": "0.12.0", "headroom.js": "0.12.0",
"history": "5.3.0", "history": "5.3.0",
"hls.js": "1.3.4", "hls.js": "1.2.4",
"intersection-observer": "0.12.2", "intersection-observer": "0.12.2",
"jellyfin-apiclient": "1.10.0", "jellyfin-apiclient": "1.10.0",
"jquery": "3.6.3", "jquery": "3.6.3",
@ -131,7 +131,6 @@
"scripts": { "scripts": {
"start": "npm run serve", "start": "npm run serve",
"serve": "webpack serve --config webpack.dev.js", "serve": "webpack serve --config webpack.dev.js",
"prepare": "node ./scripts/prepare.js",
"build:development": "webpack --config webpack.dev.js", "build:development": "webpack --config webpack.dev.js",
"build:production": "cross-env NODE_ENV=\"production\" webpack --config webpack.prod.js", "build:production": "cross-env NODE_ENV=\"production\" webpack --config webpack.prod.js",
"build:check": "tsc --noEmit", "build:check": "tsc --noEmit",

View file

@ -1,12 +0,0 @@
const { execSync } = require('child_process');
/**
* The npm `prepare` script needs to run a build to support installing
* a package from git repositories (this is dumb but a limitation of how
* npm behaves). We don't want to run these in CI though because
* building is slow so this script will skip the build when the
* `SKIP_PREPARE` environment variable has been set.
*/
if (!process.env.SKIP_PREPARE) {
execSync('webpack --config webpack.prod.js', { stdio: 'inherit' });
}

View file

@ -18,6 +18,7 @@ import browser from '../../scripts/browser';
import { playbackManager } from '../playback/playbackmanager'; import { playbackManager } from '../playback/playbackmanager';
import itemShortcuts from '../shortcuts'; import itemShortcuts from '../shortcuts';
import imageHelper from '../../scripts/imagehelper'; import imageHelper from '../../scripts/imagehelper';
import { randomInt } from '../../utils/number.ts';
import './card.scss'; import './card.scss';
import '../../elements/emby-button/paper-icon-button-light'; import '../../elements/emby-button/paper-icon-button-light';
import '../guide/programs.scss'; import '../guide/programs.scss';
@ -640,16 +641,6 @@ import { appRouter } from '../appRouter';
}; };
} }
/**
* Generates a random integer in a given range.
* @param {number} min - Minimum of the range.
* @param {number} max - Maximum of the range.
* @returns {number} Randomly generated number.
*/
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
/** /**
* Generates an index used to select the default color of a card based on a string. * Generates an index used to select the default color of a card based on a string.
* @param {?string} [str] - String to use for generating the index. * @param {?string} [str] - String to use for generating the index.
@ -669,7 +660,7 @@ import { appRouter } from '../appRouter';
return (index % numRandomColors) + 1; return (index % numRandomColors) + 1;
} else { } else {
return getRandomInt(1, numRandomColors); return randomInt(1, numRandomColors);
} }
} }

View file

@ -15,7 +15,6 @@ import toast from './toast/toast';
const user = options.user; const user = options.user;
const canPlay = playbackManager.canPlay(item); const canPlay = playbackManager.canPlay(item);
const restrictOptions = (browser.operaTv || browser.web0s) && !user.Policy.IsAdministrator;
const commands = []; const commands = [];
@ -99,8 +98,8 @@ import toast from './toast/toast';
}); });
} }
if (!restrictOptions) { if (!browser.tv) {
if (itemHelper.supportsAddingToCollection(item)) { if (itemHelper.supportsAddingToCollection(item) && options.EnableCollectionManagement) {
commands.push({ commands.push({
name: globalize.translate('AddToCollection'), name: globalize.translate('AddToCollection'),
id: 'addtocollection', id: 'addtocollection',
@ -272,7 +271,7 @@ import toast from './toast/toast';
}); });
} }
if (!restrictOptions && options.share === true && itemHelper.canShare(item, user)) { if (!browser.tv && options.share === true && itemHelper.canShare(item, user)) {
commands.push({ commands.push({
name: globalize.translate('Share'), name: globalize.translate('Share'),
id: 'share', id: 'share',

View file

@ -1,3 +1,5 @@
import { randomInt } from '../../utils/number.ts';
let currentId = 0; let currentId = 0;
function addUniquePlaylistItemId(item) { function addUniquePlaylistItemId(item) {
if (!item.PlaylistItemId) { if (!item.PlaylistItemId) {
@ -56,7 +58,7 @@ class PlayQueueManager {
const currentPlaylistItem = this._playlist.splice(this.getCurrentPlaylistIndex(), 1)[0]; const currentPlaylistItem = this._playlist.splice(this.getCurrentPlaylistIndex(), 1)[0];
for (let i = this._playlist.length - 1; i > 0; i--) { for (let i = this._playlist.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * i); const j = randomInt(0, i - 1);
const temp = this._playlist[i]; const temp = this._playlist[i];
this._playlist[i] = this._playlist[j]; this._playlist[i] = this._playlist[j];
this._playlist[j] = temp; this._playlist[j] = temp;

View file

@ -80,6 +80,13 @@
</div> </div>
</div> </div>
<div class="verticalSection">
<h2>${HeaderPerformance}</h2>
<div class="inputContainer">
<input is="emby-input" id="txtParallelImageEncodingLimit" label="${LabelParallelImageEncodingLimit}" type="number" pattern="[0-9]*" min="0" step="1" />
<div class="fieldDescription">${LabelParallelImageEncodingLimitHelp}</div>
</div>
</div>
<br /> <br />
<div> <div>
<button is="emby-button" type="submit" class="raised button-submit block"> <button is="emby-button" type="submit" class="raised button-submit block">

View file

@ -21,6 +21,7 @@ import alert from '../../components/alert';
$('#selectLocalizationLanguage', page).html(languageOptions.map(function (language) { $('#selectLocalizationLanguage', page).html(languageOptions.map(function (language) {
return '<option value="' + language.Value + '">' + language.Name + '</option>'; return '<option value="' + language.Value + '">' + language.Name + '</option>';
})).val(config.UICulture); })).val(config.UICulture);
page.querySelector('#txtParallelImageEncodingLimit').value = config.ParallelImageEncodingLimit || '';
loading.hide(); loading.hide();
} }
@ -36,6 +37,7 @@ import alert from '../../components/alert';
config.MetadataPath = $('#txtMetadataPath', form).val(); config.MetadataPath = $('#txtMetadataPath', form).val();
config.MetadataNetworkPath = $('#txtMetadataNetworkPath', form).val(); config.MetadataNetworkPath = $('#txtMetadataNetworkPath', form).val();
config.QuickConnectAvailable = form.querySelector('#chkQuickConnectAvailable').checked; config.QuickConnectAvailable = form.querySelector('#chkQuickConnectAvailable').checked;
config.ParallelImageEncodingLimit = parseInt(form.querySelector('#txtParallelImageEncodingLimit').value || '0', 10);
ApiClient.updateServerConfiguration(config).then(function() { ApiClient.updateServerConfiguration(config).then(function() {
ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig) { ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig) {

View file

@ -1,4 +1,5 @@
import { PluginType } from '../../types/plugin.ts'; import { PluginType } from '../../types/plugin.ts';
import { randomInt } from '../../utils/number.ts';
export default function () { export default function () {
const self = this; const self = this;
@ -25,16 +26,12 @@ export default function () {
const elem = document.querySelector('.logoScreenSaverImage'); const elem = document.querySelector('.logoScreenSaverImage');
if (elem && elem.animate) { if (elem && elem.animate) {
const random = getRandomInt(0, animations.length - 1); const random = randomInt(0, animations.length - 1);
animations[random](elem, 1); animations[random](elem, 1);
} }
} }
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function bounceInLeft(elem, iterations) { function bounceInLeft(elem, iterations) {
const keyframes = [ const keyframes = [
{ transform: 'translate3d(-3000px, 0, 0)', opacity: '0', offset: 0 }, { transform: 'translate3d(-3000px, 0, 0)', opacity: '0', offset: 0 },

View file

@ -159,6 +159,7 @@ const UserEdit: FunctionComponent = () => {
(page.querySelector('.chkIsAdmin') as HTMLInputElement).checked = user.Policy.IsAdministrator; (page.querySelector('.chkIsAdmin') as HTMLInputElement).checked = user.Policy.IsAdministrator;
(page.querySelector('.chkDisabled') as HTMLInputElement).checked = user.Policy.IsDisabled; (page.querySelector('.chkDisabled') as HTMLInputElement).checked = user.Policy.IsDisabled;
(page.querySelector('.chkIsHidden') as HTMLInputElement).checked = user.Policy.IsHidden; (page.querySelector('.chkIsHidden') as HTMLInputElement).checked = user.Policy.IsHidden;
(page.querySelector('.chkEnableCollectionManagement') as HTMLInputElement).checked = user.Policy.EnableCollectionManagement;
(page.querySelector('.chkRemoteControlSharedDevices') as HTMLInputElement).checked = user.Policy.EnableSharedDeviceControl; (page.querySelector('.chkRemoteControlSharedDevices') as HTMLInputElement).checked = user.Policy.EnableSharedDeviceControl;
(page.querySelector('.chkEnableRemoteControlOtherUsers') as HTMLInputElement).checked = user.Policy.EnableRemoteControlOfOtherUsers; (page.querySelector('.chkEnableRemoteControlOtherUsers') as HTMLInputElement).checked = user.Policy.EnableRemoteControlOfOtherUsers;
(page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked = user.Policy.EnableContentDownloading; (page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked = user.Policy.EnableContentDownloading;
@ -224,6 +225,7 @@ const UserEdit: FunctionComponent = () => {
user.Policy.EnableAudioPlaybackTranscoding = (page.querySelector('.chkEnableAudioPlaybackTranscoding') as HTMLInputElement).checked; user.Policy.EnableAudioPlaybackTranscoding = (page.querySelector('.chkEnableAudioPlaybackTranscoding') as HTMLInputElement).checked;
user.Policy.EnableVideoPlaybackTranscoding = (page.querySelector('.chkEnableVideoPlaybackTranscoding') as HTMLInputElement).checked; user.Policy.EnableVideoPlaybackTranscoding = (page.querySelector('.chkEnableVideoPlaybackTranscoding') as HTMLInputElement).checked;
user.Policy.EnablePlaybackRemuxing = (page.querySelector('.chkEnableVideoPlaybackRemuxing') as HTMLInputElement).checked; user.Policy.EnablePlaybackRemuxing = (page.querySelector('.chkEnableVideoPlaybackRemuxing') as HTMLInputElement).checked;
user.Policy.EnableCollectionManagement = (page.querySelector('.chkEnableCollectionManagement') as HTMLInputElement).checked;
user.Policy.ForceRemoteSourceTranscoding = (page.querySelector('.chkForceRemoteSourceTranscoding') as HTMLInputElement).checked; user.Policy.ForceRemoteSourceTranscoding = (page.querySelector('.chkForceRemoteSourceTranscoding') as HTMLInputElement).checked;
user.Policy.EnableContentDownloading = (page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked; user.Policy.EnableContentDownloading = (page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked;
user.Policy.EnableRemoteAccess = (page.querySelector('.chkRemoteAccess') as HTMLInputElement).checked; user.Policy.EnableRemoteAccess = (page.querySelector('.chkRemoteAccess') as HTMLInputElement).checked;
@ -375,6 +377,11 @@ const UserEdit: FunctionComponent = () => {
className='chkIsAdmin' className='chkIsAdmin'
title='OptionAllowUserToManageServer' title='OptionAllowUserToManageServer'
/> />
<CheckBoxElement
labelClassName='checkboxContainer'
className='chkEnableCollectionManagement'
title='AllowCollectionManagement'
/>
<div id='featureAccessFields' className='verticalSection'> <div id='featureAccessFields' className='verticalSection'>
<h2 className='paperListLabel'> <h2 className='paperListLabel'>
{globalize.translate('HeaderFeatureAccess')} {globalize.translate('HeaderFeatureAccess')}

View file

@ -1702,5 +1702,8 @@
"SubtitleWhite": "Белы", "SubtitleWhite": "Белы",
"SubtitleYellow": "Жоўты", "SubtitleYellow": "Жоўты",
"Featurette": "Кароткаметражка", "Featurette": "Кароткаметражка",
"Short": "Кароткаметражка" "Short": "Кароткаметражка",
"HeaderPerformance": "Прадукцыйнасць",
"LabelParallelImageEncodingLimit": "Ліміт паралельнага кадавання выявы",
"LabelParallelImageEncodingLimitHelp": "Максімальная колькасць кадавання малюнкаў, якія могуць працаваць паралельна. Пры ўсталёўцы 0 вы выбіраеце ліміт на аснове спецыфікацый вашай сістэмы."
} }

File diff suppressed because it is too large Load diff

View file

@ -1716,5 +1716,8 @@
"SubtitleWhite": "Bílá", "SubtitleWhite": "Bílá",
"SubtitleYellow": "Žlutá", "SubtitleYellow": "Žlutá",
"Featurette": "Středně dlouhý film", "Featurette": "Středně dlouhý film",
"Short": "Krátký film" "Short": "Krátký film",
"HeaderPerformance": "Výkon",
"LabelParallelImageEncodingLimit": "Počet paralelních kódování obrázků",
"LabelParallelImageEncodingLimitHelp": "Maximální počet kódování obrázků, které mohou běžet zároveň. Nastavením na 0 bude limit nastaven dle parametrů systému."
} }

View file

@ -215,11 +215,11 @@
"HeaderKeepRecording": "Bevar Optagelse", "HeaderKeepRecording": "Bevar Optagelse",
"HeaderKeepSeries": "Behold serie", "HeaderKeepSeries": "Behold serie",
"HeaderKodiMetadataHelp": "For at aktivere eller deaktivere NFO-metadata skal du redigere et bibliotek i Jellyfin-biblioteksopsætningen og finde afsnittet om metadata.", "HeaderKodiMetadataHelp": "For at aktivere eller deaktivere NFO-metadata skal du redigere et bibliotek i Jellyfin-biblioteksopsætningen og finde afsnittet om metadata.",
"HeaderLatestEpisodes": "Sidste episoder", "HeaderLatestEpisodes": "Nyligt tilføjet episoder",
"HeaderLatestMedia": "Seneste medier", "HeaderLatestMedia": "Nyligt tilføjet medier",
"HeaderLatestMovies": "Seneste film", "HeaderLatestMovies": "Nyligt tilføjet film",
"HeaderLatestMusic": "Seneste musik", "HeaderLatestMusic": "Nyligt tilføjet musik",
"HeaderLatestRecordings": "Seneste optagelse", "HeaderLatestRecordings": "Nyligt tilføjet optagelse",
"HeaderLibraries": "Biblioteker", "HeaderLibraries": "Biblioteker",
"HeaderLibraryAccess": "Adgang til biblioteker", "HeaderLibraryAccess": "Adgang til biblioteker",
"HeaderLibraryFolders": "Mediemapper", "HeaderLibraryFolders": "Mediemapper",
@ -581,7 +581,7 @@
"LabelffmpegPath": "FFmpeg sti:", "LabelffmpegPath": "FFmpeg sti:",
"LabelffmpegPathHelp": "Stien til FFmpeg applikationsfilen eller mappen indeholdende FFmpeg.", "LabelffmpegPathHelp": "Stien til FFmpeg applikationsfilen eller mappen indeholdende FFmpeg.",
"LanNetworksHelp": "Komma separeret liste over IP adresser eller netmasker til netværk der vil blive anset for at være lokale når der bliver påtvunget båndbredde restriktioner. Hvis sat vil alle andre IP adresser bliver set som eksterne og blive underlagt båndbredde restriktioner. Hvis blank, er det kun serverens subnet der bliver betragtet som et lokalt netværk.", "LanNetworksHelp": "Komma separeret liste over IP adresser eller netmasker til netværk der vil blive anset for at være lokale når der bliver påtvunget båndbredde restriktioner. Hvis sat vil alle andre IP adresser bliver set som eksterne og blive underlagt båndbredde restriktioner. Hvis blank, er det kun serverens subnet der bliver betragtet som et lokalt netværk.",
"LatestFromLibrary": "Seneste {0}", "LatestFromLibrary": "Nyligt tilføjet i {0}",
"LibraryAccessHelp": "Vælg hvilke mediemapper der skal deles med denne bruger. Administratorer vil kunne redigere alle mapper ved hjælp af metadata administratoren.", "LibraryAccessHelp": "Vælg hvilke mediemapper der skal deles med denne bruger. Administratorer vil kunne redigere alle mapper ved hjælp af metadata administratoren.",
"LiveBroadcasts": "Live-udsending", "LiveBroadcasts": "Live-udsending",
"ManageLibrary": "Håndter bibliotek", "ManageLibrary": "Håndter bibliotek",
@ -862,7 +862,7 @@
"TabContainers": "Containere", "TabContainers": "Containere",
"TabDashboard": "Betjeningspanel", "TabDashboard": "Betjeningspanel",
"TabDirectPlay": "Direkte afspilning", "TabDirectPlay": "Direkte afspilning",
"TabLatest": "Seneste", "TabLatest": "Nyligt tilføjet",
"TabMusic": "Musik", "TabMusic": "Musik",
"TabMyPlugins": "Mine tilføjelser", "TabMyPlugins": "Mine tilføjelser",
"TabNetworks": "TV netværk", "TabNetworks": "TV netværk",
@ -976,7 +976,7 @@
"Disc": "Disk", "Disc": "Disk",
"Display": "Visning", "Display": "Visning",
"DisplayInMyMedia": "Visning på hjemmeskærm", "DisplayInMyMedia": "Visning på hjemmeskærm",
"DisplayInOtherHomeScreenSections": "Vis på hjemmeskærm sektioner såsom 'seneste medier' og 'se videre'", "DisplayInOtherHomeScreenSections": "Vis på hjemmeskærm sektioner såsom 'Nyligt tilføjet medier' og 'se videre'",
"DisplayMissingEpisodesWithinSeasons": "Vis manglende afsnit inde i sæsoner", "DisplayMissingEpisodesWithinSeasons": "Vis manglende afsnit inde i sæsoner",
"DisplayMissingEpisodesWithinSeasonsHelp": "Dette skal også være aktiveret for TV biblioteker i serverens indstillinger.", "DisplayMissingEpisodesWithinSeasonsHelp": "Dette skal også være aktiveret for TV biblioteker i serverens indstillinger.",
"DisplayModeHelp": "Vælg det ønskede tema for grænsefladen.", "DisplayModeHelp": "Vælg det ønskede tema for grænsefladen.",
@ -1027,7 +1027,7 @@
"HeaderVideoQuality": "Video Kvalitet", "HeaderVideoQuality": "Video Kvalitet",
"HeaderVideoType": "Video Type", "HeaderVideoType": "Video Type",
"Hide": "Skjul", "Hide": "Skjul",
"HideWatchedContentFromLatestMedia": "Skjul set indhold fra 'seneste medier'", "HideWatchedContentFromLatestMedia": "Skjul set indhold fra 'Nyligt tilføjet medier'",
"Home": "Hjem", "Home": "Hjem",
"Horizontal": "Horisontalt", "Horizontal": "Horisontalt",
"Label3DFormat": "3D format:", "Label3DFormat": "3D format:",
@ -1583,7 +1583,7 @@
"LabelTonemappingDesatHelp": "Aktiver desaturering for højdepunkter som overstiger dette niveau af lysstyrke. Desto højere parameter, jo mere farve information vil der blive bevaret. Denne indstilling hjælper mod unaturlige farver i tilfælde af ekstreme højdepunkter, ved at lave en glidende overgang til hvid i stedet. Dette får billedet til at virke mere naturlig, mod at reducere information af farver som ikke kan vises. Anbefalet indstilling er mellem 0 og 0.5.", "LabelTonemappingDesatHelp": "Aktiver desaturering for højdepunkter som overstiger dette niveau af lysstyrke. Desto højere parameter, jo mere farve information vil der blive bevaret. Denne indstilling hjælper mod unaturlige farver i tilfælde af ekstreme højdepunkter, ved at lave en glidende overgang til hvid i stedet. Dette får billedet til at virke mere naturlig, mod at reducere information af farver som ikke kan vises. Anbefalet indstilling er mellem 0 og 0.5.",
"ItemDetails": "Element detaljer", "ItemDetails": "Element detaljer",
"AudioCodecNotSupported": "Lydkodekset er ikke understøttet", "AudioCodecNotSupported": "Lydkodekset er ikke understøttet",
"EnableGamepadHelp": "Lyt efter input fra enhver tilsluttet controller.", "EnableGamepadHelp": "Lyt efter input fra enhver tilsluttet controller. (Kræver: 'TV' visetilstand)",
"LabelEnableGamepad": "Aktiver controller", "LabelEnableGamepad": "Aktiver controller",
"EnableFallbackFontHelp": "Aktiver brugerdefinerede skrifttyper. Dette kan løse problemer med ukorrekt undertekst gengivelse.", "EnableFallbackFontHelp": "Aktiver brugerdefinerede skrifttyper. Dette kan løse problemer med ukorrekt undertekst gengivelse.",
"UseEpisodeImagesInNextUpHelp": "'Kø' og 'fortsæt afspilning' sektioner vil bruge episode billeder som primære miniaturebilleder for serien.", "UseEpisodeImagesInNextUpHelp": "'Kø' og 'fortsæt afspilning' sektioner vil bruge episode billeder som primære miniaturebilleder for serien.",
@ -1647,5 +1647,23 @@
"ButtonExitApp": "Afslut programmet", "ButtonExitApp": "Afslut programmet",
"ButtonClose": "Luk", "ButtonClose": "Luk",
"AddToFavorites": "Tilføj som favorit", "AddToFavorites": "Tilføj som favorit",
"EnableEnhancedNvdecDecoderHelp": "Eksperimentel NVDEC-implementering. Slå ikke denne indstilling til, med mindre du oplever afkodningsfejl." "EnableEnhancedNvdecDecoderHelp": "Eksperimentel NVDEC-implementering. Slå ikke denne indstilling til, med mindre du oplever afkodningsfejl.",
"DownloadAll": "Hent alle",
"ScreenResolution": "Skærmopløsning",
"SecondarySubtitles": "Sekundære undertekster",
"SubtitleBlack": "Sort",
"SubtitleBlue": "Blå",
"SubtitleYellow": "Gul",
"SubtitleWhite": "Hvid",
"Unreleased": "Ikke endnu udgivet",
"Experimental": "Eksperimentel",
"Bold": "Fed",
"HeaderDummyChapter": "Kapitel billeder",
"HeaderPerformance": "Ydelse",
"LabelChapterImageResolution": "Opløsning:",
"SubtitleGray": "Grå",
"SubtitleGreen": "Grøn",
"SubtitleLightGray": "lysegrå",
"SubtitleRed": "Rød",
"Short": "Kort"
} }

View file

@ -557,7 +557,7 @@
"LabelMethod": "Methode:", "LabelMethod": "Methode:",
"LabelMinBackdropDownloadWidth": "Minimale Breite der zu herunterladenden Hintergründe:", "LabelMinBackdropDownloadWidth": "Minimale Breite der zu herunterladenden Hintergründe:",
"LabelMinResumeDuration": "Minimale Dauer für Wiederaufnahme:", "LabelMinResumeDuration": "Minimale Dauer für Wiederaufnahme:",
"LabelMinResumeDurationHelp": "Die Mindestfilmlänge in Sekunden, welche die Abspielzeit speichert und dich fortsetzen lässt.", "LabelMinResumeDurationHelp": "Die kürzeste Wiedergabezeit in Sekunden, die gespeichert wird und von der Sie fortfahren können.",
"LabelMinResumePercentage": "Minimale Prozent für Wiederaufnahme:", "LabelMinResumePercentage": "Minimale Prozent für Wiederaufnahme:",
"LabelMinResumePercentageHelp": "Titel werden als ungesehen eingetragen, wenn sie vor dieser Zeit gestoppt werden.", "LabelMinResumePercentageHelp": "Titel werden als ungesehen eingetragen, wenn sie vor dieser Zeit gestoppt werden.",
"LabelMinScreenshotDownloadWidth": "Minimale Breite für zu herunterladende Screenshot:", "LabelMinScreenshotDownloadWidth": "Minimale Breite für zu herunterladende Screenshot:",
@ -634,7 +634,7 @@
"LabelSerialNumber": "Seriennummer:", "LabelSerialNumber": "Seriennummer:",
"LabelSeriesRecordingPath": "Serien Aufnahmepfad:", "LabelSeriesRecordingPath": "Serien Aufnahmepfad:",
"LabelServerHost": "Adresse:", "LabelServerHost": "Adresse:",
"LabelServerHostHelp": "192.168.1.100 oder https://myserver.com", "LabelServerHostHelp": "192.168.1.100:8096 oder https://myserver.com",
"LabelSimultaneousConnectionLimit": "Paralleler Streamlimit:", "LabelSimultaneousConnectionLimit": "Paralleler Streamlimit:",
"LabelSkipBackLength": "Sprungweite rückwärts:", "LabelSkipBackLength": "Sprungweite rückwärts:",
"LabelSkipForwardLength": "Sprungweite vorwärts:", "LabelSkipForwardLength": "Sprungweite vorwärts:",
@ -1621,7 +1621,7 @@
"DeletedScene": "Gelöschte Scene", "DeletedScene": "Gelöschte Scene",
"BehindTheScenes": "Hinter den Kulissen", "BehindTheScenes": "Hinter den Kulissen",
"Trailer": "Vorschau", "Trailer": "Vorschau",
"Clip": "Featurette", "Clip": "Clip",
"ShowParentImages": "Serienbilder anzeigen", "ShowParentImages": "Serienbilder anzeigen",
"AllowEmbeddedSubtitlesAllowTextOption": "Text erlauben", "AllowEmbeddedSubtitlesAllowTextOption": "Text erlauben",
"AllowEmbeddedSubtitlesAllowImageOption": "Bilder erlauben", "AllowEmbeddedSubtitlesAllowImageOption": "Bilder erlauben",
@ -1714,5 +1714,10 @@
"SubtitleMagenta": "Magenta", "SubtitleMagenta": "Magenta",
"SubtitleRed": "Rot", "SubtitleRed": "Rot",
"SubtitleWhite": "Weiß", "SubtitleWhite": "Weiß",
"SubtitleYellow": "Gelb" "SubtitleYellow": "Gelb",
"Featurette": "Featurette",
"Short": "Kurzfilm",
"LabelParallelImageEncodingLimit": "Grenze der parallelen Bildkodierung",
"LabelParallelImageEncodingLimitHelp": "Maximale Anzahl von Bildkodierungen, die parallel ausgeführt werden können. Wenn Sie diesen Wert auf 0 setzen, wird eine Grenze auf der Grundlage Ihrer Systemspezifikationen gewählt.",
"HeaderPerformance": "Leistung"
} }

View file

@ -1716,5 +1716,8 @@
"SubtitleWhite": "White", "SubtitleWhite": "White",
"SubtitleYellow": "Yellow", "SubtitleYellow": "Yellow",
"Featurette": "Featurette", "Featurette": "Featurette",
"Short": "Short" "Short": "Short",
"HeaderPerformance": "Performance",
"LabelParallelImageEncodingLimit": "Parallel image encoding limit",
"LabelParallelImageEncodingLimitHelp": "Maximum amount of image encodings that are allowed to run in parallel. Setting this to 0 will choose a limit based on your system specs."
} }

View file

@ -422,6 +422,7 @@
"HeaderPassword": "Password", "HeaderPassword": "Password",
"HeaderPasswordReset": "Password Reset", "HeaderPasswordReset": "Password Reset",
"HeaderPaths": "Paths", "HeaderPaths": "Paths",
"HeaderPerformance": "Performance",
"HeaderPhotoAlbums": "Photo Albums", "HeaderPhotoAlbums": "Photo Albums",
"HeaderPinCodeReset": "Reset Easy PIN Code", "HeaderPinCodeReset": "Reset Easy PIN Code",
"HeaderPlayAll": "Play All", "HeaderPlayAll": "Play All",
@ -793,6 +794,8 @@
"LabelOriginalName": "Original name:", "LabelOriginalName": "Original name:",
"LabelOriginalTitle": "Original title:", "LabelOriginalTitle": "Original title:",
"LabelOverview": "Overview:", "LabelOverview": "Overview:",
"LabelParallelImageEncodingLimit": "Parallel image encoding limit",
"LabelParallelImageEncodingLimitHelp": "Maximum amount of image encodings that are allowed to run in parallel. Setting this to 0 will choose a limit based on your system specs.",
"LabelParentalRating": "Parental rating:", "LabelParentalRating": "Parental rating:",
"LabelParentNumber": "Parent number:", "LabelParentNumber": "Parent number:",
"LabelPassword": "Password:", "LabelPassword": "Password:",

View file

@ -1714,5 +1714,8 @@
"Short": "Lyhytfilmi", "Short": "Lyhytfilmi",
"MediaInfoBlPresentFlag": "DV BL havaittu", "MediaInfoBlPresentFlag": "DV BL havaittu",
"MediaInfoRpuPresentFlag": "DV RPU havaittu", "MediaInfoRpuPresentFlag": "DV RPU havaittu",
"MediaInfoDvVersionMinor": "DV-väliversio" "MediaInfoDvVersionMinor": "DV-väliversio",
"LabelParallelImageEncodingLimitHelp": "Rinnakkain suoritettavien kuvaenkoodauksien enimmäismäärä. Asettamalla arvoksi \"0\" rajoitus asetetaan automaattisesti järjestelmän perusteella.",
"HeaderPerformance": "Suorituskyky",
"LabelParallelImageEncodingLimit": "Rinnakkaisten kuvaenkoodauksien rajoitus"
} }

View file

@ -872,11 +872,11 @@
"HeaderLibraryFolders": "Mga Folder ng Library", "HeaderLibraryFolders": "Mga Folder ng Library",
"HeaderLibraryAccess": "Access sa Library", "HeaderLibraryAccess": "Access sa Library",
"HeaderLibraries": "Mga Library", "HeaderLibraries": "Mga Library",
"HeaderLatestRecordings": "Pinakabagong Recording", "HeaderLatestRecordings": "Mga bagong Recording",
"HeaderLatestMusic": "Pinakabagong Musika", "HeaderLatestMusic": "Mga bagong kanta",
"HeaderLatestMovies": "Pinakabagong Pelikula", "HeaderLatestMovies": "Mga bagong Pelikula",
"HeaderLatestMedia": "Pinakabagong Media", "HeaderLatestMedia": "Mga bagong Media",
"HeaderLatestEpisodes": "Mga Pinakabagong Episode", "HeaderLatestEpisodes": "Mga bagong Episode",
"HeaderKodiMetadataHelp": "Para i-enable o i-disable ang NFO metadata, mag-edit ng library at hanapin ang seksyong 'Mga saver ng Metadata'.", "HeaderKodiMetadataHelp": "Para i-enable o i-disable ang NFO metadata, mag-edit ng library at hanapin ang seksyong 'Mga saver ng Metadata'.",
"HeaderKeepSeries": "Panatilihin ang Serye", "HeaderKeepSeries": "Panatilihin ang Serye",
"HeaderKeepRecording": "Panatilihin ang Pagre-record", "HeaderKeepRecording": "Panatilihin ang Pagre-record",
@ -902,7 +902,7 @@
"HeaderEnabledFields": "Pinagana ang mga Field", "HeaderEnabledFields": "Pinagana ang mga Field",
"HeaderEditImages": "I-edit ang mga Larawan", "HeaderEditImages": "I-edit ang mga Larawan",
"HeaderEasyPinCode": "Easy PIN Code", "HeaderEasyPinCode": "Easy PIN Code",
"HeaderDVR": "Digital Recorder", "HeaderDVR": "DVR",
"HeaderDownloadSync": "I-download at I-sync", "HeaderDownloadSync": "I-download at I-sync",
"HeaderDirectPlayProfileHelp": "Magdagdag ng mga profile ng direktang pag-playback upang isaad kung aling mga format ang maaaring pangasiwaan ng device nang native.", "HeaderDirectPlayProfileHelp": "Magdagdag ng mga profile ng direktang pag-playback upang isaad kung aling mga format ang maaaring pangasiwaan ng device nang native.",
"HeaderDirectPlayProfile": "Profile ng Direktang Pag-playback", "HeaderDirectPlayProfile": "Profile ng Direktang Pag-playback",
@ -1313,7 +1313,7 @@
"DoNotRecord": "Huwag i-record", "DoNotRecord": "Huwag i-record",
"DisplayModeHelp": "Piliin ang istilo ng layout na gusto mo para sa interface.", "DisplayModeHelp": "Piliin ang istilo ng layout na gusto mo para sa interface.",
"DisplayMissingEpisodesWithinSeasons": "Ipakita ang mga nawawalang episode sa loob ng mga season", "DisplayMissingEpisodesWithinSeasons": "Ipakita ang mga nawawalang episode sa loob ng mga season",
"DisplayInOtherHomeScreenSections": "Ipakita sa mga seksyon ng home screen gaya ng 'Pinakabagong Media' at 'Ituloy ang Panonood'", "DisplayInOtherHomeScreenSections": "Magpakita sa home screen ng mga seksyon gaya ng 'Bagong Media' at 'Ituloy ang Panonood'",
"DisplayInMyMedia": "Ipakita sa home screen", "DisplayInMyMedia": "Ipakita sa home screen",
"Display": "Display", "Display": "Display",
"Disconnect": "Idiskonekta", "Disconnect": "Idiskonekta",
@ -1555,7 +1555,7 @@
"ButtonForgotPassword": "Nakalimutan ang password", "ButtonForgotPassword": "Nakalimutan ang password",
"ButtonEditOtherUserPreferences": "I-edit ang profile, larawan at personal na kagustuhan ng user na ito.", "ButtonEditOtherUserPreferences": "I-edit ang profile, larawan at personal na kagustuhan ng user na ito.",
"ButtonChangeServer": "Baguhin ang Server", "ButtonChangeServer": "Baguhin ang Server",
"ButtonCast": "I-cast ang media", "ButtonCast": "Ipalabas sa device",
"ButtonCancel": "Kanselahin", "ButtonCancel": "Kanselahin",
"ButtonBack": "Bumalik", "ButtonBack": "Bumalik",
"ButtonAudioTracks": "Mga Audio Track", "ButtonAudioTracks": "Mga Audio Track",
@ -1626,5 +1626,19 @@
"AllowEmbeddedSubtitlesAllowAllOption": "Payagan ang Lahat", "AllowEmbeddedSubtitlesAllowAllOption": "Payagan ang Lahat",
"AllowEmbeddedSubtitlesHelp": "I-disable ang mga subtitle na naka-package sa loob ng mga media container. Nangangailangan ng pag-refresh ng buong library.", "AllowEmbeddedSubtitlesHelp": "I-disable ang mga subtitle na naka-package sa loob ng mga media container. Nangangailangan ng pag-refresh ng buong library.",
"AllowEmbeddedSubtitles": "I-disable ang iba't ibang uri ng mga naka-embed na subtitle", "AllowEmbeddedSubtitles": "I-disable ang iba't ibang uri ng mga naka-embed na subtitle",
"NextUpRewatching": "Muling pinapanood" "NextUpRewatching": "Muling pinapanood",
"EnableRewatchingNextUp": "Pwedeng ulitin ang mga napanood na sa 'Ang susunod'",
"EnableRewatchingNextUpHelp": "Ipakita muli ang mga napanood na sa 'Ang susunod'.",
"EnableCardLayout": "Magpakita ng cardbox",
"ButtonBackspace": "Backspace",
"ButtonClose": "Isara",
"ButtonSpace": "Space",
"GoogleCastUnsupported": "Hindi suportado ang Google Cast",
"Copied": "Nakopya",
"Copy": "Kopyahin",
"CopyFailed": "Di makopya",
"Digital": "Digital",
"DownloadAll": "Idownload ang lahat",
"HeaderDummyChapter": "Mga larawan kada kabanata",
"AddToFavorites": "Idagdag sa mga paborito"
} }

View file

@ -234,7 +234,7 @@
"HeaderApiKeys": "Clés API", "HeaderApiKeys": "Clés API",
"HeaderApiKeysHelp": "Les applications externes ont besoin d'une clé d'API pour communiquer avec le serveur. Les clés sont distribuées lors d'une connexion avec un compte normal ou en accordant manuellement une clé à une application.", "HeaderApiKeysHelp": "Les applications externes ont besoin d'une clé d'API pour communiquer avec le serveur. Les clés sont distribuées lors d'une connexion avec un compte normal ou en accordant manuellement une clé à une application.",
"HeaderApp": "Application", "HeaderApp": "Application",
"HeaderAppearsOn": "Apparait dans", "HeaderAppearsOn": "Apparaît dans",
"HeaderAudioBooks": "Livres audio", "HeaderAudioBooks": "Livres audio",
"HeaderAudioSettings": "Réglages audio", "HeaderAudioSettings": "Réglages audio",
"HeaderBlockItemsWithNoRating": "Bloquer les éléments avec des informations de classification inconnues ou n'en disposant pas :", "HeaderBlockItemsWithNoRating": "Bloquer les éléments avec des informations de classification inconnues ou n'en disposant pas :",
@ -1716,5 +1716,8 @@
"SubtitleWhite": "Blanc", "SubtitleWhite": "Blanc",
"SubtitleYellow": "Jaune", "SubtitleYellow": "Jaune",
"Featurette": "Featurette", "Featurette": "Featurette",
"Short": "Court-métrage" "Short": "Court-métrage",
"HeaderPerformance": "Performance",
"LabelParallelImageEncodingLimit": "Limite de parallélisation de l'encodage d'image",
"LabelParallelImageEncodingLimitHelp": "Nombre maximal dencodages dimage autorisés à sexécuter en parallèle. Si vous définissez cette valeur sur 0, vous choisirez une limite en fonction des spécifications de votre système."
} }

View file

@ -87,10 +87,10 @@
"HeaderImageSettings": "הגדרות תמונה", "HeaderImageSettings": "הגדרות תמונה",
"HeaderKeepRecording": "שמור על הקלטה", "HeaderKeepRecording": "שמור על הקלטה",
"HeaderKeepSeries": "שמור סדרה", "HeaderKeepSeries": "שמור סדרה",
"HeaderLatestEpisodes": "פרקים אחרונים", "HeaderLatestEpisodes": "פרקים שנוספו לאחרונה",
"HeaderLatestMovies": "סרטים אחרונים שהוספו", "HeaderLatestMovies": "סרטים שהתווספו לאחרונה",
"HeaderLatestMusic": "מוזיקה אחרונה", "HeaderLatestMusic": "מוזיקה שהתווספה לאחרונה",
"HeaderLatestRecordings": "הקלטות אחרונות", "HeaderLatestRecordings": "הקלטות שהתווספו לאחרונה",
"HeaderMediaFolders": "ספריות מדיה", "HeaderMediaFolders": "ספריות מדיה",
"HeaderMetadataSettings": "הגדרות מטא-דאטה", "HeaderMetadataSettings": "הגדרות מטא-דאטה",
"HeaderMyMedia": "המדיה שלי", "HeaderMyMedia": "המדיה שלי",
@ -758,7 +758,7 @@
"HeaderLiveTvTunerSetup": "התקנת טיונר בשידור חי", "HeaderLiveTvTunerSetup": "התקנת טיונר בשידור חי",
"HeaderLibraryOrder": "סדר הספרייה", "HeaderLibraryOrder": "סדר הספרייה",
"HeaderLibraryAccess": "גישה לספרייה", "HeaderLibraryAccess": "גישה לספרייה",
"HeaderLatestMedia": "המדיה האחרונה", "HeaderLatestMedia": "מדיה שהתווספה לאחרונה",
"HeaderKodiMetadataHelp": "כדי להפעיל או להשבית מטא-דאטה של NFO, ערוך ספרייה ואתר את החלק של חסכונות המטא-דאטה.", "HeaderKodiMetadataHelp": "כדי להפעיל או להשבית מטא-דאטה של NFO, ערוך ספרייה ואתר את החלק של חסכונות המטא-דאטה.",
"HeaderInstantMix": "מיקס מיידי", "HeaderInstantMix": "מיקס מיידי",
"HeaderIdentificationHeader": "כותרת זיהוי", "HeaderIdentificationHeader": "כותרת זיהוי",
@ -912,7 +912,7 @@
"KnownProxiesHelp": "רשימה מופרדת באמצעות פסיקים של כתובות IP או שמות מארחים של פרוקסי ידועים המשמשים בעת חיבור למופע Jellyfin שלך. זה נדרש כדי לעשות שימוש נכון בכותרות X-Forwarded-For. דורש אתחול מחדש לאחר השמירה.", "KnownProxiesHelp": "רשימה מופרדת באמצעות פסיקים של כתובות IP או שמות מארחים של פרוקסי ידועים המשמשים בעת חיבור למופע Jellyfin שלך. זה נדרש כדי לעשות שימוש נכון בכותרות X-Forwarded-For. דורש אתחול מחדש לאחר השמירה.",
"ImportFavoriteChannelsHelp": "רק ערוצים המסומנים כחביבים במכשיר המקלט ייובאו .", "ImportFavoriteChannelsHelp": "רק ערוצים המסומנים כחביבים במכשיר המקלט ייובאו .",
"HttpsRequiresCert": "כדי לאפשר חיבורים מאובטחים, יהיה עליך לספק אישור SSL מהימן, כגון Let's Encrypt. אנא ספק תעודה או השבת חיבורים מאובטחים.", "HttpsRequiresCert": "כדי לאפשר חיבורים מאובטחים, יהיה עליך לספק אישור SSL מהימן, כגון Let's Encrypt. אנא ספק תעודה או השבת חיבורים מאובטחים.",
"HideWatchedContentFromLatestMedia": "הסתר תוכן שנצפה מ'מדיה אחרונה'", "HideWatchedContentFromLatestMedia": "הסתר תוכן שנצפה מ'מדיה שהתווספה לאחרונה'",
"HeaderXmlSettings": "הגדרות XML", "HeaderXmlSettings": "הגדרות XML",
"HeaderXmlDocumentAttributes": "תכונות מסמך XML", "HeaderXmlDocumentAttributes": "תכונות מסמך XML",
"HeaderXmlDocumentAttribute": "תכונת מסמך XML", "HeaderXmlDocumentAttribute": "תכונת מסמך XML",
@ -952,7 +952,7 @@
"Arranger": "מעבד מוזיקלי", "Arranger": "מעבד מוזיקלי",
"LabelAllowedRemoteAddresses": "מסנן כתובות IP מרוחקות:", "LabelAllowedRemoteAddresses": "מסנן כתובות IP מרוחקות:",
"LabelAlbumArtPN": "תמונת אלבום PN:", "LabelAlbumArtPN": "תמונת אלבום PN:",
"LabelAlbumArtMaxResHelp": "הרזולוציה המקסימלית של תמונת האלבום חשופה בעזרת המאפיין upnp:albumArtURI.", "LabelAlbumArtMaxResHelp": "הרזולוציה המקסימלית של תמונת האלבום חשופה בעזרת המאפיין 'upnp:albumArtURI'.",
"HeaderRecordingPostProcessing": "מעבד הקלטה", "HeaderRecordingPostProcessing": "מעבד הקלטה",
"AgeValue": "(בן {0} שנים)", "AgeValue": "(בן {0} שנים)",
"Profile": "פרופיל", "Profile": "פרופיל",
@ -1042,13 +1042,18 @@
"LabelDashboardTheme": "ערכת נושא של לוח מחווני השרת:", "LabelDashboardTheme": "ערכת נושא של לוח מחווני השרת:",
"LabelDateAddedBehavior": "התנהגות \"תאריך הוספה\" לתוכן חדש:", "LabelDateAddedBehavior": "התנהגות \"תאריך הוספה\" לתוכן חדש:",
"LabelDeinterlaceMethod": "שיטת Deinterlacing:", "LabelDeinterlaceMethod": "שיטת Deinterlacing:",
"LabelBindToLocalNetworkAddress": יצמד לכתובת רשת מקומית:", "LabelBindToLocalNetworkAddress": תאם עם כתובת רשת מקומית:",
"LabelCertificatePasswordHelp": "אם התעודה שלך דורשת סיסמא, נא הקלד אותה כאן.", "LabelCertificatePasswordHelp": "אם התעודה שלך דורשת סיסמא, נא הקלד אותה כאן.",
"LabelColorTransfer": "העברת צבע:", "LabelColorTransfer": "צבע העברה:",
"LabelCreateHttpPortMap": "אפשר מיפוי פורטים אוטומטי לכל תעבורת ה-HTTP וגם ה-HTTPS.", "LabelCreateHttpPortMap": "אפשר מיפוי פורטים אוטומטי לכל תעבורת ה-HTTP וגם ה-HTTPS.",
"DownloadAll": "הורד הכל", "DownloadAll": "הורד הכל",
"Experimental": "ניסיוני", "Experimental": "ניסיוני",
"LabelDisableCustomCss": "אפשר קוד css מותאם אישית בשביל עיצובים מהשרת", "LabelDisableCustomCss": "אפשר קוד css מותאם אישית בשביל עיצובים מהשרת",
"LabelEasyPinCode": "קוד PIN קל", "LabelEasyPinCode": "קוד PIN קל",
"EnableCardLayout": "הצג מערך ארגז חזותי" "EnableCardLayout": "הצג מערך ארגז חזותי",
"LabelCachePathHelp": "בחר מיקום עבור קבצי מטמון לשרת כגון תמונות. השאר ריק בכדי להשתמש במיקום ברירת מחדל.",
"LabelColorPrimaries": "צבעים עיקריים:",
"HeaderPerformance": "ביצועים",
"HeaderRecordingMetadataSaving": "מטאדאטה של הקלטות",
"HeaderDummyChapter": "תמונות פרק"
} }

View file

@ -147,5 +147,6 @@
"Normal": "सामान्य", "Normal": "सामान्य",
"Songs": "गाने", "Songs": "गाने",
"Larger": "और बड़ा", "Larger": "और बड़ा",
"ListPaging": "{2} का {0}-{1}" "ListPaging": "{2} का {0}-{1}",
"Shows": "शो"
} }

View file

@ -1290,7 +1290,7 @@
"SaveChanges": "Változtatások mentése", "SaveChanges": "Változtatások mentése",
"MessageSyncPlayGroupWait": "{0} pufferel…", "MessageSyncPlayGroupWait": "{0} pufferel…",
"MessageSyncPlayUserLeft": "{0} elhagyta a csoportot.", "MessageSyncPlayUserLeft": "{0} elhagyta a csoportot.",
"MessageSyncPlayUserJoined": "{0}csatlakozott a csoporthoz.", "MessageSyncPlayUserJoined": "{0} csatlakozott a csoporthoz.",
"MessageSyncPlayDisabled": "SyncPlay letiltva.", "MessageSyncPlayDisabled": "SyncPlay letiltva.",
"MessageSyncPlayEnabled": "SyncPlay engedélyezve.", "MessageSyncPlayEnabled": "SyncPlay engedélyezve.",
"LabelSyncPlayAccess": "SyncPlay hozzáférés:", "LabelSyncPlayAccess": "SyncPlay hozzáférés:",
@ -1710,5 +1710,6 @@
"LabelDummyChapterDuration": "Intervallum:", "LabelDummyChapterDuration": "Intervallum:",
"LabelDummyChapterCount": "Határvonal:", "LabelDummyChapterCount": "Határvonal:",
"LabelChapterImageResolution": "Felbontás:", "LabelChapterImageResolution": "Felbontás:",
"LabelChapterImageResolutionHelp": "A kinyert fejezetképek felbontása." "LabelChapterImageResolutionHelp": "A kinyert fejezetképek felbontása.",
"HeaderPerformance": "Teljesítmény"
} }

View file

@ -150,7 +150,7 @@
"Disconnect": "切断", "Disconnect": "切断",
"Display": "ディスプレイ", "Display": "ディスプレイ",
"DisplayInMyMedia": "ホームスクリーンに表示", "DisplayInMyMedia": "ホームスクリーンに表示",
"DisplayInOtherHomeScreenSections": "「最新のメディア」や「続きを見る」などをホーム画面のセクションに表示する", "DisplayInOtherHomeScreenSections": "「最近追加されたメディア」や「続きを見る」などをホーム画面のセクションに表示する",
"DisplayMissingEpisodesWithinSeasons": "シーズンの欠けているエピソードを表示する", "DisplayMissingEpisodesWithinSeasons": "シーズンの欠けているエピソードを表示する",
"DisplayMissingEpisodesWithinSeasonsHelp": "これは サーバーのTVライブラリ設定でも有効にする必要があります。", "DisplayMissingEpisodesWithinSeasonsHelp": "これは サーバーのTVライブラリ設定でも有効にする必要があります。",
"DisplayModeHelp": "インターフェース用のお好みのレイアウトスタイルを選びます。", "DisplayModeHelp": "インターフェース用のお好みのレイアウトスタイルを選びます。",
@ -203,7 +203,7 @@
"ExitFullscreen": "フルスクリーンを終了する", "ExitFullscreen": "フルスクリーンを終了する",
"ExtraLarge": "特大", "ExtraLarge": "特大",
"ExtractChapterImagesHelp": "チャプター画像を抽出すると、クライアントはグラフィカルシーン選択メニューを表示できます。 このプロセスは遅く、リソースを消費し、数ギガバイトのスペースが必要になる場合があります。 動画が発見されたときに実行され、夜間のスケジュールされたタスクとしても実行されます。 スケジュールは、スケジュール済みタスク領域で構成可能です。 ピーク時にこのタスクを実行することはお勧めできません。", "ExtractChapterImagesHelp": "チャプター画像を抽出すると、クライアントはグラフィカルシーン選択メニューを表示できます。 このプロセスは遅く、リソースを消費し、数ギガバイトのスペースが必要になる場合があります。 動画が発見されたときに実行され、夜間のスケジュールされたタスクとしても実行されます。 スケジュールは、スケジュール済みタスク領域で構成可能です。 ピーク時にこのタスクを実行することはお勧めできません。",
"Extras": "エクストラ", "Extras": "特典",
"FFmpegSavePathNotFound": "ご指定のパスに FFmpeg が見つかりません。 FFprobeも必須であり、同じフォルダーに存在しなければなりません。 これらのコンポーネントは通常、同じダウンロードにまとめられています。 パスを確認してもう一度やり直してください。", "FFmpegSavePathNotFound": "ご指定のパスに FFmpeg が見つかりません。 FFprobeも必須であり、同じフォルダーに存在しなければなりません。 これらのコンポーネントは通常、同じダウンロードにまとめられています。 パスを確認してもう一度やり直してください。",
"FastForward": "早送り", "FastForward": "早送り",
"Favorite": "お気に入り", "Favorite": "お気に入り",
@ -308,11 +308,11 @@
"HeaderKeepRecording": "録画を続ける", "HeaderKeepRecording": "録画を続ける",
"HeaderKeepSeries": "シリーズを続ける", "HeaderKeepSeries": "シリーズを続ける",
"HeaderKodiMetadataHelp": "NFO メタデータを有効または無効にするには、ライブラリを編集し、メタデータセーバーの項目を確認してください。", "HeaderKodiMetadataHelp": "NFO メタデータを有効または無効にするには、ライブラリを編集し、メタデータセーバーの項目を確認してください。",
"HeaderLatestEpisodes": "最新のエピソード", "HeaderLatestEpisodes": "最近追加されたエピソード",
"HeaderLatestMedia": "最新のメディア", "HeaderLatestMedia": "最近追加されたメディア",
"HeaderLatestMovies": "最新のムービー", "HeaderLatestMovies": "最近追加された映画",
"HeaderLatestMusic": "最新のミュージック", "HeaderLatestMusic": "最近追加されたミュージック",
"HeaderLatestRecordings": "最新の録画", "HeaderLatestRecordings": "最近追加された録画",
"HeaderLibraries": "ライブラリ", "HeaderLibraries": "ライブラリ",
"HeaderLibraryAccess": "ライブラリアクセス", "HeaderLibraryAccess": "ライブラリアクセス",
"HeaderLibraryFolders": "ライブラリフォルダ", "HeaderLibraryFolders": "ライブラリフォルダ",
@ -407,7 +407,7 @@
"HeaderYears": "年", "HeaderYears": "年",
"Help": "ヘルプ", "Help": "ヘルプ",
"Hide": "隠す", "Hide": "隠す",
"Movies": "ムービー", "Movies": "映画",
"Photos": "フォト", "Photos": "フォト",
"Playlists": "プレイリスト", "Playlists": "プレイリスト",
"Shows": "番組", "Shows": "番組",
@ -556,7 +556,7 @@
"ReleaseDate": "公開日", "ReleaseDate": "公開日",
"OptionDvd": "DVD", "OptionDvd": "DVD",
"Save": "保存", "Save": "保存",
"HideWatchedContentFromLatestMedia": "「最新のメディア」に視聴済みコンテンツを表示しない", "HideWatchedContentFromLatestMedia": "「最近追加されたメディア」に視聴済みコンテンツを表示しない",
"Home": "ホーム", "Home": "ホーム",
"Horizontal": "水平", "Horizontal": "水平",
"LabelAuthProvider": "認証プロバイダー:", "LabelAuthProvider": "認証プロバイダー:",
@ -643,9 +643,9 @@
"SaveSubtitlesIntoMediaFolders": "字幕をメディアフォルダーに保存", "SaveSubtitlesIntoMediaFolders": "字幕をメディアフォルダーに保存",
"ScanForNewAndUpdatedFiles": "新しいファイルとアップデートされたファイルをスキャン", "ScanForNewAndUpdatedFiles": "新しいファイルとアップデートされたファイルをスキャン",
"TabDashboard": "ダッシュボード", "TabDashboard": "ダッシュボード",
"TabLatest": "最", "TabLatest": "最近追加された",
"TabLogs": "ログ", "TabLogs": "ログ",
"TabMusic": "ミュージック", "TabMusic": "音楽",
"TheseSettingsAffectSubtitlesOnThisDevice": "これらの設定はこのデバイスの字幕に影響します", "TheseSettingsAffectSubtitlesOnThisDevice": "これらの設定はこのデバイスの字幕に影響します",
"ShowTitle": "タイトルを表示", "ShowTitle": "タイトルを表示",
"TitleHostingSettings": "ホスト設定", "TitleHostingSettings": "ホスト設定",
@ -816,7 +816,7 @@
"LabelVideoBitrate": "映像ビットレート:", "LabelVideoBitrate": "映像ビットレート:",
"Share": "共有", "Share": "共有",
"LabelSize": "大きさ:", "LabelSize": "大きさ:",
"LatestFromLibrary": "最新 {0}", "LatestFromLibrary": "{0}に最近追加された",
"LearnHowYouCanContribute": "コントリビュートする方法を知る。", "LearnHowYouCanContribute": "コントリビュートする方法を知る。",
"LabelTagline": "キャッチフレーズ:", "LabelTagline": "キャッチフレーズ:",
"Live": "ライブ", "Live": "ライブ",
@ -937,7 +937,7 @@
"LabelCustomRating": "カスタム格付け:", "LabelCustomRating": "カスタム格付け:",
"LabelCorruptedFrames": "破損したフレーム:", "LabelCorruptedFrames": "破損したフレーム:",
"LabelFriendlyName": "フレンドリ名:", "LabelFriendlyName": "フレンドリ名:",
"LabelEveryXMinutes": "毎", "LabelEveryXMinutes": "毎:",
"LabelEnableSingleImageInDidlLimit": "単一の埋め込み画像に制限", "LabelEnableSingleImageInDidlLimit": "単一の埋め込み画像に制限",
"LabelEnableBlastAliveMessages": "アライブメッセージを配信する", "LabelEnableBlastAliveMessages": "アライブメッセージを配信する",
"LabelDateAddedBehaviorHelp": "メタデータがある場合、これらのオプションの前に優先します。", "LabelDateAddedBehaviorHelp": "メタデータがある場合、これらのオプションの前に優先します。",
@ -1042,12 +1042,12 @@
"LabelffmpegPathHelp": "FFmpeg のアプリケーションファイルか、FFmpeg を含むフォルダーのパス。", "LabelffmpegPathHelp": "FFmpeg のアプリケーションファイルか、FFmpeg を含むフォルダーのパス。",
"LabelZipCode": "郵便番号:", "LabelZipCode": "郵便番号:",
"LabelYoureDone": "全て完了です!", "LabelYoureDone": "全て完了です!",
"LabelXDlnaDoc": "Device Class ID:", "LabelXDlnaDoc": "デバイスのクラスID:",
"LabelXDlnaCap": "Device Capability ID:", "LabelXDlnaCap": "デバイス機能ID:",
"LabelVideoResolution": "動画解像度:", "LabelVideoResolution": "動画解像度:",
"LabelValue": "値:", "LabelValue": "値:",
"LabelVaapiDevice": "VA-API デバイス:", "LabelVaapiDevice": "VA-API デバイス:",
"LabelUserRemoteClientBitrateLimitHelp": "サーバープレイバック設定のデフォルトグローバル値をオーバーライド。ダッシュボード > プレイバック > ストリーミング を参照", "LabelUserRemoteClientBitrateLimitHelp": "サーバープレイバック設定のデフォルトグローバル値をオーバーライド。ダッシュボード > プレイバック > ストリーミング を参照",
"LabelUserLoginAttemptsBeforeLockout": "ユーザーがロックされるまでのログイン失敗回数:", "LabelUserLoginAttemptsBeforeLockout": "ユーザーがロックされるまでのログイン失敗回数:",
"LabelUserLibraryHelp": "デバイスに表示されるユーザーライブラリを選択してください。空欄の場合デフォルト設定が引き継がれます。", "LabelUserLibraryHelp": "デバイスに表示されるユーザーライブラリを選択してください。空欄の場合デフォルト設定が引き継がれます。",
"LabelUseNotificationServices": "以下のサービスを使用:", "LabelUseNotificationServices": "以下のサービスを使用:",
@ -1264,7 +1264,7 @@
"OptionSaveMetadataAsHiddenHelp": "変更すると今後保存される新しいメタデータに適用されます。既存のメタデータファイルは次にサーバーへ保存される際に更新されます。", "OptionSaveMetadataAsHiddenHelp": "変更すると今後保存される新しいメタデータに適用されます。既存のメタデータファイルは次にサーバーへ保存される際に更新されます。",
"OptionSaveMetadataAsHidden": "メタデータと画像を隠しファイルとして保存", "OptionSaveMetadataAsHidden": "メタデータと画像を隠しファイルとして保存",
"OptionResumable": "途中から", "OptionResumable": "途中から",
"OptionResElement": "'res' element", "OptionResElement": "「res」要素",
"OptionRequirePerfectSubtitleMatchHelp": "完全にマッチすることを要求した場合は動画ファイルとのテストおよび検証で完全な字幕のみ含まれるようフィルタリングします。このチェックを外すと字幕がダウンロードされる可能性が高くなりますが、間違いのある字幕テキストになる可能性も高くなります。", "OptionRequirePerfectSubtitleMatchHelp": "完全にマッチすることを要求した場合は動画ファイルとのテストおよび検証で完全な字幕のみ含まれるようフィルタリングします。このチェックを外すと字幕がダウンロードされる可能性が高くなりますが、間違いのある字幕テキストになる可能性も高くなります。",
"OptionRequirePerfectSubtitleMatch": "動画ファイルと完全にマッチする字幕のみダウンロード", "OptionRequirePerfectSubtitleMatch": "動画ファイルと完全にマッチする字幕のみダウンロード",
"OptionReportByteRangeSeekingWhenTranscodingHelp": "これはシークが十分にできないデバイスに必要です。", "OptionReportByteRangeSeekingWhenTranscodingHelp": "これはシークが十分にできないデバイスに必要です。",
@ -1567,11 +1567,11 @@
"AddToFavorites": "お気に入りに追加", "AddToFavorites": "お気に入りに追加",
"EnableRewatchingNextUpHelp": "「Next Up」セクションに既に視聴したエピソードを表示する。", "EnableRewatchingNextUpHelp": "「Next Up」セクションに既に視聴したエピソードを表示する。",
"EnableEnhancedNvdecDecoder": "拡張NVDECデコーダを有効にする", "EnableEnhancedNvdecDecoder": "拡張NVDECデコーダを有効にする",
"EnableEnhancedNvdecDecoderHelp": "実践的な NVDEC 実装、デコードエラーが発生しない限りは有効にしないでください", "EnableEnhancedNvdecDecoderHelp": "実践的な NVDEC 実装、デコードエラーが発生しない限りは有効にしないでください",
"LabelMaxVideoResolution": "ビデオトランスコードの 最大解像度", "LabelMaxVideoResolution": "ビデオトランスコードの 最大解像度",
"MessageNoItemsAvailable": "現在利用できるアイテムがありません。", "MessageNoItemsAvailable": "現在利用できるアイテムがありません。",
"MessageUnauthorizedUser": "現在、 サーバーにアクセスする権限がありません。詳細は、サーバー管理者にお問い合わせください。", "MessageUnauthorizedUser": "現在、 サーバーにアクセスする権限がありません。詳細は、サーバー管理者にお問い合わせください。",
"Bold": "Bold", "Bold": "太字",
"Localization": "ローカライゼーション", "Localization": "ローカライゼーション",
"HomeVideosPhotos": "ホームビデオと写真", "HomeVideosPhotos": "ホームビデオと写真",
"MessageRenameMediaFolder": "メディアライブラリの名前を変更すると、すべてのメタデータが失われるため注意してください。", "MessageRenameMediaFolder": "メディアライブラリの名前を変更すると、すべてのメタデータが失われるため注意してください。",
@ -1589,7 +1589,7 @@
"OptionDateShowAdded": "番組の追加日", "OptionDateShowAdded": "番組の追加日",
"OriginalAirDate": "オリジナルの放映日", "OriginalAirDate": "オリジナルの放映日",
"AllowEmbeddedSubtitlesAllowTextOption": "テキストを許可する", "AllowEmbeddedSubtitlesAllowTextOption": "テキストを許可する",
"TypeOptionPluralMovie": "ムービー", "TypeOptionPluralMovie": "映画",
"RemuxHelp1": "メディアは互換性のないファイルコンテナMKV、AVI、WMVなどに入っているが、ビデオストリームとオーディオストリームの両方がデバイスと互換性がある場合。メディアはデバイスに送信される前に、その場でロスレスで再パッケージ化されます。", "RemuxHelp1": "メディアは互換性のないファイルコンテナMKV、AVI、WMVなどに入っているが、ビデオストリームとオーディオストリームの両方がデバイスと互換性がある場合。メディアはデバイスに送信される前に、その場でロスレスで再パッケージ化されます。",
"LabelDirectStreamingInfo": "ダイレクトストリーミング情報", "LabelDirectStreamingInfo": "ダイレクトストリーミング情報",
"YoutubeBadRequest": "リクエスト失敗。", "YoutubeBadRequest": "リクエスト失敗。",
@ -1637,7 +1637,7 @@
"VideoProfileNotSupported": "動画コーデックのプロファイルがサポートされていません", "VideoProfileNotSupported": "動画コーデックのプロファイルがサポートされていません",
"LabelVppTonemappingBrightnessHelp": "VPP トーンマッピングでの輝度ゲインを適用します。推奨・デフォルト値はどちらも0です。", "LabelVppTonemappingBrightnessHelp": "VPP トーンマッピングでの輝度ゲインを適用します。推奨・デフォルト値はどちらも0です。",
"MediaInfoDvVersionMinor": "DV バージョンマイナー", "MediaInfoDvVersionMinor": "DV バージョンマイナー",
"MediaInfoDvBlSignalCompatibilityId": "DV bl signal compatibility id", "MediaInfoDvBlSignalCompatibilityId": "Dolby VisionのBL信号互換性ID",
"InterlacedVideoNotSupported": "インターレース動画はサポートされていません", "InterlacedVideoNotSupported": "インターレース動画はサポートされていません",
"AllowVppTonemappingHelp": "完全なIntelドライバーがベースとなったトーンマッピングです。現在のところ、HDR10の動画と特定のハードウェアでのみ動作します。これは、他のOpenCL実装と比較して優先度がより高くなります。", "AllowVppTonemappingHelp": "完全なIntelドライバーがベースとなったトーンマッピングです。現在のところ、HDR10の動画と特定のハードウェアでのみ動作します。これは、他のOpenCL実装と比較して優先度がより高くなります。",
"VideoLevelNotSupported": "動画コーデックのレベルはサポートされていません", "VideoLevelNotSupported": "動画コーデックのレベルはサポートされていません",
@ -1659,11 +1659,11 @@
"ThemeVideo": "テーマビデオ", "ThemeVideo": "テーマビデオ",
"LabelVppTonemappingBrightness": "VPPトーンマッピング輝度ゲイン:", "LabelVppTonemappingBrightness": "VPPトーンマッピング輝度ゲイン:",
"LabelVppTonemappingContrast": "VPP トーンマッピングコントラストゲイン:", "LabelVppTonemappingContrast": "VPP トーンマッピングコントラストゲイン:",
"MediaInfoRpuPresentFlag": "DV rpu preset flag", "MediaInfoRpuPresentFlag": "Dolby VisionのRPUプリセットのフラグ",
"EnableSplashScreen": "スプラッシュ画面を有効にする", "EnableSplashScreen": "スプラッシュ画面を有効にする",
"LabelStereoDownmixAlgorithm": "ステレオダウンミックスのアルゴリズム", "LabelStereoDownmixAlgorithm": "ステレオダウンミックスのアルゴリズム",
"LabelEnableGamepad": "ゲームパッドを有効にする", "LabelEnableGamepad": "ゲームパッドを有効にする",
"EnableGamepadHelp": "接続済みのゲームパッドからの入力を受け付けます。", "EnableGamepadHelp": "接続済みのゲームパッドからの入力を受け付けます。(ディスプレイモード「TV」が必要)",
"SecondaryAudioNotSupported": "第2音声トラックはサポートされていません", "SecondaryAudioNotSupported": "第2音声トラックはサポートされていません",
"RefFramesNotSupported": "リファレンスフレームはサポートされていません", "RefFramesNotSupported": "リファレンスフレームはサポートされていません",
"VideoBitDepthNotSupported": "動画のbit深度はサポートされていません", "VideoBitDepthNotSupported": "動画のbit深度はサポートされていません",
@ -1672,7 +1672,7 @@
"BehindTheScenes": "舞台裏", "BehindTheScenes": "舞台裏",
"Interview": "インタビュー", "Interview": "インタビュー",
"Scene": "シーン", "Scene": "シーン",
"Clip": "短編映画", "Clip": "クリップ",
"LabelVppTonemappingContrastHelp": "VPP トーンマッピングでのコントラストゲインを適用します。推奨値は1.2、デフォルト値は1です。", "LabelVppTonemappingContrastHelp": "VPP トーンマッピングでのコントラストゲインを適用します。推奨値は1.2、デフォルト値は1です。",
"VideoRangeTypeNotSupported": "動画のレンジタイプはサポートされていません", "VideoRangeTypeNotSupported": "動画のレンジタイプはサポートされていません",
"LabelVideoRangeType": "動画のレンジタイプ:", "LabelVideoRangeType": "動画のレンジタイプ:",
@ -1680,9 +1680,41 @@
"MediaInfoDvVersionMajor": "DV バージョンメジャー", "MediaInfoDvVersionMajor": "DV バージョンメジャー",
"MediaInfoDvProfile": "DV プロファイル", "MediaInfoDvProfile": "DV プロファイル",
"MediaInfoDvLevel": "DV レベル", "MediaInfoDvLevel": "DV レベル",
"MediaInfoElPresentFlag": "DV el preset flag", "MediaInfoElPresentFlag": "Dolby VisionのELプリセットのフラグ",
"MediaInfoBlPresentFlag": "DV bl preset flag", "MediaInfoBlPresentFlag": "Dolby VisionのBLプリセットのフラグ",
"Unreleased": "まだ公開されていません", "Unreleased": "まだ公開されていません",
"DeletedScene": "未公開シーン", "DeletedScene": "未公開シーン",
"Experimental": "試験的" "Experimental": "試験的",
"LabelDummyChapterCountHelp": "抽出する各メディア・ファイルのチャプター画像の最大数。",
"LabelParallelImageEncodingLimit": "画像エンコードの並行実行の制限",
"PreferEmbeddedExtrasTitlesOverFileNames": "ファイル名よりエキストラの埋め込みタイトルを優先",
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "エキストラの埋め込みタイトルは親メディアと一緒の場合が多いが、それでも優先して使用したい場合はこちらをチェックします。",
"Featurette": "短編",
"Short": "ショート",
"SecondarySubtitles": "補助字幕",
"SaveRecordingNFO": "NFOファイルに録画のEPGメタデータを保存",
"SaveRecordingNFOHelp": "メディアと一緒にプロバイダから取得された録画のEPGメタデータをNFOファイルに保存します。",
"SaveRecordingImages": "録画のEPG画像を保存",
"SaveRecordingImagesHelp": "メディアと一緒にプロバイダから取得された録画のEPG画像を保存します。",
"SubtitleBlack": "黒",
"SubtitleBlue": "青",
"SubtitleGreen": "緑",
"SubtitleCyan": "シアン",
"SubtitleGray": "灰色",
"SubtitleLightGray": "薄い灰色",
"SubtitleMagenta": "マゼンタ",
"SubtitleWhite": "白",
"HeaderPerformance": "パフォーマンス",
"LabelDummyChapterDuration": "間隔:",
"LabelDummyChapterDurationHelp": "秒でチャプター画像の抽出の間隔。",
"LabelDummyChapterCount": "制限:",
"LabelChapterImageResolution": "解像度:",
"LabelChapterImageResolutionHelp": "抽出するチャプター画像の解像度。",
"LabelParallelImageEncodingLimitHelp": "並行で実行できる画像エンコードの最大数。「0」に設定するとシステムの性能に基づく制限を自動的に設定されます。",
"ResolutionMatchSource": "ソースにマッチする",
"SubtitleRed": "赤",
"SubtitleYellow": "黄色",
"HeaderRecordingMetadataSaving": "メタデータを保存中",
"EnableCardLayout": "カードボックスを表示",
"HeaderDummyChapter": "チャプター画像"
} }

View file

@ -166,7 +166,7 @@
"Sync": "Segerak", "Sync": "Segerak",
"Shows": "Tayangan", "Shows": "Tayangan",
"OptionBluray": "BD", "OptionBluray": "BD",
"MusicVideos": "Video muzik", "MusicVideos": "Video Muzik",
"TypeOptionPluralMovie": "Filem-filem", "TypeOptionPluralMovie": "Filem-filem",
"HeaderLibraries": "Pustaka", "HeaderLibraries": "Pustaka",
"HeaderInstall": "Pasang", "HeaderInstall": "Pasang",

View file

@ -1692,5 +1692,7 @@
"LabelDummyChapterCount": "Grense:", "LabelDummyChapterCount": "Grense:",
"LabelChapterImageResolution": "Oppløsning:", "LabelChapterImageResolution": "Oppløsning:",
"LabelDummyChapterDuration": "Intervall:", "LabelDummyChapterDuration": "Intervall:",
"HeaderRecordingMetadataSaving": "Opptak metadata" "HeaderRecordingMetadataSaving": "Opptak metadata",
"HeaderPerformance": "Ytelse",
"LabelDummyChapterDurationHelp": "Tid mellom innsamling av kapittelbilder i sekunder."
} }

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
{ {
"Absolute": "Bezwzględnie", "Absolute": "Absolutny",
"AccessRestrictedTryAgainLater": "Dostęp jest aktualnie ograniczony. Spróbuj ponownie później.", "AccessRestrictedTryAgainLater": "Dostęp jest aktualnie ograniczony. Spróbuj ponownie później.",
"Actor": "Aktor", "Actor": "Aktor",
"Add": "Dodaj", "Add": "Dodaj",
@ -1621,7 +1621,7 @@
"DeletedScene": "Usunięte sceny", "DeletedScene": "Usunięte sceny",
"BehindTheScenes": "Za kulisami", "BehindTheScenes": "Za kulisami",
"Trailer": "Zwiastun", "Trailer": "Zwiastun",
"Clip": "Film średniometrażowy", "Clip": "Urywek",
"ButtonExitApp": "Wyjdź z aplikacji", "ButtonExitApp": "Wyjdź z aplikacji",
"AllowEmbeddedSubtitlesAllowTextOption": "Zezwól na tekst", "AllowEmbeddedSubtitlesAllowTextOption": "Zezwól na tekst",
"AllowEmbeddedSubtitlesAllowImageOption": "Zezwól na obrazy", "AllowEmbeddedSubtitlesAllowImageOption": "Zezwól na obrazy",
@ -1714,5 +1714,10 @@
"SubtitleRed": "Czerwony", "SubtitleRed": "Czerwony",
"SubtitleWhite": "Biały", "SubtitleWhite": "Biały",
"SubtitleYellow": "Żółty", "SubtitleYellow": "Żółty",
"SecondarySubtitles": "Napisy drugorzędne" "SecondarySubtitles": "Napisy drugorzędne",
"HeaderPerformance": "Wydajność",
"Featurette": "Film średniometrażowy",
"Short": "Film krótkometrażowy",
"LabelParallelImageEncodingLimitHelp": "Maksymalna liczba kodowań obrazów, które mogą być uruchomione równolegle. Ustawienie wartości na 0 spowoduje wybór limitu w oparciu o specyfikacje Twojego systemu.",
"LabelParallelImageEncodingLimit": "Limit kodowań obrazów, które mogą być uruchomione równolegle"
} }

View file

@ -26,9 +26,9 @@
"HeaderFetchImages": "Preia imagini:", "HeaderFetchImages": "Preia imagini:",
"HeaderFrequentlyPlayed": "Rulate Frecvent", "HeaderFrequentlyPlayed": "Rulate Frecvent",
"HeaderImageSettings": "Setari Imagini", "HeaderImageSettings": "Setari Imagini",
"HeaderLatestEpisodes": "Cele Mai Noi Episoade", "HeaderLatestEpisodes": "Episoade adăugate recent",
"HeaderLatestMovies": "Cele mai noi Filme", "HeaderLatestMovies": "Filme adăugate recent",
"HeaderLatestRecordings": "Cele mai recente înregistrări", "HeaderLatestRecordings": "Înregistrări adăugate recent",
"HeaderPaths": "Căi", "HeaderPaths": "Căi",
"HeaderPleaseSignIn": "Vă rugăm, autentificați-vă", "HeaderPleaseSignIn": "Vă rugăm, autentificați-vă",
"HeaderPreferredMetadataLanguage": "Limba preferata pentru metadata", "HeaderPreferredMetadataLanguage": "Limba preferata pentru metadata",
@ -409,7 +409,7 @@
"HeaderDirectPlayProfile": "Profil de redare directă", "HeaderDirectPlayProfile": "Profil de redare directă",
"HeaderDirectPlayProfileHelp": "Adăugați profiluri de redare directă pentru a indica ce formate se pot gestiona în mod nativ.", "HeaderDirectPlayProfileHelp": "Adăugați profiluri de redare directă pentru a indica ce formate se pot gestiona în mod nativ.",
"HeaderKeepSeries": "Păstrează seriile", "HeaderKeepSeries": "Păstrează seriile",
"HeaderLatestMedia": "Cele mai recente media", "HeaderLatestMedia": "Media adăugate recent",
"HeaderLibraryOrder": "Ordinea Bibliotecii", "HeaderLibraryOrder": "Ordinea Bibliotecii",
"HeaderContinueListening": "Continuați să ascultați", "HeaderContinueListening": "Continuați să ascultați",
"Down": "In jos", "Down": "In jos",
@ -444,7 +444,7 @@
"HeaderConfigureRemoteAccess": "Configurați accesul de la distanță", "HeaderConfigureRemoteAccess": "Configurați accesul de la distanță",
"HeaderInstall": "Instalează", "HeaderInstall": "Instalează",
"HeaderKeepRecording": "Continuă Înregistrarea", "HeaderKeepRecording": "Continuă Înregistrarea",
"HeaderLatestMusic": "Cea mai recentă Muzică", "HeaderLatestMusic": "Muzică adăugată recent",
"HeaderNextEpisodePlayingInValue": "Episodul următor se redă în {0}", "HeaderNextEpisodePlayingInValue": "Episodul următor se redă în {0}",
"HeaderCastAndCrew": "Distribuție și echipă", "HeaderCastAndCrew": "Distribuție și echipă",
"HeaderConnectToServer": "Conectați-vă la server", "HeaderConnectToServer": "Conectați-vă la server",
@ -454,7 +454,7 @@
"HeaderCustomDlnaProfiles": "Profiluri personalizate", "HeaderCustomDlnaProfiles": "Profiluri personalizate",
"HeaderDefaultRecordingSettings": "Setări implicite de înregistrare", "HeaderDefaultRecordingSettings": "Setări implicite de înregistrare",
"HeaderDeleteItem": "Ștergeți elementul", "HeaderDeleteItem": "Ștergeți elementul",
"DisplayInOtherHomeScreenSections": "Afișați în secțiuni ecranul principal, cum ar fi 'Cea mai recentă Media'și 'Continuați să Vizionați'", "DisplayInOtherHomeScreenSections": "Afișați în secțiuni ecranul principal, cum ar fi 'Media adăugate recent'și 'Continuați să Vizionați'",
"DisplayMissingEpisodesWithinSeasons": "Afișați episoade lipsă din sezoane", "DisplayMissingEpisodesWithinSeasons": "Afișați episoade lipsă din sezoane",
"DisplayMissingEpisodesWithinSeasonsHelp": "Acesta trebuie de asemenea activat pentru bibliotecile TV din configurația serverului.", "DisplayMissingEpisodesWithinSeasonsHelp": "Acesta trebuie de asemenea activat pentru bibliotecile TV din configurația serverului.",
"DisplayModeHelp": "Selectați stilul schemei pe care îl doriți pentru interfață.", "DisplayModeHelp": "Selectați stilul schemei pe care îl doriți pentru interfață.",
@ -782,7 +782,7 @@
"HttpsRequiresCert": "Pentru a activa conexiunile securizate, va trebui să furnizați un certificat SSL de încredere, cum ar fi Let's Encrypt. Vă rugăm să furnizați un certificat sau să dezactivați conexiunile securizate.", "HttpsRequiresCert": "Pentru a activa conexiunile securizate, va trebui să furnizați un certificat SSL de încredere, cum ar fi Let's Encrypt. Vă rugăm să furnizați un certificat sau să dezactivați conexiunile securizate.",
"Horizontal": "Orizontal", "Horizontal": "Orizontal",
"Home": "Acasă", "Home": "Acasă",
"HideWatchedContentFromLatestMedia": "Ascunde conținutul vizionat secțiunea 'Cea mai recentă media'", "HideWatchedContentFromLatestMedia": "Ascunde conținutul vizionat secțiunea 'Media adăugate recent'",
"Hide": "Ascunde", "Hide": "Ascunde",
"HeaderYears": "Ani", "HeaderYears": "Ani",
"HeaderXmlSettings": "Setări XML", "HeaderXmlSettings": "Setări XML",
@ -1666,5 +1666,19 @@
"MessageRenameMediaFolder": "Redenumirea unei biblioteci va cauza toate metadatele să fie pierdute, continuați cu grijă.", "MessageRenameMediaFolder": "Redenumirea unei biblioteci va cauza toate metadatele să fie pierdute, continuați cu grijă.",
"OptionDateEpisodeAdded": "Dată Adăugare Episod", "OptionDateEpisodeAdded": "Dată Adăugare Episod",
"OptionDateShowAdded": "Dată Adăugare Serial", "OptionDateShowAdded": "Dată Adăugare Serial",
"MessageNoFavoritesAvailable": "Niciun favorit nu este valabil în momentul actual." "MessageNoFavoritesAvailable": "Niciun favorit nu este valabil în momentul actual.",
"HeaderPerformance": "Performanță",
"PreferEmbeddedExtrasTitlesOverFileNames": "Preferă titlurile încorporate peste numele de fișierelor pentru bonusuri",
"Experimental": "Experimental",
"LabelStereoDownmixAlgorithm": "Algoritmul de Mixare Descendentă în Stereo",
"LabelDummyChapterDuration": "Interval:",
"LabelDummyChapterDurationHelp": "Intervalul dintre fiecare extragere de imagine a unui capitol exprimat în secunde.",
"LabelDummyChapterCount": "Limită:",
"LabelDummyChapterCountHelp": "Numărul maxim de imagini de capitol care vor fi extrase pentru fiecare fișier media individual.",
"LabelChapterImageResolution": "Rezoluție:",
"LabelChapterImageResolutionHelp": "Rezoluția fiecărei imagini de capitol.",
"LabelParallelImageEncodingLimit": "Limita encodărilor simultane",
"LabelParallelImageEncodingLimitHelp": "Numărul maxim de encodări ale imaginilor care sunt permise să ruleze simultan. Setarea acestei valori la 0 va alege automat o limită bazată pe specificațiile tehnice ale sistemului.",
"HeaderDummyChapter": "Imaginile Capitolelor",
"HeaderRecordingMetadataSaving": "Înregistrarea Metadatelor"
} }

View file

@ -1116,8 +1116,8 @@
"MusicAlbum": "Альбом", "MusicAlbum": "Альбом",
"MovieLibraryHelp": "Перегляньте {0}посібник із найменування фільмів{1}.", "MovieLibraryHelp": "Перегляньте {0}посібник із найменування фільмів{1}.",
"Movie": "Фільми", "Movie": "Фільми",
"MoveRight": "Рухайтеся вправо", "MoveRight": "Рухати вправо",
"MoveLeft": "Рухайтеся вліво", "MoveLeft": "Рухати вліво",
"MoreUsersCanBeAddedLater": "Більше користувачів можна додати пізніше з інформаційної панелі.", "MoreUsersCanBeAddedLater": "Більше користувачів можна додати пізніше з інформаційної панелі.",
"MoreMediaInfo": "Інформація про медіа", "MoreMediaInfo": "Інформація про медіа",
"MoreFromValue": "Більше від {0}", "MoreFromValue": "Більше від {0}",
@ -1619,7 +1619,7 @@
"DeletedScene": "Видалена сцена", "DeletedScene": "Видалена сцена",
"BehindTheScenes": "За лаштунками", "BehindTheScenes": "За лаштунками",
"Trailer": "Трейлер", "Trailer": "Трейлер",
"Clip": "Художник", "Clip": "Кліп",
"ShowParentImages": "Показати зображення серіалу", "ShowParentImages": "Показати зображення серіалу",
"AllowEmbeddedSubtitlesAllowTextOption": "Дозволити текст", "AllowEmbeddedSubtitlesAllowTextOption": "Дозволити текст",
"AllowEmbeddedSubtitlesAllowImageOption": "Дозволити зображення", "AllowEmbeddedSubtitlesAllowImageOption": "Дозволити зображення",
@ -1711,5 +1711,10 @@
"SubtitleWhite": "Білий", "SubtitleWhite": "Білий",
"SubtitleYellow": "Жовтий", "SubtitleYellow": "Жовтий",
"SecondarySubtitles": "Додаткові субтитри", "SecondarySubtitles": "Додаткові субтитри",
"SubtitleGreen": "Зелений" "SubtitleGreen": "Зелений",
"Short": "Короткометражка",
"Featurette": "Художник",
"HeaderPerformance": "Продуктивність",
"LabelParallelImageEncodingLimit": "Обмеження паралельного кодування зображень",
"LabelParallelImageEncodingLimitHelp": "Максимальна кількість зображень, які дозволено кодувати паралельно. Якщо встановити значення 0, буде обрано обмеження на основі специфікацій вашої системи."
} }

View file

@ -1705,5 +1705,9 @@
"SubtitleLightGray": "Xám Nhạt", "SubtitleLightGray": "Xám Nhạt",
"SubtitleMagenta": "Đỏ Sậm", "SubtitleMagenta": "Đỏ Sậm",
"SubtitleRed": "Đỏ", "SubtitleRed": "Đỏ",
"SubtitleWhite": "Trắng" "SubtitleWhite": "Trắng",
"LabelParallelImageEncodingLimitHelp": "Lượng mã hóa hình ảnh tối đa được phép chạy song song. Đặt giá trị này thành 0 sẽ chọn giới hạn dựa trên thông số kỹ thuật hệ thống của bạn.",
"SecondarySubtitles": "Phụ đề phụ",
"HeaderPerformance": "Hiệu suất",
"LabelParallelImageEncodingLimit": "Giới hạn mã hóa hình ảnh song song"
} }

View file

@ -1716,5 +1716,8 @@
"SubtitleRed": "红色", "SubtitleRed": "红色",
"SubtitleYellow": "黄色", "SubtitleYellow": "黄色",
"Featurette": "花絮", "Featurette": "花絮",
"Short": "短片" "Short": "短片",
"LabelParallelImageEncodingLimitHelp": "允许并行运行的图像编码的最大数量。设为 0 以根据您的系统配置自动设置。",
"HeaderPerformance": "性能",
"LabelParallelImageEncodingLimit": "并行图像编码限制"
} }

View file

@ -650,7 +650,7 @@
"LabelEmbedAlbumArtDidl": "於 DIDL 中嵌入專輯封面", "LabelEmbedAlbumArtDidl": "於 DIDL 中嵌入專輯封面",
"LabelEasyPinCode": "簡易PIN代碼", "LabelEasyPinCode": "簡易PIN代碼",
"LabelDynamicExternalId": "{0} Id:", "LabelDynamicExternalId": "{0} Id:",
"LabelDropSubtitleHere": "將字幕檔到這裡,或點擊瀏覽。", "LabelDropSubtitleHere": "將字幕檔拖動到這裡,或點擊瀏覽。",
"LabelDropShadow": "陰影:", "LabelDropShadow": "陰影:",
"LabelDroppedFrames": "丟棄的幀:", "LabelDroppedFrames": "丟棄的幀:",
"LabelDropImageHere": "拖移圖片到這裡,或是點擊來選取。", "LabelDropImageHere": "拖移圖片到這裡,或是點擊來選取。",
@ -1096,5 +1096,11 @@
"LabelSyncPlaySettingsSyncCorrection": "同步校正", "LabelSyncPlaySettingsSyncCorrection": "同步校正",
"HomeVideosPhotos": "家庭影片及相片", "HomeVideosPhotos": "家庭影片及相片",
"MessageConfirmRevokeApiKey": "你是否確定要廢除此 API Key有關程序將無法再連接此伺服器。", "MessageConfirmRevokeApiKey": "你是否確定要廢除此 API Key有關程序將無法再連接此伺服器。",
"LabelSyncPlaySettingsExtraTimeOffsetHelp": "為目標裝置調較 SyncPlay 延遲時間(毫秒)以改善不同步問題,請小心調較。" "LabelSyncPlaySettingsExtraTimeOffsetHelp": "為目標裝置調較 SyncPlay 延遲時間(毫秒)以改善不同步問題,請小心調較。",
"Experimental": "試驗性",
"HeaderDummyChapter": "章節圖片",
"IgnoreDtsHelp": "禁用此選項或可解決部份問題,如無法正常播放外部音訊。",
"DownloadAll": "全部下載",
"LabelDummyChapterDuration": "間距:",
"LabelDummyChapterDurationHelp": "章節圖片擷取間距(秒)"
} }

View file

@ -2,6 +2,16 @@ function toLocaleStringSupportsOptions() {
return !!(typeof Intl === 'object' && Intl && typeof Intl.NumberFormat === 'function'); return !!(typeof Intl === 'object' && Intl && typeof Intl.NumberFormat === 'function');
} }
/**
* Generates a random integer in a given range.
* @param {number} min - Minimum of the range.
* @param {number} max - Maximum of the range.
* @returns {number} Randomly generated number.
*/
export function randomInt(min: number, max: number): number {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
/** /**
* Gets the value of a number formatted as a perentage. * Gets the value of a number formatted as a perentage.
* @param {number} value The value as a number. * @param {number} value The value as a number.

View file

@ -158,7 +158,6 @@ const config = {
path.resolve(__dirname, 'node_modules/dom7'), path.resolve(__dirname, 'node_modules/dom7'),
path.resolve(__dirname, 'node_modules/epubjs'), path.resolve(__dirname, 'node_modules/epubjs'),
path.resolve(__dirname, 'node_modules/flv.js'), path.resolve(__dirname, 'node_modules/flv.js'),
path.resolve(__dirname, 'node_modules/hls.js'),
path.resolve(__dirname, 'node_modules/libarchive.js'), path.resolve(__dirname, 'node_modules/libarchive.js'),
path.resolve(__dirname, 'node_modules/marked'), path.resolve(__dirname, 'node_modules/marked'),
path.resolve(__dirname, 'node_modules/react-router'), path.resolve(__dirname, 'node_modules/react-router'),