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

Merge branch 'master' into lyrics-auto-scroll

This commit is contained in:
scampower3 2024-05-23 00:41:52 +08:00 committed by GitHub
commit dd5b442b50
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 3342 additions and 2113 deletions

View file

@ -46,30 +46,3 @@ jobs:
name: jellyfin-web__prod
path: |
dist
pr_context:
name: Save PR context as artifact
if: ${{ always() && !cancelled() && github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
needs:
- run-build-prod
steps:
- name: Save PR context
env:
PR_BRANCH: ${{ github.ref_name }}
PR_NUMBER: ${{ github.event.number }}
PR_SHA: ${{ github.event.pull_request.head.sha }}
run: |
echo $PR_BRANCH > PR_branch
echo $PR_NUMBER > PR_number
echo $PR_SHA > PR_sha
- name: Upload PR number as artifact
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: PR_context
path: |
PR_branch
PR_number
PR_sha

View file

@ -22,13 +22,13 @@ jobs:
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
- name: Initialize CodeQL
uses: github/codeql-action/init@b7cec7526559c32f1616476ff32d17ba4c59b2d6 # v3.25.5
uses: github/codeql-action/init@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6
with:
languages: javascript
queries: +security-extended
- name: Autobuild
uses: github/codeql-action/autobuild@b7cec7526559c32f1616476ff32d17ba4c59b2d6 # v3.25.5
uses: github/codeql-action/autobuild@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@b7cec7526559c32f1616476ff32d17ba4c59b2d6 # v3.25.5
uses: github/codeql-action/analyze@9fdb3e49720b44c48891d036bb502feb25684276 # v3.25.6

View file

@ -33,6 +33,6 @@ jobs:
- name: Run eslint
if: ${{ github.repository == 'jellyfin/jellyfin-web' }}
uses: CatChen/eslint-suggestion-action@34e2a6c4193eba18a7a20710b5ae37850fc984c3 # v3.1.5
uses: CatChen/eslint-suggestion-action@b110ac684564c7b73e47cc223eb7a5266ec83fd3 # v4.1.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -8,42 +8,26 @@ on:
- completed
jobs:
pr-context:
name: PR context
if: ${{ github.event.workflow_run.event == 'pull_request' }}
runs-on: ubuntu-latest
outputs:
branch: ${{ env.pr_branch }}
commit: ${{ env.pr_sha }}
pr_number: ${{ env.pr_number }}
steps:
- name: Get PR context
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3.1.4
id: pr_context
with:
run_id: ${{ github.event.workflow_run.id }}
name: PR_context
- name: Set PR context environment variables
if: ${{ steps.pr_context.conclusion == 'success' }}
run: |
echo "pr_branch=$(cat PR_branch)" >> $GITHUB_ENV
echo "pr_number=$(cat PR_number)" >> $GITHUB_ENV
echo "pr_sha=$(cat PR_sha)" >> $GITHUB_ENV
publish:
permissions:
contents: read
deployments: write
name: Deploy to Cloudflare Pages
if: ${{ always() }}
runs-on: ubuntu-latest
needs:
- pr-context
permissions:
contents: read
deployments: write
# We set the environment variable here (and as an output) because,
# given no real runner is dispatched in compose-comment job (it's dispatched in the reusable workflow) in this workflow definition,
# the env. context is not valid.
env:
TARGET_BRANCH: |
${{
github.event.workflow_run.head_repository.full_name == github.repository
&& github.event.workflow_run.head_branch
|| format('{0}/{1}', github.event.workflow_run.head_repository.full_name, github.event.workflow_run.head_branch)
}}
outputs:
url: ${{ steps.cf.outputs.url }}
branch: ${{ env.TARGET_BRANCH }}
steps:
- name: Download workflow artifact
@ -60,7 +44,7 @@ jobs:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: jellyfin-web
branch: ${{ needs.pr-context.outputs.branch || github.ref_name }}
branch: ${{ env.TARGET_BRANCH }}
directory: dist
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
@ -70,11 +54,10 @@ jobs:
uses: ./.github/workflows/job-messages.yml
needs:
- publish
- pr-context
with:
branch: ${{ needs.pr-context.outputs.branch || github.ref_name }}
commit: ${{ needs.pr-context.outputs.commit != '' && needs.pr-context.outputs.commit || github.event.workflow_run.head_sha }}
branch: ${{ needs.publish.outputs.branch }}
commit: ${{ github.event.workflow_run.head_commit.id }}
preview_url: ${{ needs.publish.outputs.url }}
build_workflow_run_id: ${{ github.event.workflow_run.id }}
commenting_workflow_run_id: ${{ github.run_id }}
@ -85,11 +68,10 @@ jobs:
if: |
always() &&
github.event.workflow_run.event == 'pull_request' &&
needs.pr-context.outputs.pr_number != ''
github.event.workflow_run.pull_requests[0].number != ''
runs-on: ubuntu-latest
needs:
- compose-comment
- pr-context
steps:
- name: Update job summary in PR comment
@ -97,6 +79,6 @@ jobs:
with:
GITHUB_TOKEN: ${{ secrets.JF_BOT_TOKEN }}
message: ${{ needs.compose-comment.outputs.msg }}
pr_number: ${{ needs.pr-context.outputs.pr_number }}
pr_number: ${{ github.event.workflow_run.pull_requests[0].number }}
comment_tag: ${{ needs.compose-comment.outputs.marker }}
mode: recreate

5036
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -5,17 +5,17 @@
"repository": "https://github.com/jellyfin/jellyfin-web",
"license": "GPL-2.0-or-later",
"devDependencies": {
"@babel/core": "7.24.3",
"@babel/core": "7.24.5",
"@babel/plugin-proposal-class-properties": "7.18.6",
"@babel/plugin-proposal-private-methods": "7.18.6",
"@babel/plugin-transform-modules-umd": "7.24.1",
"@babel/preset-env": "7.24.3",
"@babel/preset-env": "7.24.5",
"@babel/preset-react": "7.24.1",
"@types/escape-html": "1.0.4",
"@types/loadable__component": "5.13.9",
"@types/lodash-es": "4.17.12",
"@types/markdown-it": "13.0.7",
"@types/react": "17.0.79",
"@types/markdown-it": "14.1.1",
"@types/react": "17.0.80",
"@types/react-dom": "17.0.25",
"@types/sortablejs": "1.15.8",
"@typescript-eslint/eslint-plugin": "5.62.0",
@ -28,8 +28,8 @@
"confusing-browser-globals": "1.0.11",
"copy-webpack-plugin": "12.0.2",
"cross-env": "7.0.3",
"css-loader": "6.10.0",
"cssnano": "6.1.2",
"css-loader": "7.1.1",
"cssnano": "7.0.1",
"es-check": "7.1.1",
"eslint": "8.57.0",
"eslint-plugin-compat": "4.2.0",
@ -37,62 +37,62 @@
"eslint-plugin-import": "2.29.1",
"eslint-plugin-jsx-a11y": "6.8.0",
"eslint-plugin-react": "7.34.1",
"eslint-plugin-react-hooks": "4.6.0",
"eslint-plugin-sonarjs": "0.24.0",
"expose-loader": "4.1.0",
"eslint-plugin-react-hooks": "4.6.2",
"eslint-plugin-sonarjs": "0.25.1",
"expose-loader": "5.0.0",
"fork-ts-checker-webpack-plugin": "9.0.2",
"html-loader": "4.2.0",
"html-loader": "5.0.0",
"html-webpack-plugin": "5.6.0",
"jsdom": "23.2.0",
"mini-css-extract-plugin": "2.8.1",
"jsdom": "24.0.0",
"mini-css-extract-plugin": "2.9.0",
"postcss": "8.4.38",
"postcss-loader": "7.3.4",
"postcss-preset-env": "9.5.2",
"postcss-loader": "8.1.1",
"postcss-preset-env": "9.5.13",
"postcss-scss": "4.0.9",
"sass": "1.72.0",
"sass-loader": "13.3.3",
"source-map-loader": "4.0.2",
"sass": "1.77.1",
"sass-loader": "14.2.1",
"source-map-loader": "5.0.0",
"speed-measure-webpack-plugin": "1.5.0",
"style-loader": "3.3.4",
"style-loader": "4.0.0",
"stylelint": "15.11.0",
"stylelint-config-rational-order": "0.1.2",
"stylelint-no-browser-hacks": "1.3.0",
"stylelint-order": "6.0.4",
"stylelint-scss": "5.3.2",
"ts-loader": "9.5.1",
"typescript": "5.4.3",
"vitest": "1.4.0",
"typescript": "5.4.5",
"vitest": "1.6.0",
"webpack": "5.91.0",
"webpack-bundle-analyzer": "4.10.1",
"webpack-bundle-analyzer": "4.10.2",
"webpack-cli": "5.1.4",
"webpack-dev-server": "4.15.2",
"webpack-dev-server": "5.0.4",
"webpack-merge": "5.10.0",
"worker-loader": "3.0.8"
},
"dependencies": {
"@emotion/react": "11.11.4",
"@emotion/styled": "11.11.0",
"@fontsource/noto-sans": "5.0.21",
"@fontsource/noto-sans-hk": "5.0.18",
"@fontsource/noto-sans-jp": "5.0.18",
"@fontsource/noto-sans-kr": "5.0.18",
"@fontsource/noto-sans-sc": "5.0.18",
"@fontsource/noto-sans-tc": "5.0.18",
"@emotion/styled": "11.11.5",
"@fontsource/noto-sans": "5.0.22",
"@fontsource/noto-sans-hk": "5.0.19",
"@fontsource/noto-sans-jp": "5.0.19",
"@fontsource/noto-sans-kr": "5.0.19",
"@fontsource/noto-sans-sc": "5.0.19",
"@fontsource/noto-sans-tc": "5.0.19",
"@jellyfin/libass-wasm": "4.2.1",
"@jellyfin/sdk": "0.0.0-unstable.202405050501",
"@loadable/component": "5.16.3",
"@mui/icons-material": "5.15.11",
"@mui/material": "5.15.11",
"@mui/x-data-grid": "6.19.5",
"@jellyfin/sdk": "0.0.0-unstable.202405200501",
"@loadable/component": "5.16.4",
"@mui/icons-material": "5.15.17",
"@mui/material": "5.15.17",
"@mui/x-data-grid": "6.19.11",
"@react-hook/resize-observer": "1.2.6",
"@tanstack/react-query": "4.36.1",
"@tanstack/react-query-devtools": "4.36.1",
"@types/react-lazy-load-image-component": "1.6.3",
"@types/react-lazy-load-image-component": "1.6.4",
"abortcontroller-polyfill": "1.7.5",
"blurhash": "2.0.5",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
"classnames": "2.5.1",
"core-js": "3.36.1",
"core-js": "3.37.0",
"date-fns": "2.30.0",
"dompurify": "3.0.1",
"epubjs": "0.3.93",
@ -101,7 +101,7 @@
"flv.js": "1.6.2",
"headroom.js": "0.12.0",
"history": "5.3.0",
"hls.js": "1.5.7",
"hls.js": "1.5.8",
"intersection-observer": "0.12.2",
"jellyfin-apiclient": "1.11.0",
"jquery": "3.7.1",
@ -116,12 +116,12 @@
"react-blurhash": "0.3.0",
"react-dom": "17.0.2",
"react-lazy-load-image-component": "1.6.0",
"react-router-dom": "6.22.3",
"react-router-dom": "6.23.1",
"resize-observer-polyfill": "1.5.1",
"screenfull": "6.0.2",
"sortablejs": "1.15.2",
"swiper": "11.0.7",
"usehooks-ts": "2.16.0",
"swiper": "11.1.3",
"usehooks-ts": "3.1.0",
"webcomponents.js": "0.7.24",
"whatwg-fetch": "3.6.20"
},

View file

@ -70,6 +70,21 @@ function getDeviceProfile(item) {
});
}
const preferredTranscodeVideoAudioCodec = appSettings.preferredTranscodeVideoAudioCodec();
if (preferredTranscodeVideoAudioCodec) {
profile.TranscodingProfiles.forEach((transcodingProfile) => {
if (transcodingProfile.Type === 'Video') {
const audioCodecs = transcodingProfile.AudioCodec.split(',');
const index = audioCodecs.indexOf(preferredTranscodeVideoAudioCodec);
if (index !== -1) {
audioCodecs.splice(index, 1);
audioCodecs.unshift(preferredTranscodeVideoAudioCodec);
transcodingProfile.AudioCodec = audioCodecs.join(',');
}
}
});
}
resolve(profile);
});
}

View file

@ -2,6 +2,7 @@
import dialogHelper from '../dialogHelper/dialogHelper';
import layoutManager from '../layoutManager';
import globalize from '../../scripts/globalize';
import { PersonKind } from '@jellyfin/sdk/lib/generated-client';
import '../../elements/emby-button/paper-icon-button-light';
import '../../elements/emby-input/emby-input';
import '../../elements/emby-select/emby-select';
@ -61,6 +62,15 @@ function show(person) {
}
});
let selectPersonTypeOptions = '<option value=""></option>';
for (const type of Object.values(PersonKind)) {
if (type === PersonKind.Unknown) {
continue;
}
selectPersonTypeOptions += `<option value="${type}">\${${type}}</option>`;
}
dlg.querySelector('.selectPersonType').innerHTML = globalize.translateHtml(selectPersonTypeOptions);
dlg.querySelector('.selectPersonType').addEventListener('change', function () {
if (this.value === 'Actor') {
dlg.querySelector('.fldRole').classList.remove('hide');

View file

@ -12,33 +12,7 @@
</div>
<div class="selectContainer">
<select is="emby-select" id="selectPersonType" class="selectPersonType" label="${LabelType}">
<option value=""></option>
<option value="Actor">${Actor}</option>
<option value="Composer">${Composer}</option>
<option value="Director">${Director}</option>
<option value="GuestStar">${GuestStar}</option>
<option value="Producer">${Producer}</option>
<option value="Writer">${Writer}</option>
<option value="Conductor">${Conductor}</option>
<option value="Lyricist">${Lyricist}</option>
<option value="Arranger">${Arranger}</option>
<option value="Engineer">${Engineer}</option>
<option value="Mixer">${Mixer}</option>
<option value="Remixer">${Remixer}</option>
<option value="AlbumArtist">${AlbumArtist}</option>
<option value="Artist">${Artist}</option>
<option value="Creator">${Creator}</option>
<option value="Author">${Author}</option>
<option value="Illustrator">${Illustrator}</option>
<option value="Penciller">${Penciller}</option>
<option value="Inker">${Inker}</option>
<option value="Colorist">${Colorist}</option>
<option value="Letterer">${Letterer}</option>
<option value="CoverArtist">${CoverArtist}</option>
<option value="Editor">${Editor}</option>
<option value="Translator">${Translator}</option>
</select>
<select is="emby-select" id="selectPersonType" class="selectPersonType" label="${LabelType}"></select>
</div>
<div class="inputContainer fldRole hide">

View file

@ -182,6 +182,7 @@ function loadForm(context, user, userSettings, systemInfo, apiClient) {
context.querySelector('.chkRememberSubtitleSelections').checked = user.Configuration.RememberSubtitleSelections || false;
context.querySelector('.chkExternalVideoPlayer').checked = appSettings.enableSystemExternalPlayers();
context.querySelector('.chkLimitSupportedVideoResolution').checked = appSettings.limitSupportedVideoResolution();
context.querySelector('#selectPreferredTranscodeVideoAudioCodec').value = appSettings.preferredTranscodeVideoAudioCodec();
setMaxBitrateIntoField(context.querySelector('.selectVideoInNetworkQuality'), true, 'Video');
setMaxBitrateIntoField(context.querySelector('.selectVideoInternetQuality'), false, 'Video');
@ -217,6 +218,7 @@ function saveUser(context, user, userSettingsInstance, apiClient) {
appSettings.maxChromecastBitrate(context.querySelector('.selectChromecastVideoQuality').value);
appSettings.maxVideoWidth(context.querySelector('.selectMaxVideoWidth').value);
appSettings.limitSupportedVideoResolution(context.querySelector('.chkLimitSupportedVideoResolution').checked);
appSettings.preferredTranscodeVideoAudioCodec(context.querySelector('#selectPreferredTranscodeVideoAudioCodec').value);
appSettings.enableDts(context.querySelector('.chkEnableDts').checked);
appSettings.enableTrueHd(context.querySelector('.chkEnableTrueHd').checked);

View file

@ -179,6 +179,19 @@
</label>
<div class="fieldDescription checkboxFieldDescription">${EnableTrueHdHelp}</div>
</div>
<div class="selectContainer">
<select is="emby-select" id="selectPreferredTranscodeVideoAudioCodec" label="${LabelSelectPreferredTranscodeVideoAudioCodec}">
<option value="">${Auto}</option>
<option value="aac">AAC</option>
<option value="ac3">AC3</option>
<option value="alac">ALAC</option>
<option value="dts">DTS</option>
<option value="flac">FLAC</option>
<option value="opus">Opus</option>
</select>
<div class="fieldDescription">${SelectPreferredTranscodeVideoAudioCodecHelp}</div>
</div>
</div>
<button is="emby-button" type="submit" class="raised button-submit block btnSave hide">

View file

@ -132,6 +132,18 @@ class AppSettings {
return toBoolean(this.get('limitSupportedVideoResolution'), false);
}
/**
* Get or set preferred transcode audio codec in video playback.
* @param {string|undefined} val - Preferred transcode audio codec or undefined.
* @return {string} Preferred transcode audio codec.
*/
preferredTranscodeVideoAudioCodec(val) {
if (val !== undefined) {
return this.set('preferredTranscodeVideoAudioCodec', val);
}
return this.get('preferredTranscodeVideoAudioCodec') || '';
}
/**
* Get or set 'Enable DTS' state.
* @param {boolean|undefined} val - Flag to enable 'Enable DTS' or undefined.

View file

@ -1892,5 +1892,7 @@
"Penciller": "Výtvarník",
"Translator": "Překladatel",
"LibraryScanFanoutConcurrencyHelp": "Maximální počet souběžných úloh skenování knihovny. Nastavením na 0 bude počet dán počtem jader CPU. UPOZORNĚNÍ: Příliš vyskoý počet může způsobit problémy se síťovými souborými systémy. V takovém případě počet snižte.",
"LibraryScanFanoutConcurrency": "Maximální počet souběžných skenování knihovny"
"LibraryScanFanoutConcurrency": "Maximální počet souběžných skenování knihovny",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Preferovaný audio kodek pro překódovaní při přehrávání videí",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Vybrat preferovaný audio kodek pro překódovaní při přehrávání videí. Pokud preferovaný kodek není podporován, server vybere jiný dostupný kodek."
}

View file

@ -406,7 +406,7 @@
"LabelAllowedRemoteAddresses": "Filter für externe IP-Adressen",
"LabelAllowedRemoteAddressesMode": "Filtermodus für externe IP-Adressen",
"LabelAppName": "Applikationsname",
"LabelAppNameExample": "Beispiel: Sickbeard, Sonarr",
"LabelAppNameExample": "Ein von Menschen lesbarer Name zur Identifizierung von API-Schlüsseln. Diese Einstellung hat keinen Einfluss auf die Funktionalität.",
"LabelArtists": "Interpreten",
"LabelArtistsHelp": "Trenne mehrere Künstler durch ein Semikolon.",
"LabelAudioLanguagePreference": "Bevorzugte Audiosprache",
@ -1789,7 +1789,7 @@
"ButtonEditUser": "Editiere Benutzer",
"DlnaMovedMessage": "Die DLNA-Funktion wurde in ein Plugin verschoben.",
"DeleteName": "Löschen {0}",
"AllowSubtitleManagement": "Erlaube dem Nutzer Untertitel zu bearbeiten",
"AllowSubtitleManagement": "Erlaube diesem Nutzer Untertitel zu bearbeiten",
"LabelUseReplayGainTagsHelp": "Audiodateien nach Replaygain-Tags durchsuchen statt den LUFS-Wert zu Berechnen. (Nutzt weniger Rechenleistung. Wird die \"LUFS Scan\" option überschreiben)",
"LabelUseReplayGainTags": "ReplayGain-Tags Benutzen",
"ChannelResolutionSD": "SD",
@ -1876,5 +1876,17 @@
"EnableDts": "DTS zulassen (DCA)",
"EnableDtsHelp": "Schalte dies nur ein, wenn dein Gerät DTS unterstützt oder mit einem kompatiblem audio Empfänger angeschlossen ist, andernfalls könnte es zu Widergabefehlern führen.",
"EnableTrueHd": "TrueHD zulassen",
"Illustrator": "Illustrator"
"Illustrator": "Illustrator",
"HeaderLyricDownloads": "Lyrik Downloads",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Bevorzugter Transcode-Audiocodec bei der Videowiedergabe",
"Translator": "Übersetzer",
"LibraryScanFanoutConcurrency": "Parallele Bibliotheks-Scan-Aufgaben Limit",
"LibraryScanFanoutConcurrencyHelp": "Maximale Anzahl der parallelen Aufgaben während der Bibliotheksscans. Wenn Sie diesen Wert auf 0 setzen, wird eine Begrenzung auf der Grundlage der Kernanzahl Ihres Systems gewählt. WARNUNG: Wenn Sie diese Zahl zu hoch einstellen, kann es zu Problemen mit Netzwerkdateisystemen kommen; wenn Sie Probleme haben, senken Sie diese Zahl.",
"PlaylistError.AddFailed": "Fehler beim Hinzufügen zur Wiedergabeliste",
"PlaylistError.CreateFailed": "Fehler beim Erstellen der Wiedergabeliste",
"SavePassword": "Passwort speichern",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Wählen Sie den bevorzugten Audiocodec für die Transkodierung von Videoinhalten. Wenn der bevorzugte Codec nicht unterstützt wird, verwendet der Server den nächstbesten verfügbaren Codec.",
"PlaylistPublicDescription": "Erlauben Sie, dass diese Wiedergabeliste für jeden eingeloggten Benutzer sichtbar ist.",
"SaveLyricsIntoMediaFolders": "Liedtexte in Medienordnern speichern",
"SaveLyricsIntoMediaFoldersHelp": "Das Speichern von Liedtexten zusammen mit den Audiodateien ermöglicht eine einfachere Verwaltung."
}

View file

@ -1080,7 +1080,7 @@
"MessageDirectoryPickerLinuxInstruction": "For Linux on Arch Linux, CentOS, Debian, Fedora, openSUSE, or Ubuntu, you must grant the service user at least read access to your storage locations.",
"LabelCustomCertificatePath": "Custom SSL certificate path",
"LabelBindToLocalNetworkAddressHelp": "Override the local IP address for the HTTP server. If left empty, the server will bind to all available addresses. Changing this value requires a restart.",
"LabelAppNameExample": "Example: Sickbeard, Sonarr",
"LabelAppNameExample": "A human readable name for identifying API keys. This setting will not affect functionality.",
"HttpsRequiresCert": "To enable secure connections, you will need to supply a trusted SSL certificate, such as Let's Encrypt. Please either supply a certificate, or disable secure connections.",
"Yesterday": "Yesterday",
"Yes": "Yes",
@ -1263,8 +1263,8 @@
"ListPaging": "{0}-{1} of {2}",
"WriteAccessRequired": "Jellyfin requires write access to this folder. Please ensure write access and try again.",
"PathNotFound": "The path could not be found. Please ensure the path is valid and try again.",
"Yadif": "YADIF",
"Bwdif": "BWDIF",
"Yadif": "Yet Another DeInterlacing Filter (YADIF)",
"Bwdif": "Bob Weaver DeInterlacing Filter (BWDIF)",
"Season": "Series",
"PreferEmbeddedEpisodeInfosOverFileNames": "Prefer embedded episode information over filenames",
"PreferEmbeddedEpisodeInfosOverFileNamesHelp": "Use the episode information from the embedded metadata if available.",
@ -1719,7 +1719,7 @@
"Short": "Short",
"HeaderPerformance": "Performance",
"LabelParallelImageEncodingLimit": "Parallel image encoding limit",
"LabelParallelImageEncodingLimitHelp": "Maximum amount of image encodings that are allowed to run in parallel. Setting this to 0 will choose a limit based on your system specs.",
"LabelParallelImageEncodingLimitHelp": "Maximum number of image encodings that are allowed to run in parallel. Setting this to 0 will choose a limit based on your systems core count.",
"LabelEnableAudioVbr": "Enable VBR audio encoding",
"LabelEnableAudioVbrHelp": "Variable bitrate offers better quality to average bitrate ratio, but in some rare cases may cause buffering and compatibility issues.",
"LabelTonemappingMode": "Tone mapping mode",
@ -1868,5 +1868,31 @@
"ErrorDeletingLyrics": "There was an error deleting the lyrics from the server. Please check that Jellyfin has write access to the media folder and try again.",
"HeaderDeleteLyrics": "Delete Lyrics",
"HeaderNoLyrics": "No lyrics found",
"Lyrics": "Lyrics"
"Lyrics": "Lyrics",
"Author": "Author",
"Colorist": "Colourist",
"CoverArtist": "Cover artist",
"Creator": "Creator",
"Editor": "Editor",
"HeaderVideoAdvanced": "Video Advanced",
"Illustrator": "Illustrator",
"Inker": "Inker",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Preferred transcode audio codec in video playback",
"Letterer": "Letterer",
"LibraryScanFanoutConcurrency": "Parallel library scan tasks limit",
"LibraryScanFanoutConcurrencyHelp": "Maximum number of parallel tasks during library scans. Setting this to 0 will choose a limit based on your systems core count. WARNING: Setting this number too high may cause issues with network file systems; if you encounter problems lower this number.",
"Penciller": "Penciler",
"PlaylistError.AddFailed": "Error adding to playlist",
"PlaylistError.CreateFailed": "Error creating playlist",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Select the preferred audio codec to transcode to for video content. If the preferred codec is not supported, the server will use the next best available codec.",
"Translator": "Translator",
"EnableDts": "Enable DTS (DCA)",
"EnableDtsHelp": "Only enable if your device supports DTS or is connected to a compatible audio receiver, otherwise it may cause playback failure.",
"EnableTrueHd": "Enable TrueHD",
"EnableTrueHdHelp": "Only enable if your device supports TrueHD or is connected to a compatible audio receiver, otherwise it may cause playback failure.",
"PlaylistPublic": "Allow public access",
"PlaylistPublicDescription": "Allow this playlist to be viewed by any logged in user.",
"HeaderLyricDownloads": "Lyric Downloads",
"SaveLyricsIntoMediaFolders": "Save lyrics into media folders",
"SaveLyricsIntoMediaFoldersHelp": "Storing lyrics next to audio files will allow them to be more easily managed."
}

View file

@ -566,6 +566,7 @@
"LabelAudioCodec": "Audio codec",
"LabelAudioLanguagePreference": "Preferred audio language",
"LabelSelectAudioNormalization": "Audio Normalization",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Preferred transcode audio codec in video playback",
"LabelAudioSampleRate": "Audio sample rate",
"LabelAuthProvider": "Authentication Provider",
"LabelAutomaticallyAddToCollection": "Automatically add to collection",
@ -1390,6 +1391,7 @@
"Season": "Season",
"SecondarySubtitles": "Secondary Subtitles",
"SelectAdminUsername": "Please select a username for the admin account.",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Select the preferred audio codec to transcode to for video content. If the preferred codec is not supported, the server will use the next best available codec.",
"SelectServer": "Select Server",
"SendMessage": "Send message",
"Series": "Series",

View file

@ -1891,5 +1891,8 @@
"Editor": "Éditeur",
"Inker": "Encreur",
"Letterer": "Lettreur",
"Penciller": "Crayonneur"
"Penciller": "Crayonneur",
"CoverArtist": "Artiste de la couverture",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Codec préféré de transcodage audio lors de la lecture vidéo",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Sélectionnez le codec audio cible préféré pour le transcodage du contenu vidéo. Si le codec préféré n'est pas supporté, le serveur utilisera le meilleur codec disponible suivant."
}

View file

@ -153,9 +153,12 @@
"Sync": "समाकलयति",
"AllowCollectionManagement": "इस यूजर को संग्रह प्रबंधित करने की अनुमति दें",
"AllowSegmentDeletion": "खंड हटाएँ",
"AllowSegmentDeletionHelp": "क्लाइंट को भेजे जाने के बाद पुराने सेगमेंट हटा दें। यह संपूर्ण ट्रांसकोड की गई फ़ाइल को डिस्क पर स्टोर करने से रोकता है। केवल थ्रॉटलिंग सक्षम होने पर ही काम करेगा। यदि आप प्लेबैक समस्याओं का अनुभव करते हैं तो इसे बंद कर दें।",
"LabelThrottleDelaySeconds": "थ्रॉटर बाद",
"AllowSegmentDeletionHelp": "क्लाइंट के डाउनलोड होने के बाद पुराने सेगमेंट हटा दें। यह संपूर्ण ट्रांसकोड की गई फ़ाइल को डिस्क पर स्टोर करने से रोकता है। यदि आप प्लेबैक समस्याओं का अनुभव करते हैं तो इसे बंद कर दें।",
"LabelThrottleDelaySeconds": "थ्रॉटल बाद में",
"LabelSegmentKeepSeconds": "सेगमेंट रखने का समय",
"LabelThrottleDelaySecondsHelp": "सेकंड में समय जिसके बाद ट्रांसकोडर को थ्रॉटल कर दिया जाएगा। क्लाइंट के लिए स्वस्थ बफ़र बनाए रखने के लिए पर्याप्त बड़ा होना चाहिए। केवल तभी काम करता है जब थ्रॉटलिंग सक्रिय हो।",
"LabelSegmentKeepSecondsHelp": "किन खंडों को अधिलेखित करने से पहले रखा जाना चाहिए, इसका समय सेकंड में। \"थ्रोटल आफ्टर\" से बड़ा होना चाहिए। केवल तभी काम करता है जब खंड हटाना सक्रिय हो।"
"LabelSegmentKeepSecondsHelp": "किन खंडों को अधिलेखित करने से पहले रखा जाना चाहिए, इसका समय सेकंड में। \"थ्रोटल आफ्टर\" से बड़ा होना चाहिए। केवल तभी काम करता है जब खंड हटाना सक्रिय हो।",
"AllowContentWithTagsHelp": "केवल उन मीडिया को दिखाएं जिनमें से कम से कम एक निर्दिष्ट टैग हो।",
"AirPlay": "वायु प्रसारण",
"AllowSubtitleManagement": "इस उपयोगकर्ता को उपशीर्षक संपादित करने की अनुमति दें"
}

View file

@ -413,7 +413,7 @@
"LabelAppNameExample": "Een leesbare naam om de API-sleutel te herkennen. Deze instelling heeft geen invloed op de functionaliteit.",
"LabelArtists": "Artiesten",
"LabelArtistsHelp": "Scheid meerdere artiesten met een puntkomma.",
"LabelAudioLanguagePreference": "Voorkeurstaal geluid",
"LabelAudioLanguagePreference": "Gewenste geluidstaal",
"LabelAutomaticallyRefreshInternetMetadataEvery": "Metadata automatisch vernieuwen van het internet",
"LabelBindToLocalNetworkAddress": "Koppelen aan lokaal netwerkadres",
"LabelBindToLocalNetworkAddressHelp": "Overschrijf het lokale IP-adres voor de HTTP server. Indien leeg gelaten, zal de server koppelen aan alle beschikbare adressen. Het veranderen van deze waarde vereist een herstart.",
@ -550,11 +550,11 @@
"LabelMessageText": "Berichttekst",
"LabelMessageTitle": "Berichttitel",
"LabelMetadataDownloadLanguage": "Voorkeurstaal voor downloads",
"LabelMetadataDownloadersHelp": "Rangschik je voorkeursdownloaders voor metadata op volgorde van prioriteit. Downloaders met lagere prioriteit zullen alleen worden gebruikt om de ontbrekende informatie in te vullen.",
"LabelMetadataDownloadersHelp": "Rangschik je voorkeursophalers voor metadata op volgorde van prioriteit. Ophalers met lagere prioriteit zullen alleen worden gebruikt om de ontbrekende informatie in te vullen.",
"LabelMetadataPath": "Metadata-pad",
"LabelMetadataPathHelp": "Geef een aangepaste locatie op voor gedownloade afbeeldingen en metadata.",
"LabelMetadataReaders": "Metadata-lezers",
"LabelMetadataReadersHelp": "Rangschik de gewenste lokale metadata-bronnen op volgorde van prioriteit. Het eerstgevonden bestand zal worden gelezen.",
"LabelMetadataReadersHelp": "Rangschik je voorkeursbronnen voor lokale metadata op volgorde van prioriteit. Het eerstgevonden bestand zal worden gelezen.",
"LabelMetadataSavers": "Metadata-opslag",
"LabelMetadataSaversHelp": "Kies de bestandsindeling om je metadata in op te slaan.",
"LabelMethod": "Methode",
@ -602,8 +602,8 @@
"LabelPostProcessor": "Nabewerkingstoepassing",
"LabelPostProcessorArguments": "Opdrachtpromptargumenten nabewerking",
"LabelPostProcessorArgumentsHelp": "Gebruik {path} als het pad naar het opnamebestand.",
"LabelPreferredDisplayLanguage": "Weergavetaal (voorkeur)",
"LabelPreferredSubtitleLanguage": "Voorkeurstaal ondertiteling",
"LabelPreferredDisplayLanguage": "Gewenste weergavetaal",
"LabelPreferredSubtitleLanguage": "Gewenste ondertitelingstaal",
"LabelProfileAudioCodecs": "Geluidscodecs",
"LabelProfileCodecsHelp": "Gescheiden door een komma. Dit kan leeg worden gelaten om te laten gelden voor alle codecs.",
"LabelProfileContainersHelp": "Gescheiden door een komma. Dit kan leeg worden gelaten om te laten gelden voor alle containers.",
@ -1007,7 +1007,7 @@
"Studios": "Studio's",
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Deze instellingen hebben ook effect op afspelen naar Google Cast wanneer dit vanaf dit apparaat wordt gestart.",
"SubtitleAppearanceSettingsDisclaimer": "De volgende instellingen zijn niet van toepassing op de hierboven genoemde grafische ondertiteling of ASS-/SSA-ondertiteling die hun eigen stijlen ingebouwd hebben.",
"SubtitleDownloadersHelp": "Schakel de gewenste ondertiteldownloaders in en rangschik ze op volgorde van prioritieit.",
"SubtitleDownloadersHelp": "Rangschik je voorkeursophalers voor ondertiteling op volgorde van prioritieit.",
"Subtitles": "Ondertiteling",
"Suggestions": "Suggesties",
"Sunday": "Zondag",
@ -1770,7 +1770,7 @@
"ListView": "Lijstweergave",
"AiTranslated": "Vertaald door AI",
"HeaderGuestCast": "Gastrollen",
"HearingImpairedShort": "ODS",
"HearingImpairedShort": "SH/ODS",
"GoHome": "Startpagina",
"UnknownError": "Er is een onbekende fout opgetreden.",
"BackdropScreensaver": "Schermbeveiliging met achtergronden",
@ -1891,5 +1891,7 @@
"Penciller": "Schetser",
"Translator": "Vertaler",
"LibraryScanFanoutConcurrencyHelp": "Maximaal aantal gelijktijdige taken tijdens bibliotheekscans. Bij een instelling van 0 wordt een limiet gekozen gebaseerd op het aantal processorkernen in je systeem. WAARSCHUWING: een te hoge instelling kan problemen veroorzaken met netwerkbestandssystemen; verlaag dit getal als je problemen tegenkomt.",
"LibraryScanFanoutConcurrency": "Limiet gelijktijdige bibiotheekscantaken"
"LibraryScanFanoutConcurrency": "Limiet gelijktijdige bibiotheekscantaken",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Gewenste geluidscodec bij afspelen video",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Selecteer de gewenste geluidscodec om naartoe te transcoderen bij video-inhoud. Als de voorkeurscodec niet wordt ondersteund, gebruikt de server de beste codec die wel beschikbaar is."
}

View file

@ -1892,5 +1892,7 @@
"Penciller": "Rysownik",
"Translator": "Tłumacz",
"LibraryScanFanoutConcurrency": "Limit zadań równoległego skanowania bibliotek",
"LibraryScanFanoutConcurrencyHelp": "Maksymalna liczba zadań równoległych podczas skanowania bibliotek. Ustawienie tej opcji na 0 spowoduje wybranie limitu na podstawie liczby rdzeni systemu. OSTRZEŻENIE: ustawienie zbyt dużej liczby może powodować problemy z sieciowymi systemami plików; jeśli napotkasz problemy, obniż tę liczbę."
"LibraryScanFanoutConcurrencyHelp": "Maksymalna liczba zadań równoległych podczas skanowania bibliotek. Ustawienie tej opcji na 0 spowoduje wybranie limitu na podstawie liczby rdzeni systemu. OSTRZEŻENIE: ustawienie zbyt dużej liczby może powodować problemy z sieciowymi systemami plików; jeśli napotkasz problemy, obniż tę liczbę.",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Preferowany transkodowany kodek audio podczas odtwarzania wideo",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Wybierz preferowany kodek audio, na który chcesz transkodować zawartość wideo. Jeśli preferowany kodek nie jest obsługiwany, serwer użyje następnego najlepszego dostępnego kodeka."
}

View file

@ -822,7 +822,7 @@
"Schedule": "Agendamentos",
"ScanForNewAndUpdatedFiles": "Procurar ficheiros novos ou atualizados",
"SaveSubtitlesIntoMediaFoldersHelp": "Guardar ficheiros de legendas junto aos ficheiros vídeo facilita a gestão.",
"SaveSubtitlesIntoMediaFolders": "Guardar legendas nas pastas multimídia",
"SaveSubtitlesIntoMediaFolders": "Guardar legendas em pastas multimédia",
"Runtime": "Duração",
"ResumeAt": "Retomar a partir de {0}",
"ReplaceAllMetadata": "Substituir todos os metadados",
@ -890,11 +890,11 @@
"OptionEnableExternalContentInSuggestionsHelp": "Permitir que trailers da Internet e programas de TV em Direto sejam incluídos no conteúdo sugerido.",
"H264CrfHelp": "O parâmetro \"Constant Rate Factor\" (CRF) é o que define o nível de qualidade padrão para os codificadores de software x264 e x265. Os valores aceites são entre 0 e 51, em que valores mais baixos resultam numa melhor qualidade (a custo de ficheiros de maior dimensão). Os valores considerados aceitáveis estão entre 18 e 28. O valor padrão para o x264 é 23 e para o x265 é 28, podendo ser considerado um ponto de partida para ajustes. Os codificadores de hardware não utilizam estas definições.",
"TabStreaming": "Transmissão",
"SimultaneousConnectionLimitHelp": "Número máximo de transmissões permitido. Zero equivale a sem limite.",
"SimultaneousConnectionLimitHelp": "O número máximo de transmissões simultâneas permitidas. Introduz 0 para não haver limite.",
"LabelSimultaneousConnectionLimit": "Limite de transmissões simultâneas",
"LabelMaxStreamingBitrate": "Qualidade máxima de transmissão",
"LabelMaxChromecastBitrate": "Qualidade de transmissão para Google Cast",
"EnableStreamLoopingHelp": "Active esta opção no caso de a transmissão em directo apenas conter alguns segundos de dados, e necessitar de ser continuamente requisitada. Activar esta opção quando não é necessário pode causar problemas.",
"EnableStreamLoopingHelp": "Ativa esta opção se as transmissões em direto contiverem apenas alguns segundos de dados e precisarem de ser solicitadas continuamente. Ativar esta opção quando não é necessária pode causar problemas.",
"LiveBroadcasts": "Emissões em Direto",
"Live": "Em Direto",
"Sports": "Desporto",
@ -1216,7 +1216,7 @@
"LabelMetadataSavers": "Formatos de gravação dos metadados",
"LabelAudioBitDepth": "Profundidade de bits de áudio",
"HeaderNavigation": "Navegação",
"EnableStreamLooping": "Activar auto loop para transmissões em directo",
"EnableStreamLooping": "Transmissões em direto em loop automático",
"Down": "para baixo",
"ButtonSplit": "Separar",
"NoCreatedLibraries": "Parece que ainda não foi criada nenhuma biblioteca. {0} Deseja criar uma biblioteca agora? {1}",
@ -1274,7 +1274,7 @@
"EnableDecodingColorDepth10Hevc": "Activar descodificação de hardware de 10-bits para HEVC",
"DeinterlaceMethodHelp": "Seleccionar um método de desentrelaçamento ao transcodificar conteúdo entrelaçado através de software. Caso esteja activo, o desentrelaçamento através de aceleração por hardware terá prioridade sobre esta opção.",
"ClientSettings": "Definições do Cliente",
"ButtonTogglePlaylist": "Lista de Reprodução",
"ButtonTogglePlaylist": "lista de reprodução",
"BoxSet": "Colecção",
"Artist": "Artista",
"AlbumArtist": "Artista do Álbum",
@ -1414,7 +1414,7 @@
"LabelTonemappingRange": "Alcance do Tone Mapping",
"TonemappingAlgorithmHelp": "O Tone Mapping pode ser afinado. Se não estiver familiarizado com estas opções, mantenha-as nas opções padrão. O valor recomendado é 'BT.2390'.",
"AllowTonemappingHelp": "O mapeamento de tons pode transformar a gama dinâmica de um vídeo de HDR para SDR, mantendo os detalhes e as cores da imagem, que são informações muito importantes para representar a cena original. Atualmente funciona apenas com vídeos HDR10 de 10 bits, HLG e DoVi. Isso requer o tempo de execução GPGPU correspondente.",
"LabelMaxMuxingQueueSizeHelp": "Número máximo de pacotes que podem ser armazenados em <i>buffer</i> enquanto espera que todos os streams sejam inicializados. Tenta aumentá-lo se ainda encontrares o erro \"Demasiados pacotes armazenados em buffer para o fluxo de saída\" nos registos (logs) do FFmpeg. O valor recomendado é 2048.",
"LabelMaxMuxingQueueSizeHelp": "Número máximo de pacotes que podem ser armazenados em buffer enquanto espera que todas as transmissões sejam inicializadas. Tenta aumentá-lo se ainda encontrares o erro \"Demasiados pacotes armazenados em buffer para o fluxo de saída\" nos registos do FFmpeg. O valor recomendado é 2048.",
"DeleteAll": "Eliminar tudo",
"DeleteDevicesConfirmation": "Tens a certeza de que pretendes eliminar todos os dispositivos? Todas as outras sessões serão encerradas. Os dispositivos voltarão a aparecer da próxima vez que um utilizador iniciar sessão.",
"Bwdif": "BWDIF",
@ -1547,7 +1547,7 @@
"LabelAutomaticallyAddToCollectionHelp": "Quando pelo menos 2 filmes tiverem o mesmo nome de colecção, estes serão adicionados automaticamente.",
"HomeVideosPhotos": "Fotos e vídeos caseiros",
"LabelMaxVideoResolution": "Resolução máxima permitida para transcodificação de vídeo",
"IgnoreDtsHelp": "Desactivar esta opção pode resolver alguns problemas, como a ausência de áudio em canais que transmitem audio e vídeo em fluxos separados.",
"IgnoreDtsHelp": "Desativar esta opção pode resolver alguns problemas, por exemplo, a falta de áudio em canais com fluxos de áudio e vídeo separados.",
"IgnoreDts": "Ignorar DTS (Decoding Timestamp)",
"AudioSampleRateNotSupported": "A taxa de amostragem deste áudio não é suportada",
"AudioProfileNotSupported": "Este perfil do codec áudio não é suportado",
@ -1876,5 +1876,9 @@
"EnableDts": "Ativar DTS (DCA)",
"EnableDtsHelp": "Ativar apenas se o dispositivo suportar DTS ou estiver ligado a um recetor de áudio compatível; caso contrário, pode provocar falhas de reprodução.",
"HeaderLyricDownloads": "Descarregar letras",
"HeaderVideoAdvanced": "Avançadas do vídeo"
"HeaderVideoAdvanced": "Avançadas do vídeo",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Codec de áudio de transcodificação preferido na reprodução de vídeo",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Seleciona o codec de áudio preferido para transcodificar o conteúdo de vídeo. Se o codec preferido não for suportado, o servidor utilizará o próximo melhor codec disponível.",
"LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante as análises da biblioteca. Se definires este valor como 0, escolherás um limite com base na contagem de núcleos do teu sistema. AVISO: Definir este número demasiado alto pode causar problemas com os sistemas de ficheiros de rede; se tiveres problemas, reduz este número.",
"LibraryScanFanoutConcurrency": "Limite das tarefas de análise da biblioteca paralela"
}

View file

@ -63,7 +63,7 @@
"Songs": "Músicas",
"SkipEpisodesAlreadyInMyLibraryHelp": "Os episódios serão comparados utilizando os números de episódio e temporada, quando disponíveis.",
"SkipEpisodesAlreadyInMyLibrary": "Não gravar episódios que já estejam presentes na Biblioteca",
"SimultaneousConnectionLimitHelp": "Número máximo de transmissões permitido. Zero equivale a sem limite.",
"SimultaneousConnectionLimitHelp": "O número máximo de transmissões simultâneas permitidas. Introduz 0 para não haver limite.",
"Shuffle": "Aleatório",
"Shows": "Séries",
"ShowAdvancedSettings": "Mostrar configurações avançadas",
@ -84,7 +84,7 @@
"Schedule": "Agendamentos",
"ScanForNewAndUpdatedFiles": "Procurar ficheiros novos ou atualizados",
"SaveSubtitlesIntoMediaFoldersHelp": "Guardar ficheiros de legendas junto aos ficheiros vídeo irá facilitar a sua gestão.",
"SaveSubtitlesIntoMediaFolders": "Guardar legendas nas pastas multimédia",
"SaveSubtitlesIntoMediaFolders": "Guardar legendas em pastas multimédia",
"Save": "Guardar",
"Saturday": "Sábado",
"Runtime": "Duração",
@ -742,7 +742,7 @@
"EndsAtValue": "Termina às {0}",
"EnableThemeVideosHelp": "Reproduzir vídeos do tema em plano de fundo durante a navegação pela Biblioteca.",
"EnableThemeSongsHelp": "Reproduzir músicas do tema em plano de fundo durante a navegação pela Biblioteca.",
"EnableStreamLoopingHelp": "Active esta opção no caso de a transmissão em directo apenas conter alguns segundos de dados e necessitar de ser continuamente requisitada. Activar esta opção quando não é necessário pode causar problemas.",
"EnableStreamLoopingHelp": "Ativa esta opção se as transmissões em direto contiverem apenas alguns segundos de dados e precisarem de ser solicitadas continuamente. Ativar esta opção quando não é necessária pode causar problemas.",
"EnablePhotosHelp": "Imagens serão detectadas e mostradas em conjunto com outros ficheiros multimédia.",
"EnablePhotos": "Mostrar fotografias",
"EnableNextVideoInfoOverlayHelp": "No final de um vídeo, mostrar informação sobre o próximo vídeo na lista de reprodução.",
@ -930,7 +930,7 @@
"AllowRemoteAccess": "Permitir conexões remotas a este servidor",
"AllowOnTheFlySubtitleExtractionHelp": "Legendas integradas podem ser extraídas do vídeo e enviadas como texto simples para os clientes de forma a evitar transcodificação. Em certos dispositivos, esta operação pode demorar algum tempo e causar paragens de reprodução durante o processo de extração. Desative esta opção para que as legendas sejam integradas no vídeo durante a conversão para um formato suportado pelo dispositivo de destino.",
"AllowOnTheFlySubtitleExtraction": "Permitir a extração de legendas em tempo real",
"AllowHWTranscodingHelp": "Permita que o sintonizador transcodifique os fluxos em tempo real. Isso pode ajudar a reduzir a transcodificação exigida pelo servidor.",
"AllowHWTranscodingHelp": "Permite ao sintonizador converter emissões em tempo real. Poderá reduzir a necessidade de conversão a fazer pelo servidor.",
"AllLibraries": "Todas as bibliotecas",
"AllLanguages": "Todos os idiomas",
"AllEpisodes": "Todos os episódios",
@ -1015,7 +1015,7 @@
"OptionIgnoreTranscodeByteRangeRequests": "Ignorar solicitações de intervalo de bytes de transcodificação",
"OptionEnableAccessToAllChannels": "Permitir acesso a todos os canais",
"FetchingData": "A transferir informação adicional",
"EnableStreamLooping": "Habilitar loop do streaming",
"EnableStreamLooping": "Transmissões em direto em loop automático",
"Down": "Baixar",
"HeaderNavigation": "Navegar",
"ButtonSplit": "Dividir",
@ -1199,7 +1199,7 @@
"HeaderHttpsSettings": "Configurações HTTPS",
"HeaderDVR": "DVR",
"ApiKeysCaption": "Lista das chaves de API ativadas no momento",
"ButtonTogglePlaylist": "Lista de leitura",
"ButtonTogglePlaylist": "Lista de reprodução",
"ButtonSyncPlay": "Sincronização",
"Data": "Dados",
"ButtonUseQuickConnect": "Utilizar Ligação Rápida",
@ -1260,7 +1260,7 @@
"LabelMinAudiobookResumeHelp": "Os títulos são considerados não reproduzidos se parados antes desse período.",
"LabelMinAudiobookResume": "Retomada mínima em minutos de Audiolivro",
"LabelMaxAudiobookResume": "Minutos restantes do Audiolivro para retomar",
"LabelMaxMuxingQueueSizeHelp": "Número máximo de pacotes que podem ser armazenados em <i>buffer</i> enquanto espera que todos os streams sejam inicializados. Tenta aumentá-lo se ainda encontrares o erro \"Demasiados pacotes armazenados em buffer para o fluxo de saída\" nos registos (logs) do FFmpeg. O valor recomendado é 2048.",
"LabelMaxMuxingQueueSizeHelp": "Número máximo de pacotes que podem ser armazenados em buffer enquanto espera que todas as transmissões sejam inicializadas. Tenta aumentá-lo se ainda encontrares o erro \"Demasiados pacotes armazenados em buffer para o fluxo de saída\" nos registos do FFmpeg. O valor recomendado é 2048.",
"LabelMaxMuxingQueueSize": "Tamanho máximo da fila de muxing",
"LabelMaxAudiobookResumeHelp": "Os títulos são considerados totalmente reproduzidos se parados quando a duração restante é inferior a este valor.",
"LabelKnownProxies": "Proxies conhecidos",
@ -1298,7 +1298,7 @@
"HeaderDebugging": "Depuração e Rastreamento",
"HeaderContinueReading": "Continuar a ler",
"HeaderAutoDiscovery": "Descoberta de Rede",
"HeaderAddUser": "Adicionar Usuário",
"HeaderAddUser": "Adicionar utilizador",
"HeaderAddUpdateSubtitle": "Adicionar/atualizar Legenda",
"Framerate": "Taxa de fotogramas",
"Filter": "Filtro",
@ -1358,7 +1358,7 @@
"Experimental": "Experimental",
"HeaderPerformance": "Desempenho",
"IgnoreDts": "Ignorar DTS (decodificação de timestamp)",
"IgnoreDtsHelp": "Desactivando esta opção pode resolver alguns problemas, ex. falta de áudio em canais com diferentes fluxos de áudio e vídeo.",
"IgnoreDtsHelp": "Desativar esta opção pode resolver alguns problemas, por exemplo, a falta de áudio em canais com fluxos de áudio e vídeo separados.",
"LabelStereoDownmixAlgorithm": "Algoritmo Stereo Downmix",
"ShowLess": "Mostrar menos",
"SecondarySubtitles": "Legendas secundárias",
@ -1371,7 +1371,7 @@
"Poster": "Cartaz",
"Small": "Pequeno",
"QuickConnectActivationSuccessful": "Ativado com sucesso",
"SaveChanges": "Gravar alterações",
"SaveChanges": "Guardar alterações",
"PreferEmbeddedExtrasTitlesOverFileNames": "Preferir títulos incorporados ao invés dos nomes dos arquivos para os extras",
"AllowEmbeddedSubtitlesAllowAllOption": "Permitir tudo",
"AllowEmbeddedSubtitlesAllowImageOption": "Permitir imagens",
@ -1592,7 +1592,7 @@
"New": "Novo",
"SubtitleWhite": "Branco",
"SubtitleLightGray": "Cinza claro",
"Track": "Trilha",
"Track": "Faixa",
"TypeOptionPluralMusicArtist": "Artistas musicais",
"TypeOptionPluralSeason": "Temporadas",
"LabelSelectMono": "Mono",
@ -1874,5 +1874,9 @@
"EnableTrueHdHelp": "Ativar apenas se o dispositivo suportar TrueHD ou estiver ligado a um recetor de áudio compatível; caso contrário, pode provocar falhas de reprodução.",
"HeaderVideoAdvanced": "Avançadas do vídeo",
"HeaderLyricDownloads": "Descarregar letras",
"Letterer": "Letrista"
"Letterer": "Letrista",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Codec de áudio de transcodificação preferido na reprodução de vídeo",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Seleciona o codec de áudio preferido para transcodificar o conteúdo de vídeo. Se o codec preferido não for suportado, o servidor utilizará o próximo melhor codec disponível.",
"LibraryScanFanoutConcurrencyHelp": "Número máximo de tarefas paralelas durante as análises da biblioteca. Se definires este valor como 0, escolherás um limite com base na contagem de núcleos do teu sistema. AVISO: Definir este número demasiado alto pode causar problemas com os sistemas de ficheiros de rede; se tiveres problemas, reduz este número.",
"LibraryScanFanoutConcurrency": "Limite das tarefas de análise da biblioteca paralela"
}

View file

@ -1892,5 +1892,7 @@
"Translator": "Prekladateľ",
"PlaylistPublicDescription": "Povoliť zobrazenie tohto playlistu každému prihlásenému používateľovi.",
"LibraryScanFanoutConcurrencyHelp": "Maximálny počet paralelných úloh počas skenovania knižnice. Nastavením tejto hodnoty na 0 sa zvolí limit na základe počtu jadier CPU vášho systému. UPOZORNENIE: Nastavenie príliš vysokého čísla môže spôsobiť problémy so sieťovými súborovými systémami, Ak sa vyskytnú problémy, znížte toto číslo.",
"LibraryScanFanoutConcurrency": "Limit úloh paralelného skenovania knižnice"
"LibraryScanFanoutConcurrency": "Limit úloh paralelného skenovania knižnice",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Preferovaný zvukový kodek pre prekódovanie počas prehrávania videa",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Vyberte preferovaný zvukový kodek pre prekódovanie počas prehrávania videa. Ak preferovaný kodek nie je podporovaný, server použije ďalší najlepší dostupný kodek."
}

View file

@ -1833,5 +1833,7 @@
"LabelAllowContentWithTags": "Tillåt objekt med taggarna",
"LimitSupportedVideoResolutionHelp": "Använd 'Maximal tillåten video omkodningsupplösning' som maximal begränsad maximal videoupplösning.",
"HeaderDeleteLyrics": "Ta bort låttexterna",
"HeaderNoLyrics": "Inga låttexter hittades"
"HeaderNoLyrics": "Inga låttexter hittades",
"Creator": "Skapare",
"EnableTrueHd": "Aktivera TrueHD"
}

View file

@ -1880,5 +1880,11 @@
"EnableDtsHelp": "Yalnızca cihazınız DTS'yi destekliyorsa veya uyumlu bir ses alıcısına bağlıysa etkinleştirin; aksi takdirde oynatma hatasına neden olabilir.",
"PlaylistPublic": "Genel erişime izin ver",
"PlaylistPublicDescription": "Bu oynatma listesinin oturum açmış herhangi bir kullanıcı tarafından görüntülenmesine izin verin.",
"HeaderLyricDownloads": "Şarkı Sözü İndirme"
"HeaderLyricDownloads": "Şarkı Sözü İndirme",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Video oynatmada tercih edilen ses kod dönüştürme",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Video içeriği için tercih edilen kod dönüştürme ses codec bileşenini seçin. Tercih edilen codec desteklenmiyorsa, sunucu mevcut bir sonraki en iyi codec'i kullanacaktır.",
"Letterer": "Kaligrafi",
"HeaderVideoAdvanced": "Gelişmiş Video",
"Inker": "Çizer",
"Penciller": "Eskiz"
}

View file

@ -1888,5 +1888,7 @@
"LibraryScanFanoutConcurrencyHelp": "Максимальна кількість паралельних завдань під час сканування медіатеки. Якщо встановити значення 0, буде обрано обмеження на основі кількості ядер у вашій системі. ПОПЕРЕДЖЕННЯ: Занадто високе значення цього параметра може спричинити проблеми з мережевими файловими системами; якщо ви зіткнулися з такими проблемами, зменшіть це значення.",
"LibraryScanFanoutConcurrency": "Обмеження на паралельне сканування медіатек",
"Inker": "Inker",
"Penciller": "Penciler"
"Penciller": "Penciler",
"LabelSelectPreferredTranscodeVideoAudioCodec": "Бажаний аудіокодек для перекодування при відтворенні відео",
"SelectPreferredTranscodeVideoAudioCodecHelp": "Виберіть бажаний аудіокодек для перекодування відеоконтенту. Якщо вибраний кодек не підтримується, сервер використовуватиме наступний найкращий доступний кодек."
}

View file

@ -1892,5 +1892,7 @@
"Penciller": "铅笔师",
"Translator": "译者",
"LibraryScanFanoutConcurrency": "并行媒体库扫描任务限制",
"LibraryScanFanoutConcurrencyHelp": "媒体库扫描期间并行任务的最大数量。将其设置为 0 将根据您的系统核心数量选择限制。警告:将此数字设置得太高可能会导致网络文件系统出现问题; 如果您遇到问题,请降低此数字。"
"LibraryScanFanoutConcurrencyHelp": "媒体库扫描期间并行任务的最大数量。将其设置为 0 将根据您的系统核心数量选择限制。警告:将此数字设置得太高可能会导致网络文件系统出现问题; 如果您遇到问题,请降低此数字。",
"LabelSelectPreferredTranscodeVideoAudioCodec": "视频播放中首选的转码音频编解码器",
"SelectPreferredTranscodeVideoAudioCodecHelp": "选择视频内容转码到的首选音频编解码器。如果首选编解码器不受支持,服务器将使用下一个最佳可用编解码器。"
}