diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e21308280..0783b750c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup node environment - uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: node-version: 20 check-latest: true diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c65bb0daa..d63dd039d 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -22,13 +22,13 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Initialize CodeQL - uses: github/codeql-action/init@407ffafae6a767df3e0230c3df91b6443ae8df75 # v2.22.8 + uses: github/codeql-action/init@1500a131381b66de0c52ac28abb13cd79f4b7ecc # v2.22.12 with: languages: javascript queries: +security-extended - name: Autobuild - uses: github/codeql-action/autobuild@407ffafae6a767df3e0230c3df91b6443ae8df75 # v2.22.8 + uses: github/codeql-action/autobuild@1500a131381b66de0c52ac28abb13cd79f4b7ecc # v2.22.12 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@407ffafae6a767df3e0230c3df91b6443ae8df75 # v2.22.8 + uses: github/codeql-action/analyze@1500a131381b66de0c52ac28abb13cd79f4b7ecc # v2.22.12 diff --git a/.github/workflows/pr-suggestions.yml b/.github/workflows/pr-suggestions.yml index 50633e06b..2d183c770 100644 --- a/.github/workflows/pr-suggestions.yml +++ b/.github/workflows/pr-suggestions.yml @@ -22,7 +22,7 @@ jobs: ref: ${{ github.event.pull_request.head.sha }} - name: Setup node environment - uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: node-version: 20 check-latest: true @@ -33,6 +33,6 @@ jobs: - name: Run eslint if: ${{ github.repository == 'jellyfin/jellyfin-web' }} - uses: CatChen/eslint-suggestion-action@912483cec485e691398ec76c25fef971456039a1 # v3.1.1 + uses: CatChen/eslint-suggestion-action@7bbf6d65396dbcc73d1e053d900eb5745988c11c # v3.1.2 with: github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml index 2137fd361..feca848d1 100644 --- a/.github/workflows/quality.yml +++ b/.github/workflows/quality.yml @@ -20,7 +20,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup node environment - uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: node-version: 20 check-latest: true @@ -44,7 +44,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup node environment - uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: node-version: 20 check-latest: true @@ -65,7 +65,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup node environment - uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: node-version: 20 check-latest: true @@ -89,7 +89,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup node environment - uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: node-version: 20 check-latest: true @@ -113,7 +113,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup node environment - uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: node-version: 20 check-latest: true @@ -134,7 +134,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup node environment - uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0 + uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 with: node-version: 20 check-latest: true diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index a847eeb67..2f3bca85e 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest if: ${{ contains(github.repository, 'jellyfin/') }} steps: - - uses: actions/stale@1160a2240286f5da8ec72b1c0816ce2481aabf84 # v8.0.0 + - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 with: repo-token: ${{ secrets.JF_BOT_TOKEN }} operations-per-run: 75 @@ -37,7 +37,7 @@ jobs: runs-on: ubuntu-latest if: ${{ contains(github.repository, 'jellyfin/') }} steps: - - uses: actions/stale@1160a2240286f5da8ec72b1c0816ce2481aabf84 # v8.0.0 + - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9.0.0 with: repo-token: ${{ secrets.JF_BOT_TOKEN }} operations-per-run: 75 diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 9e25df438..c0d9d963b 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1,143 +1,148 @@ # Jellyfin Contributors - - [JoshuaBoniface](https://github.com/joshuaboniface) - - [nvllsvm](https://github.com/nvllsvm) - - [JustAMan](https://github.com/JustAMan) - - [dcrdev](https://github.com/dcrdev) - - [EraYaN](https://github.com/EraYaN) - - [flemse](https://github.com/flemse) - - [bfayers](https://github.com/bfayers) - - [Bond_009](https://github.com/Bond-009) - - [AnthonyLavado](https://github.com/anthonylavado) - - [dkanada](https://github.com/dkanada) - - [sparky8251](https://github.com/sparky8251) - - [LeoVerto](https://github.com/LeoVerto) - - [cvium](https://github.com/cvium) - - [grafixeyehero](https://github.com/grafixeyehero) - - [Drago96](https://github.com/drago-96) - - [ViXXoR](https://github.com/ViXXoR) - - [nkmerrill](https://github.com/nkmerrill) - - [TtheCreator](https://github.com/Tthecreator) - - [RazeLighter777](https://github.com/RazeLighter777) - - [LogicalPhallacy](https://github.com/LogicalPhallacy) - - [thornbill](https://github.com/thornbill) - - [redSpoutnik](https://github.com/redSpoutnik) - - [DrPandemic](https://github.com/drpandemic) - - [Oddstr13](https://github.com/oddstr13) - - [petermcneil](https://github.com/petermcneil) - - [lewazo](https://github.com/lewazo) - - [Raghu Saxena](https://github.com/ckcr4lyf) - - [Nickbert7](https://github.com/Nickbert7) - - [ferferga](https://github.com/ferferga) - - [bilde2910](https://github.com/bilde2910) - - [Daniel Hartung](https://github.com/dhartung) - - [Ryan Hartzell](https://github.com/ryan-hartzell) - - [Thibault Nocchi](https://github.com/ThibaultNocchi) - - [MrTimscampi](https://github.com/MrTimscampi) - - [artiume](https://github.com/Artiume) - - [ConfusedPolarBear](https://github.com/ConfusedPolarBear) - - [Sarab Singh](https://github.com/sarab97) - - [DesertCookie](https://github.com/desertcookie) - - [GuilhermeHideki](https://github.com/GuilhermeHideki) - - [Andrei Oanca](https://github.com/OancaAndrei) - - [Cromefire_](https://github.com/cromefire) - - [Orry Verducci](https://github.com/orryverducci) - - [Camc314](https://github.com/camc314) - - [danieladov](https://github.com/danieladov) - - [Stephane Senart](https://github.com/ssenart) - - [imchasingshadows](https://github.com/imchasingshadows) - - [Ömer Erdinç Yağmurlu](https://github.com/omeryagmurlu) - - [Keegan Dahm](https://github.com/keegandahm) - - [GodTamIt](https://github.com/GodTamIt) - - [MinecraftPlaye](https://github.com/MinecraftPlaye) - - [Matthew Jones](https://github.com/matthew-jones-uk) - - [taku0](https://github.com/taku0) - - [Viperinius](https://github.com/Viperinius) - - [is343](https://github.com/is343) - - [Meet Pandya](https://github.com/meet-k-pandya) - - [Peter Spenler](https://github.com/peterspenler) - - [Vankerkom](https://github.com/vankerkom) - - [edvwib](https://github.com/edvwib) - - [Rob Farraher](https://github.com/farraherbg) - - [TelepathicWalrus](https://github.com/TelepathicWalrus) - - [Pier-Luc Ducharme](https://github.com/pl-ducharme) - - [Anantharaju S](https://github.com/Anantharajus) - - [Merlin Sievers](https://github.com/dann-merlin) - - [Fishbigger](https://github.com/fishbigger) - - [sleepycatcoding](https://github.com/sleepycatcoding) - - [TheMelmacian](https://github.com/TheMelmacian) - - [v0idMrK](https://github.com/v0idMrK) - - [tehciolo](https://github.com/tehciolo) - - [scampower3](https://github.com/scampower3) - - [LittleBigOwI] (https://github.com/LittleBigOwI/) - - [Nate G](https://github.com/GGProGaming) - - [Grady Hallenbeck](https://github.com/grhallenbeck) - - [DinuD](https://github.com/DinuD) - - [Kevin Tan (Valius)](https://github.com/valius) - - [Rasmus Krämer](https://github.com/rasmuslos) +- [JoshuaBoniface](https://github.com/joshuaboniface) +- [nvllsvm](https://github.com/nvllsvm) +- [JustAMan](https://github.com/JustAMan) +- [dcrdev](https://github.com/dcrdev) +- [EraYaN](https://github.com/EraYaN) +- [flemse](https://github.com/flemse) +- [bfayers](https://github.com/bfayers) +- [Bond_009](https://github.com/Bond-009) +- [AnthonyLavado](https://github.com/anthonylavado) +- [dkanada](https://github.com/dkanada) +- [sparky8251](https://github.com/sparky8251) +- [LeoVerto](https://github.com/LeoVerto) +- [cvium](https://github.com/cvium) +- [grafixeyehero](https://github.com/grafixeyehero) +- [Drago96](https://github.com/drago-96) +- [ViXXoR](https://github.com/ViXXoR) +- [nkmerrill](https://github.com/nkmerrill) +- [TtheCreator](https://github.com/Tthecreator) +- [RazeLighter777](https://github.com/RazeLighter777) +- [LogicalPhallacy](https://github.com/LogicalPhallacy) +- [thornbill](https://github.com/thornbill) +- [redSpoutnik](https://github.com/redSpoutnik) +- [DrPandemic](https://github.com/drpandemic) +- [Oddstr13](https://github.com/oddstr13) +- [petermcneil](https://github.com/petermcneil) +- [lewazo](https://github.com/lewazo) +- [Raghu Saxena](https://github.com/ckcr4lyf) +- [Nickbert7](https://github.com/Nickbert7) +- [ferferga](https://github.com/ferferga) +- [bilde2910](https://github.com/bilde2910) +- [Daniel Hartung](https://github.com/dhartung) +- [Ryan Hartzell](https://github.com/ryan-hartzell) +- [Thibault Nocchi](https://github.com/ThibaultNocchi) +- [MrTimscampi](https://github.com/MrTimscampi) +- [artiume](https://github.com/Artiume) +- [ConfusedPolarBear](https://github.com/ConfusedPolarBear) +- [Sarab Singh](https://github.com/sarab97) +- [DesertCookie](https://github.com/desertcookie) +- [GuilhermeHideki](https://github.com/GuilhermeHideki) +- [Andrei Oanca](https://github.com/OancaAndrei) +- [Cromefire_](https://github.com/cromefire) +- [Orry Verducci](https://github.com/orryverducci) +- [Camc314](https://github.com/camc314) +- [danieladov](https://github.com/danieladov) +- [Stephane Senart](https://github.com/ssenart) +- [imchasingshadows](https://github.com/imchasingshadows) +- [Ömer Erdinç Yağmurlu](https://github.com/omeryagmurlu) +- [Keegan Dahm](https://github.com/keegandahm) +- [GodTamIt](https://github.com/GodTamIt) +- [MinecraftPlaye](https://github.com/MinecraftPlaye) +- [Matthew Jones](https://github.com/matthew-jones-uk) +- [taku0](https://github.com/taku0) +- [Viperinius](https://github.com/Viperinius) +- [is343](https://github.com/is343) +- [Meet Pandya](https://github.com/meet-k-pandya) +- [Peter Spenler](https://github.com/peterspenler) +- [jomp16](https://github.com/jomp16) +- [Leon de Klerk](https://github.com/leondeklerk) +- [CrispyBaguette](https://github.com/CrispyBaguette) +- [Vankerkom](https://github.com/vankerkom) +- [edvwib](https://github.com/edvwib) +- [Rob Farraher](https://github.com/farraherbg) +- [TelepathicWalrus](https://github.com/TelepathicWalrus) +- [Pier-Luc Ducharme](https://github.com/pl-ducharme) +- [Anantharaju S](https://github.com/Anantharajus) +- [Merlin Sievers](https://github.com/dann-merlin) +- [Fishbigger](https://github.com/fishbigger) +- [sleepycatcoding](https://github.com/sleepycatcoding) +- [TheMelmacian](https://github.com/TheMelmacian) +- [v0idMrK](https://github.com/v0idMrK) +- [tehciolo](https://github.com/tehciolo) +- [scampower3](https://github.com/scampower3) +- [LittleBigOwI](https://github.com/LittleBigOwI/) +- [Nate G](https://github.com/GGProGaming) +- [Grady Hallenbeck](https://github.com/grhallenbeck) +- [DinuD](https://github.com/DinuD) +- [Kevin Tan (Valius)](https://github.com/valius) +- [Rasmus Krämer](https://github.com/rasmuslos) -# Emby Contributors +## Emby Contributors - - [LukePulverenti](https://github.com/LukePulverenti) - - [ebr11](https://github.com/ebr11) - - [lalmanzar](https://github.com/lalmanzar) - - [schneifu](https://github.com/schneifu) - - [Mark2xv](https://github.com/Mark2xv) - - [ScottRapsey](https://github.com/ScottRapsey) - - [skynet600](https://github.com/skynet600) - - [Cheesegeezer](https://githum.com/Cheesegeezer) - - [Radeon](https://github.com/radeonorama) - - [gcw07](https://github.com/gcw07) - - [SivaramAdhiappan](https://github.com/shivaram1190) - - [CWatkinsNash](https://github.com/CWatkinsNash) - - [sfnetwork](https://github.com/sfnetwork) - - [Logos302](https://github.com/Logos302) - - [TheWorkz](https://github.com/TheWorkz) - - [mboehler](https://github.com/mboehler) - - [KaHooli](https://github.com/KaHooli) - - [xzener](https://github.com/xzener) - - [CBers](https://github.com/CBers) - - [Sagaia](https://github.com/Sagaia) - - [JHawk111](https://github.com/JHawk111) - - [David3663](https://github.com/david3663) - - [Smyken](https://github.com/Smyken) - - [doron1](https://github.com/doron1) - - [brainfryd](https://github.com/brainfryd) - - [DGMayor](http://github.com/DGMayor) - - [Jon-theHTPC](https://github.com/Jon-theHTPC) - - [aspdend](https://github.com/aspdend) - - [RedshirtMB](https://github.com/RedshirtMB) - - [thealienamongus](https://github.com/thealienamongus) - - [brocass](https://github.com/brocass) - - [pjrollo2000](https://github.com/pjrollo2000) - - [abobader](https://github.com/abobader) - - [milli260876](https://github.com/milli260876) - - [vileboy](https://github.com/vileboy) - - [starkadius](https://github.com/starkadius) - - [wraslor](https://github.com/wraslor) - - [mrwebsmith](https://github.com/mrwebsmith) - - [rickster53](https://github.com/rickster53) - - [Tharnax](https://github.com/Tharnax) - - [0sm0](https://github.com/0sm0) - - [swhitmore](https://github.com/swhitmore) - - [DigiTM](https://github.com/DigiTM) - - [crisliv / xliv](https://github.com/crisliv) - - [Yogi](https://github.com/yogi12) - - [madFloyd](https://github.com/madFloyd) - - [yardameus](https://github.com/yardameus) - - [rrb008](https://github.com/rrb008) - - [Toonguy](https://github.com/Toonguy) - - [Alwin Hummels](https://github.com/AlwinHummels) - - [trooper11](https://github.com/trooper11) - - [danlotfy](https://github.com/danlotfy) - - [jordy1955](https://github.com/jordy1955) - - [JoshFink](https://github.com/JoshFink) - - [Detector1](https://github.com/Detector1) - - [BlackIce013](https://github.com/blackice013) - - [mporcas](https://github.com/mporcas) - - [tikuf](https://github.com/tikuf/) - - [Tim Hobbs](https://github.com/timhobbs) - - [SvenVandenbrande](https://github.com/SvenVandenbrande) - - [jomp16](https://github.com/jomp16) - - [Leon de Klerk](https://github.com/leondeklerk) - - [CrispyBaguette](https://github.com/CrispyBaguette) +- [LukePulverenti](https://github.com/LukePulverenti) +- [ebr11](https://github.com/ebr11) +- [lalmanzar](https://github.com/lalmanzar) +- [schneifu](https://github.com/schneifu) +- [Mark2xv](https://github.com/Mark2xv) +- [ScottRapsey](https://github.com/ScottRapsey) +- [skynet600](https://github.com/skynet600) +- [Cheesegeezer](https://githum.com/Cheesegeezer) +- [Radeon](https://github.com/radeonorama) +- [gcw07](https://github.com/gcw07) +- [SivaramAdhiappan](https://github.com/shivaram1190) +- [CWatkinsNash](https://github.com/CWatkinsNash) +- [sfnetwork](https://github.com/sfnetwork) +- [Logos302](https://github.com/Logos302) +- [TheWorkz](https://github.com/TheWorkz) +- [mboehler](https://github.com/mboehler) +- [KaHooli](https://github.com/KaHooli) +- [xzener](https://github.com/xzener) +- [CBers](https://github.com/CBers) +- [Sagaia](https://github.com/Sagaia) +- [JHawk111](https://github.com/JHawk111) +- [David3663](https://github.com/david3663) +- [Smyken](https://github.com/Smyken) +- [doron1](https://github.com/doron1) +- [brainfryd](https://github.com/brainfryd) +- [DGMayor](http://github.com/DGMayor) +- [Jon-theHTPC](https://github.com/Jon-theHTPC) +- [aspdend](https://github.com/aspdend) +- [RedshirtMB](https://github.com/RedshirtMB) +- [thealienamongus](https://github.com/thealienamongus) +- [brocass](https://github.com/brocass) +- [pjrollo2000](https://github.com/pjrollo2000) +- [abobader](https://github.com/abobader) +- [milli260876](https://github.com/milli260876) +- [vileboy](https://github.com/vileboy) +- [starkadius](https://github.com/starkadius) +- [wraslor](https://github.com/wraslor) +- [mrwebsmith](https://github.com/mrwebsmith) +- [rickster53](https://github.com/rickster53) +- [Tharnax](https://github.com/Tharnax) +- [0sm0](https://github.com/0sm0) +- [swhitmore](https://github.com/swhitmore) +- [DigiTM](https://github.com/DigiTM) +- [crisliv / xliv](https://github.com/crisliv) +- [Yogi](https://github.com/yogi12) +- [madFloyd](https://github.com/madFloyd) +- [yardameus](https://github.com/yardameus) +- [rrb008](https://github.com/rrb008) +- [Toonguy](https://github.com/Toonguy) +- [Alwin Hummels](https://github.com/AlwinHummels) +- [trooper11](https://github.com/trooper11) +- [danlotfy](https://github.com/danlotfy) +- [jordy1955](https://github.com/jordy1955) +- [JoshFink](https://github.com/JoshFink) +- [Detector1](https://github.com/Detector1) +- [BlackIce013](https://github.com/blackice013) +- [mporcas](https://github.com/mporcas) +- [tikuf](https://github.com/tikuf/) +- [Tim Hobbs](https://github.com/timhobbs) +- [SvenVandenbrande](https://github.com/SvenVandenbrande) + diff --git a/package-lock.json b/package-lock.json index a361bd1af..13b7aa576 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "flv.js": "1.6.2", "headroom.js": "0.12.0", "history": "5.3.0", - "hls.js": "github:nyanmisaka/hls.js#v1.5.0-fix-firefox-av1", + "hls.js": "1.5.0-beta.3", "intersection-observer": "0.12.2", "jassub": "1.7.13", "jellyfin-apiclient": "1.11.0", @@ -10785,8 +10785,9 @@ } }, "node_modules/hls.js": { - "resolved": "git+ssh://git@github.com/nyanmisaka/hls.js.git#2ca771e97a15d8078a3850c4c4cf225f497dcaa7", - "license": "Apache-2.0" + "version": "1.5.0-beta.3", + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.0-beta.3.tgz", + "integrity": "sha512-QEXsMllxmmzADmszSeG7yQRFhX4WLz+/Tm0clG7hyWJvpblSLkQMULpFXSk9UbSwl20iped4VYVQfLcObd4aVw==" }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", @@ -30195,8 +30196,9 @@ } }, "hls.js": { - "version": "git+ssh://git@github.com/nyanmisaka/hls.js.git#2ca771e97a15d8078a3850c4c4cf225f497dcaa7", - "from": "hls.js@github:nyanmisaka/hls.js#v1.5.0-fix-firefox-av1" + "version": "1.5.0-beta.3", + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.0-beta.3.tgz", + "integrity": "sha512-QEXsMllxmmzADmszSeG7yQRFhX4WLz+/Tm0clG7hyWJvpblSLkQMULpFXSk9UbSwl20iped4VYVQfLcObd4aVw==" }, "hoist-non-react-statics": { "version": "3.3.2", diff --git a/package.json b/package.json index 4cdaab6be..1c1d5de9c 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "flv.js": "1.6.2", "headroom.js": "0.12.0", "history": "5.3.0", - "hls.js": "github:nyanmisaka/hls.js#v1.5.0-fix-firefox-av1", + "hls.js": "1.5.0-beta.3", "intersection-observer": "0.12.2", "jassub": "1.7.13", "jellyfin-apiclient": "1.11.0", diff --git a/src/apps/experimental/components/drawers/MainDrawerContent.tsx b/src/apps/experimental/components/drawers/MainDrawerContent.tsx index 351076a02..1ca4501bf 100644 --- a/src/apps/experimental/components/drawers/MainDrawerContent.tsx +++ b/src/apps/experimental/components/drawers/MainDrawerContent.tsx @@ -6,8 +6,8 @@ import Dashboard from '@mui/icons-material/Dashboard'; import Edit from '@mui/icons-material/Edit'; import Favorite from '@mui/icons-material/Favorite'; import Home from '@mui/icons-material/Home'; -import Link from '@mui/icons-material/Link'; import Divider from '@mui/material/Divider'; +import Icon from '@mui/material/Icon'; import List from '@mui/material/List'; import ListItem from '@mui/material/ListItem'; import ListItemButton from '@mui/material/ListItemButton'; @@ -98,8 +98,7 @@ const MainDrawerContent = () => { rel='noopener noreferrer' > - {/* TODO: Support custom icons */} - + {menuLink.icon ?? 'link'} diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index 8c746554d..811bac185 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -261,7 +261,7 @@ function buildCardsHtmlInternal(items, options) { * @param {string} shape - Shape of the desired image. * @returns {CardImageUrl} Object representing the URL of the card's image. */ -function getCardImageUrl(item, apiClient, options, shape) { +export function getCardImageUrl(item, apiClient, options, shape) { item = item.ProgramInfo || item; const width = options.width; @@ -1049,7 +1049,7 @@ function buildCard(index, item, apiClient, options) { cardImageContainerOpen += getDefaultText(item, options); } - const tagName = (layoutManager.tv) && !overlayButtons ? 'button' : 'div'; + const tagName = layoutManager.tv && !overlayButtons ? 'button' : 'div'; const nameWithPrefix = (item.SortName || item.Name || ''); let prefix = nameWithPrefix.substring(0, Math.min(3, nameWithPrefix.length)); diff --git a/src/components/cardbuilder/cardImage.ts b/src/components/cardbuilder/cardImage.ts new file mode 100644 index 000000000..b6d73744d --- /dev/null +++ b/src/components/cardbuilder/cardImage.ts @@ -0,0 +1,74 @@ +import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client/models/base-item-dto'; +import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind'; +import type { ApiClient } from 'jellyfin-apiclient'; + +import type { CardOptions } from 'types/cardOptions'; +import { CardShape } from 'utils/card'; + +import { getCardImageUrl, getDefaultText } from './cardBuilder'; + +/** + * Builds an html string for a basic image only card. + */ +export function buildCardImage( + apiClient: ApiClient, + item: BaseItemDto, + options: CardOptions +): string { + let shape: CardShape = CardShape.Square; + if (item.PrimaryImageAspectRatio) { + if (item.PrimaryImageAspectRatio >= 3) { + shape = CardShape.Banner; + } else if (item.PrimaryImageAspectRatio >= 1.33) { + shape = CardShape.Backdrop; + } else if (item.PrimaryImageAspectRatio > 0.71) { + shape = CardShape.Square; + } else { + shape = CardShape.Portrait; + } + } + + const image = getCardImageUrl( + item, + apiClient, + options, + shape + ); + + if (!image) return ''; + + const { blurhash, imgUrl } = image; + + let cardPadderIcon = ''; + // TV Channel logos are transparent so skip the placeholder to avoid overlapping + if (imgUrl && item.Type !== BaseItemKind.TvChannel) { + cardPadderIcon = getDefaultText(item, { + // Always use an icon + defaultCardImageIcon: 'folder', + ...options + }); + } + + let blurhashAttrib = ''; + if (blurhash && blurhash.length > 0) { + blurhashAttrib = `data-blurhash="${blurhash}"`; + } + + return ( + `
+
+
+
+ ${cardPadderIcon} +
+
+
+
+
` + ); +} diff --git a/src/controllers/dashboard/devices/devices.js b/src/controllers/dashboard/devices/devices.js index da1ecfcff..8525e2f1e 100644 --- a/src/controllers/dashboard/devices/devices.js +++ b/src/controllers/dashboard/devices/devices.js @@ -120,7 +120,7 @@ function load(page, devices) { } deviceHtml += "
"; - deviceHtml += escapeHtml(device.Name); + deviceHtml += escapeHtml(device.CustomName || device.Name); deviceHtml += '
'; deviceHtml += "
"; deviceHtml += escapeHtml(device.AppName + ' ' + device.AppVersion); diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index d8adec3ad..9f214856f 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -7,6 +7,7 @@ import isEqual from 'lodash-es/isEqual'; import { appHost } from 'components/apphost'; import { clearBackdrop, setBackdrops } from 'components/backdrop/backdrop'; import cardBuilder from 'components/cardbuilder/cardBuilder'; +import { buildCardImage } from 'components/cardbuilder/cardImage'; import confirm from 'components/confirm/confirm'; import imageLoader from 'components/images/imageLoader'; import itemContextMenu from 'components/itemContextMenu'; @@ -526,7 +527,7 @@ function reloadFromItem(instance, page, params, item, user) { libraryMenu.setTitle(''); // Start rendering the artwork first - renderImage(page, item); + renderImage(page, item, apiClient); // Save some screen real estate in TV mode if (!layoutManager.tv) { renderLogo(page, item, apiClient); @@ -717,31 +718,20 @@ function renderLinks(page, item) { } } -function renderDetailImage(elem, item, loader) { - const itemArray = []; - itemArray.push(item); - const cardHtml = cardBuilder.getCardsHtml(itemArray, { - shape: 'auto', - showTitle: false, - centerText: true, - overlayText: false, - transition: false, - disableHoverMenu: true, - disableIndicators: true, - overlayPlayButton: layoutManager.desktop, - action: layoutManager.desktop ? 'resume' : 'none', - width: dom.getWindowSize().innerWidth * 0.25 - }); +function renderDetailImage(apiClient, elem, item, loader) { + const html = buildCardImage( + apiClient, + item, + { width: dom.getWindowSize().innerWidth * 0.25 } + ); - elem.innerHTML = cardHtml; + elem.innerHTML = html; loader.lazyChildren(elem); - - // Avoid breaking the design by preventing focus of the poster using the keyboard. - elem.querySelector('a, button').tabIndex = -1; } -function renderImage(page, item) { +function renderImage(page, item, apiClient) { renderDetailImage( + apiClient, page.querySelector('.detailImageContainer'), item, imageLoader @@ -2016,7 +2006,6 @@ export default function (view, params) { bindAll(view, '.btnCancelSeriesTimer', 'click', onCancelSeriesTimerClick); bindAll(view, '.btnCancelTimer', 'click', onCancelTimerClick); bindAll(view, '.btnDownload', 'click', onDownloadClick); - view.querySelector('.detailImageContainer').addEventListener('click', onPlayClick); view.querySelector('.trackSelections').addEventListener('submit', onTrackSelectionsSubmit); view.querySelector('.btnSplitVersions').addEventListener('click', function () { splitVersions(self, view, apiClient, params); diff --git a/src/libraries/scroller.js b/src/libraries/scroller.js index 147243d92..dad79e2f7 100644 --- a/src/libraries/scroller.js +++ b/src/libraries/scroller.js @@ -175,16 +175,7 @@ const scrollerFactory = function (frame, options) { requiresReflow = false; // Reset global variables - const frameStyle = window.getComputedStyle(frame); - if (o.horizontal) { - frameSize = frame.clientWidth; - frameSize -= parseFloat(frameStyle.paddingLeft) + parseFloat(frameStyle.paddingRight); - } else { - frameSize = frame.clientHeight; - frameSize -= parseFloat(frameStyle.paddingTop) + parseFloat(frameStyle.paddingBottom); - } - frameSize = Math.round(frameSize); - + frameSize = slideeElement[o.horizontal ? 'clientWidth' : 'clientHeight']; slideeSize = o.scrollWidth || Math.max(slideeElement[o.horizontal ? 'offsetWidth' : 'offsetHeight'], slideeElement[o.horizontal ? 'scrollWidth' : 'scrollHeight']); // Set position limits & relatives diff --git a/src/scripts/browserDeviceProfile.js b/src/scripts/browserDeviceProfile.js index 17f16ffda..1f40349af 100644 --- a/src/scripts/browserDeviceProfile.js +++ b/src/scripts/browserDeviceProfile.js @@ -571,7 +571,7 @@ export default function (options) { } if (canPlayHevc(videoTestElement, options) - && (browser.edgeChromium || browser.safari || browser.tizen || browser.web0s || (browser.chrome && (!browser.android || browser.chrome.versionMajor >= 105)))) { + && (browser.edgeChromium || browser.safari || browser.tizen || browser.web0s || (browser.chrome && (!browser.android || browser.versionMajor >= 105)))) { // Chromium used to support HEVC on Android but not via MSE hlsInFmp4VideoCodecs.push('hevc'); } diff --git a/src/strings/ca.json b/src/strings/ca.json index 23482272a..cc86f0594 100644 --- a/src/strings/ca.json +++ b/src/strings/ca.json @@ -753,7 +753,7 @@ "ButtonPlayer": "Reproductor", "ButtonCast": "Transmetre a dispositiu", "ApiKeysCaption": "Llista de les claus API activades actualment", - "AllowTonemappingHelp": "El mapeig de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment només funciona amb vídeos HDR10, HLG o DoVi. Això requereix el temps d'execució OpenCL o CUDA corresponent.", + "AllowTonemappingHelp": "El mapeig de tons pot transformar el rang dinàmic d'un vídeo d'HDR a SDR mantenint els detalls i els colors de la imatge, que són informació molt important per representar l'escena original. Actualment només funciona amb vídeos 10 bit HDR10, HLG o DoVi. Això requereix el temps d'execució OpenCL o CUDA corresponent.", "ErrorPleaseSelectLineup": "Seleccioneu una alineació i torneu-ho a provar. Si no hi ha cap formació disponible, comproveu que el vostre nom d’usuari, contrasenya i codi postal siguin correctes.", "ErrorAddingListingsToSchedulesDirect": "S'ha produït un error en afegir la programació al vostre compte de Schedules Direct. Schedules Direct només permet un nombre limitat de programacions per compte. És possible que hagueu d’iniciar sessió al lloc web de Schedules Direct i eliminar altres llistats del vostre compte abans de continuar.", "EnableThemeVideosHelp": "Reproduir vídeos temàtics en segon pla mentre navegues per la biblioteca.", @@ -842,7 +842,7 @@ "LabelSelectAudioChannels": "Canals", "LabelAllowedAudioChannels": "Màxim permès Canals d'àudio", "AllowHevcEncoding": "Permetre la codificació en format HEVC", - "PreferFmp4HlsContainerHelp": "Prefereixen utilitzar FMP4 com el contenidor predeterminat per HLS, de manera que és possible corrent directe contingut HEVC en els dispositius compatibles.", + "PreferFmp4HlsContainerHelp": "Prefereixen utilitzar FMP4 com el contenidor predeterminat per HLS, de manera que és possible corrent directe contingut HEVC i AV1 en els dispositius compatibles.", "PreferFmp4HlsContainer": "Prefereixo FMP4-HLS Mitjans de contenidors", "LabelSyncPlayInfo": "Informació SyncPlay", "LabelOriginalMediaInfo": "Mitjans Informació original", @@ -858,7 +858,7 @@ "AspectRatioCover": "Coberta", "EnableFallbackFontHelp": "Habilitar fonts alternes d'encàrrec. Això es pot evitar el problema de renderitzat de subtítols incorrectes.", "EnableFallbackFont": "Habilitar fonts de replegament", - "LabelFallbackFontPathHelp": "Especifiqueu una ruta que contingui fonts per renderitzar subtítuols ASS/SSA. La mida màxima permesa total de font és 20 MB. Es recomanen formats de font lleugers i aptes per al web com ara el format WOFF2.", + "LabelFallbackFontPathHelp": "Aquestes fonts sont utilitzades per alguns clients per generar subtítols. Si us plau, consulteu la documentació per a més informació.", "LabelFallbackFontPath": "Replegament ruta de la carpeta de la font", "HeaderSelectFallbackFontPathHelp": "Examineu o introduïu la ruta de la carpeta de fonts que s'utilitzaran per renderitzar els subtítols ASS/SSA.", "HeaderSelectFallbackFontPath": "Seleccioneu la ruta de la carpeta de fonts", @@ -1008,11 +1008,11 @@ "MessageReenableUser": "Vegeu més avall per tornar a activar", "MessagePluginInstallError": "S'ha produït un error durant la instal·lació del complement.", "MessagePluginInstalled": "El complement s'ha instal·lat correctament. És necessari reiniciar el servidor perquè els canvis tinguin efecte.", - "MessagePluginInstallDisclaimer": "Els complements desenvolupats per membres de la comunitat són una gran manera de millorar la seva experiència amb les característiques addicionals. Abans de la instal·lació, sigui conscient dels efectes que poden tenir en el seu servidor, com ara exploracions de biblioteques més llargues, processos de fons addicionals o una disminució en l'estabilitat del sistema.", + "MessagePluginInstallDisclaimer": "ADVERTÈNCIA: L'instal·lació d'un complement de tercers comporta riscos. Pot contenir còdi inestable o maliciós, i pot canviar en qualsevol moment. Només instal·li complements d'autors en els que confiï, i sigui conscient dels efectes que poden tenir, incloent consultes a serveis externs, exploracions de biblioteques més llargues, processos de fons addicionals.", "MessagePluginConfigurationRequiresLocalAccess": "Connecteu-vos amb el servidor local directament per configurar aquest complement.", "MessagePleaseWait": "Si us plau, espereu. Això pot trigar un minut.", "MessagePlayAccessRestricted": "La reproducció d'aquest contingut està restringit actualment. Poseu-vos en contacte amb l'administrador de servidor per obtenir més informació.", - "MessagePasswordResetForUsers": "S'han restablert contrasenyes dels següents usuaris. Ara poden accedir amb codis Easy PIN que van utilitzar per realitzar el restabliment.", + "MessagePasswordResetForUsers": "S'han restablert contrasenyes dels següents usuaris. Ara poden accedir amb codis PIN que van utilitzar per realitzar el restabliment.", "MessageNoServersAvailable": "No hi ha servidors han estat trobats usant el descobriment automàtic de servidor.", "MessageNoRepositories": "No hi ha repositoris.", "MessageNoGenresAvailable": "Permetre alguns proveïdors de metadades per tirar dels gèneres a través d'Internet.", @@ -1392,7 +1392,7 @@ "QuickConnectInvalidCode": "Codi de Quick Connect no vàlid", "QuickConnectDescription": "Per iniciar sessió amb Quick Connect, seleccioneu el botó 'Quick Connect' al dispositiu des del que us esteu connectant i introduïu el codi que apareix a continuació.", "QuickConnectDeactivated": "El Quick Connect s'ha desactivat abans que la sol·licitud d'inici de sessió pogués ser aprovada", - "QuickConnectAuthorizeSuccess": "Sol·licitud autoritzada", + "QuickConnectAuthorizeSuccess": "Heu autenticat el vostre dispositiu correctament!", "QuickConnectAuthorizeFail": "Codi de Quick Connect no reconegut", "QuickConnectAuthorizeCode": "Introduïu el codi {0} per iniciar sessió", "QuickConnectActivationSuccessful": "Activat amb èxit", @@ -1722,7 +1722,7 @@ "EnableAudioNormalization": "Normalització d'àudio", "LabelEnableLUFSScan": "Activar escaneig LUFS", "Select": "Seleccionar", - "LabelEnableLUFSScanHelp": "Activar escaneig LUFS per a música (trigarà més i consumirà més recursos).", + "LabelEnableLUFSScanHelp": "Els clients poden normalitzar la reproducció d'àudio per obtenir un nivell de volum igual entre totes les pistes d'àudio. Això farà que els escanejos de la biblioteca siguin més duraders i requereixin de més recursos.", "TonemappingModeHelp": "Selecciona el mode de mapeig de to. Si experimentes zones sobreexposades, prova a canviar al mode RGB.", "EnableAudioNormalizationHelp": "La normalització de l'àudio afegirà un guany constant per mantenir la mitjana al nivell desitjat (-18dB).", "GetThePlugin": "Obtenir el Plugin", @@ -1736,5 +1736,46 @@ "AllowSegmentDeletionHelp": "Suprimeix els segments antics després d'haver estat enviats al client. Això impedeix haver d'emmagatzemar tot el fitxer transcodificat al disc. Només funcionarà amb l'activació de transcodes de l'acceleració. Desactiveu-ho si teniu problemes de reproducció.", "LabelThrottleDelaySeconds": "Acceleració després de", "LabelThrottleDelaySecondsHelp": "Temps en segons després del qual el transcodificador s'accelerarà. Ha de ser prou gran perquè el client mantingui una memòria intermèdia saludable. Només funciona si s'habilita l'acceleració.", - "LabelSegmentKeepSeconds": "Temps per mantenir els segments" + "LabelSegmentKeepSeconds": "Temps per mantenir els segments", + "LabelIsHearingImpaired": "Per a persones amb discapacitat auditiva (SDH)", + "LogLevel.Warning": "Advertència", + "GoHome": "Anar a l'inici", + "HearingImpairedShort": "HI/SDH", + "LabelBackdropScreensaverInterval": "Interval del Salvapantalles de Fons", + "LabelBackdropScreensaverIntervalHelp": "El temps en segons entre els diferents fons quan s'utilitza el salvapantalles de fons.", + "LabelSyncPlayNoGroups": "No hi ha grups disponibles", + "GridView": "Vista de Graella", + "BackdropScreensaver": "Salvapantalles de fons", + "ListView": "Vista de Llista", + "LogLevel.Critical": "Crític", + "LogLevel.Information": "Informació", + "LogLevel.Debug": "Depuració", + "LogoScreensaver": "Salvapantalles de Logo", + "LogLevel.None": "Cap", + "HeaderEpisodesStatus": "Estat dels episodis", + "LabelDate": "Data", + "LabelDeveloper": "Desenvolupador", + "LabelLevel": "Nivell", + "LabelMediaDetails": "Detalls dels mitjans", + "LogLevel.Trace": "Rastreig", + "SearchResultsEmpty": "Perdona! No s'han trobat resultats per \"{0}\"", + "Studio": "Estudi", + "UnknownError": "S'ha produït un error desconegut.", + "PleaseConfirmRepositoryInstallation": "Si us plau, prémi OK per confirmar que heu llegit l'anterior i voleu continuar amb l'instal·lació del repositori de complements.", + "Unknown": "Desconegut", + "SelectAudioNormalizationHelp": "Guany de pista - ajusta el volum de cada pista perquè la reproducció soni al mateix volum. Guany d'àlbum - ajusta el volum de totes les pistes d'un àlbum, mantenint el rang dinàmic de l'àlbum.", + "HeaderConfirmRepositoryInstallation": "Confirmi l'instal·lació del repositori de complements", + "LabelAlbumGain": "Guany de l'Àlbum", + "LabelSelectAudioNormalization": "Normalització d'àudio", + "LabelSystem": "Sistema", + "LogLevel.Error": "Error", + "MessageRepositoryInstallDisclaimer": "ADVERTÈNCIA: L'instal·lació d'un complement de tercers comporta riscos. Pot contenir còdi inestable o maliciós, i pot canviar en qualsevol moment. Només instal·li complements d'autors en els que confiï.", + "PasswordRequiredForAdmin": "Es requereix una contrasenya pels comptes d'administrador.", + "LabelTrackGain": "Guany de pista", + "AllowAv1Encoding": "Permetre l'encodificació en format AV1", + "LabelSegmentKeepSecondsHelp": "Temps en segons durant els quals s'han de conservar els segments abans que es sobreescriguin. Ha de ser major que \"Accelerar després\". Només funciona si l'esborrat de segments està habilitat.", + "AiTranslated": "Traduït per IA", + "MachineTranslated": "Traduït per Màquina", + "ForeignPartsOnly": "Només parts Forçades/Forànies", + "HeaderGuestCast": "Estrelles Convidades" } diff --git a/src/strings/cs.json b/src/strings/cs.json index 56b19d5d8..a863e518f 100644 --- a/src/strings/cs.json +++ b/src/strings/cs.json @@ -1442,7 +1442,7 @@ "LabelSelectAudioChannels": "Kanály", "LabelAllowedAudioChannels": "Maximální povolený počet audiokanálů", "AllowHevcEncoding": "Povolit kódování do formátu HEVC", - "PreferFmp4HlsContainerHelp": "Preferovat fMP4 jako výchozí kontejner pro HLS, což umožňuje na podporovaných zařízeních přímo streamovat obsah ve formátu HEVC.", + "PreferFmp4HlsContainerHelp": "Preferovat fMP4 jako výchozí kontejner pro HLS, což umožňuje na podporovaných zařízeních přímo streamovat obsah ve formátu HEVC a AV1.", "PreferFmp4HlsContainer": "Preferovat kontejner fMP4-HLS", "LabelSyncPlayInfo": "Informace o SyncPlay", "LabelOriginalMediaInfo": "Informace o původním médiu", diff --git a/src/strings/de.json b/src/strings/de.json index 9cd57f819..b90c3edc2 100644 --- a/src/strings/de.json +++ b/src/strings/de.json @@ -1469,7 +1469,7 @@ "LabelEnableSSDPTracing": "SSDP-Verfolgung aktivieren", "HeaderDebugging": "Fehlersuche und -verfolgung", "AllowHevcEncoding": "Kodierung im HEVC-Format zulassen", - "PreferFmp4HlsContainerHelp": "fMP4 wird als Standardcontainer für HLS bevorzugt, damit HEVC-Inhalte direkt auf unterstützten Geräten abgespielt werden können.", + "PreferFmp4HlsContainerHelp": "Bevorzugen Sie die Verwendung von fMP4 als Standardcontainer für HLS, um das direkte Streamen von HEVC- und AV1-Inhalten auf unterstützten Geräten zu ermöglichen.", "PreferFmp4HlsContainer": "Bevorzuge fMP4-HLS als Mediencontainer", "LabelDirectStreamingInfo": "Direkte Streaming-Informationen", "LabelTranscodingInfo": "Transkodierungsinfo", diff --git a/src/strings/el.json b/src/strings/el.json index 41212b2d1..9de3f1695 100644 --- a/src/strings/el.json +++ b/src/strings/el.json @@ -1746,5 +1746,19 @@ "HeaderGuestCast": "Καλεσμένοι Αστέρες", "ListView": "Προβολή Λίστας", "SubtitleWhite": "Λευκό", - "UserMenu": "Κατάλογος Χειριστή" + "UserMenu": "Κατάλογος Χειριστή", + "GoHome": "Μετάβαση στην Αρχική", + "LogLevel.Debug": "Εντοπισμός σφαλμάτων", + "SubtitleLightGray": "Ανοιχτό γκρι", + "ResolutionMatchSource": "Πηγή αντιστοίχισης", + "SaveRecordingNFO": "Αποθηκεύστε τα μεταδεδομένα εγγραφής EPG στο NFO", + "UnknownError": "Προέκυψε ένα άγνωστο σφάλμα.", + "LabelIsHearingImpaired": "Για άτομα με προβλήματα ακοής (SDH)", + "AllowAv1Encoding": "Να επιτρέπεται η κωδικοποίηση σε μορφή AV1", + "HearingImpairedShort": "ΗI/SDH", + "HeaderConfirmRepositoryInstallation": "Επιβεβαιώστε την εγκατάσταση του αποθετηρίου πρόσθετων", + "MessageRepositoryInstallDisclaimer": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η εγκατάσταση ενός αποθετηρίου πρόσθετου τρίτου μέρους εγκυμονεί κινδύνους. Μπορεί να περιέχει ασταθή ή κακόβουλο κώδικα και μπορεί να αλλάξει ανά πάσα στιγμή. Εγκαταστήστε αποθετήρια μόνο από συντάκτες που εμπιστεύεστε.", + "PreferEmbeddedExtrasTitlesOverFileNames": "Προτιμήστε τους ενσωματωμένους τίτλους από τα ονόματα αρχείων για πρόσθετα", + "PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Τα πρόσθετα έχουν συχνά το ίδιο ενσωματωμένο όνομα με τον γονέα, ελέγξτε αυτό για να χρησιμοποιήσετε ενσωματωμένους τίτλους για αυτά ούτως ή άλλως.", + "LabelSegmentKeepSecondsHelp": "" } diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json index bcd90dd66..28849da5f 100644 --- a/src/strings/en-gb.json +++ b/src/strings/en-gb.json @@ -1477,7 +1477,7 @@ "LabelSelectAudioChannels": "Channels", "LabelAllowedAudioChannels": "Maximum Allowed Audio Channels", "AllowHevcEncoding": "Allow encoding in HEVC format", - "PreferFmp4HlsContainerHelp": "Prefer to use fMP4 as the default container for HLS, making it possible to direct stream HEVC content on supported devices.", + "PreferFmp4HlsContainerHelp": "Prefer to use fMP4 as the default container for HLS, making it possible to direct stream HEVC and AV1 content on supported devices.", "PreferFmp4HlsContainer": "Prefer fMP4-HLS Media Container", "LabelSyncPlayInfo": "Sync Play Info", "LabelOriginalMediaInfo": "Original Media Info", diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 464521d27..17ca1ca39 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1644,7 +1644,7 @@ "LabelOriginalMediaInfo": "Original Media Info", "LabelSyncPlayInfo": "SyncPlay Info", "PreferFmp4HlsContainer": "Prefer fMP4-HLS Media Container", - "PreferFmp4HlsContainerHelp": "Prefer to use fMP4 as the default container for HLS, making it possible to direct stream HEVC content on supported devices.", + "PreferFmp4HlsContainerHelp": "Prefer to use fMP4 as the default container for HLS, making it possible to direct stream HEVC and AV1 content on supported devices.", "AllowHevcEncoding": "Allow encoding in HEVC format", "LabelAllowedAudioChannels": "Maximum Allowed Audio Channels", "LabelSelectAudioChannels": "Channels", diff --git a/src/strings/es.json b/src/strings/es.json index d1f5603ae..17d9793e0 100644 --- a/src/strings/es.json +++ b/src/strings/es.json @@ -1437,7 +1437,7 @@ "LabelSelectAudioChannels": "Canales", "LabelAllowedAudioChannels": "Canales de audio máximos permitidos", "AllowHevcEncoding": "Permitir la codificación en formato HEVC", - "PreferFmp4HlsContainerHelp": "Preferir usar fMP4 como contenedor predeterminado para HLS, haciendo posible transmitir contenido HEVC directo en dispositivos compatibles.", + "PreferFmp4HlsContainerHelp": "Preferir usar fMP4 como contenedor predeterminado para HLS, haciendo posible transmitir contenido HEVC y AV1 directo en dispositivos compatibles.", "PreferFmp4HlsContainer": "Preferir contenedor de medios fMP4-HLS", "LabelH265Crf": "CRF de la codificación H.265", "LabelSelectStereo": "Estéreo", diff --git a/src/strings/fi.json b/src/strings/fi.json index 1072adc81..f4b64ff05 100644 --- a/src/strings/fi.json +++ b/src/strings/fi.json @@ -927,7 +927,7 @@ "HeaderCodecProfile": "Codec-profiili", "HeaderContainerProfile": "Säiliöprofiili", "PleaseSelectTwoItems": "Valitse ainakin kaksi kohdetta.", - "PleaseRestartServerName": "Käynnistä uudelleen Jellyfin palvelimella \"{0}\".", + "PleaseRestartServerName": "Käynnistä Jellyfin uudelleen palvelimella \"{0}\".", "PleaseEnterNameOrId": "Anna nimi tai ulkoinen ID.", "PreferEmbeddedTitlesOverFileNames": "Suosi tiedostonimien sijaan tiedostoon upotettuja nimiä", "Premieres": "Ensiesitys", @@ -1037,7 +1037,7 @@ "ErrorAddingListingsToSchedulesDirect": "Lisättäessä kokoonpanoa Schedules Direct -tilillesi tapahtui virhe. Schedules Direct sallii rajallisesti kokoonpanoja tiliä kohden. Sinun on ehkä kirjauduttava Schedules Direct -tilillesi ja poistettava muita kokoonpanoja, ennen kuin jatkat.", "EnableDecodingColorDepth10Vp9": "Käytä 10-bittistä laitteistodekoodausta (VP9)", "EnableDecodingColorDepth10Hevc": "Käytä 10-bittistä laitteistodekoodausta (HEVC)", - "HeaderCastAndCrew": "Näyttelijät ja tuotantotiimi", + "HeaderCastAndCrew": "Näyttelijät ja tuotanto", "HeaderCancelSeries": "Peruuta sarja", "HeaderCancelRecording": "Peruuta tallennus", "HeaderBranding": "Brändäys", @@ -1482,7 +1482,7 @@ "ButtonClose": "Sulje", "EnableRewatchingNextUpHelp": "Näytä 'Seuraavaksi'-osioissa myös aiemmin katsotut jaksot.", "LabelParentNumber": "Vanhemman numero", - "PreferFmp4HlsContainerHelp": "Suosi HLS-protokollan oletussäiliönä fMP4-muotoa, joka mahdollistaa HEVC-sisällön suoratoiston tuetuilla laitteilla.", + "PreferFmp4HlsContainerHelp": "Suosi HLS-protokollan oletussäiliönä fMP4-muotoa, joka mahdollistaa HEVC- ja AV1-sisällön suoratoiston tuetuilla laitteilla.", "XmlTvSportsCategoriesHelp": "Näiden kategorioiden ohjelmat näytetään urheiluna. Erota useita merkillä '|'.", "XmlTvNewsCategoriesHelp": "Näiden kategorioiden ohjelmat näytetään uutisina. Erota useita merkillä '|'.", "XmlTvMovieCategoriesHelp": "Näiden kategorioiden ohjelmat näytetään elokuvina. Erota useita merkillä '|'.", diff --git a/src/strings/fr.json b/src/strings/fr.json index aa762370e..dc39ead8c 100644 --- a/src/strings/fr.json +++ b/src/strings/fr.json @@ -1040,7 +1040,7 @@ "ShowTitle": "Montrer le titre", "ShowYear": "Voir l'année", "Shows": "Séries", - "Shuffle": "Lire aléatoirement", + "Shuffle": "Lecture aléatoire", "SimultaneousConnectionLimitHelp": "Le nombre maximal de flux simultanés autorisés. Une valeur nulle n'impose aucune limite.", "SkipEpisodesAlreadyInMyLibrary": "Ne pas enregistrer les épisodes déjà présents dans ma médiathèque", "SkipEpisodesAlreadyInMyLibraryHelp": "Les épisodes seront comparés en utilisant le numéro de saison et le numéro d'épisode, s'ils sont disponibles.", @@ -1068,7 +1068,7 @@ "TabContainers": "Conteneurs", "TabDashboard": "Tableau de bord", "TabDirectPlay": "Lecture directe", - "TabLatest": "Ajouts récents", + "TabLatest": "Récemment ajouté", "TabLogs": "Journaux", "TabMusic": "Musiques", "TabMyPlugins": "Mes extensions", @@ -1088,7 +1088,7 @@ "ThemeVideos": "Génériques", "TheseSettingsAffectSubtitlesOnThisDevice": "Ces paramètres affectent les sous-titres de cet appareil", "ThisWizardWillGuideYou": "Cet assistant vous guidera dans le processus de configuration. Pour commencer, merci de sélectionner votre langue préférée.", - "Thumb": "Vignette", + "Thumb": "Miniature", "Thursday": "Jeudi", "TitleHardwareAcceleration": "Accélération matérielle", "TitleHostingSettings": "Paramètres d'hébergement", @@ -1151,7 +1151,7 @@ "Auto": "Auto", "ButtonPause": "Pause", "Collections": "Collections", - "Extras": "Extras", + "Extras": "Bonus", "Genre": "Genre", "Genres": "Genres", "Guide": "Guide", @@ -1485,7 +1485,7 @@ "RemuxHelp1": "Le média est dans un conteneur incompatible (MKV, AVI, WMV, etc.), mais les deux flux vidéo et audio sont compatibles avec l'appareil. Le média va être reconditionné sans perte, à la volée, avant d'être envoyé vers l'appareil.", "LabelHDHomerunPortRangeHelp": "Restreint la plage de ports UDP pour HDHomeRun à cette valeur. (La plage par défaut est 1024 - 65535).", "LabelHDHomerunPortRange": "Plage de ports HDHomeRun", - "PreferFmp4HlsContainerHelp": "Préférer l'utilisation de fMP4 comme conteneur pour HLS rendant ainsi possible la lecture directe des flux HEVC sur les appareils compatibles.", + "PreferFmp4HlsContainerHelp": "Préférer l'utilisation de fMP4 comme conteneur pour HLS rendant ainsi possible la lecture directe des flux HEVC et AV1 sur les appareils compatibles.", "LabelPublishedServerUriHelp": "Remplacer l'URI utilisée par Jellyfin selon l'interface ou l'adresse IP du client.", "LabelPublishedServerUri": "URIs du serveur publiées", "LabelSyncPlayHaltPlayback": "Arrêter la lecture locale", diff --git a/src/strings/hu.json b/src/strings/hu.json index 21daf894e..f79fab178 100644 --- a/src/strings/hu.json +++ b/src/strings/hu.json @@ -1427,7 +1427,7 @@ "LabelSelectAudioChannels": "Csatornák", "LabelAllowedAudioChannels": "A maximálisan megengedett audiocsatornák", "AllowHevcEncoding": "HEVC formátumú kódolás engedélyezése", - "PreferFmp4HlsContainerHelp": "Inkább az fMP4-et használja alapértelmezett tárolóként a HLS számára, lehetővé téve a HEVC-tartalom közvetlen irányítását a támogatott eszközökön.", + "PreferFmp4HlsContainerHelp": "Inkább az fMP4-et használja alapértelmezett tárolóként a HLS számára, lehetővé téve a HEVC és AV1-tartalom közvetlen irányítását a támogatott eszközökön.", "PreferFmp4HlsContainer": "Inkább az fMP4-HLS adattárolót részesítsd előnyben", "LabelSyncPlayInfo": "SyncPlay információ", "LabelOriginalMediaInfo": "Eredeti média információ", diff --git a/src/strings/hy.json b/src/strings/hy.json index 31dda5ebc..e9dd14839 100644 --- a/src/strings/hy.json +++ b/src/strings/hy.json @@ -22,5 +22,58 @@ "HeaderContinueWatching": "Շարունակել դիտումը", "Yes": "Այո", "Writers": "Գրողներ", - "Yesterday": "Երեկ" + "Yesterday": "Երեկ", + "Collections": "Հավաքածուներ", + "AddedOnValue": "Ավելացվեց {0}", + "AddToCollection": "Ավելացնել հավաքածույին", + "ButtonArrowLeft": "Ձախ", + "ButtonArrowRight": "Աջ", + "ButtonBack": "Հետ", + "ButtonOpen": "Բացել", + "ButtonParentalControl": "Ծնողական հսկողություն", + "Continuing": "Շարունակում", + "AddToFavorites": "Ավելացնել սիրվածներին", + "AnyLanguage": "Ցանկացած լեզու", + "ButtonRename": "Վերանվանել", + "ButtonResume": "Շարունակել", + "ButtonSend": "Ուղարկել", + "ButtonShutdown": "Անջատել", + "ButtonSpace": "Բացատ", + "ButtonStart": "Սկսել", + "Anytime": "Ցանկացած ժամանակ", + "BirthPlaceValue": "Ծննդատեղ։ {0}", + "BirthLocation": "Ծննդավայր", + "ButtonActivate": "Ակտիվացնել", + "ButtonAddImage": "Նկար ավելացնել", + "ButtonClose": "Փակել", + "ConfirmDeleteImage": "", + "ContinueWatching": "Շարունակել դիտել", + "AllComplexFormats": "Բոլոր բարդ ֆորմատները (ASS, SSA, VobSub, PGS, SUB, IDX, ...)", + "AllEpisodes": "Բոլոր դրվագները", + "AccessRestrictedTryAgainLater": "Այս պահին մուտքը արգելված է։ Խնդրում ենք կրկին փորձել ավելի ուշ։", + "AirDate": "Հեռարձակման օրը", + "Aired": "Հեռարձակվել է", + "LabelIsHearingImpaired": "Լսողության խնդիր ունեցողների համար (SDH)", + "Clip": "Հոլովակ", + "LabelServerHostHelp": "192.168.1.100:8096 կամ https://myserver.com", + "ValueSeconds": "{0} վարկյան", + "ValueSongCount": "{0} երգեր", + "Interview": "Հարցազրույց", + "Select": "Ընտրել", + "MessageSyncPlayUserLeft": "{0}ն լքել է խումբը", + "Option3D": "3D", + "DownloadsValue": "{0} ներմերնում", + "ListPaging": "{0}-{1} {2}ից", + "MessageSyncPlayUserJoined": "{0}ն միացել է խմբին", + "SyncPlayGroupDefaultTitle": "{0}ի խումբը", + "ValueEpisodeCount": "{0} դրվագ", + "ValueMovieCount": "{0} ֆիլմեր", + "ValueOneEpisode": "1 դրվագ", + "ValueOneMovie": "1 ֆիլմ", + "ValueOneSeries": "1 հեռուստասերիալ", + "ValueOneSong": "1 երգ", + "ContainerNotSupported": "Տվյալ վիդեոյի կրիչը չի սպասարկվում", + "SelectAll": "Ընտրել բոլորը", + "HeaderSecondsValue": "{0} Վարկյան", + "Label3DFormat": "3D ձևաչափ" } diff --git a/src/strings/it.json b/src/strings/it.json index 756d5fd31..2929475e1 100644 --- a/src/strings/it.json +++ b/src/strings/it.json @@ -226,7 +226,7 @@ "HeaderApiKeysHelp": "Le Applicazioni esterne devono avere una chiave API per comunicare con il server. Le chiavi sono emesse accedendo con un qualsiasi account, o fornendo manualmente una chiave all'applicazione.", "HeaderAudioBooks": "Audiolibri", "HeaderAudioSettings": "Impostazioni audio", - "HeaderBlockItemsWithNoRating": "Blocca elementi sconosciuti o senza informazioni", + "HeaderBlockItemsWithNoRating": "Blocca elementi con informazioni di valutazione assenti o non riconosciute", "HeaderBranding": "Personalizza", "HeaderCancelRecording": "Annulla la Registrazione", "HeaderCancelSeries": "Annulla Serie TV", diff --git a/src/strings/lv.json b/src/strings/lv.json index a4afe8e84..3f8e4c1bb 100644 --- a/src/strings/lv.json +++ b/src/strings/lv.json @@ -13,7 +13,7 @@ "Metadata": "Metadati", "MessageYouHaveVersionInstalled": "Jums pašlaik ir uzstādīta versija {0}.", "MessageUnableToConnectToServer": "Mēs pašlaik nevaram sazināties ar izvēlēto serveri. Pārliecinies ka tas strādā, un mēģini vēlreiz.", - "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Sekojošie multivides ceļi tiks noņemti no tavas bibliotēkas", + "MessageTheFollowingLocationWillBeRemovedFromLibrary": "Sekojošie multivides ceļi tiks noņemti no jūsu bibliotēkas", "MessagePleaseWait": "Lūdzu uzgaidi. Tas var aizņemt pāris minūtes.", "MessageNothingHere": "Šeit nekā nav.", "MessageNoPluginsInstalled": "Jums nav uzstādīti paplašinājumi.", @@ -26,11 +26,11 @@ "MessageDownloadQueued": "Lejupielāde ierindota.", "MessageCreateAccountAt": "Izveido kontu {0}", "MessageContactAdminToResetPassword": "Lai atiestatītu paroli, sazinieties ar sistēmas administratoru.", - "MessageConfirmShutdown": "Vai tu tiešām vēlies izslēgt serveri?", + "MessageConfirmShutdown": "Vai tiešām vēlaties izslēgt serveri?", "MessageConfirmRestart": "Vai tiešām vēlaties restartēt Jellyfin?", - "MessageConfirmRemoveMediaLocation": "Vai tu tiešām vēlies noņemt šo ceļu?", + "MessageConfirmRemoveMediaLocation": "Vai tiešām vēlaties noņemt šo ceļu?", "MessageConfirmRecordingCancellation": "Atcelt ierakstu?", - "MessageConfirmAppExit": "Vai tu vēlies iziet?", + "MessageConfirmAppExit": "Vai vēlaties iziet?", "MessageAlreadyInstalled": "Šī versija jau ir uzstādīta.", "MediaInfoSize": "Lielums", "MediaInfoResolution": "Izšķirtspēja", @@ -40,7 +40,7 @@ "LabelWeb": "Tīkls", "LabelVideoResolution": "Video izšķirtspēja", "LabelVideoCodec": "Video kodeks", - "LabelVideoBitrate": "Video bitu pārraides ātrums", + "LabelVideoBitrate": "Video bitu ātrums", "DashboardArchitecture": "Arhitektūra: {0}", "DashboardOperatingSystem": "Operētājsistēma: {0}", "DashboardServerName": "Serveris: {0}", @@ -84,7 +84,7 @@ "LabelSortTitle": "Kārtošanas nosaukums", "LabelSortOrder": "Kārtošanas secība", "LabelSortBy": "Kārtot pēc", - "LabelSize": "Ilgums", + "LabelSize": "Izmērs", "LabelServerName": "Servera nosaukums", "LabelSeriesRecordingPath": "Seriāla ieraksta ceļš", "LabelSerialNumber": "Sērijas numurs", @@ -244,7 +244,7 @@ "HeaderRecordingOptions": "Ierakstu opcijas", "HeaderRecentlyPlayed": "Nesen atskaņots", "HeaderProfileInformation": "Profila informācija", - "HeaderPleaseSignIn": "Lūdzu ieej", + "HeaderPleaseSignIn": "Lūdzu, ieejiet", "HeaderPlaybackError": "Atskaņošanas kļūda", "HeaderPlayback": "Multivides atskaņošana", "HeaderPlayAll": "Atskaņot visu", @@ -543,7 +543,7 @@ "Normal": "Normāls", "None": "Nav", "NoSubtitleSearchResultsFound": "Nav atrasti rezultāti.", - "No": "Nr", + "No": "Nē", "Next": "Nākamais", "News": "Ziņas", "NewEpisodesOnly": "Tikai jaunas sērijas", @@ -592,7 +592,7 @@ "Unplayed": "Neatskaņots", "Unmute": "Ieslēgt skaņu", "HeaderUninstallPlugin": "Noņemt paplašinājumu", - "UninstallPluginConfirmation": "Vai tu tiešām vēlies noņemt {0}?", + "UninstallPluginConfirmation": "Vai tiešām vēlaties atinstalēt {0}?", "Tuesday": "Otrdiena", "Transcoding": "Transkodēšana", "Trailers": "Treileri", @@ -675,7 +675,7 @@ "OptionDaily": "Ikdienas", "OptionBluray": "Blu-ray", "MessageNoPluginConfiguration": "Šim paplašinājumam nav konfigurējamu iestatījumu.", - "NoCreatedLibraries": "Izskatās ka tu vēl neesi izveidojis nevienu bibliotēku. {0}Vai tu vēlies izveidot vienu tagad?{1}", + "NoCreatedLibraries": "Izskatās, ka vēl neesat izveidojis nevienu bibliotēku. {0}Vai vēlaties izveidot tagad?{1}", "NextUp": "Nākamais", "Mute": "Apklusināt", "MessageNoServersAvailable": "Automātiskā serveru meklēšana neatrada nevienu serveri.", @@ -736,7 +736,7 @@ "LabelAudioSampleRate": "Audio izlases ātrums", "LabelAudioCodec": "Audio kodeks", "LabelAudioChannels": "Audio kanāli", - "LabelAudioBitrate": "Audio bitu-ātrums", + "LabelAudioBitrate": "Audio bitu ātrums", "LabelAllowHWTranscoding": "Atļaut aparatūras transkodēšanu", "LabelAlbumArtMaxWidth": "Albumu vāku maksimālais platums", "LabelAlbumArtMaxHeight": "Albumu vāku maksimālais augstums", @@ -803,11 +803,11 @@ "DirectStreamHelp1": "Video avots ir saderīgs ar šo ierīci, bet tam ir nesaderīgs audio formāts (DTS, Dolby TrueHD utt.) vai audio kanālu skaits. Video tiks pārpakots bez zudumiem pirms tas tiks pārsūtīts uz ierīci. Tikai audio tiks transkodēts.", "Descending": "Dilstošs", "Depressed": "Atspiests", - "DeleteUserConfirmation": "Vai tu tiešām vēlies izdzēst šo lietotāju?", + "DeleteUserConfirmation": "Vai tiešām vēlaties izdzēst šo lietotāju?", "DeleteUser": "Dzēst lietotāju", "DeleteMedia": "Dzēst mediju", - "DeleteImageConfirmation": "Vai tu tiešām vēlies izdzēst šo attēlu?", - "DeleteDeviceConfirmation": "Vai tu tiešām vēlies noņemt šo ierīci? Tā parādīsies atkārtoti nākamo reizi, kad lietotājs ieiet ar to.", + "DeleteImageConfirmation": "Vai tiešām vēlaties izdzēst šo attēlu?", + "DeleteDeviceConfirmation": "Vai tiešām vēlaties izdzēst šo ierīci? Tā parādīsies atkārtoti nākamo reizi, kad kāds lietotājs ieies ar to.", "ErrorDefault": "Pieprasījuma apstrādē ir notikusi kļūda. Lūdzu, mēģiniet vēlreiz vēlāk.", "DeathDateValue": "Miris: {0}", "ConfirmEndPlayerSession": "Vai vēlaties izslēgt Jelgavniek {0}?", @@ -829,7 +829,7 @@ "ButtonAddScheduledTaskTrigger": "Pievienot trigeri", "BookLibraryHelp": "Audio un teksta grāmatas tiek atbalstītas. Pārskatiet {0} grāmatu nosaukšanas ceļvedi {1}.", "Blacklist": "Melnais saraksts", - "AuthProviderHelp": "Izvēlies autentifikācijas nodrošinājumu, kas tiks izmantots lai autentificētu šī lietotāja paroli.", + "AuthProviderHelp": "Izvēlieties autentifikācijas nodrošinātāju, kas tiks izmantots, lai autentificētu šī lietotāja paroli.", "AspectRatio": "Attēla proporcijas", "AskAdminToCreateLibrary": "Vaicājiet administratoram, lai izveidotu bibliotēku.", "Ascending": "Augoši", @@ -851,10 +851,10 @@ "ErrorPleaseSelectLineup": "Lūdzu, izvēlieties sarakstu un mēģiniet vēlreiz. Ja nav pieejams neviens saraksts, pārliecinieties, ka tavs lietotājvārds, parole un pasta kods ir pareizi.", "ErrorGettingTvLineups": "Notika kļūda lejupielādējot TV sarakstus. Lūdzu pārliecinieties, ka jūsu informācija ir pareiza un mēģiniet vēlreiz.", "DisplayMissingEpisodesWithinSeasonsHelp": "Šim jābūt iespējotam priekš TV bibliotēkām arī servera konfigurācijā.", - "DefaultMetadataLangaugeDescription": "Šie ir jūsu noklusējumi, kas var tikt rediģēti atkarībā no bibliotēkas.", + "DefaultMetadataLangaugeDescription": "Šie ir jūsu noklusējumi, kas var tikt pielāgoti katrai bibliotēkai atsevišķi.", "LabelPleaseRestart": "Izmaiņas tiks piemērotas pēc manuālas web klienta pārlādes.", "LabelPersonRole": "Loma", - "LabelMusicStreamingTranscodingBitrateHelp": "Iestati maksimālo mūzikas straumēšanas bitu ātrumu.", + "LabelMusicStreamingTranscodingBitrateHelp": "Iestatiet maksimālo mūzikas straumēšanas bitu ātrumu.", "LabelMusicStreamingTranscodingBitrate": "Mūzikas transkodēšanas bitu ātrums", "LabelModelUrl": "Modeļa URL", "LabelModelNumber": "Modeļa numurs", @@ -869,13 +869,13 @@ "LabelKodiMetadataEnablePathSubstitution": "Iespējot ceļu aizvietošanu", "MessageDirectoryPickerBSDInstruction": "BSD gadījumā, jums iespējams vajadzēs nokonfigurēt glabātuvi savā FreeNAS Jail, lai Jellyfin varētu piekļūt jūsu multividei.", "MessageConfirmRevokeApiKey": "Vai tiešām vēlaties atsaukt šo API atslēgu? Lietotnes savienojums ar šo serveri tiks pēkšņi atslēgts.", - "MessageConfirmProfileDeletion": "Vai tu tiešām vēlies izdzēst šo profilu?", + "MessageConfirmProfileDeletion": "Vai tiešām vēlaties izdzēst šo profilu?", "LabelTranscodingProgress": "Transkodēšanas progress", "LabelTranscodingFramerate": "Transkodēšanas kadru ātrums", "LabelRecordingPathHelp": "Ievadi noklusējuma vietējo vietu, kur saglabāt ierakstus. Ja atstāsts tukšs, servera programmas datu mape tiks lietota tā vietā.", "LabelPublicHttpsPortHelp": "Publiskais porta numurs, ko kartēt uz vietējo HTTPS portu.", "LabelOriginalAspectRatio": "Oriģinālās proporcijas", - "LabelMaxStreamingBitrateHelp": "Ievadi maksimālo bitu ātrumu straumēšanai.", + "LabelMaxStreamingBitrateHelp": "Ievadiet maksimālo bitu pārraides ātrumu straumēšanai.", "LabelLocalHttpServerPortNumberHelp": "TCP porta numurs HTTP serverim.", "MessageAreYouSureYouWishToRemoveMediaFolder": "Vai tiešām vēlaties noņemt šo multivides mapi?", "MessageAreYouSureDeleteSubtitles": "Vai tiešām vēlaties dzēst šo subtitru failu?", @@ -1024,7 +1024,7 @@ "OnlyForcedSubtitlesHelp": "Tikai subtitri, kas atzīmēti kā piespiedu tiks ielādēti.", "OnlyForcedSubtitles": "Tikai Piespiedu", "MoreUsersCanBeAddedLater": "Papildus lietotāji var tikt pievienoti vēlāk no vadības paneļa.", - "MessagePluginConfigurationRequiresLocalAccess": "Lai konfigurētu šo paplašinājumu, lūdzu, tieši pieslēdzieties savā lokālajā serverī.", + "MessagePluginConfigurationRequiresLocalAccess": "Lai konfigurētu šo paplašinājumu, lūdzu, ieejiet pa tiešo savā lokālajā serverī.", "MessagePleaseEnsureInternetMetadata": "Lūdzu pārliecinies vai metadatu lejupielāde no interneta ir iespējota.", "LabelEmbedAlbumArtDidl": "Ievietot albumu vākus iekš Didl", "LabelSelectFolderGroups": "Automātiski grupēt saturu no sekojošām mapēm tādos skatos kā Filmas, Mūzika un TV", @@ -1060,7 +1060,7 @@ "EnableFasterAnimations": "Ātrākas animācijas", "EnableBlurHashHelp": "Attēli, kuri joprojām tiek ielādēti, tiks parādīti ar unikālu vietturi.", "EnableBlurHash": "Iespējot aizmiglotus vietturus attēliem", - "DeleteDevicesConfirmation": "Vai tiešām vēlies noņemt visas ierīces? Visas pārējās sesijas tiks atvienotas. Ierīces parādīsies atkārtoti nākamajā reizē, kad lietotājs pievienosies.", + "DeleteDevicesConfirmation": "Vai tiešām vēlaties izdzēst visas ierīces? Visas pārējās sesijas tiks atvienotas. Ierīces parādīsies atkārtoti nākamajā reizē, kad lietotājs ieies.", "DeleteAll": "Dzēst visu", "DailyAt": "Katru dienu {0}", "ClearQueue": "Notīrīt rindu", @@ -1096,7 +1096,7 @@ "LabelXDlnaCap": "Ierīces iespēju ID", "LabelVideoRange": "Video diapazons", "LabelVaapiDeviceHelp": "Šis ir renderēšanas mezgls, kas tiek izmantots aparatūras paātrināšanai.", - "LabelUserRemoteClientBitrateLimitHelp": "Ignorēt noklusējuma globālo vērtību, kas iestatīta servera iestatījumos, skatiet sadaļu Informācijas panelis > Atskaņošana > Straumēšana \"Dashboard > Playback > Streaming\".", + "LabelUserRemoteClientBitrateLimitHelp": "Pārrakstīt noklusējuma globālo vērtību, kas iestatīta servera iestatījumos, skatiet sadaļu Informācijas panelis > Atskaņošana > Straumēšana \"Dashboard > Playback > Streaming\".", "LabelUserMaxActiveSessions": "Maksimālais vienlaicīgu lietotāja sesiju skaits", "LabelUserLibraryHelp": "Atlasiet, kuru lietotāja bibliotēku parādīt ierīcē. Atstājiet tukšu, lai mantotu noklusējuma iestatījumu.", "LabelUnstable": "Nestabils", @@ -1107,7 +1107,7 @@ "LabelTonemappingThresholdHelp": "Toņu kartēšanas algoritma parametri tiek precīzi noregulēti katrai ainai. Un tiek izmantots slieksnis, lai noteiktu, vai aina ir mainījusies vai nav. Ja attālums starp pašreizējo kadra vidējo spilgtumu un pašreizējo vidējo spilgtumu pārsniedz sliekšņa vērtību, mēs pārrēķinām ainas vidējo un maksimālo spilgtumu. Ieteicamās un noklusējuma vērtības ir 0.8 un 0.2 .", "LabelTonemappingThreshold": "Toņu kartēšanas slieksnis", "LabelTonemappingRange": "Toņu kartēšanas diapazons", - "LabelTonemappingPeakHelp": "Ignorēt signālu/nominālo/atsauces maksimumu ar šo vērtību. Noderīga, ja displeja metadatos iegultā maksimālā informācija nav uzticama vai arī notiek toņu kartēšana no zemāka diapazona uz augstāku diapazonu. Ieteicamās un noklusējuma vērtības ir 100 un 0.", + "LabelTonemappingPeakHelp": "Pārrakstīt signālu/nominālo/atsauces maksimumu ar šo vērtību. Noderīga, ja displeja metadatos iegultā maksimālā informācija nav uzticama vai arī notiek toņu kartēšana no zemāka diapazona uz augstāku diapazonu. Ieteicamās un noklusējuma vērtības ir 100 un 0.", "LabelTonemappingPeak": "Toņu kartēšanas maksimums", "LabelTonemappingParamHelp": "Noregulējiet toņu kartēšanas algoritmu. Ieteicamās un noklusējuma vērtības ir NaN. Parasti atstājiet to tukšu.", "LabelTonemappingParam": "Toņu kartēšanas parametrs", @@ -1181,7 +1181,7 @@ "LabelHardwareEncoding": "Aparatūras kodēšana", "LabelH265Crf": "H.265 kodēšanas CRF skaitlis", "LabelffmpegPathHelp": "Ceļš uz FFmpeg lietojumprogrammas failu vai mapi, kurā ir FFmpeg.", - "LabelExtractChaptersDuringLibraryScanHelp": "Ģenerējiet nodaļu attēlus kad bibliotēkas skenēšanas laikā tiek importēti videoklipi. Pretējā gadījumā tie tiks iegūti nodaļas attēlu ieplānotā uzdevuma laikā.", + "LabelExtractChaptersDuringLibraryScanHelp": "Ģenerējiet nodaļu attēlus kad bibliotēkas skenēšanas laikā tiek importēti videoklipi. Pretējā gadījumā tie tiks iegūti nodaļas attēlu ieplānotā uzdevuma laikā, tādējādi padarot parasto bibliotēku skenēšanu ātrāku.", "LabelEnableSSDPTracingHelp": "Iespējot detalizētas SSDP tīkla izsekošanas datu reģistrēšanu.
BRĪDINĀJUMS. Tas izraisīs nopietnu veiktspējas pasliktināšanos.", "LabelEnableSSDPTracing": "Iespējot SSDP izsekošanu", "LabelEnableRealtimeMonitorHelp": "Failu izmaiņas tiks nekavējoties apstrādātas atbalstītajās failu sistēmās.", @@ -1206,7 +1206,7 @@ "LabelColorPrimaries": "Galvenās krāsas", "LabelBlastMessageIntervalHelp": "Nosakiet ilgumu sekundēs starp “Ieslēgts” ziņojumu pārraidēm.", "LabelBlastMessageInterval": "“Ieslēgts” ziņojumu intervāls", - "LabelBindToLocalNetworkAddressHelp": "Ignorēt HTTP servera vietējo IP adresi. Ja tas tiks atstāts tukšs, serveris saistīs visas pieejamās adreses. Lai mainītu šo vērtību, ir nepieciešama restartēšana.", + "LabelBindToLocalNetworkAddressHelp": "Pārrakstīt HTTP servera vietējo IP adresi. Ja atstājat tukšu, serveris tiks piesaistīts visām pieejamajām adresēm. Mainot šo vērtību, nepieciešams restartēt.", "LabelAutomaticDiscoveryHelp": "Atļaut lietotnēm automātiksi atrast Jellyfin izmantojot UDP portu 7359.", "LabelAutomaticDiscovery": "Ieslēgt Automātisko Atklāšanu", "LabelAutoDiscoveryTracingHelp": "Kad iespējots, saņemtās paketes automātiskās atklāšanas ports tiks arhivēts.", @@ -1255,7 +1255,7 @@ "LabelMaxMuxingQueueSizeHelp": "Maksimālais pakešu skaits, ko var buferizēt, gaidot visu straumju inicializāciju. Mēģiniet to palielināt, ja FFmpeg žurnālos joprojām tiek parādīta kļūda \"Izvades straumei buferēts pārāk daudz pakešu\". Ieteicamā vērtība ir 2048.", "LabelMaxMuxingQueueSize": "Maksimālā muxing rindas lielums", "LabelMaxBackdropsPerItem": "Maksimālais fonu skaits vienam vienumam", - "LabelMaxAudiobookResumeHelp": "Tiek pieņemts, ka vienumi ir pilnībā atskaņoti, ja tie tiek apturēti, ja atlikušais ilgums ir mazāks par šo vērtību.", + "LabelMaxAudiobookResumeHelp": "Vienumi tiek uzskatīti kā pilnībā atskaņoti, ja ir apturēti, kad atlikušais ilgums ir mazāks par šo vērtību.", "LabelMaxAudiobookResume": "Atlikušās audiogrāmatas minūtes, lai atsāktu", "LabelMatchType": "Atbilstības veids", "LabelLocalCustomCss": "Pielāgots CSS kods stilam, kas attiecas tikai uz šo klientu. Iespējams, vēlēsities atspējot servera pielāgoto CSS kodu.", @@ -1331,11 +1331,11 @@ "MediaInfoVideoRange": "Video diapazons", "MessageForgotPasswordFileCreated": "Sekojošais fails ir ticis izveidots uz tava servera un satur instrukcijas tālākai rīcībai", "LabelMaxVideoResolution": "Maksimālā Atļautā Video Transkodēšanas Izšķirtspēja", - "MessageAddRepository": "Ja tu vēlies pievienot repozitoriju, nospied pogu, kas atrodas blakus galvenei un aizpildi prasīto informāciju.", + "MessageAddRepository": "Ja vēlaties pievienot repozitoriju, nospiediet pogu, kas atrodas blakus galvenei un aizpildiet prasīto informāciju.", "HomeVideosPhotos": "Mājas video un fotogrāfijas", - "MediaInfoBitrate": "Datu pārraides ātrums", + "MediaInfoBitrate": "Bitu ātrums", "LabelEnableAudioVbr": "Iespējot VBR skaņas kodēšanu", - "LabelEnableAudioVbrHelp": "Mainīgs bitreits sneidz labāku kvalitāti lai izlīdzinātu bitreita attiecību, bet dažos retos gadījumos var izraisīt ilgus bufera laikus un savietojamības problēmas.", + "LabelEnableAudioVbrHelp": "Mainīgs bitu pārraides ātrums salīdzinājumā ar vidēju bitu pārraides ātrumu nodrošina labāku kvalitāti, taču retos gadījumos var radīt buferēšanas un savietojamības problēmas.", "Bold": "Treknteksts", "LanNetworksHelp": "Ar komatu atdalīts saraksts, kas satur IP adreses vai IP/apakštīkla maskas priekš tīkliem, kas tiks uztverti kā atrodamies lokālajā tīklā, īstenojot tīkla ātruma ierobežojumus. Ja iestatīts, visas citas IP adreses tiks uztvertas kā ārēja tīkla un tām tiks īstenotas ārēja tīkla ātruma ierobežojumi. Ja atstāts tukšs, tikai servera apakštīkls tiks uztverts kā atrodamies lokālajā tīklā.", "ListPaging": "{0}-{1} no {2}", @@ -1343,7 +1343,7 @@ "MediaInfoColorPrimaries": "Primārās krāsas", "MediaInfoColorTransfer": "Krāsu pārnešana", "MessageChangeRecordingPath": "Ierakstu mapes maiņa automātiski nepārvietos jau pastāvošus ierakstus no vecās uz jauno atrašanās vietu. Jums vajadzēs pašam tos manuāli pārvietot vajadzības gadījumā.", - "MessageEnablingOptionLongerScans": "Šīs opcijas iespējošana var izraisīt krienti ilgākas krātuves skenēšanas.", + "MessageEnablingOptionLongerScans": "Šīs opcijas iespējošana var krietni paildzināt bibliotēku skenēšanu.", "HeaderPerformance": "Veiktspēja", "LabelDummyChapterDurationHelp": "Intervāls starp fiktīvajām nodaļām. Iestatiet 0, lai atslēgtu fiktīvo nodaļu ģenerēšanu. Šīs vērtības maiņa neietekmēs esošās fiktīvās nodaļas.", "LabelDummyChapterCountHelp": "Maksimālais nodaļu attēlu skaits, kas tiks ekstraktēts no katra multivides faila.", @@ -1378,7 +1378,7 @@ "MessageImageTypeNotSelected": "Lūdzu, izvēlaties attēla veidu no nolaižamās izvēlnes.", "MessageLeaveEmptyToInherit": "Atstājiet tukšu, lai mantotu iestatījumus no vecākā elementa vai globālās noklusējuma vērtības.", "MessagePluginInstallDisclaimer": "Kopienas dalībnieku izveidoti spraudņi ir lielisks veids, kā uzlabot savu pieredzi, izmantojot papildu funkcijas un priekšrocības, bet šādi spraudņi var saturēt bīstamu vai nestabilu kodu. Pirms instalēšanas ņemiet vērā to iespējamo ietekmi uz jūsu serveri, piemēram, ilgāku bibliotēkas skenēšanu, papildu fona apstrādi un sistēmas stabilitātes samazināšanos.", - "MessagePasswordResetForUsers": "Šo lietotāju paroles ir atiestatītas. Tagad viņi var pierakstīties, izmantojot PIN kodus, kas tika izmantoti atiestatīšanai.", + "MessagePasswordResetForUsers": "Šiem lietotājiem paroles tika atiestatītas. Tagad viņi var ieiet, izmantojot PIN kodus, kas tika izmantoti atiestatīšanai.", "MessagePluginInstalled": "Spraudnis tika veiksmīgi instalēts. Lai izmaiņas stātos spēkā, serveris ir jārestartē.", "HeaderRecordingMetadataSaving": "Ieraksta metadati", "AllowCollectionManagement": "Ļaut konkrētajam lietotājam pārvaldīt kolekciju", @@ -1409,7 +1409,7 @@ "PasswordRequiredForAdmin": "Administratora kontiem ir nepieciešama parole.", "PleaseConfirmPluginInstallation": "Lūdzu, noklikšķiniet uz OK, lai apstiprinātu, ka esat izlasījis iepriekš minēto informāciju un vēlaties turpināt spraudņa instalēšanu.", "PreferEmbeddedTitlesOverFileNames": "Dot priekšroku iegultajiem nosaukumiem, nevis failu nosaukumiem", - "AllowEmbeddedSubtitlesHelp": "Atslēgt subtitrus, kas ir iekļauti multivides konteineros. Nepieciešama pilnīga bibliotēkas atjaunošana.", + "AllowEmbeddedSubtitlesHelp": "Atslēgt subtitrus, kas ir iekļauti multivides konteineros. Nepieciešama pilnīga bibliotēkas pārskenēšana.", "PreviousTrack": "Pāriet uz iepriekšējo", "MoveLeft": "Pārvietoties pa kreisi", "PreferEmbeddedEpisodeInfosOverFileNames": "Priekšroku dot iegultai sērijas informācijai, nevis failu nosaukumiem", @@ -1464,7 +1464,7 @@ "OtherArtist": "Cits mākslinieks", "PasswordResetProviderHelp": "Izvēlieties paroles atiestatīšanas pakalpojumu sniedzēju, kas tiks izmantots, kad šis lietotājs pieprasīs paroles atiestatīšanu.", "PlaybackErrorPlaceHolder": "Tas ir fizisku datu nesēju aizstājējs, kurus Jellyfin nevar atskaņot. Lūdzu, ievietojiet disku, lai to atskaņotu.", - "QuickConnectDescription": "Lai pierakstītos, izmantojot Quick Connect, ierīcē, no kuras piesakāties, izvēlieties pogu \"Quick Connect\" un ievadiet tālāk norādīto kodu.", + "QuickConnectDescription": "Lai ieietu, izmantojot Quick Connect, ierīcē, no kuras piesakāties, izvēlieties pogu \"Quick Connect\" un ievadiet tālāk norādīto kodu.", "QuickConnectDeactivated": "Quick Connect tika deaktivizēts, pirms varēja apstiprināt pieteikšanās pieprasījumu", "Other": "Citi", "MetadataSettingChangeHelp": "Metadatu iestatījumu maiņa ietekmēs turpmāk pievienoto jauno saturu. Lai atsvaidzinātu esošo saturu, atveriet detalizēto ekrānu un noklikšķiniet uz pogas \"Atsvaidzināt\" vai veiciet masveida atsvaidzināšanu, izmantojot \"Metadatu Pārvaldnieku\".", @@ -1520,7 +1520,7 @@ "LogLevel.Critical": "Kritisks", "Trailer": "Treileris", "BehindTheScenes": "Aiz kadra", - "ContainerBitrateExceedsLimit": "Video bitu pārraides ātrums pārsniedz ierobežojumu", + "ContainerBitrateExceedsLimit": "Video bitu ātrums pārsniedz ierobežojumu", "TabAccess": "Piekļuve", "ContainerNotSupported": "Konteiners netiek atbalstīts", "TabDashboard": "Infopanelis", @@ -1572,7 +1572,7 @@ "SubtitleRed": "Sarkans", "Sunday": "Svētdiena", "EnableFallbackFont": "Iespējot rezerves fontus", - "EnableGamepadHelp": "Klausieties, vai tiek saņemts ievades signāls no visiem pievienotajiem kontrolieriem. (Nepieciešams: “TV” displeja režīms)", + "EnableGamepadHelp": "Klausīt ievades signāliem no visām pievienotajām pultīm. (Nepieciešams: TV displeja režīms)", "Save": "Saglabāt", "Studio": "Studija", "Typewriter": "Rakstāmmašīna", @@ -1687,7 +1687,7 @@ "XmlTvPathHelp": "Ceļš uz XMLTV failu. Jellyfin nolasīs šo failu un periodiski pārbaudīs, vai tas nav atjaunināts. Jūs esat atbildīgs par faila izveidi un atjaunināšanu.", "TypeOptionPluralAudio": "Audio ieraksti", "RememberSubtitleSelections": "Iestatīt subtitru celiņu, pamatojoties uz iepriekšējo vienumu", - "VideoBitrateNotSupported": "Video bitu pārraides ātrums netiek atbalstīts", + "VideoBitrateNotSupported": "Video bitu ātrums netiek atbalstīts", "TypeOptionPluralEpisode": "Sērijas", "TypeOptionPluralMusicAlbum": "Mūzikas albumi", "UseEpisodeImagesInNextUp": "Izmantot sērijas attēlus sadaļās “Nākamais” un “Turpini skatīties”", @@ -1714,5 +1714,6 @@ "SearchResultsEmpty": "Atvainojiet! \"{0}\" meklēšana beidzās bez rezultāta", "LabelIsHearingImpaired": "Ar dzirdes traucējumiem (SDH)", "LabelFallbackFontPathHelp": "Šie fonti dažos klientos tiek izmantoti subtitru atveidošanai. Lai iegūtu vairāk informācijas, skatiet dokumentāciju.", - "LabelSelectAudioNormalization": "Audio normalizācija" + "LabelSelectAudioNormalization": "Audio normalizācija", + "MediaInfoDvBlSignalCompatibilityId": "DV bl signāla saderības id" } diff --git a/src/strings/mn.json b/src/strings/mn.json index a521a68d9..2972aec05 100644 --- a/src/strings/mn.json +++ b/src/strings/mn.json @@ -95,5 +95,10 @@ "Option3D": "3D", "Albums": "Цомгууд", "Mobile": "Үүрэн", - "Desktop": "Компьютер" + "Desktop": "Компьютер", + "Absolute": "Бүрэн", + "AccessRestrictedTryAgainLater": "Одоогоор хандалт хязгаарлагдмал байна. Дараа дахин оролдож үзнэ үү.", + "Actor": "Жүжигчин", + "Add": "Нэмэх", + "AddedOnValue": "Нэмсэн" } diff --git a/src/strings/nb.json b/src/strings/nb.json index 91f77b623..cf904e014 100644 --- a/src/strings/nb.json +++ b/src/strings/nb.json @@ -1424,7 +1424,7 @@ "LabelUserMaxActiveSessions": "Maksimalt antall samtidige brukerøkter", "DeleteAll": "Slett alle", "AllowHevcEncoding": "Tillat koding i HEVC-format", - "PreferFmp4HlsContainerHelp": "Foretrekk bruk av fMP4 som standard mediabeholder for HLS, noe som gjør det mulig å direktestrømme HEVC-innhold til støttede enheter.", + "PreferFmp4HlsContainerHelp": "Foretrekk bruk av fMP4 som standard mediabeholder for HLS, noe som gjør det mulig å direktestrømme HEVC- og AV1-innhold til støttede enheter.", "PreferFmp4HlsContainer": "Foretrekk fMP4-HLS mediabeholder", "LabelSyncPlayInfo": "SyncPlay-informasjon", "LabelOriginalMediaInfo": "Opprinnelig medieinformasjon", @@ -1441,7 +1441,7 @@ "AspectRatioCover": "Dekk", "EnableFallbackFontHelp": "Aktiver egendefinerte alternative skrifttyper. Dette kan hjelpe med å unngå problemer ved gjengivelse av undertekster.", "EnableFallbackFont": "Aktiver skrifttyper å falle tilbake på", - "LabelFallbackFontPathHelp": "Spesifiser en bane som inneholder skrifttyper for gjengivelse av ASS/SSA-undertekster. Maksimal tillatt total skriftstørrelse er 20 MB. Det anbefales lette og nettvennlige skriftformater som woff2.", + "LabelFallbackFontPathHelp": "Disse skrifttypene er brukt av noen klienter for å vise undertekster. Referer til dokumentasjonen for mer informasjon.", "LabelFallbackFontPath": "Mappe for skrift å falle tilbake på", "HeaderSelectFallbackFontPathHelp": "Bla gjennom eller gå inn i mappen med skrifttyper å falle tilbake på, for gjengivelse av ASS/SSA-undertekster.", "HeaderSelectFallbackFontPath": "Velg mappe for skrift å falle tilbake på", @@ -1775,5 +1775,10 @@ "LabelBackdropScreensaverInterval": "Skjermsparingsbakgrunn-intervall", "LabelBackdropScreensaverIntervalHelp": "Tid i milisekunder mellom forskjellige bakgrunner ved bruk av skjermsparingsbakgrunner.", "BackdropScreensaver": "Skjermsparingsbakgrunn", - "ForeignPartsOnly": "Kun tvungne/fremmede deler" + "ForeignPartsOnly": "Kun tvungne/fremmede deler", + "SearchResultsEmpty": "Sorry! Ingen resultater funnet for \"{0}\"", + "SelectAudioNormalizationHelp": "Sporjustering - justerer volumet for hvert spor så de spiller av med samme volum. Albumsjustering - justerer volumet på alle sporene i et album, og beholder albumets dynamiske rekkevidde.", + "LabelAlbumGain": "Albumjustering", + "LabelSelectAudioNormalization": "Lydnormalisering", + "LabelTrackGain": "Sporjustering" } diff --git a/src/strings/nl.json b/src/strings/nl.json index cc3233983..87190b91a 100644 --- a/src/strings/nl.json +++ b/src/strings/nl.json @@ -1439,7 +1439,7 @@ "LabelSelectAudioChannels": "Kanalen", "LabelAllowedAudioChannels": "Maximaal toegestane geluidskanalen", "AllowHevcEncoding": "Codering in HEVC-formaat toestaan", - "PreferFmp4HlsContainerHelp": "Gebruik bij voorkeur fMP4 als de standaardcontainer voor HLS, waardoor het mogelijk wordt om HEVC-inhoud direct op ondersteunde apparaten te streamen.", + "PreferFmp4HlsContainerHelp": "Gebruik fMP4 als voorkeurscontainer voor HLS, waardoor HEVC- en AV1-inhoud direct op ondersteunde apparaten gestreamd kan worden.", "PreferFmp4HlsContainer": "fMP4-HLS-mediacontainers verkiezen", "LabelSyncPlayInfo": "SyncPlay-informatie", "LabelOriginalMediaInfo": "Informatie oorspronkelijke media", diff --git a/src/strings/pl.json b/src/strings/pl.json index 0c775a0a6..e39524ba0 100644 --- a/src/strings/pl.json +++ b/src/strings/pl.json @@ -63,7 +63,7 @@ "ButtonCancel": "Anuluj", "ButtonChangeServer": "Zmień serwer", "ButtonEditOtherUserPreferences": "Edytuj profil, obrazy i ustawienia osobiste tego użytkownika.", - "ButtonForgotPassword": "Zapomniałem hasła", + "ButtonForgotPassword": "Nie pamiętam hasła", "ButtonFullscreen": "Pełny ekran", "ButtonGotIt": "Rozumiem", "ButtonInfo": "Informacje", @@ -845,7 +845,7 @@ "MessageNoPluginConfiguration": "Ta wtyczka nie ma żadnych ustawień.", "NoSubtitleSearchResultsFound": "Brak wyników wyszukiwania.", "NoSubtitlesHelp": "Domyślnie napisy nie będą wczytywane. Można je ciągle włączyć ręcznie podczas odtwarzania.", - "None": "Żadne", + "None": "Brak", "Normal": "Normalny", "NumLocationsValue": "{0} foldery", "Off": "Wyłączone", @@ -1398,8 +1398,8 @@ "EnableTonemapping": "Włącz Tone mapping", "AllowTonemappingHelp": "Mapowanie tonalne może przekształcić zakres dynamiczny wideo z HDR na SDR, zachowując jednocześnie szczegóły obrazu i kolory, które są bardzo ważnymi informacjami dla odwzorowania oryginalnej sceny. Obecnie działa tylko z 10-bitowymi filmami HDR10, HLG i DoVi. Wymaga to odpowiedniego środowiska wykonawczego OpenCL lub CUDA.", "TonemappingAlgorithmHelp": "Mapowanie tonów może zostać dostrojone. Jeśli nie znasz tych opcji, pozostaw domyślne wartości. Domyślna wartość to 'BT.2390'.", - "PreferFmp4HlsContainerHelp": "Preferuj fMP4 jako domyślny format dla HLS, pozwalając na bezpośrednie odtwarzanie zawartości HEVC na wspieranych urządzeniach.", - "PreferFmp4HlsContainer": "Preferuj format fMP4-HLS", + "PreferFmp4HlsContainerHelp": "Preferuj fMP4 jako domyślny kontener dla HLS, pozwalając na bezpośrednie odtwarzanie zawartości HEVC i AV1 na wspieranych urządzeniach.", + "PreferFmp4HlsContainer": "Preferuj kontener fMP4-HLS", "LabelRemuxingInfo": "Informacje o remuksowaniu", "RemuxHelp2": "Remuksowanie zużywa bardzo mało zasobów z kompletnie bezstratną jakością multimediów.", "TonemappingRangeHelp": "Wybierz wyjściowy zakres kolorów. Automatycznie ustawia się na zakres wejściowy.", diff --git a/src/strings/ru.json b/src/strings/ru.json index 60c705150..aec031aaa 100644 --- a/src/strings/ru.json +++ b/src/strings/ru.json @@ -1257,7 +1257,7 @@ "EveryXMinutes": "Каждые {0} мин", "WeeklyAt": "{0} в {1}", "DailyAt": "Ежедневно в {0}", - "PersonRole": "как {0}", + "PersonRole": "в роли {0}", "ListPaging": "{0}-{1} из {2}", "Yadif": "YADIF", "Season": "Сезон", @@ -1445,7 +1445,7 @@ "LabelSelectAudioChannels": "Каналы", "LabelAllowedAudioChannels": "Максимальное число разрешённых аудио каналов", "AllowHevcEncoding": "Разрешить кодирование в формате HEVC", - "PreferFmp4HlsContainerHelp": "Предпочитается использование fMP4-контейнера по умолчанию для HLS, что позволяет прямую трансляцию HEVC-содержания на поддерживаемые устройства.", + "PreferFmp4HlsContainerHelp": "Предпочитается использование fMP4-контейнера по умолчанию для HLS, что позволяет прямую трансляцию контента HEVC и AV1 на поддерживаемые устройства.", "PreferFmp4HlsContainer": "Предпочитать медиа-контейнер fMP4-HLS", "RemuxHelp2": "Ремуксинг использует очень небольшую вычислительную мощность с качеством медиаданных без потерь.", "RemuxHelp1": "Медиаданные находятся в несовместимом файловом контейнере (MKV, AVI, WMV и т.д.), Но и видео поток, и аудио поток совместимы с устройством. Перед отправкой на устройство медиаданные будут переупакованы динамически без потерь.", diff --git a/src/strings/sk.json b/src/strings/sk.json index 252f69dfd..1b663e025 100644 --- a/src/strings/sk.json +++ b/src/strings/sk.json @@ -1476,7 +1476,7 @@ "LabelSelectAudioChannels": "Kanály", "LabelAllowedAudioChannels": "Maximálny povolený počet zvukových kanálov", "AllowHevcEncoding": "Povoliť kódovanie do formátu HEVC", - "PreferFmp4HlsContainerHelp": "Preferovať fMP4 ako predvolený kontajner pre HLS, čo umožňuje priame streamovanie HEVC obsahu na podporovaných zariadeniach.", + "PreferFmp4HlsContainerHelp": "Preferovať fMP4 ako predvolený kontajner pre HLS, čo umožňuje priame streamovanie HEVC a AV1 obsahu na podporovaných zariadeniach.", "PreferFmp4HlsContainer": "Preferovať fMP4-HLS média kontajner", "LabelSyncPlayInfo": "Informácie o SyncPlay", "LabelOriginalMediaInfo": "Informácie o pôvodnom médiu", diff --git a/src/strings/sl-si.json b/src/strings/sl-si.json index 34164f0f6..a74186d5f 100644 --- a/src/strings/sl-si.json +++ b/src/strings/sl-si.json @@ -23,8 +23,8 @@ "OptionAllowMediaPlayback": "Dovoli predvajanje vsebin", "OptionDisableUser": "Onemogoči tega uporabnika", "OptionEnableAccessFromAllDevices": "Omogoči dostop iz vseh naprav", - "OptionEnableAccessToAllChannels": "Omogoci dostop do vseh kanalov", - "OptionEnableAccessToAllLibraries": "Omogoci dostop do vseh knjiznic", + "OptionEnableAccessToAllChannels": "Omogoči dostop do vseh kanalov", + "OptionEnableAccessToAllLibraries": "Omogoči dostop do vseh knjižnic", "OptionLikes": "Všeč mi je", "OptionReleaseDate": "Datum izida", "ParentalRating": "Ocena za starše", diff --git a/src/strings/te.json b/src/strings/te.json index c413119a4..142c1336c 100644 --- a/src/strings/te.json +++ b/src/strings/te.json @@ -63,7 +63,7 @@ "WriteAccessRequired": "జెల్లీఫిన్‌కు ఈ ఫోల్డర్‌కు వ్రాసే ప్రాప్యత అవసరం. దయచేసి వ్రాసే ప్రాప్యతను నిర్ధారించుకోండి మరియు మళ్లీ ప్రయత్నించండి.", "Whitelist": "వైట్లిస్ట్", "WelcomeToProject": "జెల్లీఫిన్‌కు స్వాగతం!", - "WeeklyAt": "{1 at వద్ద {0} s", + "WeeklyAt": "{1}న {0} క్షణాలకు", "Wednesday": "బుధవారం", "Watched": "చూశారు", "ViewPlaybackInfo": "ప్లేబ్యాక్ సమాచారాన్ని చూడండి", @@ -105,7 +105,7 @@ "Unrated": "అన్‌రేటెడ్", "Unplayed": "ప్రదర్శించబడలేదు", "Unmute": "అన్‌మ్యూట్ చేయండి", - "UninstallPluginConfirmation": "మీరు ఖచ్చితంగా {0 un అన్‌ఇన్‌స్టాల్ చేయాలనుకుంటున్నారా?", + "UninstallPluginConfirmation": "మీరు ఖచ్చితంగా {0} అన్‌ఇన్‌స్టాల్ చేయాలనుకుంటున్నారా?", "Uniform": "ఏకరీతి", "TvLibraryHelp": "{0} టీవీ నామకరణ మార్గదర్శిని సమీక్షించండి {1}.", "TV": "టీవీ", @@ -154,7 +154,7 @@ "TabAdvanced": "ఆధునిక", "TabAccess": "యాక్సెస్", "SystemDlnaProfilesHelp": "సిస్టమ్ ప్రొఫైల్స్ చదవడానికి మాత్రమే. సిస్టమ్ ప్రొఫైల్‌కు మార్పులు క్రొత్త అనుకూల ప్రొఫైల్‌కు సేవ్ చేయబడతాయి.", - "SyncPlayGroupDefaultTitle": "{0 s యొక్క సమూహం", + "SyncPlayGroupDefaultTitle": "{0} యొక్క సమూహం", "SyncPlayAccessHelp": "సమకాలీకరణ లక్షణానికి ఈ వినియోగదారు యాక్సెస్ స్థాయిని ఎంచుకోండి. సమకాలీకరణ ప్లేబ్యాక్‌ను ఇతర పరికరాలతో సమకాలీకరించడానికి అనుమతిస్తుంది.", "Sync": "సమకాలీకరించు", "Sunday": "ఆదివారం", @@ -174,10 +174,10 @@ "SettingsWarning": "ఈ విలువలను మార్చడం అస్థిరత లేదా కనెక్టివిటీ వైఫల్యాలకు కారణం కావచ్చు. మీకు ఏవైనా సమస్యలు ఎదురైతే, వాటిని తిరిగి డిఫాల్ట్‌గా మార్చమని మేము సిఫార్సు చేస్తున్నాము.", "SettingsSaved": "సెట్టింగులు సేవ్ చేయబడ్డాయి.", "Settings": "సెట్టింగులు", - "ServerUpdateNeeded": "ఈ సర్వర్ నవీకరించబడాలి. తాజా సంస్కరణను డౌన్‌లోడ్ చేయడానికి, దయచేసి visit 0 visit ని సందర్శించండి", + "ServerUpdateNeeded": "ఈ సర్వర్ నవీకరించబడాలి. తాజా అప్డేట్ డౌన్‌లోడ్ చేయడానికి, దయచేసి {0}ని సందర్శించండి", "ServerRestartNeededAfterPluginInstall": "ప్లగ్‌ఇన్‌ను ఇన్‌స్టాల్ చేసిన తర్వాత జెల్లీఫిన్ పున ar ప్రారంభించాలి.", - "ServerNameIsShuttingDown": "{0 At వద్ద సర్వర్ షట్ డౌన్ అవుతోంది.", - "ServerNameIsRestarting": "{0 At వద్ద సర్వర్ పున art ప్రారంభించబడుతోంది.", + "ServerNameIsShuttingDown": "{0} వద్ద సర్వర్ షట్ డౌన్ అవుతోంది.", + "ServerNameIsRestarting": "{0} వద్ద సర్వర్ పునఃప్రారంభించబడుతోంది.", "SeriesYearToPresent": "{0} - ప్రస్తుతం", "SeriesSettings": "సిరీస్ సెట్టింగ్‌లు", "SeriesRecordingScheduled": "సిరీస్ రికార్డింగ్ షెడ్యూల్ చేయబడింది.", @@ -205,7 +205,7 @@ "Saturday": "శనివారం", "Runtime": "రన్‌టైమ్", "Rewind": "రివైండ్ చేయండి", - "ResumeAt": "{0 from నుండి పున ume ప్రారంభించండి", + "ResumeAt": "{0} నుండి పునఃప్రారంభించండి", "Restart": "పున art ప్రారంభించండి", "ResetPassword": "రహస్యపదాన్ని మార్చుకోండి", "ReplaceExistingImages": "ఇప్పటికే ఉన్న చిత్రాలను భర్తీ చేయండి", @@ -229,9 +229,9 @@ "RecordingCancelled": "రికార్డింగ్ రద్దు చేయబడింది.", "Record": "రికార్డ్", "RecommendationStarring": "{0} నటించారు", - "RecommendationDirectedBy": "{0 by దర్శకత్వం వహించారు", + "RecommendationDirectedBy": "{0} దర్శకత్వం వహించారు", "RecommendationBecauseYouWatched": "ఎందుకంటే మీరు {0} చూశారు", - "RecommendationBecauseYouLike": "ఎందుకంటే మీరు {0 like", + "RecommendationBecauseYouLike": "మీకు {0} ఇష్టం కాబట్టి", "RecentlyWatched": "ఇటీవల చూశారు", "Rate": "రేటు", "Raised": "పెంచింది", @@ -240,13 +240,13 @@ "QuickConnectInvalidCode": "శీఘ్ర కనెక్ట్ కోడ్ చెల్లదు", "QuickConnectDescription": "శీఘ్ర కనెక్ట్తో సైన్ ఇన్ చేయడానికి, మీరు లాగిన్ అవుతున్న పరికరంలోని త్వరిత కనెక్ట్ బటన్‌ను ఎంచుకోండి మరియు క్రింద ప్రదర్శించబడే కోడ్‌ను నమోదు చేయండి.", "QuickConnectDeactivated": "లాగిన్ అభ్యర్థన ఆమోదించబడటానికి ముందు శీఘ్ర కనెక్ట్ నిష్క్రియం చేయబడింది", - "QuickConnectAuthorizeSuccess": "అభ్యర్థన అధికారం", + "QuickConnectAuthorizeSuccess": "మీ పరికరాన్ని విజయవంతంగా ధృవీకరించారు!", "QuickConnectAuthorizeFail": "తెలియని శీఘ్ర కనెక్ట్ కోడ్", "QuickConnectAuthorizeCode": "లాగిన్ అవ్వడానికి {0} నమోదు చేయండి", "QuickConnectActivationSuccessful": "విజయవంతంగా సక్రియం చేయబడింది", "QuickConnect": "త్వరిత కనెక్ట్", "Quality": "నాణ్యత", - "PluginFromRepo": "{0 re రిపోజిటరీ నుండి {1}", + "PluginFromRepo": "{0} రిపోజిటరీ నుండి {1}", "Programs": "కార్యక్రమాలు", "Profile": "ప్రొఫైల్", "ProductionLocations": "ఉత్పత్తి స్థానాలు", @@ -264,7 +264,7 @@ "PosterCard": "పోస్టర్ కార్డ్", "Poster": "పోస్టర్", "PleaseSelectTwoItems": "దయచేసి కనీసం రెండు అంశాలను ఎంచుకోండి.", - "PleaseRestartServerName": "దయచేసి జెల్లీఫిన్‌ను {0 on లో పున art ప్రారంభించండి.", + "PleaseRestartServerName": "దయచేసి {0}న జెల్లీఫిన్‌ని పునఃప్రారంభించండి.", "PleaseEnterNameOrId": "దయచేసి పేరు లేదా బాహ్య ID ని నమోదు చేయండి.", "PleaseConfirmPluginInstallation": "దయచేసి మీరు పైన చదివారని ధృవీకరించడానికి సరే క్లిక్ చేయండి మరియు ప్లగిన్ సంస్థాపనతో కొనసాగాలని కోరుకుంటారు.", "PleaseAddAtLeastOneFolder": "జోడించు బటన్‌ను క్లిక్ చేయడం ద్వారా దయచేసి ఈ లైబ్రరీకి కనీసం ఒక ఫోల్డర్‌ను జోడించండి.", @@ -285,7 +285,7 @@ "PictureInPicture": "చిత్రంలో చిత్రం", "Photos": "ఫోటోలు", "Photo": "ఫోటో", - "PersonRole": "{0 as గా", + "PersonRole": "{0} గా", "Person": "వ్యక్తి", "PerfectMatch": "సరియైన జోడీ", "People": "ప్రజలు", @@ -434,7 +434,7 @@ "MessageDirectoryPickerLinuxInstruction": "ఆర్చ్ లైనక్స్, సెంటొస్, డెబియన్, ఫెడోరా, ఓపెన్‌సుస్, లేదా ఉబుంటులో లైనక్స్ కోసం, మీరు మీ నిల్వ స్థానాలకు కనీసం చదవడానికి ప్రాప్యతను సేవ వినియోగదారుకు ఇవ్వాలి.", "MessageDirectoryPickerBSDInstruction": "BSD కోసం, మీరు మీ ఫ్రీనాస్ జైలులో నిల్వను కాన్ఫిగర్ చేయవలసి ఉంటుంది, కాబట్టి జెల్లీఫిన్ మీ మీడియాను యాక్సెస్ చేయవచ్చు.", "MessageDeleteTaskTrigger": "మీరు ఖచ్చితంగా ఈ టాస్క్ ట్రిగ్గర్ను తొలగించాలనుకుంటున్నారా?", - "MessageCreateAccountAt": "{0 at వద్ద ఖాతాను సృష్టించండి", + "MessageCreateAccountAt": "{0} వద్ద ఖాతాను సృష్టించండి", "MessageContactAdminToResetPassword": "మీ పాస్‌వర్డ్‌ను రీసెట్ చేయడానికి దయచేసి మీ సిస్టమ్ అడ్మినిస్ట్రేటర్‌ను సంప్రదించండి.", "MessageConfirmShutdown": "మీరు ఖచ్చితంగా సర్వర్‌ను షట్డౌన్ చేయాలనుకుంటున్నారా?", "MessageConfirmRevokeApiKey": "మీరు ఖచ్చితంగా ఈ API కీని ఉపసంహరించుకోవాలనుకుంటున్నారా? ఈ సర్వర్‌కు అనువర్తనం యొక్క కనెక్షన్ అకస్మాత్తుగా ఆపివేయబడుతుంది.", @@ -514,7 +514,7 @@ "SpecialFeatures": "ప్రత్యేక లక్షణాలు", "SortName": "పేరు క్రమబద్ధీకరించు", "SortChannelsBy": "దీని ద్వారా ఛానెల్‌లను క్రమబద్ధీకరించండి", - "SortByValue": "{0 by ద్వారా క్రమబద్ధీకరించండి", + "SortByValue": "{0} ద్వారా క్రమబద్ధీకరించండి", "Sort": "క్రమబద్ధీకరించు", "Songs": "పాటలు", "SmartSubtitlesHelp": "ఆడియో విదేశీ భాషలో ఉన్నప్పుడు భాష ప్రాధాన్యతతో సరిపోయే ఉపశీర్షికలు లోడ్ అవుతాయి.", @@ -776,7 +776,7 @@ "Normal": "సాధారణం", "NoNewDevicesFound": "క్రొత్త పరికరాలు కనుగొనబడలేదు. క్రొత్త ట్యూనర్‌ను జోడించడానికి, ఈ డైలాగ్‌ను మూసివేసి, పరికర సమాచారాన్ని మానవీయంగా నమోదు చేయండి.", "None": "ఏదీ లేదు", - "NoCreatedLibraries": "మీరు ఇంకా లైబ్రరీలను సృష్టించలేదనిపిస్తుంది. {0 now మీరు ఇప్పుడు ఒకదాన్ని సృష్టించాలనుకుంటున్నారా? {1}", + "NoCreatedLibraries": "మీరు ఇంకా లైబ్రరీలను సృష్టించలేదనిపిస్తుంది. {0} మీరు ఇప్పుడు ఒకదాన్ని సృష్టించాలనుకుంటున్నారా? {1}", "No": "లేదు", "NextUp": "నెక్స్ట్ అప్", "NextTrack": "తదుపరి దాటవేయి", @@ -804,7 +804,7 @@ "MoveLeft": "ఎడమవైపుకి తరలించండి", "MoreUsersCanBeAddedLater": "డాష్‌బోర్డ్‌లోనే ఎక్కువ మంది వినియోగదారులను తరువాత చేర్చవచ్చు.", "MoreMediaInfo": "మీడియా సమాచారం", - "MoreFromValue": "{0 From నుండి మరిన్ని", + "MoreFromValue": "{0} నుండి మరిన్ని", "Monday": "సోమవారం", "Mobile": "మొబైల్", "MinutesBefore": "నిమిషాల ముందు", @@ -896,8 +896,8 @@ "HeaderUploadImage": "చిత్రాన్ని అప్‌లోడ్ చేయండి", "HeaderUpcomingOnTV": "టీవీలో రాబోతోంది", "HeaderOnNow": "ఆన్ నౌ", - "HeaderNextVideoPlayingInValue": "తదుపరి వీడియో {0 in లో ప్లే అవుతోంది", - "HeaderNextEpisodePlayingInValue": "తదుపరి ఎపిసోడ్ {0 in లో ప్లే అవుతోంది", + "HeaderNextVideoPlayingInValue": "తదుపరి వీడియో {0} లో ప్లే అవుతోంది", + "HeaderNextEpisodePlayingInValue": "తదుపరి ఎపిసోడ్ {0} లో ప్లే అవుతోంది", "HeaderNewRepository": "క్రొత్త రిపోజిటరీ", "HeaderNewDevices": "క్రొత్త పరికరాలు", "HeaderNewApiKey": "క్రొత్త API కీ", @@ -1057,7 +1057,7 @@ "LabelSelectFolderGroups": "కింది ఫోల్డర్‌ల నుండి చలనచిత్రాలు, సంగీతం మరియు టీవీ వంటి వీక్షణల్లోకి కంటెంట్‌ను స్వయంచాలకంగా సమూహపరచండి", "LabelSeasonNumber": "సీజన్ సంఖ్య", "LabelScreensaver": "స్క్రీన్సేవర్", - "LabelScheduledTaskLastRan": "చివరిది {0 ran, {1 taking తీసుకుంది.", + "LabelScheduledTaskLastRan": "చివరిగా {0} న నడిచింది, {1} సమయం పట్టింది.", "LabelSaveLocalMetadataHelp": "కళాకృతిని మీడియా ఫోల్డర్‌లలో భద్రపరచడం వలన వాటిని సులభంగా సవరించగలిగే ప్రదేశంలో ఉంచుతారు.", "LabelSaveLocalMetadata": "కళాకృతిని మీడియా ఫోల్డర్‌లలో సేవ్ చేయండి", "LabelRuntimeMinutes": "రన్‌టైమ్", @@ -1213,7 +1213,7 @@ "ErrorAddingListingsToSchedulesDirect": "మీ షెడ్యూల్ డైరెక్ట్ ఖాతాకు లైనప్‌ను జోడించడంలో లోపం ఉంది. షెడ్యూల్ డైరెక్ట్ ఖాతాకు పరిమిత సంఖ్యలో లైనప్‌లను మాత్రమే అనుమతిస్తుంది. మీరు షెడ్యూల్ డైరెక్ట్ వెబ్‌సైట్‌లోకి లాగిన్ అవ్వాలి మరియు కొనసాగడానికి ముందు మీ ఖాతా నుండి ఇతరుల జాబితాలను తొలగించాలి.", "Episodes": "ఎపిసోడ్లు", "Episode": "ఎపిసోడ్", - "EndsAtValue": "{0 at వద్ద ముగుస్తుంది", + "EndsAtValue": "{0} వద్ద ముగుస్తుంది", "Ended": "ముగిసింది", "EncoderPresetHelp": "పనితీరును మెరుగుపరచడానికి వేగవంతమైన విలువను లేదా నాణ్యతను మెరుగుపరచడానికి నెమ్మదిగా విలువను ఎంచుకోండి.", "EnableTonemapping": "టోన్ మ్యాపింగ్‌ను ప్రారంభించండి", @@ -1241,7 +1241,7 @@ "EnableBlurHashHelp": "ఇప్పటికీ లోడ్ అవుతున్న చిత్రాలు ప్రత్యేకమైన ప్లేస్‌హోల్డర్‌తో ప్రదర్శించబడతాయి.", "EnableBlurHash": "చిత్రాల కోసం అస్పష్టమైన ప్లేస్‌హోల్డర్‌లను ప్రారంభించండి", "EnableBackdropsHelp": "లైబ్రరీని బ్రౌజ్ చేస్తున్నప్పుడు కొన్ని పేజీల నేపథ్యంలో బ్యాక్‌డ్రాప్‌లను ప్రదర్శించండి.", - "EnableAutoCast": "ఎధావిధిగా ఉంచు", + "EnableAutoCast": "డిఫాల్ట్‌గా సెట్ చేయండి", "EditSubtitles": "ఉపశీర్షికలను సవరించండి", "EditMetadata": "మెటాడేటాను సవరించండి", "EditImages": "చిత్రాలను సవరించండి", @@ -1293,7 +1293,7 @@ "DashboardServerName": "సర్వర్: {0}", "DashboardOperatingSystem": "ఆపరేటింగ్ సిస్టమ్: {0}", "DashboardArchitecture": "ఆర్కిటెక్చర్: {0}", - "DailyAt": "రోజువారీ {0 at వద్ద", + "DailyAt": "ప్రతిరోజూ {0}కి", "CustomDlnaProfilesHelp": "క్రొత్త పరికరాన్ని లక్ష్యంగా చేసుకోవడానికి లేదా సిస్టమ్ ప్రొఫైల్‌ను భర్తీ చేయడానికి అనుకూల ప్రొఫైల్‌ను సృష్టించండి.", "CriticRating": "విమర్శకుల రేటింగ్", "CopyStreamURLSuccess": "URL విజయవంతంగా కాపీ చేయబడింది.", @@ -1301,7 +1301,7 @@ "Continuing": "కొనసాగుతోంది", "ContinueWatching": "చూడటం కొనసాగించండి", "Connect": "కనెక్ట్ చేయండి", - "ConfirmEndPlayerSession": "మీరు జెల్లీఫిన్‌ను {0 on లో షట్డౌన్ చేయాలనుకుంటున్నారా?", + "ConfirmEndPlayerSession": "మీరు జెల్లీఫిన్‌ను {0} లో షట్డౌన్ చేయాలనుకుంటున్నారా?", "ConfirmDeletion": "తొలగింపును నిర్ధారించండి", "ConfirmDeleteItems": "ఈ అంశాలను తొలగించడం వలన ఫైల్ సిస్టమ్ మరియు మీ మీడియా లైబ్రరీ రెండింటి నుండి తొలగించబడతాయి. మీరు ఖచ్చితంగా కొనసాగాలని అనుకుంటున్నారా?", "ConfirmDeleteItem": "ఈ అంశాన్ని తొలగిస్తే అది ఫైల్ సిస్టమ్ మరియు మీ మీడియా లైబ్రరీ రెండింటి నుండి తొలగించబడుతుంది. మీరు ఖచ్చితంగా కొనసాగాలని అనుకుంటున్నారా?", @@ -1478,7 +1478,7 @@ "AnyLanguage": "ఏదైనా భాష", "AlwaysPlaySubtitlesHelp": "భాష ప్రాధాన్యతతో సరిపోయే ఉపశీర్షికలు ఆడియో భాషతో సంబంధం లేకుండా లోడ్ చేయబడతాయి.", "AlwaysPlaySubtitles": "ఎల్లప్పుడూ ప్లే చేయండి", - "AllowTonemappingHelp": "టోన్ మ్యాపింగ్ చిత్రం యొక్క వివరాలను మరియు రంగులను కొనసాగిస్తూ వీడియో యొక్క డైనమిక్ పరిధిని HDR నుండి SDR కి మార్చగలదు, ఇవి అసలు సన్నివేశాన్ని సూచించడానికి చాలా ముఖ్యమైన సమాచారం. ఎంబెడెడ్ HDR10 లేదా HLG మెటాడేటాతో వీడియోలను ట్రాన్స్కోడింగ్ చేసేటప్పుడు మాత్రమే ప్రస్తుతం పనిచేస్తుంది. ప్లేబ్యాక్ సున్నితంగా లేదా విఫలమైతే, దయచేసి సంబంధిత హార్డ్‌వేర్ డీకోడర్‌ను ఆపివేయండి.", + "AllowTonemappingHelp": "టోన్-మ్యాపింగ్ అనేది వీడియో యొక్క డైనమిక్ పరిధిని HDR నుండి SDRకి మార్చగలదు, అయితే చిత్ర వివరాలు మరియు రంగులను భద్రపరుస్తుంది, ఇవి అసలు దృశ్యాన్ని ప్రదర్శించడానికి చాలా ముఖ్యమైన సమాచారం. ప్రస్తుతం 10bit HDR10, HLG మరియు DoVi వీడియోలతో మాత్రమే పని చేస్తుంది. దీనికి సంబంధిత OpenCL లేదా CUDA రన్‌టైమ్ అవసరం.", "AllowRemoteAccessHelp": "తనిఖీ చేయకపోతే, అన్ని రిమోట్ కనెక్షన్లు బ్లాక్ చేయబడతాయి.", "AllowRemoteAccess": "ఈ సర్వర్‌కు రిమోట్ కనెక్షన్‌లను అనుమతించండి", "AllowOnTheFlySubtitleExtractionHelp": "వీడియో ట్రాన్స్‌కోడింగ్‌ను నిరోధించడంలో సహాయపడటానికి, పొందుపరిచిన ఉపశీర్షికలను వీడియోల నుండి సంగ్రహించి, ఖాతాదారులకు సాదా వచనంలో పంపవచ్చు. కొన్ని సిస్టమ్‌లలో ఇది చాలా సమయం పడుతుంది మరియు వెలికితీత ప్రక్రియలో వీడియో ప్లేబ్యాక్ నిలిచిపోతుంది. క్లయింట్ పరికరం స్థానికంగా మద్దతు ఇవ్వనప్పుడు పొందుపరిచిన ఉపశీర్షికలను వీడియో ట్రాన్స్‌కోడింగ్‌తో కాల్చడానికి దీన్ని నిలిపివేయండి.", @@ -1503,5 +1503,9 @@ "TypeOptionPluralMovie": "సినిమాలు", "TypeOptionPluralBook": "పుస్తకాలు", "AgeValue": "({0} ఏళ్ళ వయసు)", - "AddToFavorites": "ఇష్టమైన వాటికి జోడించండి" + "AddToFavorites": "ఇష్టమైన వాటికి జోడించండి", + "Engineer": "ధ్వని నిపుణుడు", + "DisableCustomCss": "సర్వర్ అందించిన అనుకూల CSS కోడ్‌ని నిలిపివేయండి", + "LabelAutomaticallyAddToCollectionHelp": "రెండు సినిమాలు ఒకే కలెక్షన్ పేరు ఉన్నాయంటే, ఆటోమేటిక్‌గా ఆ కలెక్షన్‌లోకి వెళ్ళిపోతాయి.", + "LabelDisableCustomCss": "సర్వర్ నుండి అందించబడిన థీమింగ్/బ్రాండింగ్ కోసం అనుకూల CSS కోడ్‌ను నిలిపివేయండి." } diff --git a/src/strings/tr.json b/src/strings/tr.json index 7e5f60099..ecbf42efd 100644 --- a/src/strings/tr.json +++ b/src/strings/tr.json @@ -1618,7 +1618,7 @@ "ContainerNotSupported": "Kapsayıcı desteklenmiyor", "EnableVppTonemapping": "VPP Ton eşlemesini etkinleştir", "EnableEnhancedNvdecDecoder": "Gelişmiş NVDEC kod çözücüyü etkinleştir", - "PreferFmp4HlsContainerHelp": "HLS için varsayılan kapsayıcı olarak fMP4'ü kullanmayı tercih etmek, HEVC içeriğini destekleyen cihazlara doğrudan akışı mümkün kılar.", + "PreferFmp4HlsContainerHelp": "HLS için varsayılan kapsayıcı olarak fMP4'ü kullanmayı tercih etmek, HEVC ve AV1 içeriğini destekleyen cihazlara doğrudan akışı mümkün kılar.", "PreferFmp4HlsContainer": "fMP4-HLS Medya Kapsayıcısını tercih edin", "LabelSyncPlayInfo": "SyncPlay Bilgisi", "LabelOriginalMediaInfo": "Orijinal Medya Bilgisi", diff --git a/src/strings/uk.json b/src/strings/uk.json index f4a7582ee..4939c04e0 100644 --- a/src/strings/uk.json +++ b/src/strings/uk.json @@ -362,7 +362,7 @@ "LabelCachePathHelp": "Вкажіть власне місце розташування файлів кешу, таких як зображення. Залиште порожнім, щоб використовувати замовчування серверу.", "LabelCachePath": "Шлях кешу", "LabelCache": "Кеш", - "LabelBlockContentWithTags": "Блокувати елементи з тегамі", + "LabelBlockContentWithTags": "Блокувати елементи з тегами", "LabelBitrate": "Бітрейт", "LabelBindToLocalNetworkAddress": "Прив'язати до локальної адреси", "LabelBaseUrl": "Базовий URL", @@ -638,7 +638,7 @@ "HeaderProfileServerSettingsHelp": "Ці значення контролюють те, як сервер представлятиме себе клієнтам.", "YoutubeDenied": "Запитане відео не можна відтворювати на вбудованих програвачах.", "AllowHevcEncoding": "Дозволити кодування у форматі HEVC", - "PreferFmp4HlsContainerHelp": "Віддавайте перевагу використанню fMP4 як контейнера за умовчанням для HLS, що дає змогу направляти потоковий вміст HEVC на підтримувані пристрої.", + "PreferFmp4HlsContainerHelp": "Віддавати перевагу використанню fMP4 як контейнера за замовчуванням для HLS, що дає змогу напряму передавати вміст HEVC та AV1 на підтримувані пристрої.", "RemuxHelp1": "Носій даних знаходиться у несумісному контейнері файлів (MKV, AVI, WMV тощо), але і відеопотік, і аудіопотік сумісні з пристроєм. Носії будуть перепаковані без втрат на льоту перед надсиланням на пристрій.", "LabelFallbackFontPathHelp": "Ці шрифти використовуються деякими клієнтами для відтворення субтитрів. Будь ласка, зверніться до документації для отримання додаткової інформації.", "XmlTvPathHelp": "Шлях до файлу XMLTV. Jellyfin прочитає цей файл і періодично перевірятиме його на наявність оновлень. Ви несете відповідальність за створення та оновлення файлу.", diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json index e363c5c53..254d4d20b 100644 --- a/src/strings/zh-cn.json +++ b/src/strings/zh-cn.json @@ -1450,7 +1450,7 @@ "LabelOriginalMediaInfo": "媒体源信息", "LabelSyncPlayInfo": "同步播放信息", "PreferFmp4HlsContainer": "优先使用 fMP4-HLS 媒体容器", - "PreferFmp4HlsContainerHelp": "优先使用 fMP4 作为 HLS 播放的默认容器,从而可以在支持的设备上直接串流 HEVC 格式的内容。", + "PreferFmp4HlsContainerHelp": "优先使用 fMP4 作为 HLS 播放的默认容器,从而可以在支持的设备上直接串流 HEVC 和 AV1 格式的内容。", "AllowHevcEncoding": "允许以 HEVC 格式编码", "LabelAllowedAudioChannels": "允许的最大声道数量", "LabelSelectAudioChannels": "声道", diff --git a/src/strings/zh-hk.json b/src/strings/zh-hk.json index 9e75a724f..61dc6f0c4 100644 --- a/src/strings/zh-hk.json +++ b/src/strings/zh-hk.json @@ -16,8 +16,8 @@ "ChannelAccessHelp": "選擇與此用戶共享的頻道。管理員可以透過元數據管理員編輯所有頻道的資料。", "Continuing": "繼續", "CustomDlnaProfilesHelp": "為新的設備建立新的設定檔或覆蓋系統的設定。", - "Delete": "删除", - "DeviceAccessHelp": "只適用於能夠被獨立識別的裝置(獨一無二),而且並不能阻擋透過瀏覽器的連接。用戶的新裝置在得到批准前將不能夠連接及使用。", + "Delete": "刪除", + "DeviceAccessHelp": "只適用於能夠被獨立識別的裝置,而且不能阻擋透過瀏覽器的連接。用戶的新裝置需要得到批准後才能使用。", "Edit": "編輯", "EditSubtitles": "編輯字幕", "Ended": "已完結", @@ -319,7 +319,7 @@ "ChannelNumber": "頻道號碼", "ChannelNameOnly": "只有頻道 {0}", "Categories": "分類", - "CancelSeries": "取消系列", + "CancelSeries": "取消劇集系列", "CancelRecording": "取消錄影", "ButtonWebsite": "網站", "ButtonUninstall": "解除安裝", @@ -335,7 +335,7 @@ "ButtonResume": "繼續", "ButtonResetEasyPassword": "重設簡易 PIN 碼", "ButtonPause": "暫停", - "ButtonParentalControl": "家長監控功能", + "ButtonParentalControl": "家長監控", "ButtonOpen": "開啟", "ButtonNetwork": "網絡", "ButtonMore": "更多", @@ -343,7 +343,7 @@ "ButtonGotIt": "了解", "ButtonFullscreen": "全螢幕", "ButtonForgotPassword": "忘記密碼", - "ButtonEditOtherUserPreferences": "更改用戶個人檔案,圖像及個人偏好設定。", + "ButtonEditOtherUserPreferences": "更改用戶的個人檔案、圖像及偏好設定。", "ButtonChangeServer": "更換伺服器", "ButtonBack": "返回", "ButtonAudioTracks": "音軌", @@ -378,14 +378,14 @@ "ColorSpace": "色彩空間", "ColorPrimaries": "主色調", "CinemaModeConfigurationHelp": "戲院模式會在播放正片前播放預告片及自定的開場片段,帶來戲院式體驗。", - "ChangingMetadataImageSettingsNewContent": "所有對元數據或圖像設定的修改只會套用至之後新增的內容。如果需要套用至現有內容,請自行重新載入相關的元數據。", + "ChangingMetadataImageSettingsNewContent": "對元數據或圖像設定的修改只會套用至之後新增的內容。如果需要套用至現有內容,需重新載入相關的元數據。", "ButtonSelectView": "選擇顯示方式", "ButtonLibraryAccess": "媒體庫存取", "BookLibraryHelp": "支援文字及有聲書。請參考{1}了解{0}書的名命方法。", "DatePlayed": "播放日期", "CriticRating": "影評人評分", "ConfirmDeletion": "確定刪除", - "ConfirmDeleteItems": "刪除這些物品將會從檔案系統及媒體庫中刪除。請問是否繼續?", + "ConfirmDeleteItems": "與這些項目相關的檔案及資料將會從媒體庫及電腦中刪除。請問是否繼續?", "ConfirmDeleteItem": "與此項目相關的檔案及資料將會從媒體庫及電腦中刪除。請問是否繼續?", "EnableCinemaMode": "戲院模式", "EnableAutoCast": "設為預設", @@ -424,20 +424,20 @@ "EnableQuickConnect": "啟用 Quick Connect", "EnablePhotosHelp": "圖片將會與其他媒體檔案一起顯示。", "EnablePhotos": "顯示圖片", - "EnableNextVideoInfoOverlayHelp": "在影片結束時,顯示下一條在目前的播放清單中的影片的資訊。", + "EnableNextVideoInfoOverlayHelp": "在影片快將結束時,顯示播放清單下一條影片的資訊。", "EnableNextVideoInfoOverlay": "顯示下一條影片的資訊", "EnableHardwareEncoding": "啟用硬件編碼", "EnableFasterAnimationsHelp": "加快動畫及過渡效果的顯示速度。", "EnableFasterAnimations": "更快的動畫效果", "EnableExternalVideoPlayersHelp": "當你開始播放影片時,將會顯示外部播放器選單。", "EnableExternalVideoPlayers": "外部影片播放器", - "EnableDisplayMirroring": "螢幕鏡射", + "EnableDisplayMirroring": "鏡像顯示", "EnableDetailsBannerHelp": "在項目詳細資訊頁面的頂部顯示橫額。", "EnableDetailsBanner": "詳情橫幅", "EnableDecodingColorDepth10Vp9": "啟用 VP9 10-bit 硬件解碼", "EnableDecodingColorDepth10Hevc": "啟用 HEVC 10-bit 硬件解碼", "EnableColorCodedBackgrounds": "色彩背景", - "EnableBlurHashHelp": "在圖片被完全載入前,先以模糊化的版本顯示。", + "EnableBlurHashHelp": "在圖片下載完成前,利用已下載的數據製作模糊縮圖並顯示。", "EnableBlurHash": "啟用圖片模糊載入(BlurHash)", "EnableBackdropsHelp": "瀏覽媒體庫時以「背景圖」作為頁面的背景。", "EditMetadata": "編輯元數據", @@ -453,14 +453,14 @@ "DisableCustomCss": "停用伺服器提供的 CSS", "DisablePlugin": "停用", "EnablePlugin": "啟用", - "DirectStreamHelp2": "直接串流的耗電量一般是取決於音訊的質素。只有影片串流是無損的。", - "DirectStreamHelp1": "此裝置雖然支援影片的格式,但不支援音訊的格式(DTS、Dolby TrueHD 等)或音軌的數量。 音訊數據將會在轉碼後與原始的視訊組合,再傳送至裝置。", - "DirectPlayHelp": "媒體檔案相容於此裝置,正在接收原始檔案。", + "DirectStreamHelp2": "因為只有音訊需要處理,所以耗電量一般是取決於音訊質素。", + "DirectStreamHelp1": "此裝置雖然支援播放影片的格式,但不支援播放其音訊(DTS、Dolby TrueHD 等)或音軌的數量。 音訊將會在轉碼後與視訊組合,再傳送至裝置。", + "DirectPlayHelp": "裝置支援直接播放檔案。", "Depressed": "鬱悶", "DeleteDevicesConfirmation": "您確定要刪除所有裝置嗎?所有裝置將會被登出,亦會在用戶登入後重新出現。", "DeleteDeviceConfirmation": "您確定要刪除此裝置嗎?下次用戶使用它登入時,它將重新出現。", - "DeinterlaceMethodHelp": "選擇使用軟解/軟件轉碼時對使用「隔行掃描」的內容使用的去交錯方法。當支援硬件去交錯的硬件加速被啟用時,將優先使用硬件去交錯器。", - "DefaultSubtitlesHelp": "根據內置元數據中,「預設(Default)」和「強制(Forced)」標記(Flag)來決定應該使用的字幕。如果存在多個選項,則會考慮您的語言偏好設定。", + "DeinterlaceMethodHelp": "選擇軟件轉碼「隔行掃描」影片使用的去交錯方法。有支援去交錯硬件被啟用時,將優先使用硬件去交錯器。", + "DefaultSubtitlesHelp": "根據內置元數據中,「預設(Default)」和「強制(Forced)」標記來決定應該使用的字幕。如果存在多個選項,則會考慮您的語言偏好設定。", "DefaultMetadataLangaugeDescription": "設定中繼資料的預設設定。你可以在不同的媒體庫中單獨修改其設定。", "DeathDateValue": "死於:{0}", "DashboardServerName": "伺服器名稱:{0}", @@ -832,7 +832,7 @@ "HeaderMyDevice": "我的裝置", "HeaderMusicQuality": "音質", "HeaderMoreLikeThis": "更多類似的", - "HeaderMetadataSettings": "中繼資料設定", + "HeaderMetadataSettings": "元數據設定", "HeaderMedia": "媒體", "HeaderLoginFailure": "登入失敗", "HeaderLiveTvTunerSetup": "電視調解器安裝", @@ -843,7 +843,7 @@ "HeaderLibraries": "媒體庫", "HeaderLatestMusic": "新增的音樂", "HeaderLatestMedia": "新增的媒體", - "HeaderKodiMetadataHelp": "要啟用或停用 NFO 中繼資料,請在設定中的「建立媒體庫」頁面中編輯「中繼資料儲存」部分。", + "HeaderKodiMetadataHelp": "要啟用或停用 NFO 元數據,請在設定中的「建立媒體庫」頁面中編輯「元數據儲存」部分。", "HeaderKeepSeries": "保留系列", "HeaderKeepRecording": "繼續錄影", "HeaderInstantMix": "即時混播", @@ -851,7 +851,7 @@ "HeaderImageOptions": "圖片選項", "HeaderIdentifyItemHelp": "輸入一個或多個搜索條件。刪除條件可得到更多搜索結果。", "HeaderIdentificationHeader": "身份識別標頭", - "HeaderIdentificationCriteriaHelp": "至少輸入一個識別標準。", + "HeaderIdentificationCriteriaHelp": "至少輸入一個識別準則。", "HeaderIdentification": "身份識別", "HeaderHttpsSettings": "HTTPS 設定", "HeaderHttpHeaders": "HTTP 標頭", @@ -1001,9 +1001,9 @@ "HeaderAutoDiscovery": "網路探索", "HeaderAudioSettings": "音訊設定", "HeaderAudioBooks": "有聲書", - "HeaderAppearsOn": "出現於", + "HeaderAppearsOn": "出現在", "HeaderApp": "應用程式", - "HeaderApiKeysHelp": "第三方應用程式需要API 金鑰才能連接伺服器。金鑰會在用戶登入時自動產生,亦可以手動建立一個金鑰。", + "HeaderApiKeysHelp": "第三方應用程式需要 API 金鑰才能連接伺服器。金鑰會在用戶登入時自動產生,亦可以手動建立一個金鑰。", "HeaderApiKeys": "API 金鑰", "HeaderApiKey": "API 金鑰", "HeaderAllowMediaDeletionFrom": "允許刪除媒體", @@ -1014,36 +1014,36 @@ "HeaderAddUpdateImage": "新增/更新圖片", "HeaderAddToPlaylist": "加至播放清單", "HeaderActivity": "活動", - "HeaderAccessScheduleHelp": "建立一個使用時間表以限制用戶可以使用的時段。", + "HeaderAccessScheduleHelp": "建立使用時間表,用於限制用戶可以使用的時段。", "HeaderAccessSchedule": "使用時間表", "HardwareAccelerationWarning": "啟用硬體加速可能會導致系統變得不穩定。請確保作業系統和驅動程式已被更新至最新版本。如果啟用此功能後出現播放問題,請將硬體加速的選項設定為「無」以停用功能。", - "HDPrograms": "HD 節目", - "H264CrfHelp": "恒定速率因子(CRF)是 x264 和 x265 的預設編碼質素設定值。 其值可設定在0至51之間,數值越低質素越好(檔案大小越大)。 推薦值為18到28之間。而 x264 的預設值為23,x265 的預設值為28。", + "HDPrograms": "高清節目", + "H264CrfHelp": "恒定位元係數(CRF)是 x264 和 x265 編碼器的預設編碼率設定。其值可設定在0至51之間,數值越低畫質越好,檔案大小越大。x264 及 x265 的預設值分別為23及28,並建議設定在18至28之間。", "GuideProviderSelectListings": "選擇清單", "GuideProviderLogin": "登入", "Guide": "指南", - "GuestStar": "客串", + "GuestStar": "客串演員", "GroupVersions": "按版本分組", - "GroupBySeries": "按系列分組", + "GroupBySeries": "按劇集分組", "Genre": "風格", "General": "一般", "Fullscreen": "全螢幕", - "Framerate": "幀數", - "FormatValue": "格式: {0}", - "Filters": "濾鏡", - "Filter": "篩選器", - "FileReadError": "在讀取檔案時發生錯誤。", - "FileReadCancelled": "檔案讀取已取消。", + "Framerate": "幀率", + "FormatValue": "格式:{0}", + "Filters": "篩選", + "Filter": "篩選", + "FileReadError": "讀取檔案時發生錯誤。", + "FileReadCancelled": "已取消讀取檔案。", "FileNotFound": "未找到檔案。", "File": "檔案", "FFmpegSavePathNotFound": "我們無法從輸入的路徑中找到 FFmpeg。 FFprobe 同樣是必要且應該被放在同一個資料夾中。他們通常會被打包在一起以供下載。請檢查輸入的路徑後重試。", - "FetchingData": "獲取額外資料", + "FetchingData": "獲取額外資料中", "Features": "功能", "Favorite": "我的最愛", - "FastForward": "快轉", + "FastForward": "快進", "Extras": "額外", "ExtraLarge": "特大", - "ExtractChapterImagesHelp": "擷取章節圖片將允許 Jellyfin 顯示圖片形式顯示章節選單。但擷取工作可能會非常緩慢、佔用大量系統資源,並且可能需要幾 GB 的儲存空間。擷取工作會在影片被偵測到時或每晚自動執行。您以在「工作排程器」中設定。不建議在使用高峰時間執行這個工作。", + "ExtractChapterImagesHelp": "擷取章節圖片使 Jellyfin 可以以圖片顯示章節選單。但擷取工作可能會非常緩慢並佔用大量系統資源,並且可能需要幾 GB 的儲存空間。擷取工作會在影片被偵測到時或每晚自動執行。您以在「工作排程器」中設定。不建議在使用高峰時間執行這個工作。", "MusicVideos": "MV", "AgeValue": "({0}歲)", "MediaInfoLanguage": "語言", @@ -1087,8 +1087,8 @@ "LabelMaxDaysForNextUp": "在「按下來」中顯示日數上限", "ItemDetails": "項目詳細資料", "GoogleCastUnsupported": "不支援 Google Cast", - "EnableRewatchingNextUp": "允許「接下來」顯示重看的影片", - "EnableRewatchingNextUpHelp": "允許在「接下來」的分區中顯示已在之前看過的集數。", + "EnableRewatchingNextUp": "在「接下來」顯示重看影片", + "EnableRewatchingNextUpHelp": "允許在「接下來」分區顯示已經看過的集數。", "Conductor": "指揮", "Casual": "隨意", "LabelSyncPlaySettingsDescription": "更改 SyncPlay 設定", @@ -1164,5 +1164,12 @@ "LabelThrottleDelaySeconds": "轉碼限速時間", "LabelThrottleDelaySecondsHelp": "轉碼限速器啟動時間(秒)。為確保客戶端能夠取得足夠的緩衝,啟動時間越長越好。只有在轉碼限速啟用時生效。", "LabelSegmentKeepSeconds": "轉碼暫存檔保存時間", - "LabelSegmentKeepSecondsHelp": "轉碼暫存檔保存時間(秒)。必須大於「 轉碼限速時間 」。只有在轉碼限速啟用時生效。" + "LabelSegmentKeepSecondsHelp": "轉碼暫存檔保存時間(秒)。必須大於「 轉碼限速時間 」。只有在轉碼限速啟用時生效。", + "LabelIsHearingImpaired": "聽障人士使用的字幕(SDH)", + "GetThePlugin": "取得插件", + "HeaderGuestCast": "客串演員", + "GoHome": "主頁", + "HeaderEpisodesStatus": "劇集狀態", + "GridView": "方格檢視", + "HeaderConfirmRepositoryInstallation": "確認加入插件資源庫" } diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json index 38ec5c61d..b1cbb2990 100644 --- a/src/strings/zh-tw.json +++ b/src/strings/zh-tw.json @@ -1445,7 +1445,7 @@ "LabelDropSubtitleHere": "將字幕檔丟到這裡,或點擊瀏覽。", "LabelAllowedAudioChannels": "最大聲道允許數", "AllowHevcEncoding": "允許以 HEVC 格式編碼", - "PreferFmp4HlsContainerHelp": "偏好使用 fMP4 as the default container for HLS, making it possible to direct stream HEVC content on supported devices.", + "PreferFmp4HlsContainerHelp": "優先使用 fMP4 作為 HLS 的默認容器,以便在支援的設備上直接串流 HEVC 和 AV1 內容。", "PreferFmp4HlsContainer": "偏好 fMP4-HLS Media Container", "RemuxHelp2": "Remux使用最低的處理能力,達到完全無損的媒體品質。", "RemuxHelp1": "不兼容的影片格式(MKV、AVI、WMV等),但影像串流和聲音串流都與設備兼容。在發送到設備之前,影片將被無損地重新打包。", diff --git a/src/utils/card.ts b/src/utils/card.ts index c3f047a79..bdb68e724 100644 --- a/src/utils/card.ts +++ b/src/utils/card.ts @@ -1,6 +1,7 @@ -enum CardShape { +export enum CardShape { Backdrop = 'backdrop', BackdropOverflow = 'overflowBackdrop', + Banner = 'banner', Portrait = 'portrait', PortraitOverflow = 'overflowPortrait', Square = 'square', diff --git a/src/utils/string.test.ts b/src/utils/string.test.ts new file mode 100644 index 000000000..ba1c686ed --- /dev/null +++ b/src/utils/string.test.ts @@ -0,0 +1,42 @@ +import { describe, expect, it } from 'vitest'; + +import { toBoolean, toFloat } from './string'; + +describe('toBoolean', () => { + it('Should return the boolean represented by the string', () => { + let bool = toBoolean('true'); + expect(bool).toBe(true); + + bool = toBoolean('false', true); + expect(bool).toBe(false); + }); + + it('Should return default value for invalid values', () => { + let bool = toBoolean('test'); + expect(bool).toBe(false); + + bool = toBoolean(undefined); + expect(bool).toBe(false); + + bool = toBoolean(null, true); + expect(bool).toBe(true); + }); +}); + +describe('toFloat()', () => { + it('Should return a float', () => { + const number = toFloat('3.14159'); + expect(number).toBe(3.14159); + }); + + it('Should return default value for NaN', () => { + let number = toFloat('test'); + expect(number).toBe(0); + + number = toFloat(undefined); + expect(number).toBe(0); + + number = toFloat(null, -1); + expect(number).toBe(-1); + }); +}); diff --git a/src/utils/string.ts b/src/utils/string.ts index 301f4c44a..fff42b95a 100644 --- a/src/utils/string.ts +++ b/src/utils/string.ts @@ -19,9 +19,10 @@ export function toBoolean(value: string | undefined | null, defaultValue = false * @returns {number} The value. */ export function toFloat(value: string | null | undefined, defaultValue = 0) { - if (!value || isNaN(value as never)) { - return defaultValue; - } else { - return parseFloat(value); - } + if (!value) return defaultValue; + + const number = parseFloat(value); + if (isNaN(number)) return defaultValue; + + return number; }