mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge branch 'master' into trickplay-new
This commit is contained in:
commit
10cafe9e0d
16 changed files with 618 additions and 165 deletions
53
.github/workflows/update-sdk.yml
vendored
Normal file
53
.github/workflows/update-sdk.yml
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
name: Update the Jellyfin SDK
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 7 * * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: unstable-sdk-pr
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ github.repository == 'jellyfin/jellyfin-web' }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out Git repository
|
||||||
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
||||||
|
with:
|
||||||
|
ref: master
|
||||||
|
token: ${{ secrets.JF_BOT_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up Node.js
|
||||||
|
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
check-latest: true
|
||||||
|
cache: npm
|
||||||
|
|
||||||
|
- name: Install latest unstable SDK
|
||||||
|
run: |
|
||||||
|
npm i --save @jellyfin/sdk@unstable
|
||||||
|
VERSION=$(jq -r '.dependencies["@jellyfin/sdk"]' package.json)
|
||||||
|
echo "JF_SDK_VERSION=${VERSION}" >> $GITHUB_ENV
|
||||||
|
git checkout package.json
|
||||||
|
|
||||||
|
- name: Open a pull request
|
||||||
|
uses: peter-evans/create-pull-request@v6
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.JF_BOT_TOKEN }}
|
||||||
|
commit-message: Update @jellyfin/sdk to ${{env.JF_SDK_VERSION}}
|
||||||
|
committer: jellyfin-bot <team@jellyfin.org>
|
||||||
|
author: jellyfin-bot <team@jellyfin.org>
|
||||||
|
branch: update-jf-sdk
|
||||||
|
delete-branch: true
|
||||||
|
title: Update @jellyfin/sdk to ${{env.JF_SDK_VERSION}}
|
||||||
|
body: |
|
||||||
|
**Changes**
|
||||||
|
Updates to the latest unstable @jellyfin/sdk build
|
||||||
|
labels: |
|
||||||
|
dependencies
|
||||||
|
npm
|
226
package-lock.json
generated
226
package-lock.json
generated
|
@ -17,7 +17,7 @@
|
||||||
"@fontsource/noto-sans-kr": "5.0.17",
|
"@fontsource/noto-sans-kr": "5.0.17",
|
||||||
"@fontsource/noto-sans-sc": "5.0.17",
|
"@fontsource/noto-sans-sc": "5.0.17",
|
||||||
"@fontsource/noto-sans-tc": "5.0.17",
|
"@fontsource/noto-sans-tc": "5.0.17",
|
||||||
"@jellyfin/sdk": "unstable",
|
"@jellyfin/sdk": "0.0.0-unstable.202402240501",
|
||||||
"@loadable/component": "5.16.3",
|
"@loadable/component": "5.16.3",
|
||||||
"@mui/icons-material": "5.15.5",
|
"@mui/icons-material": "5.15.5",
|
||||||
"@mui/material": "5.15.5",
|
"@mui/material": "5.15.5",
|
||||||
|
@ -119,7 +119,7 @@
|
||||||
"stylelint-scss": "5.3.2",
|
"stylelint-scss": "5.3.2",
|
||||||
"ts-loader": "9.5.1",
|
"ts-loader": "9.5.1",
|
||||||
"typescript": "5.3.3",
|
"typescript": "5.3.3",
|
||||||
"vitest": "1.2.1",
|
"vitest": "1.3.0",
|
||||||
"webpack": "5.89.0",
|
"webpack": "5.89.0",
|
||||||
"webpack-bundle-analyzer": "4.10.1",
|
"webpack-bundle-analyzer": "4.10.1",
|
||||||
"webpack-cli": "5.1.4",
|
"webpack-cli": "5.1.4",
|
||||||
|
@ -3638,9 +3638,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@jellyfin/sdk": {
|
"node_modules/@jellyfin/sdk": {
|
||||||
"version": "0.0.0-unstable.202401060501",
|
"version": "0.0.0-unstable.202402240501",
|
||||||
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202401060501.tgz",
|
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202402240501.tgz",
|
||||||
"integrity": "sha512-6+mTkcr62rUqF8BoZS8K2h87fV/JjMYPqZ45faytqecJIv3GMo2cJTtBKR1LrmPuAdKhC+/1ic5E7bxIK+P9gA==",
|
"integrity": "sha512-UP6ajpwL6TZbCz/zEA6v5aNoDfOzHlIVM6+Z4VhzTroU6zbUIvVjUi67heANWBO2otq0qee6CyVcLC1/vX0B6Q==",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"axios": "^1.3.4"
|
"axios": "^1.3.4"
|
||||||
}
|
}
|
||||||
|
@ -5076,13 +5076,13 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/expect": {
|
"node_modules/@vitest/expect": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.0.tgz",
|
||||||
"integrity": "sha512-/bqGXcHfyKgFWYwIgFr1QYDaR9e64pRKxgBNWNXPefPFRhgm+K3+a/dS0cUGEreWngets3dlr8w8SBRw2fCfFQ==",
|
"integrity": "sha512-7bWt0vBTZj08B+Ikv70AnLRicohYwFgzNjFqo9SxxqHHxSlUJGSXmCRORhOnRMisiUryKMdvsi1n27Bc6jL9DQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/spy": "1.2.1",
|
"@vitest/spy": "1.3.0",
|
||||||
"@vitest/utils": "1.2.1",
|
"@vitest/utils": "1.3.0",
|
||||||
"chai": "^4.3.10"
|
"chai": "^4.3.10"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
|
@ -5090,12 +5090,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/runner": {
|
"node_modules/@vitest/runner": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.3.0.tgz",
|
||||||
"integrity": "sha512-zc2dP5LQpzNzbpaBt7OeYAvmIsRS1KpZQw4G3WM/yqSV1cQKNKwLGmnm79GyZZjMhQGlRcSFMImLjZaUQvNVZQ==",
|
"integrity": "sha512-1Jb15Vo/Oy7mwZ5bXi7zbgszsdIBNjc4IqP8Jpr/8RdBC4nF1CTzIAn2dxYvpF1nGSseeL39lfLQ2uvs5u1Y9A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/utils": "1.2.1",
|
"@vitest/utils": "1.3.0",
|
||||||
"p-limit": "^5.0.0",
|
"p-limit": "^5.0.0",
|
||||||
"pathe": "^1.1.1"
|
"pathe": "^1.1.1"
|
||||||
},
|
},
|
||||||
|
@ -5131,9 +5131,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/snapshot": {
|
"node_modules/@vitest/snapshot": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.3.0.tgz",
|
||||||
"integrity": "sha512-Tmp/IcYEemKaqAYCS08sh0vORLJkMr0NRV76Gl8sHGxXT5151cITJCET20063wk0Yr/1koQ6dnmP6eEqezmd/Q==",
|
"integrity": "sha512-swmktcviVVPYx9U4SEQXLV6AEY51Y6bZ14jA2yo6TgMxQ3h+ZYiO0YhAHGJNp0ohCFbPAis1R9kK0cvN6lDPQA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"magic-string": "^0.30.5",
|
"magic-string": "^0.30.5",
|
||||||
|
@ -5145,9 +5145,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/spy": {
|
"node_modules/@vitest/spy": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.0.tgz",
|
||||||
"integrity": "sha512-vG3a/b7INKH7L49Lbp0IWrG6sw9j4waWAucwnksPB1r1FTJgV7nkBByd9ufzu6VWya/QTvQW4V9FShZbZIB2UQ==",
|
"integrity": "sha512-AkCU0ThZunMvblDpPKgjIi025UxR8V7MZ/g/EwmAGpjIujLVV2X6rGYGmxE2D4FJbAy0/ijdROHMWa2M/6JVMw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tinyspy": "^2.2.0"
|
"tinyspy": "^2.2.0"
|
||||||
|
@ -5157,9 +5157,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@vitest/utils": {
|
"node_modules/@vitest/utils": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.0.tgz",
|
||||||
"integrity": "sha512-bsH6WVZYe/J2v3+81M5LDU8kW76xWObKIURpPrOXm2pjBniBu2MERI/XP60GpS4PHU3jyK50LUutOwrx4CyHUg==",
|
"integrity": "sha512-/LibEY/fkaXQufi4GDlQZhikQsPO2entBKtfuyIpr1jV4DpaeasqkeHjhdOhU24vSHshcSuEyVlWdzvv2XmYCw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"diff-sequences": "^29.6.3",
|
"diff-sequences": "^29.6.3",
|
||||||
|
@ -18122,28 +18122,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/strip-literal": {
|
"node_modules/strip-literal": {
|
||||||
"version": "1.3.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.0.0.tgz",
|
||||||
"integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==",
|
"integrity": "sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"acorn": "^8.10.0"
|
"js-tokens": "^8.0.2"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/antfu"
|
"url": "https://github.com/sponsors/antfu"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/strip-literal/node_modules/acorn": {
|
"node_modules/strip-literal/node_modules/js-tokens": {
|
||||||
"version": "8.10.0",
|
"version": "8.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz",
|
||||||
"integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
|
"integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==",
|
||||||
"dev": true,
|
"dev": true
|
||||||
"bin": {
|
|
||||||
"acorn": "bin/acorn"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.4.0"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/style-loader": {
|
"node_modules/style-loader": {
|
||||||
"version": "3.3.4",
|
"version": "3.3.4",
|
||||||
|
@ -21118,18 +21112,18 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/tinypool": {
|
"node_modules/tinypool": {
|
||||||
"version": "0.8.1",
|
"version": "0.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz",
|
||||||
"integrity": "sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==",
|
"integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.0.0"
|
"node": ">=14.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tinyspy": {
|
"node_modules/tinyspy": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz",
|
||||||
"integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==",
|
"integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.0.0"
|
"node": ">=14.0.0"
|
||||||
|
@ -22042,9 +22036,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite-node": {
|
"node_modules/vite-node": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.3.0.tgz",
|
||||||
"integrity": "sha512-fNzHmQUSOY+y30naohBvSW7pPn/xn3Ib/uqm+5wAJQJiqQsU0NBR78XdRJb04l4bOFKjpTWld0XAfkKlrDbySg==",
|
"integrity": "sha512-D/oiDVBw75XMnjAXne/4feCkCEwcbr2SU1bjAhCcfI5Bq3VoOHji8/wCPAfUkDIeohJ5nSZ39fNxM3dNZ6OBOA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cac": "^6.7.14",
|
"cac": "^6.7.14",
|
||||||
|
@ -22064,18 +22058,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vitest": {
|
"node_modules/vitest": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/vitest/-/vitest-1.3.0.tgz",
|
||||||
"integrity": "sha512-TRph8N8rnSDa5M2wKWJCMnztCZS9cDcgVTQ6tsTFTG/odHJ4l5yNVqvbeDJYJRZ6is3uxaEpFs8LL6QM+YFSdA==",
|
"integrity": "sha512-V9qb276J1jjSx9xb75T2VoYXdO1UKi+qfflY7V7w93jzX7oA/+RtYE6TcifxksxsZvygSSMwu2Uw6di7yqDMwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vitest/expect": "1.2.1",
|
"@vitest/expect": "1.3.0",
|
||||||
"@vitest/runner": "1.2.1",
|
"@vitest/runner": "1.3.0",
|
||||||
"@vitest/snapshot": "1.2.1",
|
"@vitest/snapshot": "1.3.0",
|
||||||
"@vitest/spy": "1.2.1",
|
"@vitest/spy": "1.3.0",
|
||||||
"@vitest/utils": "1.2.1",
|
"@vitest/utils": "1.3.0",
|
||||||
"acorn-walk": "^8.3.2",
|
"acorn-walk": "^8.3.2",
|
||||||
"cac": "^6.7.14",
|
|
||||||
"chai": "^4.3.10",
|
"chai": "^4.3.10",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"execa": "^8.0.1",
|
"execa": "^8.0.1",
|
||||||
|
@ -22084,11 +22077,11 @@
|
||||||
"pathe": "^1.1.1",
|
"pathe": "^1.1.1",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"std-env": "^3.5.0",
|
"std-env": "^3.5.0",
|
||||||
"strip-literal": "^1.3.0",
|
"strip-literal": "^2.0.0",
|
||||||
"tinybench": "^2.5.1",
|
"tinybench": "^2.5.1",
|
||||||
"tinypool": "^0.8.1",
|
"tinypool": "^0.8.2",
|
||||||
"vite": "^5.0.0",
|
"vite": "^5.0.0",
|
||||||
"vite-node": "1.2.1",
|
"vite-node": "1.3.0",
|
||||||
"why-is-node-running": "^2.2.2"
|
"why-is-node-running": "^2.2.2"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
|
@ -22103,8 +22096,8 @@
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@edge-runtime/vm": "*",
|
"@edge-runtime/vm": "*",
|
||||||
"@types/node": "^18.0.0 || >=20.0.0",
|
"@types/node": "^18.0.0 || >=20.0.0",
|
||||||
"@vitest/browser": "^1.0.0",
|
"@vitest/browser": "1.3.0",
|
||||||
"@vitest/ui": "^1.0.0",
|
"@vitest/ui": "1.3.0",
|
||||||
"happy-dom": "*",
|
"happy-dom": "*",
|
||||||
"jsdom": "*"
|
"jsdom": "*"
|
||||||
},
|
},
|
||||||
|
@ -22198,9 +22191,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vitest/node_modules/npm-run-path": {
|
"node_modules/vitest/node_modules/npm-run-path": {
|
||||||
"version": "5.2.0",
|
"version": "5.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
|
||||||
"integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
|
"integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"path-key": "^4.0.0"
|
"path-key": "^4.0.0"
|
||||||
|
@ -25232,9 +25225,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@jellyfin/sdk": {
|
"@jellyfin/sdk": {
|
||||||
"version": "0.0.0-unstable.202401060501",
|
"version": "0.0.0-unstable.202402240501",
|
||||||
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202401060501.tgz",
|
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202402240501.tgz",
|
||||||
"integrity": "sha512-6+mTkcr62rUqF8BoZS8K2h87fV/JjMYPqZ45faytqecJIv3GMo2cJTtBKR1LrmPuAdKhC+/1ic5E7bxIK+P9gA==",
|
"integrity": "sha512-UP6ajpwL6TZbCz/zEA6v5aNoDfOzHlIVM6+Z4VhzTroU6zbUIvVjUi67heANWBO2otq0qee6CyVcLC1/vX0B6Q==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@jest/schemas": {
|
"@jest/schemas": {
|
||||||
|
@ -26216,23 +26209,23 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@vitest/expect": {
|
"@vitest/expect": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.0.tgz",
|
||||||
"integrity": "sha512-/bqGXcHfyKgFWYwIgFr1QYDaR9e64pRKxgBNWNXPefPFRhgm+K3+a/dS0cUGEreWngets3dlr8w8SBRw2fCfFQ==",
|
"integrity": "sha512-7bWt0vBTZj08B+Ikv70AnLRicohYwFgzNjFqo9SxxqHHxSlUJGSXmCRORhOnRMisiUryKMdvsi1n27Bc6jL9DQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vitest/spy": "1.2.1",
|
"@vitest/spy": "1.3.0",
|
||||||
"@vitest/utils": "1.2.1",
|
"@vitest/utils": "1.3.0",
|
||||||
"chai": "^4.3.10"
|
"chai": "^4.3.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vitest/runner": {
|
"@vitest/runner": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.3.0.tgz",
|
||||||
"integrity": "sha512-zc2dP5LQpzNzbpaBt7OeYAvmIsRS1KpZQw4G3WM/yqSV1cQKNKwLGmnm79GyZZjMhQGlRcSFMImLjZaUQvNVZQ==",
|
"integrity": "sha512-1Jb15Vo/Oy7mwZ5bXi7zbgszsdIBNjc4IqP8Jpr/8RdBC4nF1CTzIAn2dxYvpF1nGSseeL39lfLQ2uvs5u1Y9A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vitest/utils": "1.2.1",
|
"@vitest/utils": "1.3.0",
|
||||||
"p-limit": "^5.0.0",
|
"p-limit": "^5.0.0",
|
||||||
"pathe": "^1.1.1"
|
"pathe": "^1.1.1"
|
||||||
},
|
},
|
||||||
|
@ -26255,9 +26248,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vitest/snapshot": {
|
"@vitest/snapshot": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.3.0.tgz",
|
||||||
"integrity": "sha512-Tmp/IcYEemKaqAYCS08sh0vORLJkMr0NRV76Gl8sHGxXT5151cITJCET20063wk0Yr/1koQ6dnmP6eEqezmd/Q==",
|
"integrity": "sha512-swmktcviVVPYx9U4SEQXLV6AEY51Y6bZ14jA2yo6TgMxQ3h+ZYiO0YhAHGJNp0ohCFbPAis1R9kK0cvN6lDPQA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"magic-string": "^0.30.5",
|
"magic-string": "^0.30.5",
|
||||||
|
@ -26266,18 +26259,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vitest/spy": {
|
"@vitest/spy": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.0.tgz",
|
||||||
"integrity": "sha512-vG3a/b7INKH7L49Lbp0IWrG6sw9j4waWAucwnksPB1r1FTJgV7nkBByd9ufzu6VWya/QTvQW4V9FShZbZIB2UQ==",
|
"integrity": "sha512-AkCU0ThZunMvblDpPKgjIi025UxR8V7MZ/g/EwmAGpjIujLVV2X6rGYGmxE2D4FJbAy0/ijdROHMWa2M/6JVMw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"tinyspy": "^2.2.0"
|
"tinyspy": "^2.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@vitest/utils": {
|
"@vitest/utils": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.0.tgz",
|
||||||
"integrity": "sha512-bsH6WVZYe/J2v3+81M5LDU8kW76xWObKIURpPrOXm2pjBniBu2MERI/XP60GpS4PHU3jyK50LUutOwrx4CyHUg==",
|
"integrity": "sha512-/LibEY/fkaXQufi4GDlQZhikQsPO2entBKtfuyIpr1jV4DpaeasqkeHjhdOhU24vSHshcSuEyVlWdzvv2XmYCw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"diff-sequences": "^29.6.3",
|
"diff-sequences": "^29.6.3",
|
||||||
|
@ -35782,18 +35775,18 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"strip-literal": {
|
"strip-literal": {
|
||||||
"version": "1.3.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.0.0.tgz",
|
||||||
"integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==",
|
"integrity": "sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"acorn": "^8.10.0"
|
"js-tokens": "^8.0.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"acorn": {
|
"js-tokens": {
|
||||||
"version": "8.10.0",
|
"version": "8.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz",
|
||||||
"integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
|
"integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38099,15 +38092,15 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"tinypool": {
|
"tinypool": {
|
||||||
"version": "0.8.1",
|
"version": "0.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz",
|
||||||
"integrity": "sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==",
|
"integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"tinyspy": {
|
"tinyspy": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz",
|
||||||
"integrity": "sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==",
|
"integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"to-fast-properties": {
|
"to-fast-properties": {
|
||||||
|
@ -38757,9 +38750,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"vite-node": {
|
"vite-node": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.3.0.tgz",
|
||||||
"integrity": "sha512-fNzHmQUSOY+y30naohBvSW7pPn/xn3Ib/uqm+5wAJQJiqQsU0NBR78XdRJb04l4bOFKjpTWld0XAfkKlrDbySg==",
|
"integrity": "sha512-D/oiDVBw75XMnjAXne/4feCkCEwcbr2SU1bjAhCcfI5Bq3VoOHji8/wCPAfUkDIeohJ5nSZ39fNxM3dNZ6OBOA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"cac": "^6.7.14",
|
"cac": "^6.7.14",
|
||||||
|
@ -38770,18 +38763,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"vitest": {
|
"vitest": {
|
||||||
"version": "1.2.1",
|
"version": "1.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/vitest/-/vitest-1.3.0.tgz",
|
||||||
"integrity": "sha512-TRph8N8rnSDa5M2wKWJCMnztCZS9cDcgVTQ6tsTFTG/odHJ4l5yNVqvbeDJYJRZ6is3uxaEpFs8LL6QM+YFSdA==",
|
"integrity": "sha512-V9qb276J1jjSx9xb75T2VoYXdO1UKi+qfflY7V7w93jzX7oA/+RtYE6TcifxksxsZvygSSMwu2Uw6di7yqDMwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@vitest/expect": "1.2.1",
|
"@vitest/expect": "1.3.0",
|
||||||
"@vitest/runner": "1.2.1",
|
"@vitest/runner": "1.3.0",
|
||||||
"@vitest/snapshot": "1.2.1",
|
"@vitest/snapshot": "1.3.0",
|
||||||
"@vitest/spy": "1.2.1",
|
"@vitest/spy": "1.3.0",
|
||||||
"@vitest/utils": "1.2.1",
|
"@vitest/utils": "1.3.0",
|
||||||
"acorn-walk": "^8.3.2",
|
"acorn-walk": "^8.3.2",
|
||||||
"cac": "^6.7.14",
|
|
||||||
"chai": "^4.3.10",
|
"chai": "^4.3.10",
|
||||||
"debug": "^4.3.4",
|
"debug": "^4.3.4",
|
||||||
"execa": "^8.0.1",
|
"execa": "^8.0.1",
|
||||||
|
@ -38790,11 +38782,11 @@
|
||||||
"pathe": "^1.1.1",
|
"pathe": "^1.1.1",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"std-env": "^3.5.0",
|
"std-env": "^3.5.0",
|
||||||
"strip-literal": "^1.3.0",
|
"strip-literal": "^2.0.0",
|
||||||
"tinybench": "^2.5.1",
|
"tinybench": "^2.5.1",
|
||||||
"tinypool": "^0.8.1",
|
"tinypool": "^0.8.2",
|
||||||
"vite": "^5.0.0",
|
"vite": "^5.0.0",
|
||||||
"vite-node": "1.2.1",
|
"vite-node": "1.3.0",
|
||||||
"why-is-node-running": "^2.2.2"
|
"why-is-node-running": "^2.2.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -38840,9 +38832,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"npm-run-path": {
|
"npm-run-path": {
|
||||||
"version": "5.2.0",
|
"version": "5.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
|
||||||
"integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
|
"integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"path-key": "^4.0.0"
|
"path-key": "^4.0.0"
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
"stylelint-scss": "5.3.2",
|
"stylelint-scss": "5.3.2",
|
||||||
"ts-loader": "9.5.1",
|
"ts-loader": "9.5.1",
|
||||||
"typescript": "5.3.3",
|
"typescript": "5.3.3",
|
||||||
"vitest": "1.2.1",
|
"vitest": "1.3.0",
|
||||||
"webpack": "5.89.0",
|
"webpack": "5.89.0",
|
||||||
"webpack-bundle-analyzer": "4.10.1",
|
"webpack-bundle-analyzer": "4.10.1",
|
||||||
"webpack-cli": "5.1.4",
|
"webpack-cli": "5.1.4",
|
||||||
|
|
|
@ -58,7 +58,7 @@ const UserProfiles: FunctionComponent = () => {
|
||||||
const menuItems: MenuEntry[] = [];
|
const menuItems: MenuEntry[] = [];
|
||||||
|
|
||||||
menuItems.push({
|
menuItems.push({
|
||||||
name: globalize.translate('ButtonOpen'),
|
name: globalize.translate('ButtonEditUser'),
|
||||||
id: 'open',
|
id: 'open',
|
||||||
icon: 'mode_edit'
|
icon: 'mode_edit'
|
||||||
});
|
});
|
||||||
|
|
|
@ -9,8 +9,64 @@ import 'material-design-icons-iconfont';
|
||||||
import '../../styles/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../components/listview/listview.scss';
|
import '../../components/listview/listview.scss';
|
||||||
|
|
||||||
function getOffsets(elems) {
|
interface OptionItem {
|
||||||
const results = [];
|
asideText?: string;
|
||||||
|
divider?: boolean;
|
||||||
|
icon?: string;
|
||||||
|
id?: string;
|
||||||
|
innerText?: string;
|
||||||
|
name?: string;
|
||||||
|
secondaryText?: string;
|
||||||
|
selected?: boolean;
|
||||||
|
textContent?: string;
|
||||||
|
value?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Options {
|
||||||
|
items: OptionItem[];
|
||||||
|
border?: boolean;
|
||||||
|
callback?: (id: string) => void;
|
||||||
|
dialogClass?: string;
|
||||||
|
enableHistory?: boolean;
|
||||||
|
entryAnimationDuration?: number;
|
||||||
|
entryAnimation?: string;
|
||||||
|
exitAnimationDuration?: number;
|
||||||
|
exitAnimation?: string;
|
||||||
|
menuItemClass?: string;
|
||||||
|
offsetLeft?: number;
|
||||||
|
offsetTop?: number;
|
||||||
|
positionTo?: Element | null;
|
||||||
|
positionY?: string;
|
||||||
|
resolveOnClick?: boolean | (string | null)[];
|
||||||
|
shaded?: boolean;
|
||||||
|
showCancel?: boolean;
|
||||||
|
text?: string;
|
||||||
|
timeout?: number;
|
||||||
|
title?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Offset {
|
||||||
|
top: number;
|
||||||
|
left: number;
|
||||||
|
width: number;
|
||||||
|
height: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DialogOptions {
|
||||||
|
autoFocus?: boolean;
|
||||||
|
enableHistory?: boolean;
|
||||||
|
entryAnimationDuration?: number;
|
||||||
|
entryAnimation?: string;
|
||||||
|
exitAnimationDuration?: number;
|
||||||
|
exitAnimation?: string;
|
||||||
|
modal?: boolean;
|
||||||
|
removeOnClose?: boolean;
|
||||||
|
scrollY?: boolean;
|
||||||
|
size?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getOffsets(elems: Element[]): Offset[] {
|
||||||
|
const results: Offset[] = [];
|
||||||
|
|
||||||
if (!document) {
|
if (!document) {
|
||||||
return results;
|
return results;
|
||||||
|
@ -30,12 +86,12 @@ function getOffsets(elems) {
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPosition(options, dlg) {
|
function getPosition(positionTo: Element, options: Options, dlg: HTMLElement) {
|
||||||
const windowSize = dom.getWindowSize();
|
const windowSize = dom.getWindowSize();
|
||||||
const windowHeight = windowSize.innerHeight;
|
const windowHeight = windowSize.innerHeight;
|
||||||
const windowWidth = windowSize.innerWidth;
|
const windowWidth = windowSize.innerWidth;
|
||||||
|
|
||||||
const pos = getOffsets([options.positionTo])[0];
|
const pos = getOffsets([positionTo])[0];
|
||||||
|
|
||||||
if (options.positionY !== 'top') {
|
if (options.positionY !== 'top') {
|
||||||
pos.top += (pos.height || 0) / 2;
|
pos.top += (pos.height || 0) / 2;
|
||||||
|
@ -71,19 +127,22 @@ function getPosition(options, dlg) {
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
function centerFocus(elem, horiz, on) {
|
function centerFocus(elem: Element, horiz: boolean, on: boolean) {
|
||||||
import('../../scripts/scrollHelper').then((scrollHelper) => {
|
import('../../scripts/scrollHelper').then((scrollHelper) => {
|
||||||
const fn = on ? 'on' : 'off';
|
const fn = on ? 'on' : 'off';
|
||||||
scrollHelper.centerFocus[fn](elem, horiz);
|
scrollHelper.centerFocus[fn](elem, horiz);
|
||||||
|
}).catch(e => {
|
||||||
|
console.warn('Error in centerFocus', e);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function show(options) {
|
/* eslint-disable-next-line sonarjs/cognitive-complexity */
|
||||||
|
export function show(options: Options) {
|
||||||
// items
|
// items
|
||||||
// positionTo
|
// positionTo
|
||||||
// showCancel
|
// showCancel
|
||||||
// title
|
// title
|
||||||
const dialogOptions = {
|
const dialogOptions: DialogOptions = {
|
||||||
removeOnClose: true,
|
removeOnClose: true,
|
||||||
enableHistory: options.enableHistory,
|
enableHistory: options.enableHistory,
|
||||||
scrollY: false
|
scrollY: false
|
||||||
|
@ -239,7 +298,10 @@ export function show(options) {
|
||||||
dlg.innerHTML = html;
|
dlg.innerHTML = html;
|
||||||
|
|
||||||
if (layoutManager.tv) {
|
if (layoutManager.tv) {
|
||||||
centerFocus(dlg.querySelector('.actionSheetScroller'), false, true);
|
const scroller = dlg.querySelector('.actionSheetScroller');
|
||||||
|
if (scroller) {
|
||||||
|
centerFocus(scroller, false, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const btnCloseActionSheet = dlg.querySelector('.btnCloseActionSheet');
|
const btnCloseActionSheet = dlg.querySelector('.btnCloseActionSheet');
|
||||||
|
@ -249,9 +311,9 @@ export function show(options) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let selectedId;
|
let selectedId: string | null = null;
|
||||||
|
|
||||||
let timeout;
|
let timeout: ReturnType<typeof setTimeout> | undefined;
|
||||||
if (options.timeout) {
|
if (options.timeout) {
|
||||||
timeout = setTimeout(function () {
|
timeout = setTimeout(function () {
|
||||||
dialogHelper.close(dlg);
|
dialogHelper.close(dlg);
|
||||||
|
@ -259,16 +321,16 @@ export function show(options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
let isResolved;
|
let isResolved = false;
|
||||||
|
|
||||||
dlg.addEventListener('click', function (e) {
|
dlg.addEventListener('click', function (e) {
|
||||||
const actionSheetMenuItem = dom.parentWithClass(e.target, 'actionSheetMenuItem');
|
const actionSheetMenuItem = dom.parentWithClass(e.target as HTMLElement, 'actionSheetMenuItem');
|
||||||
|
|
||||||
if (actionSheetMenuItem) {
|
if (actionSheetMenuItem) {
|
||||||
selectedId = actionSheetMenuItem.getAttribute('data-id');
|
selectedId = actionSheetMenuItem.getAttribute('data-id');
|
||||||
|
|
||||||
if (options.resolveOnClick) {
|
if (options.resolveOnClick) {
|
||||||
if (options.resolveOnClick.indexOf) {
|
if (Array.isArray(options.resolveOnClick)) {
|
||||||
if (options.resolveOnClick.indexOf(selectedId) !== -1) {
|
if (options.resolveOnClick.indexOf(selectedId) !== -1) {
|
||||||
resolve(selectedId);
|
resolve(selectedId);
|
||||||
isResolved = true;
|
isResolved = true;
|
||||||
|
@ -285,12 +347,15 @@ export function show(options) {
|
||||||
|
|
||||||
dlg.addEventListener('close', function () {
|
dlg.addEventListener('close', function () {
|
||||||
if (layoutManager.tv) {
|
if (layoutManager.tv) {
|
||||||
centerFocus(dlg.querySelector('.actionSheetScroller'), false, false);
|
const scroller = dlg.querySelector('.actionSheetScroller');
|
||||||
|
if (scroller) {
|
||||||
|
centerFocus(scroller, false, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timeout) {
|
if (timeout) {
|
||||||
clearTimeout(timeout);
|
clearTimeout(timeout);
|
||||||
timeout = null;
|
timeout = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isResolved) {
|
if (!isResolved) {
|
||||||
|
@ -306,13 +371,15 @@ export function show(options) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
dialogHelper.open(dlg);
|
dialogHelper.open(dlg).catch(e => {
|
||||||
|
console.warn('DialogHelper.open error', e);
|
||||||
|
});
|
||||||
|
|
||||||
const pos = options.positionTo && dialogOptions.size !== 'fullscreen' ? getPosition(options, dlg) : null;
|
const pos = options.positionTo && dialogOptions.size !== 'fullscreen' ? getPosition(options.positionTo, options, dlg) : null;
|
||||||
|
|
||||||
if (pos) {
|
if (pos) {
|
||||||
dlg.style.position = 'fixed';
|
dlg.style.position = 'fixed';
|
||||||
dlg.style.margin = 0;
|
dlg.style.margin = '0';
|
||||||
dlg.style.left = pos.left + 'px';
|
dlg.style.left = pos.left + 'px';
|
||||||
dlg.style.top = pos.top + 'px';
|
dlg.style.top = pos.top + 'px';
|
||||||
}
|
}
|
|
@ -2,17 +2,17 @@ import focusManager from '../components/focusManager';
|
||||||
import dom from './dom';
|
import dom from './dom';
|
||||||
import '../styles/scrollstyles.scss';
|
import '../styles/scrollstyles.scss';
|
||||||
|
|
||||||
function getBoundingClientRect(elem) {
|
function getBoundingClientRect(elem: Element) {
|
||||||
// Support: BlackBerry 5, iOS 3 (original iPhone)
|
// Support: BlackBerry 5, iOS 3 (original iPhone)
|
||||||
// If we don't have gBCR, just use 0,0 rather than error
|
// If we don't have gBCR, just use 0,0 rather than error
|
||||||
if (elem.getBoundingClientRect) {
|
if (elem.getBoundingClientRect) {
|
||||||
return elem.getBoundingClientRect();
|
return elem.getBoundingClientRect();
|
||||||
} else {
|
} else {
|
||||||
return { top: 0, left: 0 };
|
return { top: 0, left: 0, width: undefined, height: undefined };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getPosition(scrollContainer, item, horizontal) {
|
export function getPosition(scrollContainer: HTMLElement, item: HTMLElement, horizontal: boolean) {
|
||||||
const slideeOffset = getBoundingClientRect(scrollContainer);
|
const slideeOffset = getBoundingClientRect(scrollContainer);
|
||||||
const itemOffset = getBoundingClientRect(item);
|
const itemOffset = getBoundingClientRect(item);
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ export function getPosition(scrollContainer, item, horizontal) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function toCenter(container, elem, horizontal, skipWhenVisible) {
|
export function toCenter(container: HTMLElement, elem: HTMLElement, horizontal: boolean, skipWhenVisible?: boolean) {
|
||||||
const pos = getPosition(container, elem, horizontal);
|
const pos = getPosition(container, elem, horizontal);
|
||||||
|
|
||||||
if (skipWhenVisible && pos.isVisible) {
|
if (skipWhenVisible && pos.isVisible) {
|
||||||
|
@ -61,7 +61,7 @@ export function toCenter(container, elem, horizontal, skipWhenVisible) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function toStart(container, elem, horizontal, skipWhenVisible) {
|
export function toStart(container: HTMLElement, elem: HTMLElement, horizontal: boolean, skipWhenVisible?: boolean) {
|
||||||
const pos = getPosition(container, elem, horizontal);
|
const pos = getPosition(container, elem, horizontal);
|
||||||
|
|
||||||
if (skipWhenVisible && pos.isVisible) {
|
if (skipWhenVisible && pos.isVisible) {
|
||||||
|
@ -81,7 +81,7 @@ export function toStart(container, elem, horizontal, skipWhenVisible) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function centerOnFocus(e, scrollSlider, horizontal) {
|
function centerOnFocus(e: Event, scrollSlider: HTMLElement, horizontal: boolean) {
|
||||||
const focused = focusManager.focusableParent(e.target);
|
const focused = focusManager.focusableParent(e.target);
|
||||||
|
|
||||||
if (focused) {
|
if (focused) {
|
||||||
|
@ -89,16 +89,16 @@ function centerOnFocus(e, scrollSlider, horizontal) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function centerOnFocusHorizontal(e) {
|
function centerOnFocusHorizontal(this: HTMLElement, e: Event) {
|
||||||
centerOnFocus(e, this, true);
|
centerOnFocus(e, this, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function centerOnFocusVertical(e) {
|
function centerOnFocusVertical(this: HTMLElement, e: Event) {
|
||||||
centerOnFocus(e, this, false);
|
centerOnFocus(e, this, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const centerFocus = {
|
export const centerFocus = {
|
||||||
on: function (element, horizontal) {
|
on: function (element: Element, horizontal: boolean) {
|
||||||
element.setAttribute(`data-scroll-mode-${horizontal ? 'x' : 'y'}`, 'custom');
|
element.setAttribute(`data-scroll-mode-${horizontal ? 'x' : 'y'}`, 'custom');
|
||||||
|
|
||||||
if (horizontal) {
|
if (horizontal) {
|
||||||
|
@ -113,7 +113,7 @@ export const centerFocus = {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
off: function (element, horizontal) {
|
off: function (element: Element, horizontal: boolean) {
|
||||||
element.removeAttribute(`data-scroll-mode-${horizontal ? 'x' : 'y'}`);
|
element.removeAttribute(`data-scroll-mode-${horizontal ? 'x' : 'y'}`);
|
||||||
|
|
||||||
if (horizontal) {
|
if (horizontal) {
|
|
@ -1778,5 +1778,7 @@
|
||||||
"MachineTranslated": "Traduït per Màquina",
|
"MachineTranslated": "Traduït per Màquina",
|
||||||
"ForeignPartsOnly": "Només parts Forçades/Forànies",
|
"ForeignPartsOnly": "Només parts Forçades/Forànies",
|
||||||
"HeaderGuestCast": "Estrelles Convidades",
|
"HeaderGuestCast": "Estrelles Convidades",
|
||||||
"HeaderAllRecordings": "Tots els enregistraments"
|
"HeaderAllRecordings": "Tots els enregistraments",
|
||||||
|
"LabelServerVersion": "Versió del Servidor",
|
||||||
|
"LabelWebVersion": "Versió Web"
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,6 +108,7 @@
|
||||||
"ButtonChangeServer": "Change Server",
|
"ButtonChangeServer": "Change Server",
|
||||||
"ButtonClose": "Close",
|
"ButtonClose": "Close",
|
||||||
"ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.",
|
"ButtonEditOtherUserPreferences": "Edit this user's profile, image and personal preferences.",
|
||||||
|
"ButtonEditUser": "Edit user",
|
||||||
"ButtonExitApp": "Exit Application",
|
"ButtonExitApp": "Exit Application",
|
||||||
"ButtonForgotPassword": "Forgot Password",
|
"ButtonForgotPassword": "Forgot Password",
|
||||||
"ButtonFullscreen": "Fullscreen",
|
"ButtonFullscreen": "Fullscreen",
|
||||||
|
@ -118,7 +119,6 @@
|
||||||
"ButtonMore": "More",
|
"ButtonMore": "More",
|
||||||
"ButtonNextTrack": "Next track",
|
"ButtonNextTrack": "Next track",
|
||||||
"ButtonOk": "Ok",
|
"ButtonOk": "Ok",
|
||||||
"ButtonOpen": "Open",
|
|
||||||
"ButtonParentalControl": "Parental control",
|
"ButtonParentalControl": "Parental control",
|
||||||
"ButtonPause": "Pause",
|
"ButtonPause": "Pause",
|
||||||
"ButtonPlayer": "Player",
|
"ButtonPlayer": "Player",
|
||||||
|
|
|
@ -135,7 +135,7 @@
|
||||||
"LabelCollection": "אוספים",
|
"LabelCollection": "אוספים",
|
||||||
"LabelCommunityRating": "דירוג הקהילה",
|
"LabelCommunityRating": "דירוג הקהילה",
|
||||||
"LabelContentType": "סוג התוכן",
|
"LabelContentType": "סוג התוכן",
|
||||||
"LabelCountry": "מדינה",
|
"LabelCountry": "מדינה/אזור",
|
||||||
"LabelCriticRating": "דירוג מבקרים",
|
"LabelCriticRating": "דירוג מבקרים",
|
||||||
"LabelCurrentPassword": "סיסמא נוכחית",
|
"LabelCurrentPassword": "סיסמא נוכחית",
|
||||||
"LabelCustomCss": "CSS מותאם אישית",
|
"LabelCustomCss": "CSS מותאם אישית",
|
||||||
|
@ -1216,5 +1216,33 @@
|
||||||
"LabelSelectAudioNormalization": "נרמול אודיו",
|
"LabelSelectAudioNormalization": "נרמול אודיו",
|
||||||
"LabelStereoDownmixAlgorithm": "אלגוריתם עירבול מטה לסטריאו",
|
"LabelStereoDownmixAlgorithm": "אלגוריתם עירבול מטה לסטריאו",
|
||||||
"LabelEncoderPreset": "חבילת קידוד",
|
"LabelEncoderPreset": "חבילת קידוד",
|
||||||
"LabelEnableLUFSScanHelp": "לקוחות יכולים לנרמל את ניגון האודיו בכדי לקבל עצמה זהה בין שירים. זה יגרום להארכת משך סריקת הספרייה ולצריכת משאבים מוגברת."
|
"LabelEnableLUFSScanHelp": "לקוחות יכולים לנרמל את ניגון האודיו בכדי לקבל עצמה זהה בין שירים. זה יגרום להארכת משך סריקת הספרייה ולצריכת משאבים מוגברת.",
|
||||||
|
"Bold": "מודגש",
|
||||||
|
"LabelSubtitleFormatHelp": "למשל: srt",
|
||||||
|
"LabelSerialNumber": "מספר סידורי",
|
||||||
|
"LabelStreamType": "סוג הזרמה",
|
||||||
|
"LabelTextWeight": "עובי טקסט",
|
||||||
|
"LabelSkipBackLength": "אורך דילוג אחורה",
|
||||||
|
"LabelSportsCategories": "קטגוריות ספורט",
|
||||||
|
"LabelSubtitleDownloaders": "מורידי כתוביות",
|
||||||
|
"LabelSupportedMediaTypes": "סוגי מדיה נתמכים",
|
||||||
|
"LabelSkipForwardLength": "אורך דילוג קדימה",
|
||||||
|
"LabelSortBy": "מיון לפי",
|
||||||
|
"LabelPreferredSubtitleLanguage": "שפת כתוביות מועדפת",
|
||||||
|
"LabelSyncPlaySettingsSyncCorrection": "תיקון סנכרון",
|
||||||
|
"LabelProfileCodecsHelp": "מופרד בפסיקים. אפשר להשאיר ריק בשביל כל המפענחים.",
|
||||||
|
"LabelRequireHttps": "אכיפת HTTPS",
|
||||||
|
"LabelRepositoryUrl": "כתובת המאגר",
|
||||||
|
"LabelRepositoryName": "שם המאגר",
|
||||||
|
"LabelSubtitlePlaybackMode": "מצב כתוביות",
|
||||||
|
"LabelSubtitleVerticalPosition": "מקום אנכי",
|
||||||
|
"LabelSyncPlayNoGroups": "אין קבוצות זמינות",
|
||||||
|
"LabelSyncPlayTimeSyncDevice": "סנכרון הזמן מול",
|
||||||
|
"LabelSyncPlaySyncMethod": "שיטת סנכרון",
|
||||||
|
"LabelSimultaneousConnectionLimit": "מגבלת תזרימים מקביליים",
|
||||||
|
"LabelSelectVersionToInstall": "נא לבחור גרסה להתקנה",
|
||||||
|
"LabelTextBackgroundColor": "צבע רקע טקסט",
|
||||||
|
"LabelSystem": "מערכת",
|
||||||
|
"LabelProfileContainersHelp": "מופרד בפסיקים. אפשר להשאיר ריק בשביל כל המכולות.",
|
||||||
|
"LabelServerVersion": "גרסת שרת"
|
||||||
}
|
}
|
||||||
|
|
|
@ -431,7 +431,7 @@
|
||||||
"LabelCollection": "Collezione",
|
"LabelCollection": "Collezione",
|
||||||
"LabelCommunityRating": "Voto del pubblico",
|
"LabelCommunityRating": "Voto del pubblico",
|
||||||
"LabelContentType": "Tipo di contenuto",
|
"LabelContentType": "Tipo di contenuto",
|
||||||
"LabelCountry": "Nazione",
|
"LabelCountry": "Nazione/Regione",
|
||||||
"LabelCriticRating": "Voto della critica",
|
"LabelCriticRating": "Voto della critica",
|
||||||
"LabelCurrentPassword": "Password corrente",
|
"LabelCurrentPassword": "Password corrente",
|
||||||
"LabelCustomCertificatePath": "Percorso personalizzato certificato SSL",
|
"LabelCustomCertificatePath": "Percorso personalizzato certificato SSL",
|
||||||
|
@ -1782,5 +1782,8 @@
|
||||||
"AiTranslated": "Traduzione con AI",
|
"AiTranslated": "Traduzione con AI",
|
||||||
"HeaderGuestCast": "Personaggi Famosi",
|
"HeaderGuestCast": "Personaggi Famosi",
|
||||||
"SearchResultsEmpty": "Ci dispiace! Nessun risultato trovato per \"{0}\"",
|
"SearchResultsEmpty": "Ci dispiace! Nessun risultato trovato per \"{0}\"",
|
||||||
"HeaderAllRecordings": "Tutte le registrazioni"
|
"HeaderAllRecordings": "Tutte le registrazioni",
|
||||||
|
"LabelBuildVersion": "Versione Compilata",
|
||||||
|
"LabelServerVersion": "Versione server",
|
||||||
|
"LabelWebVersion": "Versione web"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1785,5 +1785,6 @@
|
||||||
"HeaderAllRecordings": "Wszystkie nagrania",
|
"HeaderAllRecordings": "Wszystkie nagrania",
|
||||||
"LabelBuildVersion": "Wersja kompilacji",
|
"LabelBuildVersion": "Wersja kompilacji",
|
||||||
"LabelServerVersion": "Wersja serwera",
|
"LabelServerVersion": "Wersja serwera",
|
||||||
"LabelWebVersion": "Wersja sieciowa"
|
"LabelWebVersion": "Wersja sieciowa",
|
||||||
|
"ButtonEditUser": "Edytuj użytkownika"
|
||||||
}
|
}
|
||||||
|
|
|
@ -185,7 +185,7 @@
|
||||||
"LabelProfileContainersHelp": "Separados por vírgula. Pode ser deixado em branco para usar com todos os contentores.",
|
"LabelProfileContainersHelp": "Separados por vírgula. Pode ser deixado em branco para usar com todos os contentores.",
|
||||||
"LabelProfileContainer": "Contentor",
|
"LabelProfileContainer": "Contentor",
|
||||||
"LabelProfileCodecsHelp": "Separados por vírgula. Pode ser deixado em branco para usar com todos os codecs.",
|
"LabelProfileCodecsHelp": "Separados por vírgula. Pode ser deixado em branco para usar com todos os codecs.",
|
||||||
"LabelProfileCodecs": "Codecs",
|
"LabelProfileCodecs": "Codificadores",
|
||||||
"LabelProfileAudioCodecs": "Codecs do áudio",
|
"LabelProfileAudioCodecs": "Codecs do áudio",
|
||||||
"LabelPreferredSubtitleLanguage": "Idioma de legendas preferido",
|
"LabelPreferredSubtitleLanguage": "Idioma de legendas preferido",
|
||||||
"LabelPreferredDisplayLanguage": "Idioma de visualização preferido",
|
"LabelPreferredDisplayLanguage": "Idioma de visualização preferido",
|
||||||
|
@ -353,7 +353,7 @@
|
||||||
"LabelMetadataReadersHelp": "Ordene as fontes locais de metadados por ordem de prioridade. O primeiro ficheiro a ser encontrado será lido.",
|
"LabelMetadataReadersHelp": "Ordene as fontes locais de metadados por ordem de prioridade. O primeiro ficheiro a ser encontrado será lido.",
|
||||||
"LabelMetadataReaders": "Leirores de metadados",
|
"LabelMetadataReaders": "Leirores de metadados",
|
||||||
"LabelMetadataDownloadersHelp": "Active e ordene os seus pesquisadores de metadados por ordem de prioridade. Pesquisadores com menor prioridade só serão utilizados para completar informação em falta.",
|
"LabelMetadataDownloadersHelp": "Active e ordene os seus pesquisadores de metadados por ordem de prioridade. Pesquisadores com menor prioridade só serão utilizados para completar informação em falta.",
|
||||||
"LabelLogs": "Histórico",
|
"LabelLogs": "Registros",
|
||||||
"LabelKodiMetadataUserHelp": "Guardar dados de utilização em NFO para que outras aplicações os utilizem.",
|
"LabelKodiMetadataUserHelp": "Guardar dados de utilização em NFO para que outras aplicações os utilizem.",
|
||||||
"LabelKodiMetadataUser": "Guardar dados de utilização em NFO para",
|
"LabelKodiMetadataUser": "Guardar dados de utilização em NFO para",
|
||||||
"LabelImageFetchersHelp": "Activar e ordenar os pesquisadores de imagens por ordem de preferência.",
|
"LabelImageFetchersHelp": "Activar e ordenar os pesquisadores de imagens por ordem de preferência.",
|
||||||
|
@ -372,7 +372,7 @@
|
||||||
"LabelCustomCertificatePath": "Localização do certificado SSL personalizado",
|
"LabelCustomCertificatePath": "Localização do certificado SSL personalizado",
|
||||||
"LabelCurrentPassword": "Palavra-passe actual",
|
"LabelCurrentPassword": "Palavra-passe actual",
|
||||||
"LabelCriticRating": "Avaliação da crítica",
|
"LabelCriticRating": "Avaliação da crítica",
|
||||||
"LabelCountry": "País",
|
"LabelCountry": "País/Região",
|
||||||
"LabelContentType": "Tipo de conteúdo",
|
"LabelContentType": "Tipo de conteúdo",
|
||||||
"LabelCommunityRating": "Avaliação da comunidade",
|
"LabelCommunityRating": "Avaliação da comunidade",
|
||||||
"LabelCollection": "Colecção",
|
"LabelCollection": "Colecção",
|
||||||
|
@ -1181,7 +1181,7 @@
|
||||||
"OptionForceRemoteSourceTranscoding": "Força a transcodificação de fontes de mídia remotas, como TV ao vivo",
|
"OptionForceRemoteSourceTranscoding": "Força a transcodificação de fontes de mídia remotas, como TV ao vivo",
|
||||||
"PreferEmbeddedTitlesOverFileNames": "Preferir títulos incorporados ao invés dos nomes dos arquivos",
|
"PreferEmbeddedTitlesOverFileNames": "Preferir títulos incorporados ao invés dos nomes dos arquivos",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Alterar isso será aplicado aos novos metadados salvos daqui para frente. Os arquivos de metadados existentes serão atualizados na próxima vez em que forem salvos pelo Jellyfin Server.",
|
"OptionSaveMetadataAsHiddenHelp": "Alterar isso será aplicado aos novos metadados salvos daqui para frente. Os arquivos de metadados existentes serão atualizados na próxima vez em que forem salvos pelo Jellyfin Server.",
|
||||||
"OptionRegex": "Regex",
|
"OptionRegex": "Expressão Regular",
|
||||||
"OptionLoginAttemptsBeforeLockoutHelp": "Um valor zero significa herdar o padrão de três tentativas para usuários normais e cinco para administradores. Definir como -1 desativará o recurso.",
|
"OptionLoginAttemptsBeforeLockoutHelp": "Um valor zero significa herdar o padrão de três tentativas para usuários normais e cinco para administradores. Definir como -1 desativará o recurso.",
|
||||||
"OptionExtractChapterImage": "Ativar extração de imagem de capítulo",
|
"OptionExtractChapterImage": "Ativar extração de imagem de capítulo",
|
||||||
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferir informações de episódios incorporados ao invés de nomes de arquivos",
|
"PreferEmbeddedEpisodeInfosOverFileNames": "Preferir informações de episódios incorporados ao invés de nomes de arquivos",
|
||||||
|
@ -1200,7 +1200,7 @@
|
||||||
"HeaderDVR": "DVR",
|
"HeaderDVR": "DVR",
|
||||||
"ApiKeysCaption": "Lista das chaves de API ativadas no momento",
|
"ApiKeysCaption": "Lista das chaves de API ativadas no momento",
|
||||||
"ButtonTogglePlaylist": "Lista de leitura",
|
"ButtonTogglePlaylist": "Lista de leitura",
|
||||||
"ButtonSyncPlay": "SyncPlay",
|
"ButtonSyncPlay": "Sincronização",
|
||||||
"Data": "Dados",
|
"Data": "Dados",
|
||||||
"ButtonUseQuickConnect": "Usar conexão rápida",
|
"ButtonUseQuickConnect": "Usar conexão rápida",
|
||||||
"ButtonActivate": "Ativar",
|
"ButtonActivate": "Ativar",
|
||||||
|
@ -1368,7 +1368,7 @@
|
||||||
"EnableRewatchingNextUp": "Activar Rever em 'A Seguir'",
|
"EnableRewatchingNextUp": "Activar Rever em 'A Seguir'",
|
||||||
"Arranger": "Organizador",
|
"Arranger": "Organizador",
|
||||||
"Print": "Imprimir",
|
"Print": "Imprimir",
|
||||||
"Poster": "Poster",
|
"Poster": "Cartaz",
|
||||||
"Small": "Pequeno",
|
"Small": "Pequeno",
|
||||||
"QuickConnectActivationSuccessful": "Activado com sucesso",
|
"QuickConnectActivationSuccessful": "Activado com sucesso",
|
||||||
"SaveChanges": "Gravar alterações",
|
"SaveChanges": "Gravar alterações",
|
||||||
|
@ -1485,5 +1485,298 @@
|
||||||
"LabelSyncPlaySettingsSpeedToSyncDurationHelp": "Quantidade de milissegundos usados pelo SpeedToSync para corrigir a posição de reprodução.",
|
"LabelSyncPlaySettingsSpeedToSyncDurationHelp": "Quantidade de milissegundos usados pelo SpeedToSync para corrigir a posição de reprodução.",
|
||||||
"SubtitleAppearanceSettingsDisclaimer": "As configurações a seguir não se aplicam às legendas gráficas mencionadas acima ou às legendas ASS/SSA que incorporam seus próprios estilos.",
|
"SubtitleAppearanceSettingsDisclaimer": "As configurações a seguir não se aplicam às legendas gráficas mencionadas acima ou às legendas ASS/SSA que incorporam seus próprios estilos.",
|
||||||
"UnsupportedPlayback": "Jellyfin não pode desencriptar conteúdo protegido por DRM, mas todo o conteúdo será testado de qualquer maneira, incluindo títulos protegidos. Alguns arquivos podem aparecer completamente pretos devido à encriptação ou a outros recursos não suportados, como títulos interativos.",
|
"UnsupportedPlayback": "Jellyfin não pode desencriptar conteúdo protegido por DRM, mas todo o conteúdo será testado de qualquer maneira, incluindo títulos protegidos. Alguns arquivos podem aparecer completamente pretos devido à encriptação ou a outros recursos não suportados, como títulos interativos.",
|
||||||
"MessageSyncPlayGroupWait": "{0} está a armazenar em buffer…"
|
"MessageSyncPlayGroupWait": "{0} está a armazenar em buffer…",
|
||||||
|
"LabelSelectAudioNormalization": "Normalização de áudio",
|
||||||
|
"LabelBackdropScreensaverIntervalHelp": "O tempo em segundos entre diferentes cenários ao usar o protetor de tela de cenário.",
|
||||||
|
"LabelServerVersion": "Versão do servidor",
|
||||||
|
"LabelTonemappingPeakHelp": "Substitua o sinal/pico nominal/de referência por este valor. Útil quando as informações de pico incorporadas nos metadados de exibição não são confiáveis ou quando há mapeamento de tons de uma faixa mais baixa para uma faixa mais alta. Os valores recomendados e padrão são 100 e 0.",
|
||||||
|
"OptionDateShowAdded": "Data de exibição adicionada",
|
||||||
|
"Studios": "Estúdios",
|
||||||
|
"WriteAccessRequired": "Jellyfin requer acesso de gravação a esta pasta. Garanta o acesso de gravação e tente novamente.",
|
||||||
|
"LabelFallbackFontPathHelp": "Essas fontes são usadas por alguns clientes para renderizar legendas. Consulte a documentação para obter mais informações.",
|
||||||
|
"EnableGamepadHelp": "Ouça a entrada de qualquer controlador conectado. (Requer: Modo de exibição 'TV')",
|
||||||
|
"BackdropScreensaver": "Protetor de tela de fundo",
|
||||||
|
"LabelLevel": "Nível",
|
||||||
|
"LabelSyncPlaySettingsMinDelaySpeedToSync": "Atraso mínimo da velocidade de sincronização",
|
||||||
|
"OptionDateEpisodeAdded": "Data do episódio adicionado",
|
||||||
|
"SubtitleDownloadersHelp": "Habilite e classifique seus downloaders de legendas preferidos em ordem de prioridade.",
|
||||||
|
"Sort": "Organizar",
|
||||||
|
"SmartSubtitlesHelp": "As legendas que correspondem à preferência de idioma serão carregadas quando o áudio estiver em um idioma estrangeiro.",
|
||||||
|
"SubtitleMagenta": "Magenta",
|
||||||
|
"Smart": "Inteligente",
|
||||||
|
"StopPlayback": "Parar a reprodução",
|
||||||
|
"MessageSyncPlayEnabled": "Sincronização ativada.",
|
||||||
|
"MessageSyncPlayGroupDoesNotExist": "Falha ao ingressar no grupo porque ele não existe.",
|
||||||
|
"Subtitle": "Legenda",
|
||||||
|
"MixedMoviesShows": "Filmes e Shows Misturados",
|
||||||
|
"MessageSyncPlayIsDisabled": "Permissão necessária para usar a Sincronização.",
|
||||||
|
"LabelMediaDetails": "Detalhes da mídia",
|
||||||
|
"MessageSyncPlayErrorNoActivePlayer": "Nenhum tocador ativo encontrado. A Sincronização foi desativada.",
|
||||||
|
"SpecialFeatures": "Características especiais",
|
||||||
|
"MessageSyncPlayNoGroupsAvailable": "Nenhum grupo disponível. Comece a jogar algo primeiro.",
|
||||||
|
"Smaller": "Menor",
|
||||||
|
"MessageSyncPlayErrorMedia": "Falha ao ativar o SyncPlay! Erro de mídia.",
|
||||||
|
"MessageSyncPlayErrorAccessingGroups": "Ocorreu um erro ao acessar a lista de grupos.",
|
||||||
|
"SubtitleBlack": "Preto",
|
||||||
|
"SubtitleBlue": "Azul",
|
||||||
|
"SubtitleVerticalPositionHelp": "Número da linha onde o texto aparece. Números positivos indicam de cima para baixo. Números negativos indicam de baixo para cima.",
|
||||||
|
"Remuxing": "Remuxing",
|
||||||
|
"OnApplicationStartup": "Na inicialização do aplicativo",
|
||||||
|
"MessageSyncPlayLibraryAccessDenied": "O acesso a este conteúdo é restrito.",
|
||||||
|
"SortName": "Classificar nome",
|
||||||
|
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Estas definições também se aplicam a qualquer reprodução do Google Cast iniciada por este dispositivo.",
|
||||||
|
"OnWakeFromSleep": "Ao acordar do sono",
|
||||||
|
"OptionMaxActiveSessionsHelp": "Um valor 0 desativará o recurso.",
|
||||||
|
"Watched": "Assistido",
|
||||||
|
"SyncPlayGroupDefaultTitle": "grupo de {0}",
|
||||||
|
"TabRepositories": "Repositórios",
|
||||||
|
"TagsValue": "Etiquetas: {0}",
|
||||||
|
"TextSent": "Texto enviado.",
|
||||||
|
"ThemeSongs": "Músicas tema",
|
||||||
|
"ThemeVideos": "Vídeos temáticos",
|
||||||
|
"TheseSettingsAffectSubtitlesOnThisDevice": "Estas configurações afetam as legendas neste dispositivo",
|
||||||
|
"Thumb": "Miniatura",
|
||||||
|
"ThumbCard": "Cartão de Miniatura",
|
||||||
|
"TitleHardwareAcceleration": "Aceleraçao do hardware",
|
||||||
|
"Trailers": "Prévia",
|
||||||
|
"TypeOptionPluralAudio": "Áudios",
|
||||||
|
"TypeOptionPluralBook": "Livros",
|
||||||
|
"TypeOptionPluralMovie": "Filmes",
|
||||||
|
"Typewriter": "Máquina de escrever",
|
||||||
|
"UnknownError": "Ocorreu um erro desconhecido.",
|
||||||
|
"Up": "Acima",
|
||||||
|
"Upload": "Carregar",
|
||||||
|
"ValueCodec": "Codec: {0}",
|
||||||
|
"ValueContainer": "Contêiner: {0}",
|
||||||
|
"ValueDiscNumber": "Disco {0}",
|
||||||
|
"ValueMovieCount": "{0} filmes",
|
||||||
|
"ValueEpisodeCount": "{0} episódios",
|
||||||
|
"ValueMusicVideoCount": "{0} videoclipes",
|
||||||
|
"ValueOneEpisode": "1 episódio",
|
||||||
|
"ValueOneSong": "1 música",
|
||||||
|
"ValueSeconds": "{0} segundos",
|
||||||
|
"ViewAlbum": "Ver álbum",
|
||||||
|
"ViewAlbumArtist": "Ver artista do álbum",
|
||||||
|
"ViewPlaybackInfo": "Ver informações de reprodução",
|
||||||
|
"WeeklyAt": "{0} às {1}",
|
||||||
|
"Whitelist": "Lista de permissões",
|
||||||
|
"Writers": "Escritores",
|
||||||
|
"XmlTvKidsCategoriesHelp": "Os programas com estas categorias serão exibidos como programas para crianças. Separe múltiplos com '|'.",
|
||||||
|
"Yes": "Sim",
|
||||||
|
"HeaderSelectFallbackFontPathHelp": "Navegue ou insira o caminho da pasta de fontes substitutas a ser usada para renderizar legendas ASS/SSA.",
|
||||||
|
"RemuxHelp1": "A mídia está em um contêiner de arquivo incompatível (MKV, AVI, WMV, etc.), mas tanto o fluxo de vídeo quanto o fluxo de áudio são compatíveis com o dispositivo. A mídia será reembalada sem perdas imediatamente antes de ser enviada ao dispositivo.",
|
||||||
|
"PreferFmp4HlsContainer": "Prefira o contêiner de mídia fMP4-HLS",
|
||||||
|
"LabelSyncPlayInfo": "Informações de Sincronização",
|
||||||
|
"PreferFmp4HlsContainerHelp": "Prefira usar fMP4 como contêiner padrão para HLS, tornando possível transmitir diretamente conteúdo HEVC e AV1 em dispositivos suportados.",
|
||||||
|
"LabelSelectAudioChannels": "Canais",
|
||||||
|
"LabelSelectStereo": "Estéreo",
|
||||||
|
"ContainerNotSupported": "O contêiner não é compatível",
|
||||||
|
"LabelSyncPlayNoGroups": "Nenhum grupo disponível",
|
||||||
|
"LabelSyncPlaySettingsMaxDelaySpeedToSync": "Atraso máximo da Velocidade de sincronização",
|
||||||
|
"LabelSyncPlaySettingsSkipToSync": "Ativar pulo de sincronização",
|
||||||
|
"LabelSyncPlaySettingsSpeedToSync": "Ativar SpeedToSync",
|
||||||
|
"NotificationsMovedMessage": "A funcionalidade de notificações foi movida para o plugin Webhook.",
|
||||||
|
"AspectRatioCover": "Capa",
|
||||||
|
"AspectRatioFill": "Preencher",
|
||||||
|
"AudioCodecNotSupported": "O codec de áudio não é compatível",
|
||||||
|
"HeaderGuestCast": "Estrelas convidadas",
|
||||||
|
"LabelSyncPlaySettingsSpeedToSyncHelp": "Método de correção de sincronização que consiste em acelerar a reprodução. A correção de sincronização deve estar habilitada.",
|
||||||
|
"MessageSyncPlayDisabled": "SyncPlay desativado.",
|
||||||
|
"LabelVideoInfo": "Informações do vídeo",
|
||||||
|
"LabelRemuxingInfo": "Informações sobre remixagem",
|
||||||
|
"LabelDate": "Data",
|
||||||
|
"MessageRenameMediaFolder": "Renomear uma biblioteca de mídia fará com que todos os metadados sejam perdidos, proceda com cuidado.",
|
||||||
|
"LabelSyncPlaySettingsMinDelaySkipToSync": "Atraso mínimo do pulo de sincronização",
|
||||||
|
"LogLevel.None": "Nada",
|
||||||
|
"LogLevel.Critical": "Crítico",
|
||||||
|
"New": "Novo",
|
||||||
|
"SubtitleWhite": "Branco",
|
||||||
|
"SubtitleLightGray": "Cinza claro",
|
||||||
|
"Track": "Trilha",
|
||||||
|
"TypeOptionPluralMusicArtist": "Artistas musicais",
|
||||||
|
"TypeOptionPluralSeason": "Temporadas",
|
||||||
|
"LabelSelectMono": "Mono",
|
||||||
|
"HeaderEpisodesStatus": "Status dos episódios",
|
||||||
|
"LabelSyncPlaySettingsSkipToSyncHelp": "Método de correção de sincronismo que consiste em buscar a posição estimada. A correção de sincronização deve estar habilitada.",
|
||||||
|
"LogLevel.Trace": "Vestígio",
|
||||||
|
"LogLevel.Debug": "Depurar",
|
||||||
|
"LogLevel.Information": "Informação",
|
||||||
|
"MessageRepositoryInstallDisclaimer": "AVISO: Instalar um repositório de plugins de terceiros traz riscos. Ele pode conter código instável ou malicioso e pode mudar a qualquer momento. Instale apenas repositórios de autores em que você confia.",
|
||||||
|
"OptionAllowContentDownload": "Permitir downloads de mídia",
|
||||||
|
"StoryArc": "Arco da história",
|
||||||
|
"TabNetworking": "Rede",
|
||||||
|
"ValueOneMovie": "1 filme",
|
||||||
|
"HeaderSelectFallbackFontPath": "Selecione o caminho da pasta de fontes substitutas",
|
||||||
|
"XmlTvMovieCategoriesHelp": "Os programas com estas categorias serão exibidos como filmes. Separe múltiplos com '|'.",
|
||||||
|
"LabelVideoRange": "Alcance de vídeo",
|
||||||
|
"Mixer": "Misturador",
|
||||||
|
"LabelSystem": "Sistema",
|
||||||
|
"SaveRecordingImages": "Salvar gravação de imagens EPG",
|
||||||
|
"SaveRecordingImagesHelp": "Salve imagens do provedor de listagens EPG junto com a mídia lateral.",
|
||||||
|
"UseDoubleRateDeinterlacing": "Dobre a taxa de quadros ao desentrelaçar",
|
||||||
|
"MessageSyncPlayUserJoined": "{0} entrou no grupo.",
|
||||||
|
"MessageSyncPlayUserLeft": "{0} saiu do grupo.",
|
||||||
|
"MillisecondsUnit": "ms",
|
||||||
|
"SubtitleGreen": "Verde",
|
||||||
|
"Notifications": "Notificações",
|
||||||
|
"XmlTvNewsCategoriesHelp": "Os programas com estas categorias serão exibidos como programas de notícias. Separe múltiplos com '|'.",
|
||||||
|
"LabelOriginalMediaInfo": "Informações da mídia original",
|
||||||
|
"YoutubeBadRequest": "Requisição ruim.",
|
||||||
|
"YoutubeDenied": "O vídeo solicitado não pode ser reproduzido em players incorporados.",
|
||||||
|
"TypeOptionPluralBoxSet": "Conjuntos de caixas",
|
||||||
|
"LabelBackdropScreensaverInterval": "Intervalo do protetor de tela de fundo",
|
||||||
|
"UseDoubleRateDeinterlacingHelp": "Essa configuração usa a taxa de campo durante o desentrelaçamento, geralmente chamada de desentrelaçamento bob, que dobra a taxa de quadros do vídeo para fornecer movimento total, como o que você veria ao visualizar um vídeo entrelaçado em uma TV.",
|
||||||
|
"LabelDirectStreamingInfo": "Informações de transmissão direta",
|
||||||
|
"LabelAlbumGain": "Ganho do álbum",
|
||||||
|
"LogoScreensaver": "Logotipo do Protetor de tela",
|
||||||
|
"MediaInfoColorSpace": "Espaço colorido",
|
||||||
|
"Studio": "Estúdio",
|
||||||
|
"SubtitleGray": "Cinza",
|
||||||
|
"TabLogs": "Histórico",
|
||||||
|
"Tags": "Etiquetas",
|
||||||
|
"Vertical": "Vertical",
|
||||||
|
"Video": "Vídeo",
|
||||||
|
"VideoAudio": "Vídeo Áudio",
|
||||||
|
"MessageNoItemsAvailable": "Nenhum item está disponível no momento.",
|
||||||
|
"MessageNoFavoritesAvailable": "Nenhum favorito está disponível no momento.",
|
||||||
|
"SaveRecordingNFOHelp": "Salve metadados do provedor de listagens EPG junto com a mídia.",
|
||||||
|
"TonemappingRangeHelp": "Selecione o intervalo de cores de saída. Auto é igual ao intervalo de entrada.",
|
||||||
|
"TypeOptionPluralEpisode": "Episódios",
|
||||||
|
"MediaInfoColorTransfer": "Transferência de cores",
|
||||||
|
"MediaInfoVideoRange": "Alcance de vídeo",
|
||||||
|
"MessageNoGenresAvailable": "Permita que alguns provedores de metadados extraiam gêneros da Internet.",
|
||||||
|
"ListView": "Lista de Exibição",
|
||||||
|
"LogLevel.Warning": "Aviso",
|
||||||
|
"MessageChangeRecordingPath": "Alterar sua pasta de gravação não migrará as gravações existentes do local antigo para o novo. Você precisará movê-los manualmente, se desejar.",
|
||||||
|
"ListPaging": "{0}-{1} de {2}",
|
||||||
|
"Localization": "Localização",
|
||||||
|
"Lyricist": "Letrista",
|
||||||
|
"NextChapter": "Próximo Capítulo",
|
||||||
|
"TvLibraryHelp": "Revise o {0}guia de nomenclatura de TV{1}.",
|
||||||
|
"TypeOptionPluralSeries": "Programas de televisão",
|
||||||
|
"TypeOptionPluralVideo": "Vídeos",
|
||||||
|
"ValueSeriesCount": "{0} série",
|
||||||
|
"LabelAudioInfo": "Informações de áudio",
|
||||||
|
"RemuxHelp2": "Remux usa muito pouco poder de processamento com qualidade de mídia completamente sem perdas.",
|
||||||
|
"MenuOpen": "Abrir Menu",
|
||||||
|
"MenuClose": "Fechar Menu",
|
||||||
|
"OptionAllowContentDownloadHelp": "Os usuários podem baixar mídia e armazená-la em seus dispositivos. Isso não é o mesmo que um recurso de sincronização. As bibliotecas de livros exigem que isso esteja ativado para funcionar corretamente.",
|
||||||
|
"SmallCaps": "Letras Minúsculas",
|
||||||
|
"StereoDownmixAlgorithmHelp": "Algoritmo usado para fazer downmix de áudio multicanal para estéreo.",
|
||||||
|
"Suggestions": "Sugestões",
|
||||||
|
"TabCodecs": "Codificadores",
|
||||||
|
"SubtitleRed": "Vermelho",
|
||||||
|
"SubtitleYellow": "Amarelo",
|
||||||
|
"Unrated": "Sem classificação",
|
||||||
|
"TypeOptionPluralMusicAlbum": "Álbuns de música",
|
||||||
|
"TypeOptionPluralMusicVideo": "Vídeos musicais",
|
||||||
|
"UserMenu": "Menu do Usuário",
|
||||||
|
"ValueAlbumCount": "{0} álbuns",
|
||||||
|
"ValueOneAlbum": "1 álbum",
|
||||||
|
"ValueSongCount": "{0} músicas",
|
||||||
|
"Controls": "Controles",
|
||||||
|
"LabelSyncPlaySettingsSpeedToSyncDuration": "Duração da Velocidade de sincronização",
|
||||||
|
"EnableFallbackFontHelp": "Ative fontes alternativas personalizadas. Isso pode evitar o problema de renderização incorreta de legendas.",
|
||||||
|
"MessagePlaybackError": "Ocorreu um erro ao reproduzir este arquivo no receptor do Google Cast.",
|
||||||
|
"NextTrack": "Pular para o próximo",
|
||||||
|
"TitleHostingSettings": "Configurações de hospedagem",
|
||||||
|
"LabelTextWeight": "Peso do texto",
|
||||||
|
"Bold": "Negrito",
|
||||||
|
"MessageSyncPlayCreateGroupDenied": "Permissão necessária para criar um grupo.",
|
||||||
|
"MessageUnauthorizedUser": "Você não está autorizado a acessar o servidor neste momento. Entre em contato com o administrador do servidor para obter mais informações.",
|
||||||
|
"OtherArtist": "Outro Artista",
|
||||||
|
"Transcoding": "Transcodificação",
|
||||||
|
"YoutubePlaybackError": "O vídeo solicitado não pode ser reproduzido.",
|
||||||
|
"MessageChromecastConnectionError": "Seu receptor do Google Cast não consegue entrar em contato com o servidor Jellyfin. Verifique a conexão e tente novamente.",
|
||||||
|
"EnableFallbackFont": "Ativar fontes substitutas",
|
||||||
|
"LabelDeveloper": "Desenvolvedor",
|
||||||
|
"MessageSyncPlayErrorMissingSession": "Falha ao ativar o Sincronização! Sessão perdida.",
|
||||||
|
"MessageSyncPlayPlaybackPermissionRequired": "É necessária permissão de reprodução.",
|
||||||
|
"OriginalAirDate": "Data de transmissão original",
|
||||||
|
"SelectAudioNormalizationHelp": "Ganho de faixa - ajusta o volume de cada faixa para que sejam reproduzidas com o mesmo volume. Ganho do álbum - ajusta o volume de todas as faixas apenas de um álbum, mantendo a faixa dinâmica do álbum.",
|
||||||
|
"LabelSyncPlaySettingsSyncCorrectionHelp": "Habilite a sincronização ativa da reprodução acelerando a mídia ou buscando a posição estimada. Desative isso em caso de gagueira intensa.",
|
||||||
|
"Larger": "Maior",
|
||||||
|
"LogLevel.Error": "Erro",
|
||||||
|
"MediaInfoTitle": "Título",
|
||||||
|
"MessageAddRepository": "Caso queira adicionar um repositório, clique no botão próximo ao cabeçalho e preencha as informações solicitadas.",
|
||||||
|
"MessageSyncPlayJoinGroupDenied": "Não é possível entrar no grupo.",
|
||||||
|
"LabelTrackGain": "Rastrear ganho",
|
||||||
|
"ValueMinutes": "{0} minutos",
|
||||||
|
"LabelBuildVersion": "Versão de compilação",
|
||||||
|
"LabelWebVersion": "Versão web",
|
||||||
|
"SubtitleCyan": "Ciano",
|
||||||
|
"SubtitleOffset": "Deslocamento de legenda",
|
||||||
|
"ValueOneMusicVideo": "1 videoclipe",
|
||||||
|
"ValueOneSeries": "1 série",
|
||||||
|
"XmlTvSportsCategoriesHelp": "Os programas com estas categorias serão exibidos como programas esportivos. Separe múltiplos com '|'.",
|
||||||
|
"LabelFallbackFontPath": "Caminho da pasta de fontes substitutas",
|
||||||
|
"LabelPlaybackInfo": "Informações de reprodução",
|
||||||
|
"LabelTranscodingInfo": "Informações de transcodificação",
|
||||||
|
"AllowHevcEncoding": "Permitir codificação no formato HEVC",
|
||||||
|
"LabelAllowedAudioChannels": "Máximo de canais de áudio permitidos",
|
||||||
|
"YoutubeNotFound": "Vídeo não encontrado.",
|
||||||
|
"EnableEnhancedNvdecDecoder": "Habilitar decodificador NVDEC aprimorado",
|
||||||
|
"EnableVppTonemapping": "Habilitar mapeamento de tom VPP",
|
||||||
|
"MediaInfoDvProfile": "Perfil DV",
|
||||||
|
"VideoCodecNotSupported": "O codec de vídeo não é compatível",
|
||||||
|
"SubtitleCodecNotSupported": "O codec de legenda não é compatível",
|
||||||
|
"RefFramesNotSupported": "Quadros de referência não são suportados",
|
||||||
|
"SecondaryAudioNotSupported": "Faixas de áudio secundárias não são suportadas",
|
||||||
|
"VideoLevelNotSupported": "O nível do codec de vídeo não é compatível",
|
||||||
|
"AudioBitDepthNotSupported": "A profundidade de bits do áudio não é suportada",
|
||||||
|
"LabelHardwareEncodingOptions": "Opções de codificação de hardware",
|
||||||
|
"UnknownAudioStreamInfo": "As informações do fluxo de áudio são desconhecidas",
|
||||||
|
"DirectPlayError": "Ocorreu um erro ao iniciar a reprodução direta",
|
||||||
|
"Short": "Curto",
|
||||||
|
"Clip": "Clipe",
|
||||||
|
"BehindTheScenes": "Por trás das cenas",
|
||||||
|
"DeletedScene": "Cena deletada",
|
||||||
|
"Interview": "Entrevista",
|
||||||
|
"LabelVideoRangeType": "Tipo de intervalo de vídeo",
|
||||||
|
"MediaInfoVideoRangeType": "Tipo de intervalo de vídeo",
|
||||||
|
"MediaInfoDoViTitle": "Título do DVD",
|
||||||
|
"MediaInfoDvVersionMajor": "Versão DV principal",
|
||||||
|
"MediaInfoDvLevel": "Nível DV",
|
||||||
|
"Unreleased": "Ainda não lançado",
|
||||||
|
"AllowAv1Encoding": "Permitir codificação no formato AV1",
|
||||||
|
"AiTranslated": "IA traduzida",
|
||||||
|
"MachineTranslated": "Traduzido automaticamente",
|
||||||
|
"AnamorphicVideoNotSupported": "O vídeo anamórfico não é compatível",
|
||||||
|
"InterlacedVideoNotSupported": "Vídeo entrelaçado não é compatível",
|
||||||
|
"EnableEnhancedNvdecDecoderHelp": "Implementação experimental de NVDEC, não habilite esta opção a menos que você encontre erros de decodificação.",
|
||||||
|
"AudioChannelsNotSupported": "O número de canais de áudio não é suportado",
|
||||||
|
"ContainerBitrateExceedsLimit": "A taxa de bits do vídeo excede o limite",
|
||||||
|
"VideoBitrateNotSupported": "A taxa de bits do vídeo não é suportada",
|
||||||
|
"LabelVppTonemappingBrightness": "Ganho de brilho do mapeamento de tom VPP",
|
||||||
|
"LabelVppTonemappingBrightnessHelp": "Aplique ganho de brilho no mapeamento de tons VPP. Os valores recomendados e padrão são 16 e 0.",
|
||||||
|
"ThemeSong": "Música tema",
|
||||||
|
"Featurette": "Destaque",
|
||||||
|
"Scene": "Cena",
|
||||||
|
"Sample": "Amostra",
|
||||||
|
"ThemeVideo": "Vídeo temático",
|
||||||
|
"EnableSplashScreen": "Habilite a tela inicial",
|
||||||
|
"LabelVppTonemappingContrast": "Ganho de contraste do mapeamento de tom VPP",
|
||||||
|
"LabelVppTonemappingContrastHelp": "Aplique ganho de contraste no mapeamento de tons VPP. Os valores recomendados e padrão são 1.",
|
||||||
|
"Unknown": "Desconhecido",
|
||||||
|
"EnableIntelLowPowerHevcHwEncoder": "Habilitar codificador de hardware HEVC Intel Baixa-Potência",
|
||||||
|
"AudioIsExternal": "O fluxo de áudio é externo",
|
||||||
|
"MediaInfoElPresentFlag": "Sinalizador predefinido DV el",
|
||||||
|
"AudioProfileNotSupported": "O perfil do codec de áudio não é compatível",
|
||||||
|
"MediaInfoDvVersionMinor": "Versão DV menor",
|
||||||
|
"Select": "Selecione",
|
||||||
|
"VideoProfileNotSupported": "O perfil do codec de vídeo não é compatível",
|
||||||
|
"MediaInfoRpuPresentFlag": "Sinalizador predefinido DV rpu",
|
||||||
|
"HearingImpairedShort": "Alta Definição/SDH",
|
||||||
|
"ForeignPartsOnly": "Apenas partes forçadas/estrangeiras",
|
||||||
|
"LabelIsHearingImpaired": "Para deficientes auditivos (SDH)",
|
||||||
|
"AudioBitrateNotSupported": "A taxa de bits do áudio não é suportada",
|
||||||
|
"AudioSampleRateNotSupported": "A taxa de amostragem do áudio não é suportada",
|
||||||
|
"VideoResolutionNotSupported": "A resolução do vídeo não é suportada",
|
||||||
|
"VideoBitDepthNotSupported": "A profundidade de bits do vídeo não é suportada",
|
||||||
|
"VideoFramerateNotSupported": "A taxa de quadros do vídeo não é compatível",
|
||||||
|
"UnknownVideoStreamInfo": "As informações do stream de vídeo são desconhecidas",
|
||||||
|
"SelectAll": "Selecionar tudo",
|
||||||
|
"LabelTonemappingMode": "Modo de mapeamento de tons",
|
||||||
|
"TonemappingModeHelp": "Selecione o modo de mapeamento de tons. Se ocorrerem erros de sobre-exposição, experimente o modo RGB.",
|
||||||
|
"VideoRangeTypeNotSupported": "O tipo de intervalo do vídeo não é compatível"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1774,5 +1774,8 @@
|
||||||
"LabelAlbumGain": "Albüm Ses Kazancı",
|
"LabelAlbumGain": "Albüm Ses Kazancı",
|
||||||
"LabelTrackGain": "Parça Ses Kazancı",
|
"LabelTrackGain": "Parça Ses Kazancı",
|
||||||
"SearchResultsEmpty": "Üzgünüz! \"{0}\" için sonuç bulunamadı",
|
"SearchResultsEmpty": "Üzgünüz! \"{0}\" için sonuç bulunamadı",
|
||||||
"HeaderAllRecordings": "Tüm Kayıtlar"
|
"HeaderAllRecordings": "Tüm Kayıtlar",
|
||||||
|
"LabelBuildVersion": "Yapı sürümü",
|
||||||
|
"LabelServerVersion": "Sunucu sürümü",
|
||||||
|
"LabelWebVersion": "Web sürümü"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1779,5 +1779,8 @@
|
||||||
"LabelSelectAudioNormalization": "Нормалізація звуку",
|
"LabelSelectAudioNormalization": "Нормалізація звуку",
|
||||||
"LabelTrackGain": "Посилення треку",
|
"LabelTrackGain": "Посилення треку",
|
||||||
"SearchResultsEmpty": "Вибачте! Нічого не знайдено за запитом «{0}»",
|
"SearchResultsEmpty": "Вибачте! Нічого не знайдено за запитом «{0}»",
|
||||||
"HeaderAllRecordings": "Всі записи"
|
"HeaderAllRecordings": "Всі записи",
|
||||||
|
"LabelBuildVersion": "Версія збірки",
|
||||||
|
"LabelServerVersion": "Версія сервера",
|
||||||
|
"LabelWebVersion": "Версія вебу"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1782,5 +1782,9 @@
|
||||||
"SelectAudioNormalizationHelp": "音轨增益 - 调整每个音轨的音量,使它们播放时具有相同的响度。专辑增益 - 只调整专辑中所有音轨的音量,保持专辑的动态范围。",
|
"SelectAudioNormalizationHelp": "音轨增益 - 调整每个音轨的音量,使它们播放时具有相同的响度。专辑增益 - 只调整专辑中所有音轨的音量,保持专辑的动态范围。",
|
||||||
"LabelAlbumGain": "专辑增益",
|
"LabelAlbumGain": "专辑增益",
|
||||||
"LabelSelectAudioNormalization": "音频标准化",
|
"LabelSelectAudioNormalization": "音频标准化",
|
||||||
"HeaderAllRecordings": "所有录制的节目"
|
"HeaderAllRecordings": "所有录制的节目",
|
||||||
|
"LabelServerVersion": "服务器版本",
|
||||||
|
"LabelWebVersion": "网页版本",
|
||||||
|
"LabelBuildVersion": "构建版本",
|
||||||
|
"ButtonEditUser": "编辑用户"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1781,5 +1781,9 @@
|
||||||
"LabelSelectAudioNormalization": "音量標準化",
|
"LabelSelectAudioNormalization": "音量標準化",
|
||||||
"SelectAudioNormalizationHelp": "音軌增益:調整個別音軌的增益以獲得一致的音量。專輯增益:調整專輯中全部音軌的音量。",
|
"SelectAudioNormalizationHelp": "音軌增益:調整個別音軌的增益以獲得一致的音量。專輯增益:調整專輯中全部音軌的音量。",
|
||||||
"LabelAlbumGain": "專輯增益",
|
"LabelAlbumGain": "專輯增益",
|
||||||
"HeaderAllRecordings": "所有錄製的節目"
|
"HeaderAllRecordings": "所有錄製的節目",
|
||||||
|
"ButtonEditUser": "編輯用戶",
|
||||||
|
"LabelServerVersion": "伺服器版本",
|
||||||
|
"LabelBuildVersion": "組建版本",
|
||||||
|
"LabelWebVersion": "網頁版本"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue