mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge branch 'master' into jassub
This commit is contained in:
commit
4f11dc4311
81 changed files with 930 additions and 706 deletions
6
.github/workflows/codeql-analysis.yml
vendored
6
.github/workflows/codeql-analysis.yml
vendored
|
@ -21,11 +21,11 @@ jobs:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4
|
uses: github/codeql-action/init@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2.2.5
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
queries: +security-extended
|
queries: +security-extended
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4
|
uses: github/codeql-action/autobuild@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2.2.5
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4
|
uses: github/codeql-action/analyze@32dc499307d133bb5085bae78498c0ac2cf762d5 # v2.2.5
|
||||||
|
|
894
package-lock.json
generated
894
package-lock.json
generated
File diff suppressed because it is too large
Load diff
20
package.json
20
package.json
|
@ -5,7 +5,7 @@
|
||||||
"repository": "https://github.com/jellyfin/jellyfin-web",
|
"repository": "https://github.com/jellyfin/jellyfin-web",
|
||||||
"license": "GPL-2.0-or-later",
|
"license": "GPL-2.0-or-later",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "7.20.12",
|
"@babel/core": "7.21.0",
|
||||||
"@babel/eslint-parser": "7.19.1",
|
"@babel/eslint-parser": "7.19.1",
|
||||||
"@babel/eslint-plugin": "7.19.1",
|
"@babel/eslint-plugin": "7.19.1",
|
||||||
"@babel/plugin-proposal-class-properties": "7.18.6",
|
"@babel/plugin-proposal-class-properties": "7.18.6",
|
||||||
|
@ -13,14 +13,14 @@
|
||||||
"@babel/plugin-transform-modules-umd": "7.18.6",
|
"@babel/plugin-transform-modules-umd": "7.18.6",
|
||||||
"@babel/preset-env": "7.20.2",
|
"@babel/preset-env": "7.20.2",
|
||||||
"@babel/preset-react": "7.18.6",
|
"@babel/preset-react": "7.18.6",
|
||||||
"@babel/preset-typescript": "7.18.6",
|
"@babel/preset-typescript": "7.21.0",
|
||||||
"@types/escape-html": "1.0.2",
|
"@types/escape-html": "1.0.2",
|
||||||
"@types/loadable__component": "5.13.4",
|
"@types/loadable__component": "5.13.4",
|
||||||
"@types/lodash-es": "4.17.6",
|
"@types/lodash-es": "4.17.6",
|
||||||
"@types/react": "17.0.53",
|
"@types/react": "17.0.53",
|
||||||
"@types/react-dom": "17.0.19",
|
"@types/react-dom": "17.0.19",
|
||||||
"@typescript-eslint/eslint-plugin": "5.52.0",
|
"@typescript-eslint/eslint-plugin": "5.53.0",
|
||||||
"@typescript-eslint/parser": "5.52.0",
|
"@typescript-eslint/parser": "5.53.0",
|
||||||
"@uupaa/dynamic-import-polyfill": "1.0.2",
|
"@uupaa/dynamic-import-polyfill": "1.0.2",
|
||||||
"autoprefixer": "10.4.13",
|
"autoprefixer": "10.4.13",
|
||||||
"babel-loader": "9.1.2",
|
"babel-loader": "9.1.2",
|
||||||
|
@ -30,10 +30,10 @@
|
||||||
"copy-webpack-plugin": "11.0.0",
|
"copy-webpack-plugin": "11.0.0",
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"css-loader": "6.7.3",
|
"css-loader": "6.7.3",
|
||||||
"cssnano": "5.1.14",
|
"cssnano": "5.1.15",
|
||||||
"es-check": "7.1.0",
|
"es-check": "7.1.0",
|
||||||
"eslint": "8.34.0",
|
"eslint": "8.34.0",
|
||||||
"eslint-plugin-compat": "4.1.1",
|
"eslint-plugin-compat": "4.1.2",
|
||||||
"eslint-plugin-eslint-comments": "3.2.0",
|
"eslint-plugin-eslint-comments": "3.2.0",
|
||||||
"eslint-plugin-import": "2.27.5",
|
"eslint-plugin-import": "2.27.5",
|
||||||
"eslint-plugin-jsx-a11y": "6.7.1",
|
"eslint-plugin-jsx-a11y": "6.7.1",
|
||||||
|
@ -49,11 +49,11 @@
|
||||||
"postcss-loader": "7.0.2",
|
"postcss-loader": "7.0.2",
|
||||||
"postcss-preset-env": "8.0.1",
|
"postcss-preset-env": "8.0.1",
|
||||||
"postcss-scss": "4.0.6",
|
"postcss-scss": "4.0.6",
|
||||||
"sass": "1.58.1",
|
"sass": "1.58.3",
|
||||||
"sass-loader": "13.2.0",
|
"sass-loader": "13.2.0",
|
||||||
"source-map-loader": "4.0.1",
|
"source-map-loader": "4.0.1",
|
||||||
"style-loader": "3.3.1",
|
"style-loader": "3.3.1",
|
||||||
"stylelint": "14.16.1",
|
"stylelint": "15.2.0",
|
||||||
"stylelint-config-rational-order": "0.1.2",
|
"stylelint-config-rational-order": "0.1.2",
|
||||||
"stylelint-no-browser-hacks": "1.2.1",
|
"stylelint-no-browser-hacks": "1.2.1",
|
||||||
"stylelint-order": "6.0.2",
|
"stylelint-order": "6.0.2",
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
"@fontsource/noto-sans-tc": "4.5.12",
|
"@fontsource/noto-sans-tc": "4.5.12",
|
||||||
"@jellyfin/sdk": "unstable",
|
"@jellyfin/sdk": "unstable",
|
||||||
"@loadable/component": "5.15.3",
|
"@loadable/component": "5.15.3",
|
||||||
"blurhash": "2.0.4",
|
"blurhash": "2.0.5",
|
||||||
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
|
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
|
||||||
"classnames": "2.3.2",
|
"classnames": "2.3.2",
|
||||||
"core-js": "3.28.0",
|
"core-js": "3.28.0",
|
||||||
|
@ -93,7 +93,7 @@
|
||||||
"jassub": "1.4.5",
|
"jassub": "1.4.5",
|
||||||
"jellyfin-apiclient": "1.10.0",
|
"jellyfin-apiclient": "1.10.0",
|
||||||
"jquery": "3.6.3",
|
"jquery": "3.6.3",
|
||||||
"jstree": "3.3.14",
|
"jstree": "3.3.15",
|
||||||
"libarchive.js": "1.3.0",
|
"libarchive.js": "1.3.0",
|
||||||
"lodash-es": "4.17.21",
|
"lodash-es": "4.17.21",
|
||||||
"marked": "4.2.12",
|
"marked": "4.2.12",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React, { FunctionComponent, useEffect, useState } from 'react';
|
import React, { FunctionComponent, useEffect, useState } from 'react';
|
||||||
import { Outlet, useNavigate } from 'react-router-dom';
|
import { Outlet, useLocation, useNavigate } from 'react-router-dom';
|
||||||
import type { ConnectResponse } from 'jellyfin-apiclient';
|
import type { ConnectResponse } from 'jellyfin-apiclient';
|
||||||
|
|
||||||
import alert from './alert';
|
import alert from './alert';
|
||||||
|
@ -31,11 +31,11 @@ const ConnectionRequired: FunctionComponent<ConnectionRequiredProps> = ({
|
||||||
isUserRequired = true
|
isUserRequired = true
|
||||||
}) => {
|
}) => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const location = useLocation();
|
||||||
|
|
||||||
const [ isLoading, setIsLoading ] = useState(true);
|
const [ isLoading, setIsLoading ] = useState(true);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
const bounce = async (connectionResponse: ConnectResponse) => {
|
const bounce = async (connectionResponse: ConnectResponse) => {
|
||||||
switch (connectionResponse.State) {
|
switch (connectionResponse.State) {
|
||||||
case ConnectionState.SignedIn:
|
case ConnectionState.SignedIn:
|
||||||
|
@ -45,12 +45,12 @@ const ConnectionRequired: FunctionComponent<ConnectionRequiredProps> = ({
|
||||||
return;
|
return;
|
||||||
case ConnectionState.ServerSignIn:
|
case ConnectionState.ServerSignIn:
|
||||||
// Bounce to the login page
|
// Bounce to the login page
|
||||||
console.debug('[ConnectionRequired] not logged in, redirecting to login page');
|
if (location.pathname === BounceRoutes.Login) {
|
||||||
navigate(BounceRoutes.Login, {
|
setIsLoading(false);
|
||||||
state: {
|
} else {
|
||||||
serverid: connectionResponse.ApiClient.serverId()
|
console.debug('[ConnectionRequired] not logged in, redirecting to login page');
|
||||||
}
|
navigate(`${BounceRoutes.Login}?serverid=${connectionResponse.ApiClient.serverId()}`);
|
||||||
});
|
}
|
||||||
return;
|
return;
|
||||||
case ConnectionState.ServerSelection:
|
case ConnectionState.ServerSelection:
|
||||||
// Bounce to select server page
|
// Bounce to select server page
|
||||||
|
@ -144,7 +144,7 @@ const ConnectionRequired: FunctionComponent<ConnectionRequiredProps> = ({
|
||||||
};
|
};
|
||||||
|
|
||||||
validateConnection();
|
validateConnection();
|
||||||
}, [ isAdminRequired, isUserRequired, navigate ]);
|
}, [ isAdminRequired, isUserRequired, location.pathname, navigate ]);
|
||||||
|
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
return <Loading />;
|
return <Loading />;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import dom from '../../scripts/dom';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import './actionSheet.scss';
|
import './actionSheet.scss';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../components/listview/listview.scss';
|
import '../../components/listview/listview.scss';
|
||||||
|
|
||||||
function getOffsets(elems) {
|
function getOffsets(elems) {
|
||||||
|
|
|
@ -124,7 +124,7 @@ class AppRouter {
|
||||||
isBack: action === Action.Pop
|
isBack: action === Action.Pop
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
console.info('[appRouter] "%s" route not found', normalizedPath, location);
|
// The route is not registered here, so it should be handled by react-router
|
||||||
this.currentRouteInfo = {
|
this.currentRouteInfo = {
|
||||||
route: {},
|
route: {},
|
||||||
path: normalizedPath + location.search
|
path: normalizedPath + location.search
|
||||||
|
|
|
@ -12,7 +12,7 @@ import '../../elements/emby-input/emby-input';
|
||||||
import '../../elements/emby-select/emby-select';
|
import '../../elements/emby-select/emby-select';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import toast from '../toast/toast';
|
import toast from '../toast/toast';
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import '../../elements/emby-button/emby-button';
|
||||||
import '../../elements/emby-button/paper-icon-button-light';
|
import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../../elements/emby-input/emby-input';
|
import '../../elements/emby-input/emby-input';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import template from './dialog.template.html';
|
import template from './dialog.template.html';
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { toBoolean } from '../../utils/string.ts';
|
||||||
import dom from '../../scripts/dom';
|
import dom from '../../scripts/dom';
|
||||||
|
|
||||||
import './dialoghelper.scss';
|
import './dialoghelper.scss';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import imageLoader from './images/imageLoader';
|
||||||
import globalize from '../scripts/globalize';
|
import globalize from '../scripts/globalize';
|
||||||
import layoutManager from './layoutManager';
|
import layoutManager from './layoutManager';
|
||||||
import { getParameterByName } from '../utils/url.ts';
|
import { getParameterByName } from '../utils/url.ts';
|
||||||
import '../assets/css/scrollstyles.scss';
|
import '../styles/scrollstyles.scss';
|
||||||
import '../elements/emby-itemscontainer/emby-itemscontainer';
|
import '../elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
|
@ -13,7 +13,7 @@ import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../../elements/emby-select/emby-select';
|
import '../../elements/emby-select/emby-select';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import template from './filtermenu.template.html';
|
import template from './filtermenu.template.html';
|
||||||
|
|
||||||
|
|
|
@ -17,13 +17,13 @@ import dom from '../../scripts/dom';
|
||||||
import './guide.scss';
|
import './guide.scss';
|
||||||
import './programs.scss';
|
import './programs.scss';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../elements/emby-programcell/emby-programcell';
|
import '../../elements/emby-programcell/emby-programcell';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../elements/emby-button/paper-icon-button-light';
|
import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../../elements/emby-tabs/emby-tabs';
|
import '../../elements/emby-tabs/emby-tabs';
|
||||||
import '../../elements/emby-scroller/emby-scroller';
|
import '../../elements/emby-scroller/emby-scroller';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import 'webcomponents.js/webcomponents-lite';
|
import 'webcomponents.js/webcomponents-lite';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import template from './tvguide.template.html';
|
import template from './tvguide.template.html';
|
||||||
|
|
|
@ -20,7 +20,7 @@ import '../../elements/emby-button/emby-button';
|
||||||
import '../../elements/emby-button/paper-icon-button-light';
|
import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import template from './itemMediaInfo.template.html';
|
import template from './itemMediaInfo.template.html';
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ import '../../elements/emby-select/emby-select';
|
||||||
import '../../elements/emby-toggle/emby-toggle';
|
import '../../elements/emby-toggle/emby-toggle';
|
||||||
import '../listview/listview.scss';
|
import '../listview/listview.scss';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import './style.scss';
|
import './style.scss';
|
||||||
import toast from '../toast/toast';
|
import toast from '../toast/toast';
|
||||||
import alert from '../alert';
|
import alert from '../alert';
|
||||||
|
|
|
@ -17,7 +17,7 @@ import '../listview/listview.scss';
|
||||||
import '../../elements/emby-button/paper-icon-button-light';
|
import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import '../../elements/emby-toggle/emby-toggle';
|
import '../../elements/emby-toggle/emby-toggle';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import './style.scss';
|
import './style.scss';
|
||||||
import toast from '../toast/toast';
|
import toast from '../toast/toast';
|
||||||
import confirm from '../confirm/confirm';
|
import confirm from '../confirm/confirm';
|
||||||
|
|
|
@ -15,8 +15,8 @@ import '../../elements/emby-textarea/emby-textarea';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../elements/emby-button/paper-icon-button-light';
|
import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import '../../assets/css/clearbutton.scss';
|
import '../../styles/clearbutton.scss';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import './style.scss';
|
import './style.scss';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import toast from '../toast/toast';
|
import toast from '../toast/toast';
|
||||||
|
|
|
@ -8,6 +8,8 @@ import { appRouter } from '../components/appRouter';
|
||||||
import * as inputManager from '../scripts/inputManager';
|
import * as inputManager from '../scripts/inputManager';
|
||||||
import toast from '../components/toast/toast';
|
import toast from '../components/toast/toast';
|
||||||
import confirm from '../components/confirm/confirm';
|
import confirm from '../components/confirm/confirm';
|
||||||
|
import * as dashboard from '../utils/dashboard';
|
||||||
|
import ServerConnections from '../components/ServerConnections';
|
||||||
|
|
||||||
// TODO: replace with each plugin version
|
// TODO: replace with each plugin version
|
||||||
const cacheParam = new Date().getTime();
|
const cacheParam = new Date().getTime();
|
||||||
|
@ -86,7 +88,9 @@ class PluginManager {
|
||||||
appRouter,
|
appRouter,
|
||||||
inputManager,
|
inputManager,
|
||||||
toast,
|
toast,
|
||||||
confirm
|
confirm,
|
||||||
|
dashboard,
|
||||||
|
ServerConnections
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
console.debug(`Loading plugin (via dynamic import): ${pluginSpec}`);
|
console.debug(`Loading plugin (via dynamic import): ${pluginSpec}`);
|
||||||
|
|
|
@ -4,7 +4,7 @@ import globalize from '../../scripts/globalize';
|
||||||
import layoutManager from '../layoutManager';
|
import layoutManager from '../layoutManager';
|
||||||
import loading from '../loading/loading';
|
import loading from '../loading/loading';
|
||||||
import scrollHelper from '../../scripts/scrollHelper';
|
import scrollHelper from '../../scripts/scrollHelper';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../elements/emby-collapse/emby-collapse';
|
import '../../elements/emby-collapse/emby-collapse';
|
||||||
import '../../elements/emby-input/emby-input';
|
import '../../elements/emby-input/emby-input';
|
||||||
|
@ -12,7 +12,7 @@ import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import './recordingcreator.scss';
|
import './recordingcreator.scss';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import template from './recordingeditor.template.html';
|
import template from './recordingeditor.template.html';
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import recordingHelper from './recordinghelper';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../elements/emby-button/paper-icon-button-light';
|
import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import './recordingfields.scss';
|
import './recordingfields.scss';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import toast from '../toast/toast';
|
import toast from '../toast/toast';
|
||||||
import template from './recordingfields.template.html';
|
import template from './recordingfields.template.html';
|
||||||
|
|
|
@ -4,7 +4,7 @@ import layoutManager from '../layoutManager';
|
||||||
import loading from '../loading/loading';
|
import loading from '../loading/loading';
|
||||||
import scrollHelper from '../../scripts/scrollHelper';
|
import scrollHelper from '../../scripts/scrollHelper';
|
||||||
import datetime from '../../scripts/datetime';
|
import datetime from '../../scripts/datetime';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../elements/emby-checkbox/emby-checkbox';
|
import '../../elements/emby-checkbox/emby-checkbox';
|
||||||
import '../../elements/emby-input/emby-input';
|
import '../../elements/emby-input/emby-input';
|
||||||
|
@ -13,7 +13,7 @@ import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import './recordingcreator.scss';
|
import './recordingcreator.scss';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import template from './seriesrecordingeditor.template.html';
|
import template from './seriesrecordingeditor.template.html';
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import globalize from '../../scripts/globalize';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
|
|
||||||
import '../../elements/emby-input/emby-input';
|
import '../../elements/emby-input/emby-input';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import './searchfields.scss';
|
import './searchfields.scss';
|
||||||
import layoutManager from '../layoutManager';
|
import layoutManager from '../layoutManager';
|
||||||
import browser from '../../scripts/browser';
|
import browser from '../../scripts/browser';
|
||||||
|
|
|
@ -7,7 +7,7 @@ import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import template from './sortmenu.template.html';
|
import template from './sortmenu.template.html';
|
||||||
|
|
||||||
function onSubmit(e) {
|
function onSubmit(e) {
|
||||||
|
|
|
@ -14,7 +14,7 @@ import '../formdialog.scss';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import './subtitleeditor.scss';
|
import './subtitleeditor.scss';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import toast from '../toast/toast';
|
import toast from '../toast/toast';
|
||||||
import confirm from '../confirm/confirm';
|
import confirm from '../confirm/confirm';
|
||||||
|
|
|
@ -13,7 +13,7 @@ import '../../elements/emby-select/emby-select';
|
||||||
import '../../elements/emby-slider/emby-slider';
|
import '../../elements/emby-slider/emby-slider';
|
||||||
import '../../elements/emby-input/emby-input';
|
import '../../elements/emby-input/emby-input';
|
||||||
import '../../elements/emby-checkbox/emby-checkbox';
|
import '../../elements/emby-checkbox/emby-checkbox';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import './subtitlesettings.scss';
|
import './subtitlesettings.scss';
|
||||||
import ServerConnections from '../ServerConnections';
|
import ServerConnections from '../ServerConnections';
|
||||||
import toast from '../toast/toast';
|
import toast from '../toast/toast';
|
||||||
|
|
|
@ -101,14 +101,16 @@
|
||||||
|
|
||||||
<div class="selectContainer hide">
|
<div class="selectContainer hide">
|
||||||
<select is="emby-select" id="selectTextColor" label="${LabelTextColor}">
|
<select is="emby-select" id="selectTextColor" label="${LabelTextColor}">
|
||||||
<option value="#ffffff">${White}</option>
|
<option value="#ffffff">${SubtitleWhite}</option>
|
||||||
<option value="#ffff00">${Yellow}</option>
|
<option value="#d3d3d3">${SubtitleLightGray}</option>
|
||||||
<option value="#008000">${Green}</option>
|
<option value="#808080">${SubtitleGray}</option>
|
||||||
<option value="#00ffff">${Cyan}</option>
|
<option value="#ffff00">${SubtitleYellow}</option>
|
||||||
<option value="#0000ff">${Blue}</option>
|
<option value="#008000">${SubtitleGreen}</option>
|
||||||
<option value="#ff00ff">${Magenta}</option>
|
<option value="#00ffff">${SubtitleCyan}</option>
|
||||||
<option value="#ff0000">${Red}</option>
|
<option value="#0000ff">${SubtitleBlue}</option>
|
||||||
<option value="#000000">${Black}</option>
|
<option value="#ff00ff">${SubtitleMagenta}</option>
|
||||||
|
<option value="#ff0000">${SubtitleRed}</option>
|
||||||
|
<option value="#000000">${SubtitleBlack}</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import '../listview/listview.scss';
|
||||||
import '../../elements/emby-button/paper-icon-button-light';
|
import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../../elements/emby-select/emby-select';
|
import '../../elements/emby-select/emby-select';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import './style.scss';
|
import './style.scss';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from '../../utils/dashboard';
|
||||||
import Events from '../../utils/events.ts';
|
import Events from '../../utils/events.ts';
|
||||||
|
|
|
@ -8,7 +8,7 @@ import globalize from '../../scripts/globalize';
|
||||||
import itemHelper from '../itemHelper';
|
import itemHelper from '../itemHelper';
|
||||||
import './upnextdialog.scss';
|
import './upnextdialog.scss';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../../elements/emby-select/emby-select';
|
import '../../elements/emby-select/emby-select';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../formdialog.scss';
|
import '../formdialog.scss';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import template from './viewSettings.template.html';
|
import template from './viewSettings.template.html';
|
||||||
|
|
||||||
function onSubmit(e) {
|
function onSubmit(e) {
|
||||||
|
|
|
@ -16,7 +16,7 @@ import imageHelper from '../../scripts/imagehelper';
|
||||||
import indicators from '../../components/indicators/indicators';
|
import indicators from '../../components/indicators/indicators';
|
||||||
import '../../components/listview/listview.scss';
|
import '../../components/listview/listview.scss';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
import taskButton from '../../scripts/taskbutton';
|
import taskButton from '../../scripts/taskbutton';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from '../../utils/dashboard';
|
||||||
|
|
|
@ -3,7 +3,7 @@ import loading from '../../components/loading/loading';
|
||||||
import globalize from '../../scripts/globalize';
|
import globalize from '../../scripts/globalize';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../components/listview/listview.scss';
|
import '../../components/listview/listview.scss';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from '../../utils/dashboard';
|
||||||
import alert from '../../components/alert';
|
import alert from '../../components/alert';
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
<div class="fieldDescription">${LabelDummyChapterDurationHelp}</div>
|
<div class="fieldDescription">${LabelDummyChapterDurationHelp}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="inputContainer">
|
<div class="inputContainer">
|
||||||
<input is="emby-input" type="number" id="valDummyChapterCount" label="${LabelDummyChapterCount}" min="1"></input>
|
<input is="emby-input" type="number" id="valDummyChapterCount" label="${LabelDummyChapterCount}" min="0"></input>
|
||||||
<div class="fieldDescription">${LabelDummyChapterCountHelp}</div>
|
<div class="fieldDescription">${LabelDummyChapterCountHelp}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="selectContainer">
|
<div class="selectContainer">
|
||||||
|
|
|
@ -22,7 +22,7 @@ import libraryMenu from '../../scripts/libraryMenu';
|
||||||
import globalize from '../../scripts/globalize';
|
import globalize from '../../scripts/globalize';
|
||||||
import browser from '../../scripts/browser';
|
import browser from '../../scripts/browser';
|
||||||
import { playbackManager } from '../../components/playback/playbackmanager';
|
import { playbackManager } from '../../components/playback/playbackmanager';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
import '../../elements/emby-checkbox/emby-checkbox';
|
import '../../elements/emby-checkbox/emby-checkbox';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
|
@ -1063,7 +1063,7 @@ function renderTagline(page, item) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderDetails(page, item, apiClient, context, isStatic) {
|
function renderDetails(page, item, apiClient, context) {
|
||||||
renderSimilarItems(page, item, context);
|
renderSimilarItems(page, item, context);
|
||||||
renderMoreFromSeason(page, item, apiClient);
|
renderMoreFromSeason(page, item, apiClient);
|
||||||
renderMoreFromArtist(page, item, apiClient);
|
renderMoreFromArtist(page, item, apiClient);
|
||||||
|
@ -1083,7 +1083,7 @@ function renderDetails(page, item, apiClient, context, isStatic) {
|
||||||
}
|
}
|
||||||
|
|
||||||
renderTags(page, item);
|
renderTags(page, item);
|
||||||
renderSeriesAirTime(page, item, isStatic);
|
renderSeriesAirTime(page, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
function enableScrollX() {
|
function enableScrollX() {
|
||||||
|
@ -1262,7 +1262,7 @@ function renderSimilarItems(page, item, context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderSeriesAirTime(page, item, isStatic) {
|
function renderSeriesAirTime(page, item) {
|
||||||
const seriesAirTime = page.querySelector('#seriesAirTime');
|
const seriesAirTime = page.querySelector('#seriesAirTime');
|
||||||
if (item.Type != 'Series') {
|
if (item.Type != 'Series') {
|
||||||
seriesAirTime.classList.add('hide');
|
seriesAirTime.classList.add('hide');
|
||||||
|
@ -1281,19 +1281,6 @@ function renderSeriesAirTime(page, item, isStatic) {
|
||||||
if (item.AirTime) {
|
if (item.AirTime) {
|
||||||
html += ' at ' + item.AirTime;
|
html += ' at ' + item.AirTime;
|
||||||
}
|
}
|
||||||
if (item.Studios.length) {
|
|
||||||
if (isStatic) {
|
|
||||||
html += ' on ' + escapeHtml(item.Studios[0].Name);
|
|
||||||
} else {
|
|
||||||
const context = inferContext(item);
|
|
||||||
const href = appRouter.getRouteUrl(item.Studios[0], {
|
|
||||||
context: context,
|
|
||||||
itemType: 'Studio',
|
|
||||||
serverId: item.ServerId
|
|
||||||
});
|
|
||||||
html += ' on <a class="textlink button-link" is="emby-linkbutton" href="' + href + '">' + escapeHtml(item.Studios[0].Name) + '</a>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (html) {
|
if (html) {
|
||||||
html = (item.Status == 'Ended' ? 'Aired ' : 'Airs ') + html;
|
html = (item.Status == 'Ended' ? 'Aired ' : 'Airs ') + html;
|
||||||
seriesAirTime.innerHTML = html;
|
seriesAirTime.innerHTML = html;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import globalize from '../../scripts/globalize';
|
||||||
import * as mainTabsManager from '../../components/maintabsmanager';
|
import * as mainTabsManager from '../../components/maintabsmanager';
|
||||||
import cardBuilder from '../../components/cardbuilder/cardBuilder';
|
import cardBuilder from '../../components/cardbuilder/cardBuilder';
|
||||||
import imageLoader from '../../components/images/imageLoader';
|
import imageLoader from '../../components/images/imageLoader';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
import '../../elements/emby-tabs/emby-tabs';
|
import '../../elements/emby-tabs/emby-tabs';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
|
|
|
@ -7,7 +7,7 @@ import layoutManager from '../components/layoutManager';
|
||||||
import loading from '../components/loading/loading';
|
import loading from '../components/loading/loading';
|
||||||
import browser from '../scripts/browser';
|
import browser from '../scripts/browser';
|
||||||
import '../components/listview/listview.scss';
|
import '../components/listview/listview.scss';
|
||||||
import '../assets/css/flexstyles.scss';
|
import '../styles/flexstyles.scss';
|
||||||
import '../elements/emby-itemscontainer/emby-itemscontainer';
|
import '../elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
import '../components/cardbuilder/card.scss';
|
import '../components/cardbuilder/card.scss';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
|
|
|
@ -9,11 +9,11 @@ import imageLoader from '../../components/images/imageLoader';
|
||||||
import libraryMenu from '../../scripts/libraryMenu';
|
import libraryMenu from '../../scripts/libraryMenu';
|
||||||
import * as mainTabsManager from '../../components/maintabsmanager';
|
import * as mainTabsManager from '../../components/maintabsmanager';
|
||||||
import globalize from '../../scripts/globalize';
|
import globalize from '../../scripts/globalize';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
import '../../elements/emby-tabs/emby-tabs';
|
import '../../elements/emby-tabs/emby-tabs';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from '../../utils/dashboard';
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
|
@ -15,10 +15,10 @@ import { appHost } from '../../../components/apphost';
|
||||||
import layoutManager from '../../../components/layoutManager';
|
import layoutManager from '../../../components/layoutManager';
|
||||||
import * as userSettings from '../../../scripts/settings/userSettings';
|
import * as userSettings from '../../../scripts/settings/userSettings';
|
||||||
import keyboardnavigation from '../../../scripts/keyboardNavigation';
|
import keyboardnavigation from '../../../scripts/keyboardNavigation';
|
||||||
import '../../../assets/css/scrollstyles.scss';
|
import '../../../styles/scrollstyles.scss';
|
||||||
import '../../../elements/emby-slider/emby-slider';
|
import '../../../elements/emby-slider/emby-slider';
|
||||||
import '../../../elements/emby-button/paper-icon-button-light';
|
import '../../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../../../assets/css/videoosd.scss';
|
import '../../../styles/videoosd.scss';
|
||||||
import ServerConnections from '../../../components/ServerConnections';
|
import ServerConnections from '../../../components/ServerConnections';
|
||||||
import shell from '../../../scripts/shell';
|
import shell from '../../../scripts/shell';
|
||||||
import SubtitleSync from '../../../components/subtitlesync/subtitlesync';
|
import SubtitleSync from '../../../components/subtitlesync/subtitlesync';
|
||||||
|
|
|
@ -10,7 +10,7 @@ import actionSheet from '../../../components/actionSheet/actionSheet';
|
||||||
import dom from '../../../scripts/dom';
|
import dom from '../../../scripts/dom';
|
||||||
import browser from '../../../scripts/browser';
|
import browser from '../../../scripts/browser';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../../../assets/css/flexstyles.scss';
|
import '../../../styles/flexstyles.scss';
|
||||||
import '../../../elements/emby-scroller/emby-scroller';
|
import '../../../elements/emby-scroller/emby-scroller';
|
||||||
import '../../../elements/emby-itemscontainer/emby-itemscontainer';
|
import '../../../elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
import '../../../components/cardbuilder/card.scss';
|
import '../../../components/cardbuilder/card.scss';
|
||||||
|
|
|
@ -9,7 +9,7 @@ import cardBuilder from '../../components/cardbuilder/cardBuilder';
|
||||||
import { playbackManager } from '../../components/playback/playbackmanager';
|
import { playbackManager } from '../../components/playback/playbackmanager';
|
||||||
import * as mainTabsManager from '../../components/maintabsmanager';
|
import * as mainTabsManager from '../../components/maintabsmanager';
|
||||||
import globalize from '../../scripts/globalize';
|
import globalize from '../../scripts/globalize';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
import '../../elements/emby-button/emby-button';
|
import '../../elements/emby-button/emby-button';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from '../../utils/dashboard';
|
||||||
|
|
|
@ -4,7 +4,7 @@ import datetime from '../../scripts/datetime';
|
||||||
import cardBuilder from '../../components/cardbuilder/cardBuilder';
|
import cardBuilder from '../../components/cardbuilder/cardBuilder';
|
||||||
import imageLoader from '../../components/images/imageLoader';
|
import imageLoader from '../../components/images/imageLoader';
|
||||||
import globalize from '../../scripts/globalize';
|
import globalize from '../../scripts/globalize';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import loading from '../../../components/loading/loading';
|
import loading from '../../../components/loading/loading';
|
||||||
import globalize from '../../../scripts/globalize';
|
import globalize from '../../../scripts/globalize';
|
||||||
import '../../../assets/css/dashboard.scss';
|
import '../../../styles/dashboard.scss';
|
||||||
import '../../../elements/emby-input/emby-input';
|
import '../../../elements/emby-input/emby-input';
|
||||||
import '../../../elements/emby-button/emby-button';
|
import '../../../elements/emby-button/emby-button';
|
||||||
import Dashboard from '../../../utils/dashboard';
|
import Dashboard from '../../../utils/dashboard';
|
||||||
|
|
|
@ -5,7 +5,7 @@ import browser from '../../scripts/browser';
|
||||||
import focusManager from '../../components/focusManager';
|
import focusManager from '../../components/focusManager';
|
||||||
import layoutManager from '../../components/layoutManager';
|
import layoutManager from '../../components/layoutManager';
|
||||||
import './emby-tabs.scss';
|
import './emby-tabs.scss';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
const EmbyTabs = Object.create(HTMLDivElement.prototype);
|
const EmbyTabs = Object.create(HTMLDivElement.prototype);
|
||||||
|
|
|
@ -6,7 +6,7 @@ import 'intersection-observer';
|
||||||
import 'classlist.js';
|
import 'classlist.js';
|
||||||
import 'whatwg-fetch';
|
import 'whatwg-fetch';
|
||||||
import 'resize-observer-polyfill';
|
import 'resize-observer-polyfill';
|
||||||
import './assets/css/site.scss';
|
import './styles/site.scss';
|
||||||
import React, { StrictMode } from 'react';
|
import React, { StrictMode } from 'react';
|
||||||
import * as ReactDOM from 'react-dom';
|
import * as ReactDOM from 'react-dom';
|
||||||
import Events from './utils/events.ts';
|
import Events from './utils/events.ts';
|
||||||
|
@ -24,7 +24,6 @@ import { appRouter, history } from './components/appRouter';
|
||||||
import './elements/emby-button/emby-button';
|
import './elements/emby-button/emby-button';
|
||||||
import './scripts/autoThemes';
|
import './scripts/autoThemes';
|
||||||
import './scripts/libraryMenu';
|
import './scripts/libraryMenu';
|
||||||
import './scripts/routes';
|
|
||||||
import './components/themeMediaPlayer';
|
import './components/themeMediaPlayer';
|
||||||
import './scripts/autoBackdrops';
|
import './scripts/autoBackdrops';
|
||||||
import { pageClassOn, serverAddress } from './utils/dashboard';
|
import { pageClassOn, serverAddress } from './utils/dashboard';
|
||||||
|
@ -39,6 +38,10 @@ import { currentSettings } from './scripts/settings/userSettings';
|
||||||
import taskButton from './scripts/taskbutton';
|
import taskButton from './scripts/taskbutton';
|
||||||
import App from './App.tsx';
|
import App from './App.tsx';
|
||||||
|
|
||||||
|
import './styles/livetv.scss';
|
||||||
|
import './styles/dashboard.scss';
|
||||||
|
import './styles/detailtable.scss';
|
||||||
|
|
||||||
function loadCoreDictionary() {
|
function loadCoreDictionary() {
|
||||||
const languages = ['af', 'ar', 'be-by', 'bg-bg', 'bn_bd', 'ca', 'cs', 'cy', 'da', 'de', 'el', 'en-gb', 'en-us', 'eo', 'es', 'es_419', 'es-ar', 'es_do', 'es-mx', 'et', 'eu', 'fa', 'fi', 'fil', 'fr', 'fr-ca', 'gl', 'gsw', 'he', 'hi-in', 'hr', 'hu', 'id', 'it', 'ja', 'kk', 'ko', 'lt-lt', 'lv', 'mr', 'ms', 'nb', 'nl', 'nn', 'pl', 'pr', 'pt', 'pt-br', 'pt-pt', 'ro', 'ru', 'sk', 'sl-si', 'sq', 'sv', 'ta', 'th', 'tr', 'uk', 'ur_pk', 'vi', 'zh-cn', 'zh-hk', 'zh-tw'];
|
const languages = ['af', 'ar', 'be-by', 'bg-bg', 'bn_bd', 'ca', 'cs', 'cy', 'da', 'de', 'el', 'en-gb', 'en-us', 'eo', 'es', 'es_419', 'es-ar', 'es_do', 'es-mx', 'et', 'eu', 'fa', 'fi', 'fil', 'fr', 'fr-ca', 'gl', 'gsw', 'he', 'hi-in', 'hr', 'hu', 'id', 'it', 'ja', 'kk', 'ko', 'lt-lt', 'lv', 'mr', 'ms', 'nb', 'nl', 'nn', 'pl', 'pr', 'pt', 'pt-br', 'pt-pt', 'ro', 'ru', 'sk', 'sl-si', 'sq', 'sv', 'ta', 'th', 'tr', 'uk', 'ur_pk', 'vi', 'zh-cn', 'zh-hk', 'zh-tw'];
|
||||||
const translations = languages.map(function (language) {
|
const translations = languages.map(function (language) {
|
||||||
|
@ -89,13 +92,13 @@ function onGlobalizeInit() {
|
||||||
|
|
||||||
if (browser.tv && !browser.android) {
|
if (browser.tv && !browser.android) {
|
||||||
console.debug('using system fonts with explicit sizes');
|
console.debug('using system fonts with explicit sizes');
|
||||||
import('./assets/css/fonts.sized.scss');
|
import('./styles/fonts.sized.scss');
|
||||||
} else {
|
} else {
|
||||||
console.debug('using default fonts');
|
console.debug('using default fonts');
|
||||||
import('./assets/css/fonts.scss');
|
import('./styles/fonts.scss');
|
||||||
}
|
}
|
||||||
|
|
||||||
import('./assets/css/librarybrowser.scss');
|
import('./styles/librarybrowser.scss');
|
||||||
|
|
||||||
loadPlugins().then(onAppReady);
|
loadPlugins().then(onAppReady);
|
||||||
}
|
}
|
||||||
|
@ -135,7 +138,7 @@ async function onAppReady() {
|
||||||
console.debug('onAppReady: loading dependencies');
|
console.debug('onAppReady: loading dependencies');
|
||||||
|
|
||||||
if (browser.iOS) {
|
if (browser.iOS) {
|
||||||
import('./assets/css/ios.scss');
|
import('./styles/ios.scss');
|
||||||
}
|
}
|
||||||
|
|
||||||
Events.on(appHost, 'resume', () => {
|
Events.on(appHost, 'resume', () => {
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
import browser from '../../scripts/browser';
|
import browser from '../../scripts/browser';
|
||||||
import dom from '../../scripts/dom';
|
import dom from '../../scripts/dom';
|
||||||
import './navdrawer.scss';
|
import './navdrawer.scss';
|
||||||
import '../../assets/css/scrollstyles.scss';
|
import '../../styles/scrollstyles.scss';
|
||||||
import globalize from '../../scripts/globalize';
|
import globalize from '../../scripts/globalize';
|
||||||
|
|
||||||
function getTouches(e) {
|
function getTouches(e) {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import layoutManager from '../components/layoutManager';
|
||||||
import dom from '../scripts/dom';
|
import dom from '../scripts/dom';
|
||||||
import focusManager from '../components/focusManager';
|
import focusManager from '../components/focusManager';
|
||||||
import ResizeObserver from 'resize-observer-polyfill';
|
import ResizeObserver from 'resize-observer-polyfill';
|
||||||
import '../assets/css/scrollstyles.scss';
|
import '../styles/scrollstyles.scss';
|
||||||
import globalize from '../scripts/globalize';
|
import globalize from '../scripts/globalize';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { Navigate, Route, Routes } from 'react-router-dom';
|
||||||
import { ASYNC_ADMIN_ROUTES, ASYNC_USER_ROUTES, toAsyncPageRoute } from './asyncRoutes';
|
import { ASYNC_ADMIN_ROUTES, ASYNC_USER_ROUTES, toAsyncPageRoute } from './asyncRoutes';
|
||||||
import ConnectionRequired from '../components/ConnectionRequired';
|
import ConnectionRequired from '../components/ConnectionRequired';
|
||||||
import ServerContentPage from '../components/ServerContentPage';
|
import ServerContentPage from '../components/ServerContentPage';
|
||||||
import { LEGACY_ADMIN_ROUTES, LEGACY_USER_ROUTES, toViewManagerPageRoute } from './legacyRoutes';
|
import { LEGACY_ADMIN_ROUTES, LEGACY_PUBLIC_ROUTES, LEGACY_USER_ROUTES, toViewManagerPageRoute } from './legacyRoutes';
|
||||||
|
|
||||||
const AppRoutes = () => (
|
const AppRoutes = () => (
|
||||||
<Routes>
|
<Routes>
|
||||||
|
@ -28,6 +28,8 @@ const AppRoutes = () => (
|
||||||
{/* Public routes */}
|
{/* Public routes */}
|
||||||
<Route path='/' element={<ConnectionRequired isUserRequired={false} />}>
|
<Route path='/' element={<ConnectionRequired isUserRequired={false} />}>
|
||||||
<Route index element={<Navigate replace to='/home.html' />} />
|
<Route index element={<Navigate replace to='/home.html' />} />
|
||||||
|
|
||||||
|
{LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute)}
|
||||||
</Route>
|
</Route>
|
||||||
|
|
||||||
{/* Suppress warnings for unhandled routes */}
|
{/* Suppress warnings for unhandled routes */}
|
||||||
|
|
|
@ -21,4 +21,5 @@ export function toViewManagerPageRoute(route: LegacyRoute) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export * from './admin';
|
export * from './admin';
|
||||||
|
export * from './public';
|
||||||
export * from './user';
|
export * from './user';
|
||||||
|
|
81
src/routes/legacyRoutes/public.ts
Normal file
81
src/routes/legacyRoutes/public.ts
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
import { LegacyRoute } from '.';
|
||||||
|
|
||||||
|
export const LEGACY_PUBLIC_ROUTES: LegacyRoute[] = [
|
||||||
|
{
|
||||||
|
path: 'addserver.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'session/addServer/index',
|
||||||
|
view: 'session/addServer/index.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'selectserver.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'session/selectServer/index',
|
||||||
|
view: 'session/selectServer/index.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'login.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'session/login/index',
|
||||||
|
view: 'session/login/index.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'forgotpassword.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'session/forgotPassword/index',
|
||||||
|
view: 'session/forgotPassword/index.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'forgotpasswordpin.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'session/resetPassword/index',
|
||||||
|
view: 'session/resetPassword/index.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'wizardremoteaccess.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'wizard/remote/index',
|
||||||
|
view: 'wizard/remote/index.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'wizardfinish.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'wizard/finish/index',
|
||||||
|
view: 'wizard/finish/index.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'wizardlibrary.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'dashboard/library',
|
||||||
|
view: 'wizard/library.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'wizardsettings.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'wizard/settings/index',
|
||||||
|
view: 'wizard/settings/index.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'wizardstart.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'wizard/start/index',
|
||||||
|
view: 'wizard/start/index.html'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'wizarduser.html',
|
||||||
|
pageProps: {
|
||||||
|
controller: 'wizard/user/index',
|
||||||
|
view: 'wizard/user/index.html'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
|
@ -11,7 +11,7 @@ import '../../elements/emby-button/emby-button';
|
||||||
import '../../elements/emby-button/paper-icon-button-light';
|
import '../../elements/emby-button/paper-icon-button-light';
|
||||||
import '../../components/cardbuilder/card.scss';
|
import '../../components/cardbuilder/card.scss';
|
||||||
import '../../components/indicators/indicators.scss';
|
import '../../components/indicators/indicators.scss';
|
||||||
import '../../assets/css/flexstyles.scss';
|
import '../../styles/flexstyles.scss';
|
||||||
import Page from '../../components/Page';
|
import Page from '../../components/Page';
|
||||||
|
|
||||||
type MenuEntry = {
|
type MenuEntry = {
|
||||||
|
|
|
@ -303,7 +303,7 @@ import { getParameterByName } from '../utils/url.ts';
|
||||||
updateEditorNode(this, item);
|
updateEditorNode(this, item);
|
||||||
}).on('pagebeforeshow', '.metadataEditorPage', function () {
|
}).on('pagebeforeshow', '.metadataEditorPage', function () {
|
||||||
/* eslint-disable-next-line @babel/no-unused-expressions */
|
/* eslint-disable-next-line @babel/no-unused-expressions */
|
||||||
import('../assets/css/metadataeditor.scss');
|
import('../styles/metadataeditor.scss');
|
||||||
}).on('pagebeforeshow', '.metadataEditorPage', function () {
|
}).on('pagebeforeshow', '.metadataEditorPage', function () {
|
||||||
const page = this;
|
const page = this;
|
||||||
Dashboard.getCurrentUser().then(function (user) {
|
Dashboard.getCurrentUser().then(function (user) {
|
||||||
|
|
|
@ -22,8 +22,8 @@ import { getParameterByName } from '../utils/url.ts';
|
||||||
import '../elements/emby-button/paper-icon-button-light';
|
import '../elements/emby-button/paper-icon-button-light';
|
||||||
|
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../assets/css/scrollstyles.scss';
|
import '../styles/scrollstyles.scss';
|
||||||
import '../assets/css/flexstyles.scss';
|
import '../styles/flexstyles.scss';
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
||||||
|
|
|
@ -1,123 +0,0 @@
|
||||||
import '../elements/emby-button/emby-button';
|
|
||||||
import '../elements/emby-input/emby-input';
|
|
||||||
import '../scripts/livetvcomponents';
|
|
||||||
import '../elements/emby-button/paper-icon-button-light';
|
|
||||||
import '../elements/emby-itemscontainer/emby-itemscontainer';
|
|
||||||
import '../elements/emby-collapse/emby-collapse';
|
|
||||||
import '../elements/emby-select/emby-select';
|
|
||||||
import '../elements/emby-checkbox/emby-checkbox';
|
|
||||||
import '../elements/emby-slider/emby-slider';
|
|
||||||
import '../assets/css/livetv.scss';
|
|
||||||
import '../components/listview/listview.scss';
|
|
||||||
import '../assets/css/dashboard.scss';
|
|
||||||
import '../assets/css/detailtable.scss';
|
|
||||||
import { appRouter } from '../components/appRouter';
|
|
||||||
|
|
||||||
/* eslint-disable indent */
|
|
||||||
|
|
||||||
console.groupCollapsed('defining core routes');
|
|
||||||
|
|
||||||
function defineRoute(newRoute) {
|
|
||||||
const path = newRoute.alias ? newRoute.alias : newRoute.path;
|
|
||||||
console.debug('defining route: ' + path);
|
|
||||||
newRoute.dictionary = 'core';
|
|
||||||
appRouter.addRoute(path, newRoute);
|
|
||||||
}
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/addserver.html',
|
|
||||||
path: 'session/addServer/index.html',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true,
|
|
||||||
startup: true,
|
|
||||||
controller: 'session/addServer/index'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/selectserver.html',
|
|
||||||
path: 'session/selectServer/index.html',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true,
|
|
||||||
startup: true,
|
|
||||||
controller: 'session/selectServer/index',
|
|
||||||
type: 'selectserver'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/login.html',
|
|
||||||
path: 'session/login/index.html',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true,
|
|
||||||
startup: true,
|
|
||||||
controller: 'session/login/index',
|
|
||||||
type: 'login'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/forgotpassword.html',
|
|
||||||
path: 'session/forgotPassword/index.html',
|
|
||||||
anonymous: true,
|
|
||||||
startup: true,
|
|
||||||
controller: 'session/forgotPassword/index'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/forgotpasswordpin.html',
|
|
||||||
path: 'session/resetPassword/index.html',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true,
|
|
||||||
startup: true,
|
|
||||||
controller: 'session/resetPassword/index'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/wizardremoteaccess.html',
|
|
||||||
path: 'wizard/remote/index.html',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true,
|
|
||||||
controller: 'wizard/remote/index'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/wizardfinish.html',
|
|
||||||
path: 'wizard/finish/index.html',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true,
|
|
||||||
controller: 'wizard/finish/index'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/wizardlibrary.html',
|
|
||||||
path: 'wizard/library.html',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true,
|
|
||||||
controller: 'dashboard/library'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/wizardsettings.html',
|
|
||||||
path: 'wizard/settings/index.html',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true,
|
|
||||||
controller: 'wizard/settings/index'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/wizardstart.html',
|
|
||||||
path: 'wizard/start/index.html',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true,
|
|
||||||
controller: 'wizard/start/index'
|
|
||||||
});
|
|
||||||
|
|
||||||
defineRoute({
|
|
||||||
alias: '/wizarduser.html',
|
|
||||||
path: 'wizard/user/index.html',
|
|
||||||
controller: 'wizard/user/index',
|
|
||||||
autoFocus: false,
|
|
||||||
anonymous: true
|
|
||||||
});
|
|
||||||
|
|
||||||
console.groupEnd('defining core routes');
|
|
||||||
|
|
||||||
/* eslint-enable indent */
|
|
|
@ -1,6 +1,6 @@
|
||||||
import focusManager from '../components/focusManager';
|
import focusManager from '../components/focusManager';
|
||||||
import dom from './dom';
|
import dom from './dom';
|
||||||
import '../assets/css/scrollstyles.scss';
|
import '../styles/scrollstyles.scss';
|
||||||
|
|
||||||
function getBoundingClientRect(elem) {
|
function getBoundingClientRect(elem) {
|
||||||
// Support: BlackBerry 5, iOS 3 (original iPhone)
|
// Support: BlackBerry 5, iOS 3 (original iPhone)
|
||||||
|
|
|
@ -1689,5 +1689,16 @@
|
||||||
"LabelDummyChapterCountHelp": "Максімальная колькасць выяваў раздзелаў, якія будуць выняты для кожнага медыяфайла.",
|
"LabelDummyChapterCountHelp": "Максімальная колькасць выяваў раздзелаў, якія будуць выняты для кожнага медыяфайла.",
|
||||||
"LabelChapterImageResolution": "Дазвол:",
|
"LabelChapterImageResolution": "Дазвол:",
|
||||||
"LabelChapterImageResolutionHelp": "Дазвол вынятых малюнкаў раздзелаў.",
|
"LabelChapterImageResolutionHelp": "Дазвол вынятых малюнкаў раздзелаў.",
|
||||||
"ResolutionMatchSource": "Супадзенне з крыніцай"
|
"ResolutionMatchSource": "Супадзенне з крыніцай",
|
||||||
|
"SecondarySubtitles": "Дадатковыя субтытры",
|
||||||
|
"SubtitleBlack": "Чорны",
|
||||||
|
"SubtitleBlue": "Сіні",
|
||||||
|
"SubtitleCyan": "Блакітны",
|
||||||
|
"SubtitleGray": "Шэры",
|
||||||
|
"SubtitleGreen": "Зялёны",
|
||||||
|
"SubtitleLightGray": "Светла-шэры",
|
||||||
|
"SubtitleMagenta": "Пурпурны",
|
||||||
|
"SubtitleRed": "Чырвоны",
|
||||||
|
"SubtitleWhite": "Белы",
|
||||||
|
"SubtitleYellow": "Жоўты"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1703,5 +1703,16 @@
|
||||||
"LabelChapterImageResolutionHelp": "Rozližení extrahovaných obrázků kapitol.",
|
"LabelChapterImageResolutionHelp": "Rozližení extrahovaných obrázků kapitol.",
|
||||||
"ResolutionMatchSource": "Stejné jako zdroj",
|
"ResolutionMatchSource": "Stejné jako zdroj",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNames": "Preferovat vložené názvy před názvy souborů pro doplňky",
|
"PreferEmbeddedExtrasTitlesOverFileNames": "Preferovat vložené názvy před názvy souborů pro doplňky",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Doplňky většinou mají stejný vložený název jako nadřazená položka. Zaškrtnutím je i přesto můžete upřednostnit."
|
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Doplňky většinou mají stejný vložený název jako nadřazená položka. Zaškrtnutím je i přesto můžete upřednostnit.",
|
||||||
|
"SecondarySubtitles": "Sekundární titulky",
|
||||||
|
"SubtitleBlack": "Černá",
|
||||||
|
"SubtitleBlue": "Modrá",
|
||||||
|
"SubtitleCyan": "Tyrkysová",
|
||||||
|
"SubtitleGray": "Šedá",
|
||||||
|
"SubtitleGreen": "Zelená",
|
||||||
|
"SubtitleLightGray": "Světle šedá",
|
||||||
|
"SubtitleMagenta": "Fialová",
|
||||||
|
"SubtitleRed": "Červená",
|
||||||
|
"SubtitleWhite": "Bílá",
|
||||||
|
"SubtitleYellow": "Žlutá"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1688,5 +1688,21 @@
|
||||||
"DownloadAll": "Alle Herunterladen",
|
"DownloadAll": "Alle Herunterladen",
|
||||||
"LabelStereoDownmixAlgorithm": "Stereo Downmix Algorithmus",
|
"LabelStereoDownmixAlgorithm": "Stereo Downmix Algorithmus",
|
||||||
"StereoDownmixAlgorithmHelp": "Algorithmus um Mehrkanal-Audio zu Stereo-Audio umzuwandeln.",
|
"StereoDownmixAlgorithmHelp": "Algorithmus um Mehrkanal-Audio zu Stereo-Audio umzuwandeln.",
|
||||||
"Experimental": "Experimentell"
|
"Experimental": "Experimentell",
|
||||||
|
"SaveRecordingNFO": "Speichern der EPG-Metadaten in NFO",
|
||||||
|
"SaveRecordingNFOHelp": "Speichern Sie Metadaten von EPG-Anbietern zusammen mit den Medien.",
|
||||||
|
"ResolutionMatchSource": "Quelle der Übereinstimmung",
|
||||||
|
"PreferEmbeddedExtrasTitlesOverFileNames": "Eingebettete Titel gegenüber Dateinamen für Extras bevorzugen",
|
||||||
|
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Extras haben oft denselben eingebetteten Namen wie die übergeordnete Datei. Aktivieren Sie diese Option, um trotzdem eingebettete Titel für sie zu verwenden.",
|
||||||
|
"SaveRecordingImages": "Speichern der EPG-Bilder der Aufnahme",
|
||||||
|
"SaveRecordingImagesHelp": "Speichern Sie Bilder von EPG-Anbietern zusammen mit den Medien.",
|
||||||
|
"SecondarySubtitles": "Sekundäre Untertitel",
|
||||||
|
"HeaderDummyChapter": "Kapitel Bilder",
|
||||||
|
"HeaderRecordingMetadataSaving": "Aufzeichnung von Metadaten",
|
||||||
|
"LabelDummyChapterDuration": "Intervall:",
|
||||||
|
"LabelDummyChapterDurationHelp": "Das Intervall für die Extraktion des Kapitelbildes in Sekunden.",
|
||||||
|
"LabelDummyChapterCount": "Limit:",
|
||||||
|
"LabelDummyChapterCountHelp": "Die maximale Anzahl von Kapitelbildern, die für jede Mediendatei extrahiert werden.",
|
||||||
|
"LabelChapterImageResolution": "Auflösung:",
|
||||||
|
"LabelChapterImageResolutionHelp": "Die Auflösung der extrahierten Kapitelbilder."
|
||||||
}
|
}
|
||||||
|
|
|
@ -1703,5 +1703,6 @@
|
||||||
"ResolutionMatchSource": "Match Source",
|
"ResolutionMatchSource": "Match Source",
|
||||||
"SaveRecordingNFO": "Save recording EPG metadata in NFO",
|
"SaveRecordingNFO": "Save recording EPG metadata in NFO",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNames": "Prefer embedded titles over filenames for extras",
|
"PreferEmbeddedExtrasTitlesOverFileNames": "Prefer embedded titles over filenames for extras",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Extras often have the same embedded name as the parent, check this to use embedded titles for them anyway."
|
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Extras often have the same embedded name as the parent, check this to use embedded titles for them anyway.",
|
||||||
|
"SecondarySubtitles": "Secondary Subtitles"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1462,10 +1462,20 @@
|
||||||
"Subtitle": "Subtitle",
|
"Subtitle": "Subtitle",
|
||||||
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "These settings also apply to any Google Cast playback started by this device.",
|
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "These settings also apply to any Google Cast playback started by this device.",
|
||||||
"SubtitleAppearanceSettingsDisclaimer": "Following settings do not apply to the graphical subtitles mentioned above or ASS/SSA subtitles that embed their own styles.",
|
"SubtitleAppearanceSettingsDisclaimer": "Following settings do not apply to the graphical subtitles mentioned above or ASS/SSA subtitles that embed their own styles.",
|
||||||
|
"SubtitleBlack": "Black",
|
||||||
|
"SubtitleBlue": "Blue",
|
||||||
|
"SubtitleCyan": "Cyan",
|
||||||
"SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority.",
|
"SubtitleDownloadersHelp": "Enable and rank your preferred subtitle downloaders in order of priority.",
|
||||||
|
"SubtitleGray": "Gray",
|
||||||
|
"SubtitleGreen": "Green",
|
||||||
|
"SubtitleLightGray": "Light Gray",
|
||||||
|
"SubtitleMagenta": "Magenta",
|
||||||
"SubtitleOffset": "Subtitle Offset",
|
"SubtitleOffset": "Subtitle Offset",
|
||||||
|
"SubtitleRed": "Red",
|
||||||
"Subtitles": "Subtitles",
|
"Subtitles": "Subtitles",
|
||||||
"SubtitleVerticalPositionHelp": "Line number where text appears. Positive numbers indicate top down. Negative numbers indicate bottom up.",
|
"SubtitleVerticalPositionHelp": "Line number where text appears. Positive numbers indicate top down. Negative numbers indicate bottom up.",
|
||||||
|
"SubtitleWhite": "White",
|
||||||
|
"SubtitleYellow": "Yellow",
|
||||||
"Suggestions": "Suggestions",
|
"Suggestions": "Suggestions",
|
||||||
"Sunday": "Sunday",
|
"Sunday": "Sunday",
|
||||||
"Sync": "Sync",
|
"Sync": "Sync",
|
||||||
|
|
|
@ -129,7 +129,7 @@
|
||||||
"ValueCodec": "Kodeka: {0}",
|
"ValueCodec": "Kodeka: {0}",
|
||||||
"ValueAudioCodec": "Audio-kodeka: {0}",
|
"ValueAudioCodec": "Audio-kodeka: {0}",
|
||||||
"ValueAlbumCount": "{0} album",
|
"ValueAlbumCount": "{0} album",
|
||||||
"UserProfilesIntro": "Jellyfinek erabiltzaileen profilentzako euskarria barne hartzen du, eta erabiltzaile bakoitzak bere doikuntzak, ugaltze-egoera eta gurasoen kontrola izatea ahalbidetzen du.",
|
"UserProfilesIntro": "Jellyfinek erabiltzaileen profilentzako euskarria barne hartzen du, eta erabiltzaile bakoitzak bere ezarpenak, ugaltze-egoera eta gurasoen kontrola izatea ahalbidetzen du.",
|
||||||
"UserAgentHelp": "Eman 'User-Agent' pertsonalizatutako http goiburu bat.",
|
"UserAgentHelp": "Eman 'User-Agent' pertsonalizatutako http goiburu bat.",
|
||||||
"UseEpisodeImagesInNextUpHelp": "\"Nobedadeak\" eta \"Ikusten jarraitu\" ataletan kapituluen irudiak agertuko dira miniatura gisa, seriearen miniatura nagusiaren ordez.",
|
"UseEpisodeImagesInNextUpHelp": "\"Nobedadeak\" eta \"Ikusten jarraitu\" ataletan kapituluen irudiak agertuko dira miniatura gisa, seriearen miniatura nagusiaren ordez.",
|
||||||
"UseEpisodeImagesInNextUp": "Erabili kapituluen irudiak \"Nobedadeak\" eta \"Ikusten jarraitu\" ataletan",
|
"UseEpisodeImagesInNextUp": "Erabili kapituluen irudiak \"Nobedadeak\" eta \"Ikusten jarraitu\" ataletan",
|
||||||
|
@ -188,7 +188,7 @@
|
||||||
"TabParentalControl": "Gurasoen kontrola",
|
"TabParentalControl": "Gurasoen kontrola",
|
||||||
"TabOther": "Bestelakoak",
|
"TabOther": "Bestelakoak",
|
||||||
"TabNotifications": "Jakinarazpenak",
|
"TabNotifications": "Jakinarazpenak",
|
||||||
"TabNfoSettings": "NFO doikuntzak",
|
"TabNfoSettings": "NFO ezarpenak",
|
||||||
"TabNetworks": "Kate TB",
|
"TabNetworks": "Kate TB",
|
||||||
"TabNetworking": "Sareak",
|
"TabNetworking": "Sareak",
|
||||||
"TabMyPlugins": "Nire osagarriak",
|
"TabMyPlugins": "Nire osagarriak",
|
||||||
|
@ -212,7 +212,7 @@
|
||||||
"Subtitles": "Azpitituluak",
|
"Subtitles": "Azpitituluak",
|
||||||
"SubtitleOffset": "Azpitituluak lekualdatzea",
|
"SubtitleOffset": "Azpitituluak lekualdatzea",
|
||||||
"SubtitleDownloadersHelp": "Gaitu eta sailkatu hobetsitako azpitituluen deskargagailuak lehentasun-ordenaren arabera.",
|
"SubtitleDownloadersHelp": "Gaitu eta sailkatu hobetsitako azpitituluen deskargagailuak lehentasun-ordenaren arabera.",
|
||||||
"SubtitleAppearanceSettingsDisclaimer": "Ondorengo doikuntzak ez zaizkie aplikatuko aurretik aipatutako azpititulu grafikoei, ezta ASS/SSA azpitituluei ere, baldin eta beren estiloak badituzte.",
|
"SubtitleAppearanceSettingsDisclaimer": "Ondorengo ezarpenak ez zaizkie aplikatuko aurretik aipatutako azpititulu grafikoei, ezta ASS/SSA azpitituluei ere, baldin eta beren estiloak badituzte.",
|
||||||
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Doikuntza horiek gailu honek hasitako Chromecast edozein erreprodukziori ere aplikatzen zaizkio.",
|
"SubtitleAppearanceSettingsAlsoPassedToCastDevices": "Doikuntza horiek gailu honek hasitako Chromecast edozein erreprodukziori ere aplikatzen zaizkio.",
|
||||||
"Subtitle": "Azpititulua",
|
"Subtitle": "Azpititulua",
|
||||||
"Studios": "Ikasketak",
|
"Studios": "Ikasketak",
|
||||||
|
@ -246,13 +246,13 @@
|
||||||
"SetUsingLastTracks": "Audioko/azpitituluetako pista aurreko itemarekin ezartzea",
|
"SetUsingLastTracks": "Audioko/azpitituluetako pista aurreko itemarekin ezartzea",
|
||||||
"SettingsWarning": "Balio horiek aldatzeak ezegonkortasuna edo konektagarritasun-akatsak eragin ditzake. Arazoren bat izanez gero, berriz ere bere balio lehenetsira aldatzea gomendatzen dizugu.",
|
"SettingsWarning": "Balio horiek aldatzeak ezegonkortasuna edo konektagarritasun-akatsak eragin ditzake. Arazoren bat izanez gero, berriz ere bere balio lehenetsira aldatzea gomendatzen dizugu.",
|
||||||
"SettingsSaved": "Konfigurazio gordea.",
|
"SettingsSaved": "Konfigurazio gordea.",
|
||||||
"Settings": "Doikuntzak",
|
"Settings": "Ezarpenak",
|
||||||
"ServerUpdateNeeded": "Zerbitzaria eguneratu egin behar da. Azken bertsioa deskargatzeko, bisitatu {0}",
|
"ServerUpdateNeeded": "Zerbitzaria eguneratu egin behar da. Azken bertsioa deskargatzeko, bisitatu {0}",
|
||||||
"ServerRestartNeededAfterPluginInstall": "Jellyfin berriz hasi beharko da osagarri bat instalatu ondoren.",
|
"ServerRestartNeededAfterPluginInstall": "Jellyfin berriz hasi beharko da osagarri bat instalatu ondoren.",
|
||||||
"ServerNameIsShuttingDown": "{0}(e)ko zerbitzaria itzaltzen ari da.",
|
"ServerNameIsShuttingDown": "{0}(e)ko zerbitzaria itzaltzen ari da.",
|
||||||
"ServerNameIsRestarting": "{0}(e)ko zerbitzaria berrabiarazten ari da.",
|
"ServerNameIsRestarting": "{0}(e)ko zerbitzaria berrabiarazten ari da.",
|
||||||
"SeriesYearToPresent": "{0} - Gaur egun",
|
"SeriesYearToPresent": "{0} - Gaur egun",
|
||||||
"SeriesSettings": "Serie-doikuntzak",
|
"SeriesSettings": "Serie ezarpenak",
|
||||||
"SeriesRecordingScheduled": "Programatutako serieak grabatzea.",
|
"SeriesRecordingScheduled": "Programatutako serieak grabatzea.",
|
||||||
"SeriesDisplayOrderHelp": "Ordenatu kapituluak jaulkipen-dataren, DVD-ordenaren edo zenbaki absolutuaren arabera.",
|
"SeriesDisplayOrderHelp": "Ordenatu kapituluak jaulkipen-dataren, DVD-ordenaren edo zenbaki absolutuaren arabera.",
|
||||||
"SeriesCancelled": "Serie ezeztatua.",
|
"SeriesCancelled": "Serie ezeztatua.",
|
||||||
|
@ -911,7 +911,7 @@
|
||||||
"Hide": "Ezkutatu",
|
"Hide": "Ezkutatu",
|
||||||
"Help": "Laguntza",
|
"Help": "Laguntza",
|
||||||
"HeaderYears": "Urteak",
|
"HeaderYears": "Urteak",
|
||||||
"HeaderXmlSettings": "XML doikuntzak",
|
"HeaderXmlSettings": "XML ezarpenak",
|
||||||
"HeaderXmlDocumentAttributes": "XML dokumentuaren atributuak",
|
"HeaderXmlDocumentAttributes": "XML dokumentuaren atributuak",
|
||||||
"HeaderXmlDocumentAttribute": "XML dokumentuaren atributua",
|
"HeaderXmlDocumentAttribute": "XML dokumentuaren atributua",
|
||||||
"HeaderVideoTypes": "Bideo motak",
|
"HeaderVideoTypes": "Bideo motak",
|
||||||
|
@ -953,7 +953,7 @@
|
||||||
"LibraryAccessHelp": "Aukeratu erabiltzaile honekin partekatu beharreko liburutegiak. Administratzaileek karpeta guztiak editatu ahal izango dituzte metadatuen kudeatzailea erabiliz.",
|
"LibraryAccessHelp": "Aukeratu erabiltzaile honekin partekatu beharreko liburutegiak. Administratzaileek karpeta guztiak editatu ahal izango dituzte metadatuen kudeatzailea erabiliz.",
|
||||||
"LeaveBlankToNotSetAPassword": "Hutsik utz dezakezu pasahitza ez konfiguratzeko.",
|
"LeaveBlankToNotSetAPassword": "Hutsik utz dezakezu pasahitza ez konfiguratzeko.",
|
||||||
"LearnHowYouCanContribute": "Ezagutu nola lagundu dezakezun.",
|
"LearnHowYouCanContribute": "Ezagutu nola lagundu dezakezun.",
|
||||||
"LatestFromLibrary": "Duela gutxi {0} liburutegian",
|
"LatestFromLibrary": "Duela gutxi gehituta: {0}",
|
||||||
"LastSeen": "Azkenekoz ikusita {0}",
|
"LastSeen": "Azkenekoz ikusita {0}",
|
||||||
"Larger": "Handiagoa",
|
"Larger": "Handiagoa",
|
||||||
"Large": "Handia",
|
"Large": "Handia",
|
||||||
|
@ -1113,7 +1113,7 @@
|
||||||
"HeaderSortOrder": "Agindua",
|
"HeaderSortOrder": "Agindua",
|
||||||
"HeaderSortBy": "Ordenatu",
|
"HeaderSortBy": "Ordenatu",
|
||||||
"HeaderSetupLibrary": "Konfiguratu zure multimedia-liburutegiak",
|
"HeaderSetupLibrary": "Konfiguratu zure multimedia-liburutegiak",
|
||||||
"HeaderServerSettings": "Zerbitzariaren doikuntzak",
|
"HeaderServerSettings": "Zerbitzariaren ezarpenak",
|
||||||
"HeaderServerAddressSettings": "Zerbitzariaren helbidea konfiguratzea",
|
"HeaderServerAddressSettings": "Zerbitzariaren helbidea konfiguratzea",
|
||||||
"HeaderSeriesStatus": "Serieen egoera",
|
"HeaderSeriesStatus": "Serieen egoera",
|
||||||
"HeaderSeriesOptions": "Serieen aukerak",
|
"HeaderSeriesOptions": "Serieen aukerak",
|
||||||
|
@ -1138,7 +1138,7 @@
|
||||||
"HeaderRemoteControl": "Urrutiko kontrola",
|
"HeaderRemoteControl": "Urrutiko kontrola",
|
||||||
"HeaderRemoteAccessSettings": "Urruneko sarbide-aukerak",
|
"HeaderRemoteAccessSettings": "Urruneko sarbide-aukerak",
|
||||||
"HeaderRecordingPostProcessing": "Prozesatu osteko grabazioa",
|
"HeaderRecordingPostProcessing": "Prozesatu osteko grabazioa",
|
||||||
"HeaderRecordingOptions": "Grabazio-doikuntzak",
|
"HeaderRecordingOptions": "Grabazio ezarpenak",
|
||||||
"HeaderRecentlyPlayed": "Duela gutxi erreproduzitua",
|
"HeaderRecentlyPlayed": "Duela gutxi erreproduzitua",
|
||||||
"HeaderProfileServerSettingsHelp": "Balio horiek zerbitzaria bezeroei nola aurkeztuko zaien kontrolatzen dute.",
|
"HeaderProfileServerSettingsHelp": "Balio horiek zerbitzaria bezeroei nola aurkeztuko zaien kontrolatzen dute.",
|
||||||
"HeaderProfileInformation": "Profilari buruzko informazioa",
|
"HeaderProfileInformation": "Profilari buruzko informazioa",
|
||||||
|
@ -1169,12 +1169,12 @@
|
||||||
"HeaderMyDevice": "Nire gailua",
|
"HeaderMyDevice": "Nire gailua",
|
||||||
"HeaderMusicQuality": "Soinuaren kalitatea",
|
"HeaderMusicQuality": "Soinuaren kalitatea",
|
||||||
"HeaderMoreLikeThis": "Hau bezalakoa",
|
"HeaderMoreLikeThis": "Hau bezalakoa",
|
||||||
"HeaderMetadataSettings": "Metadatuen doikuntzak",
|
"HeaderMetadataSettings": "Metadatuen ezarpenak",
|
||||||
"HeaderMediaFolders": "Multimedia karpetak",
|
"HeaderMediaFolders": "Multimedia karpetak",
|
||||||
"HeaderMedia": "Multimedia",
|
"HeaderMedia": "Multimedia",
|
||||||
"HeaderLoginFailure": "Saioaren hasierako akatsa",
|
"HeaderLoginFailure": "Saioaren hasierako akatsa",
|
||||||
"HeaderLiveTvTunerSetup": "Telebista-sintonizadorearen doikuntzak",
|
"HeaderLiveTvTunerSetup": "Telebista-sintonizadorearen ezarpenak",
|
||||||
"HeaderLibrarySettings": "Liburutegiaren doikuntzak",
|
"HeaderLibrarySettings": "Liburutegiaren ezarpenak",
|
||||||
"HeaderLibraryOrder": "Liburutegiaren agindua",
|
"HeaderLibraryOrder": "Liburutegiaren agindua",
|
||||||
"HeaderLibraryFolders": "Liburutegiko karpetak",
|
"HeaderLibraryFolders": "Liburutegiko karpetak",
|
||||||
"HeaderLibraryAccess": "Liburutegirako sarbidea",
|
"HeaderLibraryAccess": "Liburutegirako sarbidea",
|
||||||
|
@ -1184,24 +1184,24 @@
|
||||||
"HeaderLatestMovies": "Azken filmak",
|
"HeaderLatestMovies": "Azken filmak",
|
||||||
"HeaderLatestMedia": "Berriki gehituak",
|
"HeaderLatestMedia": "Berriki gehituak",
|
||||||
"HeaderLatestEpisodes": "Azken kapituluak",
|
"HeaderLatestEpisodes": "Azken kapituluak",
|
||||||
"HeaderKodiMetadataHelp": "NFO formatuko metadatuak aktibatu edo desaktibatu ditzakezu, liburutegi baten konfigurazioa irekiz eta metadatuen ataleko doikuntzak berrikusiz.",
|
"HeaderKodiMetadataHelp": "NFO formatuko metadatuak aktibatu edo desaktibatu ditzakezu, liburutegi baten konfigurazioa irekiz eta metadatuen ataleko ezarpenak berrikusiz.",
|
||||||
"HeaderKeepSeries": "Serieak mantentzea",
|
"HeaderKeepSeries": "Serieak mantentzea",
|
||||||
"HeaderKeepRecording": "Grabazioa mantendu",
|
"HeaderKeepRecording": "Grabazioa mantendu",
|
||||||
"HeaderInstantMix": "Bat-bateko nahasketa",
|
"HeaderInstantMix": "Bat-bateko nahasketa",
|
||||||
"HeaderInstall": "Instalatu",
|
"HeaderInstall": "Instalatu",
|
||||||
"HeaderImageSettings": "Irudi-doikuntzak",
|
"HeaderImageSettings": "Irudi ezarpenak",
|
||||||
"HeaderImageOptions": "Irudi-aukerak",
|
"HeaderImageOptions": "Irudi-aukerak",
|
||||||
"HeaderIdentifyItemHelp": "Sartu bilaketa-parametro bat edo gehiago. Bilaketaren emaitzen kopurua handitzeko parametroak ezabatzen ditu.",
|
"HeaderIdentifyItemHelp": "Sartu bilaketa-parametro bat edo gehiago. Bilaketaren emaitzen kopurua handitzeko parametroak ezabatzen ditu.",
|
||||||
"HeaderIdentificationHeader": "Identifikazio-goiburua",
|
"HeaderIdentificationHeader": "Identifikazio-goiburua",
|
||||||
"HeaderIdentificationCriteriaHelp": "Gutxienez identifikazio-irizpide bat sartzen du.",
|
"HeaderIdentificationCriteriaHelp": "Gutxienez identifikazio-irizpide bat sartzen du.",
|
||||||
"HeaderIdentification": "Identifikazioa",
|
"HeaderIdentification": "Identifikazioa",
|
||||||
"HeaderHttpsSettings": "https aukerak",
|
"HeaderHttpsSettings": "HTTPS aukerak",
|
||||||
"HeaderHttpHeaders": "http buruak",
|
"HeaderHttpHeaders": "HTTP buruak",
|
||||||
"HeaderGuideProviders": "Gida-hornitzaileak",
|
"HeaderGuideProviders": "Gida-hornitzaileak",
|
||||||
"HeaderFrequentlyPlayed": "Maiz erreproduzitua",
|
"HeaderFrequentlyPlayed": "Maiz erreproduzitua",
|
||||||
"HeaderForKids": "Haurrentzat",
|
"HeaderForKids": "Haurrentzat",
|
||||||
"HeaderFetchImages": "Bilatu irudiak:",
|
"HeaderFetchImages": "Bilatu irudiak:",
|
||||||
"HeaderFetcherSettings": "Harrapatzailearen doikuntzak",
|
"HeaderFetcherSettings": "Harrapatzailearen ezarpenak",
|
||||||
"HeaderFeatureAccess": "Sartzeko baimenak:",
|
"HeaderFeatureAccess": "Sartzeko baimenak:",
|
||||||
"HeaderExternalIds": "Kanpoko IDS:",
|
"HeaderExternalIds": "Kanpoko IDS:",
|
||||||
"HeaderError": "Errorea",
|
"HeaderError": "Errorea",
|
||||||
|
@ -1421,8 +1421,8 @@
|
||||||
"DeleteAll": "Ezabatu dena",
|
"DeleteAll": "Ezabatu dena",
|
||||||
"Delete": "Ezabatu",
|
"Delete": "Ezabatu",
|
||||||
"DeinterlaceMethodHelp": "Hautatu bihurketan zehar elkarri lotuta dagoen edukia askatzeko aplikatuko den iragazki mota. Lotura kentzeko hardware bidezko azelerazioa aktibatuta badago, iragazki horren ordez erabiliko da.",
|
"DeinterlaceMethodHelp": "Hautatu bihurketan zehar elkarri lotuta dagoen edukia askatzeko aplikatuko den iragazki mota. Lotura kentzeko hardware bidezko azelerazioa aktibatuta badago, iragazki horren ordez erabiliko da.",
|
||||||
"DefaultSubtitlesHelp": "Erabiliko diren azpitituluak fitxategien pistetan txertatutako metadatuen araberakoak izango dira (bai \"lehenetsita\" edo \"behartuta\"). Hizkuntza-doikuntzak kontuan hartzen dira hainbat aukera eskuragarri daudenean.",
|
"DefaultSubtitlesHelp": "Erabiliko diren azpitituluak fitxategien pistetan txertatutako metadatuen araberakoak izango dira (bai \"lehenetsita\" edo \"behartuta\"). Hizkuntza ezarpenak kontuan hartzen dira hainbat aukera eskuragarri daudenean.",
|
||||||
"DefaultMetadataLangaugeDescription": "Hauek dira zure doikuntzak eta liburutegi bakoitzerako pertsonalizatu daitezke.",
|
"DefaultMetadataLangaugeDescription": "Hauek dira zure ezarpenak eta liburutegi bakoitzerako pertsonalizatu daitezke.",
|
||||||
"Default": "Lehenetsia",
|
"Default": "Lehenetsia",
|
||||||
"DeathDateValue": "Hil egin zen: {0}",
|
"DeathDateValue": "Hil egin zen: {0}",
|
||||||
"DatePlayed": "Erreproduzitua",
|
"DatePlayed": "Erreproduzitua",
|
||||||
|
@ -1455,7 +1455,7 @@
|
||||||
"ColorSpace": "Kolore-espazioa",
|
"ColorSpace": "Kolore-espazioa",
|
||||||
"ColorPrimaries": "Kolore primarioak",
|
"ColorPrimaries": "Kolore primarioak",
|
||||||
"Collections": "Bildumak",
|
"Collections": "Bildumak",
|
||||||
"ClientSettings": "Bezeroaren doikuntzak",
|
"ClientSettings": "Bezeroaren ezarpenak",
|
||||||
"ClearQueue": "Ezabatu buztana",
|
"ClearQueue": "Ezabatu buztana",
|
||||||
"CinemaModeConfigurationHelp": "Zinema moduak zinemaren esperientzia zuzenean ematen du bere aretoan, funtzio nagusiaren aurretik trailerrak eta sarrera pertsonalizatuak erreproduzitzeko gaitasunarekin.",
|
"CinemaModeConfigurationHelp": "Zinema moduak zinemaren esperientzia zuzenean ematen du bere aretoan, funtzio nagusiaren aurretik trailerrak eta sarrera pertsonalizatuak erreproduzitzeko gaitasunarekin.",
|
||||||
"Channels": "Kanalak",
|
"Channels": "Kanalak",
|
||||||
|
@ -1547,7 +1547,7 @@
|
||||||
"HeaderBranding": "Itxura pertsonalizatzea",
|
"HeaderBranding": "Itxura pertsonalizatzea",
|
||||||
"HeaderBlockItemsWithNoRating": "Baloraziorik gabeko edo ezezagunak diren artikuluak blokeatzea:",
|
"HeaderBlockItemsWithNoRating": "Baloraziorik gabeko edo ezezagunak diren artikuluak blokeatzea:",
|
||||||
"HeaderAutoDiscovery": "Sarearen aurkikuntza",
|
"HeaderAutoDiscovery": "Sarearen aurkikuntza",
|
||||||
"HeaderAudioSettings": "Audio-doikuntzak",
|
"HeaderAudioSettings": "Audio ezarpenak",
|
||||||
"HeaderAudioBooks": "Audioliburuak",
|
"HeaderAudioBooks": "Audioliburuak",
|
||||||
"HeaderAppearsOn": "Hemen agertzen da",
|
"HeaderAppearsOn": "Hemen agertzen da",
|
||||||
"HeaderApp": "Aplikazioa",
|
"HeaderApp": "Aplikazioa",
|
||||||
|
@ -1626,5 +1626,9 @@
|
||||||
"ButtonSpace": "Hutsunea",
|
"ButtonSpace": "Hutsunea",
|
||||||
"EnableRewatchingNextUp": "Gaitu berriz ikustea Nobedadeak atalekoentzat",
|
"EnableRewatchingNextUp": "Gaitu berriz ikustea Nobedadeak atalekoentzat",
|
||||||
"EnableRewatchingNextUpHelp": "Gaitu jada ikusitako kapituluak \"Nobedadeak\" atalean agertzea.",
|
"EnableRewatchingNextUpHelp": "Gaitu jada ikusitako kapituluak \"Nobedadeak\" atalean agertzea.",
|
||||||
"LabelMaxVideoResolution": "Onartutako bideo-transkodetzearen bereizmen maximoa:"
|
"LabelMaxVideoResolution": "Onartutako bideo-transkodetzearen bereizmen maximoa:",
|
||||||
|
"EnableCardLayout": "Erakutsi CardBox ikusgai",
|
||||||
|
"GoogleCastUnsupported": "Google Cast ez da bateragarria",
|
||||||
|
"Experimental": "Esperimentala",
|
||||||
|
"DownloadAll": "Deskargatu dena"
|
||||||
}
|
}
|
||||||
|
|
|
@ -343,7 +343,7 @@
|
||||||
"LabelAbortedByServerShutdown": "(Keskeytetty palvelimen sammutuksen takia)",
|
"LabelAbortedByServerShutdown": "(Keskeytetty palvelimen sammutuksen takia)",
|
||||||
"Identify": "Tunnista",
|
"Identify": "Tunnista",
|
||||||
"Horizontal": "Horisontaalinen",
|
"Horizontal": "Horisontaalinen",
|
||||||
"HideWatchedContentFromLatestMedia": "Piilota toistettu sisältö 'Hiljattain lisätty media' -osiosta",
|
"HideWatchedContentFromLatestMedia": "Piilota toistettu sisältö 'Viimeksi lisätty media' -osiosta",
|
||||||
"HeaderUpcomingOnTV": "Tulossa televisiosta",
|
"HeaderUpcomingOnTV": "Tulossa televisiosta",
|
||||||
"HeaderTypeImageFetchers": "Kuvien lataajat ({0}):",
|
"HeaderTypeImageFetchers": "Kuvien lataajat ({0}):",
|
||||||
"HeaderTranscodingProfile": "Transkoodausprofiili",
|
"HeaderTranscodingProfile": "Transkoodausprofiili",
|
||||||
|
@ -411,11 +411,11 @@
|
||||||
"HeaderMediaFolders": "Mediakansiot",
|
"HeaderMediaFolders": "Mediakansiot",
|
||||||
"HeaderMedia": "Media",
|
"HeaderMedia": "Media",
|
||||||
"HeaderLibraryFolders": "Kirjaston kansiot",
|
"HeaderLibraryFolders": "Kirjaston kansiot",
|
||||||
"HeaderLatestMedia": "Hiljattain lisätty media",
|
"HeaderLatestMedia": "Viimeksi lisätty media",
|
||||||
"HeaderLatestRecordings": "Hiljattain lisätyt tallenteet",
|
"HeaderLatestRecordings": "Viimeksi lisätyt tallenteet",
|
||||||
"HeaderLatestMusic": "Hiljattain lisätty musiikki",
|
"HeaderLatestMusic": "Viimeksi lisätty musiikki",
|
||||||
"HeaderLatestMovies": "Hiljattain lisätyt elokuvat",
|
"HeaderLatestMovies": "Viimeksi lisätyt elokuvat",
|
||||||
"HeaderLatestEpisodes": "Hiljattain lisätyt jaksot",
|
"HeaderLatestEpisodes": "Viimeksi lisätyt jaksot",
|
||||||
"HeaderInstall": "Asenna",
|
"HeaderInstall": "Asenna",
|
||||||
"HeaderFrequentlyPlayed": "Usein toistetut",
|
"HeaderFrequentlyPlayed": "Usein toistetut",
|
||||||
"HeaderFetcherSettings": "Lataajan asetukset",
|
"HeaderFetcherSettings": "Lataajan asetukset",
|
||||||
|
@ -562,7 +562,7 @@
|
||||||
"TabMyPlugins": "Omat lisäosat",
|
"TabMyPlugins": "Omat lisäosat",
|
||||||
"TabMusic": "Musiikki",
|
"TabMusic": "Musiikki",
|
||||||
"TabLogs": "Lokit",
|
"TabLogs": "Lokit",
|
||||||
"TabLatest": "Hiljattain lisätyt",
|
"TabLatest": "Viimeksi lisätyt",
|
||||||
"TabDirectPlay": "Muuntamaton toisto",
|
"TabDirectPlay": "Muuntamaton toisto",
|
||||||
"TabDashboard": "Hallintapaneeli",
|
"TabDashboard": "Hallintapaneeli",
|
||||||
"TabCatalog": "Luettelo",
|
"TabCatalog": "Luettelo",
|
||||||
|
@ -1264,7 +1264,7 @@
|
||||||
"LabelMinAudiobookResumeHelp": "Kohteita pidetään toistamattomina, jos toisto keskeytetään ennen tätä aikaa.",
|
"LabelMinAudiobookResumeHelp": "Kohteita pidetään toistamattomina, jos toisto keskeytetään ennen tätä aikaa.",
|
||||||
"LabelMaxStreamingBitrate": "Suoratoiston enimmäislaatu:",
|
"LabelMaxStreamingBitrate": "Suoratoiston enimmäislaatu:",
|
||||||
"MoreFromValue": "Lisää kohteesta {0}",
|
"MoreFromValue": "Lisää kohteesta {0}",
|
||||||
"LatestFromLibrary": "Hiljattain lisätty: '{0}'",
|
"LatestFromLibrary": "Viimeksi lisätty: {0}",
|
||||||
"LabelVideoRange": "Videon alue:",
|
"LabelVideoRange": "Videon alue:",
|
||||||
"LabelVaapiDeviceHelp": "Tämä on renderöintinoodi, jota käytetään laitteistokiihdytykseen.",
|
"LabelVaapiDeviceHelp": "Tämä on renderöintinoodi, jota käytetään laitteistokiihdytykseen.",
|
||||||
"LabelUserRemoteClientBitrateLimitHelp": "Korvaa globaali arvo asetusten kohdasta Ohjauspaneeli > Toisto > Suoratoisto.",
|
"LabelUserRemoteClientBitrateLimitHelp": "Korvaa globaali arvo asetusten kohdasta Ohjauspaneeli > Toisto > Suoratoisto.",
|
||||||
|
@ -1696,5 +1696,6 @@
|
||||||
"LabelChapterImageResolutionHelp": "Purettujen kappalekuvien resoluutio.",
|
"LabelChapterImageResolutionHelp": "Purettujen kappalekuvien resoluutio.",
|
||||||
"ResolutionMatchSource": "Vastaa lähdettä",
|
"ResolutionMatchSource": "Vastaa lähdettä",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNames": "Suosi lisämateriaaleille upotettuja otsikoita tiedostonimien sijaan",
|
"PreferEmbeddedExtrasTitlesOverFileNames": "Suosi lisämateriaaleille upotettuja otsikoita tiedostonimien sijaan",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Lisämateriaaleilla on usein sama otsikko kuin niiden isännällä. Valitse tämä käyttääksesi silti upotettuja otsikoita."
|
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Lisämateriaaleilla on usein sama otsikko kuin niiden isännällä. Valitse tämä käyttääksesi silti upotettuja otsikoita.",
|
||||||
|
"SecondarySubtitles": "Toissijaiset tekstitykset"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1703,5 +1703,16 @@
|
||||||
"LabelDummyChapterDuration": "Intervalle :",
|
"LabelDummyChapterDuration": "Intervalle :",
|
||||||
"LabelDummyChapterCountHelp": "Nombre maximal d’images de chapitre à extraire pour chaque fichier multimédia.",
|
"LabelDummyChapterCountHelp": "Nombre maximal d’images de chapitre à extraire pour chaque fichier multimédia.",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNames": "Préférer les titres intégrés aux médias pour les bonus",
|
"PreferEmbeddedExtrasTitlesOverFileNames": "Préférer les titres intégrés aux médias pour les bonus",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Les bonus possèdent souvent un titre intégré identique au média parent, cocher l'option pour utiliser ce titre quoi qu'il en soit."
|
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Les bonus possèdent souvent un titre intégré identique au média parent, cocher l'option pour utiliser ce titre quoi qu'il en soit.",
|
||||||
|
"SecondarySubtitles": "Sous-titres secondaires",
|
||||||
|
"SubtitleBlack": "Noir",
|
||||||
|
"SubtitleBlue": "Bleu",
|
||||||
|
"SubtitleCyan": "Cyan",
|
||||||
|
"SubtitleGray": "Gris",
|
||||||
|
"SubtitleGreen": "Vert",
|
||||||
|
"SubtitleLightGray": "Gris clair",
|
||||||
|
"SubtitleMagenta": "Magenta",
|
||||||
|
"SubtitleRed": "Rouge",
|
||||||
|
"SubtitleWhite": "Blanc",
|
||||||
|
"SubtitleYellow": "Jaune"
|
||||||
}
|
}
|
||||||
|
|
|
@ -141,5 +141,11 @@
|
||||||
"ButtonSubmit": "प्रस्तुत करें",
|
"ButtonSubmit": "प्रस्तुत करें",
|
||||||
"ButtonTogglePlaylist": "प्लेलिस्ट",
|
"ButtonTogglePlaylist": "प्लेलिस्ट",
|
||||||
"ButtonUninstall": "ऐप हटाएं",
|
"ButtonUninstall": "ऐप हटाएं",
|
||||||
"ButtonTrailer": "ट्रेलर"
|
"ButtonTrailer": "ट्रेलर",
|
||||||
|
"Large": "बड़ा",
|
||||||
|
"Small": "छोटा",
|
||||||
|
"Normal": "सामान्य",
|
||||||
|
"Songs": "गाने",
|
||||||
|
"Larger": "और बड़ा",
|
||||||
|
"ListPaging": "{2} का {0}-{1}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,9 +107,9 @@
|
||||||
"HeaderIdentifyItemHelp": "Adj meg egy vagy több keresési kritériumot. Távolítsd el a kritériumokat a keresési eredmények növelése érdekében.",
|
"HeaderIdentifyItemHelp": "Adj meg egy vagy több keresési kritériumot. Távolítsd el a kritériumokat a keresési eredmények növelése érdekében.",
|
||||||
"HeaderImageSettings": "Kép beállítások",
|
"HeaderImageSettings": "Kép beállítások",
|
||||||
"HeaderInstall": "Telepítés",
|
"HeaderInstall": "Telepítés",
|
||||||
"HeaderLatestEpisodes": "Legújabb epizódok",
|
"HeaderLatestEpisodes": "Nemrég hozzáadott epizódok",
|
||||||
"HeaderLatestMedia": "Legújabb média",
|
"HeaderLatestMedia": "Nemrég hozzáadott tartalmak",
|
||||||
"HeaderLatestMovies": "Legújabb filmek",
|
"HeaderLatestMovies": "Nemrég hozzáadott filmek",
|
||||||
"HeaderLibraries": "Könyvtárak",
|
"HeaderLibraries": "Könyvtárak",
|
||||||
"HeaderLibraryAccess": "Könyvtár hozzáférés",
|
"HeaderLibraryAccess": "Könyvtár hozzáférés",
|
||||||
"HeaderLibraryFolders": "Médiatár mappák",
|
"HeaderLibraryFolders": "Médiatár mappák",
|
||||||
|
@ -156,7 +156,7 @@
|
||||||
"HeaderVideos": "Videók",
|
"HeaderVideos": "Videók",
|
||||||
"HeaderYears": "Év",
|
"HeaderYears": "Év",
|
||||||
"Help": "Súgó",
|
"Help": "Súgó",
|
||||||
"HideWatchedContentFromLatestMedia": "A megtekintett tartalom elrejtése a \"Legújabb Média\"-ból",
|
"HideWatchedContentFromLatestMedia": "A megtekintett tartalom elrejtése a \"Nemrég hozzáadott felvételek\"-ből",
|
||||||
"Home": "Kezdőlap",
|
"Home": "Kezdőlap",
|
||||||
"Identify": "Azonosítás",
|
"Identify": "Azonosítás",
|
||||||
"Images": "Képek",
|
"Images": "Képek",
|
||||||
|
@ -395,7 +395,7 @@
|
||||||
"TabCodecs": "Kódek",
|
"TabCodecs": "Kódek",
|
||||||
"TabContainers": "Tároló",
|
"TabContainers": "Tároló",
|
||||||
"TabDashboard": "Vezérlőpult",
|
"TabDashboard": "Vezérlőpult",
|
||||||
"TabLatest": "Legújabb",
|
"TabLatest": "Nemrég hozzáadott",
|
||||||
"TabLogs": "Naplók",
|
"TabLogs": "Naplók",
|
||||||
"TabMusic": "Zene",
|
"TabMusic": "Zene",
|
||||||
"TabMyPlugins": "Telepített bővítmények",
|
"TabMyPlugins": "Telepített bővítmények",
|
||||||
|
@ -519,7 +519,7 @@
|
||||||
"Disc": "Lemez",
|
"Disc": "Lemez",
|
||||||
"Disconnect": "Bontás",
|
"Disconnect": "Bontás",
|
||||||
"DisplayInMyMedia": "Megjelenítés a kezdőképernyőn",
|
"DisplayInMyMedia": "Megjelenítés a kezdőképernyőn",
|
||||||
"DisplayInOtherHomeScreenSections": "Megjelenítés a kezdőképernyőn, mint például a 'Legújabb Média', és a 'Folyamatban lévő filmek'",
|
"DisplayInOtherHomeScreenSections": "Megjelenítés a kezdőképernyőn, mint például a 'Nemrég hozzáadott', és a 'Korábban megtekintett'",
|
||||||
"DisplayModeHelp": "Válaszd ki a használni kívánt elrendezést.",
|
"DisplayModeHelp": "Válaszd ki a használni kívánt elrendezést.",
|
||||||
"DoNotRecord": "Ne rögzítsen",
|
"DoNotRecord": "Ne rögzítsen",
|
||||||
"DownloadsValue": "{0} letöltés",
|
"DownloadsValue": "{0} letöltés",
|
||||||
|
@ -604,8 +604,8 @@
|
||||||
"HeaderInstantMix": "Azonnali keverés",
|
"HeaderInstantMix": "Azonnali keverés",
|
||||||
"HeaderKeepRecording": "Felvétel készítése",
|
"HeaderKeepRecording": "Felvétel készítése",
|
||||||
"HeaderKodiMetadataHelp": "Az NFO-metaadatok engedélyezéséhez vagy letiltásához szerkesszen egy könyvtárat, és keresse meg a „Metaadat-mentők” részt.",
|
"HeaderKodiMetadataHelp": "Az NFO-metaadatok engedélyezéséhez vagy letiltásához szerkesszen egy könyvtárat, és keresse meg a „Metaadat-mentők” részt.",
|
||||||
"HeaderLatestMusic": "Legújabb zenék",
|
"HeaderLatestMusic": "Nemrég hozzáadott zenék",
|
||||||
"HeaderLatestRecordings": "Legújabb felvételek",
|
"HeaderLatestRecordings": "Nemrég hozzáadott felvételek",
|
||||||
"HeaderLoginFailure": "Bejelentkezési hiba",
|
"HeaderLoginFailure": "Bejelentkezési hiba",
|
||||||
"HeaderMusicQuality": "Zene minősége",
|
"HeaderMusicQuality": "Zene minősége",
|
||||||
"HeaderNewApiKey": "Új API kulcs",
|
"HeaderNewApiKey": "Új API kulcs",
|
||||||
|
@ -1510,7 +1510,7 @@
|
||||||
"Framerate": "Képkockasebesség",
|
"Framerate": "Képkockasebesség",
|
||||||
"DirectPlayHelp": "A forrásfájl teljes mértékben kompatibilis ezzel az klienssel, és a munkamenet módosítások nélkül fogadja a fájlt.",
|
"DirectPlayHelp": "A forrásfájl teljes mértékben kompatibilis ezzel az klienssel, és a munkamenet módosítások nélkül fogadja a fájlt.",
|
||||||
"HeaderContinueReading": "Olvasás folytatása",
|
"HeaderContinueReading": "Olvasás folytatása",
|
||||||
"EnableGamepadHelp": "Figyeljen bármilyen csatlakoztatott kontroller bemenetére.",
|
"EnableGamepadHelp": "Figyeljen bármilyen csatlakoztatott bemenetre. (Szükséges: TV megjelenítési mód)",
|
||||||
"LabelEnableGamepad": "Engedélyezze a Gamepad-ot",
|
"LabelEnableGamepad": "Engedélyezze a Gamepad-ot",
|
||||||
"Controls": "Vezérlők",
|
"Controls": "Vezérlők",
|
||||||
"TextSent": "Szöveg elküldve.",
|
"TextSent": "Szöveg elküldve.",
|
||||||
|
@ -1685,5 +1685,30 @@
|
||||||
"MessageNoItemsAvailable": "Jelenleg nincs elérhető elem.",
|
"MessageNoItemsAvailable": "Jelenleg nincs elérhető elem.",
|
||||||
"MessageNoFavoritesAvailable": "Jelenleg nincs elérhető kedvenc.",
|
"MessageNoFavoritesAvailable": "Jelenleg nincs elérhető kedvenc.",
|
||||||
"Unreleased": "Még nem jelent meg",
|
"Unreleased": "Még nem jelent meg",
|
||||||
"DownloadAll": "Összes letöltése"
|
"DownloadAll": "Összes letöltése",
|
||||||
|
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Beágyazott címek használata.",
|
||||||
|
"SaveRecordingNFO": "A rögzített EPG metaadatok mentése NFO-ba",
|
||||||
|
"SubtitleBlack": "Fekete",
|
||||||
|
"SubtitleBlue": "Kék",
|
||||||
|
"SubtitleCyan": "Cián",
|
||||||
|
"SubtitleGray": "Szürke",
|
||||||
|
"SubtitleGreen": "Zöld",
|
||||||
|
"SubtitleLightGray": "Világos szürke",
|
||||||
|
"SubtitleMagenta": "Bíborvörös",
|
||||||
|
"SubtitleRed": "Piros",
|
||||||
|
"SubtitleWhite": "Fehér",
|
||||||
|
"SubtitleYellow": "Sárga",
|
||||||
|
"SecondarySubtitles": "Másodlagos feliratok",
|
||||||
|
"StereoDownmixAlgorithmHelp": "Többcsatornás hangot sztereóvá keverő algoritmus használata.",
|
||||||
|
"LabelDummyChapterCountHelp": "Az egyes médiafájlokból kibontható fejezetképek maximális száma.",
|
||||||
|
"PreferEmbeddedExtrasTitlesOverFileNames": "Részesítse előnyben a beágyazott címeket a fájlnevekkel szemben",
|
||||||
|
"SaveRecordingImages": "Rögzített EPG-képek mentése",
|
||||||
|
"Experimental": "Tapasztalati",
|
||||||
|
"LabelStereoDownmixAlgorithm": "Térhatású csatornák egyesítése",
|
||||||
|
"HeaderDummyChapter": "Fejezetképek",
|
||||||
|
"HeaderRecordingMetadataSaving": "Metaadatok rögzítése",
|
||||||
|
"LabelDummyChapterDuration": "Intervallum:",
|
||||||
|
"LabelDummyChapterCount": "Határvonal:",
|
||||||
|
"LabelChapterImageResolution": "Felbontás:",
|
||||||
|
"LabelChapterImageResolutionHelp": "A kinyert fejezetképek felbontása."
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,7 +137,7 @@
|
||||||
"Disconnect": "Disconnetti",
|
"Disconnect": "Disconnetti",
|
||||||
"Display": "Schermo",
|
"Display": "Schermo",
|
||||||
"DisplayInMyMedia": "Visualizza nella schermata di home",
|
"DisplayInMyMedia": "Visualizza nella schermata di home",
|
||||||
"DisplayInOtherHomeScreenSections": "Mostra le sezioni della schermata home come 'Ultimi media' e 'Continua a guardare'",
|
"DisplayInOtherHomeScreenSections": "Visualizza nelle sezioni della schermata iniziale come \"Media aggiunti di recente\" e \"Continua a guardare\"",
|
||||||
"DisplayMissingEpisodesWithinSeasons": "Visualizza gli episodi mancanti nelle stagioni",
|
"DisplayMissingEpisodesWithinSeasons": "Visualizza gli episodi mancanti nelle stagioni",
|
||||||
"DisplayMissingEpisodesWithinSeasonsHelp": "Questo deve anche essere abilitato per le librerie TV nella configurazione del server.",
|
"DisplayMissingEpisodesWithinSeasonsHelp": "Questo deve anche essere abilitato per le librerie TV nella configurazione del server.",
|
||||||
"DisplayModeHelp": "Seleziona lo stile del layout che vuoi per l'interfaccia.",
|
"DisplayModeHelp": "Seleziona lo stile del layout che vuoi per l'interfaccia.",
|
||||||
|
|
42
src/strings/mg.json
Normal file
42
src/strings/mg.json
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
"Add": "Manampy",
|
||||||
|
"AddToPlaylist": "Ampiana ao amin'ny playlist",
|
||||||
|
"AddToPlayQueue": "Ampiana ao amin'ny filaharana",
|
||||||
|
"AirDate": "Daty fandefasana",
|
||||||
|
"Aired": "Nalefa",
|
||||||
|
"AlbumArtist": "Artista tompon'ny Album",
|
||||||
|
"Alerts": "Lakolosy",
|
||||||
|
"AllChannels": "Fahitalavitra rehetra",
|
||||||
|
"AllowMediaConversion": "Avela hiasa hanao famadiahana format",
|
||||||
|
"AllowEmbeddedSubtitlesAllowNoneOption": "Tsy asiana mihitsy",
|
||||||
|
"AllowEmbeddedSubtitlesAllowTextOption": "Asiana soratra",
|
||||||
|
"Absolute": "Feno",
|
||||||
|
"AccessRestrictedTryAgainLater": "Voafetra ny fidirana amin'izao fotoana izao. Andramo indray afaka fotoana fohy.",
|
||||||
|
"Actor": "Mpilalao",
|
||||||
|
"AddedOnValue": "Nampiana",
|
||||||
|
"AdditionalNotificationServices": "Tsidiho ny katalaogin'ny plugin raha hanampy serivisy fampahafantarana fanampiny.",
|
||||||
|
"AddToCollection": "Ampiana ao amin'ny fitahirizana",
|
||||||
|
"AddToFavorites": "Ampiana ao amin'ireo ankafihizina",
|
||||||
|
"AgeValue": "({0} taona)",
|
||||||
|
"Album": "Album",
|
||||||
|
"Albums": "Albums",
|
||||||
|
"All": "Rehetra",
|
||||||
|
"AllComplexFormats": "Ireo endrika sarotra rehetra (ASS, SSA, VobSub, PGS, SUB, IDX, …)",
|
||||||
|
"AllEpisodes": "Fizaràna rehetra",
|
||||||
|
"AllLanguages": "Tenim-pirenena rehetra",
|
||||||
|
"AllLibraries": "Tahiry rehetra",
|
||||||
|
"AllowedRemoteAddressesHelp": "Lisitry ny adiresy IP na IP/netmask nosarahan'ny faingo ho an'ny tambajotra izay avela hifandray lavitra. Raha avela ho banga dia afaka miditra avokoa ny IP rehetra.",
|
||||||
|
"AllowEmbeddedSubtitles": "Atsahatra ny karazana dikanteny ao anatiny",
|
||||||
|
"AllowEmbeddedSubtitlesAllowAllOption": "Avela malalaka",
|
||||||
|
"AllowEmbeddedSubtitlesAllowImageOption": "Asiana sary",
|
||||||
|
"AllowEmbeddedSubtitlesHelp": "Atsahatra ny dikanteny raikitra ao anaty media. Mila fanavaozana ny tahiry rehetra.",
|
||||||
|
"AllowFfmpegThrottling": "Ahena ny asa famadihana format",
|
||||||
|
"AllowFfmpegThrottlingHelp": "Rehefa lasa lavitra mihoatra ny playback ny asa famadihana format dia atsahatra kely ny fampiasana CPU. Tena ilaina izany rehefa mijery fotsiny fa tsy mandingana na mamerina matetika. Aza alefa raha mahita olana amin'ny playback.",
|
||||||
|
"AllowHevcEncoding": "Avela hamadika format HEVC",
|
||||||
|
"AllowHWTranscodingHelp": "Avela ny tuner hiasa sady mamadika format. Mety hanampy amin'ny fampihenana ny asa takian'ny serveur izany.",
|
||||||
|
"AllowMediaConversionHelp": "Avela na lavina ny fidirana amin'ny asa famadihana format.",
|
||||||
|
"AllowOnTheFlySubtitleExtraction": "Avela hamaky dikanteny eny ampandehanana.",
|
||||||
|
"AllowOnTheFlySubtitleExtractionHelp": "Azo alaina avy amin'ilay video ny dikanteny ao anatiny ary aseho amin'ny soratra tsotra, mba hisorohana ny famadihana video. Mety haharitra ela izany ka hampiato ny famakiana horonan-tsary mandritra ny dingan'ny fitrandrahana. Atsaharo raha avela ho dikanteny miaraka amin'ny famadihana horonan-tsary.",
|
||||||
|
"AllowRemoteAccess": "Avela hifandray amin'ny hafa ity serveur ity",
|
||||||
|
"AllowRemoteAccessHelp": "Raha tsy marihina dia ho voasakana ny fifandraisana lavitra rehetra."
|
||||||
|
}
|
|
@ -366,7 +366,7 @@
|
||||||
"HeaderTranscodingProfile": "Direct Afspelen Profiel",
|
"HeaderTranscodingProfile": "Direct Afspelen Profiel",
|
||||||
"HeaderTranscodingProfileHelp": "Transcoding profielen toevoegen om aan te geven welke indelingen moeten worden gebruikt wanneer transcoding vereist is.",
|
"HeaderTranscodingProfileHelp": "Transcoding profielen toevoegen om aan te geven welke indelingen moeten worden gebruikt wanneer transcoding vereist is.",
|
||||||
"HeaderTunerDevices": "Tuner apparaten",
|
"HeaderTunerDevices": "Tuner apparaten",
|
||||||
"HeaderTypeImageFetchers": "Afbeelding downloaders ({0}):",
|
"HeaderTypeImageFetchers": "Ophalers afbeeldingen ({0}):",
|
||||||
"HeaderTypeText": "Voer tekst in",
|
"HeaderTypeText": "Voer tekst in",
|
||||||
"HeaderUpcomingOnTV": "Binnenkort op tv",
|
"HeaderUpcomingOnTV": "Binnenkort op tv",
|
||||||
"HeaderUploadImage": "Afbeelding Uploaden",
|
"HeaderUploadImage": "Afbeelding Uploaden",
|
||||||
|
@ -504,7 +504,7 @@
|
||||||
"LabelHardwareAccelerationType": "Hardware acceleratie:",
|
"LabelHardwareAccelerationType": "Hardware acceleratie:",
|
||||||
"LabelHardwareAccelerationTypeHelp": "Hardwarematige versnelling vereist extra configuratie.",
|
"LabelHardwareAccelerationTypeHelp": "Hardwarematige versnelling vereist extra configuratie.",
|
||||||
"LabelHomeNetworkQuality": "Thuisnetwerk kwaliteit:",
|
"LabelHomeNetworkQuality": "Thuisnetwerk kwaliteit:",
|
||||||
"LabelHomeScreenSectionValue": "Beginscherm sectie {0}:",
|
"LabelHomeScreenSectionValue": "Beginschermsectie {0}:",
|
||||||
"LabelHttpsPort": "Lokale HTTPS poort nummer:",
|
"LabelHttpsPort": "Lokale HTTPS poort nummer:",
|
||||||
"LabelHttpsPortHelp": "Het TCP poort nummer voor de HTTPS server.",
|
"LabelHttpsPortHelp": "Het TCP poort nummer voor de HTTPS server.",
|
||||||
"LabelIconMaxHeight": "Pictogram maximum hoogte:",
|
"LabelIconMaxHeight": "Pictogram maximum hoogte:",
|
||||||
|
@ -735,7 +735,7 @@
|
||||||
"MessageConfirmRevokeApiKey": "Weet u zeker dat u deze API-sleutel in wilt trekken? De verbinding van de applicatie met deze server zal plotseling verbroken worden.",
|
"MessageConfirmRevokeApiKey": "Weet u zeker dat u deze API-sleutel in wilt trekken? De verbinding van de applicatie met deze server zal plotseling verbroken worden.",
|
||||||
"MessageConfirmShutdown": "Weet u zeker dat u de server wilt afsluiten?",
|
"MessageConfirmShutdown": "Weet u zeker dat u de server wilt afsluiten?",
|
||||||
"MessageContactAdminToResetPassword": "Neem contact op met de serverbeheerder om uw wachtwoord te resetten.",
|
"MessageContactAdminToResetPassword": "Neem contact op met de serverbeheerder om uw wachtwoord te resetten.",
|
||||||
"MessageCreateAccountAt": "Maak een account bij {0}",
|
"MessageCreateAccountAt": "Account aanmaken bij {0}",
|
||||||
"MessageDeleteTaskTrigger": "Weet u zeker dat u deze signaal taak wilt verwijderen?",
|
"MessageDeleteTaskTrigger": "Weet u zeker dat u deze signaal taak wilt verwijderen?",
|
||||||
"MessageDirectoryPickerBSDInstruction": "Voor BSD moet u mogelijk de opslag in uw FreeNAS Jail opzetten, zodat Jellyfin toegang heeft tot uw media.",
|
"MessageDirectoryPickerBSDInstruction": "Voor BSD moet u mogelijk de opslag in uw FreeNAS Jail opzetten, zodat Jellyfin toegang heeft tot uw media.",
|
||||||
"MessageDirectoryPickerLinuxInstruction": "Voor Linux op Arch Linux, CentOS, Debian, Fedora, openSUSE, of Ubuntu, moet u de service-gebruiker ten minste leestoegang tot uw opslaglocaties verlenen.",
|
"MessageDirectoryPickerLinuxInstruction": "Voor Linux op Arch Linux, CentOS, Debian, Fedora, openSUSE, of Ubuntu, moet u de service-gebruiker ten minste leestoegang tot uw opslaglocaties verlenen.",
|
||||||
|
@ -928,8 +928,8 @@
|
||||||
"Raised": "Verhoogd",
|
"Raised": "Verhoogd",
|
||||||
"Rate": "Waardeer",
|
"Rate": "Waardeer",
|
||||||
"RecentlyWatched": "Onlangs bekeken",
|
"RecentlyWatched": "Onlangs bekeken",
|
||||||
"RecommendationBecauseYouLike": "Omdat u {0} leuk vond",
|
"RecommendationBecauseYouLike": "Omdat je {0} leuk vindt",
|
||||||
"RecommendationBecauseYouWatched": "Omdat u keek naar {0}",
|
"RecommendationBecauseYouWatched": "Omdat je keek naar {0}",
|
||||||
"RecommendationDirectedBy": "Geregisseerd door {0}",
|
"RecommendationDirectedBy": "Geregisseerd door {0}",
|
||||||
"RecommendationStarring": "In de hoofdrollen {0}",
|
"RecommendationStarring": "In de hoofdrollen {0}",
|
||||||
"Record": "Opnemen",
|
"Record": "Opnemen",
|
||||||
|
@ -991,7 +991,7 @@
|
||||||
"Shuffle": "Willekeurig",
|
"Shuffle": "Willekeurig",
|
||||||
"SimultaneousConnectionLimitHelp": "Het maximum aantal toegestane gelijktijdige streams. Geef 0 in voor geen limiet.",
|
"SimultaneousConnectionLimitHelp": "Het maximum aantal toegestane gelijktijdige streams. Geef 0 in voor geen limiet.",
|
||||||
"SkipEpisodesAlreadyInMyLibrary": "Neem geen afleveringen op die al in mijn bibliotheek aanwezig zijn",
|
"SkipEpisodesAlreadyInMyLibrary": "Neem geen afleveringen op die al in mijn bibliotheek aanwezig zijn",
|
||||||
"SkipEpisodesAlreadyInMyLibraryHelp": "Afleveringen zullen worden vergeleken met behulp van seizoen en aflevering nummers, indien beschikbaar.",
|
"SkipEpisodesAlreadyInMyLibraryHelp": "Afleveringen zullen worden vergeleken met behulp van seizoens- en afleveringsnummers, indien beschikbaar.",
|
||||||
"Small": "Klein",
|
"Small": "Klein",
|
||||||
"SmallCaps": "Kleine letters",
|
"SmallCaps": "Kleine letters",
|
||||||
"Smaller": "Kleiner",
|
"Smaller": "Kleiner",
|
||||||
|
@ -1059,7 +1059,7 @@
|
||||||
"ValueConditions": "Voorwaarden: {0}",
|
"ValueConditions": "Voorwaarden: {0}",
|
||||||
"ValueEpisodeCount": "{0} afleveringen",
|
"ValueEpisodeCount": "{0} afleveringen",
|
||||||
"ValueMovieCount": "{0} films",
|
"ValueMovieCount": "{0} films",
|
||||||
"ValueMusicVideoCount": "{0} muziek video's",
|
"ValueMusicVideoCount": "{0} muziekvideo's",
|
||||||
"ValueOneEpisode": "1 aflevering",
|
"ValueOneEpisode": "1 aflevering",
|
||||||
"ValueOneMovie": "1 film",
|
"ValueOneMovie": "1 film",
|
||||||
"ValueOneMusicVideo": "1 muziekvideo",
|
"ValueOneMusicVideo": "1 muziekvideo",
|
||||||
|
@ -1265,7 +1265,7 @@
|
||||||
"EveryXMinutes": "Elke {0} minuten",
|
"EveryXMinutes": "Elke {0} minuten",
|
||||||
"OnWakeFromSleep": "Op het wakker worden vanuit slaapstand",
|
"OnWakeFromSleep": "Op het wakker worden vanuit slaapstand",
|
||||||
"WeeklyAt": "{0}s op {1}",
|
"WeeklyAt": "{0}s op {1}",
|
||||||
"DailyAt": "Dagelijks op {0}",
|
"DailyAt": "Dagelijks om {0}",
|
||||||
"LastSeen": "Laatst gezien {0}",
|
"LastSeen": "Laatst gezien {0}",
|
||||||
"PersonRole": "als {0}",
|
"PersonRole": "als {0}",
|
||||||
"ListPaging": "{0}-{1} van de {2}",
|
"ListPaging": "{0}-{1} van de {2}",
|
||||||
|
@ -1292,7 +1292,7 @@
|
||||||
"MessageSyncPlayGroupDoesNotExist": "Kan niet deelnemen aan de groep omdat deze niet bestaat.",
|
"MessageSyncPlayGroupDoesNotExist": "Kan niet deelnemen aan de groep omdat deze niet bestaat.",
|
||||||
"MessageSyncPlayPlaybackPermissionRequired": "Afspeelrechten vereist.",
|
"MessageSyncPlayPlaybackPermissionRequired": "Afspeelrechten vereist.",
|
||||||
"MessageSyncPlayGroupWait": "{0} is aan het bufferen…",
|
"MessageSyncPlayGroupWait": "{0} is aan het bufferen…",
|
||||||
"MessageSyncPlayUserLeft": "{0} i heeft de groep verlaten.",
|
"MessageSyncPlayUserLeft": "{0} heeft de groep verlaten.",
|
||||||
"MessageSyncPlayUserJoined": "{0} is lid geworden van de groep.",
|
"MessageSyncPlayUserJoined": "{0} is lid geworden van de groep.",
|
||||||
"MessageSyncPlayDisabled": "SyncPlay uitgeschakeld.",
|
"MessageSyncPlayDisabled": "SyncPlay uitgeschakeld.",
|
||||||
"MessageSyncPlayEnabled": "SyncPlay ingeschakeld.",
|
"MessageSyncPlayEnabled": "SyncPlay ingeschakeld.",
|
||||||
|
@ -1702,5 +1702,16 @@
|
||||||
"HeaderDummyChapter": "Hoofdstukafbeeldingen",
|
"HeaderDummyChapter": "Hoofdstukafbeeldingen",
|
||||||
"LabelDummyChapterDurationHelp": "De extractieinterval voor hoofdstukafbeeldingen in seconden.",
|
"LabelDummyChapterDurationHelp": "De extractieinterval voor hoofdstukafbeeldingen in seconden.",
|
||||||
"ResolutionMatchSource": "Gelijk aan bron",
|
"ResolutionMatchSource": "Gelijk aan bron",
|
||||||
"HeaderRecordingMetadataSaving": "Metadata opname"
|
"HeaderRecordingMetadataSaving": "Metadata opname",
|
||||||
|
"SecondarySubtitles": "Secundaire ondertiteling",
|
||||||
|
"SubtitleBlack": "Zwart",
|
||||||
|
"SubtitleBlue": "Blauw",
|
||||||
|
"SubtitleCyan": "Cyaan",
|
||||||
|
"SubtitleGray": "Grijs",
|
||||||
|
"SubtitleGreen": "Groen",
|
||||||
|
"SubtitleLightGray": "Lichtgrijs",
|
||||||
|
"SubtitleMagenta": "Magenta",
|
||||||
|
"SubtitleRed": "Rood",
|
||||||
|
"SubtitleWhite": "Wit",
|
||||||
|
"SubtitleYellow": "Geel"
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,11 +173,11 @@
|
||||||
"HeaderImageSettings": "Nastavenia obrázkov",
|
"HeaderImageSettings": "Nastavenia obrázkov",
|
||||||
"HeaderInstall": "Inštalovať",
|
"HeaderInstall": "Inštalovať",
|
||||||
"HeaderInstantMix": "Okamžitý mix",
|
"HeaderInstantMix": "Okamžitý mix",
|
||||||
"HeaderLatestEpisodes": "Najnovšie epizódy",
|
"HeaderLatestEpisodes": "Najnovšie pridané epizódy",
|
||||||
"HeaderLatestMedia": "Najnovšie médiá",
|
"HeaderLatestMedia": "Najnovšie pridané médiá",
|
||||||
"HeaderLatestMovies": "Najnovšie filmy",
|
"HeaderLatestMovies": "Najnovšie pridané filmy",
|
||||||
"HeaderLatestMusic": "Najnovšia hudba",
|
"HeaderLatestMusic": "Najnovšia pridaná hudba",
|
||||||
"HeaderLatestRecordings": "Najnovšie nahrávky",
|
"HeaderLatestRecordings": "Najnovšie pridané nahrávky",
|
||||||
"HeaderLibraries": "Knižnice",
|
"HeaderLibraries": "Knižnice",
|
||||||
"HeaderLibraryAccess": "Prístup ku knižnici",
|
"HeaderLibraryAccess": "Prístup ku knižnici",
|
||||||
"HeaderLibraryFolders": "Priečinky knižnice",
|
"HeaderLibraryFolders": "Priečinky knižnice",
|
||||||
|
@ -659,7 +659,7 @@
|
||||||
"TabCodecs": "Kodeky",
|
"TabCodecs": "Kodeky",
|
||||||
"TabContainers": "Kontajnery",
|
"TabContainers": "Kontajnery",
|
||||||
"TabDashboard": "Dashboard",
|
"TabDashboard": "Dashboard",
|
||||||
"TabLatest": "Najnovšie",
|
"TabLatest": "Najnovšie pridané",
|
||||||
"TabMusic": "Hudba",
|
"TabMusic": "Hudba",
|
||||||
"TabMyPlugins": "Moje zásuvné moduly",
|
"TabMyPlugins": "Moje zásuvné moduly",
|
||||||
"TabNetworks": "TV Siete",
|
"TabNetworks": "TV Siete",
|
||||||
|
@ -723,7 +723,7 @@
|
||||||
"ButtonRevoke": "Odvolať",
|
"ButtonRevoke": "Odvolať",
|
||||||
"ButtonSelectView": "Výber zobrazenia",
|
"ButtonSelectView": "Výber zobrazenia",
|
||||||
"CancelRecording": "Zrušiť nahrávanie",
|
"CancelRecording": "Zrušiť nahrávanie",
|
||||||
"AirDate": "Dátum vysielania",
|
"AirDate": "Dátum prvého vysielania",
|
||||||
"Aired": "Odvysielané",
|
"Aired": "Odvysielané",
|
||||||
"Alerts": "Upozornenia",
|
"Alerts": "Upozornenia",
|
||||||
"AllowOnTheFlySubtitleExtraction": "Povoliť extrahovanie titulkov za behu",
|
"AllowOnTheFlySubtitleExtraction": "Povoliť extrahovanie titulkov za behu",
|
||||||
|
@ -968,7 +968,7 @@
|
||||||
"EnableStreamLooping": "Autom. slučka živého vysielania",
|
"EnableStreamLooping": "Autom. slučka živého vysielania",
|
||||||
"EnableExternalVideoPlayersHelp": "Ponuka externého prehrávača sa zobrazí pri spustení prehrávania videa.",
|
"EnableExternalVideoPlayersHelp": "Ponuka externého prehrávača sa zobrazí pri spustení prehrávania videa.",
|
||||||
"EnableBackdropsHelp": "Zobraziť pozadia pre niektoré stránky pri prechádzaní knižnice.",
|
"EnableBackdropsHelp": "Zobraziť pozadia pre niektoré stránky pri prechádzaní knižnice.",
|
||||||
"DisplayInOtherHomeScreenSections": "Zobraziť v sekciách domovskej obrazovky, ako sú najnovšie médiá a pokračovať v pozeraní",
|
"DisplayInOtherHomeScreenSections": "Zobraziť 'Najnovšie pridané médiá' a 'Pokračovať v pozeraní' v sekciách domovskej obrazovky",
|
||||||
"DirectStreamHelp1": "Video je kompatibilné zo zariadením, ale zvuková stopa je v nekompatibilnom formáte (DTS, Dolby TrueHD, atď.) alebo má nekompatibilný počet kanálov. Video bude pred odoslaním do zariadenia za behu bezstrátovo prebalené. Iba zvuk bude prekódovaný.",
|
"DirectStreamHelp1": "Video je kompatibilné zo zariadením, ale zvuková stopa je v nekompatibilnom formáte (DTS, Dolby TrueHD, atď.) alebo má nekompatibilný počet kanálov. Video bude pred odoslaním do zariadenia za behu bezstrátovo prebalené. Iba zvuk bude prekódovaný.",
|
||||||
"Depressed": "Stlačený",
|
"Depressed": "Stlačený",
|
||||||
"DefaultSubtitlesHelp": "Titulky sú načítané v závislosti od predvolených a vynútených nastavení vo vložených metadátach. Jazykové predvoľby sú zobrané do úvahy až vtedy, keď je k dispozícií viacero možností.",
|
"DefaultSubtitlesHelp": "Titulky sú načítané v závislosti od predvolených a vynútených nastavení vo vložených metadátach. Jazykové predvoľby sú zobrané do úvahy až vtedy, keď je k dispozícií viacero možností.",
|
||||||
|
@ -1701,5 +1701,6 @@
|
||||||
"LabelDummyChapterDurationHelp": "Interval extrakcie obrázkov kapitol v sekundách.",
|
"LabelDummyChapterDurationHelp": "Interval extrakcie obrázkov kapitol v sekundách.",
|
||||||
"SaveRecordingNFO": "Uložiť metadáta nahrávky zo sprievodcu EPG do NFO",
|
"SaveRecordingNFO": "Uložiť metadáta nahrávky zo sprievodcu EPG do NFO",
|
||||||
"SaveRecordingImagesHelp": "Uloží obrázky z EPG položiek sprievodcu spolu s médiami.",
|
"SaveRecordingImagesHelp": "Uloží obrázky z EPG položiek sprievodcu spolu s médiami.",
|
||||||
"HeaderRecordingMetadataSaving": "Metadáta nahrávok"
|
"HeaderRecordingMetadataSaving": "Metadáta nahrávok",
|
||||||
|
"SecondarySubtitles": "Sekundárne titulky"
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,20 +14,20 @@
|
||||||
"FileNotFound": "Không tìm thấy tệp tin.",
|
"FileNotFound": "Không tìm thấy tệp tin.",
|
||||||
"FileReadCancelled": "Tệp đọc đã bị hủy.",
|
"FileReadCancelled": "Tệp đọc đã bị hủy.",
|
||||||
"FileReadError": "Có một lỗi xảy ra khi đọc tệp tin này.",
|
"FileReadError": "Có một lỗi xảy ra khi đọc tệp tin này.",
|
||||||
"HeaderCustomDlnaProfiles": "Hồ sơ khách hàng",
|
"HeaderCustomDlnaProfiles": "Cấu Hình Tùy Chỉnh",
|
||||||
"HeaderFeatureAccess": "Truy cập tính năng:",
|
"HeaderFeatureAccess": "Truy cập tính năng:",
|
||||||
"HeaderFrequentlyPlayed": "Phát thường xuyên",
|
"HeaderFrequentlyPlayed": "Phát thường xuyên",
|
||||||
"HeaderLatestEpisodes": "Tập Phim Thêm Gần Đây",
|
"HeaderLatestEpisodes": "Tập Phim Thêm Gần Đây",
|
||||||
"HeaderLatestMovies": "Phim Thêm Gần Đây",
|
"HeaderLatestMovies": "Phim Thêm Gần Đây",
|
||||||
"HeaderRecentlyPlayed": "Phát gần đây",
|
"HeaderRecentlyPlayed": "Phát gần đây",
|
||||||
"HeaderStatus": "Trạng thái",
|
"HeaderStatus": "Trạng thái",
|
||||||
"HeaderSystemDlnaProfiles": "Hồ sơ hệ thống",
|
"HeaderSystemDlnaProfiles": "Cấu Hình Hệ Thống",
|
||||||
"HeaderUsers": "Người dùng",
|
"HeaderUsers": "Người dùng",
|
||||||
"LabelAudioLanguagePreference": "Ngôn ngữ thoại ưa thích:",
|
"LabelAudioLanguagePreference": "Ngôn ngữ thoại ưa thích:",
|
||||||
"LabelCountry": "Quốc gia:",
|
"LabelCountry": "Quốc gia:",
|
||||||
"LabelCurrentPassword": "Mật khẩu hiện tại:",
|
"LabelCurrentPassword": "Mật khẩu hiện tại:",
|
||||||
"LabelDay": "Ngày trong tuần:",
|
"LabelDay": "Ngày trong tuần:",
|
||||||
"LabelEnableDlnaPlayTo": "Bật tính năng 'Phát tới' DLNA",
|
"LabelEnableDlnaPlayTo": "Bật tính năng 'Phát Với' DLNA",
|
||||||
"LabelEvent": "Sự kiện:",
|
"LabelEvent": "Sự kiện:",
|
||||||
"LabelFinish": "Xong",
|
"LabelFinish": "Xong",
|
||||||
"LabelLanguage": "Ngôn ngữ:",
|
"LabelLanguage": "Ngôn ngữ:",
|
||||||
|
@ -175,7 +175,7 @@
|
||||||
"DeathDateValue": "Đã chết: {0}",
|
"DeathDateValue": "Đã chết: {0}",
|
||||||
"DatePlayed": "Ngày phát",
|
"DatePlayed": "Ngày phát",
|
||||||
"DateAdded": "Ngày thêm",
|
"DateAdded": "Ngày thêm",
|
||||||
"CustomDlnaProfilesHelp": "Tạo một bộ thiết lập tuỳ chọn dành cho một thiết bị mới hoặc thay thế một thiết lập hệ thống.",
|
"CustomDlnaProfilesHelp": "Tạo cấu hình tùy chỉnh nhắm đến thiết bị mới hoặc ghi đè cấu hình hệ thống.",
|
||||||
"CriticRating": "Đánh giá của nhà phê bình",
|
"CriticRating": "Đánh giá của nhà phê bình",
|
||||||
"CopyStreamURLSuccess": "Đã sao chép URL thành công.",
|
"CopyStreamURLSuccess": "Đã sao chép URL thành công.",
|
||||||
"CopyStreamURL": "Sao chép URL luồng phát",
|
"CopyStreamURL": "Sao chép URL luồng phát",
|
||||||
|
@ -254,7 +254,7 @@
|
||||||
"HeaderDateIssued": "Ngày Phát Hành",
|
"HeaderDateIssued": "Ngày Phát Hành",
|
||||||
"HeaderContinueWatching": "Xem Tiếp",
|
"HeaderContinueWatching": "Xem Tiếp",
|
||||||
"HeaderContinueListening": "Tiếp Tục Nghe",
|
"HeaderContinueListening": "Tiếp Tục Nghe",
|
||||||
"HeaderCodecProfileHelp": "Hồ sơ mã hóa chỉ ra những kiểu mã hoá nhất định mà một thiết bị có thể phát. Nếu một nội dung không thể phát, nó sẽ được chuyển mã, thậm chí nếu kiểu mã hoá đó được cấu hình để phát lại trực tiếp.",
|
"HeaderCodecProfileHelp": "Cấu hình mã hóa cho biết các giới hạn của thiết bị khi phát các bộ mã hóa. Nếu giới hạn được áp dụng thì phương tiện sẽ được chuyển mã, ngay cả khi bộ mã hóa được cấu hình để phát lại trực tiếp.",
|
||||||
"HeaderContainerProfileHelp": "Cấu hình vùng chứa cho biết các giới hạn của thiết bị khi phát các định dạng cụ thể. Nếu giới hạn được áp dụng thì phương tiện sẽ được chuyển mã, ngay cả khi định dạng được định cấu hình để phát lại trực tiếp.",
|
"HeaderContainerProfileHelp": "Cấu hình vùng chứa cho biết các giới hạn của thiết bị khi phát các định dạng cụ thể. Nếu giới hạn được áp dụng thì phương tiện sẽ được chuyển mã, ngay cả khi định dạng được định cấu hình để phát lại trực tiếp.",
|
||||||
"HeaderContainerProfile": "Hồ Sơ Định Dạng",
|
"HeaderContainerProfile": "Hồ Sơ Định Dạng",
|
||||||
"HeaderConnectionFailure": "Kế Nối Thất Bại",
|
"HeaderConnectionFailure": "Kế Nối Thất Bại",
|
||||||
|
@ -452,9 +452,9 @@
|
||||||
"HeaderTracks": "Bản ghi",
|
"HeaderTracks": "Bản ghi",
|
||||||
"HeaderThisUserIsCurrentlyDisabled": "Người dùng này hiện tại đang bị khoá",
|
"HeaderThisUserIsCurrentlyDisabled": "Người dùng này hiện tại đang bị khoá",
|
||||||
"HeaderTaskTriggers": "Kích Hoạt Tác Vụ",
|
"HeaderTaskTriggers": "Kích Hoạt Tác Vụ",
|
||||||
"HeaderSubtitleProfilesHelp": "Hồ sơ phụ đề chỉ ra những định dạng phụ đề được hỗ trợ bởi thiết bị phát.",
|
"HeaderSubtitleProfilesHelp": "Cấu hình phụ đề chỉ ra những định dạng phụ đề được hỗ trợ bởi thiết bị phát.",
|
||||||
"HeaderSubtitleProfiles": "Hồ Sơ Phụ Đề",
|
"HeaderSubtitleProfiles": "Cấu Hình Phụ Đề",
|
||||||
"HeaderSubtitleProfile": "Hồ Sơ Phụ Đề",
|
"HeaderSubtitleProfile": "Cấu Hình Phụ Đề",
|
||||||
"HeaderSubtitleDownloads": "Tải Phụ Đề",
|
"HeaderSubtitleDownloads": "Tải Phụ Đề",
|
||||||
"HeaderSubtitleAppearance": "Giao Diện Phụ Đề",
|
"HeaderSubtitleAppearance": "Giao Diện Phụ Đề",
|
||||||
"HeaderStopRecording": "Ngừng Ghi Hình/Ghi Âm",
|
"HeaderStopRecording": "Ngừng Ghi Hình/Ghi Âm",
|
||||||
|
@ -503,7 +503,7 @@
|
||||||
"LabelAlbumArtPN": "Bìa Tuyển Tập PN:",
|
"LabelAlbumArtPN": "Bìa Tuyển Tập PN:",
|
||||||
"LabelAlbumArtMaxWidth": "Chiều rộng tối đa bìa tuyển tập:",
|
"LabelAlbumArtMaxWidth": "Chiều rộng tối đa bìa tuyển tập:",
|
||||||
"LabelAlbumArtMaxHeight": "Chiều cao tối đa bìa tuyển tập:",
|
"LabelAlbumArtMaxHeight": "Chiều cao tối đa bìa tuyển tập:",
|
||||||
"LabelAlbumArtHelp": "PN được sử dụng cho bìa tuyển tập, trong 'dlna:profileID' thuộc tính upnp:albumArtURI. Một vài thiết bị phát cần một giá trị đặc biệt, không ảnh hưởng đến kích thước của hình ảnh.",
|
"LabelAlbumArtHelp": "PN được dùng cho ảnh bìa album, trong thuộc tính 'dlna:profileID' trên 'upnp:albumArtURI'. Một số thiết bị yêu cầu một giá trị cụ thể, bất kể kích thước của hình ảnh.",
|
||||||
"LabelAlbum": "Tuyển Tập:",
|
"LabelAlbum": "Tuyển Tập:",
|
||||||
"LabelAirsBeforeSeason": "Phát sóng trước phần:",
|
"LabelAirsBeforeSeason": "Phát sóng trước phần:",
|
||||||
"LabelAirsBeforeEpisode": "Phát sóng trước tập:",
|
"LabelAirsBeforeEpisode": "Phát sóng trước tập:",
|
||||||
|
@ -544,8 +544,8 @@
|
||||||
"HeaderTypeImageFetchers": "Trình tìm nạp hình ảnh ({0}):",
|
"HeaderTypeImageFetchers": "Trình tìm nạp hình ảnh ({0}):",
|
||||||
"HeaderTuners": "Bộ Điều Khiển Thu Phát Sóng",
|
"HeaderTuners": "Bộ Điều Khiển Thu Phát Sóng",
|
||||||
"HeaderTunerDevices": "Thiết Bị Dò",
|
"HeaderTunerDevices": "Thiết Bị Dò",
|
||||||
"HeaderTranscodingProfileHelp": "Thêm hồ sơ chuyển mã để chỉ ra những định dạng nên dùng khi cần chuyển mã.",
|
"HeaderTranscodingProfileHelp": "Thêm cấu hình chuyển mã để cho biết định dạng nào sẽ được sử dụng khi cần chuyển mã.",
|
||||||
"HeaderTranscodingProfile": "Hồ Sơ Chuyển Mã",
|
"HeaderTranscodingProfile": "Cấu Hình Chuyển Mã",
|
||||||
"LabelEnableAutomaticPortMap": "Kích hoạt tính năng tự động kết nối các port",
|
"LabelEnableAutomaticPortMap": "Kích hoạt tính năng tự động kết nối các port",
|
||||||
"LabelEmbedAlbumArtDidlHelp": "Một số thiết bị thích cách này hơn để tải ảnh bìa album. Số khác có thể bị lỗi nếu tuỳ chọn này được bật.",
|
"LabelEmbedAlbumArtDidlHelp": "Một số thiết bị thích cách này hơn để tải ảnh bìa album. Số khác có thể bị lỗi nếu tuỳ chọn này được bật.",
|
||||||
"LabelEmbedAlbumArtDidl": "Bìa tuyển tập trong DIDL",
|
"LabelEmbedAlbumArtDidl": "Bìa tuyển tập trong DIDL",
|
||||||
|
@ -567,7 +567,7 @@
|
||||||
"LabelDidlMode": "Chế độ DIDL:",
|
"LabelDidlMode": "Chế độ DIDL:",
|
||||||
"LabelDeviceDescription": "Mô tả thiết bị:",
|
"LabelDeviceDescription": "Mô tả thiết bị:",
|
||||||
"LabelDeinterlaceMethod": "Phương pháp khử xen kẽ:",
|
"LabelDeinterlaceMethod": "Phương pháp khử xen kẽ:",
|
||||||
"LabelDefaultUserHelp": "Xác định thư viện người dùng sẽ hiển thị trên các thiết bị được kết nối. Tuỳ chọn này có thể được ghi đè trên hồ sơ của từng thiết bị.",
|
"LabelDefaultUserHelp": "Xác định thư viện người dùng sẽ hiển thị trên các thiết bị được kết nối. Điều này có thể được ghi đè trên cấu hình từng thiết bị.",
|
||||||
"LabelDefaultUser": "Người dùng mặc định:",
|
"LabelDefaultUser": "Người dùng mặc định:",
|
||||||
"LabelDefaultScreen": "Màn hình mặc định:",
|
"LabelDefaultScreen": "Màn hình mặc định:",
|
||||||
"LabelDeathDate": "Ngày mất:",
|
"LabelDeathDate": "Ngày mất:",
|
||||||
|
@ -590,10 +590,10 @@
|
||||||
"LabelEnableHttps": "Bật HTTPS",
|
"LabelEnableHttps": "Bật HTTPS",
|
||||||
"LabelEnableHardwareDecodingFor": "Bật giải mã phần cứng cho:",
|
"LabelEnableHardwareDecodingFor": "Bật giải mã phần cứng cho:",
|
||||||
"LabelEnableDlnaServerHelp": "Cho phép các thiết bị UPnP trong mạng của bạn duyệt và phát nội dung.",
|
"LabelEnableDlnaServerHelp": "Cho phép các thiết bị UPnP trong mạng của bạn duyệt và phát nội dung.",
|
||||||
"LabelEnableDlnaServer": "Bật tính năng máy chủ DLNA",
|
"LabelEnableDlnaServer": "Bật máy chủ DLNA",
|
||||||
"LabelEnableDlnaPlayToHelp": "Phát hiện các thiết bị trong mạng của bạn và cung cấp khả năng điều khiển chúng từ xa.",
|
"LabelEnableDlnaPlayToHelp": "Phát hiện các thiết bị trong mạng của bạn và cung cấp khả năng điều khiển chúng từ xa.",
|
||||||
"LabelEnableDlnaDebugLoggingHelp": "Tạo tệp nhật ký lớn và chỉ nên dùng khi cần thiết để xử lý sự cố.",
|
"LabelEnableDlnaDebugLoggingHelp": "Tạo tệp nhật ký lớn và chỉ nên dùng khi cần thiết để xử lý sự cố.",
|
||||||
"LabelEnableDlnaDebugLogging": "Bật tính năng gỡ lỗi DLNA",
|
"LabelEnableDlnaDebugLogging": "Bật ghi nhật ký gỡ lỗi DLNA",
|
||||||
"LabelEnableDlnaClientDiscoveryIntervalHelp": "Xác định thời gian tính bằng giây giữa hai lần tìm kiếm SSDP.",
|
"LabelEnableDlnaClientDiscoveryIntervalHelp": "Xác định thời gian tính bằng giây giữa hai lần tìm kiếm SSDP.",
|
||||||
"LabelEnableDlnaClientDiscoveryInterval": "Thời gian dò tìm máy khách:",
|
"LabelEnableDlnaClientDiscoveryInterval": "Thời gian dò tìm máy khách:",
|
||||||
"LabelEnableBlastAliveMessagesHelp": "Bật cái này nếu máy chủ không được các thiết bị UPnP khác trên mạng của bạn tìm ra một cách đáng tin cậy.",
|
"LabelEnableBlastAliveMessagesHelp": "Bật cái này nếu máy chủ không được các thiết bị UPnP khác trên mạng của bạn tìm ra một cách đáng tin cậy.",
|
||||||
|
@ -837,7 +837,7 @@
|
||||||
"LabelProfileVideoCodecs": "Mã hóa video:",
|
"LabelProfileVideoCodecs": "Mã hóa video:",
|
||||||
"LabelProfileContainersHelp": "Phân cách bằng dấu phẩy. Để trống để áp dụng cho tất cả các định dạng.",
|
"LabelProfileContainersHelp": "Phân cách bằng dấu phẩy. Để trống để áp dụng cho tất cả các định dạng.",
|
||||||
"LabelProfileContainer": "Định dạng:",
|
"LabelProfileContainer": "Định dạng:",
|
||||||
"LabelProfileCodecsHelp": "Phân cách bằng dấu phẩy. Điều này có thể được để trống để áp dụng cho tất cả các mã hóa.",
|
"LabelProfileCodecsHelp": "Phân cách bằng dấu phẩy. Có thể để trống để dùng tất cả các mã hóa.",
|
||||||
"LabelProfileCodecs": "Mã hóa:",
|
"LabelProfileCodecs": "Mã hóa:",
|
||||||
"LabelProfileAudioCodecs": "Mã hóa âm thanh:",
|
"LabelProfileAudioCodecs": "Mã hóa âm thanh:",
|
||||||
"LabelPreferredSubtitleLanguage": "Ngôn ngữ phụ đề ưu tiên:",
|
"LabelPreferredSubtitleLanguage": "Ngôn ngữ phụ đề ưu tiên:",
|
||||||
|
@ -1271,7 +1271,7 @@
|
||||||
"Transcoding": "Chuyển mã",
|
"Transcoding": "Chuyển mã",
|
||||||
"Trailers": "Đoạn giới thiệu",
|
"Trailers": "Đoạn giới thiệu",
|
||||||
"TabAccess": "Truy cập",
|
"TabAccess": "Truy cập",
|
||||||
"SystemDlnaProfilesHelp": "Cấu hình hệ thống ở chế độ chỉ đọc. Các thay đổi đối với cấu hình hệ thống sẽ được lưu vào cấu hình tùy chỉnh mới.",
|
"SystemDlnaProfilesHelp": "Cấu hình hệ thống ở chế độ chỉ đọc. Thay đổi cấu hình hệ thống sẽ được lưu vào cấu hình tùy chỉnh mới.",
|
||||||
"Sports": "Thể thao",
|
"Sports": "Thể thao",
|
||||||
"SpecialFeatures": "Các tính năng đặc biệt",
|
"SpecialFeatures": "Các tính năng đặc biệt",
|
||||||
"SortName": "Sắp xếp tên",
|
"SortName": "Sắp xếp tên",
|
||||||
|
@ -1532,7 +1532,7 @@
|
||||||
"InterlacedVideoNotSupported": "Video xen kẽ không được hỗ trợ",
|
"InterlacedVideoNotSupported": "Video xen kẽ không được hỗ trợ",
|
||||||
"AnamorphicVideoNotSupported": "Video Anamorphic không được hỗ trợ",
|
"AnamorphicVideoNotSupported": "Video Anamorphic không được hỗ trợ",
|
||||||
"AudioSampleRateNotSupported": "Tốc độ mẫu của âm thanh không được hỗ trợ",
|
"AudioSampleRateNotSupported": "Tốc độ mẫu của âm thanh không được hỗ trợ",
|
||||||
"AudioProfileNotSupported": "Cấu hình của mã hóa âm thanh không được hỗ trợ",
|
"AudioProfileNotSupported": "Cấu hình mã hóa âm thanh không được hỗ trợ",
|
||||||
"VideoResolutionNotSupported": "Độ phân giải của video không được hỗ trợ",
|
"VideoResolutionNotSupported": "Độ phân giải của video không được hỗ trợ",
|
||||||
"AudioChannelsNotSupported": "Số kênh âm thanh không được hỗ trợ",
|
"AudioChannelsNotSupported": "Số kênh âm thanh không được hỗ trợ",
|
||||||
"AudioBitrateNotSupported": "Tốc độ bit của âm thanh không được hỗ trợ",
|
"AudioBitrateNotSupported": "Tốc độ bit của âm thanh không được hỗ trợ",
|
||||||
|
@ -1695,5 +1695,15 @@
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNames": "Ưu tiên tiêu đề được nhúng hơn tên tệp cho các tính năng bổ sung",
|
"PreferEmbeddedExtrasTitlesOverFileNames": "Ưu tiên tiêu đề được nhúng hơn tên tệp cho các tính năng bổ sung",
|
||||||
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Phần bổ sung thường có cùng tên được nhúng với phần gốc, hãy kiểm tra điều này để sử dụng các tiêu đề được nhúng cho chúng.",
|
"PreferEmbeddedExtrasTitlesOverFileNamesHelp": "Phần bổ sung thường có cùng tên được nhúng với phần gốc, hãy kiểm tra điều này để sử dụng các tiêu đề được nhúng cho chúng.",
|
||||||
"HeaderDummyChapter": "Hình Ảnh Phân Đoạn",
|
"HeaderDummyChapter": "Hình Ảnh Phân Đoạn",
|
||||||
"HeaderRecordingMetadataSaving": "Dữ Liệu Mô Tả Bản Ghi"
|
"HeaderRecordingMetadataSaving": "Dữ Liệu Mô Tả Bản Ghi",
|
||||||
|
"SubtitleYellow": "Vàng",
|
||||||
|
"SubtitleBlack": "Đen",
|
||||||
|
"SubtitleBlue": "Xanh lam",
|
||||||
|
"SubtitleCyan": "Lục lam",
|
||||||
|
"SubtitleGray": "Xám",
|
||||||
|
"SubtitleGreen": "Xanh lá",
|
||||||
|
"SubtitleLightGray": "Xám Nhạt",
|
||||||
|
"SubtitleMagenta": "Đỏ Sậm",
|
||||||
|
"SubtitleRed": "Đỏ",
|
||||||
|
"SubtitleWhite": "Trắng"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1703,5 +1703,6 @@
|
||||||
"LabelDummyChapterCount": "限制:",
|
"LabelDummyChapterCount": "限制:",
|
||||||
"LabelDummyChapterCountHelp": "每个媒体文件的最大章节图像提取数。",
|
"LabelDummyChapterCountHelp": "每个媒体文件的最大章节图像提取数。",
|
||||||
"LabelChapterImageResolution": "分辨率:",
|
"LabelChapterImageResolution": "分辨率:",
|
||||||
"LabelChapterImageResolutionHelp": "提取的章节图像的分辨率。"
|
"LabelChapterImageResolutionHelp": "提取的章节图像的分辨率。",
|
||||||
|
"SecondarySubtitles": "次字幕"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@import "../../styles/noto-sans/index.scss";
|
@import "../styles/noto-sans/index.scss";
|
||||||
|
|
||||||
@mixin font($weight: null, $size: null) {
|
@mixin font($weight: null, $size: null) {
|
||||||
font-weight: $weight;
|
font-weight: $weight;
|
Loading…
Add table
Add a link
Reference in a new issue