mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge branch 'master' into dovi-on-webos-fix
This commit is contained in:
commit
3659355a57
28 changed files with 241 additions and 63 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -8,6 +8,7 @@ config.json
|
||||||
|
|
||||||
# ide
|
# ide
|
||||||
.idea
|
.idea
|
||||||
|
.vs
|
||||||
|
|
||||||
# log
|
# log
|
||||||
yarn-error.log
|
yarn-error.log
|
||||||
|
|
|
@ -80,6 +80,7 @@
|
||||||
- [Rasmus Krämer](https://github.com/rasmuslos)
|
- [Rasmus Krämer](https://github.com/rasmuslos)
|
||||||
- [ntarelix](https://github.com/ntarelix)
|
- [ntarelix](https://github.com/ntarelix)
|
||||||
- [András Maróy](https://github.com/andrasmaroy)
|
- [András Maróy](https://github.com/andrasmaroy)
|
||||||
|
- [Chris-Codes-It](https://github.com/Chris-Codes-It)
|
||||||
- [Vedant](https://github.com/viktory36)
|
- [Vedant](https://github.com/viktory36)
|
||||||
|
|
||||||
## Emby Contributors
|
## Emby Contributors
|
||||||
|
|
14
package-lock.json
generated
14
package-lock.json
generated
|
@ -17,7 +17,7 @@
|
||||||
"@fontsource/noto-sans-kr": "5.0.17",
|
"@fontsource/noto-sans-kr": "5.0.17",
|
||||||
"@fontsource/noto-sans-sc": "5.0.17",
|
"@fontsource/noto-sans-sc": "5.0.17",
|
||||||
"@fontsource/noto-sans-tc": "5.0.17",
|
"@fontsource/noto-sans-tc": "5.0.17",
|
||||||
"@jellyfin/sdk": "0.0.0-unstable.202403100501",
|
"@jellyfin/sdk": "0.0.0-unstable.202403180216",
|
||||||
"@loadable/component": "5.16.3",
|
"@loadable/component": "5.16.3",
|
||||||
"@mui/icons-material": "5.15.11",
|
"@mui/icons-material": "5.15.11",
|
||||||
"@mui/material": "5.15.11",
|
"@mui/material": "5.15.11",
|
||||||
|
@ -3641,9 +3641,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@jellyfin/sdk": {
|
"node_modules/@jellyfin/sdk": {
|
||||||
"version": "0.0.0-unstable.202403100501",
|
"version": "0.0.0-unstable.202403180216",
|
||||||
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202403100501.tgz",
|
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202403180216.tgz",
|
||||||
"integrity": "sha512-gt3wIz/bUVznwuhffPaCGED8+mttjCSyrZZ2cz2UcDMqzzjmwhp57oP0AIUS1A5YQe5RVFWi95ZKQlI5aj/x+Q==",
|
"integrity": "sha512-YvBixS+kT/8z8xJUW3A36cYGMwYuishXYsYY+4gNBZKfJ+z9iygIMhbLybrDoZcnAc5QyiaE5SLheOVPPBNXWw==",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"axios": "^1.3.4"
|
"axios": "^1.3.4"
|
||||||
}
|
}
|
||||||
|
@ -25268,9 +25268,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@jellyfin/sdk": {
|
"@jellyfin/sdk": {
|
||||||
"version": "0.0.0-unstable.202403100501",
|
"version": "0.0.0-unstable.202403180216",
|
||||||
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202403100501.tgz",
|
"resolved": "https://registry.npmjs.org/@jellyfin/sdk/-/sdk-0.0.0-unstable.202403180216.tgz",
|
||||||
"integrity": "sha512-gt3wIz/bUVznwuhffPaCGED8+mttjCSyrZZ2cz2UcDMqzzjmwhp57oP0AIUS1A5YQe5RVFWi95ZKQlI5aj/x+Q==",
|
"integrity": "sha512-YvBixS+kT/8z8xJUW3A36cYGMwYuishXYsYY+4gNBZKfJ+z9iygIMhbLybrDoZcnAc5QyiaE5SLheOVPPBNXWw==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@jest/schemas": {
|
"@jest/schemas": {
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
"@fontsource/noto-sans-kr": "5.0.17",
|
"@fontsource/noto-sans-kr": "5.0.17",
|
||||||
"@fontsource/noto-sans-sc": "5.0.17",
|
"@fontsource/noto-sans-sc": "5.0.17",
|
||||||
"@fontsource/noto-sans-tc": "5.0.17",
|
"@fontsource/noto-sans-tc": "5.0.17",
|
||||||
"@jellyfin/sdk": "0.0.0-unstable.202403100501",
|
"@jellyfin/sdk": "0.0.0-unstable.202403180216",
|
||||||
"@loadable/component": "5.16.3",
|
"@loadable/component": "5.16.3",
|
||||||
"@mui/icons-material": "5.15.11",
|
"@mui/icons-material": "5.15.11",
|
||||||
"@mui/material": "5.15.11",
|
"@mui/material": "5.15.11",
|
||||||
|
|
|
@ -49,6 +49,7 @@ const UserProfiles: FunctionComponent = () => {
|
||||||
const showUserMenu = (elem: HTMLElement) => {
|
const showUserMenu = (elem: HTMLElement) => {
|
||||||
const card = dom.parentWithClass(elem, 'card');
|
const card = dom.parentWithClass(elem, 'card');
|
||||||
const userId = card?.getAttribute('data-userid');
|
const userId = card?.getAttribute('data-userid');
|
||||||
|
const username = card?.getAttribute('data-username');
|
||||||
|
|
||||||
if (!userId) {
|
if (!userId) {
|
||||||
console.error('Unexpected null user id');
|
console.error('Unexpected null user id');
|
||||||
|
@ -106,7 +107,7 @@ const UserProfiles: FunctionComponent = () => {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
deleteUser(userId);
|
deleteUser(userId, username);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
@ -117,12 +118,13 @@ const UserProfiles: FunctionComponent = () => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const deleteUser = (id: string) => {
|
const deleteUser = (id: string, username?: string | null) => {
|
||||||
const msg = globalize.translate('DeleteUserConfirmation');
|
const title = username ? globalize.translate('DeleteName', username) : globalize.translate('DeleteUser');
|
||||||
|
const text = globalize.translate('DeleteUserConfirmation');
|
||||||
|
|
||||||
confirm({
|
confirm({
|
||||||
title: globalize.translate('DeleteUser'),
|
title,
|
||||||
text: msg,
|
text,
|
||||||
confirmText: globalize.translate('Delete'),
|
confirmText: globalize.translate('Delete'),
|
||||||
primary: 'delete'
|
primary: 'delete'
|
||||||
}).then(function () {
|
}).then(function () {
|
||||||
|
|
|
@ -182,6 +182,7 @@ const UserEdit: FunctionComponent = () => {
|
||||||
(page.querySelector('.chkDisabled') as HTMLInputElement).checked = user.Policy.IsDisabled;
|
(page.querySelector('.chkDisabled') as HTMLInputElement).checked = user.Policy.IsDisabled;
|
||||||
(page.querySelector('.chkIsHidden') as HTMLInputElement).checked = user.Policy.IsHidden;
|
(page.querySelector('.chkIsHidden') as HTMLInputElement).checked = user.Policy.IsHidden;
|
||||||
(page.querySelector('.chkEnableCollectionManagement') as HTMLInputElement).checked = user.Policy.EnableCollectionManagement;
|
(page.querySelector('.chkEnableCollectionManagement') as HTMLInputElement).checked = user.Policy.EnableCollectionManagement;
|
||||||
|
(page.querySelector('.chkEnableSubtitleManagement') as HTMLInputElement).checked = user.Policy.EnableSubtitleManagement;
|
||||||
(page.querySelector('.chkRemoteControlSharedDevices') as HTMLInputElement).checked = user.Policy.EnableSharedDeviceControl;
|
(page.querySelector('.chkRemoteControlSharedDevices') as HTMLInputElement).checked = user.Policy.EnableSharedDeviceControl;
|
||||||
(page.querySelector('.chkEnableRemoteControlOtherUsers') as HTMLInputElement).checked = user.Policy.EnableRemoteControlOfOtherUsers;
|
(page.querySelector('.chkEnableRemoteControlOtherUsers') as HTMLInputElement).checked = user.Policy.EnableRemoteControlOfOtherUsers;
|
||||||
(page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked = user.Policy.EnableContentDownloading;
|
(page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked = user.Policy.EnableContentDownloading;
|
||||||
|
@ -240,6 +241,7 @@ const UserEdit: FunctionComponent = () => {
|
||||||
user.Policy.EnableVideoPlaybackTranscoding = (page.querySelector('.chkEnableVideoPlaybackTranscoding') as HTMLInputElement).checked;
|
user.Policy.EnableVideoPlaybackTranscoding = (page.querySelector('.chkEnableVideoPlaybackTranscoding') as HTMLInputElement).checked;
|
||||||
user.Policy.EnablePlaybackRemuxing = (page.querySelector('.chkEnableVideoPlaybackRemuxing') as HTMLInputElement).checked;
|
user.Policy.EnablePlaybackRemuxing = (page.querySelector('.chkEnableVideoPlaybackRemuxing') as HTMLInputElement).checked;
|
||||||
user.Policy.EnableCollectionManagement = (page.querySelector('.chkEnableCollectionManagement') as HTMLInputElement).checked;
|
user.Policy.EnableCollectionManagement = (page.querySelector('.chkEnableCollectionManagement') as HTMLInputElement).checked;
|
||||||
|
user.Policy.EnableSubtitleManagement = (page.querySelector('.chkEnableSubtitleManagement') as HTMLInputElement).checked;
|
||||||
user.Policy.ForceRemoteSourceTranscoding = (page.querySelector('.chkForceRemoteSourceTranscoding') as HTMLInputElement).checked;
|
user.Policy.ForceRemoteSourceTranscoding = (page.querySelector('.chkForceRemoteSourceTranscoding') as HTMLInputElement).checked;
|
||||||
user.Policy.EnableContentDownloading = (page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked;
|
user.Policy.EnableContentDownloading = (page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked;
|
||||||
user.Policy.EnableRemoteAccess = (page.querySelector('.chkRemoteAccess') as HTMLInputElement).checked;
|
user.Policy.EnableRemoteAccess = (page.querySelector('.chkRemoteAccess') as HTMLInputElement).checked;
|
||||||
|
@ -392,6 +394,11 @@ const UserEdit: FunctionComponent = () => {
|
||||||
className='chkEnableCollectionManagement'
|
className='chkEnableCollectionManagement'
|
||||||
title='AllowCollectionManagement'
|
title='AllowCollectionManagement'
|
||||||
/>
|
/>
|
||||||
|
<CheckBoxElement
|
||||||
|
labelClassName='checkboxContainer'
|
||||||
|
className='chkEnableSubtitleManagement'
|
||||||
|
title='AllowSubtitleManagement'
|
||||||
|
/>
|
||||||
<div id='featureAccessFields' className='verticalSection'>
|
<div id='featureAccessFields' className='verticalSection'>
|
||||||
<h2 className='paperListLabel'>
|
<h2 className='paperListLabel'>
|
||||||
{globalize.translate('HeaderFeatureAccess')}
|
{globalize.translate('HeaderFeatureAccess')}
|
||||||
|
|
|
@ -61,7 +61,7 @@ const UserCardBox: FunctionComponent<IProps> = ({ user = {} }: IProps) => {
|
||||||
</div>`;
|
</div>`;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div data-userid={user.Id} className={cssClass}>
|
<div data-userid={user.Id} data-username={user.Name} className={cssClass}>
|
||||||
<div className='cardBox visualCardBox'>
|
<div className='cardBox visualCardBox'>
|
||||||
<div className='cardScalable visualCardBox-cardScalable'>
|
<div className='cardScalable visualCardBox-cardScalable'>
|
||||||
<div className='cardPadder cardPadder-square'></div>
|
<div className='cardPadder cardPadder-square'></div>
|
||||||
|
|
|
@ -214,11 +214,7 @@ export function getCommands(options) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canEdit && item.MediaType === 'Video' && item.Type !== 'TvChannel' && item.Type !== 'Program'
|
if (itemHelper.canEditSubtitles(user, item) && options.editSubtitles !== false) {
|
||||||
&& item.LocationType !== 'Virtual'
|
|
||||||
&& !(item.Type === 'Recording' && item.Status !== 'Completed')
|
|
||||||
&& options.editSubtitles !== false
|
|
||||||
) {
|
|
||||||
commands.push({
|
commands.push({
|
||||||
name: globalize.translate('EditSubtitles'),
|
name: globalize.translate('EditSubtitles'),
|
||||||
id: 'editsubtitles',
|
id: 'editsubtitles',
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
import { appHost } from './apphost';
|
import { appHost } from './apphost';
|
||||||
import globalize from '../scripts/globalize';
|
import globalize from '../scripts/globalize';
|
||||||
import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type';
|
import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type';
|
||||||
|
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
|
||||||
|
import { LocationType } from '@jellyfin/sdk/lib/generated-client/models/location-type';
|
||||||
|
import { RecordingStatus } from '@jellyfin/sdk/lib/generated-client/models/recording-status';
|
||||||
|
import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type';
|
||||||
|
|
||||||
export function getDisplayName(item, options = {}) {
|
export function getDisplayName(item, options = {}) {
|
||||||
if (!item) {
|
if (!item) {
|
||||||
|
@ -155,6 +159,33 @@ export function canEditImages (user, item) {
|
||||||
return itemType !== 'Timer' && itemType !== 'SeriesTimer' && canEdit(user, item) && !isLocalItem(item);
|
return itemType !== 'Timer' && itemType !== 'SeriesTimer' && canEdit(user, item) && !isLocalItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function canEditSubtitles (user, item) {
|
||||||
|
if (item.MediaType !== MediaType.Video) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const itemType = item.Type;
|
||||||
|
if (itemType === BaseItemKind.Recording && item.Status !== RecordingStatus.Completed) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (itemType === BaseItemKind.TvChannel
|
||||||
|
|| itemType === BaseItemKind.Program
|
||||||
|
|| itemType === 'Timer'
|
||||||
|
|| itemType === 'SeriesTimer'
|
||||||
|
|| itemType === BaseItemKind.UserRootFolder
|
||||||
|
|| itemType === BaseItemKind.UserView
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (isLocalItem(item)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (item.LocationType === LocationType.Virtual) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return user.Policy.EnableSubtitleManagement
|
||||||
|
|| user.Policy.IsAdministrator;
|
||||||
|
}
|
||||||
|
|
||||||
export function canShare (item, user) {
|
export function canShare (item, user) {
|
||||||
if (item.Type === 'Program') {
|
if (item.Type === 'Program') {
|
||||||
return false;
|
return false;
|
||||||
|
@ -300,6 +331,7 @@ export default {
|
||||||
canIdentify: canIdentify,
|
canIdentify: canIdentify,
|
||||||
canEdit: canEdit,
|
canEdit: canEdit,
|
||||||
canEditImages: canEditImages,
|
canEditImages: canEditImages,
|
||||||
|
canEditSubtitles,
|
||||||
canShare: canShare,
|
canShare: canShare,
|
||||||
enableDateAddedDisplay: enableDateAddedDisplay,
|
enableDateAddedDisplay: enableDateAddedDisplay,
|
||||||
canMarkPlayed: canMarkPlayed,
|
canMarkPlayed: canMarkPlayed,
|
||||||
|
|
|
@ -416,6 +416,8 @@ export function setContentType(parent, contentType) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parent.querySelector('.chkUseReplayGainTagsContainer').classList.toggle('hide', contentType !== 'music');
|
||||||
|
|
||||||
parent.querySelector('.chkEnableLUFSScanContainer').classList.toggle('hide', contentType !== 'music');
|
parent.querySelector('.chkEnableLUFSScanContainer').classList.toggle('hide', contentType !== 'music');
|
||||||
|
|
||||||
if (contentType === 'tvshows') {
|
if (contentType === 'tvshows') {
|
||||||
|
@ -515,6 +517,7 @@ export function getLibraryOptions(parent) {
|
||||||
EnablePhotos: parent.querySelector('.chkEnablePhotos').checked,
|
EnablePhotos: parent.querySelector('.chkEnablePhotos').checked,
|
||||||
EnableRealtimeMonitor: parent.querySelector('.chkEnableRealtimeMonitor').checked,
|
EnableRealtimeMonitor: parent.querySelector('.chkEnableRealtimeMonitor').checked,
|
||||||
EnableLUFSScan: parent.querySelector('.chkEnableLUFSScan').checked,
|
EnableLUFSScan: parent.querySelector('.chkEnableLUFSScan').checked,
|
||||||
|
UseReplayGainTags: parent.querySelector('.chkUseReplayGainTags').checked,
|
||||||
ExtractChapterImagesDuringLibraryScan: parent.querySelector('.chkExtractChaptersDuringLibraryScan').checked,
|
ExtractChapterImagesDuringLibraryScan: parent.querySelector('.chkExtractChaptersDuringLibraryScan').checked,
|
||||||
EnableChapterImageExtraction: parent.querySelector('.chkExtractChapterImages').checked,
|
EnableChapterImageExtraction: parent.querySelector('.chkExtractChapterImages').checked,
|
||||||
EnableInternetProviders: true,
|
EnableInternetProviders: true,
|
||||||
|
@ -577,6 +580,7 @@ export function setLibraryOptions(parent, options) {
|
||||||
parent.querySelector('.chkEnablePhotos').checked = options.EnablePhotos;
|
parent.querySelector('.chkEnablePhotos').checked = options.EnablePhotos;
|
||||||
parent.querySelector('.chkEnableRealtimeMonitor').checked = options.EnableRealtimeMonitor;
|
parent.querySelector('.chkEnableRealtimeMonitor').checked = options.EnableRealtimeMonitor;
|
||||||
parent.querySelector('.chkEnableLUFSScan').checked = options.EnableLUFSScan;
|
parent.querySelector('.chkEnableLUFSScan').checked = options.EnableLUFSScan;
|
||||||
|
parent.querySelector('.chkUseReplayGainTags').checked = options.UseReplayGainTags;
|
||||||
parent.querySelector('.chkExtractChaptersDuringLibraryScan').checked = options.ExtractChapterImagesDuringLibraryScan;
|
parent.querySelector('.chkExtractChaptersDuringLibraryScan').checked = options.ExtractChapterImagesDuringLibraryScan;
|
||||||
parent.querySelector('.chkExtractChapterImages').checked = options.EnableChapterImageExtraction;
|
parent.querySelector('.chkExtractChapterImages').checked = options.EnableChapterImageExtraction;
|
||||||
parent.querySelector('#chkSaveLocal').checked = options.SaveLocalMetadata;
|
parent.querySelector('#chkSaveLocal').checked = options.SaveLocalMetadata;
|
||||||
|
|
|
@ -55,6 +55,14 @@
|
||||||
<div class="fieldDescription checkboxFieldDescription">${LabelEnableRealtimeMonitorHelp}</div>
|
<div class="fieldDescription checkboxFieldDescription">${LabelEnableRealtimeMonitorHelp}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="checkboxContainer checkboxContainer-withDescription chkUseReplayGainTagsContainer advanced">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" is="emby-checkbox" class="chkUseReplayGainTags" checked />
|
||||||
|
<span>${LabelUseReplayGainTags}</span>
|
||||||
|
</label>
|
||||||
|
<div class="fieldDescription checkboxFieldDescription">${LabelUseReplayGainTagsHelp}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="checkboxContainer checkboxContainer-withDescription chkEnableLUFSScanContainer advanced">
|
<div class="checkboxContainer checkboxContainer-withDescription chkEnableLUFSScanContainer advanced">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" is="emby-checkbox" class="chkEnableLUFSScan" checked />
|
<input type="checkbox" is="emby-checkbox" class="chkEnableLUFSScan" checked />
|
||||||
|
|
|
@ -129,7 +129,7 @@
|
||||||
<span>${AllowHevcEncoding}</span>
|
<span>${AllowHevcEncoding}</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="checkboxList">
|
<div class="checkboxList allowAv1EncodingOption">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" is="emby-checkbox" id="chkAllowAv1Encoding" />
|
<input type="checkbox" is="emby-checkbox" id="chkAllowAv1Encoding" />
|
||||||
<span>${AllowAv1Encoding}</span>
|
<span>${AllowAv1Encoding}</span>
|
||||||
|
@ -155,6 +155,16 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="videoToolboxTonemappingOptions hide">
|
||||||
|
<div class="checkboxListContainer checkboxContainer-withDescription">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" is="emby-checkbox" id="chkVideoToolboxTonemapping" />
|
||||||
|
<span>${EnableVideoToolboxTonemapping}</span>
|
||||||
|
</label>
|
||||||
|
<div class="fieldDescription checkboxFieldDescription">${AllowVideoToolboxTonemappingHelp}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="tonemappingOptions hide">
|
<div class="tonemappingOptions hide">
|
||||||
<div class="checkboxListContainer checkboxContainer-withDescription">
|
<div class="checkboxListContainer checkboxContainer-withDescription">
|
||||||
<label>
|
<label>
|
||||||
|
|
|
@ -32,6 +32,7 @@ function loadPage(page, config, systemInfo) {
|
||||||
$('#txtVaapiDevice', page).val(config.VaapiDevice || '');
|
$('#txtVaapiDevice', page).val(config.VaapiDevice || '');
|
||||||
page.querySelector('#chkTonemapping').checked = config.EnableTonemapping;
|
page.querySelector('#chkTonemapping').checked = config.EnableTonemapping;
|
||||||
page.querySelector('#chkVppTonemapping').checked = config.EnableVppTonemapping;
|
page.querySelector('#chkVppTonemapping').checked = config.EnableVppTonemapping;
|
||||||
|
page.querySelector('#chkVideoToolboxTonemapping').checked = config.EnableVideoToolboxTonemapping;
|
||||||
page.querySelector('#selectTonemappingAlgorithm').value = config.TonemappingAlgorithm;
|
page.querySelector('#selectTonemappingAlgorithm').value = config.TonemappingAlgorithm;
|
||||||
page.querySelector('#selectTonemappingMode').value = config.TonemappingMode;
|
page.querySelector('#selectTonemappingMode').value = config.TonemappingMode;
|
||||||
page.querySelector('#selectTonemappingRange').value = config.TonemappingRange;
|
page.querySelector('#selectTonemappingRange').value = config.TonemappingRange;
|
||||||
|
@ -93,6 +94,7 @@ function onSubmit() {
|
||||||
config.VaapiDevice = $('#txtVaapiDevice', form).val();
|
config.VaapiDevice = $('#txtVaapiDevice', form).val();
|
||||||
config.EnableTonemapping = form.querySelector('#chkTonemapping').checked;
|
config.EnableTonemapping = form.querySelector('#chkTonemapping').checked;
|
||||||
config.EnableVppTonemapping = form.querySelector('#chkVppTonemapping').checked;
|
config.EnableVppTonemapping = form.querySelector('#chkVppTonemapping').checked;
|
||||||
|
config.EnableVideoToolboxTonemapping = form.querySelector('#chkVideoToolboxTonemapping').checked;
|
||||||
config.TonemappingAlgorithm = form.querySelector('#selectTonemappingAlgorithm').value;
|
config.TonemappingAlgorithm = form.querySelector('#selectTonemappingAlgorithm').value;
|
||||||
config.TonemappingMode = form.querySelector('#selectTonemappingMode').value;
|
config.TonemappingMode = form.querySelector('#selectTonemappingMode').value;
|
||||||
config.TonemappingRange = form.querySelector('#selectTonemappingRange').value;
|
config.TonemappingRange = form.querySelector('#selectTonemappingRange').value;
|
||||||
|
@ -206,7 +208,7 @@ $(document).on('pageinit', '#encodingSettingsPage', function () {
|
||||||
page.querySelector('.fld10bitHevcVp9HwDecoding').classList.add('hide');
|
page.querySelector('.fld10bitHevcVp9HwDecoding').classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.value == 'amf' || this.value == 'nvenc' || this.value == 'qsv' || this.value == 'vaapi' || this.value == 'rkmpp') {
|
if (this.value == 'amf' || this.value == 'nvenc' || this.value == 'qsv' || this.value == 'vaapi' || this.value == 'rkmpp' || this.value == 'videotoolbox') {
|
||||||
page.querySelector('.tonemappingOptions').classList.remove('hide');
|
page.querySelector('.tonemappingOptions').classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
page.querySelector('.tonemappingOptions').classList.add('hide');
|
page.querySelector('.tonemappingOptions').classList.add('hide');
|
||||||
|
@ -218,6 +220,14 @@ $(document).on('pageinit', '#encodingSettingsPage', function () {
|
||||||
page.querySelector('.fldIntelLp').classList.add('hide');
|
page.querySelector('.fldIntelLp').classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.value === 'videotoolbox') {
|
||||||
|
page.querySelector('.videoToolboxTonemappingOptions').classList.remove('hide');
|
||||||
|
page.querySelector('.allowAv1EncodingOption').classList.add('hide');
|
||||||
|
} else {
|
||||||
|
page.querySelector('.videoToolboxTonemappingOptions').classList.add('hide');
|
||||||
|
page.querySelector('.allowAv1EncodingOption').classList.remove('hide');
|
||||||
|
}
|
||||||
|
|
||||||
if (systemInfo.OperatingSystem.toLowerCase() === 'linux' && (this.value == 'qsv' || this.value == 'vaapi')) {
|
if (systemInfo.OperatingSystem.toLowerCase() === 'linux' && (this.value == 'qsv' || this.value == 'vaapi')) {
|
||||||
page.querySelector('.vppTonemappingOptions').classList.remove('hide');
|
page.querySelector('.vppTonemappingOptions').classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1792,5 +1792,11 @@
|
||||||
"ChannelResolutionSDPAL": "SD (PAL)",
|
"ChannelResolutionSDPAL": "SD (PAL)",
|
||||||
"ChannelResolutionHD": "HD",
|
"ChannelResolutionHD": "HD",
|
||||||
"ChannelResolutionFullHD": "Full HD",
|
"ChannelResolutionFullHD": "Full HD",
|
||||||
"ChannelResolutionUHD4K": "UHD (4K)"
|
"ChannelResolutionUHD4K": "UHD (4K)",
|
||||||
|
"EnableVideoToolboxTonemapping": "Povolit mapování tónů VideoToolbox",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "Hardwarově akcelerované mapování tónů pomocí VideoToolbox. Funguje s většinou formátů HDR, včetně HDR10, HDR10+ a HLG, ale nefunguje s Dolby Vision Profile 5. Má vyšší prioritu než jiné implementace OpenCL.",
|
||||||
|
"DeleteName": "Odstranit {0}",
|
||||||
|
"LabelUseReplayGainTagsHelp": "Zjistí, zda zvukové souboru obsahují informace o ReplayGain, a použije je místo výpočtu hodnoty LUFS. (Je méně výpočetně náročné. Nahradí možnost \"Skenování LUFS\")",
|
||||||
|
"LabelUseReplayGainTags": "Použít ReplayGain",
|
||||||
|
"AllowSubtitleManagement": "Povolit tomuto uživateli upravovat titulky"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1757,7 +1757,7 @@
|
||||||
"LogLevel.None": "Nichts",
|
"LogLevel.None": "Nichts",
|
||||||
"HeaderEpisodesStatus": "Episodenstatus",
|
"HeaderEpisodesStatus": "Episodenstatus",
|
||||||
"AllowSegmentDeletion": "Segmente löschen",
|
"AllowSegmentDeletion": "Segmente löschen",
|
||||||
"AllowSegmentDeletionHelp": "Alte Segmente löschen, nachdem sie zum Client gesendet wurden. Damit muss nicht die gesamte transkodierte Datei auf der Festplatte zwischengespeichert werden. Funktioniert nur bei aktivierter Drosselung. Deaktivieren Sie diese Option, wenn bei der Wiedergabe Probleme auftreten.",
|
"AllowSegmentDeletionHelp": "Alte Segmente löschen, nachdem sie vom Client heruntergeladen wurden. Damit muss nicht die gesamte transkodierte Datei auf der Festplatte zwischengespeichert werden. Deaktivieren Sie diese Option, wenn bei der Wiedergabe Probleme auftreten.",
|
||||||
"LabelThrottleDelaySeconds": "Drosseln nach",
|
"LabelThrottleDelaySeconds": "Drosseln nach",
|
||||||
"LabelThrottleDelaySecondsHelp": "Zeit in Sekunden, nach der die Transkodierung gedrosselt wird. Muss groß genug sein, damit der Client einen gesunden Puffer aufrechterhalten kann. Funktioniert nur wenn \"Transkodierung drosseln\" aktiviert ist.",
|
"LabelThrottleDelaySecondsHelp": "Zeit in Sekunden, nach der die Transkodierung gedrosselt wird. Muss groß genug sein, damit der Client einen gesunden Puffer aufrechterhalten kann. Funktioniert nur wenn \"Transkodierung drosseln\" aktiviert ist.",
|
||||||
"LabelSegmentKeepSeconds": "Zeit, wie lange Segmente behalten werden",
|
"LabelSegmentKeepSeconds": "Zeit, wie lange Segmente behalten werden",
|
||||||
|
@ -1787,5 +1787,7 @@
|
||||||
"LabelServerVersion": "Server-Version",
|
"LabelServerVersion": "Server-Version",
|
||||||
"LabelWebVersion": "Web-Version",
|
"LabelWebVersion": "Web-Version",
|
||||||
"ButtonEditUser": "Editiere Benutzer",
|
"ButtonEditUser": "Editiere Benutzer",
|
||||||
"DlnaMovedMessage": "Die DLNA-Funktion wurde in ein Plugin verschoben."
|
"DlnaMovedMessage": "Die DLNA-Funktion wurde in ein Plugin verschoben.",
|
||||||
|
"DeleteName": "Löschen {0}",
|
||||||
|
"AllowSubtitleManagement": "Erlaube dem Nutzer Untertitel zu bearbeiten"
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,14 +23,15 @@
|
||||||
"AllLibraries": "All libraries",
|
"AllLibraries": "All libraries",
|
||||||
"AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed to connect remotely. If left blank, all remote addresses will be allowed.",
|
"AllowedRemoteAddressesHelp": "Comma separated list of IP addresses or IP/netmask entries for networks that will be allowed to connect remotely. If left blank, all remote addresses will be allowed.",
|
||||||
"AllowCollectionManagement": "Allow this user to manage collections",
|
"AllowCollectionManagement": "Allow this user to manage collections",
|
||||||
|
"AllowSubtitleManagement": "Allow this user to edit subtitles",
|
||||||
"AllowFfmpegThrottling": "Throttle Transcodes",
|
"AllowFfmpegThrottling": "Throttle Transcodes",
|
||||||
"AllowFfmpegThrottlingHelp": "When a transcode or remux gets far enough ahead from the current playback position, pause the process so it will consume less resources. This is most useful when watching without seeking often. Turn this off if you experience playback issues.",
|
"AllowFfmpegThrottlingHelp": "When a transcode or remux gets far enough ahead from the current playback position, pause the process so it will consume less resources. This is most useful when watching without seeking often. Turn this off if you experience playback issues.",
|
||||||
"AllowSegmentDeletion": "Delete segments",
|
"AllowSegmentDeletion": "Delete segments",
|
||||||
"AllowSegmentDeletionHelp": "Delete old segments after they have been sent to the client. This prevents having to store the entire transcoded file on disk. Will only work with throttling enabled. Turn this off if you experience playback issues.",
|
"AllowSegmentDeletionHelp": "Delete old segments after they have been downloaded by the client. This prevents having to store the entire transcoded file on disk. Turn this off if you experience playback issues.",
|
||||||
"LabelThrottleDelaySeconds": "Throttle after",
|
"LabelThrottleDelaySeconds": "Throttle after",
|
||||||
"LabelThrottleDelaySecondsHelp": "Time in seconds after which the transcoder will be throttled. Must be large enough for the client to maintain a healthy buffer. Only works if throttling is enabled.",
|
"LabelThrottleDelaySecondsHelp": "Time in seconds after which the transcoder will be throttled. Must be large enough for the client to maintain a healthy buffer. Only works if throttling is enabled.",
|
||||||
"LabelSegmentKeepSeconds": "Time to keep segments",
|
"LabelSegmentKeepSeconds": "Time to keep segments",
|
||||||
"LabelSegmentKeepSecondsHelp": "Time in seconds for which segments should be kept before they are overwritten. Must be greater than \"Throttle after\". Only works if segment deletion is enabled.",
|
"LabelSegmentKeepSecondsHelp": "Time in seconds for which segments should be kept after they are downloaded by the client. Only works if segment deletion is enabled.",
|
||||||
"AllowHWTranscodingHelp": "Allow the tuner to transcode streams on the fly. This may help reduce transcoding required by the server.",
|
"AllowHWTranscodingHelp": "Allow the tuner to transcode streams on the fly. This may help reduce transcoding required by the server.",
|
||||||
"AllowMediaConversion": "Allow media conversion",
|
"AllowMediaConversion": "Allow media conversion",
|
||||||
"AllowMediaConversionHelp": "Grant or deny access to the convert media feature.",
|
"AllowMediaConversionHelp": "Grant or deny access to the convert media feature.",
|
||||||
|
@ -186,6 +187,7 @@
|
||||||
"DeleteImage": "Delete Image",
|
"DeleteImage": "Delete Image",
|
||||||
"DeleteImageConfirmation": "Are you sure you wish to delete this image?",
|
"DeleteImageConfirmation": "Are you sure you wish to delete this image?",
|
||||||
"DeleteMedia": "Delete media",
|
"DeleteMedia": "Delete media",
|
||||||
|
"DeleteName": "Delete {0}",
|
||||||
"DeleteUser": "Delete User",
|
"DeleteUser": "Delete User",
|
||||||
"DeleteUserConfirmation": "Are you sure you wish to delete this user?",
|
"DeleteUserConfirmation": "Are you sure you wish to delete this user?",
|
||||||
"Depressed": "Depressed",
|
"Depressed": "Depressed",
|
||||||
|
@ -899,6 +901,8 @@
|
||||||
"LabelTypeText": "Text",
|
"LabelTypeText": "Text",
|
||||||
"LabelUnstable": "Unstable",
|
"LabelUnstable": "Unstable",
|
||||||
"LabelUser": "User",
|
"LabelUser": "User",
|
||||||
|
"LabelUseReplayGainTagsHelp": "Scan audio files for replaygain tags and use them instead of computing LUFS value. (Uses less computing power. Will override 'LUFS Scan' option)",
|
||||||
|
"LabelUseReplayGainTags": "Use ReplayGain Tags",
|
||||||
"LabelUserAgent": "User agent",
|
"LabelUserAgent": "User agent",
|
||||||
"LabelUserLoginAttemptsBeforeLockout": "Failed login tries before user is locked out",
|
"LabelUserLoginAttemptsBeforeLockout": "Failed login tries before user is locked out",
|
||||||
"LabelUserMaxActiveSessions": "Maximum number of simultaneous user sessions",
|
"LabelUserMaxActiveSessions": "Maximum number of simultaneous user sessions",
|
||||||
|
@ -1547,6 +1551,8 @@
|
||||||
"EnableEnhancedNvdecDecoder": "Enable enhanced NVDEC decoder",
|
"EnableEnhancedNvdecDecoder": "Enable enhanced NVDEC decoder",
|
||||||
"EnableVppTonemapping": "Enable VPP Tone mapping",
|
"EnableVppTonemapping": "Enable VPP Tone mapping",
|
||||||
"AllowVppTonemappingHelp": "Full Intel driver based tone-mapping. Currently works only on certain hardware with HDR10 videos. This has a higher priority compared to another OpenCL implementation.",
|
"AllowVppTonemappingHelp": "Full Intel driver based tone-mapping. Currently works only on certain hardware with HDR10 videos. This has a higher priority compared to another OpenCL implementation.",
|
||||||
|
"EnableVideoToolboxTonemapping": "Enable VideoToolbox Tone mapping",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "Hardware-accelerated tone-mapping provided by VideoToolbox. It works with most HDR formats, including HDR10, HDR10+, and HLG, but does not work with Dolby Vision Profile 5. This has a higher priority compared to another OpenCL implementation.",
|
||||||
"Controls": "Controls",
|
"Controls": "Controls",
|
||||||
"LabelEnableGamepad": "Enable Gamepad",
|
"LabelEnableGamepad": "Enable Gamepad",
|
||||||
"EnableGamepadHelp": "Listen for input from any connected controllers. (Requires: 'TV' Display Mode)",
|
"EnableGamepadHelp": "Listen for input from any connected controllers. (Requires: 'TV' Display Mode)",
|
||||||
|
|
|
@ -396,7 +396,7 @@
|
||||||
"LabelCollection": "Colección",
|
"LabelCollection": "Colección",
|
||||||
"LabelCommunityRating": "Puntuación de la comunidad",
|
"LabelCommunityRating": "Puntuación de la comunidad",
|
||||||
"LabelContentType": "Tipo de contenido",
|
"LabelContentType": "Tipo de contenido",
|
||||||
"LabelCountry": "País",
|
"LabelCountry": "País/Región",
|
||||||
"LabelCriticRating": "Valoración de las críticas",
|
"LabelCriticRating": "Valoración de las críticas",
|
||||||
"LabelCurrentPassword": "Contraseña actual",
|
"LabelCurrentPassword": "Contraseña actual",
|
||||||
"LabelCustomCertificatePath": "Ruta del certificado SSL personalizado",
|
"LabelCustomCertificatePath": "Ruta del certificado SSL personalizado",
|
||||||
|
@ -1757,11 +1757,11 @@
|
||||||
"MessageRepositoryInstallDisclaimer": "ADVERTENCIA: Instalar un complemento de terceros conlleva riesgos. Puede contener código inestable o malicioso, y puede cambiar en cualquier momento. Solo instale complementos de autores en los que confíe.",
|
"MessageRepositoryInstallDisclaimer": "ADVERTENCIA: Instalar un complemento de terceros conlleva riesgos. Puede contener código inestable o malicioso, y puede cambiar en cualquier momento. Solo instale complementos de autores en los que confíe.",
|
||||||
"HeaderEpisodesStatus": "Estado de los episodios",
|
"HeaderEpisodesStatus": "Estado de los episodios",
|
||||||
"AllowSegmentDeletion": "No Permitir Ninguno",
|
"AllowSegmentDeletion": "No Permitir Ninguno",
|
||||||
"AllowSegmentDeletionHelp": "Elimine los segmentos antiguos después de que se hayan enviado al cliente. Esto evita tener que almacenar todo el archivo transcodificado en el disco. Solo funcionará con la limitación habilitada. Apáguelo si experimenta problemas de reproducción.",
|
"AllowSegmentDeletionHelp": "Elimine segmentos antiguos después de que el cliente los haya descargado. Esto evita tener que almacenar todo el archivo transcodificado en el disco. Desactívelo si tiene problemas de reproducción.",
|
||||||
"LabelThrottleDelaySecondsHelp": "Tiempo en segundos después del cual se acelerará el transcodificador. Debe ser lo suficientemente grande para que el cliente mantenga un búfer saludable. Solo funciona si el estrangulamiento \"throttling\" está habilitada.",
|
"LabelThrottleDelaySecondsHelp": "Tiempo en segundos después del cual se acelerará el transcodificador. Debe ser lo suficientemente grande para que el cliente mantenga un búfer saludable. Solo funciona si el estrangulamiento \"throttling\" está habilitada.",
|
||||||
"LabelSegmentKeepSeconds": "Tiempo que se mantendrán los segmentos",
|
"LabelSegmentKeepSeconds": "Tiempo que se mantendrán los segmentos",
|
||||||
"LabelThrottleDelaySeconds": "Limitar trás",
|
"LabelThrottleDelaySeconds": "Limitar trás",
|
||||||
"LabelSegmentKeepSecondsHelp": "Tiempo en segundos durante el cual se deben conservar los segmentos antes de que se sobrescriban. Debe ser mayor que \"Acelerar después\". Solo funciona si la eliminación de segmentos está habilitada.",
|
"LabelSegmentKeepSecondsHelp": "Tiempo en segundos durante el cual se deben conservar los segmentos después de que el cliente los descarga. Solo funciona si la eliminación de segmentos está habilitada.",
|
||||||
"LabelBackdropScreensaverInterval": "Intervalo del fondo protector de pantalla",
|
"LabelBackdropScreensaverInterval": "Intervalo del fondo protector de pantalla",
|
||||||
"LabelBackdropScreensaverIntervalHelp": "El tiempo en segundos entre diferentes fondos cuando se utiliza el fondo protector de pantalla.",
|
"LabelBackdropScreensaverIntervalHelp": "El tiempo en segundos entre diferentes fondos cuando se utiliza el fondo protector de pantalla.",
|
||||||
"AllowAv1Encoding": "Permitir encodificación en formato AV1",
|
"AllowAv1Encoding": "Permitir encodificación en formato AV1",
|
||||||
|
@ -1783,5 +1783,20 @@
|
||||||
"LabelSelectAudioNormalization": "Normalización de audio",
|
"LabelSelectAudioNormalization": "Normalización de audio",
|
||||||
"LabelTrackGain": "Ganancia de pista",
|
"LabelTrackGain": "Ganancia de pista",
|
||||||
"HeaderAllRecordings": "Todas las grabaciones",
|
"HeaderAllRecordings": "Todas las grabaciones",
|
||||||
"ButtonEditUser": "Editar usuario"
|
"ButtonEditUser": "Editar usuario",
|
||||||
|
"ChannelResolutionSD": "SD",
|
||||||
|
"ChannelResolutionSDPAL": "SD (PAL)",
|
||||||
|
"ChannelResolutionUHD4K": "UHD (4K)",
|
||||||
|
"ChannelResolutionHD": "HD",
|
||||||
|
"ChannelResolutionFullHD": "Full HD",
|
||||||
|
"DeleteName": "Eliminar {0}",
|
||||||
|
"LabelUseReplayGainTagsHelp": "Escanee archivos de audio en busca de etiquetas de ganancia de reproducción y utilícelas en lugar de calcular el valor LUFS. (Utiliza menos potencia. Anulará la opción 'Escaneo LUFS')",
|
||||||
|
"LabelUseReplayGainTags": "Utilizar etiquetas ReplayGain",
|
||||||
|
"EnableVideoToolboxTonemapping": "Habilitar el mapeo de tonos de VideoToolbox",
|
||||||
|
"AllowSubtitleManagement": "Permitir a este usuario editar los subtítulos",
|
||||||
|
"LabelBuildVersion": "Versión de compilación",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "Aceleración por hardware en mapeo de tonos por VideoToolbox. Funciona con la mayoría de los formatos HDR, incluidos HDR10, HDR10+ y HLG, pero no funciona con Dolby Vision Profile 5. Esto tiene una prioridad más alta en comparación con otra implementación de OpenCL.",
|
||||||
|
"LabelWebVersion": "Versión web",
|
||||||
|
"DlnaMovedMessage": "La funcionalidad DLNA se ha movido a complementos.",
|
||||||
|
"LabelServerVersion": "Versión del servidor"
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,7 +234,7 @@
|
||||||
"EnableNextVideoInfoOverlayHelp": "Näytä videotoiston lähestyessä loppua tietoja toistolistalta seuraavaksi toistettavasta videosta.",
|
"EnableNextVideoInfoOverlayHelp": "Näytä videotoiston lähestyessä loppua tietoja toistolistalta seuraavaksi toistettavasta videosta.",
|
||||||
"ClientSettings": "Pääteasetukset",
|
"ClientSettings": "Pääteasetukset",
|
||||||
"AllowFfmpegThrottlingHelp": "Kun transkoodaus tai remuksaus ehtii riittävästi toiston edelle, keskeytä käsittely resurssien säästämiseksi. Tämä on hyödyllistä lähinnä katseltaessa ilman toistokohdan jatkuvia vaihteluita. Poista asetus käytöstä, mikäli toistossa ilmenee ongelmia.",
|
"AllowFfmpegThrottlingHelp": "Kun transkoodaus tai remuksaus ehtii riittävästi toiston edelle, keskeytä käsittely resurssien säästämiseksi. Tämä on hyödyllistä lähinnä katseltaessa ilman toistokohdan jatkuvia vaihteluita. Poista asetus käytöstä, mikäli toistossa ilmenee ongelmia.",
|
||||||
"AllowFfmpegThrottling": "Rauhoita transkoodausta",
|
"AllowFfmpegThrottling": "Rajoita transkoodausta",
|
||||||
"ErrorDeletingItem": "Poistettaessa tiedostoa palvelimelta tapahtui virhe. Varmista, että Jellyfinillä on kirjoitusoikeus mediakansioon ja yritä uudelleen.",
|
"ErrorDeletingItem": "Poistettaessa tiedostoa palvelimelta tapahtui virhe. Varmista, että Jellyfinillä on kirjoitusoikeus mediakansioon ja yritä uudelleen.",
|
||||||
"ErrorAddingXmlTvFile": "Käytettäessä XMLTV-tiedostoa tapahtui virhe. Varmista, että tiedosto on olemassa ja yritä uudelleen.",
|
"ErrorAddingXmlTvFile": "Käytettäessä XMLTV-tiedostoa tapahtui virhe. Varmista, että tiedosto on olemassa ja yritä uudelleen.",
|
||||||
"ErrorAddingTunerDevice": "Lisättäessä viritintä tapahtui virhe. Varmista, että se on kytketty oikein ja yritä uudelleen.",
|
"ErrorAddingTunerDevice": "Lisättäessä viritintä tapahtui virhe. Varmista, että se on kytketty oikein ja yritä uudelleen.",
|
||||||
|
@ -1532,7 +1532,7 @@
|
||||||
"YoutubeDenied": "Pyydettyä videota ei voida toistaa upotetuilla soittimilla.",
|
"YoutubeDenied": "Pyydettyä videota ei voida toistaa upotetuilla soittimilla.",
|
||||||
"YoutubeNotFound": "Videota ei löydy.",
|
"YoutubeNotFound": "Videota ei löydy.",
|
||||||
"YoutubePlaybackError": "Pyydettyä videota ei voida toistaa.",
|
"YoutubePlaybackError": "Pyydettyä videota ei voida toistaa.",
|
||||||
"YoutubeBadRequest": "Epäkelpo pyyntö.",
|
"YoutubeBadRequest": "Epäkelpoinen pyyntö.",
|
||||||
"LabelSelectStereo": "Stereo",
|
"LabelSelectStereo": "Stereo",
|
||||||
"LabelSelectMono": "Mono",
|
"LabelSelectMono": "Mono",
|
||||||
"LabelSelectAudioChannels": "Kanavat",
|
"LabelSelectAudioChannels": "Kanavat",
|
||||||
|
@ -1754,10 +1754,10 @@
|
||||||
"LogLevel.Critical": "Kriittinen",
|
"LogLevel.Critical": "Kriittinen",
|
||||||
"LogLevel.None": "Ei mitään",
|
"LogLevel.None": "Ei mitään",
|
||||||
"HeaderEpisodesStatus": "Jaksojen tila",
|
"HeaderEpisodesStatus": "Jaksojen tila",
|
||||||
"AllowSegmentDeletionHelp": "Poista vanhat osiot kun ne on lähetetty päätteelle. Tämän ansiosta transkoodattua tiedostoa ei tarvitse säilyttää kokonaan. Toimii vain rauhoituksen ollessa käytössä. Poista käytöstä, jos kohtaat toisto-ongelmia.",
|
"AllowSegmentDeletionHelp": "Poista vanhat osiot kun ne on lähetetty päätteelle. Tämän ansiosta transkoodattua tiedostoa ei tarvitse säilyttää kokonaan. Toimii vain rajoituksen ollessa käytössä. Poista käytöstä, jos kohtaat toisto-ongelmia.",
|
||||||
"AllowSegmentDeletion": "Poista osiot",
|
"AllowSegmentDeletion": "Poista osiot",
|
||||||
"LabelThrottleDelaySeconds": "Rauhoita kun on kulunut",
|
"LabelThrottleDelaySeconds": "Rajoita kun on kulunut",
|
||||||
"LabelThrottleDelaySecondsHelp": "Aika sekunneissa, jonka kuluttua transkooderi rauhoitetaan. Tämän on oltava riittävän suuri, jotta päätelaite kykenee ylläpitämään reilua puskuria. Toimii vain rauhoituksen ollessa käytössä.",
|
"LabelThrottleDelaySecondsHelp": "Aika sekunneissa, jonka kuluttua transkooderi rajoitetaan. Tämän on oltava riittävän suuri, jotta päätelaite kykenee ylläpitämään reilua puskuria. Toimii vain rajoituksen ollessa käytössä.",
|
||||||
"LabelSegmentKeepSeconds": "Osioiden säilytysaika",
|
"LabelSegmentKeepSeconds": "Osioiden säilytysaika",
|
||||||
"LabelSegmentKeepSecondsHelp": "Aika sekunteina, jonka osiot säilytetään ennen päällekirjoitusta. Oltava \"Rahoita kun on kulunut\" -aikaa suurempi. Toimii vain osioiden poiston ollessa käytössä.",
|
"LabelSegmentKeepSecondsHelp": "Aika sekunteina, jonka osiot säilytetään ennen päällekirjoitusta. Oltava \"Rahoita kun on kulunut\" -aikaa suurempi. Toimii vain osioiden poiston ollessa käytössä.",
|
||||||
"LabelBackdropScreensaverInterval": "Taustanäytönsäästäjän ajoitus",
|
"LabelBackdropScreensaverInterval": "Taustanäytönsäästäjän ajoitus",
|
||||||
|
@ -1787,5 +1787,10 @@
|
||||||
"DlnaMovedMessage": "DLNA-ominaisuus on siirtynyt lisäosaan.",
|
"DlnaMovedMessage": "DLNA-ominaisuus on siirtynyt lisäosaan.",
|
||||||
"LabelBuildVersion": "Käännetty versio",
|
"LabelBuildVersion": "Käännetty versio",
|
||||||
"LabelServerVersion": "Palvelimen versio",
|
"LabelServerVersion": "Palvelimen versio",
|
||||||
"LabelWebVersion": "Verkko versio"
|
"LabelWebVersion": "Verkko versio",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "laitteisto kiihdytetty",
|
||||||
|
"ChannelResolutionSDPAL": "SD (PAL)",
|
||||||
|
"ChannelResolutionFullHD": "Täysi HD",
|
||||||
|
"ChannelResolutionUHD4K": "UHD (4K)",
|
||||||
|
"AllowSubtitleManagement": "Anna tämän käyttäjän muuttaa tekstityksiä"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1244,5 +1244,19 @@
|
||||||
"LabelTextBackgroundColor": "צבע רקע טקסט",
|
"LabelTextBackgroundColor": "צבע רקע טקסט",
|
||||||
"LabelSystem": "מערכת",
|
"LabelSystem": "מערכת",
|
||||||
"LabelProfileContainersHelp": "מופרד בפסיקים. אפשר להשאיר ריק בשביל כל המכולות.",
|
"LabelProfileContainersHelp": "מופרד בפסיקים. אפשר להשאיר ריק בשביל כל המכולות.",
|
||||||
"LabelServerVersion": "גרסת שרת"
|
"LabelServerVersion": "גרסת שרת",
|
||||||
|
"ButtonEditUser": "ערוך משתמש",
|
||||||
|
"ChannelResolutionSD": "SD",
|
||||||
|
"ChannelResolutionSDPAL": "SD (PAL)",
|
||||||
|
"ChannelResolutionHD": "HD",
|
||||||
|
"ChannelResolutionFullHD": "Full HD",
|
||||||
|
"ChannelResolutionUHD4K": "UHD (4K)",
|
||||||
|
"DlnaMovedMessage": "פונקציונאליות DLNA עברה לפלאגין.",
|
||||||
|
"LabelBuildVersion": "גירסת בילד",
|
||||||
|
"LabelKodiMetadataEnablePathSubstitutionHelp": "אפשר נתיב חילופי לתמונות באמצעות הגדרות נתיב חלופי של השרת.",
|
||||||
|
"LabelKodiMetadataSaveImagePaths": "שמור נתיבי תמונות בקובץ NFO",
|
||||||
|
"LabelKodiMetadataSaveImagePathsHelp": "ההגדרה מומלצת אם יש לך שמות תמונות לא לפי הקווים המנחים של קודי.",
|
||||||
|
"LabelKodiMetadataUser": "שמור מידע צפייה של המשתמש בקובץ NFO עבור",
|
||||||
|
"LabelKodiMetadataUserHelp": "שמור מידע צפייה בקובץ NFO לשימוש של אפליקציות אחרות.",
|
||||||
|
"LabelMaxDaysForNextUp": "מקסימום ימים עבור 'הבא בתור'"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1786,5 +1786,16 @@
|
||||||
"LabelBuildVersion": "Versione Compilata",
|
"LabelBuildVersion": "Versione Compilata",
|
||||||
"LabelServerVersion": "Versione server",
|
"LabelServerVersion": "Versione server",
|
||||||
"LabelWebVersion": "Versione web",
|
"LabelWebVersion": "Versione web",
|
||||||
"ButtonEditUser": "Modifica utente"
|
"ButtonEditUser": "Modifica utente",
|
||||||
|
"DlnaMovedMessage": "La funzionalità DLNA è stata spostata su ad un plugin.",
|
||||||
|
"EnableVideoToolboxTonemapping": "Abilita mapping VideoToolbox Tone",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "Mapping del tono accellerato con hardware procurato da VideoToolbox. Funziona con la maggior parte dei formati HDR, inclusi HDR10, HDR10+, e HLG, ma non funziona con Doly Vision Profile 5. Questo ha una priorità più alta rispetto a un'altra implementazione OpenCL.",
|
||||||
|
"ChannelResolutionSD": "SD",
|
||||||
|
"ChannelResolutionSDPAL": "SD (PAL)",
|
||||||
|
"ChannelResolutionHD": "HD",
|
||||||
|
"ChannelResolutionFullHD": "Full HD",
|
||||||
|
"ChannelResolutionUHD4K": "UHD (4K)",
|
||||||
|
"LabelUseReplayGainTags": "Usa i tag ReplayGain",
|
||||||
|
"AllowSubtitleManagement": "Permetti a questo utente di modificare i sottotitoli",
|
||||||
|
"DeleteName": "Elimina {0}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1226,7 +1226,7 @@
|
||||||
"H264CrfHelp": "‘Constant Rate Factor’ (CRF) ir noklusējuma kvalitātes iestatījums priekš x264 un x265 kodētājiem. Pieļaujamās vērtības 0-51, kur zemāka vērtības atbilst labākai kvalitātei (jo mazāks skaitlis jo lielāki faili). Parasti izvēlas 18-28. Noklusējums x264 kodētājam ir 23, x265 ir 28. Noklusējuma vērtības var izmantot kā sākuma punktu.",
|
"H264CrfHelp": "‘Constant Rate Factor’ (CRF) ir noklusējuma kvalitātes iestatījums priekš x264 un x265 kodētājiem. Pieļaujamās vērtības 0-51, kur zemāka vērtības atbilst labākai kvalitātei (jo mazāks skaitlis jo lielāki faili). Parasti izvēlas 18-28. Noklusējums x264 kodētājam ir 23, x265 ir 28. Noklusējuma vērtības var izmantot kā sākuma punktu.",
|
||||||
"GuideProviderSelectListings": "Izvēlēties sarakstus",
|
"GuideProviderSelectListings": "Izvēlēties sarakstus",
|
||||||
"ErrorPlayerNotFound": "Atskaņotājs pieprasītajai multividei nav atrasts.",
|
"ErrorPlayerNotFound": "Atskaņotājs pieprasītajai multividei nav atrasts.",
|
||||||
"ErrorAddingListingsToSchedulesDirect": "Pievienojot sarakstu jūsu Schedules Direct kontam. Schedules Direct atļauj vienā kontā tikai ierobežotu grupu skaitu. Pirms turpināt, jums būs jāpiesakās Schedules Direct vietnē un jānoņem citi ieraksti no sava konta.",
|
"ErrorAddingListingsToSchedulesDirect": "Notika kļūda, pievienojot sarakstu jūsu Schedules Direct kontā. Schedules Direct pieļauj vienā kontā tikai ierobežotu sarakstu skaitu. Pirms turpināt, jums būtu jāpiesakās Schedules Direct vietnē un jānoņem citi saraksti no sava konta.",
|
||||||
"Engineer": "Skaņas inženieris",
|
"Engineer": "Skaņas inženieris",
|
||||||
"DirectPlayHelp": "Oriģinālais fails ir pilnībā saderīgs ar šo klientu un šī sesija saņem failu bez modifikācijas.",
|
"DirectPlayHelp": "Oriģinālais fails ir pilnībā saderīgs ar šo klientu un šī sesija saņem failu bez modifikācijas.",
|
||||||
"Cursive": "Kursīvs",
|
"Cursive": "Kursīvs",
|
||||||
|
|
|
@ -1728,7 +1728,7 @@
|
||||||
"MenuClose": "Menu sluiten",
|
"MenuClose": "Menu sluiten",
|
||||||
"UserMenu": "Gebruikersmenu",
|
"UserMenu": "Gebruikersmenu",
|
||||||
"Studio": "Studio",
|
"Studio": "Studio",
|
||||||
"AllowCollectionManagement": "Deze gebruiker toestaan verzamelingen te beheren",
|
"AllowCollectionManagement": "Deze gebruiker toestaan collecties te beheren",
|
||||||
"EnableAudioNormalization": "Geluidsnormalisatie",
|
"EnableAudioNormalization": "Geluidsnormalisatie",
|
||||||
"GetThePlugin": "Plug-in verkrijgen",
|
"GetThePlugin": "Plug-in verkrijgen",
|
||||||
"Notifications": "Meldingen",
|
"Notifications": "Meldingen",
|
||||||
|
@ -1754,8 +1754,8 @@
|
||||||
"LogLevel.Error": "Fout",
|
"LogLevel.Error": "Fout",
|
||||||
"LogLevel.Critical": "Kritiek",
|
"LogLevel.Critical": "Kritiek",
|
||||||
"LogLevel.None": "Geen",
|
"LogLevel.None": "Geen",
|
||||||
"AllowSegmentDeletionHelp": "Oude segmenten verwijderen nadat deze naar de cliënt zijn verzonden. Zo hoeft niet het gehele getranscodeerde bestand op de schijf te worden opgeslagen. Werkt alleen als afknijpen is ingeschakeld. Schakel dit uit als je afspeelproblemen ondervindt.",
|
"AllowSegmentDeletionHelp": "Oude segmenten verwijderen nadat deze door de cliënt zijn gedownload. Zo hoeft niet het gehele getranscodeerde bestand op de schijf te worden opgeslagen. Schakel dit uit als je afspeelproblemen ondervindt.",
|
||||||
"LabelSegmentKeepSecondsHelp": "Tijd in seconden die segmenten moeten worden bewaard voordat ze worden overschreven. Moet langer zijn dan \"Afknijpen na\". Werkt alleen als segmenten verwijderen is ingeschakeld.",
|
"LabelSegmentKeepSecondsHelp": "Tijd in seconden die segmenten moeten worden bewaard nadat ze door de cliënt zijn gedownload. Werkt alleen als segmenten verwijderen is ingeschakeld.",
|
||||||
"HeaderEpisodesStatus": "Status afleveringen",
|
"HeaderEpisodesStatus": "Status afleveringen",
|
||||||
"AllowSegmentDeletion": "Segmenten verwijderen",
|
"AllowSegmentDeletion": "Segmenten verwijderen",
|
||||||
"LabelThrottleDelaySeconds": "Afknijpen na",
|
"LabelThrottleDelaySeconds": "Afknijpen na",
|
||||||
|
@ -1791,5 +1791,11 @@
|
||||||
"ChannelResolutionSDPAL": "SD (PAL)",
|
"ChannelResolutionSDPAL": "SD (PAL)",
|
||||||
"ChannelResolutionHD": "HD",
|
"ChannelResolutionHD": "HD",
|
||||||
"ChannelResolutionFullHD": "Full HD",
|
"ChannelResolutionFullHD": "Full HD",
|
||||||
"ChannelResolutionUHD4K": "UHD (4K)"
|
"ChannelResolutionUHD4K": "UHD (4K)",
|
||||||
|
"EnableVideoToolboxTonemapping": "VideoToolbox-tonemapping inschakelen",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "Hardwareversnelde tonemapping van VideoToolbox. Dit werkt met de meeste HDR-formaten zoals HDR10, HDR10+ en HLG, maar werkt niet met Dolby Vision Profile 5. Dit heeft een hogere prioriteit in vergelijking met een andere OpenCL-implementatie.",
|
||||||
|
"LabelUseReplayGainTagsHelp": "Geluidsbestanden scannen op replaygain-tags en deze gebruiken in plaats van de LUFS-waarde te berekenen. (Gebruikt minder processorkracht. Zal de optie 'LUFS-scan' overschrijven)",
|
||||||
|
"AllowSubtitleManagement": "Deze gebruiker toestaan ondertiteling te bewerken",
|
||||||
|
"DeleteName": "{0} verwijderen",
|
||||||
|
"LabelUseReplayGainTags": "Replaygain-tags gebruiken"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1757,9 +1757,9 @@
|
||||||
"LogLevel.Error": "Błąd",
|
"LogLevel.Error": "Błąd",
|
||||||
"LogLevel.Critical": "Krytyczny",
|
"LogLevel.Critical": "Krytyczny",
|
||||||
"AllowSegmentDeletion": "Usuń segmenty",
|
"AllowSegmentDeletion": "Usuń segmenty",
|
||||||
"AllowSegmentDeletionHelp": "Usuń stare segmenty po ich przesłaniu do klienta. Zapobiega to konieczności przechowywania całego transkodowanego pliku na dysku. Będzie działać tylko z włączonym ograniczaniem. Wyłącz tę opcję, jeśli wystąpią problemy z odtwarzaniem.",
|
"AllowSegmentDeletionHelp": "Usuń stare segmenty po ich pobraniu przez klienta. Zapobiega to konieczności przechowywania całego transkodowanego pliku na dysku. Wyłącz tę opcję, jeśli wystąpią problemy z odtwarzaniem.",
|
||||||
"LabelSegmentKeepSeconds": "Czas przechowywania segmentów",
|
"LabelSegmentKeepSeconds": "Czas przechowywania segmentów",
|
||||||
"LabelSegmentKeepSecondsHelp": "Czas w sekundach, przez który segmenty powinny być przechowywane, zanim zostaną nadpisane. Musi być większy niż „Ograniczaj po”. Działa tylko wtedy, gdy włączone jest usuwanie segmentów.",
|
"LabelSegmentKeepSecondsHelp": "Czas w sekundach, przez który segmenty powinny być przechowywane po ich pobraniu przez klienta. Działa tylko wtedy, gdy włączone jest usuwanie segmentów.",
|
||||||
"LabelThrottleDelaySeconds": "Ograniczaj po",
|
"LabelThrottleDelaySeconds": "Ograniczaj po",
|
||||||
"LabelThrottleDelaySecondsHelp": "Czas w sekundach, po którym transkoder zostanie ograniczony. Musi być wystarczająco duży, aby klient mógł utrzymać właściwy bufor. Działa tylko wtedy, gdy włączone jest ograniczanie.",
|
"LabelThrottleDelaySecondsHelp": "Czas w sekundach, po którym transkoder zostanie ograniczony. Musi być wystarczająco duży, aby klient mógł utrzymać właściwy bufor. Działa tylko wtedy, gdy włączone jest ograniczanie.",
|
||||||
"LabelBackdropScreensaverIntervalHelp": "Czas w sekundach między różnymi fototapetami podczas korzystania z wygaszacza ekranu z fototapetami.",
|
"LabelBackdropScreensaverIntervalHelp": "Czas w sekundach między różnymi fototapetami podczas korzystania z wygaszacza ekranu z fototapetami.",
|
||||||
|
@ -1792,5 +1792,11 @@
|
||||||
"ChannelResolutionSDPAL": "SD (PAL)",
|
"ChannelResolutionSDPAL": "SD (PAL)",
|
||||||
"ChannelResolutionHD": "HD",
|
"ChannelResolutionHD": "HD",
|
||||||
"ChannelResolutionFullHD": "Full HD",
|
"ChannelResolutionFullHD": "Full HD",
|
||||||
"ChannelResolutionUHD4K": "UHD (4K)"
|
"ChannelResolutionUHD4K": "UHD (4K)",
|
||||||
|
"EnableVideoToolboxTonemapping": "Włącz mapowanie tonów VideoToolbox",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "Przyspieszane sprzętowo mapowanie tonów zapewniane przez VideoToolbox. Działa z większością formatów HDR, w tym HDR10, HDR10+ i HLG, ale nie działa z Dolby Vision Profile 5. Ma wyższy priorytet w porównaniu z inną implementacją OpenCL.",
|
||||||
|
"LabelUseReplayGainTagsHelp": "Skanuj pliki audio w poszukiwaniu znaczników wzmocnienia odtwarzania i używaj ich zamiast obliczać wartość LUFS. (Zużywa mniej mocy obliczeniowej. Zastępuje opcję „Skanowanie głośności dźwięku”)",
|
||||||
|
"LabelUseReplayGainTags": "Użyj tagów ReplayGain",
|
||||||
|
"AllowSubtitleManagement": "Zezwól temu użytkownikowi na edycję napisów",
|
||||||
|
"DeleteName": "Usuń {0}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,7 +221,7 @@
|
||||||
"LabelAudioLanguagePreference": "Idioma de áudio preferido",
|
"LabelAudioLanguagePreference": "Idioma de áudio preferido",
|
||||||
"LabelBlastMessageInterval": "Intervalo para envio de mensagens de reconhecimento",
|
"LabelBlastMessageInterval": "Intervalo para envio de mensagens de reconhecimento",
|
||||||
"LabelBlastMessageIntervalHelp": "Estabeeça o intervalo, em segundos, entre mensagens de exploração enviadas pelo servidor.",
|
"LabelBlastMessageIntervalHelp": "Estabeeça o intervalo, em segundos, entre mensagens de exploração enviadas pelo servidor.",
|
||||||
"LabelBlockContentWithTags": "Bloquear conteúdo com as etiquetas",
|
"LabelBlockContentWithTags": "Bloquear itens com etiquetas",
|
||||||
"LabelCachePath": "Localização da cache",
|
"LabelCachePath": "Localização da cache",
|
||||||
"LabelCachePathHelp": "Defina uma localização para os ficheiros de cache como, por exemplo, imagens. Deixe em branco para utilizar o padrão do servidor.",
|
"LabelCachePathHelp": "Defina uma localização para os ficheiros de cache como, por exemplo, imagens. Deixe em branco para utilizar o padrão do servidor.",
|
||||||
"LabelCancelled": "Cancelado",
|
"LabelCancelled": "Cancelado",
|
||||||
|
@ -1718,8 +1718,8 @@
|
||||||
"EnableAudioNormalization": "Normalização de áudio",
|
"EnableAudioNormalization": "Normalização de áudio",
|
||||||
"HeaderRecordingMetadataSaving": "Gravar metadados",
|
"HeaderRecordingMetadataSaving": "Gravar metadados",
|
||||||
"OptionDateEpisodeAdded": "Data de adição do episódio",
|
"OptionDateEpisodeAdded": "Data de adição do episódio",
|
||||||
"LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter um volume semelhante nas faixas. Isso tornará as varreduras da biblioteca mais demoradas e consumirá mais recursos.",
|
"LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter o mesmo volume entre as faixas. Isso fará com que as varreduras da biblioteca sejam mais longas e consumam mais recursos.",
|
||||||
"LabelEnableLUFSScan": "Ative a verificação LUFS",
|
"LabelEnableLUFSScan": "Ativar a verificação LUFS",
|
||||||
"HeaderDummyChapter": "Imagens dos Capítulos",
|
"HeaderDummyChapter": "Imagens dos Capítulos",
|
||||||
"LabelEnableAudioVbrHelp": "A taxa de bits variável oferece melhor qualidade relativamente à taxa de bits média, mas, em alguns casos raros, pode causar problemas de ‘buffer’ e compatibilidade.",
|
"LabelEnableAudioVbrHelp": "A taxa de bits variável oferece melhor qualidade relativamente à taxa de bits média, mas, em alguns casos raros, pode causar problemas de ‘buffer’ e compatibilidade.",
|
||||||
"Experimental": "Experimental",
|
"Experimental": "Experimental",
|
||||||
|
@ -1777,5 +1777,11 @@
|
||||||
"SaveRecordingNFO": "Guardar metadados EPG da gravação no NFO",
|
"SaveRecordingNFO": "Guardar metadados EPG da gravação no NFO",
|
||||||
"SaveRecordingNFOHelp": "Guardar metadados do fornecedor de listagens EPG juntamente com os ficheiros multimédia.",
|
"SaveRecordingNFOHelp": "Guardar metadados do fornecedor de listagens EPG juntamente com os ficheiros multimédia.",
|
||||||
"SaveRecordingImages": "Guardar imagens da gravação EPG",
|
"SaveRecordingImages": "Guardar imagens da gravação EPG",
|
||||||
"LabelTrackGain": "Ganho da Faixa"
|
"LabelTrackGain": "Ganho da Faixa",
|
||||||
|
"EnableVideoToolboxTonemapping": "Ativar o mapeamento de tons do VideoToolbox",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "Mapeamento de tons acelerado por hardware fornecido pelo VideoToolbox. Funciona com a maioria dos formatos HDR, incluindo HDR10, HDR10+ e HLG, mas não funciona com Dolby Vision Profile 5. Tem uma prioridade mais alta em comparação com outra implementação OpenCL.",
|
||||||
|
"LabelUseReplayGainTags": "Usar etiquetas ReplayGain",
|
||||||
|
"LabelUseReplayGainTagsHelp": "Procura etiquetas replaygain nos ficheiros áudio e utiliza-as em vez de calcular o valor LUFS. (Utiliza menos poder de computação. Substitui a opção 'Verificação LUFS')",
|
||||||
|
"AllowSubtitleManagement": "Permitir a este utilizador editar legendas",
|
||||||
|
"DeleteName": "Eliminar {0}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -888,7 +888,7 @@
|
||||||
"OptionEmbedSubtitles": "Incorporar no contentor",
|
"OptionEmbedSubtitles": "Incorporar no contentor",
|
||||||
"OptionDvd": "DVD",
|
"OptionDvd": "DVD",
|
||||||
"LabelBurnSubtitles": "Integrar legendas",
|
"LabelBurnSubtitles": "Integrar legendas",
|
||||||
"LabelBlockContentWithTags": "Bloquear conteúdo com as tags",
|
"LabelBlockContentWithTags": "Bloquear itens com etiquetas",
|
||||||
"LabelBlastMessageIntervalHelp": "Determina a duração em segundos entre as mensagens de exploração enviadas pelo servidor.",
|
"LabelBlastMessageIntervalHelp": "Determina a duração em segundos entre as mensagens de exploração enviadas pelo servidor.",
|
||||||
"LabelBlastMessageInterval": "Intervalo da mensagem Alive",
|
"LabelBlastMessageInterval": "Intervalo da mensagem Alive",
|
||||||
"LabelBitrate": "Taxa de bits",
|
"LabelBitrate": "Taxa de bits",
|
||||||
|
@ -1419,8 +1419,8 @@
|
||||||
"LabelEnableAudioVbrHelp": "A taxa de bits variavel oferece uma melhor que a taxa de bits médio, mas em alguns raros casos pode causar problemas relacionados a armazenamento e compatibilidade.",
|
"LabelEnableAudioVbrHelp": "A taxa de bits variavel oferece uma melhor que a taxa de bits médio, mas em alguns raros casos pode causar problemas relacionados a armazenamento e compatibilidade.",
|
||||||
"EnableAudioNormalizationHelp": "A normalização de áudio vai adicionar um ganho constante para manter a média em um nível desejável (-18db).",
|
"EnableAudioNormalizationHelp": "A normalização de áudio vai adicionar um ganho constante para manter a média em um nível desejável (-18db).",
|
||||||
"LabelParallelImageEncodingLimit": "Limite de codificação de imagens em paralelo",
|
"LabelParallelImageEncodingLimit": "Limite de codificação de imagens em paralelo",
|
||||||
"LabelEnableLUFSScan": "Habilitar busca LUFS",
|
"LabelEnableLUFSScan": "Ativar a verificação LUFS",
|
||||||
"LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter um volume igual entre as faixas. Isso tornará as varreduras da biblioteca mais demoradas e consumirá mais recursos.",
|
"LabelEnableLUFSScanHelp": "Os clientes podem normalizar a reprodução de áudio para obter o mesmo volume entre as faixas. Isso fará com que as varreduras da biblioteca sejam mais longas e consumam mais recursos.",
|
||||||
"LabelParallelImageEncodingLimitHelp": "Quantidade máxima de imagens codificadas que são permitidas rodar em paralelo. Ajustar este valor para 0 ira selecionar um limite baseado nas especificaçõrs do seu sistema.",
|
"LabelParallelImageEncodingLimitHelp": "Quantidade máxima de imagens codificadas que são permitidas rodar em paralelo. Ajustar este valor para 0 ira selecionar um limite baseado nas especificaçõrs do seu sistema.",
|
||||||
"GoHome": "Ir ao início",
|
"GoHome": "Ir ao início",
|
||||||
"GridView": "Visão em grade",
|
"GridView": "Visão em grade",
|
||||||
|
@ -1780,5 +1780,11 @@
|
||||||
"TonemappingModeHelp": "Selecione o modo de mapeamento de tons. Se ocorrerem erros de sobre-exposição, experimente o modo RGB.",
|
"TonemappingModeHelp": "Selecione o modo de mapeamento de tons. Se ocorrerem erros de sobre-exposição, experimente o modo RGB.",
|
||||||
"VideoRangeTypeNotSupported": "O tipo de intervalo do vídeo não é compatível",
|
"VideoRangeTypeNotSupported": "O tipo de intervalo do vídeo não é compatível",
|
||||||
"ChannelResolutionHD": "HD",
|
"ChannelResolutionHD": "HD",
|
||||||
"ChannelResolutionSD": "SD"
|
"ChannelResolutionSD": "SD",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "Mapeamento de tons acelerado por hardware fornecido pelo VideoToolbox. Funciona com a maioria dos formatos HDR, incluindo HDR10, HDR10+ e HLG, mas não funciona com Dolby Vision Profile 5. Tem uma prioridade mais alta em comparação com outra implementação OpenCL.",
|
||||||
|
"EnableVideoToolboxTonemapping": "Ativar o mapeamento de tons do VideoToolbox",
|
||||||
|
"LabelUseReplayGainTags": "Usar etiquetas ReplayGain",
|
||||||
|
"LabelUseReplayGainTagsHelp": "Procura etiquetas replaygain nos ficheiros áudio e utiliza-as em vez de calcular o valor LUFS. (Utiliza menos poder de computação. Substitui a opção 'Verificação LUFS')",
|
||||||
|
"AllowSubtitleManagement": "Permitir a este utilizador editar legendas",
|
||||||
|
"DeleteName": "Eliminar {0}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1753,11 +1753,11 @@
|
||||||
"LogLevel.Trace": "Відстеження",
|
"LogLevel.Trace": "Відстеження",
|
||||||
"LogLevel.Warning": "Попередження",
|
"LogLevel.Warning": "Попередження",
|
||||||
"AllowSegmentDeletion": "Видалити сегменти",
|
"AllowSegmentDeletion": "Видалити сегменти",
|
||||||
"AllowSegmentDeletionHelp": "Видаляє старі сегменти після того, як вони були надіслані клієнту. Це дозволяє уникнути необхідності зберігати весь перекодований файл на диску. Працює лише з увімкненим дроселюванням. Вимкніть цю опцію, якщо у вас виникають проблеми з відтворенням.",
|
"AllowSegmentDeletionHelp": "Видаляє старі сегменти після того, як вони були завантажені клієнтом. Це дозволяє уникнути необхідності зберігати весь перекодований файл на диску. Вимкніть цю опцію, якщо у вас виникають проблеми з відтворенням.",
|
||||||
"LabelThrottleDelaySecondsHelp": "Час у секундах, після якого транскодер буде пригальмовано. Має бути достатньо великим, щоб клієнт міг підтримувати працездатний буфер. Працює тільки якщо обмеження увімкнено.",
|
"LabelThrottleDelaySecondsHelp": "Час у секундах, після якого транскодер буде пригальмовано. Має бути достатньо великим, щоб клієнт міг підтримувати працездатний буфер. Працює тільки якщо обмеження увімкнено.",
|
||||||
"HeaderEpisodesStatus": "Статус епізодів",
|
"HeaderEpisodesStatus": "Статус епізодів",
|
||||||
"LabelThrottleDelaySeconds": "Обмежити після",
|
"LabelThrottleDelaySeconds": "Обмежити після",
|
||||||
"LabelSegmentKeepSecondsHelp": "Час у секундах, протягом якого сегменти мають зберігатися перед перезаписом. Має бути більшим за «Обмежити після». Працює тільки якщо увімкнено видалення сегментів.",
|
"LabelSegmentKeepSecondsHelp": "Час у секундах, протягом якого сегменти мають зберігатися після завантаження клієнтом. Працює тільки якщо увімкнено видалення сегментів.",
|
||||||
"LabelSegmentKeepSeconds": "Час збереження сегментів",
|
"LabelSegmentKeepSeconds": "Час збереження сегментів",
|
||||||
"LabelBackdropScreensaverIntervalHelp": "Час у секундах, через який змінюватиметься зображення заставки «Задники».",
|
"LabelBackdropScreensaverIntervalHelp": "Час у секундах, через який змінюватиметься зображення заставки «Задники».",
|
||||||
"LabelBackdropScreensaverInterval": "Інтервал заставки «Задники»",
|
"LabelBackdropScreensaverInterval": "Інтервал заставки «Задники»",
|
||||||
|
@ -1789,5 +1789,11 @@
|
||||||
"ChannelResolutionSDPAL": "SD (PAL)",
|
"ChannelResolutionSDPAL": "SD (PAL)",
|
||||||
"ChannelResolutionHD": "HD",
|
"ChannelResolutionHD": "HD",
|
||||||
"ChannelResolutionFullHD": "Full HD",
|
"ChannelResolutionFullHD": "Full HD",
|
||||||
"ChannelResolutionUHD4K": "UHD (4K)"
|
"ChannelResolutionUHD4K": "UHD (4K)",
|
||||||
|
"DeleteName": "Видалити {0}",
|
||||||
|
"AllowSubtitleManagement": "Дозволити цьому користувачеві редагувати субтитри",
|
||||||
|
"EnableVideoToolboxTonemapping": "Увімкнути відображення тонів VideoToolbox",
|
||||||
|
"LabelUseReplayGainTagsHelp": "Сканувати аудіофайли на наявність тегів replaygain і використовувати їх замість обчислення значення LUFS. (Використовує менше обчислювальної потужності. Перевизначає параметр \"Сканування LUFS\")",
|
||||||
|
"LabelUseReplayGainTags": "Використовувати теги ReplayGain",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "Апаратно прискорене тональне відображення, що надається VideoToolbox. Воно працює з більшістю форматів HDR, включаючи HDR10, HDR10+ та HLG, але не працює з Dolby Vision Profile 5. Воно має вищий пріоритет порівняно з іншими реалізаціями OpenCL."
|
||||||
}
|
}
|
||||||
|
|
|
@ -1757,10 +1757,10 @@
|
||||||
"LogLevel.None": "无",
|
"LogLevel.None": "无",
|
||||||
"LabelThrottleDelaySecondsHelp": "转码被限制的时间,以秒为单位。必须足够长,以便客户端能够保持有效的缓冲时长。仅在启用了限速功能时生效。",
|
"LabelThrottleDelaySecondsHelp": "转码被限制的时间,以秒为单位。必须足够长,以便客户端能够保持有效的缓冲时长。仅在启用了限速功能时生效。",
|
||||||
"AllowSegmentDeletion": "删除片段",
|
"AllowSegmentDeletion": "删除片段",
|
||||||
"AllowSegmentDeletionHelp": "将已发送给客户端的旧片段删除。这样可以避免在磁盘上存储整个转码文件。启用了限流功能时才能生效。如果出现播放问题,请关闭此选项。",
|
"AllowSegmentDeletionHelp": "自动删除已经被客户端下载过的旧视频片段。这样可以避免在磁盘上存储整个转码文件。如果出现播放问题,请关闭此选项。",
|
||||||
"LabelThrottleDelaySeconds": "向后缓存限制",
|
"LabelThrottleDelaySeconds": "向后缓存限制",
|
||||||
"LabelSegmentKeepSeconds": "缓存片段时长",
|
"LabelSegmentKeepSeconds": "缓存片段时长",
|
||||||
"LabelSegmentKeepSecondsHelp": "在覆盖之前应保留片段的时间(以秒为单位)。必须大于“向后缓存限制”。仅在启用片段删除时生效。",
|
"LabelSegmentKeepSecondsHelp": "已经被客户端下载过的视频片段应该在服务器上保留的时间(以秒为单位)。仅在启用片段删除时生效。",
|
||||||
"HeaderEpisodesStatus": "剧集状态",
|
"HeaderEpisodesStatus": "剧集状态",
|
||||||
"LabelBackdropScreensaverInterval": "屏幕保护程序间隔",
|
"LabelBackdropScreensaverInterval": "屏幕保护程序间隔",
|
||||||
"LabelBackdropScreensaverIntervalHelp": "不同屏幕保护切换的时间间隔秒数。",
|
"LabelBackdropScreensaverIntervalHelp": "不同屏幕保护切换的时间间隔秒数。",
|
||||||
|
@ -1792,5 +1792,11 @@
|
||||||
"ChannelResolutionHD": "高清",
|
"ChannelResolutionHD": "高清",
|
||||||
"ChannelResolutionFullHD": "全高清",
|
"ChannelResolutionFullHD": "全高清",
|
||||||
"ChannelResolutionUHD4K": "超高清(4K)",
|
"ChannelResolutionUHD4K": "超高清(4K)",
|
||||||
"DlnaMovedMessage": "此 DLNA 功能已转移到插件中。"
|
"DlnaMovedMessage": "此 DLNA 功能已转移到插件中。",
|
||||||
|
"EnableVideoToolboxTonemapping": "启用 VideoToolbox 色调映射",
|
||||||
|
"AllowSubtitleManagement": "允许该用户编辑字幕",
|
||||||
|
"DeleteName": "删除 {0}",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "由 VideoToolbox 提供硬件加速的色调映射。它支持大部分 HDR 格式,包括 HDR10、HDR10+ 和 HLG,但是不支持 DoVi Profile 5。此项比另一个 OpenCL 实现具有更高的优先级。",
|
||||||
|
"LabelUseReplayGainTagsHelp": "扫描音频文件中的 replaygain 标签并使用它们,而不是计算 LUFS 值。 (使用较少的算力。将覆盖“LUFS 扫描” 选项)",
|
||||||
|
"LabelUseReplayGainTags": "使用 ReplayGain 标签"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1716,11 +1716,11 @@
|
||||||
"SubtitleWhite": "白色",
|
"SubtitleWhite": "白色",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNames": "對額外內容優先使用內部的標題",
|
"PreferEmbeddedExtrasTitlesOverFileNames": "對額外內容優先使用內部的標題",
|
||||||
"AllowSegmentDeletion": "刪除片段",
|
"AllowSegmentDeletion": "刪除片段",
|
||||||
"AllowSegmentDeletionHelp": "將已經傳送給用戶端的片段刪除。這樣可以減少需要儲存的轉碼暫存檔。需要啟動限制轉碼才有效。如果播放出現問題,請關閉此選項。",
|
"AllowSegmentDeletionHelp": "自動刪除已經被客戶端下載過的舊視頻片段。這樣可以減少需要儲存的轉碼暫存檔。如果播放出現問題,請關閉此選項。",
|
||||||
"LabelThrottleDelaySeconds": "轉碼緩衝時間",
|
"LabelThrottleDelaySeconds": "轉碼緩衝時間",
|
||||||
"LabelThrottleDelaySecondsHelp": "限制轉碼的時間(秒)。必須足夠長,以保障用戶端擁有足夠的緩衝區。只有在限制轉碼啟用時有效。",
|
"LabelThrottleDelaySecondsHelp": "限制轉碼的時間(秒)。必須足夠長,以保障用戶端擁有足夠的緩衝區。只有在限制轉碼啟用時有效。",
|
||||||
"LabelSegmentKeepSeconds": "片段保留時間",
|
"LabelSegmentKeepSeconds": "片段保留時間",
|
||||||
"LabelSegmentKeepSecondsHelp": "片段在被覆寫前保留的時間。必須大於緩衝時間。只在刪除片段啟用時有效。",
|
"LabelSegmentKeepSecondsHelp": "已經被客戶端下載過的視頻片段應該在服務器上保留的時間(以秒為單位)。只在刪除片段啟用時有效。",
|
||||||
"GetThePlugin": "取得外掛",
|
"GetThePlugin": "取得外掛",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "額外內容通常和上級項目擁有相同的標題,勾選以使用內部標題。",
|
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "額外內容通常和上級項目擁有相同的標題,勾選以使用內部標題。",
|
||||||
"SecondarySubtitles": "次要字幕",
|
"SecondarySubtitles": "次要字幕",
|
||||||
|
@ -1785,5 +1785,17 @@
|
||||||
"ButtonEditUser": "編輯用戶",
|
"ButtonEditUser": "編輯用戶",
|
||||||
"LabelServerVersion": "伺服器版本",
|
"LabelServerVersion": "伺服器版本",
|
||||||
"LabelBuildVersion": "組建版本",
|
"LabelBuildVersion": "組建版本",
|
||||||
"LabelWebVersion": "網頁版本"
|
"LabelWebVersion": "網頁版本",
|
||||||
|
"DlnaMovedMessage": "此 DLNA 功能已轉移到插件中。",
|
||||||
|
"AllowSubtitleManagement": "允許該用戶編輯字幕",
|
||||||
|
"LabelUseReplayGainTags": "使用 ReplayGain 標籤",
|
||||||
|
"DeleteName": "刪除 {0}",
|
||||||
|
"ChannelResolutionSDPAL": "標清(PAL 制式)",
|
||||||
|
"LabelUseReplayGainTagsHelp": "掃描音頻文件中的 replaygain 標籤並使用它們,而不是計算 LUFS 值。 (使用較少的算力。將覆蓋“LUFS 掃描” 選項)",
|
||||||
|
"ChannelResolutionUHD4K": "超高清(4K)",
|
||||||
|
"EnableVideoToolboxTonemapping": "啟用 VideoToolbox 色調映射",
|
||||||
|
"AllowVideoToolboxTonemappingHelp": "由 VideoToolbox 提供硬件加速的色調映射。它支持大部分 HDR 格式,包括 HDR10、HDR10+ 和 HLG,但是不支持 DoVi Profile 5。此項比另一個 OpenCL 實現具有更高的優先級。",
|
||||||
|
"ChannelResolutionSD": "標清",
|
||||||
|
"ChannelResolutionHD": "高清",
|
||||||
|
"ChannelResolutionFullHD": "全高清"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue