mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-04 03:51:53 +02:00
Compare commits
260 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 93114b2181 | |||
| f6dd3de8e7 | |||
| 0918391636 | |||
| 972b4f7388 | |||
| af92ae4d51 | |||
| 3bc6426cc7 | |||
| acfbbd5aec | |||
| 9b677be12e | |||
| 2f2ec2ec1f | |||
| e05ab14ad2 | |||
| 9074e9ed88 | |||
| 1e5cb09ada | |||
| b0f1827e3c | |||
| ae7713bacc | |||
| b6c185eebe | |||
| 5114be0773 | |||
| 9a4c5a16ef | |||
| e6b1acfb44 | |||
| 1e5787c60d | |||
| 928b080677 | |||
| 3764ef14a9 | |||
| 92aae736c4 | |||
| 3a2f786517 | |||
| 7c0b4e35d7 | |||
| 0461b57e6c | |||
| a1688488e5 | |||
| 4d24817ced | |||
| d46de541d6 | |||
| 37f62d22b6 | |||
| b01ef1c691 | |||
| 277ff8a5a5 | |||
| d5f991ae4a | |||
| fed5ff4863 | |||
| 43217657d7 | |||
| fa1518cb1d | |||
| 6d14ed8a72 | |||
| b8e17de8b4 | |||
| e60a91379a | |||
| 046bf52d88 | |||
| bfc3c7e7c9 | |||
| dd1d2b7c92 | |||
| 8bdee51798 | |||
| 5858b64fc6 | |||
| 4baa89c8e1 | |||
| 1b015beba4 | |||
| ebaec23648 | |||
| d5e00c8bbd | |||
| 4732ca8119 | |||
| 134c2580c9 | |||
| 8e286a6070 | |||
| d7ace4d1dc | |||
| a21b1f3b16 | |||
| c309856f74 | |||
| 31146082f0 | |||
| 6fbbc65edf | |||
| c1349e586a | |||
| 8985ebebe2 | |||
| 394a004ff5 | |||
| 33e6ad4ad6 | |||
| 05a0793a9c | |||
| 3a5e9cd865 | |||
| a7cd79850d | |||
| 386edb0427 | |||
| 6c1e25e964 | |||
| a6a956fc28 | |||
| fb7d6807e2 | |||
| e9f8ca1c14 | |||
| c669ca5be1 | |||
| 6dd0fb4225 | |||
| 709f9a65fa | |||
| 3c888d2876 | |||
| aca39011bb | |||
| f6fc53d7d8 | |||
| 599623570b | |||
| 67b47785a0 | |||
| 56c0124c13 | |||
| f9e270e4be | |||
| 8cadaa57f6 | |||
| 042035051d | |||
| 12ce3a6147 | |||
| 9bf4bd9bfa | |||
| 2819317924 | |||
| e06ab594e1 | |||
| 04a65648a3 | |||
| 2673742d8d | |||
| 090c02079d | |||
| 514fb5f7da | |||
| f541bc2159 | |||
| d70810364c | |||
| 09d7880779 | |||
| c69e6bff10 | |||
| b49c2e7b82 | |||
| d012b2107d | |||
| 9294521632 | |||
| 7d05317357 | |||
| 2843a3b6d7 | |||
| 635f22ddfe | |||
| 903b685e1a | |||
| 09bcc1191f | |||
| d6eae9b43e | |||
| f95d9bd0e9 | |||
| e52b695f7e | |||
| 72c1407aa7 | |||
| 2ec49cbdb1 | |||
| 331d7a41ab | |||
| 8498cab842 | |||
| c170cb3132 | |||
| 0c58c9060e | |||
| e3c3903c71 | |||
| 7bc70effb0 | |||
| 991da2870f | |||
| 52b632d810 | |||
| 33531ff73b | |||
| 391a777dde | |||
| 85e7b63532 | |||
| b02429cf55 | |||
| 9e064e670a | |||
| 61b3785038 | |||
| a75ad5d659 | |||
| 516a3858c5 | |||
| 364787db72 | |||
| b2562ede55 | |||
| c441d83d39 | |||
| 08c6cc674b | |||
| 9c34e4bd14 | |||
| 9b159fc1e6 | |||
| bcc2fa409e | |||
| 360d54847c | |||
| b25314b4bd | |||
| c87f2a571e | |||
| 8be02303f9 | |||
| c6b4694b22 | |||
| 4762cdb7d8 | |||
| fe2a07bf4b | |||
| 9f80900717 | |||
| 6b001ad7a1 | |||
| 4241544aaf | |||
| 80bcc71c72 | |||
| 253095dcd6 | |||
| 0e4109a7c2 | |||
| 629741db92 | |||
| 79236dd67d | |||
| bdfb7b9af3 | |||
| 665244f1b2 | |||
| b74f13bbd7 | |||
| d1ee3af2d9 | |||
| 38fa4d4169 | |||
| 56d3ed5a8e | |||
| cadef9b023 | |||
| 34b340f179 | |||
| b89bbd2187 | |||
| d6438590d7 | |||
| baf5f7fbc3 | |||
| e6a2555f05 | |||
| 36425e1fab | |||
| 18efd95759 | |||
| f682a7a283 | |||
| cb968ef4ca | |||
| a6c5732693 | |||
| 7bbdc945d5 | |||
| b37431dfaa | |||
| a333ebe5b0 | |||
| 4affcd0d89 | |||
| 9d5e6351a4 | |||
| 91c25918f1 | |||
| bb88b5d861 | |||
| 11818a3576 | |||
| f3de134980 | |||
| 9fa5db6976 | |||
| 5e9043e5fa | |||
| 84e275174c | |||
| ae90dd358e | |||
| 0cfd153694 | |||
| bf99d3d506 | |||
| 9e055831fe | |||
| a349784da9 | |||
| 40f9e0f669 | |||
| c253a95127 | |||
| d70d49b9da | |||
| 16c5e4a398 | |||
| d53d16c551 | |||
| 312be0f639 | |||
| 0246dcc10d | |||
| 5aa1b14695 | |||
| 2ee24c1ded | |||
| 700afeacf0 | |||
| e9453d4f6c | |||
| 661db2af26 | |||
| efd205716b | |||
| 84144bb32a | |||
| 74a094c6df | |||
| aa89aca632 | |||
| 8ac9a0d7c0 | |||
| 0119d7fcff | |||
| be513fde4f | |||
| 715199d88b | |||
| 34942a3857 | |||
| d67e916c66 | |||
| e3e2d4ff99 | |||
| 699615f2f3 | |||
| 6d267cac0d | |||
| 7d719d94ba | |||
| 4bf410fd3e | |||
| 16cd05e187 | |||
| c7dcaa0316 | |||
| 09cf502e70 | |||
| 78ac7c2a28 | |||
| 57acda5592 | |||
| d52a168582 | |||
| 97a9782f31 | |||
| 11d8669426 | |||
| 2bceb6654a | |||
| 6feea6a1b0 | |||
| 139919ab20 | |||
| 234234cc5c | |||
| fcd74ae17b | |||
| c2897f819d | |||
| a018374d26 | |||
| ee501f70ed | |||
| e9e9a8ba75 | |||
| 5da4861716 | |||
| 9c7569fa7a | |||
| c8892c3725 | |||
| ef05e37a04 | |||
| 065aae9a7e | |||
| 06202811b4 | |||
| 3ef189ed4a | |||
| 5f8066e601 | |||
| ace490712e | |||
| 265cd75691 | |||
| f43969e429 | |||
| 9adfdda7da | |||
| 0715de8147 | |||
| 9c33446449 | |||
| 651601adf6 | |||
| 2186603039 | |||
| 2b5c7fb519 | |||
| 82dcd2d6fb | |||
| 3f2925029c | |||
| 4da4cf2885 | |||
| ae412f2a57 | |||
| 95506bc638 | |||
| 4b7b10a901 | |||
| 800cdc129d | |||
| fb86b4fc84 | |||
| 941f3248d8 | |||
| 6edbab863a | |||
| a9a317a378 | |||
| 3fd290c518 | |||
| b0924e4ce8 | |||
| 24adc8f66f | |||
| 5e8f247e84 | |||
| 761a2ff0bf | |||
| e368ffe29f | |||
| 70827727aa | |||
| 73c21242b4 | |||
| 06391b9b37 | |||
| 4c9b2ad08b | |||
| 79c34d0638 | |||
| 4e6b75d650 |
@@ -10,6 +10,3 @@ RUN apt-get update && \
|
|||||||
DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
|
DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
|
||||||
curl tzdata ffmpeg && \
|
curl tzdata ffmpeg && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Move tone executable to appropriate directory
|
|
||||||
COPY --from=sandreas/tone:v0.1.5 /usr/local/bin/tone /usr/local/bin/
|
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ jobs:
|
|||||||
- name: Set up node
|
- name: Set up node
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "20"
|
node-version: '20'
|
||||||
|
|
||||||
# The only argument is the `directory`, which is where the i18n files are
|
# The only argument is the `directory`, which is where the i18n files are
|
||||||
# stored.
|
# stored.
|
||||||
- name: Run Update JSON Files action
|
- name: Run Update JSON Files action
|
||||||
uses: audiobookshelf/audiobookshelf-i18n-updater@v1.2.0
|
uses: audiobookshelf/audiobookshelf-i18n-updater@v1.3.0
|
||||||
with:
|
with:
|
||||||
directory: "client/strings/" # Adjust the directory path as needed
|
directory: 'client/strings/' # Adjust the directory path as needed
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
node-version: 20
|
node-version: 20
|
||||||
|
|
||||||
- name: install pkg
|
- name: install pkg (using yao-pkg fork for targetting node20)
|
||||||
run: npm install -g pkg
|
run: npm install -g @yao-pkg/pkg
|
||||||
|
|
||||||
- name: get client dependencies
|
- name: get client dependencies
|
||||||
working-directory: client
|
working-directory: client
|
||||||
@@ -33,7 +33,7 @@ jobs:
|
|||||||
run: npm ci --only=production
|
run: npm ci --only=production
|
||||||
|
|
||||||
- name: build binary
|
- name: build binary
|
||||||
run: pkg -t node18-linux-x64 -o audiobookshelf .
|
run: pkg -t node20-linux-x64 -o audiobookshelf .
|
||||||
|
|
||||||
- name: run audiobookshelf
|
- name: run audiobookshelf
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
name: API linting
|
||||||
|
|
||||||
|
# Run on pull requests or pushes when there is a change to the OpenAPI file
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- docs/
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- docs/
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# Check out the repository
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
# Set up node to run the javascript
|
||||||
|
- name: Set up node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
# Install Redocly CLI
|
||||||
|
- name: Install Redocly CLI
|
||||||
|
run: npm install -g @redocly/cli@latest
|
||||||
|
# Perform linting for exploded spec
|
||||||
|
- name: Run linting for exploded spec
|
||||||
|
run: redocly lint docs/root.yaml --format=github-actions
|
||||||
|
# Perform linting for bundled spec
|
||||||
|
- name: Run linting for bundled spec
|
||||||
|
run: redocly lint docs/openapi.json --format=github-actions
|
||||||
@@ -6,7 +6,6 @@ RUN npm ci && npm cache clean --force
|
|||||||
RUN npm run generate
|
RUN npm run generate
|
||||||
|
|
||||||
### STAGE 1: Build server ###
|
### STAGE 1: Build server ###
|
||||||
FROM sandreas/tone:v0.1.5 AS tone
|
|
||||||
FROM node:20-alpine
|
FROM node:20-alpine
|
||||||
|
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
@@ -21,7 +20,6 @@ RUN apk update && \
|
|||||||
g++ \
|
g++ \
|
||||||
tini
|
tini
|
||||||
|
|
||||||
COPY --from=tone /usr/local/bin/tone /usr/local/bin/
|
|
||||||
COPY --from=build /client/dist /client/dist
|
COPY --from=build /client/dist /client/dist
|
||||||
COPY index.js package* /
|
COPY index.js package* /
|
||||||
COPY server server
|
COPY server server
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ install_ffmpeg() {
|
|||||||
echo "Starting FFMPEG Install"
|
echo "Starting FFMPEG Install"
|
||||||
|
|
||||||
WGET="wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz --output-document=ffmpeg-git-amd64-static.tar.xz"
|
WGET="wget https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz --output-document=ffmpeg-git-amd64-static.tar.xz"
|
||||||
WGET_TONE="wget https://github.com/sandreas/tone/releases/download/v0.1.5/tone-0.1.5-linux-x64.tar.gz --output-document=tone-0.1.5-linux-x64.tar.gz"
|
|
||||||
|
|
||||||
if ! cd "$FFMPEG_INSTALL_DIR"; then
|
if ! cd "$FFMPEG_INSTALL_DIR"; then
|
||||||
echo "Creating ffmpeg install dir at $FFMPEG_INSTALL_DIR"
|
echo "Creating ffmpeg install dir at $FFMPEG_INSTALL_DIR"
|
||||||
@@ -63,13 +62,7 @@ install_ffmpeg() {
|
|||||||
tar xvf ffmpeg-git-amd64-static.tar.xz --strip-components=1 --no-same-owner
|
tar xvf ffmpeg-git-amd64-static.tar.xz --strip-components=1 --no-same-owner
|
||||||
rm ffmpeg-git-amd64-static.tar.xz
|
rm ffmpeg-git-amd64-static.tar.xz
|
||||||
|
|
||||||
# Temp downloading tone library to the ffmpeg dir
|
echo "Good to go on Ffmpeg... hopefully"
|
||||||
echo "Getting tone.."
|
|
||||||
$WGET_TONE
|
|
||||||
tar xvf tone-0.1.5-linux-x64.tar.gz --strip-components=1 --no-same-owner
|
|
||||||
rm tone-0.1.5-linux-x64.tar.gz
|
|
||||||
|
|
||||||
echo "Good to go on Ffmpeg (& tone)... hopefully"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_config() {
|
setup_config() {
|
||||||
@@ -77,12 +70,6 @@ setup_config() {
|
|||||||
echo "Existing config found."
|
echo "Existing config found."
|
||||||
cat $CONFIG_PATH
|
cat $CONFIG_PATH
|
||||||
|
|
||||||
# TONE_PATH variable added in 2.1.6, if it doesnt exist then add it
|
|
||||||
if ! grep -q "TONE_PATH" "$CONFIG_PATH"; then
|
|
||||||
echo "Adding TONE_PATH to existing config"
|
|
||||||
echo "TONE_PATH=$FFMPEG_INSTALL_DIR/tone" >> "$CONFIG_PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
if [ ! -d "$DEFAULT_DATA_DIR" ]; then
|
if [ ! -d "$DEFAULT_DATA_DIR" ]; then
|
||||||
@@ -98,7 +85,6 @@ setup_config() {
|
|||||||
CONFIG_PATH=$DEFAULT_DATA_DIR/config
|
CONFIG_PATH=$DEFAULT_DATA_DIR/config
|
||||||
FFMPEG_PATH=$FFMPEG_INSTALL_DIR/ffmpeg
|
FFMPEG_PATH=$FFMPEG_INSTALL_DIR/ffmpeg
|
||||||
FFPROBE_PATH=$FFMPEG_INSTALL_DIR/ffprobe
|
FFPROBE_PATH=$FFMPEG_INSTALL_DIR/ffprobe
|
||||||
TONE_PATH=$FFMPEG_INSTALL_DIR/tone
|
|
||||||
PORT=$DEFAULT_PORT
|
PORT=$DEFAULT_PORT
|
||||||
HOST=$DEFAULT_HOST"
|
HOST=$DEFAULT_HOST"
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -48,7 +48,7 @@ Description: $DESCRIPTION"
|
|||||||
echo "$controlfile" > dist/debian/DEBIAN/control;
|
echo "$controlfile" > dist/debian/DEBIAN/control;
|
||||||
|
|
||||||
# Package debian
|
# Package debian
|
||||||
pkg -t node18-linux-x64 -o dist/debian/usr/share/audiobookshelf/audiobookshelf .
|
pkg -t node20-linux-x64 -o dist/debian/usr/share/audiobookshelf/audiobookshelf .
|
||||||
|
|
||||||
fakeroot dpkg-deb -Zxz --build dist/debian
|
fakeroot dpkg-deb -Zxz --build dist/debian
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="bookshelf" ref="wrapper" class="w-full max-w-full h-full overflow-y-scroll relative">
|
<div id="bookshelf" ref="wrapper" class="w-full max-w-full h-full overflow-y-scroll relative" :style="{ fontSize: sizeMultiplier + 'rem' }">
|
||||||
<!-- Cover size widget -->
|
<!-- Cover size widget -->
|
||||||
<widgets-cover-size-widget class="fixed right-4 z-50" :style="{ bottom: streamLibraryItem ? '181px' : '16px' }" />
|
<widgets-cover-size-widget class="fixed right-4 z-50" :style="{ bottom: streamLibraryItem ? '181px' : '16px' }" />
|
||||||
|
|
||||||
@@ -11,31 +11,19 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="loaded && !shelves.length && search" class="w-full h-40 flex items-center justify-center">
|
<div v-else-if="loaded && !shelves.length && search" class="w-full h-40 flex items-center justify-center">
|
||||||
<p class="text-center text-xl py-4">No results for query</p>
|
<p class="text-center text-xl py-4">{{ $strings.MessageBookshelfNoResultsForQuery }}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- Alternate plain view -->
|
<!-- Alternate plain view -->
|
||||||
<div v-else-if="isAlternativeBookshelfView" class="w-full mb-24">
|
<div v-else-if="isAlternativeBookshelfView" class="w-full mb-24e">
|
||||||
<template v-for="(shelf, index) in shelves">
|
<template v-for="(shelf, index) in supportedShelves">
|
||||||
<widgets-item-slider v-if="shelf.type === 'book' || shelf.type === 'podcast'" :shelf-id="shelf.id" :key="index + '.'" :items="shelf.entities" :continue-listening-shelf="shelf.id === 'continue-listening' || shelf.id === 'continue-reading'" :height="232 * sizeMultiplier" class="bookshelf-row pl-8 my-6" @selectEntity="(payload) => selectEntity(payload, index)">
|
<widgets-item-slider :shelf-id="shelf.id" :key="index + '.'" :items="shelf.entities" :continue-listening-shelf="shelf.id === 'continue-listening' || shelf.id === 'continue-reading'" :type="shelf.type" class="bookshelf-row pl-8e my-6e" @selectEntity="(payload) => selectEntity(payload, index)">
|
||||||
<p class="font-semibold text-gray-100" :style="{ fontSize: sizeMultiplier + 'rem' }">{{ $strings[shelf.labelStringKey] }}</p>
|
<p class="font-semibold text-gray-100">{{ $strings[shelf.labelStringKey] }}</p>
|
||||||
</widgets-item-slider>
|
</widgets-item-slider>
|
||||||
<widgets-episode-slider v-else-if="shelf.type === 'episode'" :key="index + '.'" :items="shelf.entities" :continue-listening-shelf="shelf.id === 'continue-listening'" :height="232 * sizeMultiplier" class="bookshelf-row pl-8 my-6" @selectEntity="(payload) => selectEntity(payload, index)">
|
|
||||||
<p class="font-semibold text-gray-100" :style="{ fontSize: sizeMultiplier + 'rem' }">{{ $strings[shelf.labelStringKey] }}</p>
|
|
||||||
</widgets-episode-slider>
|
|
||||||
<widgets-series-slider v-else-if="shelf.type === 'series'" :key="index + '.'" :items="shelf.entities" :height="232 * sizeMultiplier" class="bookshelf-row pl-8 my-6">
|
|
||||||
<p class="font-semibold text-gray-100" :style="{ fontSize: sizeMultiplier + 'rem' }">{{ $strings[shelf.labelStringKey] }}</p>
|
|
||||||
</widgets-series-slider>
|
|
||||||
<widgets-authors-slider v-else-if="shelf.type === 'authors'" :key="index + '.'" :items="shelf.entities" :height="192 * sizeMultiplier" class="bookshelf-row pl-8 my-6">
|
|
||||||
<p class="font-semibold text-gray-100" :style="{ fontSize: sizeMultiplier + 'rem' }">{{ $strings[shelf.labelStringKey] }}</p>
|
|
||||||
</widgets-authors-slider>
|
|
||||||
<widgets-narrators-slider v-else-if="shelf.type === 'narrators'" :key="index + '.'" :items="shelf.entities" :height="100 * sizeMultiplier" class="bookshelf-row pl-8 my-6">
|
|
||||||
<p class="font-semibold text-gray-100" :style="{ fontSize: sizeMultiplier + 'rem' }">{{ $strings[shelf.labelStringKey] }}</p>
|
|
||||||
</widgets-narrators-slider>
|
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<!-- Regular bookshelf view -->
|
<!-- Regular bookshelf view -->
|
||||||
<div v-else class="w-full">
|
<div v-else class="w-full">
|
||||||
<template v-for="(shelf, index) in shelves">
|
<template v-for="(shelf, index) in supportedShelves">
|
||||||
<app-book-shelf-row :key="index" :index="index" :shelf="shelf" :size-multiplier="sizeMultiplier" :book-cover-width="bookCoverWidth" :book-cover-aspect-ratio="coverAspectRatio" :continue-listening-shelf="shelf.id === 'continue-listening' || shelf.id === 'continue-reading'" @selectEntity="(payload) => selectEntity(payload, index)" />
|
<app-book-shelf-row :key="index" :index="index" :shelf="shelf" :size-multiplier="sizeMultiplier" :book-cover-width="bookCoverWidth" :book-cover-aspect-ratio="coverAspectRatio" :continue-listening-shelf="shelf.id === 'continue-listening' || shelf.id === 'continue-reading'" @selectEntity="(payload) => selectEntity(payload, index)" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
@@ -63,6 +51,9 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
supportedShelves() {
|
||||||
|
return this.shelves.filter((shelf) => ['book', 'podcast', 'episode', 'series', 'authors', 'narrators'].includes(shelf.type))
|
||||||
|
},
|
||||||
userIsAdminOrUp() {
|
userIsAdminOrUp() {
|
||||||
return this.$store.getters['user/getIsAdminOrUp']
|
return this.$store.getters['user/getIsAdminOrUp']
|
||||||
},
|
},
|
||||||
@@ -90,8 +81,7 @@ export default {
|
|||||||
return this.coverAspectRatio == 1
|
return this.coverAspectRatio == 1
|
||||||
},
|
},
|
||||||
sizeMultiplier() {
|
sizeMultiplier() {
|
||||||
var baseSize = this.isCoverSquareAspectRatio ? 192 : 120
|
return this.$store.getters['user/getSizeMultiplier']
|
||||||
return this.bookCoverWidth / baseSize
|
|
||||||
},
|
},
|
||||||
selectedMediaItems() {
|
selectedMediaItems() {
|
||||||
return this.$store.state.globals.selectedMediaItems || []
|
return this.$store.state.globals.selectedMediaItems || []
|
||||||
@@ -178,7 +168,7 @@ export default {
|
|||||||
},
|
},
|
||||||
async fetchCategories() {
|
async fetchCategories() {
|
||||||
const categories = await this.$axios
|
const categories = await this.$axios
|
||||||
.$get(`/api/libraries/${this.currentLibraryId}/personalized?include=rssfeed,numEpisodesIncomplete`)
|
.$get(`/api/libraries/${this.currentLibraryId}/personalized?include=rssfeed,numEpisodesIncomplete,share`)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
return data
|
return data
|
||||||
})
|
})
|
||||||
@@ -418,6 +408,36 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
shareOpen(mediaItemShare) {
|
||||||
|
this.shelves.forEach((shelf) => {
|
||||||
|
if (shelf.type == 'book') {
|
||||||
|
shelf.entities = shelf.entities.map((ent) => {
|
||||||
|
if (ent.media.id === mediaItemShare.mediaItemId) {
|
||||||
|
return {
|
||||||
|
...ent,
|
||||||
|
mediaItemShare
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ent
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
shareClosed(mediaItemShare) {
|
||||||
|
this.shelves.forEach((shelf) => {
|
||||||
|
if (shelf.type == 'book') {
|
||||||
|
shelf.entities = shelf.entities.map((ent) => {
|
||||||
|
if (ent.media.id === mediaItemShare.mediaItemId) {
|
||||||
|
return {
|
||||||
|
...ent,
|
||||||
|
mediaItemShare: null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ent
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
initListeners() {
|
initListeners() {
|
||||||
if (this.$root.socket) {
|
if (this.$root.socket) {
|
||||||
this.$root.socket.on('user_updated', this.userUpdated)
|
this.$root.socket.on('user_updated', this.userUpdated)
|
||||||
@@ -429,6 +449,8 @@ export default {
|
|||||||
this.$root.socket.on('items_updated', this.libraryItemsUpdated)
|
this.$root.socket.on('items_updated', this.libraryItemsUpdated)
|
||||||
this.$root.socket.on('items_added', this.libraryItemsAdded)
|
this.$root.socket.on('items_added', this.libraryItemsAdded)
|
||||||
this.$root.socket.on('episode_added', this.episodeAdded)
|
this.$root.socket.on('episode_added', this.episodeAdded)
|
||||||
|
this.$root.socket.on('share_open', this.shareOpen)
|
||||||
|
this.$root.socket.on('share_closed', this.shareClosed)
|
||||||
} else {
|
} else {
|
||||||
console.error('Error socket not initialized')
|
console.error('Error socket not initialized')
|
||||||
}
|
}
|
||||||
@@ -444,6 +466,8 @@ export default {
|
|||||||
this.$root.socket.off('items_updated', this.libraryItemsUpdated)
|
this.$root.socket.off('items_updated', this.libraryItemsUpdated)
|
||||||
this.$root.socket.off('items_added', this.libraryItemsAdded)
|
this.$root.socket.off('items_added', this.libraryItemsAdded)
|
||||||
this.$root.socket.off('episode_added', this.episodeAdded)
|
this.$root.socket.off('episode_added', this.episodeAdded)
|
||||||
|
this.$root.socket.off('share_open', this.shareOpen)
|
||||||
|
this.$root.socket.off('share_closed', this.shareClosed)
|
||||||
} else {
|
} else {
|
||||||
console.error('Error socket not initialized')
|
console.error('Error socket not initialized')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,67 +1,53 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
<div ref="shelf" class="w-full max-w-full bookshelf-row categorizedBookshelfRow relative overflow-x-scroll overflow-y-hidden z-10" :style="{ paddingLeft: paddingLeft * sizeMultiplier + 'rem', height: shelfHeight + 'px' }" @scroll="scrolled">
|
<div ref="shelf" class="w-full max-w-full bookshelf-row categorizedBookshelfRow relative overflow-x-scroll no-scroll overflow-y-hidden z-10" :style="{ paddingLeft: paddingLeft + 'em' }" @scroll="scrolled">
|
||||||
<div class="w-full h-full pt-6">
|
<div class="w-full h-full pt-6e">
|
||||||
<div v-if="shelf.type === 'book' || shelf.type === 'podcast'" class="flex items-center">
|
<div v-if="shelf.type === 'book' || shelf.type === 'podcast'" class="flex items-center">
|
||||||
<template v-for="(entity, index) in shelf.entities">
|
<template v-for="(entity, index) in shelf.entities">
|
||||||
<cards-lazy-book-card :key="`${entity.id}-${index}`" :ref="`shelf-book-${entity.id}`" :index="index" :width="bookCoverWidth" :height="bookCoverHeight" :book-cover-aspect-ratio="bookCoverAspectRatio" :book-mount="entity" :continue-listening-shelf="continueListeningShelf" class="relative mx-2" @hook:updated="updatedBookCard" @select="selectItem" @edit="editItem" />
|
<cards-lazy-book-card :key="entity.id" :ref="`shelf-book-${entity.id}`" :index="index" :book-mount="entity" :continue-listening-shelf="continueListeningShelf" class="relative mx-2e" @hook:updated="updatedBookCard" @select="selectItem" @edit="editItem" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="shelf.type === 'episode'" class="flex items-center">
|
<div v-if="shelf.type === 'episode'" class="flex items-center">
|
||||||
<template v-for="(entity, index) in shelf.entities">
|
<template v-for="(entity, index) in shelf.entities">
|
||||||
<cards-lazy-book-card
|
<cards-lazy-book-card :key="entity.recentEpisode.id" :ref="`shelf-episode-${entity.recentEpisode.id}`" :index="index" :book-mount="entity" :continue-listening-shelf="continueListeningShelf" class="relative mx-2e" @hook:updated="updatedBookCard" @select="selectItem" @editPodcast="editItem" @edit="editEpisode" />
|
||||||
:key="entity.recentEpisode.id"
|
|
||||||
:ref="`shelf-episode-${entity.recentEpisode.id}`"
|
|
||||||
:index="index"
|
|
||||||
:width="bookCoverWidth"
|
|
||||||
:height="bookCoverHeight"
|
|
||||||
:book-cover-aspect-ratio="bookCoverAspectRatio"
|
|
||||||
:book-mount="entity"
|
|
||||||
:continue-listening-shelf="continueListeningShelf"
|
|
||||||
class="relative mx-2"
|
|
||||||
@hook:updated="updatedBookCard"
|
|
||||||
@select="selectItem"
|
|
||||||
@editPodcast="editItem"
|
|
||||||
@edit="editEpisode"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="shelf.type === 'series'" class="flex items-center">
|
<div v-if="shelf.type === 'series'" class="flex items-center">
|
||||||
<template v-for="entity in shelf.entities">
|
<template v-for="entity in shelf.entities">
|
||||||
<cards-lazy-series-card :key="entity.name" :series-mount="entity" :height="bookCoverHeight" :width="bookCoverWidth * 2" :book-cover-aspect-ratio="bookCoverAspectRatio" class="relative mx-2" @hook:updated="updatedBookCard" />
|
<cards-lazy-series-card :key="entity.name" :series-mount="entity" class="relative mx-2e" @hook:updated="updatedBookCard" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="shelf.type === 'tags'" class="flex items-center">
|
<div v-if="shelf.type === 'tags'" class="flex items-center">
|
||||||
<template v-for="entity in shelf.entities">
|
<template v-for="entity in shelf.entities">
|
||||||
<cards-group-card :key="entity.name" :group="entity" :height="bookCoverHeight" :width="bookCoverWidth * 2" :book-cover-aspect-ratio="bookCoverAspectRatio" class="relative mx-2" @hook:updated="updatedBookCard" />
|
<cards-group-card :key="entity.name" :group="entity" class="relative mx-2e" @hook:updated="updatedBookCard" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="shelf.type === 'authors'" class="flex items-center">
|
<div v-if="shelf.type === 'authors'" class="flex items-center">
|
||||||
<template v-for="entity in shelf.entities">
|
<template v-for="entity in shelf.entities">
|
||||||
<cards-author-card :key="entity.id" :width="bookCoverWidth / 1.25" :height="bookCoverWidth" :author="entity" :size-multiplier="sizeMultiplier" @hook:updated="updatedBookCard" class="pb-6 mx-2" @edit="editAuthor" />
|
<cards-author-card :key="entity.id" :author="entity" @hook:updated="updatedBookCard" class="mx-2e" @edit="editAuthor" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="shelf.type === 'narrators'" class="flex items-center">
|
<div v-if="shelf.type === 'narrators'" class="flex items-center">
|
||||||
<template v-for="entity in shelf.entities">
|
<template v-for="entity in shelf.entities">
|
||||||
<cards-narrator-card :key="entity.name" :width="150" :height="100" :narrator="entity" :size-multiplier="sizeMultiplier" @hook:updated="updatedBookCard" class="pb-6 mx-2" />
|
<cards-narrator-card :key="entity.name" :narrator="entity" @hook:updated="updatedBookCard" class="mx-2e" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="relative">
|
||||||
<div class="absolute text-center categoryPlacard transform z-30 bottom-px left-4 md:left-8 w-44 rounded-md" style="height: 22px">
|
<div class="relative text-center categoryPlacard transform z-30 top-0 left-4e md:left-8e w-44e rounded-md">
|
||||||
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border">
|
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border" :style="{ padding: `0em 0.5em` }">
|
||||||
<p class="transform text-sm">{{ $strings[shelf.labelStringKey] }}</p>
|
<p :style="{ fontSize: 0.9 + 'em' }">{{ $strings[shelf.labelStringKey] }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bookshelfDividerCategorized h-6 w-full absolute bottom-0 left-0 right-0 z-20"></div>
|
<div class="bookshelfDividerCategorized h-6e w-full absolute top-0 left-0 right-0 z-20"></div>
|
||||||
|
|
||||||
<div v-show="canScrollLeft && !isScrolling" class="hidden sm:flex absolute top-0 left-0 w-32 pr-8 bg-black book-shelf-arrow-left items-center justify-center cursor-pointer opacity-0 hover:opacity-100 z-30" @click="scrollLeft">
|
|
||||||
<span class="material-icons text-6xl text-white">chevron_left</span>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-show="canScrollRight && !isScrolling" class="hidden sm:flex absolute top-0 right-0 w-32 pl-8 bg-black book-shelf-arrow-right items-center justify-center cursor-pointer opacity-0 hover:opacity-100 z-30" @click="scrollRight">
|
<div v-show="canScrollLeft && !isScrolling" class="hidden sm:flex absolute top-0 left-0 w-32 pr-8 bg-black book-shelf-arrow-left items-center justify-center cursor-pointer opacity-0 hover:opacity-100 z-40" @click="scrollLeft">
|
||||||
<span class="material-icons text-6xl text-white">chevron_right</span>
|
<span class="material-icons text-white" :style="{ fontSize: 3.75 + 'em' }">chevron_left</span>
|
||||||
|
</div>
|
||||||
|
<div v-show="canScrollRight && !isScrolling" class="hidden sm:flex absolute top-0 right-0 w-32 pl-8 bg-black book-shelf-arrow-right items-center justify-center cursor-pointer opacity-0 hover:opacity-100 z-40" @click="scrollRight">
|
||||||
|
<span class="material-icons text-white" :style="{ fontSize: 3.75 + 'em' }">chevron_right</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -74,9 +60,6 @@ export default {
|
|||||||
type: Object,
|
type: Object,
|
||||||
default: () => {}
|
default: () => {}
|
||||||
},
|
},
|
||||||
sizeMultiplier: Number,
|
|
||||||
bookCoverWidth: Number,
|
|
||||||
bookCoverAspectRatio: Number,
|
|
||||||
continueListeningShelf: Boolean
|
continueListeningShelf: Boolean
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -89,12 +72,8 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
bookCoverHeight() {
|
sizeMultiplier() {
|
||||||
return this.bookCoverWidth * this.bookCoverAspectRatio
|
return this.$store.getters['user/getSizeMultiplier']
|
||||||
},
|
|
||||||
shelfHeight() {
|
|
||||||
if (this.shelf.type === 'narrators') return 148
|
|
||||||
return this.bookCoverHeight + 48
|
|
||||||
},
|
},
|
||||||
paddingLeft() {
|
paddingLeft() {
|
||||||
if (window.innerWidth < 768) return 1
|
if (window.innerWidth < 768) return 1
|
||||||
@@ -218,12 +197,12 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.book-shelf-arrow-right {
|
.book-shelf-arrow-right {
|
||||||
height: calc(100% - 24px);
|
height: calc(100% - 1.5em);
|
||||||
background: rgb(48, 48, 48);
|
background: rgb(48, 48, 48);
|
||||||
background: linear-gradient(90deg, rgba(48, 48, 48, 0) 0%, rgba(25, 25, 25, 0.25) 8%, rgba(17, 17, 17, 0.4) 28%, rgba(17, 17, 17, 0.6) 71%, rgba(10, 10, 10, 0.6) 86%, rgba(0, 0, 0, 0.7) 100%);
|
background: linear-gradient(90deg, rgba(48, 48, 48, 0) 0%, rgba(25, 25, 25, 0.25) 8%, rgba(17, 17, 17, 0.4) 28%, rgba(17, 17, 17, 0.6) 71%, rgba(10, 10, 10, 0.6) 86%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
}
|
}
|
||||||
.book-shelf-arrow-left {
|
.book-shelf-arrow-left {
|
||||||
height: calc(100% - 24px);
|
height: calc(100% - 1.5em);
|
||||||
background: rgb(48, 48, 48);
|
background: rgb(48, 48, 48);
|
||||||
background: linear-gradient(-90deg, rgba(48, 48, 48, 0) 0%, rgba(25, 25, 25, 0.25) 8%, rgba(17, 17, 17, 0.4) 28%, rgba(17, 17, 17, 0.6) 71%, rgba(10, 10, 10, 0.6) 86%, rgba(0, 0, 0, 0.7) 100%);
|
background: linear-gradient(-90deg, rgba(48, 48, 48, 0) 0%, rgba(25, 25, 25, 0.25) 8%, rgba(17, 17, 17, 0.4) 28%, rgba(17, 17, 17, 0.6) 71%, rgba(10, 10, 10, 0.6) 86%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="bookshelf" class="w-full overflow-y-auto">
|
<div id="bookshelf" ref="bookshelf" class="w-full overflow-y-auto" :style="{ fontSize: sizeMultiplier + 'rem' }">
|
||||||
<template v-for="shelf in totalShelves">
|
<template v-for="shelf in totalShelves">
|
||||||
<div :key="shelf" :id="`shelf-${shelf - 1}`" class="w-full px-4 sm:px-8 relative" :class="{ bookshelfRow: !isAlternativeBookshelfView }" :style="{ height: shelfHeight + 'px' }">
|
<div :key="shelf" :id="`shelf-${shelf - 1}`" class="w-full px-4e sm:px-8e relative" :class="{ bookshelfRow: !isAlternativeBookshelfView }" :style="{ height: shelfHeight + 'px' }">
|
||||||
<div v-if="!isAlternativeBookshelfView" class="bookshelfDivider w-full absolute bottom-0 left-0 right-0 z-20" :class="`h-${shelfDividerHeightIndex}`" />
|
<div v-if="!isAlternativeBookshelfView" class="bookshelfDivider w-full absolute bottom-0 left-0 right-0 z-20 h-6e" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -49,10 +49,9 @@ export default {
|
|||||||
entityIndexesMounted: [],
|
entityIndexesMounted: [],
|
||||||
entityComponentRefs: {},
|
entityComponentRefs: {},
|
||||||
currentBookWidth: 0,
|
currentBookWidth: 0,
|
||||||
pageLoadQueue: [],
|
|
||||||
isFetchingEntities: false,
|
isFetchingEntities: false,
|
||||||
scrollTimeout: null,
|
scrollTimeout: null,
|
||||||
booksPerFetch: 100,
|
booksPerFetch: 0,
|
||||||
totalShelves: 0,
|
totalShelves: 0,
|
||||||
bookshelfMarginLeft: 0,
|
bookshelfMarginLeft: 0,
|
||||||
isSelectionMode: false,
|
isSelectionMode: false,
|
||||||
@@ -63,7 +62,10 @@ export default {
|
|||||||
resizeTimeout: null,
|
resizeTimeout: null,
|
||||||
mountWindowWidth: 0,
|
mountWindowWidth: 0,
|
||||||
lastItemIndexSelected: -1,
|
lastItemIndexSelected: -1,
|
||||||
tempIsScanning: false
|
tempIsScanning: false,
|
||||||
|
cardWidth: 0,
|
||||||
|
cardHeight: 0,
|
||||||
|
resizeObserver: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@@ -160,52 +162,40 @@ export default {
|
|||||||
return this.$store.getters['libraries/getCurrentLibraryName']
|
return this.$store.getters['libraries/getCurrentLibraryName']
|
||||||
},
|
},
|
||||||
bookWidth() {
|
bookWidth() {
|
||||||
const coverSize = this.$store.getters['user/getUserSetting']('bookshelfCoverSize')
|
return this.cardWidth
|
||||||
if (this.isCoverSquareAspectRatio || this.entityName === 'playlists') return coverSize * 1.6
|
|
||||||
return coverSize
|
|
||||||
},
|
},
|
||||||
bookHeight() {
|
bookHeight() {
|
||||||
if (this.isCoverSquareAspectRatio || this.entityName === 'playlists') return this.bookWidth
|
return this.cardHeight
|
||||||
return this.bookWidth * 1.6
|
|
||||||
},
|
},
|
||||||
shelfPadding() {
|
shelfPadding() {
|
||||||
if (this.bookshelfWidth < 640) return 32
|
if (this.bookshelfWidth < 640) return 32 * this.sizeMultiplier
|
||||||
return 64
|
return 64 * this.sizeMultiplier
|
||||||
},
|
},
|
||||||
totalPadding() {
|
totalPadding() {
|
||||||
return this.shelfPadding * 2
|
return this.shelfPadding * 2
|
||||||
},
|
},
|
||||||
entityWidth() {
|
entityWidth() {
|
||||||
if (this.entityName === 'series' || this.entityName === 'collections') {
|
return this.cardWidth
|
||||||
if (this.bookWidth * 2 > this.bookshelfWidth - this.shelfPadding) return this.bookWidth * 1.6
|
|
||||||
return this.bookWidth * 2
|
|
||||||
}
|
|
||||||
return this.bookWidth
|
|
||||||
},
|
},
|
||||||
entityHeight() {
|
entityHeight() {
|
||||||
return this.bookHeight
|
return this.cardHeight
|
||||||
},
|
},
|
||||||
shelfDividerHeightIndex() {
|
shelfPaddingHeight() {
|
||||||
return 6
|
return 16
|
||||||
},
|
},
|
||||||
shelfHeight() {
|
shelfHeight() {
|
||||||
if (this.isAlternativeBookshelfView) {
|
const dividerHeight = this.isAlternativeBookshelfView ? 0 : 24 // h-6
|
||||||
const isItemEntity = this.entityName === 'series-books' || this.entityName === 'items'
|
return this.cardHeight + (this.shelfPaddingHeight + dividerHeight) * this.sizeMultiplier
|
||||||
const extraTitleSpace = isItemEntity ? 80 : this.entityName === 'albums' ? 60 : 40
|
|
||||||
return this.entityHeight + extraTitleSpace * this.sizeMultiplier
|
|
||||||
}
|
|
||||||
return this.entityHeight + 40
|
|
||||||
},
|
},
|
||||||
totalEntityCardWidth() {
|
totalEntityCardWidth() {
|
||||||
// Includes margin
|
// Includes margin
|
||||||
return this.entityWidth + 24
|
return this.entityWidth + 24 * this.sizeMultiplier
|
||||||
},
|
},
|
||||||
selectedMediaItems() {
|
selectedMediaItems() {
|
||||||
return this.$store.state.globals.selectedMediaItems || []
|
return this.$store.state.globals.selectedMediaItems || []
|
||||||
},
|
},
|
||||||
sizeMultiplier() {
|
sizeMultiplier() {
|
||||||
const baseSize = this.isCoverSquareAspectRatio ? 192 : 120
|
return this.$store.getters['user/getSizeMultiplier']
|
||||||
return this.entityWidth / baseSize
|
|
||||||
},
|
},
|
||||||
streamLibraryItem() {
|
streamLibraryItem() {
|
||||||
return this.$store.state.streamLibraryItem
|
return this.$store.state.streamLibraryItem
|
||||||
@@ -322,7 +312,7 @@ export default {
|
|||||||
|
|
||||||
let entityPath = this.entityName === 'series-books' ? 'items' : this.entityName
|
let entityPath = this.entityName === 'series-books' ? 'items' : this.entityName
|
||||||
const sfQueryString = this.currentSFQueryString ? this.currentSFQueryString + '&' : ''
|
const sfQueryString = this.currentSFQueryString ? this.currentSFQueryString + '&' : ''
|
||||||
const fullQueryString = `?${sfQueryString}limit=${this.booksPerFetch}&page=${page}&minified=1&include=rssfeed,numEpisodesIncomplete`
|
const fullQueryString = `?${sfQueryString}limit=${this.booksPerFetch}&page=${page}&minified=1&include=rssfeed,numEpisodesIncomplete,share`
|
||||||
|
|
||||||
const payload = await this.$axios.$get(`/api/libraries/${this.currentLibraryId}/${entityPath}${fullQueryString}`).catch((error) => {
|
const payload = await this.$axios.$get(`/api/libraries/${this.currentLibraryId}/${entityPath}${fullQueryString}`).catch((error) => {
|
||||||
console.error('failed to fetch items', error)
|
console.error('failed to fetch items', error)
|
||||||
@@ -436,10 +426,14 @@ export default {
|
|||||||
rebuild() {
|
rebuild() {
|
||||||
this.initSizeData()
|
this.initSizeData()
|
||||||
|
|
||||||
var lastBookIndex = Math.min(this.totalEntities, this.shelvesPerPage * this.entitiesPerShelf)
|
var lastBookIndex = Math.min(this.totalEntities, this.booksPerFetch)
|
||||||
this.entityIndexesMounted = []
|
this.entityIndexesMounted = []
|
||||||
for (let i = 0; i < lastBookIndex; i++) {
|
for (let i = 0; i < lastBookIndex; i++) {
|
||||||
this.entityIndexesMounted.push(i)
|
this.entityIndexesMounted.push(i)
|
||||||
|
if (!this.entities[i]) {
|
||||||
|
const page = Math.floor(i / this.booksPerFetch)
|
||||||
|
this.loadPage(page)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var bookshelfEl = document.getElementById('bookshelf')
|
var bookshelfEl = document.getElementById('bookshelf')
|
||||||
if (bookshelfEl) {
|
if (bookshelfEl) {
|
||||||
@@ -501,7 +495,8 @@ export default {
|
|||||||
this.resetEntities()
|
this.resetEntities()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
settingsUpdated(settings) {
|
async settingsUpdated(settings) {
|
||||||
|
await this.cardsHelpers.setCardSize()
|
||||||
const wasUpdated = this.checkUpdateSearchParams()
|
const wasUpdated = this.checkUpdateSearchParams()
|
||||||
if (wasUpdated) {
|
if (wasUpdated) {
|
||||||
this.resetEntities()
|
this.resetEntities()
|
||||||
@@ -606,6 +601,44 @@ export default {
|
|||||||
this.executeRebuild()
|
this.executeRebuild()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
shareOpen(mediaItemShare) {
|
||||||
|
if (this.entityName === 'items' || this.entityName === 'series-books') {
|
||||||
|
var indexOf = this.entities.findIndex((ent) => ent?.media?.id === mediaItemShare.mediaItemId)
|
||||||
|
if (indexOf >= 0) {
|
||||||
|
if (this.entityComponentRefs[indexOf]) {
|
||||||
|
const libraryItem = { ...this.entityComponentRefs[indexOf].libraryItem }
|
||||||
|
libraryItem.mediaItemShare = mediaItemShare
|
||||||
|
this.entityComponentRefs[indexOf].setEntity?.(libraryItem)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
shareClosed(mediaItemShare) {
|
||||||
|
if (this.entityName === 'items' || this.entityName === 'series-books') {
|
||||||
|
var indexOf = this.entities.findIndex((ent) => ent?.media?.id === mediaItemShare.mediaItemId)
|
||||||
|
if (indexOf >= 0) {
|
||||||
|
if (this.entityComponentRefs[indexOf]) {
|
||||||
|
const libraryItem = { ...this.entityComponentRefs[indexOf].libraryItem }
|
||||||
|
libraryItem.mediaItemShare = null
|
||||||
|
this.entityComponentRefs[indexOf].setEntity?.(libraryItem)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
updatePagesLoaded() {
|
||||||
|
let numPages = Math.ceil(this.totalEntities / this.booksPerFetch)
|
||||||
|
for (let page = 0; page < numPages; page++) {
|
||||||
|
let numEntities = Math.min(this.totalEntities - page * this.booksPerFetch, this.booksPerFetch)
|
||||||
|
this.pagesLoaded[page] = true
|
||||||
|
for (let i = 0; i < numEntities; i++) {
|
||||||
|
const index = page * this.booksPerFetch + i
|
||||||
|
if (!this.entities[index]) {
|
||||||
|
this.pagesLoaded[page] = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
initSizeData(_bookshelf) {
|
initSizeData(_bookshelf) {
|
||||||
var bookshelf = _bookshelf || document.getElementById('bookshelf')
|
var bookshelf = _bookshelf || document.getElementById('bookshelf')
|
||||||
if (!bookshelf) {
|
if (!bookshelf) {
|
||||||
@@ -622,6 +655,13 @@ export default {
|
|||||||
this.entitiesPerShelf = Math.max(1, Math.floor((this.bookshelfWidth - this.shelfPadding) / this.totalEntityCardWidth))
|
this.entitiesPerShelf = Math.max(1, Math.floor((this.bookshelfWidth - this.shelfPadding) / this.totalEntityCardWidth))
|
||||||
this.shelvesPerPage = Math.ceil(this.bookshelfHeight / this.shelfHeight) + 2
|
this.shelvesPerPage = Math.ceil(this.bookshelfHeight / this.shelfHeight) + 2
|
||||||
this.bookshelfMarginLeft = (this.bookshelfWidth - this.entitiesPerShelf * this.totalEntityCardWidth) / 2
|
this.bookshelfMarginLeft = (this.bookshelfWidth - this.entitiesPerShelf * this.totalEntityCardWidth) / 2
|
||||||
|
const booksPerFetch = this.entitiesPerShelf * this.shelvesPerPage
|
||||||
|
if (booksPerFetch !== this.booksPerFetch) {
|
||||||
|
this.booksPerFetch = booksPerFetch
|
||||||
|
if (this.totalEntities) {
|
||||||
|
this.updatePagesLoaded()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.currentBookWidth = this.bookWidth
|
this.currentBookWidth = this.bookWidth
|
||||||
if (this.totalEntities) {
|
if (this.totalEntities) {
|
||||||
@@ -630,13 +670,8 @@ export default {
|
|||||||
return entitiesPerShelfBefore < this.entitiesPerShelf // Books per shelf has changed
|
return entitiesPerShelfBefore < this.entitiesPerShelf // Books per shelf has changed
|
||||||
},
|
},
|
||||||
async init(bookshelf) {
|
async init(bookshelf) {
|
||||||
if (this.entityName === 'series') {
|
|
||||||
this.booksPerFetch = 50
|
|
||||||
} else {
|
|
||||||
this.booksPerFetch = 100
|
|
||||||
}
|
|
||||||
this.checkUpdateSearchParams()
|
|
||||||
this.initSizeData(bookshelf)
|
this.initSizeData(bookshelf)
|
||||||
|
this.checkUpdateSearchParams()
|
||||||
|
|
||||||
this.pagesLoaded[0] = true
|
this.pagesLoaded[0] = true
|
||||||
await this.fetchEntites(0)
|
await this.fetchEntites(0)
|
||||||
@@ -692,6 +727,8 @@ export default {
|
|||||||
this.$root.socket.on('playlist_added', this.playlistAdded)
|
this.$root.socket.on('playlist_added', this.playlistAdded)
|
||||||
this.$root.socket.on('playlist_updated', this.playlistUpdated)
|
this.$root.socket.on('playlist_updated', this.playlistUpdated)
|
||||||
this.$root.socket.on('playlist_removed', this.playlistRemoved)
|
this.$root.socket.on('playlist_removed', this.playlistRemoved)
|
||||||
|
this.$root.socket.on('share_open', this.shareOpen)
|
||||||
|
this.$root.socket.on('share_closed', this.shareClosed)
|
||||||
} else {
|
} else {
|
||||||
console.error('Bookshelf - Socket not initialized')
|
console.error('Bookshelf - Socket not initialized')
|
||||||
}
|
}
|
||||||
@@ -719,6 +756,8 @@ export default {
|
|||||||
this.$root.socket.off('playlist_added', this.playlistAdded)
|
this.$root.socket.off('playlist_added', this.playlistAdded)
|
||||||
this.$root.socket.off('playlist_updated', this.playlistUpdated)
|
this.$root.socket.off('playlist_updated', this.playlistUpdated)
|
||||||
this.$root.socket.off('playlist_removed', this.playlistRemoved)
|
this.$root.socket.off('playlist_removed', this.playlistRemoved)
|
||||||
|
this.$root.socket.off('share_open', this.shareOpen)
|
||||||
|
this.$root.socket.off('share_closed', this.shareClosed)
|
||||||
} else {
|
} else {
|
||||||
console.error('Bookshelf - Socket not initialized')
|
console.error('Bookshelf - Socket not initialized')
|
||||||
}
|
}
|
||||||
@@ -743,7 +782,8 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
async mounted() {
|
||||||
|
await this.cardsHelpers.setCardSize()
|
||||||
this.initListeners()
|
this.initListeners()
|
||||||
|
|
||||||
this.routeFullPath = window.location.pathname + (window.location.search || '')
|
this.routeFullPath = window.location.pathname + (window.location.search || '')
|
||||||
@@ -778,6 +818,6 @@ export default {
|
|||||||
.bookshelfDivider {
|
.bookshelfDivider {
|
||||||
background: rgb(149, 119, 90);
|
background: rgb(149, 119, 90);
|
||||||
background: var(--bookshelf-divider-bg);
|
background: var(--bookshelf-divider-bg);
|
||||||
box-shadow: 2px 14px 8px #111111aa;
|
box-shadow: 0.125em 0.875em 0.5em #111111aa;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -5,24 +5,22 @@
|
|||||||
<covers-book-cover expand-on-click :library-item="streamLibraryItem" :width="bookCoverWidth" :book-cover-aspect-ratio="coverAspectRatio" />
|
<covers-book-cover expand-on-click :library-item="streamLibraryItem" :width="bookCoverWidth" :book-cover-aspect-ratio="coverAspectRatio" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-start mb-6 lg:mb-0" :class="playerHandler.isVideo ? 'ml-4 pl-96' : isSquareCover ? 'pl-18 sm:pl-24' : 'pl-12 sm:pl-16'">
|
<div class="flex items-start mb-6 lg:mb-0" :class="playerHandler.isVideo ? 'ml-4 pl-96' : isSquareCover ? 'pl-18 sm:pl-24' : 'pl-12 sm:pl-16'">
|
||||||
<div class="min-w-0">
|
<div class="min-w-0 w-full">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<nuxt-link :to="`/item/${streamLibraryItem.id}`" class="hover:underline cursor-pointer text-sm sm:text-lg block truncate">
|
<nuxt-link :to="`/item/${streamLibraryItem.id}`" class="hover:underline cursor-pointer text-sm sm:text-lg block truncate">
|
||||||
{{ title }}
|
{{ title }}
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
<widgets-explicit-indicator v-if="isExplicit" />
|
<widgets-explicit-indicator v-if="isExplicit" />
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!playerHandler.isVideo" class="text-gray-400 flex items-center">
|
<div v-if="!playerHandler.isVideo" class="text-gray-400 flex items-center w-1/2 sm:w-4/5 lg:w-2/5">
|
||||||
<span class="material-icons text-sm">person</span>
|
<span class="material-icons text-sm">person</span>
|
||||||
<div class="flex items-center">
|
|
||||||
<div v-if="podcastAuthor" class="pl-1 sm:pl-1.5 text-xs sm:text-base">{{ podcastAuthor }}</div>
|
<div v-if="podcastAuthor" class="pl-1 sm:pl-1.5 text-xs sm:text-base">{{ podcastAuthor }}</div>
|
||||||
<div v-else-if="musicArtists" class="pl-1 sm:pl-1.5 text-xs sm:text-base">{{ musicArtists }}</div>
|
<div v-else-if="musicArtists" class="pl-1 sm:pl-1.5 text-xs sm:text-base">{{ musicArtists }}</div>
|
||||||
<div v-else-if="authors.length" class="pl-1 sm:pl-1.5 text-xs sm:text-base">
|
<div v-else-if="authors.length" class="pl-1 sm:pl-1.5 text-xs sm:text-base truncate">
|
||||||
<nuxt-link v-for="(author, index) in authors" :key="index" :to="`/author/${author.id}`" class="hover:underline">{{ author.name }}<span v-if="index < authors.length - 1">, </span></nuxt-link>
|
<nuxt-link v-for="(author, index) in authors" :key="index" :to="`/author/${author.id}`" class="hover:underline">{{ author.name }}<span v-if="index < authors.length - 1">, </span></nuxt-link>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="text-xs sm:text-base cursor-pointer pl-1 sm:pl-1.5">{{ $strings.LabelUnknown }}</div>
|
<div v-else class="text-xs sm:text-base cursor-pointer pl-1 sm:pl-1.5">{{ $strings.LabelUnknown }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="text-gray-400 flex items-center">
|
<div class="text-gray-400 flex items-center">
|
||||||
<span class="material-icons text-xs">schedule</span>
|
<span class="material-icons text-xs">schedule</span>
|
||||||
|
|||||||
@@ -121,7 +121,7 @@
|
|||||||
<p v-else class="text-xxs text-gray-400 leading-3 text-center italic">{{ Source }}</p>
|
<p v-else class="text-xxs text-gray-400 leading-3 text-center italic">{{ Source }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<modals-changelog-view-modal v-model="showChangelogModal" :changelog="currentVersionChangelog" :currentVersion="$config.version" />
|
<modals-changelog-view-modal v-model="showChangelogModal" :versionData="versionData" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -219,9 +219,6 @@ export default {
|
|||||||
githubTagUrl() {
|
githubTagUrl() {
|
||||||
return this.versionData.githubTagUrl
|
return this.versionData.githubTagUrl
|
||||||
},
|
},
|
||||||
currentVersionChangelog() {
|
|
||||||
return this.versionData.currentVersionChangelog || 'No Changelog Available'
|
|
||||||
},
|
|
||||||
streamLibraryItem() {
|
streamLibraryItem() {
|
||||||
return this.$store.state.streamLibraryItem
|
return this.$store.state.streamLibraryItem
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,25 +1,26 @@
|
|||||||
<template>
|
<template>
|
||||||
<nuxt-link :to="`/author/${author?.id}`">
|
<div :style="{ minWidth: cardWidth + 'px', maxWidth: cardWidth + 'px' }">
|
||||||
<div cy-id="card" :style="{ width: width + 'px'}" @mouseover="mouseover" @mouseleave="mouseleave">
|
<nuxt-link :to="`/author/${author.id}`">
|
||||||
<div cy-id="imageArea" :style="{ height: height + 'px' }" class=" bg-primary box-shadow-book rounded-md relative overflow-hidden">
|
<div cy-id="card" @mouseover="mouseover" @mouseleave="mouseleave">
|
||||||
|
<div cy-id="imageArea" :style="{ height: cardHeight + 'px' }" class="bg-primary box-shadow-book rounded-md relative overflow-hidden">
|
||||||
<!-- Image or placeholder -->
|
<!-- Image or placeholder -->
|
||||||
<covers-author-image :author="author" />
|
<covers-author-image :author="author" />
|
||||||
|
|
||||||
<!-- Author name & num books overlay -->
|
<!-- Author name & num books overlay -->
|
||||||
<div cy-id="textInline" v-show="!searching && !nameBelow" class="absolute bottom-0 left-0 w-full py-1 bg-black bg-opacity-60 px-2">
|
<div cy-id="textInline" v-show="!searching && !nameBelow" class="absolute bottom-0 left-0 w-full py-1e bg-black bg-opacity-60 px-2e">
|
||||||
<p class="text-center font-semibold truncate" :style="{ fontSize: sizeMultiplier * 0.75 + 'rem' }">{{ name }}</p>
|
<p class="text-center font-semibold truncate" :style="{ fontSize: 0.75 + 'em' }">{{ name }}</p>
|
||||||
<p class="text-center text-gray-200" :style="{ fontSize: sizeMultiplier * 0.65 + 'rem' }">{{ numBooks }} {{ $strings.LabelBooks }}</p>
|
<p class="text-center text-gray-200" :style="{ fontSize: 0.65 + 'em' }">{{ numBooks }} {{ $strings.LabelBooks }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Search icon btn -->
|
<!-- Search icon btn -->
|
||||||
<div cy-id="match" v-show="!searching && isHovering && userCanUpdate" class="absolute top-0 left-0 p-2 cursor-pointer hover:text-white text-gray-200 transform hover:scale-125 duration-150" @click.prevent.stop="searchAuthor">
|
<div cy-id="match" v-show="!searching && isHovering && userCanUpdate" class="absolute top-0 left-0 p-2e cursor-pointer hover:text-white text-gray-200 transform hover:scale-125 duration-150" @click.prevent.stop="searchAuthor">
|
||||||
<ui-tooltip :text="$strings.ButtonQuickMatch" direction="bottom">
|
<ui-tooltip :text="$strings.ButtonQuickMatch" direction="bottom">
|
||||||
<span class="material-icons text-lg">search</span>
|
<span class="material-icons" :style="{ fontSize: 1.125 + 'em' }">search</span>
|
||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
</div>
|
</div>
|
||||||
<div cy-id="edit" v-show="isHovering && !searching && userCanUpdate" class="absolute top-0 right-0 p-2 cursor-pointer hover:text-white text-gray-200 transform hover:scale-125 duration-150" @click.prevent.stop="$emit('edit', author)">
|
<div cy-id="edit" v-show="isHovering && !searching && userCanUpdate" class="absolute top-0 right-0 p-2e cursor-pointer hover:text-white text-gray-200 transform hover:scale-125 duration-150" @click.prevent.stop="$emit('edit', author)">
|
||||||
<ui-tooltip :text="$strings.LabelEdit" direction="bottom">
|
<ui-tooltip :text="$strings.LabelEdit" direction="bottom">
|
||||||
<span class="material-icons text-lg">edit</span>
|
<span class="material-icons" :style="{ fontSize: 1.125 + 'em' }">edit</span>
|
||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -28,11 +29,12 @@
|
|||||||
<widgets-loading-spinner size="" />
|
<widgets-loading-spinner size="" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div cy-id="nameBelow" v-show="nameBelow" class="w-full py-1 px-2">
|
<div cy-id="nameBelow" v-show="nameBelow" class="w-full py-1e px-2e">
|
||||||
<p class="text-center font-semibold truncate text-gray-200" :style="{ fontSize: sizeMultiplier * 0.75 + 'rem' }">{{ name }}</p>
|
<p class="text-center font-semibold truncate text-gray-200" :style="{ fontSize: 0.75 + 'em' }">{{ name }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -43,12 +45,14 @@ export default {
|
|||||||
default: () => {}
|
default: () => {}
|
||||||
},
|
},
|
||||||
width: Number,
|
width: Number,
|
||||||
height: Number,
|
height: {
|
||||||
sizeMultiplier: {
|
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 1
|
default: 192
|
||||||
},
|
},
|
||||||
nameBelow: Boolean
|
nameBelow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -57,6 +61,12 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
cardWidth() {
|
||||||
|
return this.width || this.cardHeight * 0.8
|
||||||
|
},
|
||||||
|
cardHeight() {
|
||||||
|
return this.height * this.sizeMultiplier
|
||||||
|
},
|
||||||
userToken() {
|
userToken() {
|
||||||
return this.$store.getters['user/getToken']
|
return this.$store.getters['user/getToken']
|
||||||
},
|
},
|
||||||
@@ -83,6 +93,9 @@ export default {
|
|||||||
},
|
},
|
||||||
libraryProvider() {
|
libraryProvider() {
|
||||||
return this.$store.getters['libraries/getLibraryProvider'](this.currentLibraryId) || 'google'
|
return this.$store.getters['libraries/getLibraryProvider'](this.currentLibraryId) || 'google'
|
||||||
|
},
|
||||||
|
sizeMultiplier() {
|
||||||
|
return this.$store.getters['user/getSizeMultiplier']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
<div class="rounded-sm h-full relative" :style="{ width: width + 'px', height: height + 'px' }" @mouseover="mouseoverCard" @mouseleave="mouseleaveCard" @click="clickCard">
|
<div class="rounded-sm h-full relative" :style="{ width: cardWidth + 'px', height: cardHeight + 'px' }" @mouseover="mouseoverCard" @mouseleave="mouseleaveCard" @click="clickCard">
|
||||||
<nuxt-link :to="groupTo" class="cursor-pointer">
|
<nuxt-link :to="groupTo" class="cursor-pointer">
|
||||||
<div class="w-full h-full relative" :class="isHovering ? 'bg-black-400' : 'bg-primary'">
|
<div class="w-full h-full relative" :class="isHovering ? 'bg-black-400' : 'bg-primary'">
|
||||||
<covers-group-cover ref="groupcover" :id="groupEncode" :name="groupName" :type="groupType" :book-items="bookItems" :width="width" :height="height" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
<covers-group-cover ref="groupcover" :id="groupEncode" :name="groupName" :type="groupType" :book-items="bookItems" :width="cardWidth" :height="cardHeight" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
||||||
|
|
||||||
<div v-if="hasValidCovers" class="bg-black bg-opacity-60 absolute top-0 left-0 w-full h-full flex items-center justify-center text-center transition-opacity z-30" :class="isHovering ? '' : 'opacity-0'" :style="{ padding: `${sizeMultiplier}rem` }">
|
<div v-if="hasValidCovers" class="bg-black bg-opacity-60 absolute top-0 left-0 w-full h-full flex items-center justify-center text-center transition-opacity z-30" :class="isHovering ? '' : 'opacity-0'" :style="{ padding: `${sizeMultiplier}rem` }">
|
||||||
<p :style="{ fontSize: 1.2 * sizeMultiplier + 'rem' }">{{ groupName }}</p>
|
<p :style="{ fontSize: 1.2 * sizeMultiplier + 'rem' }">{{ groupName }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="absolute z-10 top-1.5 right-1.5 rounded-md leading-3 text-sm p-1 font-semibold text-white flex items-center justify-center" style="background-color: #cd9d49dd">{{ bookItems.length }}</div>
|
<div class="absolute z-10 top-1.5e right-1.5e rounded-md leading-3e p-1e font-semibold text-white flex items-center justify-center" :style="{ fontSize: 0.8 + 'em' }" style="background-color: #cd9d49dd">{{ bookItems.length }}</div>
|
||||||
</div>
|
</div>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</div>
|
</div>
|
||||||
@@ -24,8 +24,10 @@ export default {
|
|||||||
default: () => null
|
default: () => null
|
||||||
},
|
},
|
||||||
width: Number,
|
width: Number,
|
||||||
height: Number,
|
height: {
|
||||||
bookCoverAspectRatio: Number
|
type: Number,
|
||||||
|
default: 192
|
||||||
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -33,6 +35,15 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
bookCoverAspectRatio() {
|
||||||
|
return this.$store.getters['libraries/getBookCoverAspectRatio']
|
||||||
|
},
|
||||||
|
cardWidth() {
|
||||||
|
return this.width || this.cardHeight * 2
|
||||||
|
},
|
||||||
|
cardHeight() {
|
||||||
|
return this.height * this.sizeMultiplier
|
||||||
|
},
|
||||||
currentLibraryId() {
|
currentLibraryId() {
|
||||||
return this.$store.state.libraries.currentLibraryId
|
return this.$store.state.libraries.currentLibraryId
|
||||||
},
|
},
|
||||||
@@ -46,8 +57,7 @@ export default {
|
|||||||
return `/library/${this.currentLibraryId}/bookshelf?filter=${this.filter}`
|
return `/library/${this.currentLibraryId}/bookshelf?filter=${this.filter}`
|
||||||
},
|
},
|
||||||
sizeMultiplier() {
|
sizeMultiplier() {
|
||||||
if (this.bookCoverAspectRatio === 1) return this.width / (120 * 1.6 * 2)
|
return this.$store.getters['user/getSizeMultiplier']
|
||||||
return this.width / 240
|
|
||||||
},
|
},
|
||||||
bookItems() {
|
bookItems() {
|
||||||
return this._group.books || []
|
return this._group.books || []
|
||||||
|
|||||||
@@ -1,18 +1,22 @@
|
|||||||
<template>
|
<template>
|
||||||
<div ref="card" :id="`album-card-${index}`" :style="{ width: width + 'px', height: height + 'px' }" class="absolute top-0 left-0 rounded-sm z-30 cursor-pointer" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
<div ref="card" :id="`album-card-${index}`" :style="{ width: cardWidth + 'px' }" class="absolute top-0 left-0 rounded-sm z-30 cursor-pointer" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
||||||
|
<div class="relative" :style="{ height: coverHeight + 'px' }">
|
||||||
<div class="absolute top-0 left-0 w-full box-shadow-book shadow-height" />
|
<div class="absolute top-0 left-0 w-full box-shadow-book shadow-height" />
|
||||||
<div class="w-full h-full bg-primary relative rounded overflow-hidden">
|
<div class="w-full h-full bg-primary relative rounded overflow-hidden">
|
||||||
<covers-preview-cover ref="cover" :src="coverSrc" :width="width" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
<covers-preview-cover ref="cover" :src="coverSrc" :width="cardWidth" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="!isAlternativeBookshelfView" class="categoryPlacard absolute z-30 left-0 right-0 mx-auto -bottom-6 h-6 rounded-md text-center" :style="{ width: Math.min(200, width) + 'px' }">
|
<div class="relative w-full">
|
||||||
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border" :style="{ padding: `0rem ${0.5 * sizeMultiplier}rem` }">
|
<div v-if="!isAlternativeBookshelfView" class="categoryPlacard absolute z-30 left-0 right-0 mx-auto -bottom-6e h-6e rounded-md text-center" :style="{ width: Math.min(200, cardWidth) + 'px' }">
|
||||||
<p class="truncate" :style="{ fontSize: labelFontSize + 'rem' }">{{ title }}</p>
|
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border" :style="{ padding: `0em ${0.5}em` }">
|
||||||
|
<p class="truncate" :style="{ fontSize: labelFontSize + 'em' }">{{ title }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="absolute z-30 left-0 right-0 mx-auto -bottom-8 h-8 py-1 rounded-md text-center">
|
<div v-else class="absolute z-30 left-0 right-0 mx-auto -bottom-8e h-8e py-1e rounded-md text-center">
|
||||||
<p class="truncate" :style="{ fontSize: labelFontSize + 'rem' }">{{ title }}</p>
|
<p class="truncate" :style="{ fontSize: labelFontSize + 'em' }">{{ title }}</p>
|
||||||
<p class="truncate text-gray-400" :style="{ fontSize: 0.8 * sizeMultiplier + 'rem' }">{{ artist || ' ' }}</p>
|
<p class="truncate text-gray-400" :style="{ fontSize: 0.8 + 'em' }">{{ artist || ' ' }}</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -22,8 +26,10 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
index: Number,
|
index: Number,
|
||||||
width: Number,
|
width: Number,
|
||||||
height: Number,
|
height: {
|
||||||
bookCoverAspectRatio: Number,
|
type: Number,
|
||||||
|
default: 192
|
||||||
|
},
|
||||||
bookshelfView: {
|
bookshelfView: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
@@ -42,6 +48,29 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
bookCoverAspectRatio() {
|
||||||
|
return this.store.getters['libraries/getBookCoverAspectRatio']
|
||||||
|
},
|
||||||
|
cardWidth() {
|
||||||
|
return this.width || this.coverHeight
|
||||||
|
},
|
||||||
|
coverHeight() {
|
||||||
|
return this.height * this.sizeMultiplier
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
cardHeight() {
|
||||||
|
return this.coverHeight + this.bottomTextHeight
|
||||||
|
},
|
||||||
|
bottomTextHeight() {
|
||||||
|
if (!this.isAlternativeBookshelfView) return 0
|
||||||
|
const lineHeight = 1.5
|
||||||
|
const remSize = 16
|
||||||
|
const baseHeight = this.sizeMultiplier * lineHeight * remSize
|
||||||
|
const titleHeight = this.labelFontSize * baseHeight
|
||||||
|
const paddingHeight = 4 * 2 * this.sizeMultiplier // py-1
|
||||||
|
return titleHeight + paddingHeight
|
||||||
|
},
|
||||||
|
*/
|
||||||
coverSrc() {
|
coverSrc() {
|
||||||
const config = this.$config || this.$nuxt.$config
|
const config = this.$config || this.$nuxt.$config
|
||||||
if (!this.album || !this.album.libraryItemId) return `${config.routerBasePath}/book_placeholder.jpg`
|
if (!this.album || !this.album.libraryItemId) return `${config.routerBasePath}/book_placeholder.jpg`
|
||||||
@@ -49,11 +78,10 @@ export default {
|
|||||||
},
|
},
|
||||||
labelFontSize() {
|
labelFontSize() {
|
||||||
if (this.width < 160) return 0.75
|
if (this.width < 160) return 0.75
|
||||||
return 0.875
|
return 0.9
|
||||||
},
|
},
|
||||||
sizeMultiplier() {
|
sizeMultiplier() {
|
||||||
const baseSize = this.bookCoverAspectRatio === 1 ? 192 : 120
|
return this.store.getters['user/getSizeMultiplier']
|
||||||
return this.width / baseSize
|
|
||||||
},
|
},
|
||||||
title() {
|
title() {
|
||||||
return this.album ? this.album.title : ''
|
return this.album ? this.album.title : ''
|
||||||
|
|||||||
@@ -1,81 +1,76 @@
|
|||||||
<template>
|
<template>
|
||||||
<div ref="card" :id="`book-card-${index}`" :style="{ minWidth: width + 'px', maxWidth: width + 'px', height: height + 'px' }" class="absolute rounded-sm z-10 bg-primary cursor-pointer box-shadow-book" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
<div ref="card" :id="`book-card-${index}`" :style="{ minWidth: coverWidth + 'px', maxWidth: coverWidth + 'px' }" class="absolute rounded-sm z-10 cursor-pointer" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
||||||
|
<div :id="`cover-area-${index}`" class="relative w-full top-0 left-0 rounded overflow-hidden z-10 bg-primary box-shadow-book" :style="{ height: coverHeight + 'px ' }">
|
||||||
<!-- When cover image does not fill -->
|
<!-- When cover image does not fill -->
|
||||||
<div cy-id="coverBg" v-show="showCoverBg" class="absolute top-0 left-0 w-full h-full overflow-hidden rounded-sm bg-primary">
|
<div cy-id="coverBg" v-show="showCoverBg" class="absolute top-0 left-0 w-full h-full overflow-hidden rounded-sm bg-primary">
|
||||||
<div class="absolute cover-bg" ref="coverBg" />
|
<div class="absolute cover-bg" ref="coverBg" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Alternative bookshelf title/author/sort -->
|
<div cy-id="seriesSequenceList" v-if="seriesSequenceList" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-20 text-right" :style="{ top: 0.375 + 'em', right: 0.375 + 'em', padding: `0.1em 0.25em` }" style="background-color: #78350f">
|
||||||
<div cy-id="detailBottom" v-if="isAlternativeBookshelfView || isAuthorBookshelfView" dir="auto" class="absolute left-0 z-50 w-full" :style="{ bottom: `-${titleDisplayBottomOffset}rem` }">
|
<p :style="{ fontSize: 0.8 + 'em' }">#{{ seriesSequenceList }}</p>
|
||||||
<div :style="{ fontSize: 0.9 * sizeMultiplier + 'rem' }">
|
|
||||||
<ui-tooltip v-if="displayTitle" :text="displayTitle" :disabled="!displayTitleTruncated" direction="bottom" :delayOnShow="500" class="flex items-center">
|
|
||||||
<p cy-id="title" ref="displayTitle" class="truncate">{{ displayTitle }}</p>
|
|
||||||
<widgets-explicit-indicator cy-id="explicitIndicator" v-if="isExplicit" />
|
|
||||||
</ui-tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
<p cy-id="line2" class="truncate text-gray-400" :style="{ fontSize: 0.8 * sizeMultiplier + 'rem' }">{{ displayLineTwo || ' ' }}</p>
|
<div cy-id="booksInSeries" v-else-if="booksInSeries" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-20" :style="{ top: 0.375 + 'em', right: 0.375 + 'em', padding: `0.1em 0.25em` }" style="background-color: #cd9d49dd">
|
||||||
<p cy-id="line3" v-if="displaySortLine" class="truncate text-gray-400" :style="{ fontSize: 0.8 * sizeMultiplier + 'rem' }">{{ displaySortLine }}</p>
|
<p :style="{ fontSize: 0.8 + 'em' }">{{ booksInSeries }}</p>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div cy-id="seriesSequenceList" v-if="seriesSequenceList" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-20 text-right" :style="{ top: 0.375 * sizeMultiplier + 'rem', right: 0.375 * sizeMultiplier + 'rem', padding: `${0.1 * sizeMultiplier}rem ${0.25 * sizeMultiplier}rem` }" style="background-color: #78350f">
|
|
||||||
<p :style="{ fontSize: sizeMultiplier * 0.8 + 'rem' }">#{{ seriesSequenceList }}</p>
|
|
||||||
</div>
|
|
||||||
<div cy-id="booksInSeries" v-else-if="booksInSeries" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-20" :style="{ top: 0.375 * sizeMultiplier + 'rem', right: 0.375 * sizeMultiplier + 'rem', padding: `${0.1 * sizeMultiplier}rem ${0.25 * sizeMultiplier}rem` }" style="background-color: #cd9d49dd">
|
|
||||||
<p :style="{ fontSize: sizeMultiplier * 0.8 + 'rem' }">{{ booksInSeries }}</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="w-full h-full absolute top-0 left-0 rounded overflow-hidden z-10">
|
<div class="w-full h-full absolute top-0 left-0 rounded overflow-hidden z-10">
|
||||||
<div cy-id="titleImageNotReady" v-show="libraryItem && !imageReady" class="absolute top-0 left-0 w-full h-full flex items-center justify-center" :style="{ padding: sizeMultiplier * 0.5 + 'rem' }">
|
<div cy-id="titleImageNotReady" v-show="libraryItem && !imageReady" class="absolute top-0 left-0 w-full h-full flex items-center justify-center" :style="{ padding: 0.5 + 'em' }">
|
||||||
<p :style="{ fontSize: sizeMultiplier * 0.8 + 'rem' }" class="text-gray-300 text-center">{{ title }}</p>
|
<p :style="{ fontSize: 0.8 + 'em' }" class="text-gray-300 text-center">{{ title }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Cover Image -->
|
<!-- Cover Image -->
|
||||||
<img cy-id="coverImage" v-show="libraryItem" ref="cover" :src="bookCoverSrc" class="w-full h-full transition-opacity duration-300" :class="showCoverBg ? 'object-contain' : 'object-fill'" @load="imageLoaded" :style="{ opacity: imageReady ? 1 : 0 }" />
|
<img cy-id="coverImage" v-show="libraryItem" ref="cover" :src="bookCoverSrc" class="relative w-full h-full transition-opacity duration-300" :class="showCoverBg ? 'object-contain' : 'object-fill'" @load="imageLoaded" :style="{ opacity: imageReady ? 1 : 0 }" />
|
||||||
|
|
||||||
<!-- Placeholder Cover Title & Author -->
|
<!-- Placeholder Cover Title & Author -->
|
||||||
<div cy-id="placeholderTitle" v-if="!hasCover" class="absolute top-0 left-0 right-0 bottom-0 w-full h-full flex items-center justify-center" :style="{ padding: placeholderCoverPadding + 'rem' }">
|
<div cy-id="placeholderTitle" v-if="!hasCover" class="absolute top-0 left-0 right-0 bottom-0 w-full h-full flex items-center justify-center" :style="{ padding: placeholderCoverPadding + 'em' }">
|
||||||
<div>
|
<div>
|
||||||
<p cy-id="placeholderTitleText" class="text-center" style="color: rgb(247 223 187)" :style="{ fontSize: titleFontSize + 'rem' }">{{ titleCleaned }}</p>
|
<p cy-id="placeholderTitleText" class="text-center" style="color: rgb(247 223 187)" :style="{ fontSize: titleFontSize + 'em' }">{{ titleCleaned }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div cy-id="placeholderAuthor" v-if="!hasCover" class="absolute left-0 right-0 w-full flex items-center justify-center" :style="{ padding: placeholderCoverPadding + 'rem', bottom: authorBottom + 'rem' }">
|
<div cy-id="placeholderAuthor" v-if="!hasCover" class="absolute left-0 right-0 w-full flex items-center justify-center" :style="{ padding: placeholderCoverPadding + 'em', bottom: authorBottom + 'em' }">
|
||||||
<p cy-id="placeholderAuthorText" class="text-center" style="color: rgb(247 223 187); opacity: 0.75" :style="{ fontSize: authorFontSize + 'rem' }">{{ authorCleaned }}</p>
|
<p cy-id="placeholderAuthorText" class="text-center" style="color: rgb(247 223 187); opacity: 0.75" :style="{ fontSize: authorFontSize + 'em' }">{{ authorCleaned }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div v-if="seriesSequenceList" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-20 text-right" :style="{ top: 0.375 + 'em', right: 0.375 + 'em', padding: `${0.1}em ${0.25}em` }" style="background-color: #78350f">
|
||||||
|
<p :style="{ fontSize: 0.8 + 'em' }">#{{ seriesSequenceList }}</p>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="booksInSeries" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-20" :style="{ top: 0.375 + 'em', right: 0.375 + 'em', padding: `${0.1}em ${0.25}em` }" style="background-color: #cd9d49dd">
|
||||||
|
<p :style="{ fontSize: 0.8 + 'em' }">{{ booksInSeries }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- No progress shown for podcasts (unless showing podcast episode) -->
|
<!-- No progress shown for podcasts (unless showing podcast episode) -->
|
||||||
<div cy-id="progressBar" v-if="!isPodcast || episodeProgress" class="absolute bottom-0 left-0 h-1 shadow-sm max-w-full z-10 rounded-b" :class="itemIsFinished ? 'bg-success' : 'bg-yellow-400'" :style="{ width: width * userProgressPercent + 'px' }"></div>
|
<div cy-id="progressBar" v-if="!isPodcast || episodeProgress" class="absolute bottom-0 left-0 h-1e shadow-sm max-w-full z-10 rounded-b" :class="itemIsFinished ? 'bg-success' : 'bg-yellow-400'" :style="{ width: coverWidth * userProgressPercent + 'px' }"></div>
|
||||||
|
|
||||||
<!-- Overlay is not shown if collapsing series in library -->
|
<!-- Overlay is not shown if collapsing series in library -->
|
||||||
<div cy-id="overlay" v-show="!booksInSeries && libraryItem && (isHovering || isSelectionMode || isMoreMenuOpen) && !processing" class="w-full h-full absolute top-0 left-0 z-10 bg-black rounded md:block" :class="overlayWrapperClasslist">
|
<div cy-id="overlay" v-show="!booksInSeries && libraryItem && (isHovering || isSelectionMode || isMoreMenuOpen) && !processing" class="w-full h-full absolute top-0 left-0 z-10 bg-black rounded md:block" :class="overlayWrapperClasslist">
|
||||||
<div cy-id="playButton" v-show="showPlayButton" class="h-full flex items-center justify-center pointer-events-none">
|
<div cy-id="playButton" v-show="showPlayButton" class="h-full flex items-center justify-center pointer-events-none">
|
||||||
<div class="hover:text-white text-gray-200 hover:scale-110 transform duration-200 pointer-events-auto" @click.stop.prevent="play">
|
<div class="hover:text-white text-gray-200 hover:scale-110 transform duration-200 pointer-events-auto" @click.stop.prevent="play">
|
||||||
<span class="material-icons" :style="{ fontSize: playIconFontSize + 'rem' }">play_circle_filled</span>
|
<span class="material-icons" :style="{ fontSize: playIconFontSize + 'em' }">play_circle_filled</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div cy-id="readButton" v-show="showReadButton" class="h-full flex items-center justify-center pointer-events-none">
|
<div cy-id="readButton" v-show="showReadButton" class="h-full flex items-center justify-center pointer-events-none">
|
||||||
<div class="hover:text-white text-gray-200 hover:scale-110 transform duration-200 pointer-events-auto" @click.stop.prevent="clickReadEBook">
|
<div class="hover:text-white text-gray-200 hover:scale-110 transform duration-200 pointer-events-auto" @click.stop.prevent="clickReadEBook">
|
||||||
<span class="material-icons" :style="{ fontSize: playIconFontSize + 'rem' }">auto_stories</span>
|
<span class="material-icons" :style="{ fontSize: playIconFontSize + 'em' }">auto_stories</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div cy-id="editButton" v-if="userCanUpdate" v-show="!isSelectionMode" class="absolute cursor-pointer hover:text-yellow-300 hover:scale-125 transform duration-150 top-0 right-0" :style="{ padding: 0.375 * sizeMultiplier + 'rem' }" @click.stop.prevent="editClick">
|
<div cy-id="editButton" v-if="userCanUpdate" v-show="!isSelectionMode" class="absolute cursor-pointer hover:text-yellow-300 hover:scale-125 transform duration-150 top-0 right-0" :style="{ padding: 0.375 + 'em' }" @click.stop.prevent="editClick">
|
||||||
<span class="material-icons" :style="{ fontSize: sizeMultiplier + 'rem' }">edit</span>
|
<span class="material-icons" :style="{ fontSize: 1 + 'em' }">edit</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Radio button -->
|
<!-- Radio button -->
|
||||||
<div cy-id="selectedRadioButton" v-if="!isAuthorBookshelfView" class="absolute cursor-pointer hover:text-yellow-300 hover:scale-125 transform duration-100" :style="{ top: 0.375 * sizeMultiplier + 'rem', left: 0.375 * sizeMultiplier + 'rem' }" @click.stop.prevent="selectBtnClick">
|
<div cy-id="selectedRadioButton" v-if="!isAuthorBookshelfView" class="absolute cursor-pointer hover:text-yellow-300 hover:scale-125 transform duration-100" :style="{ top: 0.375 + 'em', left: 0.375 + 'em' }" @click.stop.prevent="selectBtnClick">
|
||||||
<span class="material-icons" :class="selected ? 'text-yellow-400' : ''" :style="{ fontSize: 1.25 * sizeMultiplier + 'rem' }">{{ selected ? 'radio_button_checked' : 'radio_button_unchecked' }}</span>
|
<span class="material-icons" :class="selected ? 'text-yellow-400' : ''" :style="{ fontSize: 1.25 + 'em' }">{{ selected ? 'radio_button_checked' : 'radio_button_unchecked' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- More Menu Icon -->
|
<!-- More Menu Icon -->
|
||||||
<div cy-id="moreButton" ref="moreIcon" v-show="!isSelectionMode && moreMenuItems.length" class="md:block absolute cursor-pointer hover:text-yellow-300 300 hover:scale-125 transform duration-150" :style="{ bottom: 0.375 * sizeMultiplier + 'rem', right: 0.375 * sizeMultiplier + 'rem' }" @click.stop.prevent="clickShowMore">
|
<div cy-id="moreButton" ref="moreIcon" v-show="!isSelectionMode && moreMenuItems.length" class="md:block absolute cursor-pointer hover:text-yellow-300 300 hover:scale-125 transform duration-150" :style="{ bottom: 0.375 + 'em', right: 0.375 + 'em' }" @click.stop.prevent="clickShowMore">
|
||||||
<span class="material-icons" :style="{ fontSize: 1.2 * sizeMultiplier + 'rem' }">more_vert</span>
|
<span class="material-icons" :style="{ fontSize: 1.2 + 'em' }">more_vert</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div cy-id="ebookFormat" v-if="ebookFormat" class="absolute" :style="{ bottom: 0.375 * sizeMultiplier + 'rem', left: 0.375 * sizeMultiplier + 'rem' }">
|
<div cy-id="ebookFormat" v-if="ebookFormat" class="absolute" :style="{ bottom: 0.375 + 'em', left: 0.375 + 'em' }">
|
||||||
<span class="text-white/80" :style="{ fontSize: 0.8 * sizeMultiplier + 'rem' }">{{ ebookFormat }}</span>
|
<span class="text-white/80" :style="{ fontSize: 0.8 + 'em' }">{{ ebookFormat }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -85,41 +80,60 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Series name overlay -->
|
<!-- Series name overlay -->
|
||||||
<div cy-id="seriesNameOverlay" v-if="booksInSeries && libraryItem && isHovering" class="w-full h-full absolute top-0 left-0 z-10 bg-black bg-opacity-60 rounded flex items-center justify-center" :style="{ padding: sizeMultiplier + 'rem' }">
|
<div cy-id="seriesNameOverlay" v-if="booksInSeries && libraryItem && isHovering" class="w-full h-full absolute top-0 left-0 z-10 bg-black bg-opacity-60 rounded flex items-center justify-center" :style="{ padding: 1 + 'em' }">
|
||||||
<p v-if="seriesName" class="text-gray-200 text-center" :style="{ fontSize: 1.1 * sizeMultiplier + 'rem' }">{{ seriesName }}</p>
|
<p v-if="seriesName" class="text-gray-200 text-center" :style="{ fontSize: 1.1 + 'em' }">{{ seriesName }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Error widget -->
|
<!-- Error widget -->
|
||||||
<ui-tooltip cy-id="ErrorTooltip" v-if="showError" :text="errorText" class="absolute bottom-4 left-0 z-10">
|
<ui-tooltip cy-id="ErrorTooltip" v-if="showError" :text="errorText" class="absolute bottom-4e left-0 z-10">
|
||||||
<div :style="{ height: 1.5 * sizeMultiplier + 'rem', width: 2.5 * sizeMultiplier + 'rem' }" class="bg-error rounded-r-full shadow-md flex items-center justify-end border-r border-b border-red-300">
|
<div :style="{ height: 1.5 + 'em', width: 2.5 + 'em' }" class="bg-error rounded-r-full shadow-md flex items-center justify-end border-r border-b border-red-300">
|
||||||
<span class="material-icons text-red-100 pr-1" :style="{ fontSize: 0.875 * sizeMultiplier + 'rem' }">priority_high</span>
|
<span class="material-icons text-red-100 pr-1e" :style="{ fontSize: 0.875 + 'em' }">priority_high</span>
|
||||||
</div>
|
</div>
|
||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
|
|
||||||
<div cy-id="rssFeed" v-if="rssFeed && !isSelectionMode && !isHovering" class="absolute text-success top-0 left-0 z-10" :style="{ padding: 0.375 * sizeMultiplier + 'rem' }">
|
<!-- rss feed icon -->
|
||||||
<span class="material-icons" :style="{ fontSize: sizeMultiplier * 1.5 + 'rem' }">rss_feed</span>
|
<div cy-id="rssFeed" v-if="rssFeed && !isSelectionMode && !isHovering" class="absolute text-success top-0 left-0 z-10" :style="{ padding: 0.375 + 'em' }">
|
||||||
|
<span class="material-icons" :style="{ fontSize: 1.5 + 'em' }">rss_feed</span>
|
||||||
|
</div>
|
||||||
|
<!-- media item shared icon -->
|
||||||
|
<div cy-id="mediaItemShare" v-if="mediaItemShare && !isSelectionMode && !isHovering" class="absolute text-success left-0 z-10" :style="{ padding: 0.375 + 'em', top: rssFeed ? '2em' : '0px' }">
|
||||||
|
<span class="material-icons" :style="{ fontSize: 1.5 + 'em' }">public</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Series sequence -->
|
<!-- Series sequence -->
|
||||||
<div cy-id="seriesSequence" v-if="seriesSequence && !isHovering && !isSelectionMode" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-10" :style="{ top: 0.375 * sizeMultiplier + 'rem', right: 0.375 * sizeMultiplier + 'rem', padding: `${0.1 * sizeMultiplier}rem ${0.25 * sizeMultiplier}rem` }">
|
<div cy-id="seriesSequence" v-if="seriesSequence && !isHovering && !isSelectionMode" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-10" :style="{ top: 0.375 + 'em', right: 0.375 + 'em', padding: `${0.1}em ${0.25}em` }">
|
||||||
<p :style="{ fontSize: sizeMultiplier * 0.8 + 'rem' }">#{{ seriesSequence }}</p>
|
<p :style="{ fontSize: 0.8 + 'em' }">#{{ seriesSequence }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Podcast Episode # -->
|
<!-- Podcast Episode # -->
|
||||||
<div cy-id="podcastEpisodeNumber" v-if="recentEpisodeNumber !== null && !isHovering && !isSelectionMode && !processing" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-10" :style="{ top: 0.375 * sizeMultiplier + 'rem', right: 0.375 * sizeMultiplier + 'rem', padding: `${0.1 * sizeMultiplier}rem ${0.25 * sizeMultiplier}rem` }">
|
<div cy-id="podcastEpisodeNumber" v-if="recentEpisodeNumber !== null && !isHovering && !isSelectionMode && !processing" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-10" :style="{ top: 0.375 + 'em', right: 0.375 + 'em', padding: `${0.1}em ${0.25}em` }">
|
||||||
<p :style="{ fontSize: sizeMultiplier * 0.8 + 'rem' }">
|
<p :style="{ fontSize: 0.8 + 'em' }">
|
||||||
Episode<span v-if="recentEpisodeNumber"> #{{ recentEpisodeNumber }}</span>
|
Episode<span v-if="recentEpisodeNumber"> #{{ recentEpisodeNumber }}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Podcast Num Episodes -->
|
<!-- Podcast Num Episodes -->
|
||||||
<div cy-id="numEpisodes" v-else-if="!numEpisodesIncomplete && numEpisodes && !isHovering && !isSelectionMode" class="absolute rounded-full bg-black bg-opacity-90 box-shadow-md z-10 flex items-center justify-center" :style="{ top: 0.375 * sizeMultiplier + 'rem', right: 0.375 * sizeMultiplier + 'rem', width: 1.25 * sizeMultiplier + 'rem', height: 1.25 * sizeMultiplier + 'rem' }">
|
<div cy-id="numEpisodes" v-else-if="!numEpisodesIncomplete && numEpisodes && !isHovering && !isSelectionMode" class="absolute rounded-full bg-black bg-opacity-90 box-shadow-md z-10 flex items-center justify-center" :style="{ top: 0.375 + 'em', right: 0.375 + 'em', width: 1.25 + 'em', height: 1.25 + 'em' }">
|
||||||
<p :style="{ fontSize: sizeMultiplier * 0.8 + 'rem' }">{{ numEpisodes }}</p>
|
<p :style="{ fontSize: 0.8 + 'em' }">{{ numEpisodes }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Podcast Num Episodes -->
|
<!-- Podcast Num Episodes -->
|
||||||
<div cy-id="numEpisodesIncomplete" v-else-if="numEpisodesIncomplete && !isHovering && !isSelectionMode" class="absolute rounded-full bg-yellow-400 text-black font-semibold box-shadow-md z-10 flex items-center justify-center" :style="{ top: 0.375 * sizeMultiplier + 'rem', right: 0.375 * sizeMultiplier + 'rem', width: 1.25 * sizeMultiplier + 'rem', height: 1.25 * sizeMultiplier + 'rem' }">
|
<div cy-id="numEpisodesIncomplete" v-else-if="numEpisodesIncomplete && !isHovering && !isSelectionMode" class="absolute rounded-full bg-yellow-400 text-black font-semibold box-shadow-md z-10 flex items-center justify-center" :style="{ top: 0.375 + 'em', right: 0.375 + 'em', width: 1.25 + 'em', height: 1.25 + 'em' }">
|
||||||
<p :style="{ fontSize: sizeMultiplier * 0.8 + 'rem' }">{{ numEpisodesIncomplete }}</p>
|
<p :style="{ fontSize: 0.8 + 'em' }">{{ numEpisodesIncomplete }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Alternative bookshelf title/author/sort -->
|
||||||
|
<div cy-id="detailBottom" :id="`description-area-${index}`" v-if="isAlternativeBookshelfView || isAuthorBookshelfView" dir="auto" class="relative mt-2e mb-2e left-0 z-50 w-full">
|
||||||
|
<div :style="{ fontSize: 0.9 + 'em' }">
|
||||||
|
<ui-tooltip v-if="displayTitle" :text="displayTitle" :disabled="!displayTitleTruncated" direction="bottom" :delayOnShow="500" class="flex items-center">
|
||||||
|
<p cy-id="title" ref="displayTitle" class="truncate">{{ displayTitle }}</p>
|
||||||
|
<widgets-explicit-indicator cy-id="explicitIndicator" v-if="isExplicit" />
|
||||||
|
</ui-tooltip>
|
||||||
|
</div>
|
||||||
|
<p cy-id="line2" class="truncate text-gray-400" :style="{ fontSize: 0.8 + 'em' }">{{ displayLineTwo || ' ' }}</p>
|
||||||
|
<p cy-id="line3" v-if="displaySortLine" class="truncate text-gray-400" :style="{ fontSize: 0.8 + 'em' }">{{ displaySortLine }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -131,15 +145,11 @@ import MoreMenu from '@/components/widgets/MoreMenu'
|
|||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
index: Number,
|
index: Number,
|
||||||
width: {
|
width: Number,
|
||||||
type: Number,
|
|
||||||
default: 120
|
|
||||||
},
|
|
||||||
height: {
|
height: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 192
|
default: 192
|
||||||
},
|
},
|
||||||
bookCoverAspectRatio: Number,
|
|
||||||
bookshelfView: Number,
|
bookshelfView: Number,
|
||||||
bookMount: {
|
bookMount: {
|
||||||
// Book can be passed as prop or set with setEntity()
|
// Book can be passed as prop or set with setEntity()
|
||||||
@@ -174,6 +184,39 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
bookCoverAspectRatio() {
|
||||||
|
return this.store.getters['libraries/getBookCoverAspectRatio']
|
||||||
|
},
|
||||||
|
coverWidth() {
|
||||||
|
return this.width || this.coverHeight / this.bookCoverAspectRatio
|
||||||
|
},
|
||||||
|
coverHeight() {
|
||||||
|
return this.height * this.sizeMultiplier
|
||||||
|
},
|
||||||
|
cardWidth() {
|
||||||
|
// This method returns immediately without waiting for the DOM to update
|
||||||
|
return this.coverWidth
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
cardHeight() {
|
||||||
|
// This method returns immediately without waiting for the DOM to update
|
||||||
|
return this.coverHeight + this.detailsHeight
|
||||||
|
},
|
||||||
|
detailsHeight() {
|
||||||
|
if (!this.isAlternativeBookshelfView) return 0
|
||||||
|
const lineHeight = 1.5
|
||||||
|
const remSize = 16
|
||||||
|
const baseHeight = this.sizeMultiplier * lineHeight * remSize
|
||||||
|
const titleHeight = 0.9 * baseHeight
|
||||||
|
const line2Height = 0.8 * baseHeight
|
||||||
|
const line3Height = this.displaySortLine ? 0.8 * baseHeight : 0
|
||||||
|
const marginHeight = 8 * 2 * this.sizeMultiplier // py-2
|
||||||
|
return titleHeight + line2Height + line3Height + marginHeight
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
sizeMultiplier() {
|
||||||
|
return this.store.getters['user/getSizeMultiplier']
|
||||||
|
},
|
||||||
dateFormat() {
|
dateFormat() {
|
||||||
return this.store.state.serverSettings.dateFormat
|
return this.store.state.serverSettings.dateFormat
|
||||||
},
|
},
|
||||||
@@ -273,10 +316,6 @@ export default {
|
|||||||
squareAspectRatio() {
|
squareAspectRatio() {
|
||||||
return this.bookCoverAspectRatio === 1
|
return this.bookCoverAspectRatio === 1
|
||||||
},
|
},
|
||||||
sizeMultiplier() {
|
|
||||||
const baseSize = this.squareAspectRatio ? 192 : 120
|
|
||||||
return this.width / baseSize
|
|
||||||
},
|
|
||||||
title() {
|
title() {
|
||||||
return this.mediaMetadata.title || ''
|
return this.mediaMetadata.title || ''
|
||||||
},
|
},
|
||||||
@@ -298,7 +337,7 @@ export default {
|
|||||||
if (this.recentEpisode) return this.recentEpisode.title
|
if (this.recentEpisode) return this.recentEpisode.title
|
||||||
const ignorePrefix = this.orderBy === 'media.metadata.title' && this.sortingIgnorePrefix
|
const ignorePrefix = this.orderBy === 'media.metadata.title' && this.sortingIgnorePrefix
|
||||||
if (this.collapsedSeries) return ignorePrefix ? this.collapsedSeries.nameIgnorePrefix : this.collapsedSeries.name
|
if (this.collapsedSeries) return ignorePrefix ? this.collapsedSeries.nameIgnorePrefix : this.collapsedSeries.name
|
||||||
return ignorePrefix ? this.mediaMetadata.titleIgnorePrefix : this.title
|
return ignorePrefix ? this.mediaMetadata.titleIgnorePrefix || '\u00A0' : this.title || '\u00A0'
|
||||||
},
|
},
|
||||||
displayLineTwo() {
|
displayLineTwo() {
|
||||||
if (this.recentEpisode) return this.title
|
if (this.recentEpisode) return this.title
|
||||||
@@ -319,7 +358,10 @@ export default {
|
|||||||
if (this.orderBy === 'media.duration') return 'Duration: ' + this.$elapsedPrettyExtended(this.media.duration, false)
|
if (this.orderBy === 'media.duration') return 'Duration: ' + this.$elapsedPrettyExtended(this.media.duration, false)
|
||||||
if (this.orderBy === 'size') return 'Size: ' + this.$bytesPretty(this._libraryItem.size)
|
if (this.orderBy === 'size') return 'Size: ' + this.$bytesPretty(this._libraryItem.size)
|
||||||
if (this.orderBy === 'media.numTracks') return `${this.numEpisodes} Episodes`
|
if (this.orderBy === 'media.numTracks') return `${this.numEpisodes} Episodes`
|
||||||
if (this.orderBy === 'media.metadata.publishedYear' && this.mediaMetadata.publishedYear) return 'Published ' + this.mediaMetadata.publishedYear
|
if (this.orderBy === 'media.metadata.publishedYear') {
|
||||||
|
if (this.mediaMetadata.publishedYear) return 'Published ' + this.mediaMetadata.publishedYear
|
||||||
|
return '\u00A0'
|
||||||
|
}
|
||||||
return null
|
return null
|
||||||
},
|
},
|
||||||
episodeProgress() {
|
episodeProgress() {
|
||||||
@@ -486,6 +528,12 @@ export default {
|
|||||||
func: 'openPlaylists',
|
func: 'openPlaylists',
|
||||||
text: this.$strings.LabelAddToPlaylist
|
text: this.$strings.LabelAddToPlaylist
|
||||||
})
|
})
|
||||||
|
if (this.userIsAdminOrUp) {
|
||||||
|
items.push({
|
||||||
|
func: 'openShare',
|
||||||
|
text: this.$strings.LabelShare
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this.ebookFormat && this.store.state.libraries.ereaderDevices?.length) {
|
if (this.ebookFormat && this.store.state.libraries.ereaderDevices?.length) {
|
||||||
items.push({
|
items.push({
|
||||||
@@ -557,16 +605,16 @@ export default {
|
|||||||
return this.$root.socket || this.$nuxt.$root.socket
|
return this.$root.socket || this.$nuxt.$root.socket
|
||||||
},
|
},
|
||||||
titleFontSize() {
|
titleFontSize() {
|
||||||
return 0.75 * this.sizeMultiplier
|
return 0.75
|
||||||
},
|
},
|
||||||
authorFontSize() {
|
authorFontSize() {
|
||||||
return 0.6 * this.sizeMultiplier
|
return 0.6
|
||||||
},
|
},
|
||||||
placeholderCoverPadding() {
|
placeholderCoverPadding() {
|
||||||
return 0.8 * this.sizeMultiplier
|
return 0.8
|
||||||
},
|
},
|
||||||
authorBottom() {
|
authorBottom() {
|
||||||
return 0.75 * this.sizeMultiplier
|
return 0.75
|
||||||
},
|
},
|
||||||
titleCleaned() {
|
titleCleaned() {
|
||||||
if (!this.title) return ''
|
if (!this.title) return ''
|
||||||
@@ -590,14 +638,12 @@ export default {
|
|||||||
const constants = this.$constants || this.$nuxt.$constants
|
const constants = this.$constants || this.$nuxt.$constants
|
||||||
return this.bookshelfView === constants.BookshelfView.AUTHOR
|
return this.bookshelfView === constants.BookshelfView.AUTHOR
|
||||||
},
|
},
|
||||||
titleDisplayBottomOffset() {
|
|
||||||
if (!this.isAlternativeBookshelfView && !this.isAuthorBookshelfView) return 0
|
|
||||||
else if (!this.displaySortLine) return 3 * this.sizeMultiplier
|
|
||||||
return 4.25 * this.sizeMultiplier
|
|
||||||
},
|
|
||||||
rssFeed() {
|
rssFeed() {
|
||||||
if (this.booksInSeries) return null
|
if (this.booksInSeries) return null
|
||||||
return this._libraryItem.rssFeed || null
|
return this._libraryItem.rssFeed || null
|
||||||
|
},
|
||||||
|
mediaItemShare() {
|
||||||
|
return this._libraryItem.mediaItemShare || null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -840,6 +886,10 @@ export default {
|
|||||||
this.store.commit('globals/setSelectedPlaylistItems', [{ libraryItem: this.libraryItem, episode: this.recentEpisode }])
|
this.store.commit('globals/setSelectedPlaylistItems', [{ libraryItem: this.libraryItem, episode: this.recentEpisode }])
|
||||||
this.store.commit('globals/setShowPlaylistsModal', true)
|
this.store.commit('globals/setShowPlaylistsModal', true)
|
||||||
},
|
},
|
||||||
|
openShare() {
|
||||||
|
this.store.commit('setSelectedLibraryItem', this.libraryItem)
|
||||||
|
this.store.commit('globals/setShareModal', this.mediaItemShare)
|
||||||
|
},
|
||||||
deleteLibraryItem() {
|
deleteLibraryItem() {
|
||||||
const payload = {
|
const payload = {
|
||||||
message: this.$strings.MessageConfirmDeleteLibraryItem,
|
message: this.$strings.MessageConfirmDeleteLibraryItem,
|
||||||
|
|||||||
@@ -1,24 +1,26 @@
|
|||||||
<template>
|
<template>
|
||||||
<div ref="card" :id="`collection-card-${index}`" :style="{ width: width + 'px', height: height + 'px' }" class="absolute top-0 left-0 rounded-sm z-30 cursor-pointer" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
<div ref="card" :id="`collection-card-${index}`" :style="{ width: cardWidth + 'px' }" class="absolute top-0 left-0 rounded-sm z-30 cursor-pointer" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
||||||
|
<div class="relative" :style="{ height: coverHeight + 'px' }">
|
||||||
<div class="absolute top-0 left-0 w-full box-shadow-book shadow-height" />
|
<div class="absolute top-0 left-0 w-full box-shadow-book shadow-height" />
|
||||||
<div class="w-full h-full bg-primary relative rounded overflow-hidden">
|
<div class="w-full h-full bg-primary relative rounded overflow-hidden">
|
||||||
<covers-collection-cover ref="cover" :book-items="books" :width="width" :height="height" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
<covers-collection-cover ref="cover" :book-items="books" :width="cardWidth" :height="coverHeight" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
||||||
</div>
|
</div>
|
||||||
<div v-show="isHovering && userCanUpdate" class="w-full h-full absolute top-0 left-0 z-10 bg-black bg-opacity-40 pointer-events-none">
|
<div v-show="isHovering && userCanUpdate" class="w-full h-full absolute top-0 left-0 z-10 bg-black bg-opacity-40 pointer-events-none">
|
||||||
<div class="absolute pointer-events-auto" :style="{ top: 0.5 * sizeMultiplier + 'rem', right: 0.5 * sizeMultiplier + 'rem' }" @click.stop.prevent="clickEdit">
|
<div class="absolute pointer-events-auto" :style="{ top: 0.5 + 'em', right: 0.5 + 'em' }" @click.stop.prevent="clickEdit">
|
||||||
<span class="material-icons text-xl text-white text-opacity-75 hover:text-opacity-100">edit</span>
|
<span class="material-icons text-white text-opacity-75 hover:text-opacity-100" :style="{ fontSize: 1.25 + 'em' }">edit</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span v-if="!isHovering && rssFeed" class="absolute z-10 material-icons text-success" :style="{ top: 0.5 * sizeMultiplier + 'rem', left: 0.5 * sizeMultiplier + 'rem', fontSize: 1.5 * sizeMultiplier + 'rem' }">rss_feed</span>
|
<span v-if="!isHovering && rssFeed" class="absolute z-10 material-icons text-success" :style="{ top: 0.5 + 'em', left: 0.5 + 'em', fontSize: 1.5 + 'em' }">rss_feed</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div v-if="!isAlternativeBookshelfView" class="categoryPlacard absolute z-30 left-0 right-0 mx-auto -bottom-6 h-6 rounded-md text-center" :style="{ width: Math.min(200, width) + 'px' }">
|
<div v-if="!isAlternativeBookshelfView" class="categoryPlacard absolute z-30 left-0 right-0 mx-auto -bottom-6e h-6e rounded-md text-center" :style="{ width: Math.min(200, cardWidth) + 'px' }">
|
||||||
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border" :style="{ padding: `0rem ${0.5 * sizeMultiplier}rem` }">
|
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border" :style="{ padding: `0em ${0.5}em` }">
|
||||||
<p class="truncate" :style="{ fontSize: labelFontSize + 'rem' }">{{ title }}</p>
|
<p class="truncate" :style="{ fontSize: labelFontSize + 'em' }">{{ title }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="absolute z-30 left-0 right-0 mx-auto -bottom-8 h-8 py-1 rounded-md text-center">
|
<div v-else class="relative z-30 left-0 right-0 mx-auto h-8e py-1e rounded-md text-center">
|
||||||
<p class="truncate" :style="{ fontSize: labelFontSize * sizeMultiplier + 'rem' }">{{ title }}</p>
|
<p class="truncate" :style="{ fontSize: labelFontSize + 'em' }">{{ title }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -28,8 +30,10 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
index: Number,
|
index: Number,
|
||||||
width: Number,
|
width: Number,
|
||||||
height: Number,
|
height: {
|
||||||
bookCoverAspectRatio: Number,
|
type: Number,
|
||||||
|
default: 192
|
||||||
|
},
|
||||||
bookshelfView: {
|
bookshelfView: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
@@ -49,13 +53,33 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
bookCoverAspectRatio() {
|
||||||
|
return this.store.getters['libraries/getBookCoverAspectRatio']
|
||||||
|
},
|
||||||
|
cardWidth() {
|
||||||
|
return this.width || this.coverHeight * 2
|
||||||
|
},
|
||||||
|
coverHeight() {
|
||||||
|
return this.height * this.sizeMultiplier
|
||||||
|
},
|
||||||
|
cardHeight() {
|
||||||
|
return this.coverHeight + this.bottomTextHeight
|
||||||
|
},
|
||||||
|
bottomTextHeight() {
|
||||||
|
if (!this.isAlternativeBookshelfView) return 0 // bottom text appears on top of the divider
|
||||||
|
const lineHeight = 1.5
|
||||||
|
const remSize = 16
|
||||||
|
const baseHeight = this.sizeMultiplier * lineHeight * remSize
|
||||||
|
const titleHeight = this.labelFontSize * baseHeight
|
||||||
|
const paddingHeight = 4 * 2 * this.sizeMultiplier // py-1
|
||||||
|
return titleHeight + paddingHeight
|
||||||
|
},
|
||||||
labelFontSize() {
|
labelFontSize() {
|
||||||
if (this.width < 160) return 0.75
|
if (this.width < 160) return 0.75
|
||||||
return 0.875
|
return 0.9
|
||||||
},
|
},
|
||||||
sizeMultiplier() {
|
sizeMultiplier() {
|
||||||
if (this.bookCoverAspectRatio === 1) return this.width / (120 * 1.6 * 2)
|
return this.store.getters['user/getSizeMultiplier']
|
||||||
return this.width / 240
|
|
||||||
},
|
},
|
||||||
title() {
|
title() {
|
||||||
return this.collection ? this.collection.name : ''
|
return this.collection ? this.collection.name : ''
|
||||||
|
|||||||
@@ -1,21 +1,24 @@
|
|||||||
<template>
|
<template>
|
||||||
<div ref="card" :id="`playlist-card-${index}`" :style="{ width: width + 'px', height: height + 'px' }" class="absolute top-0 left-0 rounded-sm z-30 cursor-pointer" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
<div ref="card" :id="`playlist-card-${index}`" :style="{ width: cardWidth + 'px', fontSize: sizeMultiplier + 'rem' }" class="absolute top-0 left-0 rounded-sm z-30 cursor-pointer" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
||||||
|
<div class="relative" :style="{ height: coverHeight + 'px' }">
|
||||||
<div class="absolute top-0 left-0 w-full box-shadow-book shadow-height" />
|
<div class="absolute top-0 left-0 w-full box-shadow-book shadow-height" />
|
||||||
<div class="w-full h-full bg-primary relative rounded overflow-hidden">
|
<div class="w-full h-full bg-primary relative rounded overflow-hidden">
|
||||||
<covers-playlist-cover ref="cover" :items="items" :width="width" :height="height" />
|
<covers-playlist-cover ref="cover" :items="items" :width="cardWidth" :height="coverHeight" />
|
||||||
</div>
|
</div>
|
||||||
<div v-show="isHovering && userCanUpdate" class="w-full h-full absolute top-0 left-0 z-10 bg-black bg-opacity-40 pointer-events-none">
|
<div v-show="isHovering && userCanUpdate" class="w-full h-full absolute top-0 left-0 z-10 bg-black bg-opacity-40 pointer-events-none">
|
||||||
<div class="absolute pointer-events-auto" :style="{ top: 0.5 * sizeMultiplier + 'rem', right: 0.5 * sizeMultiplier + 'rem' }" @click.stop.prevent="clickEdit">
|
<div class="absolute pointer-events-auto" :style="{ top: 0.5 + 'em', right: 0.5 + 'em' }" @click.stop.prevent="clickEdit">
|
||||||
<span class="material-icons text-xl text-white text-opacity-75 hover:text-opacity-100">edit</span>
|
<span class="material-icons text-white text-opacity-75 hover:text-opacity-100" :style="{ fontSize: 1.25 + 'em' }">edit</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!isAlternativeBookshelfView" class="categoryPlacard absolute z-30 left-0 right-0 mx-auto -bottom-6 h-6 rounded-md text-center" :style="{ width: Math.min(200, width) + 'px' }">
|
</div>
|
||||||
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border" :style="{ padding: `0rem ${0.5 * sizeMultiplier}rem` }">
|
|
||||||
<p class="truncate" :style="{ fontSize: labelFontSize + 'rem' }">{{ title }}</p>
|
<div v-if="!isAlternativeBookshelfView" class="categoryPlacard absolute z-30 -bottom-6e left-0 right-0 mx-auto h-6e rounded-md text-center" :style="{ width: Math.min(200, width) + 'px' }">
|
||||||
|
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border" :style="{ padding: `0em ${0.5}em` }">
|
||||||
|
<p class="truncate" :style="{ fontSize: labelFontSize + 'em' }">{{ title }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="absolute z-30 left-0 right-0 mx-auto -bottom-8 h-8 py-1 rounded-md text-center">
|
<div v-else class="relative z-30 left-0 right-0 mx-auto h-8e py-1e rounded-md text-center">
|
||||||
<p class="truncate" :style="{ fontSize: labelFontSize * sizeMultiplier + 'rem' }">{{ title }}</p>
|
<p class="truncate" :style="{ fontSize: labelFontSize + 'em' }">{{ title }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -25,8 +28,10 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
index: Number,
|
index: Number,
|
||||||
width: Number,
|
width: Number,
|
||||||
height: Number,
|
height: {
|
||||||
bookCoverAspectRatio: Number,
|
type: Number,
|
||||||
|
default: 192
|
||||||
|
},
|
||||||
bookshelfView: {
|
bookshelfView: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
@@ -45,13 +50,21 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
bookCoverAspectRatio() {
|
||||||
|
return this.store.getters['libraries/getBookCoverAspectRatio']
|
||||||
|
},
|
||||||
|
cardWidth() {
|
||||||
|
return this.width || this.coverHeight
|
||||||
|
},
|
||||||
|
coverHeight() {
|
||||||
|
return this.height * this.sizeMultiplier
|
||||||
|
},
|
||||||
labelFontSize() {
|
labelFontSize() {
|
||||||
if (this.width < 160) return 0.75
|
if (this.width < 160) return 0.75
|
||||||
return 0.875
|
return 0.9
|
||||||
},
|
},
|
||||||
sizeMultiplier() {
|
sizeMultiplier() {
|
||||||
if (this.bookCoverAspectRatio === 1) return this.width / (120 * 1.6)
|
return this.store.getters['user/getSizeMultiplier']
|
||||||
return this.width / 120
|
|
||||||
},
|
},
|
||||||
title() {
|
title() {
|
||||||
return this.playlist ? this.playlist.name : ''
|
return this.playlist ? this.playlist.name : ''
|
||||||
|
|||||||
@@ -1,28 +1,32 @@
|
|||||||
<template>
|
<template>
|
||||||
<div cy-id="card" ref="card" :id="`series-card-${index}`" :style="{ width: width + 'px', height: height + 'px' }" class="absolute rounded-sm z-30 cursor-pointer" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
<div cy-id="card" ref="card" :id="`series-card-${index}`" :style="{ width: cardWidth + 'px' }" class="absolute rounded-sm z-30 cursor-pointer" @mousedown.prevent @mouseup.prevent @mousemove.prevent @mouseover="mouseover" @mouseleave="mouseleave" @click="clickCard">
|
||||||
|
<div cy-id="covers-area" class="relative" :style="{ height: coverHeight + 'px' }">
|
||||||
<div class="absolute top-0 left-0 w-full box-shadow-book shadow-height" />
|
<div class="absolute top-0 left-0 w-full box-shadow-book shadow-height" />
|
||||||
<div class="w-full h-full bg-primary relative rounded overflow-hidden z-0">
|
<div class="w-full h-full bg-primary relative rounded overflow-hidden z-0">
|
||||||
<covers-group-cover v-if="series" ref="cover" :id="seriesId" :name="displayTitle" :book-items="books" :width="width" :height="height" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
<covers-group-cover v-if="series" ref="cover" :id="seriesId" :name="displayTitle" :book-items="books" :width="cardWidth" :height="coverHeight" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div cy-id="seriesLengthMarker" class="absolute z-10 top-1.5 right-1.5 rounded-md leading-3 text-sm p-1 font-semibold text-white flex items-center justify-center" style="background-color: #cd9d49dd">{{ books.length }}</div>
|
<div cy-id="seriesLengthMarker" class="absolute rounded-lg bg-black bg-opacity-90 box-shadow-md z-20" :style="{ top: 0.375 + 'em', right: 0.375 + 'em', padding: `0.1em 0.25em` }" style="background-color: #cd9d49dd">
|
||||||
|
<p :style="{ fontSize: 0.8 + 'em' }">{{ books.length }}</p>
|
||||||
<div cy-id="seriesProgressBar" v-if="seriesPercentInProgress > 0" class="absolute bottom-0 left-0 h-1 shadow-sm max-w-full z-10 rounded-b w-full" :class="isSeriesFinished ? 'bg-success' : 'bg-yellow-400'" :style="{ width: seriesPercentInProgress * 100 + '%' }" />
|
|
||||||
|
|
||||||
<div cy-id="hoveringDisplayTitle" v-if="hasValidCovers" class="bg-black bg-opacity-60 absolute top-0 left-0 w-full h-full flex items-center justify-center text-center transition-opacity" :class="isHovering ? '' : 'opacity-0'" :style="{ padding: `${sizeMultiplier}rem` }">
|
|
||||||
<p :style="{ fontSize: 1.2 * sizeMultiplier + 'rem' }">{{ displayTitle }}</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span cy-id="rssFeedMarker" v-if="!isHovering && rssFeed" class="absolute z-10 material-icons text-success" :style="{ top: 0.5 * sizeMultiplier + 'rem', left: 0.5 * sizeMultiplier + 'rem', fontSize: 1.5 * sizeMultiplier + 'rem' }">rss_feed</span>
|
<div cy-id="seriesProgressBar" v-if="seriesPercentInProgress > 0" class="absolute bottom-0 left-0 h-1e shadow-sm max-w-full z-10 rounded-b w-full" :class="isSeriesFinished ? 'bg-success' : 'bg-yellow-400'" :style="{ width: seriesPercentInProgress * 100 + '%' }" />
|
||||||
|
|
||||||
<div cy-id="standardBottomText" v-if="!isAlternativeBookshelfView" class="categoryPlacard absolute z-10 left-0 right-0 mx-auto -bottom-6 h-6 rounded-md text-center" :style="{ width: Math.min(200, width) + 'px' }">
|
<div cy-id="hoveringDisplayTitle" v-if="hasValidCovers" class="bg-black bg-opacity-60 absolute top-0 left-0 w-full h-full flex items-center justify-center text-center transition-opacity" :class="isHovering ? '' : 'opacity-0'" :style="{ padding: '1em' }">
|
||||||
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border" :style="{ padding: `0rem ${0.5 * sizeMultiplier}rem` }">
|
<p :style="{ fontSize: 1.2 + 'em' }">{{ displayTitle }}</p>
|
||||||
<p cy-id="standardBottomDisplayTitle" class="truncate" :style="{ fontSize: labelFontSize + 'rem' }">{{ displayTitle }}</p>
|
</div>
|
||||||
|
|
||||||
|
<span cy-id="rssFeedMarker" v-if="!isHovering && rssFeed" class="absolute z-10 material-icons text-success" :style="{ top: 0.5 + 'em', left: 0.5 + 'em', fontSize: 1.5 + 'em' }">rss_feed</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div cy-id="standardBottomText" v-if="!isAlternativeBookshelfView" class="categoryPlacard absolute z-10 left-0 right-0 mx-auto -bottom-6e h-6e rounded-md text-center" :style="{ width: Math.min(200, cardWidth) + 'px' }">
|
||||||
|
<div class="w-full h-full shinyBlack flex items-center justify-center rounded-sm border" :style="{ padding: `0em 0.5em` }">
|
||||||
|
<p cy-id="standardBottomDisplayTitle" class="truncate" :style="{ fontSize: labelFontSize + 'em' }">{{ displayTitle }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div cy-id="detailBottomText" v-else class="absolute z-30 left-0 right-0 mx-auto -bottom-8 h-8 py-1 rounded-md text-center">
|
<div cy-id="detailBottomText" v-else class="relative z-30 left-0 right-0 mx-auto py-1e rounded-md text-center">
|
||||||
<p cy-id="detailBottomDisplayTitle" class="truncate" :style="{ fontSize: labelFontSize * sizeMultiplier + 'rem' }">{{ displayTitle }}</p>
|
<p cy-id="detailBottomDisplayTitle" class="truncate" :style="{ fontSize: labelFontSize + 'em' }">{{ displayTitle }}</p>
|
||||||
<p cy-id="detailBottomSortLine" v-if="displaySortLine" class="truncate text-gray-400" :style="{ fontSize: 0.8 * sizeMultiplier + 'rem' }">{{ displaySortLine }}</p>
|
<p cy-id="detailBottomSortLine" v-if="displaySortLine" class="truncate text-gray-400" :style="{ fontSize: 0.8 + 'em' }">{{ displaySortLine }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -32,13 +36,14 @@ export default {
|
|||||||
props: {
|
props: {
|
||||||
index: Number,
|
index: Number,
|
||||||
width: Number,
|
width: Number,
|
||||||
height: Number,
|
height: {
|
||||||
bookCoverAspectRatio: Number,
|
type: Number,
|
||||||
|
default: 192
|
||||||
|
},
|
||||||
bookshelfView: {
|
bookshelfView: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0
|
default: 0
|
||||||
},
|
},
|
||||||
isCategorized: Boolean,
|
|
||||||
seriesMount: {
|
seriesMount: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => null
|
default: () => null
|
||||||
@@ -56,16 +61,24 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
bookCoverAspectRatio() {
|
||||||
|
return this.store.getters['libraries/getBookCoverAspectRatio']
|
||||||
|
},
|
||||||
|
cardWidth() {
|
||||||
|
return this.width || this.coverHeight * 2
|
||||||
|
},
|
||||||
|
coverHeight() {
|
||||||
|
return this.height * this.sizeMultiplier
|
||||||
|
},
|
||||||
dateFormat() {
|
dateFormat() {
|
||||||
return this.store.state.serverSettings.dateFormat
|
return this.store.state.serverSettings.dateFormat
|
||||||
},
|
},
|
||||||
labelFontSize() {
|
labelFontSize() {
|
||||||
if (this.width < 160) return 0.75
|
if (this.width < 160) return 0.75
|
||||||
return 0.875
|
return 0.9
|
||||||
},
|
},
|
||||||
sizeMultiplier() {
|
sizeMultiplier() {
|
||||||
if (this.bookCoverAspectRatio === 1) return this.width / (120 * 1.6 * 2)
|
return this.store.getters['user/getSizeMultiplier']
|
||||||
return this.width / 240
|
|
||||||
},
|
},
|
||||||
seriesId() {
|
seriesId() {
|
||||||
return this.series ? this.series.id : ''
|
return this.series ? this.series.id : ''
|
||||||
@@ -78,7 +91,7 @@ export default {
|
|||||||
},
|
},
|
||||||
displayTitle() {
|
displayTitle() {
|
||||||
if (this.sortingIgnorePrefix) return this.nameIgnorePrefix || this.title
|
if (this.sortingIgnorePrefix) return this.nameIgnorePrefix || this.title
|
||||||
return this.title
|
return this.title || '\u00A0'
|
||||||
},
|
},
|
||||||
displaySortLine() {
|
displaySortLine() {
|
||||||
switch (this.orderBy) {
|
switch (this.orderBy) {
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<div>
|
||||||
<nuxt-link :to="`/library/${currentLibraryId}/bookshelf?filter=narrators.${$encode(name)}`">
|
<nuxt-link :to="`/library/${currentLibraryId}/bookshelf?filter=narrators.${$encode(name)}`">
|
||||||
<div cy-id="card" :style="{ width: width + 'px', height: height + 'px' }" class="bg-primary box-shadow-book rounded-md relative overflow-hidden">
|
<div cy-id="card" :style="{ width: cardWidth + 'px', height: cardHeight + 'px', fontSize: sizeMultiplier + 'rem' }" class="bg-primary box-shadow-book rounded-md relative overflow-hidden">
|
||||||
<div class="absolute inset-0 w-full h-full flex items-center justify-center pointer-events-none opacity-40">
|
<div class="absolute inset-0 w-full h-full flex items-center justify-center pointer-events-none opacity-40">
|
||||||
<span class="material-icons-outlined text-[10rem]">record_voice_over</span>
|
<span class="material-icons-outlined text-[10em]">record_voice_over</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Narrator name & num books overlay -->
|
<!-- Narrator name & num books overlay -->
|
||||||
<div class="absolute bottom-0 left-0 w-full py-1 bg-black bg-opacity-60 px-2">
|
<div class="absolute bottom-0 left-0 w-full py-1e bg-black bg-opacity-60 px-2e">
|
||||||
<p cy-id="name" class="text-center font-semibold truncate text-gray-200" :style="{ fontSize: sizeMultiplier * 0.75 + 'rem' }">{{ name }}</p>
|
<p cy-id="name" class="text-center font-semibold truncate text-gray-200" :style="{ fontSize: 0.75 + 'em' }">{{ name }}</p>
|
||||||
<p cy-id="numBooks" class="text-center text-gray-200" :style="{ fontSize: sizeMultiplier * 0.65 + 'rem' }">{{ numBooks }} Book{{ numBooks === 1 ? '' : 's' }}</p>
|
<p cy-id="numBooks" class="text-center text-gray-200" :style="{ fontSize: 0.65 + 'em' }">{{ numBooks }} Book{{ numBooks === 1 ? '' : 's' }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -21,23 +23,22 @@ export default {
|
|||||||
type: Object,
|
type: Object,
|
||||||
default: () => {}
|
default: () => {}
|
||||||
},
|
},
|
||||||
width: {
|
width: Number,
|
||||||
type: Number,
|
|
||||||
default: 150
|
|
||||||
},
|
|
||||||
height: {
|
height: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 100
|
default: 100
|
||||||
},
|
|
||||||
sizeMultiplier: {
|
|
||||||
type: Number,
|
|
||||||
default: 1
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {}
|
return {}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
cardWidth() {
|
||||||
|
return this.cardHeight * 1.5
|
||||||
|
},
|
||||||
|
cardHeight() {
|
||||||
|
return this.height * this.sizeMultiplier
|
||||||
|
},
|
||||||
name() {
|
name() {
|
||||||
return this.narrator?.name || ''
|
return this.narrator?.name || ''
|
||||||
},
|
},
|
||||||
@@ -49,6 +50,9 @@ export default {
|
|||||||
},
|
},
|
||||||
currentLibraryId() {
|
currentLibraryId() {
|
||||||
return this.$store.state.libraries.currentLibraryId
|
return this.$store.state.libraries.currentLibraryId
|
||||||
|
},
|
||||||
|
sizeMultiplier() {
|
||||||
|
return this.$store.getters['user/getSizeMultiplier']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {}
|
methods: {}
|
||||||
|
|||||||
@@ -37,12 +37,12 @@
|
|||||||
<span class="material-icons text-2xl">arrow_left</span>
|
<span class="material-icons text-2xl">arrow_left</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<span class="font-normal block truncate">Back</span>
|
<span class="font-normal block truncate">{{ $strings.ButtonBack }}</span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="!sublistItems.length" class="text-gray-400 select-none relative px-2" role="option">
|
<li v-if="!sublistItems.length" class="text-gray-400 select-none relative px-2" role="option">
|
||||||
<div class="flex items-center justify-center">
|
<div class="flex items-center justify-center">
|
||||||
<span class="font-normal block truncate py-2">No {{ sublist }}</span>
|
<span class="font-normal block truncate py-2">{{ $getString('LabelLibraryFilterSublistEmpty', [selectedSublistText]) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<template v-for="item in sublistItems">
|
<template v-for="item in sublistItems">
|
||||||
@@ -89,6 +89,9 @@ export default {
|
|||||||
this.$emit('input', val)
|
this.$emit('input', val)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
userIsAdminOrUp() {
|
||||||
|
return this.$store.getters['user/getIsAdminOrUp']
|
||||||
|
},
|
||||||
libraryMediaType() {
|
libraryMediaType() {
|
||||||
return this.$store.getters['libraries/getCurrentLibraryMediaType']
|
return this.$store.getters['libraries/getCurrentLibraryMediaType']
|
||||||
},
|
},
|
||||||
@@ -106,31 +109,37 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelGenre,
|
text: this.$strings.LabelGenre,
|
||||||
|
textPlural: this.$strings.LabelGenres,
|
||||||
value: 'genres',
|
value: 'genres',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelTag,
|
text: this.$strings.LabelTag,
|
||||||
|
textPlural: this.$strings.LabelTags,
|
||||||
value: 'tags',
|
value: 'tags',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelAuthor,
|
text: this.$strings.LabelAuthor,
|
||||||
|
textPlural: this.$strings.LabelAuthors,
|
||||||
value: 'authors',
|
value: 'authors',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelNarrator,
|
text: this.$strings.LabelNarrator,
|
||||||
|
textPlural: this.$strings.LabelNarrators,
|
||||||
value: 'narrators',
|
value: 'narrators',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelPublisher,
|
text: this.$strings.LabelPublisher,
|
||||||
|
textPlural: this.$strings.LabelPublishers,
|
||||||
value: 'publishers',
|
value: 'publishers',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelLanguage,
|
text: this.$strings.LabelLanguage,
|
||||||
|
textPlural: this.$strings.LabelLanguages,
|
||||||
value: 'languages',
|
value: 'languages',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
@@ -142,43 +151,50 @@ export default {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
bookItems() {
|
bookItems() {
|
||||||
return [
|
const items = [
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelAll,
|
text: this.$strings.LabelAll,
|
||||||
value: 'all'
|
value: 'all'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelGenre,
|
text: this.$strings.LabelGenre,
|
||||||
|
textPlural: this.$strings.LabelGenres,
|
||||||
value: 'genres',
|
value: 'genres',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelTag,
|
text: this.$strings.LabelTag,
|
||||||
|
textPlural: this.$strings.LabelTags,
|
||||||
value: 'tags',
|
value: 'tags',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelSeries,
|
text: this.$strings.LabelSeries,
|
||||||
|
textPlural: this.$strings.LabelSeries,
|
||||||
value: 'series',
|
value: 'series',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelAuthor,
|
text: this.$strings.LabelAuthor,
|
||||||
|
textPlural: this.$strings.LabelAuthors,
|
||||||
value: 'authors',
|
value: 'authors',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelNarrator,
|
text: this.$strings.LabelNarrator,
|
||||||
|
textPlural: this.$strings.LabelNarrators,
|
||||||
value: 'narrators',
|
value: 'narrators',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelPublisher,
|
text: this.$strings.LabelPublisher,
|
||||||
|
textPlural: this.$strings.LabelPublishers,
|
||||||
value: 'publishers',
|
value: 'publishers',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelLanguage,
|
text: this.$strings.LabelLanguage,
|
||||||
|
textPlural: this.$strings.LabelLanguages,
|
||||||
value: 'languages',
|
value: 'languages',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
@@ -218,6 +234,14 @@ export default {
|
|||||||
sublist: false
|
sublist: false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
if (this.userIsAdminOrUp) {
|
||||||
|
items.push({
|
||||||
|
text: this.$strings.LabelShareOpen,
|
||||||
|
value: 'share-open',
|
||||||
|
sublist: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return items
|
||||||
},
|
},
|
||||||
podcastItems() {
|
podcastItems() {
|
||||||
return [
|
return [
|
||||||
@@ -227,16 +251,19 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelGenre,
|
text: this.$strings.LabelGenre,
|
||||||
|
textPlural: this.$strings.LabelGenres,
|
||||||
value: 'genres',
|
value: 'genres',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelTag,
|
text: this.$strings.LabelTag,
|
||||||
|
textPlural: this.$strings.LabelTags,
|
||||||
value: 'tags',
|
value: 'tags',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelLanguage,
|
text: this.$strings.LabelLanguage,
|
||||||
|
textPlural: this.$strings.LabelLanguages,
|
||||||
value: 'languages',
|
value: 'languages',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
@@ -255,11 +282,13 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelGenre,
|
text: this.$strings.LabelGenre,
|
||||||
|
textPlural: this.$strings.LabelGenres,
|
||||||
value: 'genres',
|
value: 'genres',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: this.$strings.LabelTag,
|
text: this.$strings.LabelTag,
|
||||||
|
textPlural: this.$strings.LabelTags,
|
||||||
value: 'tags',
|
value: 'tags',
|
||||||
sublist: true
|
sublist: true
|
||||||
},
|
},
|
||||||
@@ -279,6 +308,13 @@ export default {
|
|||||||
selectedItemSublist() {
|
selectedItemSublist() {
|
||||||
return this.selected?.includes('.') ? this.selected.split('.')[0] : null
|
return this.selected?.includes('.') ? this.selected.split('.')[0] : null
|
||||||
},
|
},
|
||||||
|
selectedSublistText() {
|
||||||
|
if (!this.sublist) {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
const sublistItem = this.selectItems.find((i) => i.value === this.sublist)
|
||||||
|
return sublistItem?.textPlural || sublistItem?.text || ''
|
||||||
|
},
|
||||||
selectedText() {
|
selectedText() {
|
||||||
if (!this.selected) return ''
|
if (!this.selected) return ''
|
||||||
const parts = this.selected.split('.')
|
const parts = this.selected.split('.')
|
||||||
|
|||||||
@@ -80,8 +80,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="w-full md:w-1/3">
|
<div class="w-full md:w-1/3">
|
||||||
<p class="font-semibold uppercase text-xs text-gray-400 tracking-wide mb-2 mt-6 md:mt-0">{{ $strings.LabelUser }}</p>
|
<p v-if="!isMediaItemShareSession" class="font-semibold uppercase text-xs text-gray-400 tracking-wide mb-2 mt-6 md:mt-0">{{ $strings.LabelUser }}</p>
|
||||||
<p class="mb-1 text-xs">{{ _session.userId }}</p>
|
<p v-if="!isMediaItemShareSession" class="mb-1 text-xs">{{ _session.userId }}</p>
|
||||||
|
|
||||||
<p class="font-semibold uppercase text-xs text-gray-400 tracking-wide mt-6 mb-2">{{ $strings.LabelMediaPlayer }}</p>
|
<p class="font-semibold uppercase text-xs text-gray-400 tracking-wide mt-6 mb-2">{{ $strings.LabelMediaPlayer }}</p>
|
||||||
<p class="mb-1">{{ playMethodName }}</p>
|
<p class="mb-1">{{ playMethodName }}</p>
|
||||||
@@ -99,8 +99,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<ui-btn v-if="!isOpenSession" small color="error" @click.stop="deleteSessionClick">{{ $strings.ButtonDelete }}</ui-btn>
|
<ui-btn v-if="!isOpenSession && !isMediaItemShareSession" small color="error" @click.stop="deleteSessionClick">{{ $strings.ButtonDelete }}</ui-btn>
|
||||||
<ui-btn v-else small color="error" @click.stop="closeSessionClick">Close Open Session</ui-btn>
|
<ui-btn v-else-if="!isMediaItemShareSession" small color="error" @click.stop="closeSessionClick">Close Open Session</ui-btn>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</modals-modal>
|
</modals-modal>
|
||||||
@@ -166,6 +166,9 @@ export default {
|
|||||||
},
|
},
|
||||||
isOpenSession() {
|
isOpenSession() {
|
||||||
return !!this._session.open
|
return !!this._session.open
|
||||||
|
},
|
||||||
|
isMediaItemShareSession() {
|
||||||
|
return this._session.mediaPlayer === 'web-share'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -0,0 +1,204 @@
|
|||||||
|
<template>
|
||||||
|
<modals-modal ref="modal" v-model="show" name="share" :width="600" :height="'unset'" :processing="processing">
|
||||||
|
<template #outer>
|
||||||
|
<div class="absolute top-0 left-0 p-5 w-2/3 overflow-hidden">
|
||||||
|
<p class="text-3xl text-white truncate">{{ $strings.LabelShare }}</p>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<div class="px-6 py-8 w-full text-sm rounded-lg bg-bg shadow-lg border border-black-300 overflow-y-auto overflow-x-hidden" style="max-height: 80vh">
|
||||||
|
<div class="absolute top-0 right-0 p-4">
|
||||||
|
<ui-tooltip :text="$strings.LabelClickForMoreInfo" class="inline-flex ml-2">
|
||||||
|
<a href="https://www.audiobookshelf.org/guides/media-item-shares" target="_blank" class="inline-flex">
|
||||||
|
<span class="material-icons text-xl w-5 text-gray-200">help_outline</span>
|
||||||
|
</a>
|
||||||
|
</ui-tooltip>
|
||||||
|
</div>
|
||||||
|
<template v-if="currentShare">
|
||||||
|
<div class="w-full py-2">
|
||||||
|
<label class="px-1 text-sm font-semibold block">{{ $strings.LabelShareURL }}</label>
|
||||||
|
<ui-text-input v-model="currentShareUrl" show-copy readonly class="text-base h-10" />
|
||||||
|
</div>
|
||||||
|
<div class="w-full py-2 px-1">
|
||||||
|
<p v-if="currentShare.expiresAt" class="text-base">{{ $getString('MessageShareExpiresIn', [currentShareTimeRemaining]) }}</p>
|
||||||
|
<p v-else>{{ $strings.LabelPermanent }}</p>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<div class="flex flex-col sm:flex-row items-center justify-between space-y-4 sm:space-y-0 sm:space-x-4 mb-4">
|
||||||
|
<div class="w-full sm:w-48">
|
||||||
|
<label class="px-1 text-sm font-semibold block">{{ $strings.LabelSlug }}</label>
|
||||||
|
<ui-text-input v-model="newShareSlug" class="text-base h-10" />
|
||||||
|
</div>
|
||||||
|
<div class="flex-grow" />
|
||||||
|
<div class="w-full sm:w-80">
|
||||||
|
<label class="px-1 text-sm font-semibold block">{{ $strings.LabelDuration }}</label>
|
||||||
|
<div class="inline-flex items-center space-x-2">
|
||||||
|
<div>
|
||||||
|
<ui-icon-btn icon="remove" :size="10" @click="clickMinus" />
|
||||||
|
</div>
|
||||||
|
<ui-text-input v-model="newShareDuration" type="number" text-center no-spinner class="text-center max-w-12 min-w-12 h-10 text-base" />
|
||||||
|
<div>
|
||||||
|
<ui-icon-btn icon="add" :size="10" @click="clickPlus" />
|
||||||
|
</div>
|
||||||
|
<div class="w-28">
|
||||||
|
<ui-dropdown v-model="shareDurationUnit" :items="durationUnits" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p class="text-sm text-gray-300 py-1 px-1" v-html="$getString('MessageShareURLWillBe', [demoShareUrl])" />
|
||||||
|
<p class="text-sm text-gray-300 py-1 px-1" v-html="$getString('MessageShareExpirationWillBe', [expirationDateString])" />
|
||||||
|
</template>
|
||||||
|
<div class="flex items-center pt-6">
|
||||||
|
<div class="flex-grow" />
|
||||||
|
<ui-btn v-if="currentShare" color="error" small @click="deleteShare">{{ $strings.ButtonDelete }}</ui-btn>
|
||||||
|
<ui-btn v-if="!currentShare" color="success" small @click="openShare">{{ $strings.ButtonShare }}</ui-btn>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</modals-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
processing: false,
|
||||||
|
newShareSlug: '',
|
||||||
|
newShareDuration: 0,
|
||||||
|
currentShare: null,
|
||||||
|
shareDurationUnit: 'minutes',
|
||||||
|
durationUnits: [
|
||||||
|
{
|
||||||
|
text: this.$strings.LabelMinutes,
|
||||||
|
value: 'minutes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: this.$strings.LabelHours,
|
||||||
|
value: 'hours'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: this.$strings.LabelDays,
|
||||||
|
value: 'days'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
show: {
|
||||||
|
handler(newVal) {
|
||||||
|
if (newVal) {
|
||||||
|
this.init()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
show: {
|
||||||
|
get() {
|
||||||
|
return this.$store.state.globals.showShareModal
|
||||||
|
},
|
||||||
|
set(val) {
|
||||||
|
this.$store.commit('globals/setShowShareModal', val)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mediaItemShare() {
|
||||||
|
return this.$store.state.globals.selectedMediaItemShare
|
||||||
|
},
|
||||||
|
libraryItem() {
|
||||||
|
return this.$store.state.selectedLibraryItem
|
||||||
|
},
|
||||||
|
user() {
|
||||||
|
return this.$store.state.user.user
|
||||||
|
},
|
||||||
|
demoShareUrl() {
|
||||||
|
return `${window.origin}/share/${this.newShareSlug}`
|
||||||
|
},
|
||||||
|
currentShareUrl() {
|
||||||
|
if (!this.currentShare) return ''
|
||||||
|
return `${window.origin}/share/${this.currentShare.slug}`
|
||||||
|
},
|
||||||
|
currentShareTimeRemaining() {
|
||||||
|
if (!this.currentShare) return 'Error'
|
||||||
|
if (!this.currentShare.expiresAt) return this.$strings.LabelPermanent
|
||||||
|
const msRemaining = new Date(this.currentShare.expiresAt).valueOf() - Date.now()
|
||||||
|
if (msRemaining <= 0) return 'Expired'
|
||||||
|
return this.$elapsedPrettyExtended(msRemaining / 1000, true, false)
|
||||||
|
},
|
||||||
|
expireDurationSeconds() {
|
||||||
|
let shareDuration = Number(this.newShareDuration)
|
||||||
|
if (!shareDuration || isNaN(shareDuration)) return 0
|
||||||
|
return this.newShareDuration * (this.shareDurationUnit === 'minutes' ? 60 : this.shareDurationUnit === 'hours' ? 3600 : 86400)
|
||||||
|
},
|
||||||
|
expirationDateString() {
|
||||||
|
if (!this.expireDurationSeconds) return this.$strings.LabelPermanent
|
||||||
|
const dateMs = Date.now() + this.expireDurationSeconds * 1000
|
||||||
|
return this.$formatDatetime(dateMs, this.$store.state.serverSettings.dateFormat, this.$store.state.serverSettings.timeFormat)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
clickPlus() {
|
||||||
|
this.newShareDuration++
|
||||||
|
},
|
||||||
|
clickMinus() {
|
||||||
|
if (this.newShareDuration > 0) {
|
||||||
|
this.newShareDuration--
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deleteShare() {
|
||||||
|
if (!this.currentShare) return
|
||||||
|
this.processing = true
|
||||||
|
this.$axios
|
||||||
|
.$delete(`/api/share/mediaitem/${this.currentShare.id}`)
|
||||||
|
.then(() => {
|
||||||
|
this.currentShare = null
|
||||||
|
this.$emit('removed')
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error('deleteShare', error)
|
||||||
|
let errorMsg = error.response?.data || 'Failed to delete share'
|
||||||
|
this.$toast.error(errorMsg)
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
this.processing = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openShare() {
|
||||||
|
if (!this.newShareSlug) {
|
||||||
|
this.$toast.error('Slug is required')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const payload = {
|
||||||
|
slug: this.newShareSlug,
|
||||||
|
mediaItemType: 'book',
|
||||||
|
mediaItemId: this.libraryItem.media.id,
|
||||||
|
expiresAt: this.expireDurationSeconds ? Date.now() + this.expireDurationSeconds * 1000 : 0
|
||||||
|
}
|
||||||
|
this.processing = true
|
||||||
|
this.$axios
|
||||||
|
.$post(`/api/share/mediaitem`, payload)
|
||||||
|
.then((data) => {
|
||||||
|
this.currentShare = data
|
||||||
|
this.$emit('opened', data)
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error('openShare', error)
|
||||||
|
let errorMsg = error.response?.data || 'Failed to share item'
|
||||||
|
this.$toast.error(errorMsg)
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
this.processing = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
init() {
|
||||||
|
this.newShareSlug = this.$randomId(10)
|
||||||
|
if (this.mediaItemShare) {
|
||||||
|
this.currentShare = { ...this.mediaItemShare }
|
||||||
|
} else {
|
||||||
|
this.currentShare = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -6,7 +6,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div class="px-8 py-6 w-full rounded-lg bg-bg shadow-lg border border-black-300 relative overflow-y-scroll" style="max-height: 80vh">
|
<div class="px-8 py-6 w-full rounded-lg bg-bg shadow-lg border border-black-300 relative overflow-y-scroll" style="max-height: 80vh">
|
||||||
<p class="text-xl font-bold pb-4">Changelog v{{ currentVersionNumber }}</p>
|
<p class="text-xl font-bold pb-4">
|
||||||
|
Changelog <a :href="currentTagUrl" target="_blank" class="hover:underline">v{{ currentVersionNumber }}</a> ({{ currentVersionPubDate }})
|
||||||
|
</p>
|
||||||
<div class="custom-text" v-html="compiledMarkedown" />
|
<div class="custom-text" v-html="compiledMarkedown" />
|
||||||
</div>
|
</div>
|
||||||
</modals-modal>
|
</modals-modal>
|
||||||
@@ -18,17 +20,9 @@ import { marked } from '@/static/libs/marked/index.js'
|
|||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
value: Boolean,
|
value: Boolean,
|
||||||
changelog: String,
|
versionData: {
|
||||||
currentVersion: String
|
type: Object,
|
||||||
},
|
default: () => {}
|
||||||
watch: {
|
|
||||||
show: {
|
|
||||||
immediate: true,
|
|
||||||
handler(newVal) {
|
|
||||||
if (newVal) {
|
|
||||||
this.init()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -40,16 +34,27 @@ export default {
|
|||||||
this.$emit('input', val)
|
this.$emit('input', val)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
dateFormat() {
|
||||||
|
return this.$store.state.serverSettings.dateFormat
|
||||||
|
},
|
||||||
|
changelog() {
|
||||||
|
return this.versionData?.currentVersionChangelog || 'No Changelog Available'
|
||||||
|
},
|
||||||
compiledMarkedown() {
|
compiledMarkedown() {
|
||||||
return marked.parse(this.changelog, { gfm: true, breaks: true })
|
return marked.parse(this.changelog, { gfm: true, breaks: true })
|
||||||
},
|
},
|
||||||
|
currentVersionPubDate() {
|
||||||
|
if (!this.versionData?.currentVersionPubDate) return 'Unknown release date'
|
||||||
|
return `${this.$formatDate(this.versionData.currentVersionPubDate, this.dateFormat)}`
|
||||||
|
},
|
||||||
|
currentTagUrl() {
|
||||||
|
return this.versionData?.currentTagUrl
|
||||||
|
},
|
||||||
currentVersionNumber() {
|
currentVersionNumber() {
|
||||||
return this.currentVersion
|
return this.$config.version
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {},
|
||||||
init() {}
|
|
||||||
},
|
|
||||||
mounted() {}
|
mounted() {}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -2,11 +2,8 @@
|
|||||||
<div class="w-full h-full overflow-hidden overflow-y-auto px-4 py-6">
|
<div class="w-full h-full overflow-hidden overflow-y-auto px-4 py-6">
|
||||||
<p class="text-xl font-semibold mb-2">{{ $strings.HeaderAudiobookTools }}</p>
|
<p class="text-xl font-semibold mb-2">{{ $strings.HeaderAudiobookTools }}</p>
|
||||||
|
|
||||||
<!-- alert for windows install -->
|
|
||||||
<widgets-alert v-if="isWindowsInstall" type="warning" class="my-8 text-base">Not supported for the Windows install yet</widgets-alert>
|
|
||||||
|
|
||||||
<!-- Merge to m4b -->
|
<!-- Merge to m4b -->
|
||||||
<div v-if="showM4bDownload && !isWindowsInstall" class="w-full border border-black-200 p-4 my-8">
|
<div v-if="showM4bDownload" class="w-full border border-black-200 p-4 my-8">
|
||||||
<div class="flex flex-wrap items-center">
|
<div class="flex flex-wrap items-center">
|
||||||
<div>
|
<div>
|
||||||
<p class="text-lg">{{ $strings.LabelToolsMakeM4b }}</p>
|
<p class="text-lg">{{ $strings.LabelToolsMakeM4b }}</p>
|
||||||
@@ -23,7 +20,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Embed Metadata -->
|
<!-- Embed Metadata -->
|
||||||
<div v-if="mediaTracks.length && !isWindowsInstall" class="w-full border border-black-200 p-4 my-8">
|
<div v-if="mediaTracks.length" class="w-full border border-black-200 p-4 my-8">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div>
|
<div>
|
||||||
<p class="text-lg">{{ $strings.LabelToolsEmbedMetadata }}</p>
|
<p class="text-lg">{{ $strings.LabelToolsEmbedMetadata }}</p>
|
||||||
@@ -111,12 +108,6 @@ export default {
|
|||||||
},
|
},
|
||||||
isEncodeTaskRunning() {
|
isEncodeTaskRunning() {
|
||||||
return this.encodeTask && !this.encodeTask?.isFinished
|
return this.encodeTask && !this.encodeTask?.isFinished
|
||||||
},
|
|
||||||
isWindowsInstall() {
|
|
||||||
return this.Source == 'windows'
|
|
||||||
},
|
|
||||||
Source() {
|
|
||||||
return this.$store.state.Source
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<controls-volume-control ref="volumeControl" v-model="volume" @input="setVolume" class="mx-2 hidden sm:block" />
|
<controls-volume-control ref="volumeControl" v-model="volume" @input="setVolume" class="mx-2 hidden sm:block" />
|
||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
|
|
||||||
<ui-tooltip direction="top" :text="$strings.LabelSleepTimer">
|
<ui-tooltip v-if="!hideSleepTimer" direction="top" :text="$strings.LabelSleepTimer">
|
||||||
<button :aria-label="$strings.LabelSleepTimer" class="text-gray-300 hover:text-white mx-1 lg:mx-2" @mousedown.prevent @mouseup.prevent @click.stop="$emit('showSleepTimer')">
|
<button :aria-label="$strings.LabelSleepTimer" class="text-gray-300 hover:text-white mx-1 lg:mx-2" @mousedown.prevent @mouseup.prevent @click.stop="$emit('showSleepTimer')">
|
||||||
<span v-if="!sleepTimerSet" class="material-icons text-2xl">snooze</span>
|
<span v-if="!sleepTimerSet" class="material-icons text-2xl">snooze</span>
|
||||||
<div v-else class="flex items-center">
|
<div v-else class="flex items-center">
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
|
|
||||||
<ui-tooltip v-if="!isPodcast" direction="top" :text="$strings.LabelViewBookmarks">
|
<ui-tooltip v-if="!isPodcast && !hideBookmarks" direction="top" :text="$strings.LabelViewBookmarks">
|
||||||
<button :aria-label="$strings.LabelViewBookmarks" class="text-gray-300 hover:text-white mx-1 lg:mx-2" @mousedown.prevent @mouseup.prevent @click.stop="$emit('showBookmarks')">
|
<button :aria-label="$strings.LabelViewBookmarks" class="text-gray-300 hover:text-white mx-1 lg:mx-2" @mousedown.prevent @mouseup.prevent @click.stop="$emit('showBookmarks')">
|
||||||
<span class="material-icons text-2xl">{{ bookmarks.length ? 'bookmarks' : 'bookmark_border' }}</span>
|
<span class="material-icons text-2xl">{{ bookmarks.length ? 'bookmarks' : 'bookmark_border' }}</span>
|
||||||
</button>
|
</button>
|
||||||
@@ -52,8 +52,8 @@
|
|||||||
<p ref="currentTimestamp" class="font-mono text-xxs sm:text-sm text-gray-100 pointer-events-auto">00:00:00</p>
|
<p ref="currentTimestamp" class="font-mono text-xxs sm:text-sm text-gray-100 pointer-events-auto">00:00:00</p>
|
||||||
<p class="font-mono text-sm hidden sm:block text-gray-100 pointer-events-auto"> / {{ progressPercent }}%</p>
|
<p class="font-mono text-sm hidden sm:block text-gray-100 pointer-events-auto"> / {{ progressPercent }}%</p>
|
||||||
<div class="flex-grow" />
|
<div class="flex-grow" />
|
||||||
<p class="text-xs sm:text-sm text-gray-300 pt-0.5">
|
<p class="text-xs sm:text-sm text-gray-300 pt-0.5 px-2 truncate">
|
||||||
{{ currentChapterName }} <span v-if="useChapterTrack" class="text-xs text-gray-400"> ({{ currentChapterIndex + 1 }} of {{ chapters.length }})</span>
|
{{ currentChapterName }} <span v-if="useChapterTrack" class="text-xs text-gray-400"> ({{ $getString('LabelPlayerChapterNumberMarker', [currentChapterIndex + 1, chapters.length]) }})</span>
|
||||||
</p>
|
</p>
|
||||||
<div class="flex-grow" />
|
<div class="flex-grow" />
|
||||||
<p class="font-mono text-xxs sm:text-sm text-gray-100 pointer-events-auto">{{ timeRemainingPretty }}</p>
|
<p class="font-mono text-xxs sm:text-sm text-gray-100 pointer-events-auto">{{ timeRemainingPretty }}</p>
|
||||||
@@ -78,7 +78,9 @@ export default {
|
|||||||
},
|
},
|
||||||
sleepTimerSet: Boolean,
|
sleepTimerSet: Boolean,
|
||||||
sleepTimerRemaining: Number,
|
sleepTimerRemaining: Number,
|
||||||
isPodcast: Boolean
|
isPodcast: Boolean,
|
||||||
|
hideBookmarks: Boolean,
|
||||||
|
hideSleepTimer: Boolean
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="absolute top-0 left-0 right-0 w-full h-36 bg-gradient-to-t from-transparent via-black-500 to-black-700 opacity-90 pointer-events-none" />
|
<div class="absolute top-0 left-0 right-0 w-full h-36 bg-gradient-to-t from-transparent via-black-500 to-black-700 opacity-90 pointer-events-none" />
|
||||||
<div ref="content" class="relative text-white" :style="{ height: modalHeight, width: modalWidth }" v-click-outside="clickedOutside">
|
<div ref="content" class="relative text-white" :style="{ height: modalHeight, width: modalWidth }" v-click-outside="clickedOutside">
|
||||||
<div class="px-4 w-full text-sm py-6 rounded-lg bg-bg shadow-lg border border-black-300">
|
<div class="px-4 w-full text-sm py-6 rounded-lg bg-bg shadow-lg border border-black-300">
|
||||||
<p class="text-lg mb-6 mt-2 px-1" v-html="message" />
|
<p id="confirm-prompt-message" class="text-lg mb-6 mt-2 px-1" v-html="message" />
|
||||||
|
|
||||||
<ui-checkbox v-if="checkboxLabel" v-model="checkboxValue" checkbox-bg="bg" :label="checkboxLabel" label-class="pl-2 text-base" class="mb-6 px-1" />
|
<ui-checkbox v-if="checkboxLabel" v-model="checkboxValue" checkbox-bg="bg" :label="checkboxLabel" label-class="pl-2 text-base" class="mb-6 px-1" />
|
||||||
|
|
||||||
@@ -132,3 +132,13 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#confirm-prompt-message code {
|
||||||
|
font-size: 1rem;
|
||||||
|
border-radius: 6px;
|
||||||
|
background-color: rgb(82, 82, 82);
|
||||||
|
color: white;
|
||||||
|
padding: 2px 4px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ export default {
|
|||||||
ebookLocation: this.page,
|
ebookLocation: this.page,
|
||||||
ebookProgress: Math.max(0, Math.min(1, (Number(this.page) - 1) / Number(this.numPages)))
|
ebookProgress: Math.max(0, Math.min(1, (Number(this.page) - 1) / Number(this.numPages)))
|
||||||
}
|
}
|
||||||
this.$axios.$patch(`/api/me/progress/${this.libraryItemId}`, payload).catch((error) => {
|
this.$axios.$patch(`/api/me/progress/${this.libraryItemId}`, payload, { progress: false }).catch((error) => {
|
||||||
console.error('ComicReader.updateProgress failed:', error)
|
console.error('ComicReader.updateProgress failed:', error)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -46,7 +46,8 @@ export default {
|
|||||||
font: 'serif',
|
font: 'serif',
|
||||||
fontScale: 100,
|
fontScale: 100,
|
||||||
lineSpacing: 115,
|
lineSpacing: 115,
|
||||||
spread: 'auto'
|
spread: 'auto',
|
||||||
|
textStroke: 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -109,11 +110,14 @@ export default {
|
|||||||
|
|
||||||
const fontScale = this.ereaderSettings.fontScale / 100
|
const fontScale = this.ereaderSettings.fontScale / 100
|
||||||
|
|
||||||
|
const textStroke = this.ereaderSettings.textStroke / 100
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'*': {
|
'*': {
|
||||||
color: `${fontColor}!important`,
|
color: `${fontColor}!important`,
|
||||||
'background-color': `${backgroundColor}!important`,
|
'background-color': `${backgroundColor}!important`,
|
||||||
'line-height': lineSpacing * fontScale + 'rem!important'
|
'line-height': lineSpacing * fontScale + 'rem!important',
|
||||||
|
'-webkit-text-stroke': textStroke + 'px ' + fontColor + '!important'
|
||||||
},
|
},
|
||||||
a: {
|
a: {
|
||||||
color: `${fontColor}!important`
|
color: `${fontColor}!important`
|
||||||
@@ -195,7 +199,7 @@ export default {
|
|||||||
*/
|
*/
|
||||||
updateProgress(payload) {
|
updateProgress(payload) {
|
||||||
if (!this.keepProgress) return
|
if (!this.keepProgress) return
|
||||||
this.$axios.$patch(`/api/me/progress/${this.libraryItemId}`, payload).catch((error) => {
|
this.$axios.$patch(`/api/me/progress/${this.libraryItemId}`, payload, { progress: false }).catch((error) => {
|
||||||
console.error('EpubReader.updateProgress failed:', error)
|
console.error('EpubReader.updateProgress failed:', error)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -23,13 +23,10 @@
|
|||||||
<div class="flex items-center justify-center">
|
<div class="flex items-center justify-center">
|
||||||
<div :style="{ width: pdfWidth + 'px', height: pdfHeight + 'px' }" class="overflow-auto">
|
<div :style="{ width: pdfWidth + 'px', height: pdfHeight + 'px' }" class="overflow-auto">
|
||||||
<div v-if="loadedRatio > 0 && loadedRatio < 1" style="background-color: green; color: white; text-align: center" :style="{ width: loadedRatio * 100 + '%' }">{{ Math.floor(loadedRatio * 100) }}%</div>
|
<div v-if="loadedRatio > 0 && loadedRatio < 1" style="background-color: green; color: white; text-align: center" :style="{ width: loadedRatio * 100 + '%' }">{{ Math.floor(loadedRatio * 100) }}%</div>
|
||||||
<pdf ref="pdf" class="m-auto z-10 border border-black border-opacity-20 shadow-md" :src="pdfDocInitParams" :page="page" :rotate="rotate" @progress="progressEvt" @error="error" @num-pages="numPagesLoaded" @link-clicked="page = $event" @loaded="loadedEvt"></pdf>
|
<pdf v-if="pdfDocInitParams" ref="pdf" class="m-auto z-10 border border-black border-opacity-20 shadow-md" :src="pdfDocInitParams" :page="page" :rotate="rotate" @progress="progressEvt" @error="error" @num-pages="numPagesLoaded" @link-clicked="page = $event" @loaded="loadedEvt"></pdf>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="text-center py-2 text-lg">
|
|
||||||
<p>{{ page }} / {{ numPages }}</p>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -57,7 +54,8 @@ export default {
|
|||||||
rotate: 0,
|
rotate: 0,
|
||||||
loadedRatio: 0,
|
loadedRatio: 0,
|
||||||
page: 1,
|
page: 1,
|
||||||
numPages: 0
|
numPages: 0,
|
||||||
|
pdfDocInitParams: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -108,14 +106,6 @@ export default {
|
|||||||
return `/api/items/${this.libraryItemId}/ebook/${this.fileId}`
|
return `/api/items/${this.libraryItemId}/ebook/${this.fileId}`
|
||||||
}
|
}
|
||||||
return `/api/items/${this.libraryItemId}/ebook`
|
return `/api/items/${this.libraryItemId}/ebook`
|
||||||
},
|
|
||||||
pdfDocInitParams() {
|
|
||||||
return {
|
|
||||||
url: this.ebookUrl,
|
|
||||||
httpHeaders: {
|
|
||||||
Authorization: `Bearer ${this.userToken}`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -136,7 +126,7 @@ export default {
|
|||||||
ebookLocation: this.page,
|
ebookLocation: this.page,
|
||||||
ebookProgress: Math.max(0, Math.min(1, (Number(this.page) - 1) / Number(this.numPages)))
|
ebookProgress: Math.max(0, Math.min(1, (Number(this.page) - 1) / Number(this.numPages)))
|
||||||
}
|
}
|
||||||
this.$axios.$patch(`/api/me/progress/${this.libraryItemId}`, payload).catch((error) => {
|
this.$axios.$patch(`/api/me/progress/${this.libraryItemId}`, payload, { progress: false }).catch((error) => {
|
||||||
console.error('EpubReader.updateProgress failed:', error)
|
console.error('EpubReader.updateProgress failed:', error)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -149,6 +139,7 @@ export default {
|
|||||||
this.loadedRatio = progress
|
this.loadedRatio = progress
|
||||||
},
|
},
|
||||||
numPagesLoaded(e) {
|
numPagesLoaded(e) {
|
||||||
|
if (!e) return
|
||||||
this.numPages = e
|
this.numPages = e
|
||||||
},
|
},
|
||||||
prev() {
|
prev() {
|
||||||
@@ -167,12 +158,22 @@ export default {
|
|||||||
resize() {
|
resize() {
|
||||||
this.windowWidth = window.innerWidth
|
this.windowWidth = window.innerWidth
|
||||||
this.windowHeight = window.innerHeight
|
this.windowHeight = window.innerHeight
|
||||||
|
},
|
||||||
|
init() {
|
||||||
|
this.pdfDocInitParams = {
|
||||||
|
url: this.ebookUrl,
|
||||||
|
httpHeaders: {
|
||||||
|
Authorization: `Bearer ${this.userToken}`
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.windowWidth = window.innerWidth
|
this.windowWidth = window.innerWidth
|
||||||
this.windowHeight = window.innerHeight
|
this.windowHeight = window.innerHeight
|
||||||
window.addEventListener('resize', this.resize)
|
window.addEventListener('resize', this.resize)
|
||||||
|
|
||||||
|
this.init()
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
window.removeEventListener('resize', this.resize)
|
window.removeEventListener('resize', this.resize)
|
||||||
|
|||||||
@@ -98,6 +98,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<ui-range-input v-model="ereaderSettings.lineSpacing" :min="100" :max="300" :step="5" @input="settingsUpdated" />
|
<ui-range-input v-model="ereaderSettings.lineSpacing" :min="100" :max="300" :step="5" @input="settingsUpdated" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex items-center mb-4">
|
||||||
|
<div class="w-40">
|
||||||
|
<p class="text-lg">{{ $strings.LabelFontBoldness }}:</p>
|
||||||
|
</div>
|
||||||
|
<ui-range-input v-model="ereaderSettings.textStroke" :min="0" :max="300" :step="5" @input="settingsUpdated" />
|
||||||
|
</div>
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div class="w-40">
|
<div class="w-40">
|
||||||
<p class="text-lg">{{ $strings.LabelLayout }}:</p>
|
<p class="text-lg">{{ $strings.LabelLayout }}:</p>
|
||||||
@@ -130,7 +136,9 @@ export default {
|
|||||||
font: 'serif',
|
font: 'serif',
|
||||||
fontScale: 100,
|
fontScale: 100,
|
||||||
lineSpacing: 115,
|
lineSpacing: 115,
|
||||||
spread: 'auto'
|
fontBoldness: 100,
|
||||||
|
spread: 'auto',
|
||||||
|
textStroke: 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -378,7 +386,12 @@ export default {
|
|||||||
try {
|
try {
|
||||||
const settings = localStorage.getItem('ereaderSettings')
|
const settings = localStorage.getItem('ereaderSettings')
|
||||||
if (settings) {
|
if (settings) {
|
||||||
this.ereaderSettings = JSON.parse(settings)
|
const _ereaderSettings = JSON.parse(settings)
|
||||||
|
for (const key in this.ereaderSettings) {
|
||||||
|
if (_ereaderSettings[key] !== undefined) {
|
||||||
|
this.ereaderSettings[key] = _ereaderSettings[key]
|
||||||
|
}
|
||||||
|
}
|
||||||
this.settingsUpdated()
|
this.settingsUpdated()
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ export default {
|
|||||||
this.$axios
|
this.$axios
|
||||||
.$get('/api/backups')
|
.$get('/api/backups')
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
this.$emit('loaded', data.backupLocation)
|
this.$emit('loaded', data)
|
||||||
this.setBackups(data.backups || [])
|
this.setBackups(data.backups || [])
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<th class="text-left w-16"><span class="px-4">Id</span></th>
|
<th class="text-left w-16"><span class="px-4">Id</span></th>
|
||||||
<th class="text-left">{{ $strings.LabelTitle }}</th>
|
<th class="text-left">{{ $strings.LabelTitle }}</th>
|
||||||
<th class="text-center">{{ $strings.LabelStart }}</th>
|
<th class="text-center">{{ $strings.LabelStart }}</th>
|
||||||
<th class="text-center">{{ $strings.LabelEnd }}</th>
|
<th class="text-center">{{ $strings.LabelDuration }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="chapter in chapters" :key="chapter.id">
|
<tr v-for="chapter in chapters" :key="chapter.id">
|
||||||
<td class="text-left">
|
<td class="text-left">
|
||||||
@@ -27,8 +27,8 @@
|
|||||||
<td class="font-mono text-center hover:underline cursor-pointer" @click.stop="goToTimestamp(chapter.start)">
|
<td class="font-mono text-center hover:underline cursor-pointer" @click.stop="goToTimestamp(chapter.start)">
|
||||||
{{ $secondsToTimestamp(chapter.start) }}
|
{{ $secondsToTimestamp(chapter.start) }}
|
||||||
</td>
|
</td>
|
||||||
<td class="font-mono text-center hover:underline cursor-pointer" @click.stop="goToTimestamp(chapter.start)">
|
<td class="font-mono text-center">
|
||||||
{{ $secondsToTimestamp(chapter.end) }}
|
{{ $secondsToTimestamp(Math.max(0, chapter.end - chapter.start)) }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<div v-else-if="!processing" class="text-center py-8">
|
<div v-else-if="!processing" class="text-center py-8">
|
||||||
<p class="text-lg">No custom metadata providers</p>
|
<p class="text-lg">{{ $strings.LabelNoCustomMetadataProviders }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="processing" class="absolute inset-0 h-full flex items-center justify-center bg-black/40 rounded-md">
|
<div v-if="processing" class="absolute inset-0 h-full flex items-center justify-center bg-black/40 rounded-md">
|
||||||
|
|||||||
@@ -1,12 +1,33 @@
|
|||||||
<template>
|
<template>
|
||||||
<div ref="wrapper" class="relative">
|
<div ref="wrapper" class="relative">
|
||||||
<input :id="inputId" :name="inputName" ref="input" v-model="inputValue" :type="actualType" :step="step" :min="min" :readonly="readonly" :disabled="disabled" :placeholder="placeholder" dir="auto" class="rounded bg-primary text-gray-200 focus:border-gray-300 focus:bg-bg focus:outline-none border border-gray-600 h-full w-full" :class="classList" @keyup="keyup" @change="change" @focus="focused" @blur="blurred" />
|
<input
|
||||||
|
:id="inputId"
|
||||||
|
:name="inputName"
|
||||||
|
ref="input"
|
||||||
|
v-model="inputValue"
|
||||||
|
:type="actualType"
|
||||||
|
:step="step"
|
||||||
|
:min="min"
|
||||||
|
:readonly="readonly"
|
||||||
|
:disabled="disabled"
|
||||||
|
:placeholder="placeholder"
|
||||||
|
dir="auto"
|
||||||
|
class="rounded bg-primary text-gray-200 focus:border-gray-300 focus:bg-bg focus:outline-none border border-gray-600 h-full w-full"
|
||||||
|
:class="classList"
|
||||||
|
@keyup="keyup"
|
||||||
|
@change="change"
|
||||||
|
@focus="focused"
|
||||||
|
@blur="blurred"
|
||||||
|
/>
|
||||||
<div v-if="clearable && inputValue" class="absolute top-0 right-0 h-full px-2 flex items-center justify-center">
|
<div v-if="clearable && inputValue" class="absolute top-0 right-0 h-full px-2 flex items-center justify-center">
|
||||||
<span class="material-icons text-gray-300 cursor-pointer" style="font-size: 1.1rem" @click.stop.prevent="clear">close</span>
|
<span class="material-icons text-gray-300 cursor-pointer" style="font-size: 1.1rem" @click.stop.prevent="clear">close</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="type === 'password' && isHovering" class="absolute top-0 right-0 h-full px-4 flex items-center justify-center">
|
<div v-if="type === 'password' && isHovering" class="absolute top-0 right-0 h-full px-4 flex items-center justify-center">
|
||||||
<span class="material-icons-outlined text-gray-400 cursor-pointer text-lg" @click.stop.prevent="showPassword = !showPassword">{{ !showPassword ? 'visibility' : 'visibility_off' }}</span>
|
<span class="material-icons-outlined text-gray-400 cursor-pointer text-lg" @click.stop.prevent="showPassword = !showPassword">{{ !showPassword ? 'visibility' : 'visibility_off' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-else-if="showCopy" class="absolute top-0 right-0 h-full px-4 flex items-center justify-center">
|
||||||
|
<span class="material-icons-outlined text-gray-400 cursor-pointer text-lg" @click.stop.prevent="copyToClipboard">{{ !hasCopied ? 'content_copy' : 'done' }}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -34,6 +55,7 @@ export default {
|
|||||||
clearable: Boolean,
|
clearable: Boolean,
|
||||||
inputId: String,
|
inputId: String,
|
||||||
inputName: String,
|
inputName: String,
|
||||||
|
showCopy: Boolean,
|
||||||
step: [String, Number],
|
step: [String, Number],
|
||||||
min: [String, Number]
|
min: [String, Number]
|
||||||
},
|
},
|
||||||
@@ -41,7 +63,8 @@ export default {
|
|||||||
return {
|
return {
|
||||||
showPassword: false,
|
showPassword: false,
|
||||||
isHovering: false,
|
isHovering: false,
|
||||||
isFocused: false
|
isFocused: false,
|
||||||
|
hasCopied: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -67,6 +90,15 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
copyToClipboard() {
|
||||||
|
if (this.hasCopied) return
|
||||||
|
this.$copyToClipboard(this.inputValue).then((success) => {
|
||||||
|
this.hasCopied = success
|
||||||
|
setTimeout(() => {
|
||||||
|
this.hasCopied = false
|
||||||
|
}, 2000)
|
||||||
|
})
|
||||||
|
},
|
||||||
clear() {
|
clear() {
|
||||||
this.inputValue = ''
|
this.inputValue = ''
|
||||||
this.$emit('clear')
|
this.$emit('clear')
|
||||||
|
|||||||
@@ -1,112 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="w-full">
|
|
||||||
<div class="flex items-center py-3">
|
|
||||||
<slot />
|
|
||||||
<div class="flex-grow" />
|
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollLeft ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollLeft">
|
|
||||||
<span class="material-icons text-2xl">chevron_left</span>
|
|
||||||
</button>
|
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollRight ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollRight">
|
|
||||||
<span class="material-icons text-2xl">chevron_right</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div ref="slider" class="w-full overflow-y-hidden overflow-x-auto no-scroll" style="scroll-behavior: smooth" @scroll="scrolled">
|
|
||||||
<div class="flex space-x-4" :style="{ height: height + 'px' }">
|
|
||||||
<template v-for="(item, index) in items">
|
|
||||||
<cards-author-card :key="item.id" :ref="`slider-item-${item.id}`" :index="index" :author="item" :height="cardHeight" :width="cardWidth" class="relative" @edit="editAuthor" @hook:updated="setScrollVars" />
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
items: {
|
|
||||||
type: Array,
|
|
||||||
default: () => []
|
|
||||||
},
|
|
||||||
height: {
|
|
||||||
type: Number,
|
|
||||||
default: 192
|
|
||||||
},
|
|
||||||
bookshelfView: {
|
|
||||||
type: Number,
|
|
||||||
default: 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
isScrollable: false,
|
|
||||||
canScrollLeft: false,
|
|
||||||
canScrollRight: false,
|
|
||||||
clientWidth: 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
bookCoverAspectRatio() {
|
|
||||||
return this.$store.getters['libraries/getBookCoverAspectRatio']
|
|
||||||
},
|
|
||||||
cardScaleMulitiplier() {
|
|
||||||
return this.height / 192
|
|
||||||
},
|
|
||||||
cardHeight() {
|
|
||||||
return this.height
|
|
||||||
},
|
|
||||||
cardWidth() {
|
|
||||||
return this.cardHeight / this.bookCoverAspectRatio / 1.25
|
|
||||||
},
|
|
||||||
booksPerPage() {
|
|
||||||
return Math.floor(this.clientWidth / (this.cardWidth + 16))
|
|
||||||
},
|
|
||||||
isSelectionMode() {
|
|
||||||
return this.$store.getters['globals/getIsBatchSelectingMediaItems']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
editAuthor(author) {
|
|
||||||
this.$store.commit('globals/showEditAuthorModal', author)
|
|
||||||
},
|
|
||||||
scrolled() {
|
|
||||||
this.setScrollVars()
|
|
||||||
},
|
|
||||||
scrollRight() {
|
|
||||||
if (!this.canScrollRight) return
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
|
||||||
const maxScrollLeft = slider.scrollWidth - slider.clientWidth
|
|
||||||
|
|
||||||
const newScrollLeft = Math.min(maxScrollLeft, slider.scrollLeft + scrollAmount)
|
|
||||||
slider.scrollLeft = newScrollLeft
|
|
||||||
},
|
|
||||||
scrollLeft() {
|
|
||||||
if (!this.canScrollLeft) return
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
|
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
|
||||||
|
|
||||||
const newScrollLeft = Math.max(0, slider.scrollLeft - scrollAmount)
|
|
||||||
slider.scrollLeft = newScrollLeft
|
|
||||||
},
|
|
||||||
setScrollVars() {
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
const { scrollLeft, scrollWidth, clientWidth } = slider
|
|
||||||
const scrollPercent = (scrollLeft + clientWidth) / scrollWidth
|
|
||||||
|
|
||||||
this.clientWidth = clientWidth
|
|
||||||
this.isScrollable = scrollWidth > clientWidth
|
|
||||||
this.canScrollRight = scrollPercent < 1
|
|
||||||
this.canScrollLeft = scrollLeft > 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
updated() {
|
|
||||||
this.setScrollVars()
|
|
||||||
},
|
|
||||||
mounted() {},
|
|
||||||
beforeDestroy() {}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="rounded-full py-1 bg-primary px-2 border border-black-100 text-center flex items-center box-shadow-md" @mousedown.prevent @mouseup.prevent>
|
<div class="rounded-full py-1 bg-primary px-2 border border-black-100 text-center flex items-center box-shadow-md" @mousedown.prevent @mouseup.prevent>
|
||||||
<span class="material-icons" :class="selectedSizeIndex === 0 ? 'text-gray-400' : 'hover:text-yellow-300 cursor-pointer'" style="font-size: 0.9rem" @mousedown.prevent @click="decreaseSize" aria-label="Decrease Cover Size" role="button">remove</span>
|
<span class="material-icons" :class="selectedSizeIndex === 0 ? 'text-gray-400' : 'hover:text-yellow-300 cursor-pointer'" style="font-size: 0.9rem" @mousedown.prevent @click="decreaseSize" aria-label="Decrease Cover Size" role="button">remove</span>
|
||||||
<p class="px-2 font-mono">{{ bookCoverWidth }}</p>
|
<p class="px-2 font-mono" style="font-size: 1rem">{{ bookCoverWidth }}</p>
|
||||||
<span class="material-icons" :class="selectedSizeIndex === availableSizes.length - 1 ? 'text-gray-400' : 'hover:text-yellow-300 cursor-pointer'" style="font-size: 0.9rem" @mousedown.prevent @click="increaseSize" aria-label="Increase Cover Size" role="button">add</span>
|
<span class="material-icons" :class="selectedSizeIndex === availableSizes.length - 1 ? 'text-gray-400' : 'hover:text-yellow-300 cursor-pointer'" style="font-size: 0.9rem" @mousedown.prevent @click="increaseSize" aria-label="Increase Cover Size" role="button">add</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,161 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="w-full">
|
|
||||||
<div class="flex items-center py-3">
|
|
||||||
<slot />
|
|
||||||
<div class="flex-grow" />
|
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollLeft ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollLeft">
|
|
||||||
<span class="material-icons text-2xl">chevron_left</span>
|
|
||||||
</button>
|
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollRight ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollRight">
|
|
||||||
<span class="material-icons text-2xl">chevron_right</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div ref="slider" class="w-full overflow-y-hidden overflow-x-auto no-scroll" style="scroll-behavior: smooth" @scroll="scrolled">
|
|
||||||
<div class="flex space-x-4" :style="{ height: height + 'px' }">
|
|
||||||
<template v-for="(item, index) in items">
|
|
||||||
<cards-lazy-book-card
|
|
||||||
:key="item.recentEpisode.id"
|
|
||||||
:ref="`slider-episode-${item.recentEpisode.id}`"
|
|
||||||
:index="index"
|
|
||||||
:book-mount="item"
|
|
||||||
:height="cardHeight"
|
|
||||||
:width="cardWidth"
|
|
||||||
:book-cover-aspect-ratio="bookCoverAspectRatio"
|
|
||||||
:bookshelf-view="bookshelfView"
|
|
||||||
:continue-listening-shelf="continueListeningShelf"
|
|
||||||
class="relative"
|
|
||||||
@edit="editEpisode"
|
|
||||||
@editPodcast="editPodcast"
|
|
||||||
@select="selectItem"
|
|
||||||
@hook:updated="setScrollVars"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
items: {
|
|
||||||
type: Array,
|
|
||||||
default: () => []
|
|
||||||
},
|
|
||||||
height: {
|
|
||||||
type: Number,
|
|
||||||
default: 192
|
|
||||||
},
|
|
||||||
bookshelfView: {
|
|
||||||
type: Number,
|
|
||||||
default: 1
|
|
||||||
},
|
|
||||||
continueListeningShelf: Boolean
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
isScrollable: false,
|
|
||||||
canScrollLeft: false,
|
|
||||||
canScrollRight: false,
|
|
||||||
clientWidth: 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
bookCoverAspectRatio() {
|
|
||||||
return this.$store.getters['libraries/getBookCoverAspectRatio']
|
|
||||||
},
|
|
||||||
cardScaleMulitiplier() {
|
|
||||||
return this.height / 192
|
|
||||||
},
|
|
||||||
cardHeight() {
|
|
||||||
return this.height - 40 * this.cardScaleMulitiplier
|
|
||||||
},
|
|
||||||
cardWidth() {
|
|
||||||
return this.cardHeight / this.bookCoverAspectRatio
|
|
||||||
},
|
|
||||||
booksPerPage() {
|
|
||||||
return Math.floor(this.clientWidth / (this.cardWidth + 16))
|
|
||||||
},
|
|
||||||
isSelectionMode() {
|
|
||||||
return this.$store.getters['globals/getIsBatchSelectingMediaItems']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
clearSelectedEntities() {
|
|
||||||
this.updateSelectionMode(false)
|
|
||||||
},
|
|
||||||
editEpisode({ libraryItem, episode }) {
|
|
||||||
this.$store.commit('setSelectedLibraryItem', libraryItem)
|
|
||||||
this.$store.commit('globals/setSelectedEpisode', episode)
|
|
||||||
this.$store.commit('globals/setShowEditPodcastEpisodeModal', true)
|
|
||||||
},
|
|
||||||
editPodcast(libraryItem) {
|
|
||||||
var itemIds = this.items.map((e) => e.id)
|
|
||||||
this.$store.commit('setBookshelfBookIds', itemIds)
|
|
||||||
this.$store.commit('showEditModal', libraryItem)
|
|
||||||
},
|
|
||||||
selectItem(payload) {
|
|
||||||
this.$emit('selectEntity', payload)
|
|
||||||
},
|
|
||||||
itemSelectedEvt() {
|
|
||||||
this.updateSelectionMode(this.isSelectionMode)
|
|
||||||
},
|
|
||||||
updateSelectionMode(val) {
|
|
||||||
const selectedMediaItems = this.$store.state.globals.selectedMediaItems
|
|
||||||
|
|
||||||
this.items.forEach((ent) => {
|
|
||||||
let component = this.$refs[`slider-episode-${ent.recentEpisode.id}`]
|
|
||||||
if (!component || !component.length) return
|
|
||||||
component = component[0]
|
|
||||||
component.setSelectionMode(val)
|
|
||||||
component.selected = selectedMediaItems.some((i) => i.id === ent.id)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
scrolled() {
|
|
||||||
this.setScrollVars()
|
|
||||||
},
|
|
||||||
scrollRight() {
|
|
||||||
if (!this.canScrollRight) return
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
|
||||||
const maxScrollLeft = slider.scrollWidth - slider.clientWidth
|
|
||||||
|
|
||||||
const newScrollLeft = Math.min(maxScrollLeft, slider.scrollLeft + scrollAmount)
|
|
||||||
slider.scrollLeft = newScrollLeft
|
|
||||||
},
|
|
||||||
scrollLeft() {
|
|
||||||
if (!this.canScrollLeft) return
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
|
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
|
||||||
|
|
||||||
const newScrollLeft = Math.max(0, slider.scrollLeft - scrollAmount)
|
|
||||||
slider.scrollLeft = newScrollLeft
|
|
||||||
},
|
|
||||||
setScrollVars() {
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
const { scrollLeft, scrollWidth, clientWidth } = slider
|
|
||||||
const scrollPercent = (scrollLeft + clientWidth) / scrollWidth
|
|
||||||
|
|
||||||
this.clientWidth = clientWidth
|
|
||||||
this.isScrollable = scrollWidth > clientWidth
|
|
||||||
this.canScrollRight = scrollPercent < 1
|
|
||||||
this.canScrollLeft = scrollLeft > 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
updated() {
|
|
||||||
this.setScrollVars()
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.$eventBus.$on('bookshelf_clear_selection', this.clearSelectedEntities)
|
|
||||||
this.$eventBus.$on('item-selected', this.itemSelectedEvt)
|
|
||||||
},
|
|
||||||
beforeDestroy() {
|
|
||||||
this.$eventBus.$off('bookshelf_clear_selection', this.clearSelectedEntities)
|
|
||||||
this.$eventBus.$off('item-selected', this.itemSelectedEvt)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
@@ -1,33 +1,21 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
<div class="flex items-center py-3">
|
<div class="flex items-center py-3e">
|
||||||
<slot />
|
<slot />
|
||||||
<div class="flex-grow" />
|
<div class="flex-grow" />
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollLeft ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollLeft">
|
<button cy-id="leftScrollButton" v-if="isScrollable" class="w-8e h-8e mx-1e flex items-center justify-center rounded-full" :class="canScrollLeft ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollLeft">
|
||||||
<span class="material-icons text-2xl">chevron_left</span>
|
<span class="material-icons" :style="{ fontSize: 1.5 + 'em' }">chevron_left</span>
|
||||||
</button>
|
</button>
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollRight ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollRight">
|
<button cy-id="rightScrollButton" v-if="isScrollable" class="w-8e h-8e mx-1e flex items-center justify-center rounded-full" :class="canScrollRight ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollRight">
|
||||||
<span class="material-icons text-2xl">chevron_right</span>
|
<span class="material-icons" :style="{ fontSize: 1.5 + 'em' }">chevron_right</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div ref="slider" class="w-full overflow-y-hidden overflow-x-auto no-scroll" style="scroll-behavior: smooth" @scroll="scrolled">
|
<div cy-id="slider" ref="slider" class="w-full overflow-y-hidden overflow-x-auto no-scroll" style="scroll-behavior: smooth" @scroll="scrolled">
|
||||||
<div class="flex space-x-4" :style="{ height: height + 'px' }">
|
<div class="flex space-x-4e">
|
||||||
<template v-for="(item, index) in items">
|
<template v-for="(item, index) in items">
|
||||||
<cards-lazy-book-card
|
<div cy-id="item" ref="item" :key="itemKeyFunc(item)">
|
||||||
:key="item.id + '-' + shelfId + '-' + index"
|
<component :is="componentName" :ref="itemRefFunc(item)" :index="index" :[itemPropName]="item" :bookshelf-view="bookshelfView" :continue-listening-shelf="continueListeningShelf" class="relative" @edit="editFunc" @editPodcast="editItem" @select="selectItem" @hook:updated="setScrollVars" />
|
||||||
:ref="`slider-item-${item.id}`"
|
</div>
|
||||||
:index="index"
|
|
||||||
:book-mount="item"
|
|
||||||
:height="cardHeight"
|
|
||||||
:width="cardWidth"
|
|
||||||
:book-cover-aspect-ratio="bookCoverAspectRatio"
|
|
||||||
:bookshelf-view="bookshelfView"
|
|
||||||
:continue-listening-shelf="continueListeningShelf"
|
|
||||||
class="relative"
|
|
||||||
@edit="editItem"
|
|
||||||
@select="selectItem"
|
|
||||||
@hook:updated="setScrollVars"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -41,49 +29,108 @@ export default {
|
|||||||
type: Array,
|
type: Array,
|
||||||
default: () => []
|
default: () => []
|
||||||
},
|
},
|
||||||
height: {
|
|
||||||
type: Number,
|
|
||||||
default: 192
|
|
||||||
},
|
|
||||||
bookshelfView: {
|
bookshelfView: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 1
|
default: 1
|
||||||
},
|
},
|
||||||
shelfId: String,
|
shelfId: {
|
||||||
continueListeningShelf: Boolean
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
continueListeningShelf: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
default: 'book'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isScrollable: false,
|
isScrollable: false,
|
||||||
canScrollLeft: false,
|
canScrollLeft: false,
|
||||||
canScrollRight: false,
|
canScrollRight: false,
|
||||||
clientWidth: 0
|
clientWidth: 0,
|
||||||
|
shelfOptionsByType: {
|
||||||
|
episode: {
|
||||||
|
component: 'cards-lazy-book-card',
|
||||||
|
itemPropName: 'book-mount',
|
||||||
|
itemIdFunc: (item) => item.recentEpisode.id
|
||||||
|
},
|
||||||
|
series: {
|
||||||
|
component: 'cards-lazy-series-card',
|
||||||
|
itemPropName: 'series-mount',
|
||||||
|
itemIdFunc: (item) => item.id
|
||||||
|
},
|
||||||
|
authors: {
|
||||||
|
component: 'cards-author-card',
|
||||||
|
itemPropName: 'author',
|
||||||
|
itemIdFunc: (item) => item.id
|
||||||
|
},
|
||||||
|
narrators: {
|
||||||
|
component: 'cards-narrator-card',
|
||||||
|
itemPropName: 'narrator',
|
||||||
|
itemIdFunc: (item) => item.name
|
||||||
|
},
|
||||||
|
book: {
|
||||||
|
component: 'cards-lazy-book-card',
|
||||||
|
itemPropName: 'book-mount',
|
||||||
|
itemIdFunc: (item) => item.id
|
||||||
|
},
|
||||||
|
podcast: {
|
||||||
|
component: 'cards-lazy-book-card',
|
||||||
|
itemPropName: 'book-mount',
|
||||||
|
itemIdFunc: (item) => item.id
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
bookCoverAspectRatio() {
|
|
||||||
return this.$store.getters['libraries/getBookCoverAspectRatio']
|
|
||||||
},
|
|
||||||
cardScaleMulitiplier() {
|
|
||||||
return this.height / 192
|
|
||||||
},
|
|
||||||
cardHeight() {
|
|
||||||
return this.height - 40 * this.cardScaleMulitiplier
|
|
||||||
},
|
|
||||||
cardWidth() {
|
|
||||||
return this.cardHeight / this.bookCoverAspectRatio
|
|
||||||
},
|
|
||||||
booksPerPage() {
|
|
||||||
return Math.floor(this.clientWidth / (this.cardWidth + 16))
|
|
||||||
},
|
|
||||||
isSelectionMode() {
|
isSelectionMode() {
|
||||||
return this.$store.getters['globals/getIsBatchSelectingMediaItems']
|
return this.$store.getters['globals/getIsBatchSelectingMediaItems']
|
||||||
|
},
|
||||||
|
options() {
|
||||||
|
return this.shelfOptionsByType[this.type]
|
||||||
|
},
|
||||||
|
itemIdFunc() {
|
||||||
|
return this.options.itemIdFunc
|
||||||
|
},
|
||||||
|
itemKeyFunc() {
|
||||||
|
return (item) => this.itemIdFunc(item) + this.shelfId
|
||||||
|
},
|
||||||
|
itemRefFunc() {
|
||||||
|
return (item) => `slider-item-${this.itemIdFunc(item)}`
|
||||||
|
},
|
||||||
|
componentName() {
|
||||||
|
return this.options.component
|
||||||
|
},
|
||||||
|
itemPropName() {
|
||||||
|
return this.options.itemPropName
|
||||||
|
},
|
||||||
|
editFunc() {
|
||||||
|
switch (this.type) {
|
||||||
|
case 'episode':
|
||||||
|
return this.editEpisode
|
||||||
|
case 'authors':
|
||||||
|
return this.editAuthor
|
||||||
|
default:
|
||||||
|
return this.editItem
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clearSelectedEntities() {
|
clearSelectedEntities() {
|
||||||
this.updateSelectionMode(false)
|
this.updateSelectionMode(false)
|
||||||
},
|
},
|
||||||
|
editEpisode({ libraryItem, episode }) {
|
||||||
|
this.$store.commit('setSelectedLibraryItem', libraryItem)
|
||||||
|
this.$store.commit('globals/setSelectedEpisode', episode)
|
||||||
|
this.$store.commit('globals/setShowEditPodcastEpisodeModal', true)
|
||||||
|
},
|
||||||
|
editAuthor(author) {
|
||||||
|
this.$store.commit('globals/showEditAuthorModal', author)
|
||||||
|
},
|
||||||
editItem(libraryItem) {
|
editItem(libraryItem) {
|
||||||
var itemIds = this.items.map((e) => e.id)
|
var itemIds = this.items.map((e) => e.id)
|
||||||
this.$store.commit('setBookshelfBookIds', itemIds)
|
this.$store.commit('setBookshelfBookIds', itemIds)
|
||||||
@@ -97,9 +144,8 @@ export default {
|
|||||||
},
|
},
|
||||||
updateSelectionMode(val) {
|
updateSelectionMode(val) {
|
||||||
const selectedMediaItems = this.$store.state.globals.selectedMediaItems
|
const selectedMediaItems = this.$store.state.globals.selectedMediaItems
|
||||||
|
|
||||||
this.items.forEach((item) => {
|
this.items.forEach((item) => {
|
||||||
let component = this.$refs[`slider-item-${item.id}`]
|
let component = this.$refs[this.itemRefFunc(item)]
|
||||||
if (!component || !component.length) return
|
if (!component || !component.length) return
|
||||||
component = component[0]
|
component = component[0]
|
||||||
component.setSelectionMode(val)
|
component.setSelectionMode(val)
|
||||||
@@ -113,7 +159,7 @@ export default {
|
|||||||
if (!this.canScrollRight) return
|
if (!this.canScrollRight) return
|
||||||
const slider = this.$refs.slider
|
const slider = this.$refs.slider
|
||||||
if (!slider) return
|
if (!slider) return
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
const scrollAmount = this.clientWidth
|
||||||
const maxScrollLeft = slider.scrollWidth - slider.clientWidth
|
const maxScrollLeft = slider.scrollWidth - slider.clientWidth
|
||||||
|
|
||||||
const newScrollLeft = Math.min(maxScrollLeft, slider.scrollLeft + scrollAmount)
|
const newScrollLeft = Math.min(maxScrollLeft, slider.scrollLeft + scrollAmount)
|
||||||
@@ -124,7 +170,7 @@ export default {
|
|||||||
const slider = this.$refs.slider
|
const slider = this.$refs.slider
|
||||||
if (!slider) return
|
if (!slider) return
|
||||||
|
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
const scrollAmount = this.clientWidth
|
||||||
|
|
||||||
const newScrollLeft = Math.max(0, slider.scrollLeft - scrollAmount)
|
const newScrollLeft = Math.max(0, slider.scrollLeft - scrollAmount)
|
||||||
slider.scrollLeft = newScrollLeft
|
slider.scrollLeft = newScrollLeft
|
||||||
@@ -133,11 +179,11 @@ export default {
|
|||||||
const slider = this.$refs.slider
|
const slider = this.$refs.slider
|
||||||
if (!slider) return
|
if (!slider) return
|
||||||
const { scrollLeft, scrollWidth, clientWidth } = slider
|
const { scrollLeft, scrollWidth, clientWidth } = slider
|
||||||
const scrollPercent = (scrollLeft + clientWidth) / scrollWidth
|
const scrollRemaining = Math.abs(scrollLeft + clientWidth - scrollWidth)
|
||||||
|
|
||||||
this.clientWidth = clientWidth
|
this.clientWidth = clientWidth
|
||||||
this.isScrollable = scrollWidth > clientWidth
|
this.isScrollable = scrollWidth > clientWidth
|
||||||
this.canScrollRight = scrollPercent < 1
|
this.canScrollRight = scrollRemaining >= 1
|
||||||
this.canScrollLeft = scrollLeft > 0
|
this.canScrollLeft = scrollLeft > 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -145,12 +191,17 @@ export default {
|
|||||||
this.setScrollVars()
|
this.setScrollVars()
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.setScrollVars()
|
||||||
|
if (['book', 'podcast', 'episode'].includes(this.type)) {
|
||||||
this.$eventBus.$on('bookshelf_clear_selection', this.clearSelectedEntities)
|
this.$eventBus.$on('bookshelf_clear_selection', this.clearSelectedEntities)
|
||||||
this.$eventBus.$on('item-selected', this.itemSelectedEvt)
|
this.$eventBus.$on('item-selected', this.itemSelectedEvt)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
|
if (['book', 'podcast', 'episode'].includes(this.type)) {
|
||||||
this.$eventBus.$off('bookshelf_clear_selection', this.clearSelectedEntities)
|
this.$eventBus.$off('bookshelf_clear_selection', this.clearSelectedEntities)
|
||||||
this.$eventBus.$off('item-selected', this.itemSelectedEvt)
|
this.$eventBus.$off('item-selected', this.itemSelectedEvt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="w-full">
|
|
||||||
<div class="flex items-center py-3">
|
|
||||||
<slot />
|
|
||||||
<div class="flex-grow" />
|
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollLeft ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollLeft">
|
|
||||||
<span class="material-icons text-2xl">chevron_left</span>
|
|
||||||
</button>
|
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollRight ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollRight">
|
|
||||||
<span class="material-icons text-2xl">chevron_right</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div ref="slider" class="w-full overflow-y-hidden overflow-x-auto no-scroll" style="scroll-behavior: smooth" @scroll="scrolled">
|
|
||||||
<div class="flex space-x-4" :style="{ height: height + 'px' }">
|
|
||||||
<template v-for="item in items">
|
|
||||||
<cards-narrator-card :key="item.name" :ref="`slider-item-${item.name}`" :narrator="item" :height="cardHeight" :width="cardWidth" class="relative" @hook:updated="setScrollVars" />
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
items: {
|
|
||||||
type: Array,
|
|
||||||
default: () => []
|
|
||||||
},
|
|
||||||
height: {
|
|
||||||
type: Number,
|
|
||||||
default: 192
|
|
||||||
},
|
|
||||||
bookshelfView: {
|
|
||||||
type: Number,
|
|
||||||
default: 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
isScrollable: false,
|
|
||||||
canScrollLeft: false,
|
|
||||||
canScrollRight: false,
|
|
||||||
clientWidth: 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
cardHeight() {
|
|
||||||
return this.height
|
|
||||||
},
|
|
||||||
cardWidth() {
|
|
||||||
return this.cardHeight * 1.5
|
|
||||||
},
|
|
||||||
booksPerPage() {
|
|
||||||
return Math.floor(this.clientWidth / (this.cardWidth + 16))
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
scrolled() {
|
|
||||||
this.setScrollVars()
|
|
||||||
},
|
|
||||||
scrollRight() {
|
|
||||||
if (!this.canScrollRight) return
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
|
||||||
const maxScrollLeft = slider.scrollWidth - slider.clientWidth
|
|
||||||
|
|
||||||
const newScrollLeft = Math.min(maxScrollLeft, slider.scrollLeft + scrollAmount)
|
|
||||||
slider.scrollLeft = newScrollLeft
|
|
||||||
},
|
|
||||||
scrollLeft() {
|
|
||||||
if (!this.canScrollLeft) return
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
|
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
|
||||||
|
|
||||||
const newScrollLeft = Math.max(0, slider.scrollLeft - scrollAmount)
|
|
||||||
slider.scrollLeft = newScrollLeft
|
|
||||||
},
|
|
||||||
setScrollVars() {
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
const { scrollLeft, scrollWidth, clientWidth } = slider
|
|
||||||
const scrollPercent = (scrollLeft + clientWidth) / scrollWidth
|
|
||||||
|
|
||||||
this.clientWidth = clientWidth
|
|
||||||
this.isScrollable = scrollWidth > clientWidth
|
|
||||||
this.canScrollRight = scrollPercent < 1
|
|
||||||
this.canScrollLeft = scrollLeft > 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
updated() {
|
|
||||||
this.setScrollVars()
|
|
||||||
},
|
|
||||||
mounted() {},
|
|
||||||
beforeDestroy() {}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="w-full">
|
|
||||||
<div class="flex items-center py-3">
|
|
||||||
<slot />
|
|
||||||
<div class="flex-grow" />
|
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollLeft ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollLeft">
|
|
||||||
<span class="material-icons text-2xl">chevron_left</span>
|
|
||||||
</button>
|
|
||||||
<button v-if="isScrollable" class="w-8 h-8 mx-1 flex items-center justify-center rounded-full" :class="canScrollRight ? 'hover:bg-white hover:bg-opacity-5 text-gray-300 hover:text-white' : 'text-white text-opacity-40 cursor-text'" @click="scrollRight">
|
|
||||||
<span class="material-icons text-2xl">chevron_right</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div ref="slider" class="w-full overflow-y-hidden overflow-x-auto no-scroll" style="scroll-behavior: smooth" @scroll="scrolled">
|
|
||||||
<div class="flex space-x-4" :style="{ height: height + 'px' }">
|
|
||||||
<template v-for="(item, index) in items">
|
|
||||||
<cards-lazy-series-card :key="item.id" :ref="`slider-item-${item.id}`" :index="index" :series-mount="item" :height="cardHeight" :width="cardWidth" :book-cover-aspect-ratio="bookCoverAspectRatio" :bookshelf-view="$constants.BookshelfView.DETAIL" class="relative" @hook:updated="setScrollVars" />
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
items: {
|
|
||||||
type: Array,
|
|
||||||
default: () => []
|
|
||||||
},
|
|
||||||
height: {
|
|
||||||
type: Number,
|
|
||||||
default: 192
|
|
||||||
},
|
|
||||||
bookshelfView: {
|
|
||||||
type: Number,
|
|
||||||
default: 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
isScrollable: false,
|
|
||||||
canScrollLeft: false,
|
|
||||||
canScrollRight: false,
|
|
||||||
clientWidth: 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
bookCoverAspectRatio() {
|
|
||||||
return this.$store.getters['libraries/getBookCoverAspectRatio']
|
|
||||||
},
|
|
||||||
cardScaleMulitiplier() {
|
|
||||||
return this.height / 192
|
|
||||||
},
|
|
||||||
cardHeight() {
|
|
||||||
return this.height - 40 * this.cardScaleMulitiplier
|
|
||||||
},
|
|
||||||
cardWidth() {
|
|
||||||
return 2 * (this.cardHeight / this.bookCoverAspectRatio)
|
|
||||||
},
|
|
||||||
booksPerPage() {
|
|
||||||
return Math.floor(this.clientWidth / (this.cardWidth + 16))
|
|
||||||
},
|
|
||||||
isSelectionMode() {
|
|
||||||
return this.$store.getters['globals/getIsBatchSelectingMediaItems']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
scrolled() {
|
|
||||||
this.setScrollVars()
|
|
||||||
},
|
|
||||||
scrollRight() {
|
|
||||||
if (!this.canScrollRight) return
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
|
||||||
const maxScrollLeft = slider.scrollWidth - slider.clientWidth
|
|
||||||
|
|
||||||
const newScrollLeft = Math.min(maxScrollLeft, slider.scrollLeft + scrollAmount)
|
|
||||||
slider.scrollLeft = newScrollLeft
|
|
||||||
},
|
|
||||||
scrollLeft() {
|
|
||||||
if (!this.canScrollLeft) return
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
|
|
||||||
const scrollAmount = this.booksPerPage * this.cardWidth
|
|
||||||
|
|
||||||
const newScrollLeft = Math.max(0, slider.scrollLeft - scrollAmount)
|
|
||||||
slider.scrollLeft = newScrollLeft
|
|
||||||
},
|
|
||||||
setScrollVars() {
|
|
||||||
const slider = this.$refs.slider
|
|
||||||
if (!slider) return
|
|
||||||
const { scrollLeft, scrollWidth, clientWidth } = slider
|
|
||||||
const scrollPercent = (scrollLeft + clientWidth) / scrollWidth
|
|
||||||
|
|
||||||
this.clientWidth = clientWidth
|
|
||||||
this.isScrollable = scrollWidth > clientWidth
|
|
||||||
this.canScrollRight = scrollPercent < 1
|
|
||||||
this.canScrollLeft = scrollLeft > 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
updated() {
|
|
||||||
this.setScrollVars()
|
|
||||||
},
|
|
||||||
mounted() {},
|
|
||||||
beforeDestroy() {}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -13,9 +13,6 @@ describe('AuthorCard', () => {
|
|||||||
|
|
||||||
const propsData = {
|
const propsData = {
|
||||||
author,
|
author,
|
||||||
width: 192 * 0.8,
|
|
||||||
height: 192,
|
|
||||||
sizeMultiplier: 1,
|
|
||||||
nameBelow: false
|
nameBelow: false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,7 +24,8 @@ describe('AuthorCard', () => {
|
|||||||
$store: {
|
$store: {
|
||||||
getters: {
|
getters: {
|
||||||
'user/getUserCanUpdate': true,
|
'user/getUserCanUpdate': true,
|
||||||
'libraries/getLibraryProvider': () => 'audible.us'
|
'libraries/getLibraryProvider': () => 'audible.us',
|
||||||
|
'user/getSizeMultiplier': 1
|
||||||
},
|
},
|
||||||
state: {
|
state: {
|
||||||
libraries: {
|
libraries: {
|
||||||
@@ -37,8 +35,8 @@ describe('AuthorCard', () => {
|
|||||||
},
|
},
|
||||||
$eventBus: {
|
$eventBus: {
|
||||||
$on: () => {},
|
$on: () => {},
|
||||||
$off: () => { },
|
$off: () => {}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const stubs = {
|
const stubs = {
|
||||||
@@ -59,8 +57,10 @@ describe('AuthorCard', () => {
|
|||||||
cy.get('&card').should(($el) => {
|
cy.get('&card').should(($el) => {
|
||||||
const width = $el.width()
|
const width = $el.width()
|
||||||
const height = $el.height()
|
const height = $el.height()
|
||||||
expect(width).to.be.closeTo(propsData.width, 0.01)
|
const defaultHeight = 192
|
||||||
expect(height).to.be.closeTo(propsData.height, 0.01)
|
const defaultWidth = defaultHeight * 0.8
|
||||||
|
expect(width).to.be.closeTo(defaultWidth, 0.01)
|
||||||
|
expect(height).to.be.closeTo(defaultHeight, 0.01)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -78,21 +78,25 @@ describe('AuthorCard', () => {
|
|||||||
.and(($el) => {
|
.and(($el) => {
|
||||||
const height = $el.height()
|
const height = $el.height()
|
||||||
const width = $el.width()
|
const width = $el.width()
|
||||||
const sizeMultiplier = propsData.sizeMultiplier
|
const sizeMultiplier = 1
|
||||||
const defaultFontSize = 16
|
const defaultFontSize = 16
|
||||||
const defaultLineHeight = 1.5
|
const defaultLineHeight = 1.5
|
||||||
const fontSizeMultiplier = 0.75
|
const fontSizeMultiplier = 0.75
|
||||||
const px2 = 16
|
const px2 = 16
|
||||||
|
const defaultHeight = 192
|
||||||
|
const defaultWidth = defaultHeight * 0.8
|
||||||
expect(height).to.be.closeTo(defaultFontSize * fontSizeMultiplier * sizeMultiplier * defaultLineHeight, 0.01)
|
expect(height).to.be.closeTo(defaultFontSize * fontSizeMultiplier * sizeMultiplier * defaultLineHeight, 0.01)
|
||||||
nameBelowHeight = height
|
nameBelowHeight = height
|
||||||
expect(width).to.be.closeTo(propsData.width - px2, 0.01)
|
expect(width).to.be.closeTo(defaultWidth - px2, 0.01)
|
||||||
})
|
})
|
||||||
cy.get('&card').should(($el) => {
|
cy.get('&card').should(($el) => {
|
||||||
const width = $el.width()
|
const width = $el.width()
|
||||||
const height = $el.height()
|
const height = $el.height()
|
||||||
const py1 = 8
|
const py1 = 8
|
||||||
expect(width).to.be.closeTo(propsData.width, 0.01)
|
const defaultHeight = 192
|
||||||
expect(height).to.be.closeTo(propsData.height + nameBelowHeight + py1, 0.01)
|
const defaultWidth = defaultHeight * 0.8
|
||||||
|
expect(width).to.be.closeTo(defaultWidth, 0.01)
|
||||||
|
expect(height).to.be.closeTo(defaultHeight + nameBelowHeight + py1, 0.01)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -110,11 +114,12 @@ describe('AuthorCard', () => {
|
|||||||
cy.get('&card').trigger('mouseleave')
|
cy.get('&card').trigger('mouseleave')
|
||||||
cy.get('&match').should('be.hidden')
|
cy.get('&match').should('be.hidden')
|
||||||
cy.get('&edit').should('be.hidden')
|
cy.get('&edit').should('be.hidden')
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('renders the component with spinner while searching', () => {
|
it('renders the component with spinner while searching', () => {
|
||||||
const data = () => { return { searching: true, isHovering: false } }
|
const data = () => {
|
||||||
|
return { searching: true, isHovering: false }
|
||||||
|
}
|
||||||
cy.mount(AuthorCard, { ...mountOptions, data })
|
cy.mount(AuthorCard, { ...mountOptions, data })
|
||||||
|
|
||||||
cy.get('&textInline').should('be.hidden')
|
cy.get('&textInline').should('be.hidden')
|
||||||
@@ -171,7 +176,7 @@ describe('AuthorCard', () => {
|
|||||||
const updatedMocks = {
|
const updatedMocks = {
|
||||||
...mocks,
|
...mocks,
|
||||||
$axios: {
|
$axios: {
|
||||||
$post: cy.stub().resolves({ updated: true, author: { name: 'John Doe', imagePath: "path/to/image" } })
|
$post: cy.stub().resolves({ updated: true, author: { name: 'John Doe', imagePath: 'path/to/image' } })
|
||||||
},
|
},
|
||||||
$toast: {
|
$toast: {
|
||||||
success: cy.stub().as('success'),
|
success: cy.stub().as('success'),
|
||||||
|
|||||||
@@ -0,0 +1,85 @@
|
|||||||
|
import ItemSlider from '@/components/widgets/ItemSlider.vue'
|
||||||
|
import NarratorCard from '@/components/cards/NarratorCard.vue'
|
||||||
|
import AuthorCard from '@/components/cards/AuthorCard.vue'
|
||||||
|
|
||||||
|
function createMountOptions(shelftype) {
|
||||||
|
const items = {
|
||||||
|
narrators: [
|
||||||
|
{ name: 'John Doe', numBooks: 5 },
|
||||||
|
{ name: 'Jane Doe', numBooks: 3 },
|
||||||
|
{ name: 'Jack Doe', numBooks: 1 },
|
||||||
|
{ name: 'Jill Doe', numBooks: 7 }
|
||||||
|
],
|
||||||
|
authors: [
|
||||||
|
{ id: 1, name: 'John Doe', numBooks: 5 },
|
||||||
|
{ id: 2, name: 'Jane Doe', numBooks: 3 },
|
||||||
|
{ id: 3, name: 'Jack Doe', numBooks: 1 },
|
||||||
|
{ id: 4, name: 'Jill Doe', numBooks: 7 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
const propsData = {
|
||||||
|
items: items[shelftype],
|
||||||
|
shelfId: 'shelf-123',
|
||||||
|
type: shelftype
|
||||||
|
}
|
||||||
|
const stubs = {
|
||||||
|
'cards-narrator-card': NarratorCard,
|
||||||
|
'cards-author-card': AuthorCard
|
||||||
|
}
|
||||||
|
const mocks = {
|
||||||
|
$store: {
|
||||||
|
getters: {
|
||||||
|
'user/getUserCanUpdate': true,
|
||||||
|
'user/getSizeMultiplier': 1,
|
||||||
|
'globals/getIsBatchSelectingMediaItems': false
|
||||||
|
},
|
||||||
|
state: {
|
||||||
|
libraries: {
|
||||||
|
currentLibraryId: 'library-123'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
$eventBus: {
|
||||||
|
$on: () => {},
|
||||||
|
$off: () => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const slots = {
|
||||||
|
default: `<p class="font-semibold text-gray-100">${shelftype}</p>`
|
||||||
|
}
|
||||||
|
|
||||||
|
return { propsData, stubs, mocks, slots }
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('ItemSlider', () => {
|
||||||
|
let mountOptions = null
|
||||||
|
|
||||||
|
beforeEach(() => {})
|
||||||
|
|
||||||
|
it('renders a narrators slider', () => {
|
||||||
|
mountOptions = createMountOptions('narrators')
|
||||||
|
cy.mount(ItemSlider, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&item').should('have.length', 4)
|
||||||
|
cy.get('&leftScrollButton').should('be.visible').and('not.have.class', 'text-gray-300')
|
||||||
|
cy.get('&rightScrollButton').should('be.visible').and('have.class', 'text-gray-300')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('renders an authors slider', () => {
|
||||||
|
mountOptions = createMountOptions('authors')
|
||||||
|
cy.mount(ItemSlider, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&item').should('have.length', 4)
|
||||||
|
cy.get('&leftScrollButton').should('be.visible').and('not.have.class', 'text-gray-300')
|
||||||
|
cy.get('&rightScrollButton').should('be.visible').and('have.class', 'text-gray-300')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('hides the scroll button when all items are visible', () => {
|
||||||
|
mountOptions = createMountOptions('narrators')
|
||||||
|
mountOptions.propsData.items = mountOptions.propsData.items.slice(0, 2)
|
||||||
|
cy.mount(ItemSlider, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&leftScrollButton').should('not.exist')
|
||||||
|
cy.get('&rightScrollButton').should('not.exist')
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -7,61 +7,21 @@ import { Constants } from '@/plugins/constants'
|
|||||||
function createMountOptions() {
|
function createMountOptions() {
|
||||||
const book = {
|
const book = {
|
||||||
id: '1',
|
id: '1',
|
||||||
ino: '281474976785140',
|
|
||||||
libraryId: 'library-123',
|
libraryId: 'library-123',
|
||||||
folderId: 'folder-123',
|
|
||||||
path: '/path/to/book',
|
|
||||||
relPath: 'book',
|
|
||||||
isFile: false,
|
|
||||||
mtimeMs: 1689017292016,
|
|
||||||
ctimeMs: 1689017292016,
|
|
||||||
birthtimeMs: 1689017281555,
|
|
||||||
addedAt: 1700154928492,
|
|
||||||
updatedAt: 1713300533345,
|
|
||||||
isMissing: false,
|
|
||||||
isInvalid: false,
|
|
||||||
mediaType: 'book',
|
mediaType: 'book',
|
||||||
media: {
|
media: {
|
||||||
id: 'book1',
|
id: 'book1',
|
||||||
metadata: {
|
metadata: { title: 'The Fellowship of the Ring', titleIgnorePrefix: 'Fellowship of the Ring', authorName: 'J. R. R. Tolkien' },
|
||||||
title: 'The Fellowship of the Ring',
|
numTracks: 1
|
||||||
titleIgnorePrefix: 'Fellowship of the Ring',
|
}
|
||||||
subtitle: 'LOTR, Book 1',
|
|
||||||
authorName: 'J. R. R. Tolkien',
|
|
||||||
authorNameLF: 'Tolkien, J. R. R.',
|
|
||||||
narratorName: 'Andy Sirkis',
|
|
||||||
genres: ['Science Fiction & Fantasy'],
|
|
||||||
publishedYear: '2017',
|
|
||||||
publishedDate: null,
|
|
||||||
publisher: 'Book Publisher',
|
|
||||||
description: 'Book Description',
|
|
||||||
isbn: null,
|
|
||||||
asin: 'B075LXMLNV',
|
|
||||||
language: 'English',
|
|
||||||
explicit: false,
|
|
||||||
abridged: false
|
|
||||||
},
|
|
||||||
coverPath: null,
|
|
||||||
tags: ['Fantasy', 'Adventure'],
|
|
||||||
numTracks: 1,
|
|
||||||
numAudioFiles: 1,
|
|
||||||
numChapters: 31,
|
|
||||||
duration: 64410,
|
|
||||||
size: 511206878
|
|
||||||
},
|
|
||||||
numFiles: 4,
|
|
||||||
size: 511279587
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const propsData = {
|
const propsData = {
|
||||||
index: 0,
|
index: 0,
|
||||||
bookMount: book,
|
bookMount: book,
|
||||||
bookCoverAspectRatio: 1,
|
|
||||||
bookshelfView: Constants.BookshelfView.DETAIL,
|
bookshelfView: Constants.BookshelfView.DETAIL,
|
||||||
continueListeningShelf: false,
|
continueListeningShelf: false,
|
||||||
filterBy: null,
|
filterBy: null,
|
||||||
width: 192,
|
|
||||||
height: 192,
|
|
||||||
sortingIgnorePrefix: false,
|
sortingIgnorePrefix: false,
|
||||||
orderBy: null
|
orderBy: null
|
||||||
}
|
}
|
||||||
@@ -84,7 +44,10 @@ function createMountOptions() {
|
|||||||
'user/getUserCanDownload': true,
|
'user/getUserCanDownload': true,
|
||||||
'user/getIsAdminOrUp': true,
|
'user/getIsAdminOrUp': true,
|
||||||
'user/getUserMediaProgress': (id) => null,
|
'user/getUserMediaProgress': (id) => null,
|
||||||
|
'user/getUserSetting': (settingName) => false,
|
||||||
|
'user/getSizeMultiplier': 1,
|
||||||
'libraries/getLibraryProvider': () => 'audible.us',
|
'libraries/getLibraryProvider': () => 'audible.us',
|
||||||
|
'libraries/getBookCoverAspectRatio': 1,
|
||||||
'globals/getLibraryItemCoverSrc': () => 'https://my.server.com/book_placeholder.jpg',
|
'globals/getLibraryItemCoverSrc': () => 'https://my.server.com/book_placeholder.jpg',
|
||||||
getLibraryItemsStreaming: () => null,
|
getLibraryItemsStreaming: () => null,
|
||||||
getIsMediaQueued: () => false,
|
getIsMediaQueued: () => false,
|
||||||
@@ -109,16 +72,6 @@ describe('LazyBookCard', () => {
|
|||||||
let mountOptions = null
|
let mountOptions = null
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
mountOptions = createMountOptions()
|
mountOptions = createMountOptions()
|
||||||
// cy.intercept(
|
|
||||||
// 'https://my.server.com/**/*',
|
|
||||||
// { middleware: true },
|
|
||||||
// (req) => {
|
|
||||||
// req.on('before:response', (res) => {
|
|
||||||
// // force all API responses to not be cached
|
|
||||||
// res.headers['cache-control'] = 'no-store'
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
// )
|
|
||||||
})
|
})
|
||||||
|
|
||||||
before(() => {
|
before(() => {
|
||||||
@@ -174,11 +127,14 @@ describe('LazyBookCard', () => {
|
|||||||
// the detailBottom element, currently rendered outside the card's area,
|
// the detailBottom element, currently rendered outside the card's area,
|
||||||
// and requires complex layout calculations outside of the component.
|
// and requires complex layout calculations outside of the component.
|
||||||
// todo: fix the component to render the detailBottom element inside the card's area
|
// todo: fix the component to render the detailBottom element inside the card's area
|
||||||
cy.get('#book-card-0').should(($el) => {
|
cy.get('#cover-area-0').should(($el) => {
|
||||||
const width = $el.width()
|
const width = $el.width()
|
||||||
const height = $el.height()
|
const height = $el.height()
|
||||||
expect(width).to.be.closeTo(mountOptions.propsData.width, 0.01)
|
const defaultHeight = 192
|
||||||
expect(height).to.be.closeTo(mountOptions.propsData.height, 0.01)
|
const defaultWidth = defaultHeight
|
||||||
|
|
||||||
|
expect(width).to.be.closeTo(defaultWidth, 0.01)
|
||||||
|
expect(height).to.be.closeTo(defaultHeight, 0.01)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -201,6 +157,7 @@ describe('LazyBookCard', () => {
|
|||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
cy.get('#book-card-0').click()
|
cy.get('#book-card-0').click()
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('@routerPush').should('have.been.calledOnceWithExactly', '/item/1')
|
cy.get('@routerPush').should('have.been.calledOnceWithExactly', '/item/1')
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -215,6 +172,7 @@ describe('LazyBookCard', () => {
|
|||||||
mountOptions.mocks.$store.getters['globals/getLibraryItemCoverSrc'] = () => 'https://my.server.com/cover1.jpg'
|
mountOptions.mocks.$store.getters['globals/getLibraryItemCoverSrc'] = () => 'https://my.server.com/cover1.jpg'
|
||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&coverBg').should('be.visible')
|
cy.get('&coverBg').should('be.visible')
|
||||||
cy.get('&coverImage').should('have.class', 'object-contain')
|
cy.get('&coverImage').should('have.class', 'object-contain')
|
||||||
})
|
})
|
||||||
@@ -223,6 +181,7 @@ describe('LazyBookCard', () => {
|
|||||||
mountOptions.mocks.$store.getters['globals/getLibraryItemCoverSrc'] = () => 'https://my.server.com/cover2.jpg'
|
mountOptions.mocks.$store.getters['globals/getLibraryItemCoverSrc'] = () => 'https://my.server.com/cover2.jpg'
|
||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&coverBg').should('be.hidden')
|
cy.get('&coverBg').should('be.hidden')
|
||||||
cy.get('&coverImage').should('have.class', 'object-fill')
|
cy.get('&coverImage').should('have.class', 'object-fill')
|
||||||
})
|
})
|
||||||
@@ -235,6 +194,7 @@ describe('LazyBookCard', () => {
|
|||||||
mountOptions.propsData.bookMount.media.coverPath = 'cover1.jpg'
|
mountOptions.propsData.bookMount.media.coverPath = 'cover1.jpg'
|
||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&placeholderTitle').should('not.exist')
|
cy.get('&placeholderTitle').should('not.exist')
|
||||||
cy.get('&placeholderAuthor').should('not.exist')
|
cy.get('&placeholderAuthor').should('not.exist')
|
||||||
})
|
})
|
||||||
@@ -243,6 +203,7 @@ describe('LazyBookCard', () => {
|
|||||||
mountOptions.propsData.bookshelfView = Constants.BookshelfView.STANDARD
|
mountOptions.propsData.bookshelfView = Constants.BookshelfView.STANDARD
|
||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&detailBottom').should('not.exist')
|
cy.get('&detailBottom').should('not.exist')
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -250,6 +211,7 @@ describe('LazyBookCard', () => {
|
|||||||
mountOptions.propsData.bookMount.media.metadata.explicit = true
|
mountOptions.propsData.bookMount.media.metadata.explicit = true
|
||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&explicitIndicator').should('be.visible')
|
cy.get('&explicitIndicator').should('be.visible')
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -267,6 +229,7 @@ describe('LazyBookCard', () => {
|
|||||||
it('shows the collpased series', () => {
|
it('shows the collpased series', () => {
|
||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&seriesSequenceList').should('not.exist')
|
cy.get('&seriesSequenceList').should('not.exist')
|
||||||
cy.get('&booksInSeries').should('be.visible').and('have.text', '3')
|
cy.get('&booksInSeries').should('be.visible').and('have.text', '3')
|
||||||
cy.get('&title').should('be.visible').and('have.text', 'The Lord of the Rings')
|
cy.get('&title').should('be.visible').and('have.text', 'The Lord of the Rings')
|
||||||
@@ -283,6 +246,7 @@ describe('LazyBookCard', () => {
|
|||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
cy.get('#book-card-0').trigger('mouseover')
|
cy.get('#book-card-0').trigger('mouseover')
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&seriesNameOverlay').should('be.visible').and('have.text', 'Middle Earth Chronicles')
|
cy.get('&seriesNameOverlay').should('be.visible').and('have.text', 'Middle Earth Chronicles')
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -290,6 +254,7 @@ describe('LazyBookCard', () => {
|
|||||||
mountOptions.propsData.bookMount.collapsedSeries.seriesSequenceList = '1-3'
|
mountOptions.propsData.bookMount.collapsedSeries.seriesSequenceList = '1-3'
|
||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&seriesSequenceList').should('be.visible').and('have.text', '#1-3')
|
cy.get('&seriesSequenceList').should('be.visible').and('have.text', '#1-3')
|
||||||
cy.get('&booksInSeries').should('not.exist')
|
cy.get('&booksInSeries').should('not.exist')
|
||||||
})
|
})
|
||||||
@@ -299,6 +264,7 @@ describe('LazyBookCard', () => {
|
|||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
cy.get('#book-card-0').click()
|
cy.get('#book-card-0').click()
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('@routerPush').should('have.been.calledOnceWithExactly', '/library/library-123/series/series-123')
|
cy.get('@routerPush').should('have.been.calledOnceWithExactly', '/library/library-123/series/series-123')
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -315,12 +281,15 @@ describe('LazyBookCard', () => {
|
|||||||
}
|
}
|
||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&progressBar')
|
cy.get('&progressBar')
|
||||||
.should('be.visible')
|
.should('be.visible')
|
||||||
.and('have.class', 'bg-yellow-400')
|
.and('have.class', 'bg-yellow-400')
|
||||||
.and(($el) => {
|
.and(($el) => {
|
||||||
const width = $el.width()
|
const width = $el.width()
|
||||||
expect(width).to.be.closeTo(((1 + 0.5) / 3) * mountOptions.propsData.width, 0.01)
|
const defaultHeight = 192
|
||||||
|
const defaultWidth = defaultHeight
|
||||||
|
expect(width).to.be.closeTo(((1 + 0.5) / 3) * defaultWidth, 0.01)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -330,12 +299,15 @@ describe('LazyBookCard', () => {
|
|||||||
}
|
}
|
||||||
cy.mount(LazyBookCard, mountOptions)
|
cy.mount(LazyBookCard, mountOptions)
|
||||||
|
|
||||||
|
cy.get('&titleImageNotReady').should('be.hidden')
|
||||||
cy.get('&progressBar')
|
cy.get('&progressBar')
|
||||||
.should('be.visible')
|
.should('be.visible')
|
||||||
.and('have.class', 'bg-success')
|
.and('have.class', 'bg-success')
|
||||||
.and(($el) => {
|
.and(($el) => {
|
||||||
const width = $el.width()
|
const width = $el.width()
|
||||||
expect(width).to.be.equal(mountOptions.propsData.width)
|
const defaultHeight = 192
|
||||||
|
const defaultWidth = defaultHeight
|
||||||
|
expect(width).to.be.equal(defaultWidth)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -18,10 +18,6 @@ describe('LazySeriesCard', () => {
|
|||||||
|
|
||||||
const propsData = {
|
const propsData = {
|
||||||
index: 0,
|
index: 0,
|
||||||
width: 192 * 2,
|
|
||||||
height: 192,
|
|
||||||
sizeMultiplier: 1,
|
|
||||||
bookCoverAspectRatio: 1,
|
|
||||||
bookshelfView: 1,
|
bookshelfView: 1,
|
||||||
isCategorized: false,
|
isCategorized: false,
|
||||||
seriesMount: series,
|
seriesMount: series,
|
||||||
@@ -38,6 +34,8 @@ describe('LazySeriesCard', () => {
|
|||||||
getters: {
|
getters: {
|
||||||
'user/getUserCanUpdate': true,
|
'user/getUserCanUpdate': true,
|
||||||
'user/getUserMediaProgress': (id) => null,
|
'user/getUserMediaProgress': (id) => null,
|
||||||
|
'user/getSizeMultiplier': 1,
|
||||||
|
'libraries/getBookCoverAspectRatio': 1,
|
||||||
'libraries/getLibraryProvider': () => 'audible.us',
|
'libraries/getLibraryProvider': () => 'audible.us',
|
||||||
'globals/getLibraryItemCoverSrc': () => 'https://my.server.com/book_placeholder.jpg'
|
'globals/getLibraryItemCoverSrc': () => 'https://my.server.com/book_placeholder.jpg'
|
||||||
},
|
},
|
||||||
@@ -62,11 +60,13 @@ describe('LazySeriesCard', () => {
|
|||||||
it('renders the component', () => {
|
it('renders the component', () => {
|
||||||
cy.mount(LazySeriesCard, { propsData, stubs, mocks })
|
cy.mount(LazySeriesCard, { propsData, stubs, mocks })
|
||||||
|
|
||||||
cy.get('&card').should(($el) => {
|
cy.get('&covers-area').should(($el) => {
|
||||||
const width = $el.width()
|
const width = $el.width()
|
||||||
const height = $el.height()
|
const height = $el.height()
|
||||||
expect(width).to.be.closeTo(propsData.width, 0.01)
|
const defailtHeight = 192
|
||||||
expect(height).to.be.closeTo(propsData.height, 0.01)
|
const defaultWidth = defailtHeight * 2
|
||||||
|
expect(width).to.be.closeTo(defaultWidth, 0.01)
|
||||||
|
expect(height).to.be.closeTo(defailtHeight, 0.01)
|
||||||
})
|
})
|
||||||
cy.get('&seriesLengthMarker').should('be.visible').and('have.text', propsData.seriesMount.books.length)
|
cy.get('&seriesLengthMarker').should('be.visible').and('have.text', propsData.seriesMount.books.length)
|
||||||
cy.get('&seriesProgressBar').should('not.exist')
|
cy.get('&seriesProgressBar').should('not.exist')
|
||||||
@@ -126,7 +126,9 @@ describe('LazySeriesCard', () => {
|
|||||||
.and('have.class', 'bg-yellow-400')
|
.and('have.class', 'bg-yellow-400')
|
||||||
.and(($el) => {
|
.and(($el) => {
|
||||||
const width = $el.width()
|
const width = $el.width()
|
||||||
expect(width).to.be.closeTo(((1 + 0.5) / 3) * propsData.width, 0.01)
|
const defailtHeight = 192
|
||||||
|
const defaultWidth = defailtHeight * 2
|
||||||
|
expect(width).to.be.closeTo(((1 + 0.5) / 3) * defaultWidth, 0.01)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -150,7 +152,9 @@ describe('LazySeriesCard', () => {
|
|||||||
.and('have.class', 'bg-success')
|
.and('have.class', 'bg-success')
|
||||||
.and(($el) => {
|
.and(($el) => {
|
||||||
const width = $el.width()
|
const width = $el.width()
|
||||||
expect(width).to.equal(propsData.width)
|
const defailtHeight = 192
|
||||||
|
const defaultWidth = defailtHeight * 2
|
||||||
|
expect(width).to.equal(defaultWidth)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -6,15 +6,13 @@ describe('<NarratorCard />', () => {
|
|||||||
numBooks: 5
|
numBooks: 5
|
||||||
}
|
}
|
||||||
const propsData = {
|
const propsData = {
|
||||||
narrator,
|
narrator
|
||||||
width: 200,
|
|
||||||
height: 150,
|
|
||||||
sizeMultiplier: 1.2
|
|
||||||
}
|
}
|
||||||
const mocks = {
|
const mocks = {
|
||||||
$store: {
|
$store: {
|
||||||
getters: {
|
getters: {
|
||||||
'user/getUserCanUpdate': true
|
'user/getUserCanUpdate': true,
|
||||||
|
'user/getSizeMultiplier': 1
|
||||||
},
|
},
|
||||||
state: {
|
state: {
|
||||||
libraries: {
|
libraries: {
|
||||||
@@ -46,7 +44,7 @@ describe('<NarratorCard />', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('renders 1 book correctly', () => {
|
it('renders 1 book correctly', () => {
|
||||||
let propsData = { narrator: { name: 'John Doe', numBooks: 1 }, width: 200, height: 150, sizeMultiplier: 1.2 }
|
let propsData = { narrator: { name: 'John Doe', numBooks: 1 }, width: 200, height: 150 }
|
||||||
let mountOptions = { propsData, mocks }
|
let mountOptions = { propsData, mocks }
|
||||||
cy.mount(NarratorCard, mountOptions)
|
cy.mount(NarratorCard, mountOptions)
|
||||||
|
|
||||||
@@ -54,7 +52,7 @@ describe('<NarratorCard />', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('renders the default name and num-books when narrator is not provided', () => {
|
it('renders the default name and num-books when narrator is not provided', () => {
|
||||||
let propsData = { width: 200, height: 150, sizeMultiplier: 1.2 }
|
let propsData = { width: 200, height: 150 }
|
||||||
let mountOptions = { propsData, mocks }
|
let mountOptions = { propsData, mocks }
|
||||||
cy.mount(NarratorCard, mountOptions)
|
cy.mount(NarratorCard, mountOptions)
|
||||||
cy.get('&name').should('have.text', '')
|
cy.get('&name').should('have.text', '')
|
||||||
@@ -64,12 +62,12 @@ describe('<NarratorCard />', () => {
|
|||||||
it('has the correct width and height', () => {
|
it('has the correct width and height', () => {
|
||||||
let mountOptions = { propsData, mocks }
|
let mountOptions = { propsData, mocks }
|
||||||
cy.mount(NarratorCard, mountOptions)
|
cy.mount(NarratorCard, mountOptions)
|
||||||
cy.get('&card').should('have.css', 'width', '200px')
|
cy.get('&card').should('have.css', 'width', '150px')
|
||||||
cy.get('&card').should('have.css', 'height', '150px')
|
cy.get('&card').should('have.css', 'height', '100px')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('has the correct width and height when not provided', () => {
|
it('has the correct width and height when not provided', () => {
|
||||||
let propsData = { narrator, sizeMultiplier: 1.2 }
|
let propsData = { narrator }
|
||||||
let mountOptions = { propsData, mocks }
|
let mountOptions = { propsData, mocks }
|
||||||
cy.mount(NarratorCard, mountOptions)
|
cy.mount(NarratorCard, mountOptions)
|
||||||
cy.get('&card').should('have.css', 'width', '150px')
|
cy.get('&card').should('have.css', 'width', '150px')
|
||||||
@@ -79,7 +77,8 @@ describe('<NarratorCard />', () => {
|
|||||||
it('has the correct font sizes', () => {
|
it('has the correct font sizes', () => {
|
||||||
let mountOptions = { propsData, mocks }
|
let mountOptions = { propsData, mocks }
|
||||||
cy.mount(NarratorCard, mountOptions)
|
cy.mount(NarratorCard, mountOptions)
|
||||||
cy.get('&name').should('have.css', 'font-size', '14.4px') // 0.75 * 1.2 * 16
|
const defaultFontSize = 16
|
||||||
cy.get('&numBooks').should('have.css', 'font-size', '12.48px') // 0.65 * 1.2 * 16
|
cy.get('&name').should('have.css', 'font-size', `${0.75 * defaultFontSize}px`)
|
||||||
|
cy.get('&numBooks').should('have.css', 'font-size', `${0.65 * defaultFontSize}px`)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
<modals-batch-quick-match-model />
|
<modals-batch-quick-match-model />
|
||||||
<modals-rssfeed-open-close-modal />
|
<modals-rssfeed-open-close-modal />
|
||||||
<modals-raw-cover-preview-modal />
|
<modals-raw-cover-preview-modal />
|
||||||
|
<modals-share-modal />
|
||||||
<prompt-confirm />
|
<prompt-confirm />
|
||||||
<readers-reader />
|
<readers-reader />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<template>
|
||||||
|
<div id="page-wrapper" class="text-white max-h-screen h-screen overflow-hidden">
|
||||||
|
<div class="absolute z-0 top-0 left-0 px-6 py-3">
|
||||||
|
<div class="flex items-center">
|
||||||
|
<nuxt-link to="/">
|
||||||
|
<img src="~static/icon.svg" alt="Audiobookshelf Logo" class="w-10 min-w-10 h-10" />
|
||||||
|
</nuxt-link>
|
||||||
|
<nuxt-link to="/">
|
||||||
|
<h1 class="text-xl ml-4 hover:underline">audiobookshelf</h1>
|
||||||
|
</nuxt-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="w-full h-full flex items-center justify-center">
|
||||||
|
<div class="w-full p-2 sm:p-4 md:p-8">
|
||||||
|
<div class="w-full p-4">
|
||||||
|
<div class="text-center">
|
||||||
|
<h1 class="text-4xl font-semibold text-red-500 mb-4">{{ statusCode }}</h1>
|
||||||
|
<p class="text-xl font-semibold">{{ message }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
layout: 'blank',
|
||||||
|
props: {
|
||||||
|
error: {
|
||||||
|
type: Object,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
statusCode() {
|
||||||
|
return (this.error && this.error.statusCode) || 500
|
||||||
|
},
|
||||||
|
message() {
|
||||||
|
return this.error.message || 'Unknown error'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -9,7 +9,8 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
cardsHelpers: {
|
cardsHelpers: {
|
||||||
mountEntityCard: this.mountEntityCard
|
mountEntityCard: this.mountEntityCard,
|
||||||
|
setCardSize: this.setCardSize
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -21,6 +22,56 @@ export default {
|
|||||||
if (this.entityName === 'albums') return Vue.extend(LazyAlbumCard)
|
if (this.entityName === 'albums') return Vue.extend(LazyAlbumCard)
|
||||||
return Vue.extend(LazyBookCard)
|
return Vue.extend(LazyBookCard)
|
||||||
},
|
},
|
||||||
|
getComponentName() {
|
||||||
|
if (this.entityName === 'series') return 'cards-lazy-series-card'
|
||||||
|
if (this.entityName === 'collections') return 'cards-lazy-collection-card'
|
||||||
|
if (this.entityName === 'playlists') return 'cards-lazy-playlist-card'
|
||||||
|
if (this.entityName === 'albums') return 'cards-lazy-album-card'
|
||||||
|
return 'cards-lazy-book-card'
|
||||||
|
},
|
||||||
|
async setCardSize() {
|
||||||
|
this.cardWidth = 0
|
||||||
|
this.cardHeight = 0
|
||||||
|
// load a dummy card to get the its width and height
|
||||||
|
const ComponentClass = this.getComponentClass()
|
||||||
|
const props = {
|
||||||
|
index: -1,
|
||||||
|
bookshelfView: this.bookshelfView,
|
||||||
|
sortingIgnorePrefix: !!this.sortingIgnorePrefix
|
||||||
|
}
|
||||||
|
if (this.entityName === 'items') {
|
||||||
|
props.filterBy = this.filterBy
|
||||||
|
props.orderBy = this.orderBy
|
||||||
|
} else if (this.entityName === 'series') {
|
||||||
|
props.orderBy = this.seriesSortBy
|
||||||
|
}
|
||||||
|
const instance = new ComponentClass({
|
||||||
|
propsData: props
|
||||||
|
})
|
||||||
|
instance.$mount()
|
||||||
|
this.resizeObserver = new ResizeObserver((entries) => {
|
||||||
|
for (let entry of entries) {
|
||||||
|
this.cardWidth = entry.contentRect.width
|
||||||
|
this.cardHeight = entry.contentRect.height
|
||||||
|
this.resizeObserver.disconnect()
|
||||||
|
this.$refs.bookshelf.removeChild(instance.$el)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
instance.$el.style.visibility = 'hidden'
|
||||||
|
instance.$el.style.position = 'absolute'
|
||||||
|
this.$refs.bookshelf.appendChild(instance.$el)
|
||||||
|
this.resizeObserver.observe(instance.$el)
|
||||||
|
const timeBefore = performance.now()
|
||||||
|
await new Promise((resolve) => {
|
||||||
|
const unwatch = this.$watch('cardWidth', (value) => {
|
||||||
|
if (value) {
|
||||||
|
unwatch()
|
||||||
|
resolve()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
const timeAfter = performance.now()
|
||||||
|
},
|
||||||
async mountEntityCard(index) {
|
async mountEntityCard(index) {
|
||||||
var shelf = Math.floor(index / this.entitiesPerShelf)
|
var shelf = Math.floor(index / this.entitiesPerShelf)
|
||||||
var shelfEl = document.getElementById(`shelf-${shelf}`)
|
var shelfEl = document.getElementById(`shelf-${shelf}`)
|
||||||
@@ -34,7 +85,7 @@ export default {
|
|||||||
shelfEl.appendChild(bookComponent.$el)
|
shelfEl.appendChild(bookComponent.$el)
|
||||||
if (this.isSelectionMode) {
|
if (this.isSelectionMode) {
|
||||||
bookComponent.setSelectionMode(true)
|
bookComponent.setSelectionMode(true)
|
||||||
if (this.selectedMediaItems.some(i => i.id === bookComponent.libraryItemId) || this.isSelectAll) {
|
if (this.selectedMediaItems.some((i) => i.id === bookComponent.libraryItemId) || this.isSelectAll) {
|
||||||
bookComponent.selected = true
|
bookComponent.selected = true
|
||||||
} else {
|
} else {
|
||||||
bookComponent.selected = false
|
bookComponent.selected = false
|
||||||
@@ -45,17 +96,10 @@ export default {
|
|||||||
bookComponent.isHovering = false
|
bookComponent.isHovering = false
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const shelfOffsetY = 16
|
|
||||||
const row = index % this.entitiesPerShelf
|
|
||||||
const shelfOffsetX = row * this.totalEntityCardWidth + this.bookshelfMarginLeft
|
|
||||||
|
|
||||||
const ComponentClass = this.getComponentClass()
|
const ComponentClass = this.getComponentClass()
|
||||||
|
|
||||||
const props = {
|
const props = {
|
||||||
index,
|
index,
|
||||||
width: this.entityWidth,
|
|
||||||
height: this.entityHeight,
|
|
||||||
bookCoverAspectRatio: this.coverAspectRatio,
|
|
||||||
bookshelfView: this.bookshelfView,
|
bookshelfView: this.bookshelfView,
|
||||||
sortingIgnorePrefix: !!this.sortingIgnorePrefix
|
sortingIgnorePrefix: !!this.sortingIgnorePrefix
|
||||||
}
|
}
|
||||||
@@ -82,6 +126,9 @@ export default {
|
|||||||
this.entityComponentRefs[index] = instance
|
this.entityComponentRefs[index] = instance
|
||||||
|
|
||||||
instance.$mount()
|
instance.$mount()
|
||||||
|
const shelfOffsetY = this.shelfPaddingHeight * this.sizeMultiplier
|
||||||
|
const row = index % this.entitiesPerShelf
|
||||||
|
const shelfOffsetX = row * this.totalEntityCardWidth + this.bookshelfMarginLeft
|
||||||
instance.$el.style.transform = `translate3d(${shelfOffsetX}px, ${shelfOffsetY}px, 0px)`
|
instance.$el.style.transform = `translate3d(${shelfOffsetX}px, ${shelfOffsetY}px, 0px)`
|
||||||
instance.$el.classList.add('absolute', 'top-0', 'left-0')
|
instance.$el.classList.add('absolute', 'top-0', 'left-0')
|
||||||
shelfEl.appendChild(instance.$el)
|
shelfEl.appendChild(instance.$el)
|
||||||
@@ -91,10 +138,10 @@ export default {
|
|||||||
}
|
}
|
||||||
if (this.isSelectionMode) {
|
if (this.isSelectionMode) {
|
||||||
instance.setSelectionMode(true)
|
instance.setSelectionMode(true)
|
||||||
if (instance.libraryItemId && this.selectedMediaItems.some(i => i.id === instance.libraryItemId) || this.isSelectAll) {
|
if ((instance.libraryItemId && this.selectedMediaItems.some((i) => i.id === instance.libraryItemId)) || this.isSelectAll) {
|
||||||
instance.selected = true
|
instance.selected = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Generated
+11
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "audiobookshelf-client",
|
"name": "audiobookshelf-client",
|
||||||
"version": "2.10.1",
|
"version": "2.11.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "audiobookshelf-client",
|
"name": "audiobookshelf-client",
|
||||||
"version": "2.10.1",
|
"version": "2.11.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nuxtjs/axios": "^5.13.6",
|
"@nuxtjs/axios": "^5.13.6",
|
||||||
@@ -16,6 +16,7 @@
|
|||||||
"cron-parser": "^4.7.1",
|
"cron-parser": "^4.7.1",
|
||||||
"date-fns": "^2.25.0",
|
"date-fns": "^2.25.0",
|
||||||
"epubjs": "^0.3.88",
|
"epubjs": "^0.3.88",
|
||||||
|
"fast-average-color": "^9.4.0",
|
||||||
"hls.js": "^1.5.7",
|
"hls.js": "^1.5.7",
|
||||||
"libarchive.js": "^1.3.0",
|
"libarchive.js": "^1.3.0",
|
||||||
"nuxt": "^2.17.3",
|
"nuxt": "^2.17.3",
|
||||||
@@ -8219,6 +8220,14 @@
|
|||||||
"node >=0.6.0"
|
"node >=0.6.0"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"node_modules/fast-average-color": {
|
||||||
|
"version": "9.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fast-average-color/-/fast-average-color-9.4.0.tgz",
|
||||||
|
"integrity": "sha512-bvM8vV6YwK07dPbzFz77zJaBcfF6ABVfgNwaxVgXc2G+o0e/tzLCF9WU8Ryp1r0Nkk6JuJNsWCzbb4cLOMlB+Q==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/fast-deep-equal": {
|
"node_modules/fast-deep-equal": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||||
|
|||||||
+2
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "audiobookshelf-client",
|
"name": "audiobookshelf-client",
|
||||||
"version": "2.10.1",
|
"version": "2.11.0",
|
||||||
"buildNumber": 1,
|
"buildNumber": 1,
|
||||||
"description": "Self-hosted audiobook and podcast client",
|
"description": "Self-hosted audiobook and podcast client",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
"cron-parser": "^4.7.1",
|
"cron-parser": "^4.7.1",
|
||||||
"date-fns": "^2.25.0",
|
"date-fns": "^2.25.0",
|
||||||
"epubjs": "^0.3.88",
|
"epubjs": "^0.3.88",
|
||||||
|
"fast-average-color": "^9.4.0",
|
||||||
"hls.js": "^1.5.7",
|
"hls.js": "^1.5.7",
|
||||||
"libarchive.js": "^1.3.0",
|
"libarchive.js": "^1.3.0",
|
||||||
"nuxt": "^2.17.3",
|
"nuxt": "^2.17.3",
|
||||||
|
|||||||
@@ -11,10 +11,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex justify-center">
|
<div class="flex justify-center mb-2">
|
||||||
<div class="w-full max-w-2xl">
|
<div class="w-full max-w-2xl">
|
||||||
<p class="text-xl mb-1">{{ $strings.HeaderMetadataToEmbed }}</p>
|
<p class="text-xl">{{ $strings.HeaderMetadataToEmbed }}</p>
|
||||||
<p class="mb-2 text-base text-gray-300">audiobookshelf uses <a href="https://github.com/sandreas/tone" target="_blank" class="hover:underline text-blue-400 hover:text-blue-300">tone</a> to write metadata.</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="w-full max-w-2xl"></div>
|
<div class="w-full max-w-2xl"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -26,7 +25,7 @@
|
|||||||
<div class="w-2/3 text-xs font-semibold uppercase text-gray-200">{{ $strings.LabelValue }}</div>
|
<div class="w-2/3 text-xs font-semibold uppercase text-gray-200">{{ $strings.LabelValue }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="w-full max-h-72 overflow-auto">
|
<div class="w-full max-h-72 overflow-auto">
|
||||||
<template v-for="(value, key, index) in toneObject">
|
<template v-for="(value, key, index) in metadataObject">
|
||||||
<div :key="key" class="flex py-1 px-4 text-sm" :class="index % 2 === 0 ? 'bg-primary bg-opacity-25' : ''">
|
<div :key="key" class="flex py-1 px-4 text-sm" :class="index % 2 === 0 ? 'bg-primary bg-opacity-25' : ''">
|
||||||
<div class="w-1/3 font-semibold">{{ key }}</div>
|
<div class="w-1/3 font-semibold">{{ key }}</div>
|
||||||
<div class="w-2/3">
|
<div class="w-2/3">
|
||||||
@@ -208,7 +207,7 @@ export default {
|
|||||||
processing: false,
|
processing: false,
|
||||||
audiofilesEncoding: {},
|
audiofilesEncoding: {},
|
||||||
audiofilesFinished: {},
|
audiofilesFinished: {},
|
||||||
toneObject: null,
|
metadataObject: null,
|
||||||
selectedTool: 'embed',
|
selectedTool: 'embed',
|
||||||
isCancelingEncode: false,
|
isCancelingEncode: false,
|
||||||
showEncodeOptions: false,
|
showEncodeOptions: false,
|
||||||
@@ -387,7 +386,7 @@ export default {
|
|||||||
window.history.replaceState({ path: newurl }, '', newurl)
|
window.history.replaceState({ path: newurl }, '', newurl)
|
||||||
},
|
},
|
||||||
init() {
|
init() {
|
||||||
this.fetchToneObject()
|
this.fetchMetadataEmbedObject()
|
||||||
if (this.$route.query.tool === 'm4b') {
|
if (this.$route.query.tool === 'm4b') {
|
||||||
if (this.availableTools.some((t) => t.value === 'm4b')) {
|
if (this.availableTools.some((t) => t.value === 'm4b')) {
|
||||||
this.selectedTool = 'm4b'
|
this.selectedTool = 'm4b'
|
||||||
@@ -401,15 +400,14 @@ export default {
|
|||||||
const shouldBackupAudioFiles = localStorage.getItem('embedMetadataShouldBackup')
|
const shouldBackupAudioFiles = localStorage.getItem('embedMetadataShouldBackup')
|
||||||
this.shouldBackupAudioFiles = shouldBackupAudioFiles != 0
|
this.shouldBackupAudioFiles = shouldBackupAudioFiles != 0
|
||||||
},
|
},
|
||||||
fetchToneObject() {
|
fetchMetadataEmbedObject() {
|
||||||
this.$axios
|
this.$axios
|
||||||
.$get(`/api/items/${this.libraryItemId}/tone-object`)
|
.$get(`/api/items/${this.libraryItemId}/metadata-object`)
|
||||||
.then((toneObject) => {
|
.then((metadataObject) => {
|
||||||
delete toneObject.CoverFile
|
this.metadataObject = metadataObject
|
||||||
this.toneObject = toneObject
|
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.error('Failed to fetch tone object', error)
|
console.error('Failed to fetch metadata object', error)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
taskUpdated(task) {
|
taskUpdated(task) {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="w-full border border-white/10 rounded-xl p-4 my-4 bg-primary/25">
|
<div class="w-full border border-white/10 rounded-xl p-4 my-4 bg-primary/25">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<ui-checkbox v-model="showCustomLoginMessage" checkbox-bg="bg" />
|
<ui-checkbox v-model="showCustomLoginMessage" checkbox-bg="bg" />
|
||||||
<p class="text-lg pl-4">Custom Message on Login</p>
|
<p class="text-lg pl-4">{{ $strings.HeaderCustomMessageOnLogin }}</p>
|
||||||
</div>
|
</div>
|
||||||
<transition name="slide">
|
<transition name="slide">
|
||||||
<div v-if="showCustomLoginMessage" class="w-full pt-4">
|
<div v-if="showCustomLoginMessage" class="w-full pt-4">
|
||||||
|
|||||||
@@ -1,10 +1,27 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<app-settings-content :header-text="$strings.HeaderBackups" :description="$strings.MessageBackupsDescription">
|
<app-settings-content :header-text="$strings.HeaderBackups" :description="$strings.MessageBackupsDescription">
|
||||||
<div v-if="backupLocation" class="flex items-center mb-4">
|
<div v-if="backupLocation" class="mb-4 max-w-full overflow-hidden">
|
||||||
|
<div class="flex items-center mb-0.5">
|
||||||
<span class="material-icons-outlined text-2xl text-black-50 mr-2">folder</span>
|
<span class="material-icons-outlined text-2xl text-black-50 mr-2">folder</span>
|
||||||
<span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelBackupLocation }}:</span>
|
<span class="text-white text-opacity-60 uppercase text-sm whitespace-nowrap">{{ $strings.LabelBackupLocation }}:</span>
|
||||||
<div class="text-gray-100 pl-4">{{ backupLocation }}</div>
|
</div>
|
||||||
|
<div v-if="!showEditBackupPath" class="inline-flex items-center w-full overflow-hidden">
|
||||||
|
<p class="text-gray-100 max-w-[calc(100%-40px)] text-sm sm:text-base break-words">{{ backupLocation }}</p>
|
||||||
|
<div class="w-10 min-w-10 flex items-center justify-center">
|
||||||
|
<button class="text-black-50 hover:text-yellow-500 inline-flex" type="button" @click="showEditBackupPath = !showEditBackupPath">
|
||||||
|
<span class="material-icons text-lg">edit</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<form class="flex items-center w-full space-x-1" @submit.prevent="saveBackupPath">
|
||||||
|
<ui-text-input v-model="newBackupLocation" :disabled="savingBackupPath || !canEditBackup" class="w-full max-w-[calc(100%-50px)] text-sm h-8" />
|
||||||
|
<ui-btn v-if="canEditBackup" small :loading="savingBackupPath" color="success" type="submit" class="h-8">{{ $strings.ButtonSave }}</ui-btn>
|
||||||
|
<ui-btn small :disabled="savingBackupPath" type="button" class="h-8" @click="cancelEditBackupPath">{{ $strings.ButtonCancel }}</ui-btn>
|
||||||
|
</form>
|
||||||
|
<p class="text-sm text-warning/80 pt-1">{{ canEditBackup ? $strings.MessageBackupsLocationEditNote : $strings.MessageBackupsLocationNoEditNote }}</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-center py-2">
|
<div class="flex items-center py-2">
|
||||||
@@ -15,21 +32,23 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="enableBackups" class="mb-6">
|
<div v-if="enableBackups" class="mb-6">
|
||||||
<div class="flex items-center pl-6 mb-2">
|
<div class="flex items-center pl-0 sm:pl-6 mb-2">
|
||||||
<span class="material-icons-outlined text-2xl text-black-50 mr-2">schedule</span>
|
<span class="material-icons-outlined text-xl sm:text-2xl text-black-50 mr-2">schedule</span>
|
||||||
<div class="w-40">
|
<div class="w-32 min-w-32 sm:w-40 sm:min-w-40">
|
||||||
<span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.HeaderSchedule }}:</span>
|
<span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.HeaderSchedule }}:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-gray-100">{{ scheduleDescription }}</div>
|
<div class="text-gray-100 text-sm sm:text-base">{{ scheduleDescription }}</div>
|
||||||
<span class="material-icons text-lg text-black-50 hover:text-yellow-500 cursor-pointer ml-2" @click="showCronBuilder = !showCronBuilder">edit</span>
|
<button class="ml-2 text-black-50 hover:text-yellow-500 inline-flex" type="button" @click="showCronBuilder = !showCronBuilder">
|
||||||
|
<span class="material-icons text-lg">edit</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="nextBackupDate" class="flex items-center pl-6 py-0.5 px-2">
|
<div v-if="nextBackupDate" class="flex items-center pl-0 sm:pl-6 py-0.5">
|
||||||
<span class="material-icons-outlined text-2xl text-black-50 mr-2">event</span>
|
<span class="material-icons-outlined text-xl sm:text-2xl text-black-50 mr-2">event</span>
|
||||||
<div class="w-40">
|
<div class="w-32 min-w-32 sm:w-40 sm:min-w-40">
|
||||||
<span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelNextBackupDate }}:</span>
|
<span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelNextBackupDate }}:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-gray-100">{{ nextBackupDate }}</div>
|
<div class="text-gray-100 text-sm sm:text-base">{{ nextBackupDate }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -49,7 +68,7 @@
|
|||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<tables-backups-table @loaded="backupsLoaded" />
|
<tables-backups-table ref="backupsTable" @loaded="backupsLoaded" />
|
||||||
|
|
||||||
<modals-backup-schedule-modal v-model="showCronBuilder" :cron-expression.sync="cronExpression" />
|
<modals-backup-schedule-modal v-model="showCronBuilder" :cron-expression.sync="cronExpression" />
|
||||||
</app-settings-content>
|
</app-settings-content>
|
||||||
@@ -72,7 +91,11 @@ export default {
|
|||||||
cronExpression: '',
|
cronExpression: '',
|
||||||
newServerSettings: {},
|
newServerSettings: {},
|
||||||
showCronBuilder: false,
|
showCronBuilder: false,
|
||||||
backupLocation: ''
|
showEditBackupPath: false,
|
||||||
|
backupPathEnvSet: false,
|
||||||
|
backupLocation: '',
|
||||||
|
newBackupLocation: '',
|
||||||
|
savingBackupPath: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@@ -93,6 +116,10 @@ export default {
|
|||||||
timeFormat() {
|
timeFormat() {
|
||||||
return this.serverSettings.timeFormat
|
return this.serverSettings.timeFormat
|
||||||
},
|
},
|
||||||
|
canEditBackup() {
|
||||||
|
// Prevent editing of backup path if an environment variable is set
|
||||||
|
return !this.backupPathEnvSet
|
||||||
|
},
|
||||||
scheduleDescription() {
|
scheduleDescription() {
|
||||||
if (!this.cronExpression) return ''
|
if (!this.cronExpression) return ''
|
||||||
const parsed = this.$parseCronExpression(this.cronExpression)
|
const parsed = this.$parseCronExpression(this.cronExpression)
|
||||||
@@ -105,8 +132,42 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
backupsLoaded(backupLocation) {
|
backupsLoaded(data) {
|
||||||
this.backupLocation = backupLocation
|
this.backupLocation = data.backupLocation
|
||||||
|
this.newBackupLocation = data.backupLocation
|
||||||
|
this.backupPathEnvSet = data.backupPathEnvSet
|
||||||
|
},
|
||||||
|
cancelEditBackupPath() {
|
||||||
|
this.newBackupLocation = this.backupLocation
|
||||||
|
this.showEditBackupPath = false
|
||||||
|
},
|
||||||
|
saveBackupPath() {
|
||||||
|
if (!this.newBackupLocation?.trim()) {
|
||||||
|
this.$toast.error(this.$strings.MessageBackupsLocationPathEmpty)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.newBackupLocation = this.newBackupLocation.trim()
|
||||||
|
if (this.newBackupLocation === this.backupLocation) {
|
||||||
|
this.showEditBackupPath = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
this.savingBackupPath = true
|
||||||
|
this.$axios
|
||||||
|
.patch('/api/backups/path', { path: this.newBackupLocation })
|
||||||
|
.then(() => {
|
||||||
|
this.backupLocation = this.newBackupLocation
|
||||||
|
this.showEditBackupPath = false
|
||||||
|
this.$refs.backupsTable.loadBackups()
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error('Failed to save backup path', error)
|
||||||
|
const errorMsg = error.response?.data || 'Failed to save backup path'
|
||||||
|
this.$toast.error(errorMsg)
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
this.savingBackupPath = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
updateBackupsSettings() {
|
updateBackupsSettings() {
|
||||||
if (isNaN(this.maxBackupSize) || this.maxBackupSize <= 0) {
|
if (isNaN(this.maxBackupSize) || this.maxBackupSize <= 0) {
|
||||||
|
|||||||
@@ -20,6 +20,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex items-center mb-2 py-3">
|
<div class="flex items-center mb-2 py-3">
|
||||||
|
<div class="w-full md:w-1/2 px-1">
|
||||||
|
<!-- secure toggle -->
|
||||||
|
<div class="flex items-center">
|
||||||
<ui-toggle-switch labeledBy="email-settings-secure" v-model="newSettings.secure" :disabled="savingSettings" />
|
<ui-toggle-switch labeledBy="email-settings-secure" v-model="newSettings.secure" :disabled="savingSettings" />
|
||||||
<ui-tooltip :text="$strings.LabelEmailSettingsSecureHelp">
|
<ui-tooltip :text="$strings.LabelEmailSettingsSecureHelp">
|
||||||
<div class="pl-4 flex items-center">
|
<div class="pl-4 flex items-center">
|
||||||
@@ -28,6 +31,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</ui-tooltip>
|
</ui-tooltip>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="w-full md:w-1/2 px-1">
|
||||||
|
<!-- reject unauthorized toggle -->
|
||||||
|
<div class="flex items-center">
|
||||||
|
<ui-toggle-switch labeledBy="email-settings-reject-unauthorized" v-model="newSettings.rejectUnauthorized" :disabled="savingSettings" />
|
||||||
|
<ui-tooltip :text="$strings.LabelEmailSettingsRejectUnauthorizedHelp">
|
||||||
|
<div class="pl-4 flex items-center">
|
||||||
|
<span id="email-settings-reject-unauthorized">{{ $strings.LabelEmailSettingsRejectUnauthorized }}</span>
|
||||||
|
<span class="material-icons text-lg pl-1">info_outlined</span>
|
||||||
|
</div>
|
||||||
|
</ui-tooltip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="flex items-center -mx-1 mb-2">
|
<div class="flex items-center -mx-1 mb-2">
|
||||||
<div class="w-full md:w-1/2 px-1">
|
<div class="w-full md:w-1/2 px-1">
|
||||||
@@ -119,6 +136,7 @@ export default {
|
|||||||
host: null,
|
host: null,
|
||||||
port: 465,
|
port: 465,
|
||||||
secure: true,
|
secure: true,
|
||||||
|
rejectUnauthorized: true,
|
||||||
user: null,
|
user: null,
|
||||||
pass: null,
|
pass: null,
|
||||||
testAddress: null,
|
testAddress: null,
|
||||||
@@ -257,6 +275,7 @@ export default {
|
|||||||
host: this.newSettings.host,
|
host: this.newSettings.host,
|
||||||
port: this.newSettings.port,
|
port: this.newSettings.port,
|
||||||
secure: this.newSettings.secure,
|
secure: this.newSettings.secure,
|
||||||
|
rejectUnauthorized: this.newSettings.rejectUnauthorized,
|
||||||
user: this.newSettings.user,
|
user: this.newSettings.user,
|
||||||
pass: this.newSettings.pass,
|
pass: this.newSettings.pass,
|
||||||
testAddress: this.newSettings.testAddress,
|
testAddress: this.newSettings.testAddress,
|
||||||
|
|||||||
@@ -368,7 +368,8 @@ export default {
|
|||||||
},
|
},
|
||||||
purgeItemsCache() {
|
purgeItemsCache() {
|
||||||
const payload = {
|
const payload = {
|
||||||
message: `<span class="text-warning text-base">Warning! This will delete the entire folder at /metadata/cache/items.</span><br />Are you sure you want to purge items cache?`,
|
// message: `This will delete the entire folder at <code>/metadata/cache/items</code>.<br />Are you sure you want to purge items cache?`,
|
||||||
|
message: this.$strings.MessageConfirmPurgeItemsCache,
|
||||||
callback: (confirmed) => {
|
callback: (confirmed) => {
|
||||||
if (confirmed) {
|
if (confirmed) {
|
||||||
this.sendPurgeItemsCache()
|
this.sendPurgeItemsCache()
|
||||||
|
|||||||
@@ -100,7 +100,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<p v-else class="text-white text-opacity-50">{{ $strings.MessageNoListeningSessions }}</p>
|
<p v-else class="text-white text-opacity-50">{{ $strings.MessageNoListeningSessions }}</p>
|
||||||
|
|
||||||
<div class="w-full my-8 h-px bg-white/10" />
|
<div v-if="openListeningSessions.length" class="w-full my-8 h-px bg-white/10" />
|
||||||
|
|
||||||
<!-- open listening sessions table -->
|
<!-- open listening sessions table -->
|
||||||
<p v-if="openListeningSessions.length" class="text-lg my-4">Open Listening Sessions</p>
|
<p v-if="openListeningSessions.length" class="text-lg my-4">Open Listening Sessions</p>
|
||||||
@@ -144,6 +144,45 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div v-if="openShareListeningSessions.length" class="w-full my-8 h-px bg-white/10" />
|
||||||
|
|
||||||
|
<!-- open share listening sessions table -->
|
||||||
|
<p v-if="openShareListeningSessions.length" class="text-lg my-4">Open Share Listening Sessions</p>
|
||||||
|
<div v-if="openShareListeningSessions.length" class="block max-w-full">
|
||||||
|
<table class="userSessionsTable">
|
||||||
|
<tr class="bg-primary bg-opacity-40">
|
||||||
|
<th class="w-48 min-w-48 text-left">{{ $strings.LabelItem }}</th>
|
||||||
|
<th class="w-20 min-w-20 text-left hidden md:table-cell">{{ $strings.LabelUser }}</th>
|
||||||
|
<th class="w-32 min-w-32 text-left hidden md:table-cell">{{ $strings.LabelPlayMethod }}</th>
|
||||||
|
<th class="w-32 min-w-32 text-left hidden sm:table-cell">{{ $strings.LabelDeviceInfo }}</th>
|
||||||
|
<th class="w-16 min-w-16">{{ $strings.LabelLastTime }}</th>
|
||||||
|
<th class="flex-grow hidden sm:table-cell">{{ $strings.LabelLastUpdate }}</th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr v-for="session in openShareListeningSessions" :key="`open-${session.id}`" class="cursor-pointer" @click="showSession(session)">
|
||||||
|
<td class="py-1 max-w-48">
|
||||||
|
<p class="text-xs text-gray-200 truncate">{{ session.displayTitle }}</p>
|
||||||
|
<p class="text-xs text-gray-400 truncate">{{ session.displayAuthor }}</p>
|
||||||
|
</td>
|
||||||
|
<td class="hidden md:table-cell"></td>
|
||||||
|
<td class="hidden md:table-cell">
|
||||||
|
<p class="text-xs">{{ getPlayMethodName(session.playMethod) }}</p>
|
||||||
|
</td>
|
||||||
|
<td class="hidden sm:table-cell max-w-32 min-w-32">
|
||||||
|
<p class="text-xs truncate" v-html="getDeviceInfoString(session.deviceInfo)" />
|
||||||
|
</td>
|
||||||
|
<td class="text-center hover:underline" @click.stop="clickCurrentTime(session)">
|
||||||
|
<p class="text-xs font-mono">{{ $secondsToTimestamp(session.currentTime) }}</p>
|
||||||
|
</td>
|
||||||
|
<td class="text-center hidden sm:table-cell">
|
||||||
|
<ui-tooltip v-if="session.updatedAt" direction="top" :text="$formatDatetime(session.updatedAt, dateFormat, timeFormat)">
|
||||||
|
<p class="text-xs text-gray-200">{{ $dateDistanceFromNow(session.updatedAt) }}</p>
|
||||||
|
</ui-tooltip>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</app-settings-content>
|
</app-settings-content>
|
||||||
|
|
||||||
<modals-listening-session-modal v-model="showSessionModal" :session="selectedSession" @removedSession="removedSession" @closedSession="closedSession" />
|
<modals-listening-session-modal v-model="showSessionModal" :session="selectedSession" @removedSession="removedSession" @closedSession="closedSession" />
|
||||||
@@ -180,6 +219,7 @@ export default {
|
|||||||
selectedSession: null,
|
selectedSession: null,
|
||||||
listeningSessions: [],
|
listeningSessions: [],
|
||||||
openListeningSessions: [],
|
openListeningSessions: [],
|
||||||
|
openShareListeningSessions: [],
|
||||||
numPages: 0,
|
numPages: 0,
|
||||||
total: 0,
|
total: 0,
|
||||||
currentPage: 0,
|
currentPage: 0,
|
||||||
@@ -455,6 +495,7 @@ export default {
|
|||||||
s.open = true
|
s.open = true
|
||||||
return s
|
return s
|
||||||
})
|
})
|
||||||
|
this.openShareListeningSessions = data.shareSessions || []
|
||||||
},
|
},
|
||||||
init() {
|
init() {
|
||||||
this.loadSessions(0)
|
this.loadSessions(0)
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Include episode downloads for podcasts
|
// Include episode downloads for podcasts
|
||||||
var item = await app.$axios.$get(`/api/items/${params.id}?expanded=1&include=downloads,rssfeed`).catch((error) => {
|
var item = await app.$axios.$get(`/api/items/${params.id}?expanded=1&include=downloads,rssfeed,share`).catch((error) => {
|
||||||
console.error('Failed', error)
|
console.error('Failed', error)
|
||||||
return false
|
return false
|
||||||
})
|
})
|
||||||
@@ -170,7 +170,8 @@ export default {
|
|||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
libraryItem: item,
|
libraryItem: item,
|
||||||
rssFeed: item.rssFeed || null
|
rssFeed: item.rssFeed || null,
|
||||||
|
mediaItemShare: item.mediaItemShare || null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -437,6 +438,13 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.userIsAdminOrUp && !this.isPodcast && this.tracks.length) {
|
||||||
|
items.push({
|
||||||
|
text: this.$strings.LabelShare,
|
||||||
|
action: 'share'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if (this.userCanDelete) {
|
if (this.userCanDelete) {
|
||||||
items.push({
|
items.push({
|
||||||
text: this.$strings.ButtonDelete,
|
text: this.$strings.ButtonDelete,
|
||||||
@@ -666,6 +674,16 @@ export default {
|
|||||||
this.rssFeed = null
|
this.rssFeed = null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
shareOpen(mediaItemShare) {
|
||||||
|
if (mediaItemShare.mediaItemId === this.media.id) {
|
||||||
|
this.mediaItemShare = mediaItemShare
|
||||||
|
}
|
||||||
|
},
|
||||||
|
shareClosed(mediaItemShare) {
|
||||||
|
if (mediaItemShare.mediaItemId === this.media.id) {
|
||||||
|
this.mediaItemShare = null
|
||||||
|
}
|
||||||
|
},
|
||||||
queueBtnClick() {
|
queueBtnClick() {
|
||||||
if (this.isQueued) {
|
if (this.isQueued) {
|
||||||
// Remove from queue
|
// Remove from queue
|
||||||
@@ -761,6 +779,9 @@ export default {
|
|||||||
this.deleteLibraryItem()
|
this.deleteLibraryItem()
|
||||||
} else if (action === 'sendToDevice') {
|
} else if (action === 'sendToDevice') {
|
||||||
this.sendToDevice(data)
|
this.sendToDevice(data)
|
||||||
|
} else if (action === 'share') {
|
||||||
|
this.$store.commit('setSelectedLibraryItem', this.libraryItem)
|
||||||
|
this.$store.commit('globals/setShareModal', this.mediaItemShare)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -778,6 +799,8 @@ export default {
|
|||||||
this.$root.socket.on('item_updated', this.libraryItemUpdated)
|
this.$root.socket.on('item_updated', this.libraryItemUpdated)
|
||||||
this.$root.socket.on('rss_feed_open', this.rssFeedOpen)
|
this.$root.socket.on('rss_feed_open', this.rssFeedOpen)
|
||||||
this.$root.socket.on('rss_feed_closed', this.rssFeedClosed)
|
this.$root.socket.on('rss_feed_closed', this.rssFeedClosed)
|
||||||
|
this.$root.socket.on('share_open', this.shareOpen)
|
||||||
|
this.$root.socket.on('share_closed', this.shareClosed)
|
||||||
this.$root.socket.on('episode_download_queued', this.episodeDownloadQueued)
|
this.$root.socket.on('episode_download_queued', this.episodeDownloadQueued)
|
||||||
this.$root.socket.on('episode_download_started', this.episodeDownloadStarted)
|
this.$root.socket.on('episode_download_started', this.episodeDownloadStarted)
|
||||||
this.$root.socket.on('episode_download_finished', this.episodeDownloadFinished)
|
this.$root.socket.on('episode_download_finished', this.episodeDownloadFinished)
|
||||||
@@ -787,6 +810,8 @@ export default {
|
|||||||
this.$root.socket.off('item_updated', this.libraryItemUpdated)
|
this.$root.socket.off('item_updated', this.libraryItemUpdated)
|
||||||
this.$root.socket.off('rss_feed_open', this.rssFeedOpen)
|
this.$root.socket.off('rss_feed_open', this.rssFeedOpen)
|
||||||
this.$root.socket.off('rss_feed_closed', this.rssFeedClosed)
|
this.$root.socket.off('rss_feed_closed', this.rssFeedClosed)
|
||||||
|
this.$root.socket.off('share_open', this.shareOpen)
|
||||||
|
this.$root.socket.off('share_closed', this.shareClosed)
|
||||||
this.$root.socket.off('episode_download_queued', this.episodeDownloadQueued)
|
this.$root.socket.off('episode_download_queued', this.episodeDownloadQueued)
|
||||||
this.$root.socket.off('episode_download_started', this.episodeDownloadStarted)
|
this.$root.socket.off('episode_download_started', this.episodeDownloadStarted)
|
||||||
this.$root.socket.off('episode_download_finished', this.episodeDownloadFinished)
|
this.$root.socket.off('episode_download_finished', this.episodeDownloadFinished)
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page" :class="streamLibraryItem ? 'streaming' : ''">
|
<div class="page" :class="streamLibraryItem ? 'streaming' : ''">
|
||||||
<app-book-shelf-toolbar page="authors" is-home :authors="authors" />
|
<app-book-shelf-toolbar page="authors" is-home :authors="authors" />
|
||||||
<div id="bookshelf" class="w-full h-full p-8 overflow-y-auto">
|
<div id="bookshelf" class="w-full h-full p-8e overflow-y-auto" :style="{ fontSize: sizeMultiplier + 'rem' }">
|
||||||
|
<!-- Cover size widget -->
|
||||||
|
<widgets-cover-size-widget class="fixed right-4 z-50" :style="{ bottom: streamLibraryItem ? '181px' : '16px' }" />
|
||||||
<div class="flex flex-wrap justify-center">
|
<div class="flex flex-wrap justify-center">
|
||||||
<template v-for="author in authorsSorted">
|
<template v-for="author in authorsSorted">
|
||||||
<cards-author-card :key="author.id" :author="author" :width="160" :height="200" class="p-3" @edit="editAuthor" />
|
<cards-author-card :key="author.id" :author="author" class="p-3e" @edit="editAuthor" />
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -36,6 +38,9 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
sizeMultiplier() {
|
||||||
|
return this.$store.getters['user/getSizeMultiplier']
|
||||||
|
},
|
||||||
streamLibraryItem() {
|
streamLibraryItem() {
|
||||||
return this.$store.state.streamLibraryItem
|
return this.$store.state.streamLibraryItem
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,278 @@
|
|||||||
|
<template>
|
||||||
|
<div class="w-full h-dvh max-h-dvh overflow-hidden" :style="{ backgroundColor: coverRgb }">
|
||||||
|
<div class="w-screen h-screen absolute inset-0 pointer-events-none" style="background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(38, 38, 38, 1) 80%)"></div>
|
||||||
|
<div class="absolute inset-0 w-screen h-dvh flex items-center justify-center z-10">
|
||||||
|
<div class="w-full p-2 sm:p-4 md:p-8">
|
||||||
|
<div v-if="!isMobileLandscape" :style="{ width: coverWidth + 'px', height: coverHeight + 'px' }" class="mx-auto overflow-hidden rounded-xl my-2">
|
||||||
|
<img ref="coverImg" :src="coverUrl" class="object-contain w-full h-full" @load="coverImageLoaded" />
|
||||||
|
</div>
|
||||||
|
<p class="text-2xl lg:text-3xl font-semibold text-center mb-1 line-clamp-2">{{ mediaItemShare.playbackSession.displayTitle || 'No title' }}</p>
|
||||||
|
<p v-if="mediaItemShare.playbackSession.displayAuthor" class="text-lg lg:text-xl text-slate-400 font-semibold text-center mb-1 truncate">{{ mediaItemShare.playbackSession.displayAuthor }}</p>
|
||||||
|
|
||||||
|
<div class="w-full pt-16">
|
||||||
|
<player-ui ref="audioPlayer" :chapters="chapters" :paused="isPaused" :loading="!hasLoaded" :is-podcast="false" hide-bookmarks hide-sleep-timer @playPause="playPause" @jumpForward="jumpForward" @jumpBackward="jumpBackward" @setVolume="setVolume" @setPlaybackRate="setPlaybackRate" @seek="seek" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import LocalAudioPlayer from '../../players/LocalAudioPlayer'
|
||||||
|
import { FastAverageColor } from 'fast-average-color'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
layout: 'blank',
|
||||||
|
async asyncData({ params, error, app, query }) {
|
||||||
|
let endpoint = `/public/share/${params.slug}`
|
||||||
|
if (query.t && !isNaN(query.t)) {
|
||||||
|
endpoint += `?t=${query.t}`
|
||||||
|
}
|
||||||
|
const mediaItemShare = await app.$axios.$get(endpoint, { timeout: 10000 }).catch((error) => {
|
||||||
|
console.error('Failed', error)
|
||||||
|
return null
|
||||||
|
})
|
||||||
|
if (!mediaItemShare) {
|
||||||
|
return error({ statusCode: 404, message: 'Media item not found or expired' })
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
mediaItemShare: mediaItemShare
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
localAudioPlayer: new LocalAudioPlayer(),
|
||||||
|
playerState: null,
|
||||||
|
playInterval: null,
|
||||||
|
hasLoaded: false,
|
||||||
|
totalDuration: 0,
|
||||||
|
windowWidth: 0,
|
||||||
|
windowHeight: 0,
|
||||||
|
listeningTimeSinceSync: 0,
|
||||||
|
coverRgb: null,
|
||||||
|
coverBgIsLight: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
playbackSession() {
|
||||||
|
return this.mediaItemShare.playbackSession
|
||||||
|
},
|
||||||
|
coverUrl() {
|
||||||
|
if (!this.playbackSession.coverPath) return `${this.$config.routerBasePath}/book_placeholder.jpg`
|
||||||
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
return `http://localhost:3333/public/share/${this.mediaItemShare.slug}/cover`
|
||||||
|
}
|
||||||
|
return `/public/share/${this.mediaItemShare.slug}/cover`
|
||||||
|
},
|
||||||
|
audioTracks() {
|
||||||
|
return (this.playbackSession.audioTracks || []).map((track) => {
|
||||||
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
track.contentUrl = `${process.env.serverUrl}${track.contentUrl}`
|
||||||
|
}
|
||||||
|
track.relativeContentUrl = track.contentUrl
|
||||||
|
return track
|
||||||
|
})
|
||||||
|
},
|
||||||
|
isPlaying() {
|
||||||
|
return this.playerState === 'PLAYING'
|
||||||
|
},
|
||||||
|
isPaused() {
|
||||||
|
return !this.isPlaying
|
||||||
|
},
|
||||||
|
chapters() {
|
||||||
|
return this.playbackSession.chapters || []
|
||||||
|
},
|
||||||
|
coverAspectRatio() {
|
||||||
|
const coverAspectRatio = this.playbackSession.coverAspectRatio
|
||||||
|
return coverAspectRatio === this.$constants.BookCoverAspectRatio.STANDARD ? 1.6 : 1
|
||||||
|
},
|
||||||
|
isMobileLandscape() {
|
||||||
|
return this.windowWidth > this.windowHeight && this.windowHeight < 450
|
||||||
|
},
|
||||||
|
coverWidth() {
|
||||||
|
const availableCoverWidth = Math.min(450, this.windowWidth - 32)
|
||||||
|
const availableCoverHeight = Math.min(450, this.windowHeight - 250)
|
||||||
|
|
||||||
|
const mostCoverHeight = availableCoverWidth * this.coverAspectRatio
|
||||||
|
if (mostCoverHeight > availableCoverHeight) {
|
||||||
|
return availableCoverHeight / this.coverAspectRatio
|
||||||
|
}
|
||||||
|
return availableCoverWidth
|
||||||
|
},
|
||||||
|
coverHeight() {
|
||||||
|
return this.coverWidth * this.coverAspectRatio
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async coverImageLoaded(e) {
|
||||||
|
if (!this.playbackSession.coverPath) return
|
||||||
|
const fac = new FastAverageColor()
|
||||||
|
fac
|
||||||
|
.getColorAsync(e.target)
|
||||||
|
.then((color) => {
|
||||||
|
this.coverRgb = color.rgba
|
||||||
|
this.coverBgIsLight = color.isLight
|
||||||
|
|
||||||
|
document.body.style.backgroundColor = color.hex
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
console.log(e)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
playPause() {
|
||||||
|
if (!this.localAudioPlayer || !this.hasLoaded) return
|
||||||
|
this.localAudioPlayer.playPause()
|
||||||
|
},
|
||||||
|
jumpForward() {
|
||||||
|
if (!this.localAudioPlayer || !this.hasLoaded) return
|
||||||
|
const currentTime = this.localAudioPlayer.getCurrentTime()
|
||||||
|
const duration = this.localAudioPlayer.getDuration()
|
||||||
|
this.seek(Math.min(currentTime + 10, duration))
|
||||||
|
},
|
||||||
|
jumpBackward() {
|
||||||
|
if (!this.localAudioPlayer || !this.hasLoaded) return
|
||||||
|
const currentTime = this.localAudioPlayer.getCurrentTime()
|
||||||
|
this.seek(Math.max(currentTime - 10, 0))
|
||||||
|
},
|
||||||
|
setVolume(volume) {
|
||||||
|
if (!this.localAudioPlayer || !this.hasLoaded) return
|
||||||
|
this.localAudioPlayer.setVolume(volume)
|
||||||
|
},
|
||||||
|
setPlaybackRate(playbackRate) {
|
||||||
|
if (!this.localAudioPlayer || !this.hasLoaded) return
|
||||||
|
this.localAudioPlayer.setPlaybackRate(playbackRate)
|
||||||
|
},
|
||||||
|
seek(time) {
|
||||||
|
if (!this.localAudioPlayer || !this.hasLoaded) return
|
||||||
|
|
||||||
|
this.localAudioPlayer.seek(time, this.isPlaying)
|
||||||
|
this.setCurrentTime(time)
|
||||||
|
},
|
||||||
|
setCurrentTime(time) {
|
||||||
|
if (!this.$refs.audioPlayer) return
|
||||||
|
|
||||||
|
// Update UI
|
||||||
|
this.$refs.audioPlayer.setCurrentTime(time)
|
||||||
|
},
|
||||||
|
setDuration() {
|
||||||
|
if (!this.localAudioPlayer) return
|
||||||
|
this.totalDuration = this.localAudioPlayer.getDuration()
|
||||||
|
if (this.$refs.audioPlayer) {
|
||||||
|
this.$refs.audioPlayer.setDuration(this.totalDuration)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
sendProgressSync(currentTime) {
|
||||||
|
console.log('Sending progress sync for time', currentTime)
|
||||||
|
const progress = {
|
||||||
|
currentTime
|
||||||
|
}
|
||||||
|
this.$axios.$patch(`/public/share/${this.mediaItemShare.slug}/progress`, progress, { progress: false }).catch((error) => {
|
||||||
|
console.error('Failed to send progress sync', error)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
startPlayInterval() {
|
||||||
|
let lastTick = Date.now()
|
||||||
|
clearInterval(this.playInterval)
|
||||||
|
this.playInterval = setInterval(() => {
|
||||||
|
if (!this.localAudioPlayer) return
|
||||||
|
|
||||||
|
const currentTime = this.localAudioPlayer.getCurrentTime()
|
||||||
|
this.setCurrentTime(currentTime)
|
||||||
|
const exactTimeElapsed = (Date.now() - lastTick) / 1000
|
||||||
|
lastTick = Date.now()
|
||||||
|
this.listeningTimeSinceSync += exactTimeElapsed
|
||||||
|
if (this.listeningTimeSinceSync >= 30) {
|
||||||
|
this.listeningTimeSinceSync = 0
|
||||||
|
this.sendProgressSync(currentTime)
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
},
|
||||||
|
stopPlayInterval() {
|
||||||
|
clearInterval(this.playInterval)
|
||||||
|
this.playInterval = null
|
||||||
|
},
|
||||||
|
playerStateChange(state) {
|
||||||
|
this.playerState = state
|
||||||
|
if (state === 'LOADED' || state === 'PLAYING') {
|
||||||
|
this.setDuration()
|
||||||
|
}
|
||||||
|
if (state === 'LOADED') {
|
||||||
|
this.hasLoaded = true
|
||||||
|
}
|
||||||
|
if (state === 'PLAYING') {
|
||||||
|
this.startPlayInterval()
|
||||||
|
} else {
|
||||||
|
this.stopPlayInterval()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
playerTimeUpdate(time) {
|
||||||
|
this.setCurrentTime(time)
|
||||||
|
},
|
||||||
|
getHotkeyName(e) {
|
||||||
|
var keyCode = e.keyCode || e.which
|
||||||
|
if (!this.$keynames[keyCode]) {
|
||||||
|
// Unused hotkey
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
var keyName = this.$keynames[keyCode]
|
||||||
|
var name = keyName
|
||||||
|
if (e.shiftKey) name = 'Shift-' + keyName
|
||||||
|
if (process.env.NODE_ENV !== 'production') {
|
||||||
|
console.log('Hotkey command', name)
|
||||||
|
}
|
||||||
|
return name
|
||||||
|
},
|
||||||
|
keyDown(e) {
|
||||||
|
if (!this.localAudioPlayer || !this.hasLoaded) return
|
||||||
|
|
||||||
|
var name = this.getHotkeyName(e)
|
||||||
|
if (!name) return
|
||||||
|
|
||||||
|
// Playing audiobook
|
||||||
|
if (Object.values(this.$hotkeys.AudioPlayer).includes(name)) {
|
||||||
|
this.$eventBus.$emit('player-hotkey', name)
|
||||||
|
e.preventDefault()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resize() {
|
||||||
|
this.windowWidth = window.innerWidth
|
||||||
|
this.windowHeight = window.innerHeight
|
||||||
|
},
|
||||||
|
playerError(error) {
|
||||||
|
console.error('Player error', error)
|
||||||
|
this.$toast.error('Failed to play audio on device')
|
||||||
|
},
|
||||||
|
playerFinished() {
|
||||||
|
console.log('Player finished')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.resize()
|
||||||
|
window.addEventListener('resize', this.resize)
|
||||||
|
window.addEventListener('keydown', this.keyDown)
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'development') {
|
||||||
|
console.log('Loaded media item share', this.mediaItemShare)
|
||||||
|
}
|
||||||
|
|
||||||
|
const startTime = this.playbackSession.currentTime || 0
|
||||||
|
this.localAudioPlayer.set(null, this.audioTracks, false, startTime, false)
|
||||||
|
this.localAudioPlayer.on('stateChange', this.playerStateChange.bind(this))
|
||||||
|
this.localAudioPlayer.on('timeupdate', this.playerTimeUpdate.bind(this))
|
||||||
|
this.localAudioPlayer.on('error', this.playerError.bind(this))
|
||||||
|
this.localAudioPlayer.on('finished', this.playerFinished.bind(this))
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
window.removeEventListener('resize', this.resize)
|
||||||
|
window.removeEventListener('keydown', this.keyDown)
|
||||||
|
|
||||||
|
this.localAudioPlayer.off('stateChange', this.playerStateChange.bind(this))
|
||||||
|
this.localAudioPlayer.off('timeupdate', this.playerTimeUpdate.bind(this))
|
||||||
|
this.localAudioPlayer.off('error', this.playerError.bind(this))
|
||||||
|
this.localAudioPlayer.off('finished', this.playerFinished.bind(this))
|
||||||
|
this.localAudioPlayer.destroy()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
+30
-14
@@ -1,13 +1,22 @@
|
|||||||
|
|
||||||
function getMediaInfoFromTrack(libraryItem, castImage, track) {
|
function getMediaInfoFromTrack(libraryItem, castImage, track) {
|
||||||
|
let metadata = null
|
||||||
|
if (libraryItem.mediaType === 'podcast') {
|
||||||
|
metadata = new chrome.cast.media.MusicTrackMediaMetadata()
|
||||||
|
metadata.albumArtist = libraryItem.media.metadata.author
|
||||||
|
metadata.artist = libraryItem.media.metadata.author
|
||||||
|
metadata.title = track.title
|
||||||
|
metadata.albumName = libraryItem.media.metadata.title
|
||||||
|
metadata.images = [castImage]
|
||||||
|
} else {
|
||||||
// https://developers.google.com/cast/docs/reference/web_sender/chrome.cast.media.AudiobookChapterMediaMetadata
|
// https://developers.google.com/cast/docs/reference/web_sender/chrome.cast.media.AudiobookChapterMediaMetadata
|
||||||
var metadata = new chrome.cast.media.AudiobookChapterMediaMetadata()
|
metadata = new chrome.cast.media.AudiobookChapterMediaMetadata()
|
||||||
metadata.bookTitle = libraryItem.media.metadata.title
|
metadata.bookTitle = libraryItem.media.metadata.title
|
||||||
metadata.chapterNumber = track.index
|
metadata.chapterNumber = track.index
|
||||||
metadata.chapterTitle = track.title
|
metadata.chapterTitle = track.title
|
||||||
metadata.images = [castImage]
|
metadata.images = [castImage]
|
||||||
metadata.title = track.title
|
metadata.title = track.title
|
||||||
metadata.subtitle = libraryItem.media.metadata.title
|
metadata.subtitle = libraryItem.media.metadata.title
|
||||||
|
}
|
||||||
|
|
||||||
var trackurl = track.fullContentUrl
|
var trackurl = track.fullContentUrl
|
||||||
var mimeType = track.mimeType
|
var mimeType = track.mimeType
|
||||||
@@ -20,17 +29,25 @@ function getMediaInfoFromTrack(libraryItem, castImage, track) {
|
|||||||
|
|
||||||
function buildCastMediaInfo(libraryItem, coverUrl, tracks) {
|
function buildCastMediaInfo(libraryItem, coverUrl, tracks) {
|
||||||
const castImage = new chrome.cast.Image(coverUrl)
|
const castImage = new chrome.cast.Image(coverUrl)
|
||||||
return tracks.map(t => getMediaInfoFromTrack(libraryItem, castImage, t))
|
return tracks.map((t) => getMediaInfoFromTrack(libraryItem, castImage, t))
|
||||||
}
|
}
|
||||||
|
|
||||||
function buildCastQueueRequest(libraryItem, coverUrl, tracks, startTime) {
|
function buildCastQueueRequest(libraryItem, coverUrl, tracks, startTime) {
|
||||||
var mediaInfoItems = buildCastMediaInfo(libraryItem, coverUrl, tracks)
|
var mediaInfoItems = buildCastMediaInfo(libraryItem, coverUrl, tracks)
|
||||||
|
|
||||||
var containerMetadata = new chrome.cast.media.AudiobookContainerMetadata()
|
let containerMetadata = null
|
||||||
containerMetadata.authors = libraryItem.media.metadata.authors.map(a => a.name)
|
let queueType = chrome.cast.media.QueueType.AUDIOBOOK
|
||||||
|
if (libraryItem.mediaType === 'podcast') {
|
||||||
|
queueType = chrome.cast.media.QueueType.PODCAST_SERIES
|
||||||
|
containerMetadata = new chrome.cast.media.ContainerMetadata(chrome.cast.media.ContainerType.GENERIC_CONTAINER)
|
||||||
|
containerMetadata.title = libraryItem.media.metadata.title
|
||||||
|
} else {
|
||||||
|
containerMetadata = new chrome.cast.media.AudiobookContainerMetadata()
|
||||||
|
containerMetadata.authors = libraryItem.media.metadata.authors?.map((a) => a.name)
|
||||||
containerMetadata.narrators = libraryItem.media.metadata.narrators || []
|
containerMetadata.narrators = libraryItem.media.metadata.narrators || []
|
||||||
containerMetadata.publisher = libraryItem.media.metadata.publisher || undefined
|
containerMetadata.publisher = libraryItem.media.metadata.publisher || undefined
|
||||||
containerMetadata.title = libraryItem.media.metadata.title
|
containerMetadata.title = libraryItem.media.metadata.title
|
||||||
|
}
|
||||||
|
|
||||||
var mediaQueueItems = mediaInfoItems.map((mi) => {
|
var mediaQueueItems = mediaInfoItems.map((mi) => {
|
||||||
var queueItem = new chrome.cast.media.QueueItem(mi)
|
var queueItem = new chrome.cast.media.QueueItem(mi)
|
||||||
@@ -38,23 +55,25 @@ function buildCastQueueRequest(libraryItem, coverUrl, tracks, startTime) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Find track to start playback and calculate track start offset
|
// Find track to start playback and calculate track start offset
|
||||||
var track = tracks.find(at => at.startOffset <= startTime && at.startOffset + at.duration > startTime)
|
var track = tracks.find((at) => at.startOffset <= startTime && at.startOffset + at.duration > startTime)
|
||||||
var trackStartIndex = track ? track.index - 1 : 0
|
var trackStartIndex = track ? track.index - 1 : 0
|
||||||
var trackStartTime = Math.floor(track ? startTime - track.startOffset : 0)
|
var trackStartTime = Math.floor(track ? startTime - track.startOffset : 0)
|
||||||
|
|
||||||
var queueData = new chrome.cast.media.QueueData(libraryItem.id, libraryItem.media.metadata.title, '', false, mediaQueueItems, trackStartIndex, trackStartTime)
|
var queueData = new chrome.cast.media.QueueData(libraryItem.id, libraryItem.media.metadata.title, '', false, mediaQueueItems, trackStartIndex, trackStartTime)
|
||||||
queueData.containerMetadata = containerMetadata
|
queueData.containerMetadata = containerMetadata
|
||||||
queueData.queueType = chrome.cast.media.QueueType.AUDIOBOOK
|
queueData.queueType = queueType
|
||||||
return queueData
|
return queueData
|
||||||
}
|
}
|
||||||
|
|
||||||
function castLoadMedia(castSession, request) {
|
function castLoadMedia(castSession, request) {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
castSession.loadMedia(request)
|
castSession.loadMedia(request).then(
|
||||||
.then(() => resolve(true), (reason) => {
|
() => resolve(true),
|
||||||
|
(reason) => {
|
||||||
console.error('Load media failed', reason)
|
console.error('Load media failed', reason)
|
||||||
resolve(false)
|
resolve(false)
|
||||||
})
|
}
|
||||||
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +88,4 @@ function buildCastLoadRequest(libraryItem, coverUrl, tracks, startTime, autoplay
|
|||||||
return request
|
return request
|
||||||
}
|
}
|
||||||
|
|
||||||
export {
|
export { buildCastLoadRequest, castLoadMedia }
|
||||||
buildCastLoadRequest,
|
|
||||||
castLoadMedia
|
|
||||||
}
|
|
||||||
|
|||||||
+54
-52
@@ -1,36 +1,37 @@
|
|||||||
import Vue from "vue"
|
import Vue from 'vue'
|
||||||
import enUsStrings from '../strings/en-us.json'
|
import enUsStrings from '../strings/en-us.json'
|
||||||
import { supplant } from './utils'
|
import { supplant } from './utils'
|
||||||
|
|
||||||
const defaultCode = 'en-us'
|
const defaultCode = 'en-us'
|
||||||
|
|
||||||
const languageCodeMap = {
|
const languageCodeMap = {
|
||||||
'bg': { label: 'Български', dateFnsLocale: 'bg' },
|
bg: { label: 'Български', dateFnsLocale: 'bg' },
|
||||||
'bn': { label: 'বাংলা', dateFnsLocale: 'bn' },
|
bn: { label: 'বাংলা', dateFnsLocale: 'bn' },
|
||||||
'cs': { label: 'Čeština', dateFnsLocale: 'cs' },
|
cs: { label: 'Čeština', dateFnsLocale: 'cs' },
|
||||||
'da': { label: 'Dansk', dateFnsLocale: 'da' },
|
da: { label: 'Dansk', dateFnsLocale: 'da' },
|
||||||
'de': { label: 'Deutsch', dateFnsLocale: 'de' },
|
de: { label: 'Deutsch', dateFnsLocale: 'de' },
|
||||||
'en-us': { label: 'English', dateFnsLocale: 'enUS' },
|
'en-us': { label: 'English', dateFnsLocale: 'enUS' },
|
||||||
'es': { label: 'Español', dateFnsLocale: 'es' },
|
es: { label: 'Español', dateFnsLocale: 'es' },
|
||||||
'et': { label: 'Eesti', dateFnsLocale: 'et' },
|
et: { label: 'Eesti', dateFnsLocale: 'et' },
|
||||||
'fr': { label: 'Français', dateFnsLocale: 'fr' },
|
fi: { label: 'Suomi', dateFnsLocale: 'fi' },
|
||||||
'he': { label: 'עברית', dateFnsLocale: 'he' },
|
fr: { label: 'Français', dateFnsLocale: 'fr' },
|
||||||
'hr': { label: 'Hrvatski', dateFnsLocale: 'hr' },
|
he: { label: 'עברית', dateFnsLocale: 'he' },
|
||||||
'it': { label: 'Italiano', dateFnsLocale: 'it' },
|
hr: { label: 'Hrvatski', dateFnsLocale: 'hr' },
|
||||||
'lt': { label: 'Lietuvių', dateFnsLocale: 'lt' },
|
it: { label: 'Italiano', dateFnsLocale: 'it' },
|
||||||
'hu': { label: 'Magyar', dateFnsLocale: 'hu' },
|
lt: { label: 'Lietuvių', dateFnsLocale: 'lt' },
|
||||||
'nl': { label: 'Nederlands', dateFnsLocale: 'nl' },
|
hu: { label: 'Magyar', dateFnsLocale: 'hu' },
|
||||||
'no': { label: 'Norsk', dateFnsLocale: 'no' },
|
nl: { label: 'Nederlands', dateFnsLocale: 'nl' },
|
||||||
'pl': { label: 'Polski', dateFnsLocale: 'pl' },
|
no: { label: 'Norsk', dateFnsLocale: 'no' },
|
||||||
|
pl: { label: 'Polski', dateFnsLocale: 'pl' },
|
||||||
'pt-br': { label: 'Português (Brasil)', dateFnsLocale: 'ptBR' },
|
'pt-br': { label: 'Português (Brasil)', dateFnsLocale: 'ptBR' },
|
||||||
'ru': { label: 'Русский', dateFnsLocale: 'ru' },
|
ru: { label: 'Русский', dateFnsLocale: 'ru' },
|
||||||
'sv': { label: 'Svenska', dateFnsLocale: 'sv' },
|
sv: { label: 'Svenska', dateFnsLocale: 'sv' },
|
||||||
'uk': { label: 'Українська', dateFnsLocale: 'uk' },
|
uk: { label: 'Українська', dateFnsLocale: 'uk' },
|
||||||
'vi-vn': { label: 'Tiếng Việt', dateFnsLocale: 'vi' },
|
'vi-vn': { label: 'Tiếng Việt', dateFnsLocale: 'vi' },
|
||||||
'zh-cn': { label: '简体中文 (Simplified Chinese)', dateFnsLocale: 'zhCN' },
|
'zh-cn': { label: '简体中文 (Simplified Chinese)', dateFnsLocale: 'zhCN' },
|
||||||
'zh-tw': { label: '正體中文 (Traditional Chinese)', dateFnsLocale: 'zhTW' }
|
'zh-tw': { label: '正體中文 (Traditional Chinese)', dateFnsLocale: 'zhTW' }
|
||||||
}
|
}
|
||||||
Vue.prototype.$languageCodeOptions = Object.keys(languageCodeMap).map(code => {
|
Vue.prototype.$languageCodeOptions = Object.keys(languageCodeMap).map((code) => {
|
||||||
return {
|
return {
|
||||||
text: languageCodeMap[code].label,
|
text: languageCodeMap[code].label,
|
||||||
value: code
|
value: code
|
||||||
@@ -39,34 +40,34 @@ Vue.prototype.$languageCodeOptions = Object.keys(languageCodeMap).map(code => {
|
|||||||
|
|
||||||
// iTunes search API uses ISO 3166 country codes: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
|
// iTunes search API uses ISO 3166 country codes: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
|
||||||
const podcastSearchRegionMap = {
|
const podcastSearchRegionMap = {
|
||||||
'br': { label: 'Brasil' },
|
br: { label: 'Brasil' },
|
||||||
'be': { label: 'België / Belgique / Belgien' },
|
be: { label: 'België / Belgique / Belgien' },
|
||||||
'cz': { label: 'Česko' },
|
cz: { label: 'Česko' },
|
||||||
'dk': { label: 'Danmark' },
|
dk: { label: 'Danmark' },
|
||||||
'de': { label: 'Deutschland' },
|
de: { label: 'Deutschland' },
|
||||||
'ee': { label: 'Eesti' },
|
ee: { label: 'Eesti' },
|
||||||
'es': { label: 'España / Espanya / Espainia' },
|
es: { label: 'España / Espanya / Espainia' },
|
||||||
'fr': { label: 'France' },
|
fr: { label: 'France' },
|
||||||
'hr': { label: 'Hrvatska' },
|
hr: { label: 'Hrvatska' },
|
||||||
'il': { label: 'ישראל / إسرائيل' },
|
il: { label: 'ישראל / إسرائيل' },
|
||||||
'it': { label: 'Italia' },
|
it: { label: 'Italia' },
|
||||||
'lu': { label: 'Luxembourg / Luxemburg / Lëtezebuerg' },
|
lu: { label: 'Luxembourg / Luxemburg / Lëtezebuerg' },
|
||||||
'hu': { label: 'Magyarország' },
|
hu: { label: 'Magyarország' },
|
||||||
'nl': { label: 'Nederland' },
|
nl: { label: 'Nederland' },
|
||||||
'no': { label: 'Norge' },
|
no: { label: 'Norge' },
|
||||||
'at': { label: 'Österreich' },
|
at: { label: 'Österreich' },
|
||||||
'pl': { label: 'Polska' },
|
pl: { label: 'Polska' },
|
||||||
'pt': { label: 'Portugal' },
|
pt: { label: 'Portugal' },
|
||||||
'ru': { label: 'Россия' },
|
ru: { label: 'Россия' },
|
||||||
'ch': { label: 'Schweiz / Suisse / Svizzera' },
|
ch: { label: 'Schweiz / Suisse / Svizzera' },
|
||||||
'se': { label: 'Sverige' },
|
se: { label: 'Sverige' },
|
||||||
'vn': { label: 'Việt Nam' },
|
vn: { label: 'Việt Nam' },
|
||||||
'ua': { label: 'Україна' },
|
ua: { label: 'Україна' },
|
||||||
'gb': { label: 'United Kingdom' },
|
gb: { label: 'United Kingdom' },
|
||||||
'us': { label: 'United States' },
|
us: { label: 'United States' },
|
||||||
'cn': { label: '中国' }
|
cn: { label: '中国' }
|
||||||
}
|
}
|
||||||
Vue.prototype.$podcastSearchRegionOptions = Object.keys(podcastSearchRegionMap).map(code => {
|
Vue.prototype.$podcastSearchRegionOptions = Object.keys(podcastSearchRegionMap).map((code) => {
|
||||||
return {
|
return {
|
||||||
text: podcastSearchRegionMap[code].label,
|
text: podcastSearchRegionMap[code].label,
|
||||||
value: code
|
value: code
|
||||||
@@ -108,9 +109,11 @@ const translations = {
|
|||||||
|
|
||||||
function loadTranslationStrings(code) {
|
function loadTranslationStrings(code) {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
import(`../strings/${code}`).then((fileContents) => {
|
import(`../strings/${code}`)
|
||||||
|
.then((fileContents) => {
|
||||||
resolve(fileContents.default)
|
resolve(fileContents.default)
|
||||||
}).catch((error) => {
|
})
|
||||||
|
.catch((error) => {
|
||||||
console.error('Failed to load i18n strings', code, error)
|
console.error('Failed to load i18n strings', code, error)
|
||||||
resolve(null)
|
resolve(null)
|
||||||
})
|
})
|
||||||
@@ -124,7 +127,7 @@ async function loadi18n(code) {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
const strings = translations[code] || await loadTranslationStrings(code)
|
const strings = translations[code] || (await loadTranslationStrings(code))
|
||||||
if (!strings) {
|
if (!strings) {
|
||||||
console.warn(`Invalid lang code ${code}`)
|
console.warn(`Invalid lang code ${code}`)
|
||||||
return false
|
return false
|
||||||
@@ -174,4 +177,3 @@ async function initialize() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
initialize()
|
initialize()
|
||||||
|
|
||||||
|
|||||||
+14
-9
@@ -2,7 +2,10 @@ import Vue from 'vue'
|
|||||||
import cronParser from 'cron-parser'
|
import cronParser from 'cron-parser'
|
||||||
import { nanoid } from 'nanoid'
|
import { nanoid } from 'nanoid'
|
||||||
|
|
||||||
Vue.prototype.$randomId = () => nanoid()
|
Vue.prototype.$randomId = (len = null) => {
|
||||||
|
if (len && !isNaN(len)) return nanoid(len)
|
||||||
|
return nanoid()
|
||||||
|
}
|
||||||
|
|
||||||
Vue.prototype.$bytesPretty = (bytes, decimals = 2) => {
|
Vue.prototype.$bytesPretty = (bytes, decimals = 2) => {
|
||||||
if (isNaN(bytes) || bytes == 0) {
|
if (isNaN(bytes) || bytes == 0) {
|
||||||
@@ -119,7 +122,7 @@ Vue.prototype.$parseCronExpression = (expression) => {
|
|||||||
value: '* * * * *'
|
value: '* * * * *'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
const patternMatch = commonPatterns.find(p => p.value === expression)
|
const patternMatch = commonPatterns.find((p) => p.value === expression)
|
||||||
if (patternMatch) {
|
if (patternMatch) {
|
||||||
return {
|
return {
|
||||||
description: patternMatch.text
|
description: patternMatch.text
|
||||||
@@ -132,13 +135,17 @@ Vue.prototype.$parseCronExpression = (expression) => {
|
|||||||
if (pieces[2] !== '*' || pieces[3] !== '*') {
|
if (pieces[2] !== '*' || pieces[3] !== '*') {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
if (pieces[4] !== '*' && pieces[4].split(',').some(p => isNaN(p))) {
|
if (pieces[4] !== '*' && pieces[4].split(',').some((p) => isNaN(p))) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
const weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
|
const weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
|
||||||
var weekdayText = 'day'
|
var weekdayText = 'day'
|
||||||
if (pieces[4] !== '*') weekdayText = pieces[4].split(',').map(p => weekdays[p]).join(', ')
|
if (pieces[4] !== '*')
|
||||||
|
weekdayText = pieces[4]
|
||||||
|
.split(',')
|
||||||
|
.map((p) => weekdays[p])
|
||||||
|
.join(', ')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
description: `Run every ${weekdayText} at ${pieces[1]}:${pieces[0].padStart(2, '0')}`
|
description: `Run every ${weekdayText} at ${pieces[1]}:${pieces[0].padStart(2, '0')}`
|
||||||
@@ -146,7 +153,7 @@ Vue.prototype.$parseCronExpression = (expression) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Vue.prototype.$getNextScheduledDate = (expression) => {
|
Vue.prototype.$getNextScheduledDate = (expression) => {
|
||||||
const interval = cronParser.parseExpression(expression);
|
const interval = cronParser.parseExpression(expression)
|
||||||
return interval.next().toDate()
|
return interval.next().toDate()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,10 +178,8 @@ Vue.prototype.$downloadFile = (url, filename = null, openInNewTab = false) => {
|
|||||||
|
|
||||||
export function supplant(str, subs) {
|
export function supplant(str, subs) {
|
||||||
// source: http://crockford.com/javascript/remedial.html
|
// source: http://crockford.com/javascript/remedial.html
|
||||||
return str.replace(/{([^{}]*)}/g,
|
return str.replace(/{([^{}]*)}/g, function (a, b) {
|
||||||
function (a, b) {
|
|
||||||
var r = subs[b]
|
var r = subs[b]
|
||||||
return typeof r === 'string' || typeof r === 'number' ? r : a
|
return typeof r === 'string' || typeof r === 'number' ? r : a
|
||||||
}
|
})
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,11 +49,11 @@ export async function checkForUpdate() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (verObj.version == currVerObj.version) {
|
if (verObj.version == currVerObj.version) {
|
||||||
|
currVerObj.pubdate = new Date(release.published_at)
|
||||||
currVerObj.changelog = release.body
|
currVerObj.changelog = release.body
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
if (!largestVer) {
|
if (!largestVer) {
|
||||||
console.error('No valid version tags to compare with')
|
console.error('No valid version tags to compare with')
|
||||||
@@ -65,6 +65,8 @@ export async function checkForUpdate() {
|
|||||||
latestVersion: largestVer.version,
|
latestVersion: largestVer.version,
|
||||||
githubTagUrl: `https://github.com/advplyr/audiobookshelf/releases/tag/v${largestVer.version}`,
|
githubTagUrl: `https://github.com/advplyr/audiobookshelf/releases/tag/v${largestVer.version}`,
|
||||||
currentVersion: currVerObj.version,
|
currentVersion: currVerObj.version,
|
||||||
|
currentTagUrl: `https://github.com/advplyr/audiobookshelf/releases/tag/v${currVerObj.version}`,
|
||||||
|
currentVersionPubDate: currVerObj.pubdate,
|
||||||
currentVersionChangelog: currVerObj.changelog
|
currentVersionChangelog: currVerObj.changelog
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,7 @@ export const state = () => ({
|
|||||||
showEditPodcastEpisode: false,
|
showEditPodcastEpisode: false,
|
||||||
showViewPodcastEpisodeModal: false,
|
showViewPodcastEpisodeModal: false,
|
||||||
showRSSFeedOpenCloseModal: false,
|
showRSSFeedOpenCloseModal: false,
|
||||||
|
showShareModal: false,
|
||||||
showConfirmPrompt: false,
|
showConfirmPrompt: false,
|
||||||
showRawCoverPreviewModal: false,
|
showRawCoverPreviewModal: false,
|
||||||
confirmPromptOptions: null,
|
confirmPromptOptions: null,
|
||||||
@@ -22,6 +23,7 @@ export const state = () => ({
|
|||||||
selectedAuthor: null,
|
selectedAuthor: null,
|
||||||
selectedMediaItems: [],
|
selectedMediaItems: [],
|
||||||
selectedRawCoverUrl: null,
|
selectedRawCoverUrl: null,
|
||||||
|
selectedMediaItemShare: null,
|
||||||
isCasting: false, // Actively casting
|
isCasting: false, // Actively casting
|
||||||
isChromecastInitialized: false, // Script loadeds
|
isChromecastInitialized: false, // Script loadeds
|
||||||
showBatchQuickMatchModal: false,
|
showBatchQuickMatchModal: false,
|
||||||
@@ -157,6 +159,13 @@ export const mutations = {
|
|||||||
state.rssFeedEntity = entity
|
state.rssFeedEntity = entity
|
||||||
state.showRSSFeedOpenCloseModal = true
|
state.showRSSFeedOpenCloseModal = true
|
||||||
},
|
},
|
||||||
|
setShowShareModal(state, val) {
|
||||||
|
state.showShareModal = val
|
||||||
|
},
|
||||||
|
setShareModal(state, mediaItemShare) {
|
||||||
|
state.selectedMediaItemShare = mediaItemShare
|
||||||
|
state.showShareModal = true
|
||||||
|
},
|
||||||
setShowConfirmPrompt(state, val) {
|
setShowConfirmPrompt(state, val) {
|
||||||
state.showConfirmPrompt = val
|
state.showConfirmPrompt = val
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -25,14 +25,14 @@ export const getters = {
|
|||||||
},
|
},
|
||||||
getUserMediaProgress: (state) => (libraryItemId, episodeId = null) => {
|
getUserMediaProgress: (state) => (libraryItemId, episodeId = null) => {
|
||||||
if (!state.user.mediaProgress) return null
|
if (!state.user.mediaProgress) return null
|
||||||
return state.user.mediaProgress.find(li => {
|
return state.user.mediaProgress.find((li) => {
|
||||||
if (episodeId && li.episodeId !== episodeId) return false
|
if (episodeId && li.episodeId !== episodeId) return false
|
||||||
return li.libraryItemId == libraryItemId
|
return li.libraryItemId == libraryItemId
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getUserBookmarksForItem: (state) => (libraryItemId) => {
|
getUserBookmarksForItem: (state) => (libraryItemId) => {
|
||||||
if (!state.user.bookmarks) return []
|
if (!state.user.bookmarks) return []
|
||||||
return state.user.bookmarks.filter(bm => bm.libraryItemId === libraryItemId)
|
return state.user.bookmarks.filter((bm) => bm.libraryItemId === libraryItemId)
|
||||||
},
|
},
|
||||||
getUserSetting: (state) => (key) => {
|
getUserSetting: (state) => (key) => {
|
||||||
return state.settings?.[key] || null
|
return state.settings?.[key] || null
|
||||||
@@ -65,6 +65,9 @@ export const getters = {
|
|||||||
getIsSeriesRemovedFromContinueListening: (state) => (seriesId) => {
|
getIsSeriesRemovedFromContinueListening: (state) => (seriesId) => {
|
||||||
if (!state.user || !state.user.seriesHideFromContinueListening || !state.user.seriesHideFromContinueListening.length) return false
|
if (!state.user || !state.user.seriesHideFromContinueListening || !state.user.seriesHideFromContinueListening.length) return false
|
||||||
return state.user.seriesHideFromContinueListening.includes(seriesId)
|
return state.user.seriesHideFromContinueListening.includes(seriesId)
|
||||||
|
},
|
||||||
|
getSizeMultiplier: (state) => {
|
||||||
|
return state.settings.bookshelfCoverSize / 120
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,9 +155,9 @@ export const mutations = {
|
|||||||
updateMediaProgress(state, { id, data }) {
|
updateMediaProgress(state, { id, data }) {
|
||||||
if (!state.user) return
|
if (!state.user) return
|
||||||
if (!data) {
|
if (!data) {
|
||||||
state.user.mediaProgress = state.user.mediaProgress.filter(lip => lip.id != id)
|
state.user.mediaProgress = state.user.mediaProgress.filter((lip) => lip.id != id)
|
||||||
} else {
|
} else {
|
||||||
var indexOf = state.user.mediaProgress.findIndex(lip => lip.id == id)
|
var indexOf = state.user.mediaProgress.findIndex((lip) => lip.id == id)
|
||||||
if (indexOf >= 0) {
|
if (indexOf >= 0) {
|
||||||
state.user.mediaProgress.splice(indexOf, 1, data)
|
state.user.mediaProgress.splice(indexOf, 1, data)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+67
-56
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Приложи",
|
"ButtonApply": "Приложи",
|
||||||
"ButtonApplyChapters": "Приложи Глави",
|
"ButtonApplyChapters": "Приложи Глави",
|
||||||
"ButtonAuthors": "Автори",
|
"ButtonAuthors": "Автори",
|
||||||
|
"ButtonBack": "Назад",
|
||||||
"ButtonBrowseForFolder": "Прегледай за папка",
|
"ButtonBrowseForFolder": "Прегледай за папка",
|
||||||
"ButtonCancel": "Откажи",
|
"ButtonCancel": "Откажи",
|
||||||
"ButtonCancelEncode": "Откажи закодирането",
|
"ButtonCancelEncode": "Откажи закодирането",
|
||||||
@@ -56,21 +57,20 @@
|
|||||||
"ButtonPreviousChapter": "Предишна Глава",
|
"ButtonPreviousChapter": "Предишна Глава",
|
||||||
"ButtonPurgeAllCache": "Изчисти Всички Кешове",
|
"ButtonPurgeAllCache": "Изчисти Всички Кешове",
|
||||||
"ButtonPurgeItemsCache": "Изчисти Кеша на Елементи",
|
"ButtonPurgeItemsCache": "Изчисти Кеша на Елементи",
|
||||||
"ButtonPurgeMediaProgress": "Изчисти Прогреса на Медията",
|
|
||||||
"ButtonQueueAddItem": "Добави към опашката",
|
"ButtonQueueAddItem": "Добави към опашката",
|
||||||
"ButtonQueueRemoveItem": "Премахни от опашката",
|
"ButtonQueueRemoveItem": "Премахни от опашката",
|
||||||
"ButtonQuickMatch": "Бързо Съпоставяне",
|
"ButtonQuickMatch": "Бързо Съпоставяне",
|
||||||
|
"ButtonReScan": "Пресканирай",
|
||||||
"ButtonRead": "Прочети",
|
"ButtonRead": "Прочети",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Покажи по-малко",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Покажи повече",
|
||||||
"ButtonRefresh": "Refresh",
|
"ButtonRefresh": "Обнови",
|
||||||
"ButtonRemove": "Премахни",
|
"ButtonRemove": "Премахни",
|
||||||
"ButtonRemoveAll": "Премахни Всички",
|
"ButtonRemoveAll": "Премахни Всички",
|
||||||
"ButtonRemoveAllLibraryItems": "Премахни Всички Елементи от Библиотеката",
|
"ButtonRemoveAllLibraryItems": "Премахни Всички Елементи от Библиотеката",
|
||||||
"ButtonRemoveFromContinueListening": "Премахни от Продължаване на Слушане",
|
"ButtonRemoveFromContinueListening": "Премахни от Продължаване на Слушане",
|
||||||
"ButtonRemoveFromContinueReading": "Премахни от Продължаване на Четене",
|
"ButtonRemoveFromContinueReading": "Премахни от Продължаване на Четене",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Премахни Серия от Продължаване на Серии",
|
"ButtonRemoveSeriesFromContinueSeries": "Премахни Серия от Продължаване на Серии",
|
||||||
"ButtonReScan": "Пресканирай",
|
|
||||||
"ButtonReset": "Нулиране",
|
"ButtonReset": "Нулиране",
|
||||||
"ButtonResetToDefault": "Нулиране до стойност по подразбиране",
|
"ButtonResetToDefault": "Нулиране до стойност по подразбиране",
|
||||||
"ButtonRestore": "Възстанови",
|
"ButtonRestore": "Възстанови",
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
"ButtonSelectFolderPath": "Избери Път на Папка",
|
"ButtonSelectFolderPath": "Избери Път на Папка",
|
||||||
"ButtonSeries": "Серии",
|
"ButtonSeries": "Серии",
|
||||||
"ButtonSetChaptersFromTracks": "Задай Глави от Песни",
|
"ButtonSetChaptersFromTracks": "Задай Глави от Песни",
|
||||||
"ButtonShare": "Share",
|
"ButtonShare": "Сподели",
|
||||||
"ButtonShiftTimes": "Измести Времената",
|
"ButtonShiftTimes": "Измести Времената",
|
||||||
"ButtonShow": "Покажи",
|
"ButtonShow": "Покажи",
|
||||||
"ButtonStartM4BEncode": "Започни M4B Кодиране",
|
"ButtonStartM4BEncode": "Започни M4B Кодиране",
|
||||||
@@ -104,10 +104,10 @@
|
|||||||
"HeaderAccount": "Профил",
|
"HeaderAccount": "Профил",
|
||||||
"HeaderAdvanced": "Разширени",
|
"HeaderAdvanced": "Разширени",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise Notification Опции",
|
"HeaderAppriseNotificationSettings": "Apprise Notification Опции",
|
||||||
"HeaderAudiobookTools": "Инструмент за Менижиране на Аудиокниги ",
|
|
||||||
"HeaderAudioTracks": "Звуков Канал",
|
"HeaderAudioTracks": "Звуков Канал",
|
||||||
|
"HeaderAudiobookTools": "Инструмент за Менижиране на Аудиокниги",
|
||||||
"HeaderAuthentication": "Аутентикация",
|
"HeaderAuthentication": "Аутентикация",
|
||||||
"HeaderBackups": "Backups",
|
"HeaderBackups": "Архив",
|
||||||
"HeaderChangePassword": "Промяна на Парола",
|
"HeaderChangePassword": "Промяна на Парола",
|
||||||
"HeaderChapters": "Глави",
|
"HeaderChapters": "Глави",
|
||||||
"HeaderChooseAFolder": "Избети Папка",
|
"HeaderChooseAFolder": "Избети Папка",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Елементи на Колекция",
|
"HeaderCollectionItems": "Елементи на Колекция",
|
||||||
"HeaderCover": "Корица",
|
"HeaderCover": "Корица",
|
||||||
"HeaderCurrentDownloads": "Текущи Сваляния",
|
"HeaderCurrentDownloads": "Текущи Сваляния",
|
||||||
|
"HeaderCustomMessageOnLogin": "Потребителско съобщение при влизане",
|
||||||
"HeaderCustomMetadataProviders": "Потребителски Доставчици на Метаданни",
|
"HeaderCustomMetadataProviders": "Потребителски Доставчици на Метаданни",
|
||||||
"HeaderDetails": "Детайли",
|
"HeaderDetails": "Детайли",
|
||||||
"HeaderDownloadQueue": "Опашка за Сваляне",
|
"HeaderDownloadQueue": "Опашка за Сваляне",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Елементи на Плейлист",
|
"HeaderPlaylistItems": "Елементи на Плейлист",
|
||||||
"HeaderPodcastsToAdd": "Подкасти за Добавяне",
|
"HeaderPodcastsToAdd": "Подкасти за Добавяне",
|
||||||
"HeaderPreviewCover": "Преглед на Корица",
|
"HeaderPreviewCover": "Преглед на Корица",
|
||||||
"HeaderRemoveEpisode": "Премахни Епизод",
|
|
||||||
"HeaderRemoveEpisodes": "Премахни {0} Епизоди",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS Детайли",
|
"HeaderRSSFeedGeneral": "RSS Детайли",
|
||||||
"HeaderRSSFeedIsOpen": "RSS Feed е Отворен",
|
"HeaderRSSFeedIsOpen": "RSS Feed е Отворен",
|
||||||
"HeaderRSSFeeds": "RSS Feed-ове",
|
"HeaderRSSFeeds": "RSS Feed-ове",
|
||||||
|
"HeaderRemoveEpisode": "Премахни Епизод",
|
||||||
|
"HeaderRemoveEpisodes": "Премахни {0} Епизоди",
|
||||||
"HeaderSavedMediaProgress": "Запазен Прогрес на Медията",
|
"HeaderSavedMediaProgress": "Запазен Прогрес на Медията",
|
||||||
"HeaderSchedule": "График",
|
"HeaderSchedule": "График",
|
||||||
"HeaderScheduleLibraryScans": "График за Автоматично Сканиране на Библиотека",
|
"HeaderScheduleLibraryScans": "График за Автоматично Сканиране на Библиотека",
|
||||||
@@ -186,23 +187,23 @@
|
|||||||
"HeaderUpdateDetails": "Обнови Детайли",
|
"HeaderUpdateDetails": "Обнови Детайли",
|
||||||
"HeaderUpdateLibrary": "Обнови Библиотека",
|
"HeaderUpdateLibrary": "Обнови Библиотека",
|
||||||
"HeaderUsers": "Потребители",
|
"HeaderUsers": "Потребители",
|
||||||
"HeaderYearReview": "Year {0} in Review",
|
"HeaderYearReview": "Преглед на {0} Година",
|
||||||
"HeaderYourStats": "Твоята Статистика",
|
"HeaderYourStats": "Твоята Статистика",
|
||||||
"LabelAbridged": "Съкратен",
|
"LabelAbridged": "Съкратен",
|
||||||
"LabelAbridgedChecked": "Abridged (checked)",
|
"LabelAbridgedChecked": "Съкратена (отбелязано)",
|
||||||
"LabelAbridgedUnchecked": "Unabridged (unchecked)",
|
"LabelAbridgedUnchecked": "Несъкратена (не отбелязано)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "Достъпно от",
|
||||||
"LabelAccountType": "Тип на Профила",
|
"LabelAccountType": "Тип на Профила",
|
||||||
"LabelAccountTypeAdmin": "Администратор",
|
"LabelAccountTypeAdmin": "Администратор",
|
||||||
"LabelAccountTypeGuest": "Гост",
|
"LabelAccountTypeGuest": "Гост",
|
||||||
"LabelAccountTypeUser": "Потребител",
|
"LabelAccountTypeUser": "Потребител",
|
||||||
"LabelActivity": "Дейност",
|
"LabelActivity": "Дейност",
|
||||||
"LabelAdded": "Добавени",
|
|
||||||
"LabelAddedAt": "Добавени На",
|
|
||||||
"LabelAddToCollection": "Добави в Колекция",
|
"LabelAddToCollection": "Добави в Колекция",
|
||||||
"LabelAddToCollectionBatch": "Добави {0} Книги в Колекция",
|
"LabelAddToCollectionBatch": "Добави {0} Книги в Колекция",
|
||||||
"LabelAddToPlaylist": "Добави в Плейлист",
|
"LabelAddToPlaylist": "Добави в Плейлист",
|
||||||
"LabelAddToPlaylistBatch": "Добави {0} Елемент в Плейлист",
|
"LabelAddToPlaylistBatch": "Добави {0} Елемент в Плейлист",
|
||||||
|
"LabelAdded": "Добавени",
|
||||||
|
"LabelAddedAt": "Добавени На",
|
||||||
"LabelAdminUsersOnly": "Само за Администратори",
|
"LabelAdminUsersOnly": "Само за Администратори",
|
||||||
"LabelAll": "Всички",
|
"LabelAll": "Всички",
|
||||||
"LabelAllUsers": "Всички Потребители",
|
"LabelAllUsers": "Всички Потребители",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Промени Парола",
|
"LabelChangePassword": "Промени Парола",
|
||||||
"LabelChannels": "Канали",
|
"LabelChannels": "Канали",
|
||||||
|
"LabelChapterTitle": "Заглавие на Глава",
|
||||||
"LabelChapters": "Глави",
|
"LabelChapters": "Глави",
|
||||||
"LabelChaptersFound": "намерени глави",
|
"LabelChaptersFound": "намерени глави",
|
||||||
"LabelChapterTitle": "Заглавие на Глава",
|
|
||||||
"LabelClickForMoreInfo": "Кликни за повече информация",
|
"LabelClickForMoreInfo": "Кликни за повече информация",
|
||||||
"LabelClosePlayer": "Затвори Плейъра",
|
"LabelClosePlayer": "Затвори Плейъра",
|
||||||
"LabelCodec": "Кодек",
|
"LabelCodec": "Кодек",
|
||||||
@@ -270,15 +271,17 @@
|
|||||||
"LabelDownload": "Сваляне",
|
"LabelDownload": "Сваляне",
|
||||||
"LabelDownloadNEpisodes": "Свали {0} епизоди",
|
"LabelDownloadNEpisodes": "Свали {0} епизоди",
|
||||||
"LabelDuration": "Продължителност",
|
"LabelDuration": "Продължителност",
|
||||||
"LabelDurationComparisonExactMatch": "(exact match)",
|
"LabelDurationComparisonExactMatch": "(точно съвпадение)",
|
||||||
"LabelDurationComparisonLonger": "({0} longer)",
|
"LabelDurationComparisonLonger": "({0} по-дълго)",
|
||||||
"LabelDurationComparisonShorter": "({0} shorter)",
|
"LabelDurationComparisonShorter": "({0} по-късо)",
|
||||||
"LabelDurationFound": "Намерена продължителност:",
|
"LabelDurationFound": "Намерена продължителност:",
|
||||||
"LabelEbook": "Електронна книга",
|
"LabelEbook": "Електронна книга",
|
||||||
"LabelEbooks": "Електронни книги",
|
"LabelEbooks": "Електронни книги",
|
||||||
"LabelEdit": "Редакция",
|
"LabelEdit": "Редакция",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "От Адрес",
|
"LabelEmailSettingsFromAddress": "От Адрес",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Отхвърли неавторизирани сертификати",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Спирането на валидацията на SSL сертификате може да изложи връзката ви на рискове, като man-in-the-middle атака. Спираите тази опция само ако знете имоликацийте от това и се доверявате на mail сървъра към който се свързвате.",
|
||||||
"LabelEmailSettingsSecure": "Сигурна",
|
"LabelEmailSettingsSecure": "Сигурна",
|
||||||
"LabelEmailSettingsSecureHelp": "Ако е вярно възката ще изполва TLS когате се свързва със сървъра. Ако не е то TLS ще се използва ако сървъра поддържа разширението STARTTLS. В повечето случаи задайте тази стойност на истина ако се свързвате към порт 465. За порт 587 или 25 оставете я на лъжа. (от nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Ако е вярно възката ще изполва TLS когате се свързва със сървъра. Ако не е то TLS ще се използва ако сървъра поддържа разширението STARTTLS. В повечето случаи задайте тази стойност на истина ако се свързвате към порт 465. За порт 587 или 25 оставете я на лъжа. (от nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Тестов Адрес",
|
"LabelEmailSettingsTestAddress": "Тестов Адрес",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Папка",
|
"LabelFolder": "Папка",
|
||||||
"LabelFolders": "Папки",
|
"LabelFolders": "Папки",
|
||||||
"LabelFontBold": "Получерно",
|
"LabelFontBold": "Получерно",
|
||||||
|
"LabelFontBoldness": "Плътност на шрифта",
|
||||||
"LabelFontFamily": "Шрифт",
|
"LabelFontFamily": "Шрифт",
|
||||||
"LabelFontItalic": "Курсив",
|
"LabelFontItalic": "Курсив",
|
||||||
"LabelFontScale": "Мащаб на Шрифта",
|
"LabelFontScale": "Мащаб на Шрифта",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Час",
|
"LabelHour": "Час",
|
||||||
"LabelIcon": "Икона",
|
"LabelIcon": "Икона",
|
||||||
"LabelImageURLFromTheWeb": "URL на Изображение от Интернет",
|
"LabelImageURLFromTheWeb": "URL на Изображение от Интернет",
|
||||||
|
"LabelInProgress": "В Прогрес",
|
||||||
"LabelIncludeInTracklist": "Включи в Списъка с Канали",
|
"LabelIncludeInTracklist": "Включи в Списъка с Канали",
|
||||||
"LabelIncomplete": "Незавършено",
|
"LabelIncomplete": "Незавършено",
|
||||||
"LabelInProgress": "В Прогрес",
|
|
||||||
"LabelInterval": "Интервал",
|
"LabelInterval": "Интервал",
|
||||||
"LabelIntervalCustomDailyWeekly": "Потребително дневно/седмично",
|
"LabelIntervalCustomDailyWeekly": "Потребително дневно/седмично",
|
||||||
"LabelIntervalEvery12Hours": "Всеки 12 часа",
|
"LabelIntervalEvery12Hours": "Всеки 12 часа",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Елемент",
|
"LabelItem": "Елемент",
|
||||||
"LabelLanguage": "Език",
|
"LabelLanguage": "Език",
|
||||||
"LabelLanguageDefaultServer": "Език по подразбиране на сървъра",
|
"LabelLanguageDefaultServer": "Език по подразбиране на сървъра",
|
||||||
|
"LabelLanguages": "Езици",
|
||||||
"LabelLastBookAdded": "Последно Добавена Книга",
|
"LabelLastBookAdded": "Последно Добавена Книга",
|
||||||
"LabelLastBookUpdated": "Последно Обновена Книга",
|
"LabelLastBookUpdated": "Последно Обновена Книга",
|
||||||
"LabelLastSeen": "Последно Видян",
|
"LabelLastSeen": "Последно Видян",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "По-малко",
|
"LabelLess": "По-малко",
|
||||||
"LabelLibrariesAccessibleToUser": "Библиотеки Достъпни за Потребителя",
|
"LabelLibrariesAccessibleToUser": "Библиотеки Достъпни за Потребителя",
|
||||||
"LabelLibrary": "Библиотека",
|
"LabelLibrary": "Библиотека",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Елемент на Библиотека",
|
"LabelLibraryItem": "Елемент на Библиотека",
|
||||||
"LabelLibraryName": "Име на Библиотека",
|
"LabelLibraryName": "Име на Библиотека",
|
||||||
"LabelLimit": "Лимит",
|
"LabelLimit": "Лимит",
|
||||||
@@ -360,14 +366,14 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Използва се за свързване на съществуващи потребители. След свързване потребителите ще бъдат съпоставени по уникален идентификатор от вашия доставчик на SSO",
|
"LabelMatchExistingUsersByDescription": "Използва се за свързване на съществуващи потребители. След свързване потребителите ще бъдат съпоставени по уникален идентификатор от вашия доставчик на SSO",
|
||||||
"LabelMediaPlayer": "Медия Плейър",
|
"LabelMediaPlayer": "Медия Плейър",
|
||||||
"LabelMediaType": "Тип на Медията",
|
"LabelMediaType": "Тип на Медията",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "По-високите източници на метаданни ще заменят по-ниските",
|
|
||||||
"LabelMetadataProvider": "Доставчик на Метаданни",
|
|
||||||
"LabelMetaTag": "Мета Таг",
|
"LabelMetaTag": "Мета Таг",
|
||||||
"LabelMetaTags": "Мета Тагове",
|
"LabelMetaTags": "Мета Тагове",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "По-високите източници на метаданни ще заменят по-ниските",
|
||||||
|
"LabelMetadataProvider": "Доставчик на Метаданни",
|
||||||
"LabelMinute": "Минута",
|
"LabelMinute": "Минута",
|
||||||
"LabelMissing": "Липсващо",
|
"LabelMissing": "Липсващо",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Няма електронна книга",
|
||||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
"LabelMissingSupplementaryEbook": "Няма допълнителна електронна книга",
|
||||||
"LabelMobileRedirectURIs": "Позволени URI за Мобилно Пренасочване",
|
"LabelMobileRedirectURIs": "Позволени URI за Мобилно Пренасочване",
|
||||||
"LabelMobileRedirectURIsDescription": "Това е whitelist на валидни URI за пренасочване за мобилни приложения. По подразбиране е <code>audiobookshelf://oauth</code>, който може да премахнете или допълните с допълнителни URI за интеграция на приложения от трети страни. Използването на звезда (<code>*</code>) като единствен запис позволява всеки URI.",
|
"LabelMobileRedirectURIsDescription": "Това е whitelist на валидни URI за пренасочване за мобилни приложения. По подразбиране е <code>audiobookshelf://oauth</code>, който може да премахнете или допълните с допълнителни URI за интеграция на приложения от трети страни. Използването на звезда (<code>*</code>) като единствен запис позволява всеки URI.",
|
||||||
"LabelMore": "Повече",
|
"LabelMore": "Повече",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Разказвач",
|
"LabelNarrator": "Разказвач",
|
||||||
"LabelNarrators": "Разказвачи",
|
"LabelNarrators": "Разказвачи",
|
||||||
"LabelNew": "Нови",
|
"LabelNew": "Нови",
|
||||||
|
"LabelNewPassword": "Нова Парола",
|
||||||
"LabelNewestAuthors": "Най-нови Автори",
|
"LabelNewestAuthors": "Най-нови Автори",
|
||||||
"LabelNewestEpisodes": "Най-нови Епизоди",
|
"LabelNewestEpisodes": "Най-нови Епизоди",
|
||||||
"LabelNewPassword": "Нова Парола",
|
|
||||||
"LabelNextBackupDate": "Следваща Дата на Архивиране",
|
"LabelNextBackupDate": "Следваща Дата на Архивиране",
|
||||||
"LabelNextScheduledRun": "Следващо Планирано Изпълнение",
|
"LabelNextScheduledRun": "Следващо Планирано Изпълнение",
|
||||||
|
"LabelNoCustomMetadataProviders": "Няма потребителски доставчици на метаданни",
|
||||||
"LabelNoEpisodesSelected": "Няма избрани епизоди",
|
"LabelNoEpisodesSelected": "Няма избрани епизоди",
|
||||||
"LabelNotes": "Бележки",
|
|
||||||
"LabelNotFinished": "Не е завършено",
|
"LabelNotFinished": "Не е завършено",
|
||||||
|
"LabelNotStarted": "Не е започнато",
|
||||||
|
"LabelNotes": "Бележки",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL-и",
|
"LabelNotificationAppriseURL": "Apprise URL-и",
|
||||||
"LabelNotificationAvailableVariables": "Налични променливи",
|
"LabelNotificationAvailableVariables": "Налични променливи",
|
||||||
"LabelNotificationBodyTemplate": "Тяло на Шаблона",
|
"LabelNotificationBodyTemplate": "Тяло на Шаблона",
|
||||||
"LabelNotificationEvent": "Събитие за Известие",
|
"LabelNotificationEvent": "Събитие за Известие",
|
||||||
|
"LabelNotificationTitleTemplate": "Заглавие на Шаблона",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Максимален брой неуспешни опити за известия",
|
"LabelNotificationsMaxFailedAttempts": "Максимален брой неуспешни опити за известия",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Известията се деактивират след като не успеят да бъдат изпратени толкова пъти",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Известията се деактивират след като не успеят да бъдат изпратени толкова пъти",
|
||||||
"LabelNotificationsMaxQueueSize": "Максимален размер на опашката за известия",
|
"LabelNotificationsMaxQueueSize": "Максимален размер на опашката за известия",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Събитията са ограничени до изстрелване на 1 на секунда. Събитията ще бъдат игнорирани ако опашката е на максимален размер. Това предотвратява спамирането на известия.",
|
"LabelNotificationsMaxQueueSizeHelp": "Събитията са ограничени до изстрелване на 1 на секунда. Събитията ще бъдат игнорирани ако опашката е на максимален размер. Това предотвратява спамирането на известия.",
|
||||||
"LabelNotificationTitleTemplate": "Заглавие на Шаблона",
|
|
||||||
"LabelNotStarted": "Не е започнато",
|
|
||||||
"LabelNumberOfBooks": "Брой на Книги",
|
"LabelNumberOfBooks": "Брой на Книги",
|
||||||
"LabelNumberOfEpisodes": "# Епизоди",
|
"LabelNumberOfEpisodes": "# Епизоди",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -410,14 +417,15 @@
|
|||||||
"LabelPermissionsDownload": "Може да сваля",
|
"LabelPermissionsDownload": "Може да сваля",
|
||||||
"LabelPermissionsUpdate": "Може да обновява",
|
"LabelPermissionsUpdate": "Може да обновява",
|
||||||
"LabelPermissionsUpload": "Може да качва",
|
"LabelPermissionsUpload": "Може да качва",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Преглед на годината Ви ({0})",
|
||||||
"LabelPhotoPathURL": "Път/URL на Снимка",
|
"LabelPhotoPathURL": "Път/URL на Снимка",
|
||||||
"LabelPlaylists": "Плейлисти",
|
|
||||||
"LabelPlayMethod": "Метод на Пускане",
|
"LabelPlayMethod": "Метод на Пускане",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Плейлисти",
|
||||||
"LabelPodcast": "Подкаст",
|
"LabelPodcast": "Подкаст",
|
||||||
"LabelPodcasts": "Подкасти",
|
|
||||||
"LabelPodcastSearchRegion": "Регион за Търсене на Подкасти",
|
"LabelPodcastSearchRegion": "Регион за Търсене на Подкасти",
|
||||||
"LabelPodcastType": "Тип на Подкаст",
|
"LabelPodcastType": "Тип на Подкаст",
|
||||||
|
"LabelPodcasts": "Подкасти",
|
||||||
"LabelPort": "Порт",
|
"LabelPort": "Порт",
|
||||||
"LabelPrefixesToIgnore": "Префикси за Игнориране (без значение за главни/малки букви)",
|
"LabelPrefixesToIgnore": "Префикси за Игнориране (без значение за главни/малки букви)",
|
||||||
"LabelPreventIndexing": "Предотврати индексирането на вашия feed от iTunes и Google podcast директории",
|
"LabelPreventIndexing": "Предотврати индексирането на вашия feed от iTunes и Google podcast директории",
|
||||||
@@ -425,30 +433,31 @@
|
|||||||
"LabelProgress": "Прогрес",
|
"LabelProgress": "Прогрес",
|
||||||
"LabelProvider": "Доставчик",
|
"LabelProvider": "Доставчик",
|
||||||
"LabelPubDate": "Дата на Издаване",
|
"LabelPubDate": "Дата на Издаване",
|
||||||
"LabelPublisher": "Издател",
|
|
||||||
"LabelPublishYear": "Година на Издаване",
|
"LabelPublishYear": "Година на Издаване",
|
||||||
"LabelRead": "Прочети",
|
"LabelPublisher": "Издател",
|
||||||
"LabelReadAgain": "Прочети Отново",
|
"LabelPublishers": "Издателство",
|
||||||
"LabelReadEbookWithoutProgress": "Прочети електронната книга без записване прогрес",
|
|
||||||
"LabelRecentlyAdded": "Наскоро Добавени",
|
|
||||||
"LabelRecentSeries": "Скорошни Серии",
|
|
||||||
"LabelRecommended": "Препоръчано",
|
|
||||||
"LabelRedo": "Повтори",
|
|
||||||
"LabelRegion": "Регион",
|
|
||||||
"LabelReleaseDate": "Дата на Издаване",
|
|
||||||
"LabelRemoveCover": "Премахни Корица",
|
|
||||||
"LabelRowsPerPage": "Редове на Страница",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Потребителски собственик Email",
|
"LabelRSSFeedCustomOwnerEmail": "Потребителски собственик Email",
|
||||||
"LabelRSSFeedCustomOwnerName": "Потребителски собственик Име",
|
"LabelRSSFeedCustomOwnerName": "Потребителски собственик Име",
|
||||||
"LabelRSSFeedOpen": "RSS Feed Оптворен",
|
"LabelRSSFeedOpen": "RSS Feed Оптворен",
|
||||||
"LabelRSSFeedPreventIndexing": "Предотврати индексиране",
|
"LabelRSSFeedPreventIndexing": "Предотврати индексиране",
|
||||||
"LabelRSSFeedSlug": "RSS Feed слъг",
|
"LabelRSSFeedSlug": "RSS Feed слъг",
|
||||||
"LabelRSSFeedURL": "RSS Feed URL",
|
"LabelRSSFeedURL": "RSS Feed URL",
|
||||||
|
"LabelRead": "Прочети",
|
||||||
|
"LabelReadAgain": "Прочети Отново",
|
||||||
|
"LabelReadEbookWithoutProgress": "Прочети електронната книга без записване прогрес",
|
||||||
|
"LabelRecentSeries": "Скорошни Серии",
|
||||||
|
"LabelRecentlyAdded": "Наскоро Добавени",
|
||||||
|
"LabelRecommended": "Препоръчано",
|
||||||
|
"LabelRedo": "Повтори",
|
||||||
|
"LabelRegion": "Регион",
|
||||||
|
"LabelReleaseDate": "Дата на Издаване",
|
||||||
|
"LabelRemoveCover": "Премахни Корица",
|
||||||
|
"LabelRowsPerPage": "Редове на Страница",
|
||||||
"LabelSearchTerm": "Търси Термин",
|
"LabelSearchTerm": "Търси Термин",
|
||||||
"LabelSearchTitle": "Търси Заглавие",
|
"LabelSearchTitle": "Търси Заглавие",
|
||||||
"LabelSearchTitleOrASIN": "Търси Заглавие или ASIN",
|
"LabelSearchTitleOrASIN": "Търси Заглавие или ASIN",
|
||||||
"LabelSeason": "Сезон",
|
"LabelSeason": "Сезон",
|
||||||
"LabelSelectAll": "Select all",
|
"LabelSelectAll": "Избери всичко",
|
||||||
"LabelSelectAllEpisodes": "Избери всички епизоди",
|
"LabelSelectAllEpisodes": "Избери всички епизоди",
|
||||||
"LabelSelectEpisodesShowing": "Избери {0} епизоди показани",
|
"LabelSelectEpisodesShowing": "Избери {0} епизоди показани",
|
||||||
"LabelSelectUsers": "Избери Потребители",
|
"LabelSelectUsers": "Избери Потребители",
|
||||||
@@ -457,7 +466,7 @@
|
|||||||
"LabelSeries": "Серия",
|
"LabelSeries": "Серия",
|
||||||
"LabelSeriesName": "Име на Серия",
|
"LabelSeriesName": "Име на Серия",
|
||||||
"LabelSeriesProgress": "Прогрес на Серия",
|
"LabelSeriesProgress": "Прогрес на Серия",
|
||||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
"LabelServerYearReview": "Преглед на годината на сървъра ({0})",
|
||||||
"LabelSetEbookAsPrimary": "Задай като основна",
|
"LabelSetEbookAsPrimary": "Задай като основна",
|
||||||
"LabelSetEbookAsSupplementary": "Задай като допълнителна",
|
"LabelSetEbookAsSupplementary": "Задай като допълнителна",
|
||||||
"LabelSettingsAudiobooksOnly": "Само аудиокниги",
|
"LabelSettingsAudiobooksOnly": "Само аудиокниги",
|
||||||
@@ -471,8 +480,8 @@
|
|||||||
"LabelSettingsEnableWatcher": "Включи наблюдателя",
|
"LabelSettingsEnableWatcher": "Включи наблюдателя",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "Включи наблюдателя за библиотека",
|
"LabelSettingsEnableWatcherForLibrary": "Включи наблюдателя за библиотека",
|
||||||
"LabelSettingsEnableWatcherHelp": "Включва автоматичното добавяне/обновяване на елементи, когато се открият промени във файловете. *Изисква рестарт на сървъра",
|
"LabelSettingsEnableWatcherHelp": "Включва автоматичното добавяне/обновяване на елементи, когато се открият промени във файловете. *Изисква рестарт на сървъра",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Позволи скриптово съдържание в epub-и",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Позволи epub файловете да изпълняват скриптове. Препоръчително е да бъде изключено освен ако не се доверявате на източника на epub файловете.",
|
||||||
"LabelSettingsExperimentalFeatures": "Експериментални Функции",
|
"LabelSettingsExperimentalFeatures": "Експериментални Функции",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "Функции в разработка, които могат да изискват вашето мнение и помощ за тестване. Кликнете за да отворите дискусия в github.",
|
"LabelSettingsExperimentalFeaturesHelp": "Функции в разработка, които могат да изискват вашето мнение и помощ за тестване. Кликнете за да отворите дискусия в github.",
|
||||||
"LabelSettingsFindCovers": "Намери Корици",
|
"LabelSettingsFindCovers": "Намери Корици",
|
||||||
@@ -481,7 +490,7 @@
|
|||||||
"LabelSettingsHideSingleBookSeriesHelp": "Сериите с една книга ще бъдат скрити от страницата на серията и рафтовете на началната страница.",
|
"LabelSettingsHideSingleBookSeriesHelp": "Сериите с една книга ще бъдат скрити от страницата на серията и рафтовете на началната страница.",
|
||||||
"LabelSettingsHomePageBookshelfView": "Начална страница изглед на рафт",
|
"LabelSettingsHomePageBookshelfView": "Начална страница изглед на рафт",
|
||||||
"LabelSettingsLibraryBookshelfView": "Библиотека изглед на рафт",
|
"LabelSettingsLibraryBookshelfView": "Библиотека изглед на рафт",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Пропусни предишни книги в Продължи Поредица",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "The Continue Series home page shelf shows the first book not started in series that have at least one book finished and no books in progress. Enabling this setting will continue series from the furthest completed book instead of the first book not started.",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "The Continue Series home page shelf shows the first book not started in series that have at least one book finished and no books in progress. Enabling this setting will continue series from the furthest completed book instead of the first book not started.",
|
||||||
"LabelSettingsParseSubtitles": "Извлечи подзаглавия",
|
"LabelSettingsParseSubtitles": "Извлечи подзаглавия",
|
||||||
"LabelSettingsParseSubtitlesHelp": "Извлича подзаглавия от имената на папките на аудиокнигите.<br>Подзаглавията трябва да бъдат разделени с \" - \"<br>например \"Заглавие на Книга - Тук е Подзаглавито\" има подзаглавие \"Тук е Подзаглавито\"",
|
"LabelSettingsParseSubtitlesHelp": "Извлича подзаглавия от имената на папките на аудиокнигите.<br>Подзаглавията трябва да бъдат разделени с \" - \"<br>например \"Заглавие на Книга - Тук е Подзаглавито\" има подзаглавие \"Тук е Подзаглавито\"",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Таймер за Сън",
|
"LabelSleepTimer": "Таймер за Сън",
|
||||||
"LabelSlug": "Слъг",
|
"LabelSlug": "Слъг",
|
||||||
"LabelStart": "Старт",
|
"LabelStart": "Старт",
|
||||||
|
"LabelStartTime": "Начално Време",
|
||||||
"LabelStarted": "Стартирано",
|
"LabelStarted": "Стартирано",
|
||||||
"LabelStartedAt": "Стартирано на",
|
"LabelStartedAt": "Стартирано на",
|
||||||
"LabelStartTime": "Начално Време",
|
|
||||||
"LabelStatsAudioTracks": "Аудио Канали",
|
"LabelStatsAudioTracks": "Аудио Канали",
|
||||||
"LabelStatsAuthors": "Автори",
|
"LabelStatsAuthors": "Автори",
|
||||||
"LabelStatsBestDay": "Най-добър Ден",
|
"LabelStatsBestDay": "Най-добър Ден",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Неизвестно",
|
"LabelUnknown": "Неизвестно",
|
||||||
"LabelUpdateCover": "Обнови Корица",
|
"LabelUpdateCover": "Обнови Корица",
|
||||||
"LabelUpdateCoverHelp": "Позволи презаписване на съществуващите корици за избраните книги, когато се намери съвпадение",
|
"LabelUpdateCoverHelp": "Позволи презаписване на съществуващите корици за избраните книги, когато се намери съвпадение",
|
||||||
"LabelUpdatedAt": "Обновено на",
|
|
||||||
"LabelUpdateDetails": "Обнови Детайли",
|
"LabelUpdateDetails": "Обнови Детайли",
|
||||||
"LabelUpdateDetailsHelp": "Позволи презаписване на съществуващите детайли за избраните книги, когато се намери съвпадение",
|
"LabelUpdateDetailsHelp": "Позволи презаписване на съществуващите детайли за избраните книги, когато се намери съвпадение",
|
||||||
|
"LabelUpdatedAt": "Обновено на",
|
||||||
"LabelUploaderDragAndDrop": "Плъзни и Пусни Файлове или Папки",
|
"LabelUploaderDragAndDrop": "Плъзни и Пусни Файлове или Папки",
|
||||||
"LabelUploaderDropFiles": "Пусни Файлове",
|
"LabelUploaderDropFiles": "Пусни Файлове",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Автоматично вземи заглавие, автор и серия",
|
"LabelUploaderItemFetchMetadataHelp": "Автоматично вземи заглавие, автор и серия",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>do not</strong> include any files stored in your library folders.",
|
"MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>do not</strong> include any files stored in your library folders.",
|
||||||
"MessageBatchQuickMatchDescription": "Бързото Съпоставяне ще опита да добави липсващи корици и метаданни за избраните елементи. Активирайте опциите по-долу, за да позволите на Бързото съпоставяне да презапише съществуващите корици и/или метаданни.",
|
"MessageBatchQuickMatchDescription": "Бързото Съпоставяне ще опита да добави липсващи корици и метаданни за избраните елементи. Активирайте опциите по-долу, за да позволите на Бързото съпоставяне да презапише съществуващите корици и/или метаданни.",
|
||||||
"MessageBookshelfNoCollections": "Все още нямате създадени колекции",
|
"MessageBookshelfNoCollections": "Все още нямате създадени колекции",
|
||||||
"MessageBookshelfNoResultsForFilter": "Няма резултат за филтер \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Няма отворени RSS feed-ове",
|
"MessageBookshelfNoRSSFeeds": "Няма отворени RSS feed-ове",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Няма резултат за филтер \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "Нямаш сеЗЙ",
|
"MessageBookshelfNoSeries": "Нямаш сеЗЙ",
|
||||||
"MessageChapterEndIsAfter": "Краят на главата е след края на вашата аудиокнига",
|
"MessageChapterEndIsAfter": "Краят на главата е след края на вашата аудиокнига",
|
||||||
"MessageChapterErrorFirstNotZero": "Първата глава трябва да започва от 0",
|
"MessageChapterErrorFirstNotZero": "Първата глава трябва да започва от 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Сигурни ли сте, че искате да маркирате всички книги в тази серия като завършени?",
|
"MessageConfirmMarkSeriesFinished": "Сигурни ли сте, че искате да маркирате всички книги в тази серия като завършени?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Сигурни ли сте, че искате да маркирате всички книги в тази серия като незавършени?",
|
"MessageConfirmMarkSeriesNotFinished": "Сигурни ли сте, че искате да маркирате всички книги в тази серия като незавършени?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Внимание! Бързото вграждане няма да архивира вашите аудио файлове. Уверете се, че имате резервно копие на вашите аудио файлове. <br><br>Искате ли да продължите?",
|
"MessageConfirmQuickEmbed": "Внимание! Бързото вграждане няма да архивира вашите аудио файлове. Уверете се, че имате резервно копие на вашите аудио файлове. <br><br>Искате ли да продължите?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Сигурни ли сте, че искате да сканирате отново {0} елемента?",
|
||||||
"MessageConfirmRemoveAllChapters": "Сигурни ли сте, че искате да премахнете всички глави?",
|
"MessageConfirmRemoveAllChapters": "Сигурни ли сте, че искате да премахнете всички глави?",
|
||||||
"MessageConfirmRemoveAuthor": "Сигурни ли сте, че искате да премахнете автор \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Сигурни ли сте, че искате да премахнете автор \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Сигурни ли сте, че искате да премахнете колекция \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Сигурни ли сте, че искате да премахнете колекция \"{0}\"?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Сигурни ли сте, че искате да преименувате таг \"{0}\" на \"{1}\" за всички елементи?",
|
"MessageConfirmRenameTag": "Сигурни ли сте, че искате да преименувате таг \"{0}\" на \"{1}\" за всички елементи?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Забележка: Този таг вече съществува и ще бъде слято.",
|
"MessageConfirmRenameTagMergeNote": "Забележка: Този таг вече съществува и ще бъде слято.",
|
||||||
"MessageConfirmRenameTagWarning": "Внимание! Вече съществува подобен таг с различно писане \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Внимание! Вече съществува подобен таг с различно писане \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Сигурни ли сте, че искате да сканирате отново {0} елемента?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Сигурни ли сте, че искате да изпратите {0} електронна книга \"{1}\" до устройство \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Сигурни ли сте, че искате да изпратите {0} електронна книга \"{1}\" до устройство \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Изтегляне на епизод",
|
"MessageDownloadingEpisode": "Изтегляне на епизод",
|
||||||
"MessageDragFilesIntoTrackOrder": "Плъзнете файлове в правилния ред на каналите",
|
"MessageDragFilesIntoTrackOrder": "Плъзнете файлове в правилния ред на каналите",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Няма Серии",
|
"MessageNoSeries": "Няма Серии",
|
||||||
"MessageNoTags": "Няма Тагове",
|
"MessageNoTags": "Няма Тагове",
|
||||||
"MessageNoTasksRunning": "Няма вършещи се задачи",
|
"MessageNoTasksRunning": "Няма вършещи се задачи",
|
||||||
"MessageNotYetImplemented": "Още не е изпълнено",
|
|
||||||
"MessageNoUpdateNecessary": "Не е необходимо обновяване",
|
"MessageNoUpdateNecessary": "Не е необходимо обновяване",
|
||||||
"MessageNoUpdatesWereNecessary": "Не бяха необходими обновления",
|
"MessageNoUpdatesWereNecessary": "Не бяха необходими обновления",
|
||||||
"MessageNoUserPlaylists": "Няма плейлисти на потребителя",
|
"MessageNoUserPlaylists": "Няма плейлисти на потребителя",
|
||||||
|
"MessageNotYetImplemented": "Още не е изпълнено",
|
||||||
"MessageOr": "или",
|
"MessageOr": "или",
|
||||||
"MessagePauseChapter": "Пауза на глава",
|
"MessagePauseChapter": "Пауза на глава",
|
||||||
"MessagePlayChapter": "Пусни налчалото на глава",
|
"MessagePlayChapter": "Пусни налчалото на глава",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Плейлистът е обновен",
|
"ToastPlaylistUpdateSuccess": "Плейлистът е обновен",
|
||||||
"ToastPodcastCreateFailed": "Неуспешно създаване на подкаст",
|
"ToastPodcastCreateFailed": "Неуспешно създаване на подкаст",
|
||||||
"ToastPodcastCreateSuccess": "Подкастът е създаден",
|
"ToastPodcastCreateSuccess": "Подкастът е създаден",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Неуспешно премахване на елемент от колекция",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Елементът е премахнат от колекция",
|
|
||||||
"ToastRSSFeedCloseFailed": "Неуспешно затваряне на RSS feed",
|
"ToastRSSFeedCloseFailed": "Неуспешно затваряне на RSS feed",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS feed затворен",
|
"ToastRSSFeedCloseSuccess": "RSS feed затворен",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Неуспешно премахване на елемент от колекция",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Елементът е премахнат от колекция",
|
||||||
"ToastSendEbookToDeviceFailed": "Неуспешно изпращане на електронна книга до устройство",
|
"ToastSendEbookToDeviceFailed": "Неуспешно изпращане на електронна книга до устройство",
|
||||||
"ToastSendEbookToDeviceSuccess": "Електронната книга е изпратена до устройство \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Електронната книга е изпратена до устройство \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Неуспешно обновяване на серия",
|
"ToastSeriesUpdateFailed": "Неуспешно обновяване на серия",
|
||||||
|
|||||||
+50
-39
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "প্রয়োগ করুন",
|
"ButtonApply": "প্রয়োগ করুন",
|
||||||
"ButtonApplyChapters": "অধ্যায় প্রয়োগ করুন",
|
"ButtonApplyChapters": "অধ্যায় প্রয়োগ করুন",
|
||||||
"ButtonAuthors": "লেখক",
|
"ButtonAuthors": "লেখক",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "ফোল্ডারের জন্য ব্রাউজ করুন",
|
"ButtonBrowseForFolder": "ফোল্ডারের জন্য ব্রাউজ করুন",
|
||||||
"ButtonCancel": "বাতিল করুন",
|
"ButtonCancel": "বাতিল করুন",
|
||||||
"ButtonCancelEncode": "এনকোড বাতিল করুন",
|
"ButtonCancelEncode": "এনকোড বাতিল করুন",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "আগের অধ্যায়",
|
"ButtonPreviousChapter": "আগের অধ্যায়",
|
||||||
"ButtonPurgeAllCache": "সমস্ত ক্যাশে পরিষ্কার করুন",
|
"ButtonPurgeAllCache": "সমস্ত ক্যাশে পরিষ্কার করুন",
|
||||||
"ButtonPurgeItemsCache": "আইটেম ক্যাশে পরিষ্কার করুন",
|
"ButtonPurgeItemsCache": "আইটেম ক্যাশে পরিষ্কার করুন",
|
||||||
"ButtonPurgeMediaProgress": "মিডিয়া ক্যাশে পরিষ্কার করুন",
|
|
||||||
"ButtonQueueAddItem": "সারিতে যোগ করুন",
|
"ButtonQueueAddItem": "সারিতে যোগ করুন",
|
||||||
"ButtonQueueRemoveItem": "সারি থেকে মুছে ফেলুন",
|
"ButtonQueueRemoveItem": "সারি থেকে মুছে ফেলুন",
|
||||||
"ButtonQuickMatch": "দ্রুত ম্যাচ",
|
"ButtonQuickMatch": "দ্রুত ম্যাচ",
|
||||||
|
"ButtonReScan": "পুনরায় স্ক্যান",
|
||||||
"ButtonRead": "পড়ুন",
|
"ButtonRead": "পড়ুন",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "শোনা চালিয়ে যাওয়া থেকে মুছে ফেলুন",
|
"ButtonRemoveFromContinueListening": "শোনা চালিয়ে যাওয়া থেকে মুছে ফেলুন",
|
||||||
"ButtonRemoveFromContinueReading": "পঠন চালিয়ে যান থেকে মুছে ফেলুন",
|
"ButtonRemoveFromContinueReading": "পঠন চালিয়ে যান থেকে মুছে ফেলুন",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "কন্টিনিউ সিরিজ থেকে সিরিজ মুছে ফেলুন",
|
"ButtonRemoveSeriesFromContinueSeries": "কন্টিনিউ সিরিজ থেকে সিরিজ মুছে ফেলুন",
|
||||||
"ButtonReScan": "পুনরায় স্ক্যান",
|
|
||||||
"ButtonReset": "রিসেট",
|
"ButtonReset": "রিসেট",
|
||||||
"ButtonResetToDefault": "ডিফল্টে পুনরায় সেট করুন",
|
"ButtonResetToDefault": "ডিফল্টে পুনরায় সেট করুন",
|
||||||
"ButtonRestore": "পুনরুদ্ধার করুন",
|
"ButtonRestore": "পুনরুদ্ধার করুন",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "অ্যাকাউন্ট",
|
"HeaderAccount": "অ্যাকাউন্ট",
|
||||||
"HeaderAdvanced": "অ্যাডভান্সড",
|
"HeaderAdvanced": "অ্যাডভান্সড",
|
||||||
"HeaderAppriseNotificationSettings": "বিজ্ঞপ্তি সেটিংস অবহিত করুন",
|
"HeaderAppriseNotificationSettings": "বিজ্ঞপ্তি সেটিংস অবহিত করুন",
|
||||||
"HeaderAudiobookTools": "অডিওবই ফাইল ম্যানেজমেন্ট টুলস",
|
|
||||||
"HeaderAudioTracks": "অডিও ট্র্যাকস",
|
"HeaderAudioTracks": "অডিও ট্র্যাকস",
|
||||||
|
"HeaderAudiobookTools": "অডিওবই ফাইল ম্যানেজমেন্ট টুলস",
|
||||||
"HeaderAuthentication": "প্রমাণীকরণ",
|
"HeaderAuthentication": "প্রমাণীকরণ",
|
||||||
"HeaderBackups": "ব্যাকআপ",
|
"HeaderBackups": "ব্যাকআপ",
|
||||||
"HeaderChangePassword": "পাসওয়ার্ড পরিবর্তন করুন",
|
"HeaderChangePassword": "পাসওয়ার্ড পরিবর্তন করুন",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "সংগ্রহ আইটেম",
|
"HeaderCollectionItems": "সংগ্রহ আইটেম",
|
||||||
"HeaderCover": "কভার",
|
"HeaderCover": "কভার",
|
||||||
"HeaderCurrentDownloads": "বর্তমান ডাউনলোডগুলি",
|
"HeaderCurrentDownloads": "বর্তমান ডাউনলোডগুলি",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "কাস্টম মেটাডেটা প্রদানকারী",
|
"HeaderCustomMetadataProviders": "কাস্টম মেটাডেটা প্রদানকারী",
|
||||||
"HeaderDetails": "বিস্তারিত",
|
"HeaderDetails": "বিস্তারিত",
|
||||||
"HeaderDownloadQueue": "ডাউনলোড সারি",
|
"HeaderDownloadQueue": "ডাউনলোড সারি",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "প্লেলিস্ট আইটেম",
|
"HeaderPlaylistItems": "প্লেলিস্ট আইটেম",
|
||||||
"HeaderPodcastsToAdd": "যোগ করার জন্য পডকাস্ট",
|
"HeaderPodcastsToAdd": "যোগ করার জন্য পডকাস্ট",
|
||||||
"HeaderPreviewCover": "কভার ্দেখুন",
|
"HeaderPreviewCover": "কভার ্দেখুন",
|
||||||
"HeaderRemoveEpisode": "পর্বটি সরান",
|
|
||||||
"HeaderRemoveEpisodes": "{0}টি পর্ব সরান",
|
|
||||||
"HeaderRSSFeedGeneral": "আরএসএস বিবরণ",
|
"HeaderRSSFeedGeneral": "আরএসএস বিবরণ",
|
||||||
"HeaderRSSFeedIsOpen": "আরএসএস ফিড খোলা আছে",
|
"HeaderRSSFeedIsOpen": "আরএসএস ফিড খোলা আছে",
|
||||||
"HeaderRSSFeeds": "আরএসএস ফিড",
|
"HeaderRSSFeeds": "আরএসএস ফিড",
|
||||||
|
"HeaderRemoveEpisode": "পর্বটি সরান",
|
||||||
|
"HeaderRemoveEpisodes": "{0}টি পর্ব সরান",
|
||||||
"HeaderSavedMediaProgress": "মিডিয়া সংরক্ষণের অগ্রগতি",
|
"HeaderSavedMediaProgress": "মিডিয়া সংরক্ষণের অগ্রগতি",
|
||||||
"HeaderSchedule": "সময়সূচী",
|
"HeaderSchedule": "সময়সূচী",
|
||||||
"HeaderScheduleLibraryScans": "স্বয়ংক্রিয় লাইব্রেরি স্ক্যানের সময়সূচী",
|
"HeaderScheduleLibraryScans": "স্বয়ংক্রিয় লাইব্রেরি স্ক্যানের সময়সূচী",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "অতিথি",
|
"LabelAccountTypeGuest": "অতিথি",
|
||||||
"LabelAccountTypeUser": "ব্যবহারকারী",
|
"LabelAccountTypeUser": "ব্যবহারকারী",
|
||||||
"LabelActivity": "ক্রিয়াকলাপ",
|
"LabelActivity": "ক্রিয়াকলাপ",
|
||||||
"LabelAdded": "যোগ করা হয়েছে",
|
|
||||||
"LabelAddedAt": "এতে যোগ করা হয়েছে",
|
|
||||||
"LabelAddToCollection": "সংগ্রহে যোগ করুন",
|
"LabelAddToCollection": "সংগ্রহে যোগ করুন",
|
||||||
"LabelAddToCollectionBatch": "সংগ্রহে {0}টি বই যোগ করুন",
|
"LabelAddToCollectionBatch": "সংগ্রহে {0}টি বই যোগ করুন",
|
||||||
"LabelAddToPlaylist": "প্লেলিস্টে যোগ করুন",
|
"LabelAddToPlaylist": "প্লেলিস্টে যোগ করুন",
|
||||||
"LabelAddToPlaylistBatch": "প্লেলিস্টে {0}টি আইটেম যোগ করুন",
|
"LabelAddToPlaylistBatch": "প্লেলিস্টে {0}টি আইটেম যোগ করুন",
|
||||||
|
"LabelAdded": "যোগ করা হয়েছে",
|
||||||
|
"LabelAddedAt": "এতে যোগ করা হয়েছে",
|
||||||
"LabelAdminUsersOnly": "শুধু অ্যাডমিন ব্যবহারকারী",
|
"LabelAdminUsersOnly": "শুধু অ্যাডমিন ব্যবহারকারী",
|
||||||
"LabelAll": "সব",
|
"LabelAll": "সব",
|
||||||
"LabelAllUsers": "সমস্ত ব্যবহারকারী",
|
"LabelAllUsers": "সমস্ত ব্যবহারকারী",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "পাসওয়ার্ড পরিবর্তন করুন",
|
"LabelChangePassword": "পাসওয়ার্ড পরিবর্তন করুন",
|
||||||
"LabelChannels": "চ্যানেল",
|
"LabelChannels": "চ্যানেল",
|
||||||
|
"LabelChapterTitle": "অধ্যায়ের শিরোনাম",
|
||||||
"LabelChapters": "অধ্যায়",
|
"LabelChapters": "অধ্যায়",
|
||||||
"LabelChaptersFound": "অধ্যায় পাওয়া গেছে",
|
"LabelChaptersFound": "অধ্যায় পাওয়া গেছে",
|
||||||
"LabelChapterTitle": "অধ্যায়ের শিরোনাম",
|
|
||||||
"LabelClickForMoreInfo": "আরো তথ্যের জন্য ক্লিক করুন",
|
"LabelClickForMoreInfo": "আরো তথ্যের জন্য ক্লিক করুন",
|
||||||
"LabelClosePlayer": "প্লেয়ার বন্ধ করুন",
|
"LabelClosePlayer": "প্লেয়ার বন্ধ করুন",
|
||||||
"LabelCodec": "কোডেক",
|
"LabelCodec": "কোডেক",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "সম্পাদনা করুন",
|
"LabelEdit": "সম্পাদনা করুন",
|
||||||
"LabelEmail": "ইমেইল",
|
"LabelEmail": "ইমেইল",
|
||||||
"LabelEmailSettingsFromAddress": "ঠিকানা থেকে",
|
"LabelEmailSettingsFromAddress": "ঠিকানা থেকে",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to।",
|
||||||
"LabelEmailSettingsSecure": "নিরাপদ",
|
"LabelEmailSettingsSecure": "নিরাপদ",
|
||||||
"LabelEmailSettingsSecureHelp": "যদি সত্য হয় সার্ভারের সাথে সংযোগ করার সময় সংযোগটি TLS ব্যবহার করবে। মিথ্যা হলে TLS ব্যবহার করা হবে যদি সার্ভার STARTTLS এক্সটেনশন সমর্থন করে। বেশিরভাগ ক্ষেত্রে এই মানটিকে সত্য হিসাবে সেট করুন যদি আপনি পোর্ট 465-এর সাথে সংযোগ করছেন। পোর্ট 587 বা পোর্টের জন্য 25 এটি মিথ্যা রাখুন। (nodemailer.com/smtp/#authentication থেকে)",
|
"LabelEmailSettingsSecureHelp": "যদি সত্য হয় সার্ভারের সাথে সংযোগ করার সময় সংযোগটি TLS ব্যবহার করবে। মিথ্যা হলে TLS ব্যবহার করা হবে যদি সার্ভার STARTTLS এক্সটেনশন সমর্থন করে। বেশিরভাগ ক্ষেত্রে এই মানটিকে সত্য হিসাবে সেট করুন যদি আপনি পোর্ট 465-এর সাথে সংযোগ করছেন। পোর্ট 587 বা পোর্টের জন্য 25 এটি মিথ্যা রাখুন। (nodemailer.com/smtp/#authentication থেকে)",
|
||||||
"LabelEmailSettingsTestAddress": "পরীক্ষার ঠিকানা",
|
"LabelEmailSettingsTestAddress": "পরীক্ষার ঠিকানা",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "ফোল্ডার",
|
"LabelFolder": "ফোল্ডার",
|
||||||
"LabelFolders": "ফোল্ডারগুলো",
|
"LabelFolders": "ফোল্ডারগুলো",
|
||||||
"LabelFontBold": "বোল্ড",
|
"LabelFontBold": "বোল্ড",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "ফন্ট পরিবার",
|
"LabelFontFamily": "ফন্ট পরিবার",
|
||||||
"LabelFontItalic": "ইটালিক",
|
"LabelFontItalic": "ইটালিক",
|
||||||
"LabelFontScale": "ফন্ট স্কেল",
|
"LabelFontScale": "ফন্ট স্কেল",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "ঘন্টা",
|
"LabelHour": "ঘন্টা",
|
||||||
"LabelIcon": "আইকন",
|
"LabelIcon": "আইকন",
|
||||||
"LabelImageURLFromTheWeb": "ওয়েব থেকে ছবির ইউআরএল",
|
"LabelImageURLFromTheWeb": "ওয়েব থেকে ছবির ইউআরএল",
|
||||||
|
"LabelInProgress": "প্রগতিতে আছে",
|
||||||
"LabelIncludeInTracklist": "ট্র্যাকলিস্টে অন্তর্ভুক্ত করুন",
|
"LabelIncludeInTracklist": "ট্র্যাকলিস্টে অন্তর্ভুক্ত করুন",
|
||||||
"LabelIncomplete": "অসম্পূর্ণ",
|
"LabelIncomplete": "অসম্পূর্ণ",
|
||||||
"LabelInProgress": "প্রগতিতে আছে",
|
|
||||||
"LabelInterval": "বিরতি",
|
"LabelInterval": "বিরতি",
|
||||||
"LabelIntervalCustomDailyWeekly": "কাস্টম দৈনিক/সাপ্তাহিক",
|
"LabelIntervalCustomDailyWeekly": "কাস্টম দৈনিক/সাপ্তাহিক",
|
||||||
"LabelIntervalEvery12Hours": "প্রতি ১২ ঘন্টায়",
|
"LabelIntervalEvery12Hours": "প্রতি ১২ ঘন্টায়",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "আইটেম",
|
"LabelItem": "আইটেম",
|
||||||
"LabelLanguage": "ভাষা",
|
"LabelLanguage": "ভাষা",
|
||||||
"LabelLanguageDefaultServer": "সার্ভারের ডিফল্ট ভাষা",
|
"LabelLanguageDefaultServer": "সার্ভারের ডিফল্ট ভাষা",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "শেষ বই যোগ করা হয়েছে",
|
"LabelLastBookAdded": "শেষ বই যোগ করা হয়েছে",
|
||||||
"LabelLastBookUpdated": "শেষ বই আপডেট করা হয়েছে",
|
"LabelLastBookUpdated": "শেষ বই আপডেট করা হয়েছে",
|
||||||
"LabelLastSeen": "শেষ দেখা",
|
"LabelLastSeen": "শেষ দেখা",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "কম",
|
"LabelLess": "কম",
|
||||||
"LabelLibrariesAccessibleToUser": "ব্যবহারকারীর কাছে অ্যাক্সেসযোগ্য লাইব্রেরি",
|
"LabelLibrariesAccessibleToUser": "ব্যবহারকারীর কাছে অ্যাক্সেসযোগ্য লাইব্রেরি",
|
||||||
"LabelLibrary": "লাইব্রেরি",
|
"LabelLibrary": "লাইব্রেরি",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "লাইব্রেরি আইটেম",
|
"LabelLibraryItem": "লাইব্রেরি আইটেম",
|
||||||
"LabelLibraryName": "লাইব্রেরির নাম",
|
"LabelLibraryName": "লাইব্রেরির নাম",
|
||||||
"LabelLimit": "সীমা",
|
"LabelLimit": "সীমা",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "বিদ্যমান ব্যবহারকারীদের সংযোগ করার জন্য ব্যবহৃত হয়। একবার সংযুক্ত হলে, ব্যবহারকারীদের আপনার SSO প্রদানকারীর থেকে একটি অনন্য আইডি দ্বারা মিলিত হবে",
|
"LabelMatchExistingUsersByDescription": "বিদ্যমান ব্যবহারকারীদের সংযোগ করার জন্য ব্যবহৃত হয়। একবার সংযুক্ত হলে, ব্যবহারকারীদের আপনার SSO প্রদানকারীর থেকে একটি অনন্য আইডি দ্বারা মিলিত হবে",
|
||||||
"LabelMediaPlayer": "মিডিয়া প্লেয়ার",
|
"LabelMediaPlayer": "মিডিয়া প্লেয়ার",
|
||||||
"LabelMediaType": "মিডিয়ার ধরন",
|
"LabelMediaType": "মিডিয়ার ধরন",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "উচ্চ অগ্রাধিকারের মেটাডেটার উৎসগুলো নিম্ন অগ্রাধিকারের মেটাডেটা উৎসগুলোকে ওভাররাইড করবে",
|
|
||||||
"LabelMetadataProvider": "মেটাডেটা প্রদানকারী",
|
|
||||||
"LabelMetaTag": "মেটা ট্যাগ",
|
"LabelMetaTag": "মেটা ট্যাগ",
|
||||||
"LabelMetaTags": "মেটা ট্যাগগুলো",
|
"LabelMetaTags": "মেটা ট্যাগগুলো",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "উচ্চ অগ্রাধিকারের মেটাডেটার উৎসগুলো নিম্ন অগ্রাধিকারের মেটাডেটা উৎসগুলোকে ওভাররাইড করবে",
|
||||||
|
"LabelMetadataProvider": "মেটাডেটা প্রদানকারী",
|
||||||
"LabelMinute": "মিনিট",
|
"LabelMinute": "মিনিট",
|
||||||
"LabelMissing": "নিখোঁজ",
|
"LabelMissing": "নিখোঁজ",
|
||||||
"LabelMissingEbook": "কোনও ই-বই নেই",
|
"LabelMissingEbook": "কোনও ই-বই নেই",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "কথক",
|
"LabelNarrator": "কথক",
|
||||||
"LabelNarrators": "কথক",
|
"LabelNarrators": "কথক",
|
||||||
"LabelNew": "নতুন",
|
"LabelNew": "নতুন",
|
||||||
|
"LabelNewPassword": "নতুন পাসওয়ার্ড",
|
||||||
"LabelNewestAuthors": "নতুন লেখক",
|
"LabelNewestAuthors": "নতুন লেখক",
|
||||||
"LabelNewestEpisodes": "নতুনতম পর্ব",
|
"LabelNewestEpisodes": "নতুনতম পর্ব",
|
||||||
"LabelNewPassword": "নতুন পাসওয়ার্ড",
|
|
||||||
"LabelNextBackupDate": "পরবর্তী ব্যাকআপ তারিখ",
|
"LabelNextBackupDate": "পরবর্তী ব্যাকআপ তারিখ",
|
||||||
"LabelNextScheduledRun": "পরবর্তী নির্ধারিত দৌড়",
|
"LabelNextScheduledRun": "পরবর্তী নির্ধারিত দৌড়",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "কোন পর্ব নির্বাচন করা হয়নি",
|
"LabelNoEpisodesSelected": "কোন পর্ব নির্বাচন করা হয়নি",
|
||||||
"LabelNotes": "নোটস",
|
|
||||||
"LabelNotFinished": "সমাপ্ত হয়নি",
|
"LabelNotFinished": "সমাপ্ত হয়নি",
|
||||||
|
"LabelNotStarted": "শুরু হয়নি",
|
||||||
|
"LabelNotes": "নোটস",
|
||||||
"LabelNotificationAppriseURL": "অবহিত URL(গুলি)",
|
"LabelNotificationAppriseURL": "অবহিত URL(গুলি)",
|
||||||
"LabelNotificationAvailableVariables": "ব্যবহারযোগ্য ভেরিয়েবল",
|
"LabelNotificationAvailableVariables": "ব্যবহারযোগ্য ভেরিয়েবল",
|
||||||
"LabelNotificationBodyTemplate": "বডি টেমপ্লেট",
|
"LabelNotificationBodyTemplate": "বডি টেমপ্লেট",
|
||||||
"LabelNotificationEvent": "ইভেন্ট বিজ্ঞপ্তি",
|
"LabelNotificationEvent": "ইভেন্ট বিজ্ঞপ্তি",
|
||||||
|
"LabelNotificationTitleTemplate": "শিরোনাম টেমপ্লেট",
|
||||||
"LabelNotificationsMaxFailedAttempts": "সর্বোচ্চ ব্যর্থ প্রচেষ্টা",
|
"LabelNotificationsMaxFailedAttempts": "সর্বোচ্চ ব্যর্থ প্রচেষ্টা",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "এটি বারবার পাঠাতে ব্যর্থ হলে বিজ্ঞপ্তি অক্ষম করা হবে",
|
"LabelNotificationsMaxFailedAttemptsHelp": "এটি বারবার পাঠাতে ব্যর্থ হলে বিজ্ঞপ্তি অক্ষম করা হবে",
|
||||||
"LabelNotificationsMaxQueueSize": "বিজ্ঞপ্তি ইভেন্টের জন্য সর্বোচ্চ সারির আকার",
|
"LabelNotificationsMaxQueueSize": "বিজ্ঞপ্তি ইভেন্টের জন্য সর্বোচ্চ সারির আকার",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "ইভেন্টগুলি প্রতি সেকেন্ডে ১ বার ইন্ধন করার মধ্যে সীমাবদ্ধ। সারি সর্বাধিক আকারে থাকলে ইভেন্টগুলি উপেক্ষা করা হবে। এটি বিজ্ঞপ্তি স্প্যামিং প্রতিরোধ করে।",
|
"LabelNotificationsMaxQueueSizeHelp": "ইভেন্টগুলি প্রতি সেকেন্ডে ১ বার ইন্ধন করার মধ্যে সীমাবদ্ধ। সারি সর্বাধিক আকারে থাকলে ইভেন্টগুলি উপেক্ষা করা হবে। এটি বিজ্ঞপ্তি স্প্যামিং প্রতিরোধ করে।",
|
||||||
"LabelNotificationTitleTemplate": "শিরোনাম টেমপ্লেট",
|
|
||||||
"LabelNotStarted": "শুরু হয়নি",
|
|
||||||
"LabelNumberOfBooks": "বইয়ের সংখ্যা",
|
"LabelNumberOfBooks": "বইয়ের সংখ্যা",
|
||||||
"LabelNumberOfEpisodes": "# টি পর্ব",
|
"LabelNumberOfEpisodes": "# টি পর্ব",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "ওপেনআইডি দাবির নাম যাতে অ্যাপ্লিকেশনের মধ্যে ব্যবহারকারীর ক্রিয়াকলাপের জন্য উন্নত অনুমতি রয়েছে যা অ-প্রশাসক ভূমিকাগুলিতে প্রযোজ্য হবে (<b>যদি কনফিগার করা হয়</b>)। প্রতিক্রিয়া থেকে দাবিটি অনুপস্থিত থাকলে, অ্যাক্সেস করুন ABS-তে অস্বীকার করা হবে। যদি একটি একক বিকল্প অনুপস্থিত থাকে, তাহলে এটিকে <code>false</code> হিসাবে গণ্য করা হবে। নিশ্চিত করুন যে পরিচয় প্রদানকারীর দাবি প্রত্যাশিত কাঠামোর সাথে মেলে:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "ওপেনআইডি দাবির নাম যাতে অ্যাপ্লিকেশনের মধ্যে ব্যবহারকারীর ক্রিয়াকলাপের জন্য উন্নত অনুমতি রয়েছে যা অ-প্রশাসক ভূমিকাগুলিতে প্রযোজ্য হবে (<b>যদি কনফিগার করা হয়</b>)। প্রতিক্রিয়া থেকে দাবিটি অনুপস্থিত থাকলে, অ্যাক্সেস করুন ABS-তে অস্বীকার করা হবে। যদি একটি একক বিকল্প অনুপস্থিত থাকে, তাহলে এটিকে <code>false</code> হিসাবে গণ্য করা হবে। নিশ্চিত করুন যে পরিচয় প্রদানকারীর দাবি প্রত্যাশিত কাঠামোর সাথে মেলে:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "আপলোড করতে পারবে",
|
"LabelPermissionsUpload": "আপলোড করতে পারবে",
|
||||||
"LabelPersonalYearReview": "আপনার বছরের পর্যালোচনা ({0})",
|
"LabelPersonalYearReview": "আপনার বছরের পর্যালোচনা ({0})",
|
||||||
"LabelPhotoPathURL": "ছবি পথ/ইউআরএল",
|
"LabelPhotoPathURL": "ছবি পথ/ইউআরএল",
|
||||||
"LabelPlaylists": "প্লেলিস্ট",
|
|
||||||
"LabelPlayMethod": "প্লে পদ্ধতি",
|
"LabelPlayMethod": "প্লে পদ্ধতি",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "প্লেলিস্ট",
|
||||||
"LabelPodcast": "পডকাস্ট",
|
"LabelPodcast": "পডকাস্ট",
|
||||||
"LabelPodcasts": "পডকাস্টগুলো",
|
|
||||||
"LabelPodcastSearchRegion": "পডকাস্ট অনুসন্ধান অঞ্চল",
|
"LabelPodcastSearchRegion": "পডকাস্ট অনুসন্ধান অঞ্চল",
|
||||||
"LabelPodcastType": "পডকাস্টের ধরন",
|
"LabelPodcastType": "পডকাস্টের ধরন",
|
||||||
|
"LabelPodcasts": "পডকাস্টগুলো",
|
||||||
"LabelPort": "পোর্ট",
|
"LabelPort": "পোর্ট",
|
||||||
"LabelPrefixesToIgnore": "উপেক্ষা করার উপসর্গ (কেস সংবেদনশীল)",
|
"LabelPrefixesToIgnore": "উপেক্ষা করার উপসর্গ (কেস সংবেদনশীল)",
|
||||||
"LabelPreventIndexing": "আইটিউনস এবং গুগল পডকাস্ট ডিরেক্টরি দ্বারা আপনার ফিডকে ইন্ডেক্স করা থেকে বিরত রাখুন",
|
"LabelPreventIndexing": "আইটিউনস এবং গুগল পডকাস্ট ডিরেক্টরি দ্বারা আপনার ফিডকে ইন্ডেক্স করা থেকে বিরত রাখুন",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "প্রগতি",
|
"LabelProgress": "প্রগতি",
|
||||||
"LabelProvider": "প্রদানকারী",
|
"LabelProvider": "প্রদানকারী",
|
||||||
"LabelPubDate": "প্রকাশের তারিখ",
|
"LabelPubDate": "প্রকাশের তারিখ",
|
||||||
"LabelPublisher": "প্রকাশক",
|
|
||||||
"LabelPublishYear": "প্রকাশের বছর",
|
"LabelPublishYear": "প্রকাশের বছর",
|
||||||
"LabelRead": "পড়ুন",
|
"LabelPublisher": "প্রকাশক",
|
||||||
"LabelReadAgain": "আবার পড়ুন",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "প্রগতি না রেখে ই-বই পড়ুন",
|
|
||||||
"LabelRecentlyAdded": "সম্প্রতি যোগ করা হয়েছে",
|
|
||||||
"LabelRecentSeries": "সাম্প্রতিক সিরিজ",
|
|
||||||
"LabelRecommended": "সুপারিশকৃত",
|
|
||||||
"LabelRedo": "পুনরায় করুন",
|
|
||||||
"LabelRegion": "অঞ্চল",
|
|
||||||
"LabelReleaseDate": "উন্মোচনের তারিখ",
|
|
||||||
"LabelRemoveCover": "কভার সরান",
|
|
||||||
"LabelRowsPerPage": "প্রতি পৃষ্ঠায় সারি",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "কাস্টম মালিকের ইমেইল",
|
"LabelRSSFeedCustomOwnerEmail": "কাস্টম মালিকের ইমেইল",
|
||||||
"LabelRSSFeedCustomOwnerName": "কাস্টম মালিকের নাম",
|
"LabelRSSFeedCustomOwnerName": "কাস্টম মালিকের নাম",
|
||||||
"LabelRSSFeedOpen": "আরএসএস ফিড খুলুন",
|
"LabelRSSFeedOpen": "আরএসএস ফিড খুলুন",
|
||||||
"LabelRSSFeedPreventIndexing": "সূচীকরণ প্রতিরোধ করুন",
|
"LabelRSSFeedPreventIndexing": "সূচীকরণ প্রতিরোধ করুন",
|
||||||
"LabelRSSFeedSlug": "আরএসএস ফিড স্লাগ",
|
"LabelRSSFeedSlug": "আরএসএস ফিড স্লাগ",
|
||||||
"LabelRSSFeedURL": "আরএসএস ফিড ইউআরএল",
|
"LabelRSSFeedURL": "আরএসএস ফিড ইউআরএল",
|
||||||
|
"LabelRead": "পড়ুন",
|
||||||
|
"LabelReadAgain": "আবার পড়ুন",
|
||||||
|
"LabelReadEbookWithoutProgress": "প্রগতি না রেখে ই-বই পড়ুন",
|
||||||
|
"LabelRecentSeries": "সাম্প্রতিক সিরিজ",
|
||||||
|
"LabelRecentlyAdded": "সম্প্রতি যোগ করা হয়েছে",
|
||||||
|
"LabelRecommended": "সুপারিশকৃত",
|
||||||
|
"LabelRedo": "পুনরায় করুন",
|
||||||
|
"LabelRegion": "অঞ্চল",
|
||||||
|
"LabelReleaseDate": "উন্মোচনের তারিখ",
|
||||||
|
"LabelRemoveCover": "কভার সরান",
|
||||||
|
"LabelRowsPerPage": "প্রতি পৃষ্ঠায় সারি",
|
||||||
"LabelSearchTerm": "অনুসন্ধান শব্দ",
|
"LabelSearchTerm": "অনুসন্ধান শব্দ",
|
||||||
"LabelSearchTitle": "অনুসন্ধান শিরোনাম",
|
"LabelSearchTitle": "অনুসন্ধান শিরোনাম",
|
||||||
"LabelSearchTitleOrASIN": "অনুসন্ধান শিরোনাম বা ASIN",
|
"LabelSearchTitleOrASIN": "অনুসন্ধান শিরোনাম বা ASIN",
|
||||||
@@ -472,7 +481,7 @@
|
|||||||
"LabelSettingsEnableWatcherForLibrary": "লাইব্রেরির জন্য ফোল্ডার প্রহরী সক্ষম করুন",
|
"LabelSettingsEnableWatcherForLibrary": "লাইব্রেরির জন্য ফোল্ডার প্রহরী সক্ষম করুন",
|
||||||
"LabelSettingsEnableWatcherHelp": "ফাইলের পরিবর্তন শনাক্ত হলে আইটেমগুলির স্বয়ংক্রিয় যোগ/আপডেট সক্ষম করবে। *সার্ভার পুনরায় চালু করতে হবে",
|
"LabelSettingsEnableWatcherHelp": "ফাইলের পরিবর্তন শনাক্ত হলে আইটেমগুলির স্বয়ংক্রিয় যোগ/আপডেট সক্ষম করবে। *সার্ভার পুনরায় চালু করতে হবে",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files।",
|
||||||
"LabelSettingsExperimentalFeatures": "পরীক্ষামূলক বৈশিষ্ট্য",
|
"LabelSettingsExperimentalFeatures": "পরীক্ষামূলক বৈশিষ্ট্য",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "ফিচারের বৈশিষ্ট্য যা আপনার প্রতিক্রিয়া ব্যবহার করতে পারে এবং পরীক্ষায় সহায়তা করতে পারে। গিটহাব আলোচনা খুলতে ক্লিক করুন।",
|
"LabelSettingsExperimentalFeaturesHelp": "ফিচারের বৈশিষ্ট্য যা আপনার প্রতিক্রিয়া ব্যবহার করতে পারে এবং পরীক্ষায় সহায়তা করতে পারে। গিটহাব আলোচনা খুলতে ক্লিক করুন।",
|
||||||
"LabelSettingsFindCovers": "কভার খুঁজুন",
|
"LabelSettingsFindCovers": "কভার খুঁজুন",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "স্লিপ টাইমার",
|
"LabelSleepTimer": "স্লিপ টাইমার",
|
||||||
"LabelSlug": "স্লাগ",
|
"LabelSlug": "স্লাগ",
|
||||||
"LabelStart": "শুরু",
|
"LabelStart": "শুরু",
|
||||||
|
"LabelStartTime": "শুরু করার সময়",
|
||||||
"LabelStarted": "শুরু হয়েছে",
|
"LabelStarted": "শুরু হয়েছে",
|
||||||
"LabelStartedAt": "এতে শুরু হয়েছে",
|
"LabelStartedAt": "এতে শুরু হয়েছে",
|
||||||
"LabelStartTime": "শুরু করার সময়",
|
|
||||||
"LabelStatsAudioTracks": "অডিও ট্র্যাক",
|
"LabelStatsAudioTracks": "অডিও ট্র্যাক",
|
||||||
"LabelStatsAuthors": "লেখক",
|
"LabelStatsAuthors": "লেখক",
|
||||||
"LabelStatsBestDay": "সেরা দিন",
|
"LabelStatsBestDay": "সেরা দিন",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "অজানা",
|
"LabelUnknown": "অজানা",
|
||||||
"LabelUpdateCover": "কভার আপডেট করুন",
|
"LabelUpdateCover": "কভার আপডেট করুন",
|
||||||
"LabelUpdateCoverHelp": "একটি মিল থাকা অবস্থায় নির্বাচিত বইগুলির বিদ্যমান কভারগুলি ওভাররাইট করার অনুমতি দিন",
|
"LabelUpdateCoverHelp": "একটি মিল থাকা অবস্থায় নির্বাচিত বইগুলির বিদ্যমান কভারগুলি ওভাররাইট করার অনুমতি দিন",
|
||||||
"LabelUpdatedAt": "আপডেট করা হয়েছে",
|
|
||||||
"LabelUpdateDetails": "বিশদ আপডেট করুন",
|
"LabelUpdateDetails": "বিশদ আপডেট করুন",
|
||||||
"LabelUpdateDetailsHelp": "একটি মিল থাকা অবস্থায় নির্বাচিত বইগুলির বিদ্যমান বিবরণ ওভাররাইট করার অনুমতি দিন",
|
"LabelUpdateDetailsHelp": "একটি মিল থাকা অবস্থায় নির্বাচিত বইগুলির বিদ্যমান বিবরণ ওভাররাইট করার অনুমতি দিন",
|
||||||
|
"LabelUpdatedAt": "আপডেট করা হয়েছে",
|
||||||
"LabelUploaderDragAndDrop": "ফাইল বা ফোল্ডার টেনে আনুন এবং ফেলে দিন",
|
"LabelUploaderDragAndDrop": "ফাইল বা ফোল্ডার টেনে আনুন এবং ফেলে দিন",
|
||||||
"LabelUploaderDropFiles": "ফাইলগুলো ফেলে দিন",
|
"LabelUploaderDropFiles": "ফাইলগুলো ফেলে দিন",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "স্বয়ংক্রিয়ভাবে শিরোনাম, লেখক এবং সিরিজ আনুন",
|
"LabelUploaderItemFetchMetadataHelp": "স্বয়ংক্রিয়ভাবে শিরোনাম, লেখক এবং সিরিজ আনুন",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "ব্যাকআপের মধ্যে রয়েছে ব্যবহারকারী, ব্যবহারকারীর অগ্রগতি, লাইব্রেরি আইটেমের বিবরণ, সার্ভার সেটিংস এবং <code>/metadata/items</code> & <code>/metadata/authors</code>-এ সংরক্ষিত ছবি। ব্যাকআপগুলি <strong> আপনার লাইব্রেরি ফোল্ডারে সঞ্চিত কোনো ফাইল >অন্তর্ভুক্ত করবেন না</strong>।",
|
"MessageBackupsDescription": "ব্যাকআপের মধ্যে রয়েছে ব্যবহারকারী, ব্যবহারকারীর অগ্রগতি, লাইব্রেরি আইটেমের বিবরণ, সার্ভার সেটিংস এবং <code>/metadata/items</code> & <code>/metadata/authors</code>-এ সংরক্ষিত ছবি। ব্যাকআপগুলি <strong> আপনার লাইব্রেরি ফোল্ডারে সঞ্চিত কোনো ফাইল >অন্তর্ভুক্ত করবেন না</strong>।",
|
||||||
"MessageBatchQuickMatchDescription": "কুইক ম্যাচ নির্বাচিত আইটেমগুলির জন্য অনুপস্থিত কভার এবং মেটাডেটা যোগ করার চেষ্টা করবে। বিদ্যমান কভার এবং/অথবা মেটাডেটা ওভাররাইট করার জন্য দ্রুত ম্যাচকে অনুমতি দিতে নীচের বিকল্পগুলি সক্ষম করুন।",
|
"MessageBatchQuickMatchDescription": "কুইক ম্যাচ নির্বাচিত আইটেমগুলির জন্য অনুপস্থিত কভার এবং মেটাডেটা যোগ করার চেষ্টা করবে। বিদ্যমান কভার এবং/অথবা মেটাডেটা ওভাররাইট করার জন্য দ্রুত ম্যাচকে অনুমতি দিতে নীচের বিকল্পগুলি সক্ষম করুন।",
|
||||||
"MessageBookshelfNoCollections": "আপনি এখনও কোনো সংগ্রহ করেননি",
|
"MessageBookshelfNoCollections": "আপনি এখনও কোনো সংগ্রহ করেননি",
|
||||||
"MessageBookshelfNoResultsForFilter": "ফিল্টার \"{0}: {1}\" এর জন্য কোন ফলাফল নেই",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "কোনও RSS ফিড খোলা নেই",
|
"MessageBookshelfNoRSSFeeds": "কোনও RSS ফিড খোলা নেই",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "ফিল্টার \"{0}: {1}\" এর জন্য কোন ফলাফল নেই",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "আপনার কোনো সিরিজ নেই",
|
"MessageBookshelfNoSeries": "আপনার কোনো সিরিজ নেই",
|
||||||
"MessageChapterEndIsAfter": "অধ্যায়ের সমাপ্তি আপনার অডিওবুকের শেষে",
|
"MessageChapterEndIsAfter": "অধ্যায়ের সমাপ্তি আপনার অডিওবুকের শেষে",
|
||||||
"MessageChapterErrorFirstNotZero": "প্রথম অধ্যায় 0 এ শুরু হতে হবে",
|
"MessageChapterErrorFirstNotZero": "প্রথম অধ্যায় 0 এ শুরু হতে হবে",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "আপনি কি নিশ্চিত যে আপনি এই সিরিজের সমস্ত বইকে সমাপ্ত হিসাবে চিহ্নিত করতে চান?",
|
"MessageConfirmMarkSeriesFinished": "আপনি কি নিশ্চিত যে আপনি এই সিরিজের সমস্ত বইকে সমাপ্ত হিসাবে চিহ্নিত করতে চান?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "আপনি কি নিশ্চিত যে আপনি এই সিরিজের সমস্ত বইকে শেষ হয়নি বলে চিহ্নিত করতে চান?",
|
"MessageConfirmMarkSeriesNotFinished": "আপনি কি নিশ্চিত যে আপনি এই সিরিজের সমস্ত বইকে শেষ হয়নি বলে চিহ্নিত করতে চান?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "সতর্কতা! দ্রুত এম্বেড আপনার অডিও ফাইলের ব্যাকআপ করবে না। নিশ্চিত করুন যে আপনার অডিও ফাইলগুলির একটি ব্যাকআপ আছে। <br><br>আপনি কি চালিয়ে যেতে চান?",
|
"MessageConfirmQuickEmbed": "সতর্কতা! দ্রুত এম্বেড আপনার অডিও ফাইলের ব্যাকআপ করবে না। নিশ্চিত করুন যে আপনার অডিও ফাইলগুলির একটি ব্যাকআপ আছে। <br><br>আপনি কি চালিয়ে যেতে চান?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "আপনি কি নিশ্চিত যে আপনি {0}টি আইটেম পুনরায় স্ক্যান করতে চান?",
|
||||||
"MessageConfirmRemoveAllChapters": "আপনি কি নিশ্চিত যে আপনি সমস্ত অধ্যায় সরাতে চান?",
|
"MessageConfirmRemoveAllChapters": "আপনি কি নিশ্চিত যে আপনি সমস্ত অধ্যায় সরাতে চান?",
|
||||||
"MessageConfirmRemoveAuthor": "আপনি কি নিশ্চিত যে আপনি লেখক \"{0}\" অপসারণ করতে চান?",
|
"MessageConfirmRemoveAuthor": "আপনি কি নিশ্চিত যে আপনি লেখক \"{0}\" অপসারণ করতে চান?",
|
||||||
"MessageConfirmRemoveCollection": "আপনি কি নিশ্চিত যে আপনি সংগ্রহ \"{0}\" সরাতে চান?",
|
"MessageConfirmRemoveCollection": "আপনি কি নিশ্চিত যে আপনি সংগ্রহ \"{0}\" সরাতে চান?",
|
||||||
@@ -627,13 +639,12 @@
|
|||||||
"MessageConfirmRenameTag": "আপনি কি সব আইটেমের জন্য \"{0}\" ট্যাগের নাম পরিবর্তন করে \"{1}\" করার বিষয়ে নিশ্চিত?",
|
"MessageConfirmRenameTag": "আপনি কি সব আইটেমের জন্য \"{0}\" ট্যাগের নাম পরিবর্তন করে \"{1}\" করার বিষয়ে নিশ্চিত?",
|
||||||
"MessageConfirmRenameTagMergeNote": "দ্রষ্টব্য: এই ট্যাগটি আগে থেকেই বিদ্যমান তাই সেগুলিকে একত্র করা হবে।",
|
"MessageConfirmRenameTagMergeNote": "দ্রষ্টব্য: এই ট্যাগটি আগে থেকেই বিদ্যমান তাই সেগুলিকে একত্র করা হবে।",
|
||||||
"MessageConfirmRenameTagWarning": "সতর্কতা! একটি ভিন্ন কেসিং সহ একটি অনুরূপ ট্যাগ ইতিমধ্যেই বিদ্যমান \"{0}\"।",
|
"MessageConfirmRenameTagWarning": "সতর্কতা! একটি ভিন্ন কেসিং সহ একটি অনুরূপ ট্যাগ ইতিমধ্যেই বিদ্যমান \"{0}\"।",
|
||||||
"MessageConfirmReScanLibraryItems": "আপনি কি নিশ্চিত যে আপনি {0}টি আইটেম পুনরায় স্ক্যান করতে চান?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "আপনি কি নিশ্চিত যে আপনি \"{2}\" ডিভাইসে {0} ইবুক \"{1}\" পাঠাতে চান?",
|
"MessageConfirmSendEbookToDevice": "আপনি কি নিশ্চিত যে আপনি \"{2}\" ডিভাইসে {0} ইবুক \"{1}\" পাঠাতে চান?",
|
||||||
"MessageDownloadingEpisode": "ডাউনলোডিং পর্ব",
|
"MessageDownloadingEpisode": "ডাউনলোডিং পর্ব",
|
||||||
"MessageDragFilesIntoTrackOrder": "সঠিক ট্র্যাক অর্ডারে ফাইল টেনে আনুন",
|
"MessageDragFilesIntoTrackOrder": "সঠিক ট্র্যাক অর্ডারে ফাইল টেনে আনুন",
|
||||||
"MessageEmbedFinished": "এম্বেড করা শেষ!",
|
"MessageEmbedFinished": "এম্বেড করা শেষ!",
|
||||||
"MessageEpisodesQueuedForDownload": "{0} পর্ব(গুলি) ডাউনলোডের জন্য সারিবদ্ধ",
|
"MessageEpisodesQueuedForDownload": "{0} পর্ব(গুলি) ডাউনলোডের জন্য সারিবদ্ধ",
|
||||||
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below.",
|
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below।",
|
||||||
"MessageFeedURLWillBe": "ফিড URL হবে {0}",
|
"MessageFeedURLWillBe": "ফিড URL হবে {0}",
|
||||||
"MessageFetching": "আনয় হচ্ছে...",
|
"MessageFetching": "আনয় হচ্ছে...",
|
||||||
"MessageForceReScanDescription": "সকল ফাইল আবার নতুন স্ক্যানের মত স্ক্যান করবে। অডিও ফাইল ID3 ট্যাগ, OPF ফাইল, এবং টেক্সট ফাইলগুলি নতুন হিসাবে স্ক্যান করা হবে।",
|
"MessageForceReScanDescription": "সকল ফাইল আবার নতুন স্ক্যানের মত স্ক্যান করবে। অডিও ফাইল ID3 ট্যাগ, OPF ফাইল, এবং টেক্সট ফাইলগুলি নতুন হিসাবে স্ক্যান করা হবে।",
|
||||||
@@ -645,7 +656,7 @@
|
|||||||
"MessageListeningSessionsInTheLastYear": "গত বছরে {0}টি শোনার সেশন",
|
"MessageListeningSessionsInTheLastYear": "গত বছরে {0}টি শোনার সেশন",
|
||||||
"MessageLoading": "লোড হচ্ছে...",
|
"MessageLoading": "লোড হচ্ছে...",
|
||||||
"MessageLoadingFolders": "ফোল্ডার লোড হচ্ছে...",
|
"MessageLoadingFolders": "ফোল্ডার লোড হচ্ছে...",
|
||||||
"MessageLogsDescription": "Logs are stored in <code>/metadata/logs</code> as JSON files. Crash logs are stored in <code>/metadata/logs/crash_logs.txt</code>.",
|
"MessageLogsDescription": "Logs are stored in <code>/metadata/logs</code> as JSON files. Crash logs are stored in <code>/metadata/logs/crash_logs.txt</code>।",
|
||||||
"MessageM4BFailed": "M4B ব্যর্থ!",
|
"MessageM4BFailed": "M4B ব্যর্থ!",
|
||||||
"MessageM4BFinished": "M4B সমাপ্ত!",
|
"MessageM4BFinished": "M4B সমাপ্ত!",
|
||||||
"MessageMapChapterTitles": "টাইমস্ট্যাম্প সামঞ্জস্য না করে আপনার বিদ্যমান অডিওবুক অধ্যায়গুলিতে অধ্যায়ের শিরোনাম ম্যাপ করুন",
|
"MessageMapChapterTitles": "টাইমস্ট্যাম্প সামঞ্জস্য না করে আপনার বিদ্যমান অডিওবুক অধ্যায়গুলিতে অধ্যায়ের শিরোনাম ম্যাপ করুন",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "কোন সিরিজ নেই",
|
"MessageNoSeries": "কোন সিরিজ নেই",
|
||||||
"MessageNoTags": "কোন ট্যাগ নেই",
|
"MessageNoTags": "কোন ট্যাগ নেই",
|
||||||
"MessageNoTasksRunning": "কোন টাস্ক চলছে না",
|
"MessageNoTasksRunning": "কোন টাস্ক চলছে না",
|
||||||
"MessageNotYetImplemented": "এখনও বাস্তবায়িত হয়নি",
|
|
||||||
"MessageNoUpdateNecessary": "কোন আপডেটের প্রয়োজন নেই",
|
"MessageNoUpdateNecessary": "কোন আপডেটের প্রয়োজন নেই",
|
||||||
"MessageNoUpdatesWereNecessary": "কোন আপডেটের প্রয়োজন ছিল না",
|
"MessageNoUpdatesWereNecessary": "কোন আপডেটের প্রয়োজন ছিল না",
|
||||||
"MessageNoUserPlaylists": "আপনার কোনো প্লেলিস্ট নেই",
|
"MessageNoUserPlaylists": "আপনার কোনো প্লেলিস্ট নেই",
|
||||||
|
"MessageNotYetImplemented": "এখনও বাস্তবায়িত হয়নি",
|
||||||
"MessageOr": "বা",
|
"MessageOr": "বা",
|
||||||
"MessagePauseChapter": "পজ অধ্যায় প্লেব্যাক",
|
"MessagePauseChapter": "পজ অধ্যায় প্লেব্যাক",
|
||||||
"MessagePlayChapter": "অধ্যায়ের শুরুতে শুনুন",
|
"MessagePlayChapter": "অধ্যায়ের শুরুতে শুনুন",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "প্লেলিস্ট আপডেট করা হয়েছে",
|
"ToastPlaylistUpdateSuccess": "প্লেলিস্ট আপডেট করা হয়েছে",
|
||||||
"ToastPodcastCreateFailed": "পডকাস্ট তৈরি করতে ব্যর্থ",
|
"ToastPodcastCreateFailed": "পডকাস্ট তৈরি করতে ব্যর্থ",
|
||||||
"ToastPodcastCreateSuccess": "পডকাস্ট সফলভাবে তৈরি করা হয়েছে",
|
"ToastPodcastCreateSuccess": "পডকাস্ট সফলভাবে তৈরি করা হয়েছে",
|
||||||
"ToastRemoveItemFromCollectionFailed": "সংগ্রহ থেকে আইটেম সরাতে ব্যর্থ",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "সংগ্রহ থেকে আইটেম সরানো হয়েছে",
|
|
||||||
"ToastRSSFeedCloseFailed": "RSS ফিড বন্ধ করতে ব্যর্থ",
|
"ToastRSSFeedCloseFailed": "RSS ফিড বন্ধ করতে ব্যর্থ",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS ফিড বন্ধ",
|
"ToastRSSFeedCloseSuccess": "RSS ফিড বন্ধ",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "সংগ্রহ থেকে আইটেম সরাতে ব্যর্থ",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "সংগ্রহ থেকে আইটেম সরানো হয়েছে",
|
||||||
"ToastSendEbookToDeviceFailed": "ডিভাইসে ইবুক পাঠাতে ব্যর্থ",
|
"ToastSendEbookToDeviceFailed": "ডিভাইসে ইবুক পাঠাতে ব্যর্থ",
|
||||||
"ToastSendEbookToDeviceSuccess": "ইবুক \"{0}\" ডিভাইসে পাঠানো হয়েছে",
|
"ToastSendEbookToDeviceSuccess": "ইবুক \"{0}\" ডিভাইসে পাঠানো হয়েছে",
|
||||||
"ToastSeriesUpdateFailed": "সিরিজ আপডেট ব্যর্থ হয়েছে",
|
"ToastSeriesUpdateFailed": "সিরিজ আপডেট ব্যর্থ হয়েছে",
|
||||||
|
|||||||
+126
-115
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Aplikovat",
|
"ButtonApply": "Aplikovat",
|
||||||
"ButtonApplyChapters": "Aplikovat kapitoly",
|
"ButtonApplyChapters": "Aplikovat kapitoly",
|
||||||
"ButtonAuthors": "Autoři",
|
"ButtonAuthors": "Autoři",
|
||||||
|
"ButtonBack": "Zpět",
|
||||||
"ButtonBrowseForFolder": "Vyhledat složku",
|
"ButtonBrowseForFolder": "Vyhledat složku",
|
||||||
"ButtonCancel": "Zrušit",
|
"ButtonCancel": "Zrušit",
|
||||||
"ButtonCancelEncode": "Zrušit kódování",
|
"ButtonCancelEncode": "Zrušit kódování",
|
||||||
@@ -32,8 +33,8 @@
|
|||||||
"ButtonHide": "Skrýt",
|
"ButtonHide": "Skrýt",
|
||||||
"ButtonHome": "Domů",
|
"ButtonHome": "Domů",
|
||||||
"ButtonIssues": "Problémy",
|
"ButtonIssues": "Problémy",
|
||||||
"ButtonJumpBackward": "Jump Backward",
|
"ButtonJumpBackward": "Skok Zpět",
|
||||||
"ButtonJumpForward": "Jump Forward",
|
"ButtonJumpForward": "Skok Dopředu",
|
||||||
"ButtonLatest": "Nejnovější",
|
"ButtonLatest": "Nejnovější",
|
||||||
"ButtonLibrary": "Knihovna",
|
"ButtonLibrary": "Knihovna",
|
||||||
"ButtonLogout": "Odhlásit",
|
"ButtonLogout": "Odhlásit",
|
||||||
@@ -44,7 +45,7 @@
|
|||||||
"ButtonMatchBooks": "Spárovat Knihy",
|
"ButtonMatchBooks": "Spárovat Knihy",
|
||||||
"ButtonNevermind": "Nevadí",
|
"ButtonNevermind": "Nevadí",
|
||||||
"ButtonNext": "Next",
|
"ButtonNext": "Next",
|
||||||
"ButtonNextChapter": "Next Chapter",
|
"ButtonNextChapter": "Další Kapitola",
|
||||||
"ButtonOk": "Ok",
|
"ButtonOk": "Ok",
|
||||||
"ButtonOpenFeed": "Otevřít kanál",
|
"ButtonOpenFeed": "Otevřít kanál",
|
||||||
"ButtonOpenManager": "Otevřít správce",
|
"ButtonOpenManager": "Otevřít správce",
|
||||||
@@ -52,25 +53,24 @@
|
|||||||
"ButtonPlay": "Přehrát",
|
"ButtonPlay": "Přehrát",
|
||||||
"ButtonPlaying": "Hraje",
|
"ButtonPlaying": "Hraje",
|
||||||
"ButtonPlaylists": "Seznamy skladeb",
|
"ButtonPlaylists": "Seznamy skladeb",
|
||||||
"ButtonPrevious": "Previous",
|
"ButtonPrevious": "Předchozí",
|
||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Předchozí Kapitola",
|
||||||
"ButtonPurgeAllCache": "Vyčistit veškerou mezipaměť",
|
"ButtonPurgeAllCache": "Vyčistit veškerou mezipaměť",
|
||||||
"ButtonPurgeItemsCache": "Vyčistit mezipaměť položek",
|
"ButtonPurgeItemsCache": "Vyčistit mezipaměť položek",
|
||||||
"ButtonPurgeMediaProgress": "Vyčistit průběh médií",
|
|
||||||
"ButtonQueueAddItem": "Přidat do fronty",
|
"ButtonQueueAddItem": "Přidat do fronty",
|
||||||
"ButtonQueueRemoveItem": "Odstranit z fronty",
|
"ButtonQueueRemoveItem": "Odstranit z fronty",
|
||||||
"ButtonQuickMatch": "Rychlé přiřazení",
|
"ButtonQuickMatch": "Rychlé přiřazení",
|
||||||
|
"ButtonReScan": "Znovu prohledat",
|
||||||
"ButtonRead": "Číst",
|
"ButtonRead": "Číst",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Číst méně",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Číst více",
|
||||||
"ButtonRefresh": "Refresh",
|
"ButtonRefresh": "Obnovit",
|
||||||
"ButtonRemove": "Odstranit",
|
"ButtonRemove": "Odstranit",
|
||||||
"ButtonRemoveAll": "Odstranit vše",
|
"ButtonRemoveAll": "Odstranit vše",
|
||||||
"ButtonRemoveAllLibraryItems": "Odstranit všechny položky knihovny",
|
"ButtonRemoveAllLibraryItems": "Odstranit všechny položky knihovny",
|
||||||
"ButtonRemoveFromContinueListening": "Odstranit z Pokračovat v poslechu",
|
"ButtonRemoveFromContinueListening": "Odstranit z Pokračovat v poslechu",
|
||||||
"ButtonRemoveFromContinueReading": "Odstranit z Pokračovat ve čtení",
|
"ButtonRemoveFromContinueReading": "Odstranit z Pokračovat ve čtení",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Odstranit sérii z Pokračovat v sérii",
|
"ButtonRemoveSeriesFromContinueSeries": "Odstranit sérii z Pokračovat v sérii",
|
||||||
"ButtonReScan": "Znovu prohledat",
|
|
||||||
"ButtonReset": "Resetovat",
|
"ButtonReset": "Resetovat",
|
||||||
"ButtonResetToDefault": "Obnovit výchozí",
|
"ButtonResetToDefault": "Obnovit výchozí",
|
||||||
"ButtonRestore": "Obnovit",
|
"ButtonRestore": "Obnovit",
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
"ButtonSelectFolderPath": "Vybrat cestu ke složce",
|
"ButtonSelectFolderPath": "Vybrat cestu ke složce",
|
||||||
"ButtonSeries": "Série",
|
"ButtonSeries": "Série",
|
||||||
"ButtonSetChaptersFromTracks": "Nastavit kapitoly ze stop",
|
"ButtonSetChaptersFromTracks": "Nastavit kapitoly ze stop",
|
||||||
"ButtonShare": "Share",
|
"ButtonShare": "Sdílet",
|
||||||
"ButtonShiftTimes": "Časy posunu",
|
"ButtonShiftTimes": "Časy posunu",
|
||||||
"ButtonShow": "Zobrazit",
|
"ButtonShow": "Zobrazit",
|
||||||
"ButtonStartM4BEncode": "Spustit kódování M4B",
|
"ButtonStartM4BEncode": "Spustit kódování M4B",
|
||||||
@@ -98,14 +98,14 @@
|
|||||||
"ButtonUserEdit": "Upravit uživatelské {0}",
|
"ButtonUserEdit": "Upravit uživatelské {0}",
|
||||||
"ButtonViewAll": "Zobrazit vše",
|
"ButtonViewAll": "Zobrazit vše",
|
||||||
"ButtonYes": "Ano",
|
"ButtonYes": "Ano",
|
||||||
"ErrorUploadFetchMetadataAPI": "Error fetching metadata",
|
"ErrorUploadFetchMetadataAPI": "Chyba stahování metadat",
|
||||||
"ErrorUploadFetchMetadataNoResults": "Could not fetch metadata - try updating title and/or author",
|
"ErrorUploadFetchMetadataNoResults": "Nepodařilo se načíst metadata - zkuste aktualizovat název a/nebo autora",
|
||||||
"ErrorUploadLacksTitle": "Must have a title",
|
"ErrorUploadLacksTitle": "Musí mít titul",
|
||||||
"HeaderAccount": "Účet",
|
"HeaderAccount": "Účet",
|
||||||
"HeaderAdvanced": "Pokročilé",
|
"HeaderAdvanced": "Pokročilé",
|
||||||
"HeaderAppriseNotificationSettings": "Nastavení oznámení Apprise",
|
"HeaderAppriseNotificationSettings": "Nastavení oznámení Apprise",
|
||||||
"HeaderAudiobookTools": "Nástroje pro správu souborů audioknih",
|
|
||||||
"HeaderAudioTracks": "Zvukové stopy",
|
"HeaderAudioTracks": "Zvukové stopy",
|
||||||
|
"HeaderAudiobookTools": "Nástroje pro správu souborů audioknih",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Zálohy",
|
"HeaderBackups": "Zálohy",
|
||||||
"HeaderChangePassword": "Změnit heslo",
|
"HeaderChangePassword": "Změnit heslo",
|
||||||
@@ -115,7 +115,8 @@
|
|||||||
"HeaderCollectionItems": "Položky kolekce",
|
"HeaderCollectionItems": "Položky kolekce",
|
||||||
"HeaderCover": "Obálka",
|
"HeaderCover": "Obálka",
|
||||||
"HeaderCurrentDownloads": "Aktuální stahování",
|
"HeaderCurrentDownloads": "Aktuální stahování",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMessageOnLogin": "Vlastní zpráva při přihlášení",
|
||||||
|
"HeaderCustomMetadataProviders": "Vlastní zprostředkovatelé metadat",
|
||||||
"HeaderDetails": "Podrobnosti",
|
"HeaderDetails": "Podrobnosti",
|
||||||
"HeaderDownloadQueue": "Fronta stahování",
|
"HeaderDownloadQueue": "Fronta stahování",
|
||||||
"HeaderEbookFiles": "Soubory elektronických knih",
|
"HeaderEbookFiles": "Soubory elektronických knih",
|
||||||
@@ -130,7 +131,7 @@
|
|||||||
"HeaderItemFiles": "Soubory položek",
|
"HeaderItemFiles": "Soubory položek",
|
||||||
"HeaderItemMetadataUtils": "Nástroje metadat položek",
|
"HeaderItemMetadataUtils": "Nástroje metadat položek",
|
||||||
"HeaderLastListeningSession": "Poslední poslechová relace",
|
"HeaderLastListeningSession": "Poslední poslechová relace",
|
||||||
"HeaderLatestEpisodes": "Poslední epizody",
|
"HeaderLatestEpisodes": "Nejnovější epizody",
|
||||||
"HeaderLibraries": "Knihovny",
|
"HeaderLibraries": "Knihovny",
|
||||||
"HeaderLibraryFiles": "Soubory knihovny",
|
"HeaderLibraryFiles": "Soubory knihovny",
|
||||||
"HeaderLibraryStats": "Statistiky knihovny",
|
"HeaderLibraryStats": "Statistiky knihovny",
|
||||||
@@ -147,7 +148,7 @@
|
|||||||
"HeaderNewAccount": "Nový účet",
|
"HeaderNewAccount": "Nový účet",
|
||||||
"HeaderNewLibrary": "Nová knihovna",
|
"HeaderNewLibrary": "Nová knihovna",
|
||||||
"HeaderNotifications": "Oznámení",
|
"HeaderNotifications": "Oznámení",
|
||||||
"HeaderOpenIDConnectAuthentication": "OpenID Connect Authentication",
|
"HeaderOpenIDConnectAuthentication": "Ověřování pomocí OpenID Connect",
|
||||||
"HeaderOpenRSSFeed": "Otevřít RSS kanál",
|
"HeaderOpenRSSFeed": "Otevřít RSS kanál",
|
||||||
"HeaderOtherFiles": "Ostatní soubory",
|
"HeaderOtherFiles": "Ostatní soubory",
|
||||||
"HeaderPasswordAuthentication": "Password Authentication",
|
"HeaderPasswordAuthentication": "Password Authentication",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Položky seznamu přehrávání",
|
"HeaderPlaylistItems": "Položky seznamu přehrávání",
|
||||||
"HeaderPodcastsToAdd": "Podcasty k přidání",
|
"HeaderPodcastsToAdd": "Podcasty k přidání",
|
||||||
"HeaderPreviewCover": "Náhled obálky",
|
"HeaderPreviewCover": "Náhled obálky",
|
||||||
"HeaderRemoveEpisode": "Odstranit epizodu",
|
|
||||||
"HeaderRemoveEpisodes": "Odstranit {0} epizody",
|
|
||||||
"HeaderRSSFeedGeneral": "Podrobnosti o RSS",
|
"HeaderRSSFeedGeneral": "Podrobnosti o RSS",
|
||||||
"HeaderRSSFeedIsOpen": "Informační kanál RSS je otevřený",
|
"HeaderRSSFeedIsOpen": "Informační kanál RSS je otevřený",
|
||||||
"HeaderRSSFeeds": "RSS kanály",
|
"HeaderRSSFeeds": "RSS kanály",
|
||||||
|
"HeaderRemoveEpisode": "Odstranit epizodu",
|
||||||
|
"HeaderRemoveEpisodes": "Odstranit {0} epizody",
|
||||||
"HeaderSavedMediaProgress": "Průběh uložených médií",
|
"HeaderSavedMediaProgress": "Průběh uložených médií",
|
||||||
"HeaderSchedule": "Plán",
|
"HeaderSchedule": "Plán",
|
||||||
"HeaderScheduleLibraryScans": "Naplánovat automatické prohledávání knihoven",
|
"HeaderScheduleLibraryScans": "Naplánovat automatické prohledávání knihoven",
|
||||||
@@ -175,7 +176,7 @@
|
|||||||
"HeaderSleepTimer": "Časovač vypnutí",
|
"HeaderSleepTimer": "Časovač vypnutí",
|
||||||
"HeaderStatsLargestItems": "Největší položky",
|
"HeaderStatsLargestItems": "Největší položky",
|
||||||
"HeaderStatsLongestItems": "Nejdelší položky (hod.)",
|
"HeaderStatsLongestItems": "Nejdelší položky (hod.)",
|
||||||
"HeaderStatsMinutesListeningChart": "Počet minut poslechu (posledních 7 dní)",
|
"HeaderStatsMinutesListeningChart": "Poslech za posledních 7 dní (min)",
|
||||||
"HeaderStatsRecentSessions": "Poslední relace",
|
"HeaderStatsRecentSessions": "Poslední relace",
|
||||||
"HeaderStatsTop10Authors": "Top 10 autorů",
|
"HeaderStatsTop10Authors": "Top 10 autorů",
|
||||||
"HeaderStatsTop5Genres": "Top 5 žánrů",
|
"HeaderStatsTop5Genres": "Top 5 žánrů",
|
||||||
@@ -186,23 +187,23 @@
|
|||||||
"HeaderUpdateDetails": "Aktualizovat podrobnosti",
|
"HeaderUpdateDetails": "Aktualizovat podrobnosti",
|
||||||
"HeaderUpdateLibrary": "Aktualizovat knihovnu",
|
"HeaderUpdateLibrary": "Aktualizovat knihovnu",
|
||||||
"HeaderUsers": "Uživatelé",
|
"HeaderUsers": "Uživatelé",
|
||||||
"HeaderYearReview": "Year {0} in Review",
|
"HeaderYearReview": "Přehled {0} roku",
|
||||||
"HeaderYourStats": "Vaše statistiky",
|
"HeaderYourStats": "Vaše statistiky",
|
||||||
"LabelAbridged": "Zkráceno",
|
"LabelAbridged": "Zkráceno",
|
||||||
"LabelAbridgedChecked": "Abridged (checked)",
|
"LabelAbridgedChecked": "Zkráceno (zaškrtnuto)",
|
||||||
"LabelAbridgedUnchecked": "Unabridged (unchecked)",
|
"LabelAbridgedUnchecked": "Nezkrácené (nezaškrtnuté)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "Přístupný prostřednictvím",
|
||||||
"LabelAccountType": "Typ účtu",
|
"LabelAccountType": "Typ účtu",
|
||||||
"LabelAccountTypeAdmin": "Správce",
|
"LabelAccountTypeAdmin": "Správce",
|
||||||
"LabelAccountTypeGuest": "Host",
|
"LabelAccountTypeGuest": "Host",
|
||||||
"LabelAccountTypeUser": "Uživatel",
|
"LabelAccountTypeUser": "Uživatel",
|
||||||
"LabelActivity": "Aktivita",
|
"LabelActivity": "Aktivita",
|
||||||
"LabelAdded": "Přidáno",
|
|
||||||
"LabelAddedAt": "Přidáno v",
|
|
||||||
"LabelAddToCollection": "Přidat do kolekce",
|
"LabelAddToCollection": "Přidat do kolekce",
|
||||||
"LabelAddToCollectionBatch": "Přidat {0} knihy do kolekce",
|
"LabelAddToCollectionBatch": "Přidat {0} knihy do kolekce",
|
||||||
"LabelAddToPlaylist": "Přidat do seznamu přehrávání",
|
"LabelAddToPlaylist": "Přidat do seznamu přehrávání",
|
||||||
"LabelAddToPlaylistBatch": "Přidat {0} položky do seznamu přehrávání",
|
"LabelAddToPlaylistBatch": "Přidat {0} položky do seznamu přehrávání",
|
||||||
|
"LabelAdded": "Přidáno",
|
||||||
|
"LabelAddedAt": "Přidáno v",
|
||||||
"LabelAdminUsersOnly": "Pouze administrátoři",
|
"LabelAdminUsersOnly": "Pouze administrátoři",
|
||||||
"LabelAll": "Vše",
|
"LabelAll": "Vše",
|
||||||
"LabelAllUsers": "Všichni uživatelé",
|
"LabelAllUsers": "Všichni uživatelé",
|
||||||
@@ -215,12 +216,12 @@
|
|||||||
"LabelAuthorLastFirst": "Autor (příjmení a jméno)",
|
"LabelAuthorLastFirst": "Autor (příjmení a jméno)",
|
||||||
"LabelAuthors": "Autoři",
|
"LabelAuthors": "Autoři",
|
||||||
"LabelAutoDownloadEpisodes": "Automaticky stahovat epizody",
|
"LabelAutoDownloadEpisodes": "Automaticky stahovat epizody",
|
||||||
"LabelAutoFetchMetadata": "Auto Fetch Metadata",
|
"LabelAutoFetchMetadata": "Automatické stahování metadat",
|
||||||
"LabelAutoFetchMetadataHelp": "Fetches metadata for title, author, and series to streamline uploading. Additional metadata may have to be matched after upload.",
|
"LabelAutoFetchMetadataHelp": "Stáhne metadata pro název, autora a sérii, aby se usnadnilo nahrávání. Další metadata může být nutné spárovat po nahrání.",
|
||||||
"LabelAutoLaunch": "Auto Launch",
|
"LabelAutoLaunch": "Automatické spuštění",
|
||||||
"LabelAutoLaunchDescription": "Redirect to the auth provider automatically when navigating to the login page (manual override path <code>/login?autoLaunch=0</code>)",
|
"LabelAutoLaunchDescription": "Automaticky přesměrovat na zprostředkovatele ověření při vstupu na přihlašovací stránku (ruční přepsání cesty <code>/login?autoLaunch=0</code>)",
|
||||||
"LabelAutoRegister": "Auto Register",
|
"LabelAutoRegister": "Automatická registrace",
|
||||||
"LabelAutoRegisterDescription": "Automatically create new users after logging in",
|
"LabelAutoRegisterDescription": "Automaticky vytvářet nové uživatele po přihlášení",
|
||||||
"LabelBackToUser": "Zpět k uživateli",
|
"LabelBackToUser": "Zpět k uživateli",
|
||||||
"LabelBackupLocation": "Umístění zálohy",
|
"LabelBackupLocation": "Umístění zálohy",
|
||||||
"LabelBackupsEnableAutomaticBackups": "Povolit automatické zálohování",
|
"LabelBackupsEnableAutomaticBackups": "Povolit automatické zálohování",
|
||||||
@@ -231,13 +232,13 @@
|
|||||||
"LabelBackupsNumberToKeepHelp": "Najednou bude odstraněna pouze 1 záloha, takže pokud již máte více záloh, měli byste je odstranit ručně.",
|
"LabelBackupsNumberToKeepHelp": "Najednou bude odstraněna pouze 1 záloha, takže pokud již máte více záloh, měli byste je odstranit ručně.",
|
||||||
"LabelBitrate": "Datový tok",
|
"LabelBitrate": "Datový tok",
|
||||||
"LabelBooks": "Knihy",
|
"LabelBooks": "Knihy",
|
||||||
"LabelButtonText": "Button Text",
|
"LabelButtonText": "Text tlačítka",
|
||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Změnit heslo",
|
"LabelChangePassword": "Změnit heslo",
|
||||||
"LabelChannels": "Kanály",
|
"LabelChannels": "Kanály",
|
||||||
|
"LabelChapterTitle": "Název kapitoly",
|
||||||
"LabelChapters": "Kapitoly",
|
"LabelChapters": "Kapitoly",
|
||||||
"LabelChaptersFound": "Kapitoly nalezeny",
|
"LabelChaptersFound": "Kapitoly nalezeny",
|
||||||
"LabelChapterTitle": "Název kapitoly",
|
|
||||||
"LabelClickForMoreInfo": "Klikněte pro více informací",
|
"LabelClickForMoreInfo": "Klikněte pro více informací",
|
||||||
"LabelClosePlayer": "Zavřít přehrávač",
|
"LabelClosePlayer": "Zavřít přehrávač",
|
||||||
"LabelCodec": "Kodek",
|
"LabelCodec": "Kodek",
|
||||||
@@ -269,16 +270,18 @@
|
|||||||
"LabelDiscover": "Objevit",
|
"LabelDiscover": "Objevit",
|
||||||
"LabelDownload": "Stáhnout",
|
"LabelDownload": "Stáhnout",
|
||||||
"LabelDownloadNEpisodes": "Stáhnout {0} epizody",
|
"LabelDownloadNEpisodes": "Stáhnout {0} epizody",
|
||||||
"LabelDuration": "Doba trvání",
|
"LabelDuration": "Délka trvání",
|
||||||
"LabelDurationComparisonExactMatch": "(exact match)",
|
"LabelDurationComparisonExactMatch": "(přesná shoda)",
|
||||||
"LabelDurationComparisonLonger": "({0} longer)",
|
"LabelDurationComparisonLonger": "({0} delší)",
|
||||||
"LabelDurationComparisonShorter": "({0} shorter)",
|
"LabelDurationComparisonShorter": "({0} kratší)",
|
||||||
"LabelDurationFound": "Doba trvání nalezena:",
|
"LabelDurationFound": "Doba trvání nalezena:",
|
||||||
"LabelEbook": "Elektronická kniha",
|
"LabelEbook": "Elektronická kniha",
|
||||||
"LabelEbooks": "Elektronické knihy",
|
"LabelEbooks": "Elektronické knihy",
|
||||||
"LabelEdit": "Upravit",
|
"LabelEdit": "Upravit",
|
||||||
"LabelEmail": "E-mail",
|
"LabelEmail": "E-mail",
|
||||||
"LabelEmailSettingsFromAddress": "Z adresy",
|
"LabelEmailSettingsFromAddress": "Z adresy",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Odmítnout neautorizované certifikáty",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Vypnutím ověřování certifikátů SSL můžete své připojení vystavit bezpečnostním rizikům, například útokům typu man-in-the-middle. Tuto možnost zakažte pouze v případě, že rozumíte důsledkům a důvěřujete poštovnímu serveru, ke kterému se připojujete.",
|
||||||
"LabelEmailSettingsSecure": "Zabezpečené",
|
"LabelEmailSettingsSecure": "Zabezpečené",
|
||||||
"LabelEmailSettingsSecureHelp": "Pokud je true, připojení bude při připojování k serveru používat TLS. Pokud je false, použije se protokol TLS, pokud server podporuje rozšíření STARTTLS. Ve většině případů nastavte tuto hodnotu na true, pokud se připojujete k portu 465. Pro port 587 nebo 25 ponechte hodnotu false. (z nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Pokud je true, připojení bude při připojování k serveru používat TLS. Pokud je false, použije se protokol TLS, pokud server podporuje rozšíření STARTTLS. Ve většině případů nastavte tuto hodnotu na true, pokud se připojujete k portu 465. Pro port 587 nebo 25 ponechte hodnotu false. (z nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Testovací adresa",
|
"LabelEmailSettingsTestAddress": "Testovací adresa",
|
||||||
@@ -290,10 +293,10 @@
|
|||||||
"LabelEpisodeType": "Typ epizody",
|
"LabelEpisodeType": "Typ epizody",
|
||||||
"LabelExample": "Příklad",
|
"LabelExample": "Příklad",
|
||||||
"LabelExplicit": "Explicitní",
|
"LabelExplicit": "Explicitní",
|
||||||
"LabelExplicitChecked": "Explicit (checked)",
|
"LabelExplicitChecked": "Explicitní (zaškrtnuto)",
|
||||||
"LabelExplicitUnchecked": "Not Explicit (unchecked)",
|
"LabelExplicitUnchecked": "Není explicitní (nezaškrtnuto)",
|
||||||
"LabelFeedURL": "URL zdroje",
|
"LabelFeedURL": "URL zdroje",
|
||||||
"LabelFetchingMetadata": "Fetching Metadata",
|
"LabelFetchingMetadata": "Získávání metadat",
|
||||||
"LabelFile": "Soubor",
|
"LabelFile": "Soubor",
|
||||||
"LabelFileBirthtime": "Čas vzniku souboru",
|
"LabelFileBirthtime": "Čas vzniku souboru",
|
||||||
"LabelFileModified": "Soubor změněn",
|
"LabelFileModified": "Soubor změněn",
|
||||||
@@ -303,25 +306,26 @@
|
|||||||
"LabelFinished": "Dokončeno",
|
"LabelFinished": "Dokončeno",
|
||||||
"LabelFolder": "Složka",
|
"LabelFolder": "Složka",
|
||||||
"LabelFolders": "Složky",
|
"LabelFolders": "Složky",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Tučně",
|
||||||
|
"LabelFontBoldness": "Výraznost písma",
|
||||||
"LabelFontFamily": "Rodina písem",
|
"LabelFontFamily": "Rodina písem",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Měřítko písma",
|
"LabelFontScale": "Měřítko písma",
|
||||||
"LabelFontStrikethrough": "Strikethrough",
|
"LabelFontStrikethrough": "Přeškrtnutí",
|
||||||
"LabelFormat": "Formát",
|
"LabelFormat": "Formát",
|
||||||
"LabelGenre": "Žánr",
|
"LabelGenre": "Žánr",
|
||||||
"LabelGenres": "Žánry",
|
"LabelGenres": "Žánry",
|
||||||
"LabelHardDeleteFile": "Trvale smazat soubor",
|
"LabelHardDeleteFile": "Trvale smazat soubor",
|
||||||
"LabelHasEbook": "Obsahuje elektronickou knihu",
|
"LabelHasEbook": "Obsahuje elektronickou knihu",
|
||||||
"LabelHasSupplementaryEbook": "Obsahuje doplňkovou elektronickou knihu",
|
"LabelHasSupplementaryEbook": "Obsahuje doplňkovou elektronickou knihu",
|
||||||
"LabelHighestPriority": "Highest priority",
|
"LabelHighestPriority": "Nejvyšší priorita",
|
||||||
"LabelHost": "Hostitel",
|
"LabelHost": "Hostitel",
|
||||||
"LabelHour": "Hodina",
|
"LabelHour": "Hodina",
|
||||||
"LabelIcon": "Ikona",
|
"LabelIcon": "Ikona",
|
||||||
"LabelImageURLFromTheWeb": "URL obrázku z webu",
|
"LabelImageURLFromTheWeb": "URL obrázku z webu",
|
||||||
|
"LabelInProgress": "Probíhá",
|
||||||
"LabelIncludeInTracklist": "Zahrnout do seznamu stop",
|
"LabelIncludeInTracklist": "Zahrnout do seznamu stop",
|
||||||
"LabelIncomplete": "Neúplné",
|
"LabelIncomplete": "Neúplné",
|
||||||
"LabelInProgress": "Probíhá",
|
|
||||||
"LabelInterval": "Interval",
|
"LabelInterval": "Interval",
|
||||||
"LabelIntervalCustomDailyWeekly": "Vlastní denně/týdně",
|
"LabelIntervalCustomDailyWeekly": "Vlastní denně/týdně",
|
||||||
"LabelIntervalEvery12Hours": "Každých 12 hodin",
|
"LabelIntervalEvery12Hours": "Každých 12 hodin",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Položka",
|
"LabelItem": "Položka",
|
||||||
"LabelLanguage": "Jazyk",
|
"LabelLanguage": "Jazyk",
|
||||||
"LabelLanguageDefaultServer": "Výchozí jazyk serveru",
|
"LabelLanguageDefaultServer": "Výchozí jazyk serveru",
|
||||||
|
"LabelLanguages": "Jazyky",
|
||||||
"LabelLastBookAdded": "Poslední kniha přidána",
|
"LabelLastBookAdded": "Poslední kniha přidána",
|
||||||
"LabelLastBookUpdated": "Poslední kniha aktualizována",
|
"LabelLastBookUpdated": "Poslední kniha aktualizována",
|
||||||
"LabelLastSeen": "Naposledy viděno",
|
"LabelLastSeen": "Naposledy viděno",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Méně",
|
"LabelLess": "Méně",
|
||||||
"LabelLibrariesAccessibleToUser": "Knihovny přístupné uživateli",
|
"LabelLibrariesAccessibleToUser": "Knihovny přístupné uživateli",
|
||||||
"LabelLibrary": "Knihovna",
|
"LabelLibrary": "Knihovna",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Položka knihovny",
|
"LabelLibraryItem": "Položka knihovny",
|
||||||
"LabelLibraryName": "Název knihovny",
|
"LabelLibraryName": "Název knihovny",
|
||||||
"LabelLimit": "Omezit",
|
"LabelLimit": "Omezit",
|
||||||
@@ -355,50 +361,51 @@
|
|||||||
"LabelLogLevelInfo": "Informace",
|
"LabelLogLevelInfo": "Informace",
|
||||||
"LabelLogLevelWarn": "Varovat",
|
"LabelLogLevelWarn": "Varovat",
|
||||||
"LabelLookForNewEpisodesAfterDate": "Hledat nové epizody po tomto datu",
|
"LabelLookForNewEpisodesAfterDate": "Hledat nové epizody po tomto datu",
|
||||||
"LabelLowestPriority": "Lowest Priority",
|
"LabelLowestPriority": "Nejnižší priorita",
|
||||||
"LabelMatchExistingUsersBy": "Match existing users by",
|
"LabelMatchExistingUsersBy": "Přiřadit stávající uživatele podle",
|
||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Slouží k propojení stávajících uživatelů. Po propojení budou uživatelé přiřazeni k jedinečnému ID od poskytovatele SSO.",
|
||||||
"LabelMediaPlayer": "Přehrávač médií",
|
"LabelMediaPlayer": "Přehrávač médií",
|
||||||
"LabelMediaType": "Typ média",
|
"LabelMediaType": "Typ média",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Poskytovatel metadat",
|
|
||||||
"LabelMetaTag": "Metaznačka",
|
"LabelMetaTag": "Metaznačka",
|
||||||
"LabelMetaTags": "Metaznačky",
|
"LabelMetaTags": "Metaznačky",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Zdroje metadat s vyšší prioritou budou mít přednost před zdroji metadat s nižší prioritou.",
|
||||||
|
"LabelMetadataProvider": "Poskytovatel metadat",
|
||||||
"LabelMinute": "Minuta",
|
"LabelMinute": "Minuta",
|
||||||
"LabelMissing": "Chybějící",
|
"LabelMissing": "Chybějící",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Nemá elektronickou knihu",
|
||||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
"LabelMissingSupplementaryEbook": "Nemá žádnou doplňkovou elektronickou knihu",
|
||||||
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
|
"LabelMobileRedirectURIs": "Povolené mobilní přesměrování URI",
|
||||||
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is <code>audiobookshelf://oauth</code>, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (<code>*</code>) as the sole entry permits any URI.",
|
"LabelMobileRedirectURIsDescription": "Toto je seznam povolených přesměrování URI pro mobilní aplikace. Výchozí je <code>audiobookshelf://oauth</code>, který můžete odstranit nebo doplnit o další URI pro integraci aplikací třetích stran. Použití hvězdičky (<code>*</code>) jako jediné položky povoluje libovolný URI.",
|
||||||
"LabelMore": "Více",
|
"LabelMore": "Více",
|
||||||
"LabelMoreInfo": "Více informací",
|
"LabelMoreInfo": "Více informací",
|
||||||
"LabelName": "Jméno",
|
"LabelName": "Jméno",
|
||||||
"LabelNarrator": "Interpret",
|
"LabelNarrator": "Interpret",
|
||||||
"LabelNarrators": "Interpreti",
|
"LabelNarrators": "Interpreti",
|
||||||
"LabelNew": "Nový",
|
"LabelNew": "Nový",
|
||||||
|
"LabelNewPassword": "Nové heslo",
|
||||||
"LabelNewestAuthors": "Nejnovější autoři",
|
"LabelNewestAuthors": "Nejnovější autoři",
|
||||||
"LabelNewestEpisodes": "Nejnovější epizody",
|
"LabelNewestEpisodes": "Nejnovější epizody",
|
||||||
"LabelNewPassword": "Nové heslo",
|
|
||||||
"LabelNextBackupDate": "Datum příští zálohy",
|
"LabelNextBackupDate": "Datum příští zálohy",
|
||||||
"LabelNextScheduledRun": "Další naplánované spuštění",
|
"LabelNextScheduledRun": "Další naplánované spuštění",
|
||||||
|
"LabelNoCustomMetadataProviders": "Žádní vlastní poskytovatelé metadat",
|
||||||
"LabelNoEpisodesSelected": "Nebyly vybrány žádné epizody",
|
"LabelNoEpisodesSelected": "Nebyly vybrány žádné epizody",
|
||||||
"LabelNotes": "Poznámky",
|
|
||||||
"LabelNotFinished": "Nedokončeno",
|
"LabelNotFinished": "Nedokončeno",
|
||||||
|
"LabelNotStarted": "Nezahájeno",
|
||||||
|
"LabelNotes": "Poznámky",
|
||||||
"LabelNotificationAppriseURL": "URL adresy Apprise",
|
"LabelNotificationAppriseURL": "URL adresy Apprise",
|
||||||
"LabelNotificationAvailableVariables": "Dostupné proměnné",
|
"LabelNotificationAvailableVariables": "Dostupné proměnné",
|
||||||
"LabelNotificationBodyTemplate": "Šablona těla",
|
"LabelNotificationBodyTemplate": "Šablona těla",
|
||||||
"LabelNotificationEvent": "Událost oznámení",
|
"LabelNotificationEvent": "Událost oznámení",
|
||||||
|
"LabelNotificationTitleTemplate": "Šablona názvu",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Maximální počet neúspěšných pokusů",
|
"LabelNotificationsMaxFailedAttempts": "Maximální počet neúspěšných pokusů",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Oznámení jsou vypnuta, pokud se jim to nepodaří odeslat",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Oznámení jsou vypnuta, pokud se jim to nepodaří odeslat",
|
||||||
"LabelNotificationsMaxQueueSize": "Maximální velikost fronty pro oznamovací události",
|
"LabelNotificationsMaxQueueSize": "Maximální velikost fronty pro oznamovací události",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Události jsou omezeny na 1 za sekundu. Události budou ignorovány, pokud je fronta v maximální velikosti. Tím se zabrání spamování oznámení.",
|
"LabelNotificationsMaxQueueSizeHelp": "Události jsou omezeny na 1 za sekundu. Události budou ignorovány, pokud je fronta v maximální velikosti. Tím se zabrání spamování oznámení.",
|
||||||
"LabelNotificationTitleTemplate": "Šablona názvu",
|
|
||||||
"LabelNotStarted": "Nezahájeno",
|
|
||||||
"LabelNumberOfBooks": "Počet knih",
|
"LabelNumberOfBooks": "Počet knih",
|
||||||
"LabelNumberOfEpisodes": "Počet epizod",
|
"LabelNumberOfEpisodes": "Počet epizod",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Název požadavku OpenID, který obsahuje rozšířená oprávnění pro akce uživatele v rámci aplikace, která se budou vztahovat na role, které nejsou administrátory (<b>pokud jsou nakonfigurovány</b>). Pokud požadavek v odpovědi chybí, přístup do systému ABS bude zamítnut. Pokud chybí jediná možnost, bude považována za <code>false</code>. Ujistěte se, že deklarace poskytovatele identity odpovídá očekávané struktuře:",
|
||||||
"LabelOpenIDClaims": "Leave the following options empty to disable advanced group and permissions assignment, automatically assigning 'User' group then.",
|
"LabelOpenIDClaims": "Následující možnosti ponechte prázdné, abyste zakázali pokročilé přiřazování skupin a oprávnění a automatické přiřazení skupiny \"User\".",
|
||||||
"LabelOpenIDGroupClaimDescription": "Name of the OpenID claim that contains a list of the user's groups. Commonly referred to as <code>groups</code>. <b>If configured</b>, the application will automatically assign roles based on the user's group memberships, provided that these groups are named case-insensitively 'admin', 'user', or 'guest' in the claim. The claim should contain a list, and if a user belongs to multiple groups, the application will assign the role corresponding to the highest level of access. If no group matches, access will be denied.",
|
"LabelOpenIDGroupClaimDescription": "Název požadavku OpenID, který obsahuje seznam uživatelských skupin. Běžně se označuje jako <code>groups</code>. <b>Je-li nakonfigurováno</b>, plikace automaticky přiřadí role na základě členství uživatele ve skupinách, pokud jsou tyto skupiny v požadavku pojmenovány case-insensitive 'admin', 'user' nebo 'guest'. Požadavek by měl obsahovat seznam, a pokud uživatel patří do více skupin, aplikace přiřadí roli odpovídající nejvyšší úrovni práva přístupu. Pokud žádná skupina není shodná, bude přístup odepřen.",
|
||||||
"LabelOpenRSSFeed": "Otevřít RSS kanál",
|
"LabelOpenRSSFeed": "Otevřít RSS kanál",
|
||||||
"LabelOverwrite": "Přepsat",
|
"LabelOverwrite": "Přepsat",
|
||||||
"LabelPassword": "Heslo",
|
"LabelPassword": "Heslo",
|
||||||
@@ -410,14 +417,15 @@
|
|||||||
"LabelPermissionsDownload": "Může stahovat",
|
"LabelPermissionsDownload": "Může stahovat",
|
||||||
"LabelPermissionsUpdate": "Může aktualizovat",
|
"LabelPermissionsUpdate": "Může aktualizovat",
|
||||||
"LabelPermissionsUpload": "Může nahrávat",
|
"LabelPermissionsUpload": "Může nahrávat",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Váš přehled roku ({0})",
|
||||||
"LabelPhotoPathURL": "Cesta k fotografii/URL",
|
"LabelPhotoPathURL": "Cesta k fotografii/URL",
|
||||||
"LabelPlaylists": "Seznamy skladeb",
|
|
||||||
"LabelPlayMethod": "Metoda přehrávání",
|
"LabelPlayMethod": "Metoda přehrávání",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Seznamy skladeb",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasty",
|
|
||||||
"LabelPodcastSearchRegion": "Oblast vyhledávání podcastu",
|
"LabelPodcastSearchRegion": "Oblast vyhledávání podcastu",
|
||||||
"LabelPodcastType": "Typ podcastu",
|
"LabelPodcastType": "Typ podcastu",
|
||||||
|
"LabelPodcasts": "Podcasty",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Předpony, které se mají ignorovat (nerozlišují se malá a velká písmena)",
|
"LabelPrefixesToIgnore": "Předpony, které se mají ignorovat (nerozlišují se malá a velká písmena)",
|
||||||
"LabelPreventIndexing": "Zabránit indexování vašeho kanálu v adresářích podcastů iTunes a Google",
|
"LabelPreventIndexing": "Zabránit indexování vašeho kanálu v adresářích podcastů iTunes a Google",
|
||||||
@@ -425,30 +433,31 @@
|
|||||||
"LabelProgress": "Průběh",
|
"LabelProgress": "Průběh",
|
||||||
"LabelProvider": "Poskytovatel",
|
"LabelProvider": "Poskytovatel",
|
||||||
"LabelPubDate": "Datum vydání",
|
"LabelPubDate": "Datum vydání",
|
||||||
"LabelPublisher": "Vydavatel",
|
|
||||||
"LabelPublishYear": "Rok vydání",
|
"LabelPublishYear": "Rok vydání",
|
||||||
"LabelRead": "Číst",
|
"LabelPublisher": "Vydavatel",
|
||||||
"LabelReadAgain": "Číst znovu",
|
"LabelPublishers": "Vydavatelé",
|
||||||
"LabelReadEbookWithoutProgress": "Číst e-knihu bez zachování průběhu",
|
|
||||||
"LabelRecentlyAdded": "Nedávno přidané",
|
|
||||||
"LabelRecentSeries": "Nedávné série",
|
|
||||||
"LabelRecommended": "Doporučeno",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Region",
|
|
||||||
"LabelReleaseDate": "Datum vydání",
|
|
||||||
"LabelRemoveCover": "Odstranit obálku",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Vlastní e-mail vlastníka",
|
"LabelRSSFeedCustomOwnerEmail": "Vlastní e-mail vlastníka",
|
||||||
"LabelRSSFeedCustomOwnerName": "Vlastní jméno vlastníka",
|
"LabelRSSFeedCustomOwnerName": "Vlastní jméno vlastníka",
|
||||||
"LabelRSSFeedOpen": "Otevření RSS kanálu",
|
"LabelRSSFeedOpen": "Otevření RSS kanálu",
|
||||||
"LabelRSSFeedPreventIndexing": "Zabránit indexování",
|
"LabelRSSFeedPreventIndexing": "Zabránit indexování",
|
||||||
"LabelRSSFeedSlug": "RSS kanál Slug",
|
"LabelRSSFeedSlug": "RSS kanál Slug",
|
||||||
"LabelRSSFeedURL": "URL RSS kanálu",
|
"LabelRSSFeedURL": "URL RSS kanálu",
|
||||||
|
"LabelRead": "Číst",
|
||||||
|
"LabelReadAgain": "Číst znovu",
|
||||||
|
"LabelReadEbookWithoutProgress": "Číst e-knihu bez zachování průběhu",
|
||||||
|
"LabelRecentSeries": "Nedávné série",
|
||||||
|
"LabelRecentlyAdded": "Nedávno přidané",
|
||||||
|
"LabelRecommended": "Doporučeno",
|
||||||
|
"LabelRedo": "Přepracovat",
|
||||||
|
"LabelRegion": "Region",
|
||||||
|
"LabelReleaseDate": "Datum vydání",
|
||||||
|
"LabelRemoveCover": "Odstranit obálku",
|
||||||
|
"LabelRowsPerPage": "Řádky na stránku",
|
||||||
"LabelSearchTerm": "Vyhledat termín",
|
"LabelSearchTerm": "Vyhledat termín",
|
||||||
"LabelSearchTitle": "Vyhledat název",
|
"LabelSearchTitle": "Vyhledat název",
|
||||||
"LabelSearchTitleOrASIN": "Vyhledat název nebo ASIN",
|
"LabelSearchTitleOrASIN": "Vyhledat název nebo ASIN",
|
||||||
"LabelSeason": "Sezóna",
|
"LabelSeason": "Sezóna",
|
||||||
"LabelSelectAll": "Select all",
|
"LabelSelectAll": "Vybrat vše",
|
||||||
"LabelSelectAllEpisodes": "Vybrat všechny epizody",
|
"LabelSelectAllEpisodes": "Vybrat všechny epizody",
|
||||||
"LabelSelectEpisodesShowing": "Vyberte {0} epizody, které se zobrazují",
|
"LabelSelectEpisodesShowing": "Vyberte {0} epizody, které se zobrazují",
|
||||||
"LabelSelectUsers": "Vybrat uživatele",
|
"LabelSelectUsers": "Vybrat uživatele",
|
||||||
@@ -457,7 +466,7 @@
|
|||||||
"LabelSeries": "Série",
|
"LabelSeries": "Série",
|
||||||
"LabelSeriesName": "Název série",
|
"LabelSeriesName": "Název série",
|
||||||
"LabelSeriesProgress": "Průběh série",
|
"LabelSeriesProgress": "Průběh série",
|
||||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
"LabelServerYearReview": "Přehled roku na serveru ({0})",
|
||||||
"LabelSetEbookAsPrimary": "Nastavit jako primární",
|
"LabelSetEbookAsPrimary": "Nastavit jako primární",
|
||||||
"LabelSetEbookAsSupplementary": "Nastavit jako doplňkové",
|
"LabelSetEbookAsSupplementary": "Nastavit jako doplňkové",
|
||||||
"LabelSettingsAudiobooksOnly": "Pouze audioknihy",
|
"LabelSettingsAudiobooksOnly": "Pouze audioknihy",
|
||||||
@@ -471,8 +480,8 @@
|
|||||||
"LabelSettingsEnableWatcher": "Povolit sledování",
|
"LabelSettingsEnableWatcher": "Povolit sledování",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "Povolit sledování složky pro knihovnu",
|
"LabelSettingsEnableWatcherForLibrary": "Povolit sledování složky pro knihovnu",
|
||||||
"LabelSettingsEnableWatcherHelp": "Povoluje automatické přidávání/aktualizaci položek, když jsou zjištěny změny souborů. *Vyžaduje restart serveru",
|
"LabelSettingsEnableWatcherHelp": "Povoluje automatické přidávání/aktualizaci položek, když jsou zjištěny změny souborů. *Vyžaduje restart serveru",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Povolení skriptovaného obsahu v epubu",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Povolení spouštění skriptů v souborech epub. Doporučujeme toto nastavení vypnout, pokud nedůvěřujete zdroji souborů epub.",
|
||||||
"LabelSettingsExperimentalFeatures": "Experimentální funkce",
|
"LabelSettingsExperimentalFeatures": "Experimentální funkce",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "Funkce ve vývoji, které by mohly využít vaši zpětnou vazbu a pomoc s testováním. Kliknutím otevřete diskuzi na githubu.",
|
"LabelSettingsExperimentalFeaturesHelp": "Funkce ve vývoji, které by mohly využít vaši zpětnou vazbu a pomoc s testováním. Kliknutím otevřete diskuzi na githubu.",
|
||||||
"LabelSettingsFindCovers": "Najít obálky",
|
"LabelSettingsFindCovers": "Najít obálky",
|
||||||
@@ -481,8 +490,8 @@
|
|||||||
"LabelSettingsHideSingleBookSeriesHelp": "Série, které mají jedinou knihu, budou skryty na stránce série a na domovské stránce.",
|
"LabelSettingsHideSingleBookSeriesHelp": "Série, které mají jedinou knihu, budou skryty na stránce série a na domovské stránce.",
|
||||||
"LabelSettingsHomePageBookshelfView": "Domovská stránka používá zobrazení police s knihami",
|
"LabelSettingsHomePageBookshelfView": "Domovská stránka používá zobrazení police s knihami",
|
||||||
"LabelSettingsLibraryBookshelfView": "Knihovna používá zobrazení police s knihami",
|
"LabelSettingsLibraryBookshelfView": "Knihovna používá zobrazení police s knihami",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Přeskočit předchozí knihy v pokračování série",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "The Continue Series home page shelf shows the first book not started in series that have at least one book finished and no books in progress. Enabling this setting will continue series from the furthest completed book instead of the first book not started.",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "Polička Pokračovat v sérii na domovské stránce zobrazuje první nezačatou knihu v sériích, které mají alespoň jednu knihu dokončenou a žádnou rozečtenou. Povolením tohoto nastavení budou série pokračovat od poslední dokončené knihy namísto první nezačaté knihy.",
|
||||||
"LabelSettingsParseSubtitles": "Analzyovat podtitul",
|
"LabelSettingsParseSubtitles": "Analzyovat podtitul",
|
||||||
"LabelSettingsParseSubtitlesHelp": "Rozparsovat podtitul z názvů složek audioknih.<br>Podtiul musí být oddělen znakem \" - \"<br>tj. \"Název knihy - Zde Podtitul\" má podtitul \"Zde podtitul\"",
|
"LabelSettingsParseSubtitlesHelp": "Rozparsovat podtitul z názvů složek audioknih.<br>Podtiul musí být oddělen znakem \" - \"<br>tj. \"Název knihy - Zde Podtitul\" má podtitul \"Zde podtitul\"",
|
||||||
"LabelSettingsPreferMatchedMetadata": "Preferovat spárovaná metadata",
|
"LabelSettingsPreferMatchedMetadata": "Preferovat spárovaná metadata",
|
||||||
@@ -499,14 +508,14 @@
|
|||||||
"LabelSettingsStoreMetadataWithItemHelp": "Ve výchozím nastavení jsou soubory metadat uloženy v adresáři /metadata/items, povolením tohoto nastavení budou soubory metadat uloženy ve složkách položek knihovny",
|
"LabelSettingsStoreMetadataWithItemHelp": "Ve výchozím nastavení jsou soubory metadat uloženy v adresáři /metadata/items, povolením tohoto nastavení budou soubory metadat uloženy ve složkách položek knihovny",
|
||||||
"LabelSettingsTimeFormat": "Formát času",
|
"LabelSettingsTimeFormat": "Formát času",
|
||||||
"LabelShowAll": "Zobrazit vše",
|
"LabelShowAll": "Zobrazit vše",
|
||||||
"LabelShowSeconds": "Show seconds",
|
"LabelShowSeconds": "Zobrazit sekundy",
|
||||||
"LabelSize": "Velikost",
|
"LabelSize": "Velikost",
|
||||||
"LabelSleepTimer": "Časovač vypnutí",
|
"LabelSleepTimer": "Časovač vypnutí",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Spustit",
|
"LabelStart": "Spustit",
|
||||||
|
"LabelStartTime": "Čas Spuštění",
|
||||||
"LabelStarted": "Spuštěno",
|
"LabelStarted": "Spuštěno",
|
||||||
"LabelStartedAt": "Spuštěno v",
|
"LabelStartedAt": "Spuštěno v",
|
||||||
"LabelStartTime": "Čas Spuštění",
|
|
||||||
"LabelStatsAudioTracks": "Zvukové stopy",
|
"LabelStatsAudioTracks": "Zvukové stopy",
|
||||||
"LabelStatsAuthors": "Autoři",
|
"LabelStatsAuthors": "Autoři",
|
||||||
"LabelStatsBestDay": "Nejlepší den",
|
"LabelStatsBestDay": "Nejlepší den",
|
||||||
@@ -529,10 +538,10 @@
|
|||||||
"LabelTagsAccessibleToUser": "Značky přístupné uživateli",
|
"LabelTagsAccessibleToUser": "Značky přístupné uživateli",
|
||||||
"LabelTagsNotAccessibleToUser": "Značky nepřístupné uživateli",
|
"LabelTagsNotAccessibleToUser": "Značky nepřístupné uživateli",
|
||||||
"LabelTasks": "Spuštěné Úlohy",
|
"LabelTasks": "Spuštěné Úlohy",
|
||||||
"LabelTextEditorBulletedList": "Bulleted list",
|
"LabelTextEditorBulletedList": "Seznam s odrážkami",
|
||||||
"LabelTextEditorLink": "Link",
|
"LabelTextEditorLink": "Link",
|
||||||
"LabelTextEditorNumberedList": "Numbered list",
|
"LabelTextEditorNumberedList": "Seznam s čísly",
|
||||||
"LabelTextEditorUnlink": "Unlink",
|
"LabelTextEditorUnlink": "Zrušit odkaz",
|
||||||
"LabelTheme": "Téma",
|
"LabelTheme": "Téma",
|
||||||
"LabelThemeDark": "Tmavé",
|
"LabelThemeDark": "Tmavé",
|
||||||
"LabelThemeLight": "Světlé",
|
"LabelThemeLight": "Světlé",
|
||||||
@@ -558,16 +567,16 @@
|
|||||||
"LabelTracksSingleTrack": "Jedna stopa",
|
"LabelTracksSingleTrack": "Jedna stopa",
|
||||||
"LabelType": "Typ",
|
"LabelType": "Typ",
|
||||||
"LabelUnabridged": "Nezkráceno",
|
"LabelUnabridged": "Nezkráceno",
|
||||||
"LabelUndo": "Undo",
|
"LabelUndo": "Zpět",
|
||||||
"LabelUnknown": "Neznámý",
|
"LabelUnknown": "Neznámý",
|
||||||
"LabelUpdateCover": "Aktualizovat obálku",
|
"LabelUpdateCover": "Aktualizovat obálku",
|
||||||
"LabelUpdateCoverHelp": "Povolit přepsání existujících obálek pro vybrané knihy, pokud je nalezena shoda",
|
"LabelUpdateCoverHelp": "Povolit přepsání existujících obálek pro vybrané knihy, pokud je nalezena shoda",
|
||||||
"LabelUpdatedAt": "Aktualizováno v",
|
|
||||||
"LabelUpdateDetails": "Aktualizovat podrobnosti",
|
"LabelUpdateDetails": "Aktualizovat podrobnosti",
|
||||||
"LabelUpdateDetailsHelp": "Povolit přepsání existujících údajů o vybraných knihách, když je nalezena shoda",
|
"LabelUpdateDetailsHelp": "Povolit přepsání existujících údajů o vybraných knihách, když je nalezena shoda",
|
||||||
|
"LabelUpdatedAt": "Aktualizováno v",
|
||||||
"LabelUploaderDragAndDrop": "Přetáhnout soubory nebo složky",
|
"LabelUploaderDragAndDrop": "Přetáhnout soubory nebo složky",
|
||||||
"LabelUploaderDropFiles": "Odstranit soubory",
|
"LabelUploaderDropFiles": "Odstranit soubory",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automaticky načíst název, autora a sérii",
|
||||||
"LabelUseChapterTrack": "Použít stopu kapitoly",
|
"LabelUseChapterTrack": "Použít stopu kapitoly",
|
||||||
"LabelUseFullTrack": "Použít celou stopu",
|
"LabelUseFullTrack": "Použít celou stopu",
|
||||||
"LabelUser": "Uživatel",
|
"LabelUser": "Uživatel",
|
||||||
@@ -579,8 +588,8 @@
|
|||||||
"LabelViewQueue": "Zobrazit frontu přehrávače",
|
"LabelViewQueue": "Zobrazit frontu přehrávače",
|
||||||
"LabelVolume": "Hlasitost",
|
"LabelVolume": "Hlasitost",
|
||||||
"LabelWeekdaysToRun": "Dny v týdnu ke spuštění",
|
"LabelWeekdaysToRun": "Dny v týdnu ke spuštění",
|
||||||
"LabelYearReviewHide": "Hide Year in Review",
|
"LabelYearReviewHide": "Skrýt rok v přehledu",
|
||||||
"LabelYearReviewShow": "See Year in Review",
|
"LabelYearReviewShow": "Zobrazit rok v přehledu",
|
||||||
"LabelYourAudiobookDuration": "Doba trvání vaší audioknihy",
|
"LabelYourAudiobookDuration": "Doba trvání vaší audioknihy",
|
||||||
"LabelYourBookmarks": "Vaše záložky",
|
"LabelYourBookmarks": "Vaše záložky",
|
||||||
"LabelYourPlaylists": "Vaše seznamy přehrávání",
|
"LabelYourPlaylists": "Vaše seznamy přehrávání",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Zálohy zahrnují uživatele, průběh uživatele, podrobnosti o položkách knihovny, nastavení serveru a obrázky uložené v <code>/metadata/items</code> a <code>/metadata/authors</code>. Zálohy <strong>ne</strong> zahrnují všechny soubory uložené ve složkách knihovny.",
|
"MessageBackupsDescription": "Zálohy zahrnují uživatele, průběh uživatele, podrobnosti o položkách knihovny, nastavení serveru a obrázky uložené v <code>/metadata/items</code> a <code>/metadata/authors</code>. Zálohy <strong>ne</strong> zahrnují všechny soubory uložené ve složkách knihovny.",
|
||||||
"MessageBatchQuickMatchDescription": "Rychlá párování se pokusí přidat chybějící obálky a metadata pro vybrané položky. Povolením níže uvedených možností umožníte funkci Rychlé párování přepsat stávající obálky a/nebo metadata.",
|
"MessageBatchQuickMatchDescription": "Rychlá párování se pokusí přidat chybějící obálky a metadata pro vybrané položky. Povolením níže uvedených možností umožníte funkci Rychlé párování přepsat stávající obálky a/nebo metadata.",
|
||||||
"MessageBookshelfNoCollections": "Ještě jste nevytvořili žádnou sbírku",
|
"MessageBookshelfNoCollections": "Ještě jste nevytvořili žádnou sbírku",
|
||||||
"MessageBookshelfNoResultsForFilter": "Filtr \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Nejsou otevřeny žádné RSS kanály",
|
"MessageBookshelfNoRSSFeeds": "Nejsou otevřeny žádné RSS kanály",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Filtr \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "Žádné výsledky pro dotaz",
|
||||||
"MessageBookshelfNoSeries": "Nemáte žádnou sérii",
|
"MessageBookshelfNoSeries": "Nemáte žádnou sérii",
|
||||||
"MessageChapterEndIsAfter": "Konec kapitoly přesahuje konec audioknihy",
|
"MessageChapterEndIsAfter": "Konec kapitoly přesahuje konec audioknihy",
|
||||||
"MessageChapterErrorFirstNotZero": "První kapitola musí začínat na 0",
|
"MessageChapterErrorFirstNotZero": "První kapitola musí začínat na 0",
|
||||||
@@ -611,14 +621,16 @@
|
|||||||
"MessageConfirmMarkAllEpisodesNotFinished": "Opravdu chcete označit všechny epizody jako nedokončené?",
|
"MessageConfirmMarkAllEpisodesNotFinished": "Opravdu chcete označit všechny epizody jako nedokončené?",
|
||||||
"MessageConfirmMarkSeriesFinished": "Opravdu chcete označit všechny knihy z této série jako dokončené?",
|
"MessageConfirmMarkSeriesFinished": "Opravdu chcete označit všechny knihy z této série jako dokončené?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Opravdu chcete označit všechny knihy z této série jako nedokončené?",
|
"MessageConfirmMarkSeriesNotFinished": "Opravdu chcete označit všechny knihy z této série jako nedokončené?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Vyčistit mezipaměť odstraní celý adresář na adrese <code>/metadata/cache</code>. <br /><br />Určitě chcete odstranit adresář mezipaměti?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Vyčištění mezipaměti položek odstraní celý adresář <code>/metadata/cache/items</code>.<br />Jste si jistí?",
|
||||||
"MessageConfirmQuickEmbed": "Varování! Rychlé vložení nezálohuje vaše zvukové soubory. Ujistěte se, že máte zálohu zvukových souborů. <br><br>Chcete pokračovat?",
|
"MessageConfirmQuickEmbed": "Varování! Rychlé vložení nezálohuje vaše zvukové soubory. Ujistěte se, že máte zálohu zvukových souborů. <br><br>Chcete pokračovat?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Opravdu chcete znovu prohledat {0} položky?",
|
||||||
"MessageConfirmRemoveAllChapters": "Opravdu chcete odstranit všechny kapitoly?",
|
"MessageConfirmRemoveAllChapters": "Opravdu chcete odstranit všechny kapitoly?",
|
||||||
"MessageConfirmRemoveAuthor": "Opravdu chcete odstranit autora \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Opravdu chcete odstranit autora \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Opravdu chcete odstranit kolekci \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Opravdu chcete odstranit kolekci \"{0}\"?",
|
||||||
"MessageConfirmRemoveEpisode": "Opravdu chcete odstranit epizodu \"{0}\"?",
|
"MessageConfirmRemoveEpisode": "Opravdu chcete odstranit epizodu \"{0}\"?",
|
||||||
"MessageConfirmRemoveEpisodes": "Opravdu chcete odstranit {0} epizody?",
|
"MessageConfirmRemoveEpisodes": "Opravdu chcete odstranit {0} epizody?",
|
||||||
"MessageConfirmRemoveListeningSessions": "Are you sure you want to remove {0} listening sessions?",
|
"MessageConfirmRemoveListeningSessions": "Opravdu chcete odebrat {0} poslechových relací?",
|
||||||
"MessageConfirmRemoveNarrator": "Opravdu chcete odebrat předčítání \"{0}\"?",
|
"MessageConfirmRemoveNarrator": "Opravdu chcete odebrat předčítání \"{0}\"?",
|
||||||
"MessageConfirmRemovePlaylist": "Opravdu chcete odstranit svůj playlist \"{0}\"?",
|
"MessageConfirmRemovePlaylist": "Opravdu chcete odstranit svůj playlist \"{0}\"?",
|
||||||
"MessageConfirmRenameGenre": "Opravdu chcete přejmenovat žánr \"{0}\" na \"{1}\" pro všechny položky?",
|
"MessageConfirmRenameGenre": "Opravdu chcete přejmenovat žánr \"{0}\" na \"{1}\" pro všechny položky?",
|
||||||
@@ -627,13 +639,12 @@
|
|||||||
"MessageConfirmRenameTag": "Opravdu chcete přejmenovat tag \"{0}\" na \"{1}\" pro všechny položky?",
|
"MessageConfirmRenameTag": "Opravdu chcete přejmenovat tag \"{0}\" na \"{1}\" pro všechny položky?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Poznámka: Tato značka již existuje, takže budou sloučeny.",
|
"MessageConfirmRenameTagMergeNote": "Poznámka: Tato značka již existuje, takže budou sloučeny.",
|
||||||
"MessageConfirmRenameTagWarning": "Varování! Podobná značka s jinými velkými a malými písmeny již existuje \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Varování! Podobná značka s jinými velkými a malými písmeny již existuje \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Opravdu chcete znovu prohledat {0} položky?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Opravdu chcete odeslat e-knihu {0} {1}\" do zařízení \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Opravdu chcete odeslat e-knihu {0} {1}\" do zařízení \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Stahuji epizodu",
|
"MessageDownloadingEpisode": "Stahuji epizodu",
|
||||||
"MessageDragFilesIntoTrackOrder": "Přetáhněte soubory do správného pořadí stop",
|
"MessageDragFilesIntoTrackOrder": "Přetáhněte soubory do správného pořadí stop",
|
||||||
"MessageEmbedFinished": "Vložení dokončeno!",
|
"MessageEmbedFinished": "Vložení dokončeno!",
|
||||||
"MessageEpisodesQueuedForDownload": "{0} epizody zařazené do fronty ke stažení",
|
"MessageEpisodesQueuedForDownload": "{0} epizody zařazené do fronty ke stažení",
|
||||||
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below.",
|
"MessageEreaderDevices": "Aby bylo zajištěno doručení elektronických knih, může být nutné přidat výše uvedenou e-mailovou adresu jako platného odesílatele pro každé zařízení uvedené níže.",
|
||||||
"MessageFeedURLWillBe": "URL zdroje bude {0}",
|
"MessageFeedURLWillBe": "URL zdroje bude {0}",
|
||||||
"MessageFetching": "Stahování...",
|
"MessageFetching": "Stahování...",
|
||||||
"MessageForceReScanDescription": "znovu prohledá všechny soubory jako při novém skenování. ID3 tagy zvukových souborů OPF soubory a textové soubory budou skenovány jako nové.",
|
"MessageForceReScanDescription": "znovu prohledá všechny soubory jako při novém skenování. ID3 tagy zvukových souborů OPF soubory a textové soubory budou skenovány jako nové.",
|
||||||
@@ -645,7 +656,7 @@
|
|||||||
"MessageListeningSessionsInTheLastYear": "{0} poslechových relací za poslední rok",
|
"MessageListeningSessionsInTheLastYear": "{0} poslechových relací za poslední rok",
|
||||||
"MessageLoading": "Načítá se...",
|
"MessageLoading": "Načítá se...",
|
||||||
"MessageLoadingFolders": "Načítám složky...",
|
"MessageLoadingFolders": "Načítám složky...",
|
||||||
"MessageLogsDescription": "Logs are stored in <code>/metadata/logs</code> as JSON files. Crash logs are stored in <code>/metadata/logs/crash_logs.txt</code>.",
|
"MessageLogsDescription": "Protokoly se ukládají do souborů JSON v <code>/metadata/logs</code>. Protokoly o pádech jsou uloženy v <code>/metadata/logs/crash_logs.txt</code>.",
|
||||||
"MessageM4BFailed": "M4B se nezdařil!",
|
"MessageM4BFailed": "M4B se nezdařil!",
|
||||||
"MessageM4BFinished": "M4B dokončen!",
|
"MessageM4BFinished": "M4B dokončen!",
|
||||||
"MessageMapChapterTitles": "Mapování názvů kapitol ke stávajícím kapitolám audioknihy bez úpravy časových razítek",
|
"MessageMapChapterTitles": "Mapování názvů kapitol ke stávajícím kapitolám audioknihy bez úpravy časových razítek",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Žádné série",
|
"MessageNoSeries": "Žádné série",
|
||||||
"MessageNoTags": "Žádné značky",
|
"MessageNoTags": "Žádné značky",
|
||||||
"MessageNoTasksRunning": "Nejsou spuštěny žádné úlohy",
|
"MessageNoTasksRunning": "Nejsou spuštěny žádné úlohy",
|
||||||
"MessageNotYetImplemented": "Ještě není implementováno",
|
|
||||||
"MessageNoUpdateNecessary": "Není nutná žádná aktualizace",
|
"MessageNoUpdateNecessary": "Není nutná žádná aktualizace",
|
||||||
"MessageNoUpdatesWereNecessary": "Nebyly nutné žádné aktualizace",
|
"MessageNoUpdatesWereNecessary": "Nebyly nutné žádné aktualizace",
|
||||||
"MessageNoUserPlaylists": "Nemáte žádné seznamy skladeb",
|
"MessageNoUserPlaylists": "Nemáte žádné seznamy skladeb",
|
||||||
|
"MessageNotYetImplemented": "Ještě není implementováno",
|
||||||
"MessageOr": "nebo",
|
"MessageOr": "nebo",
|
||||||
"MessagePauseChapter": "Pozastavit přehrávání kapitoly",
|
"MessagePauseChapter": "Pozastavit přehrávání kapitoly",
|
||||||
"MessagePlayChapter": "Poslechnout si začátek kapitoly",
|
"MessagePlayChapter": "Poslechnout si začátek kapitoly",
|
||||||
@@ -697,10 +708,10 @@
|
|||||||
"MessageRemoveUserWarning": "Opravdu chcete trvale smazat uživatele \"{0}\"?",
|
"MessageRemoveUserWarning": "Opravdu chcete trvale smazat uživatele \"{0}\"?",
|
||||||
"MessageReportBugsAndContribute": "Hlásit chyby, žádat o funkce a přispívat",
|
"MessageReportBugsAndContribute": "Hlásit chyby, žádat o funkce a přispívat",
|
||||||
"MessageResetChaptersConfirm": "Opravdu chcete resetovat kapitoly a vrátit zpět provedené změny?",
|
"MessageResetChaptersConfirm": "Opravdu chcete resetovat kapitoly a vrátit zpět provedené změny?",
|
||||||
"MessageRestoreBackupConfirm": "Opravdu chcete obnovit zálohu vytvořenou dne?",
|
"MessageRestoreBackupConfirm": "Opravdu chcete obnovit zálohu vytvořenou dne",
|
||||||
"MessageRestoreBackupWarning": "Obnovení zálohy přepíše celou databázi umístěnou v /config a obálku obrázků v /metadata/items & /metadata/authors.<br /><br />Backups nezmění žádné soubory ve složkách knihovny. Pokud jste povolili nastavení serveru pro ukládání obrázků obalu a metadat do složek knihovny, nebudou zálohovány ani přepsány.<br /><br />Všichni klienti používající váš server budou automaticky obnoveni.",
|
"MessageRestoreBackupWarning": "Obnovení zálohy přepíše celou databázi umístěnou v /config a obálku obrázků v /metadata/items & /metadata/authors.<br /><br />Backups nezmění žádné soubory ve složkách knihovny. Pokud jste povolili nastavení serveru pro ukládání obrázků obalu a metadat do složek knihovny, nebudou zálohovány ani přepsány.<br /><br />Všichni klienti používající váš server budou automaticky obnoveni.",
|
||||||
"MessageSearchResultsFor": "Výsledky hledání pro",
|
"MessageSearchResultsFor": "Výsledky hledání pro",
|
||||||
"MessageSelected": "{0} selected",
|
"MessageSelected": "{0} vybráno",
|
||||||
"MessageServerCouldNotBeReached": "Server je nedostupný",
|
"MessageServerCouldNotBeReached": "Server je nedostupný",
|
||||||
"MessageSetChaptersFromTracksDescription": "Nastavit kapitoly jako kapitolu a název kapitoly jako název zvukového souboru",
|
"MessageSetChaptersFromTracksDescription": "Nastavit kapitoly jako kapitolu a název kapitoly jako název zvukového souboru",
|
||||||
"MessageStartPlaybackAtTime": "Spustit přehrávání pro \"{0}\" v {1}?",
|
"MessageStartPlaybackAtTime": "Spustit přehrávání pro \"{0}\" v {1}?",
|
||||||
@@ -712,7 +723,7 @@
|
|||||||
"MessageWatcherIsDisabledGlobally": "Hlídač je globálně zakázán v nastavení serveru",
|
"MessageWatcherIsDisabledGlobally": "Hlídač je globálně zakázán v nastavení serveru",
|
||||||
"MessageXLibraryIsEmpty": "{0} knihovna je prázdná!",
|
"MessageXLibraryIsEmpty": "{0} knihovna je prázdná!",
|
||||||
"MessageYourAudiobookDurationIsLonger": "Doba trvání audioknihy je delší než nalezená délka",
|
"MessageYourAudiobookDurationIsLonger": "Doba trvání audioknihy je delší než nalezená délka",
|
||||||
"MessageYourAudiobookDurationIsShorter": "Délka audioknihy je kratší, než byla nalezena.",
|
"MessageYourAudiobookDurationIsShorter": "Délka audioknihy je kratší, než byla nalezena",
|
||||||
"NoteChangeRootPassword": "Uživatel root je jediný uživatel, který může mít prázdné heslo",
|
"NoteChangeRootPassword": "Uživatel root je jediný uživatel, který může mít prázdné heslo",
|
||||||
"NoteChapterEditorTimes": "Poznámka: Čas začátku první kapitoly musí zůstat v 0:00 a čas začátku poslední kapitoly nesmí překročit tuto dobu trvání audioknihy.",
|
"NoteChapterEditorTimes": "Poznámka: Čas začátku první kapitoly musí zůstat v 0:00 a čas začátku poslední kapitoly nesmí překročit tuto dobu trvání audioknihy.",
|
||||||
"NoteFolderPicker": "Poznámka: složky, které jsou již namapovány, nebudou zobrazeny",
|
"NoteFolderPicker": "Poznámka: složky, které jsou již namapovány, nebudou zobrazeny",
|
||||||
@@ -749,8 +760,8 @@
|
|||||||
"ToastBookmarkRemoveSuccess": "Záložka odstraněna",
|
"ToastBookmarkRemoveSuccess": "Záložka odstraněna",
|
||||||
"ToastBookmarkUpdateFailed": "Aktualizace záložky se nezdařila",
|
"ToastBookmarkUpdateFailed": "Aktualizace záložky se nezdařila",
|
||||||
"ToastBookmarkUpdateSuccess": "Záložka aktualizována",
|
"ToastBookmarkUpdateSuccess": "Záložka aktualizována",
|
||||||
"ToastCachePurgeFailed": "Failed to purge cache",
|
"ToastCachePurgeFailed": "Nepodařilo se vyčistit mezipaměť",
|
||||||
"ToastCachePurgeSuccess": "Cache purged successfully",
|
"ToastCachePurgeSuccess": "Vyrovnávací paměť úspěšně vyčištěna",
|
||||||
"ToastChaptersHaveErrors": "Kapitoly obsahují chyby",
|
"ToastChaptersHaveErrors": "Kapitoly obsahují chyby",
|
||||||
"ToastChaptersMustHaveTitles": "Kapitoly musí mít názvy",
|
"ToastChaptersMustHaveTitles": "Kapitoly musí mít názvy",
|
||||||
"ToastCollectionItemsRemoveFailed": "Nepodařilo se odstranit položky z kolekce",
|
"ToastCollectionItemsRemoveFailed": "Nepodařilo se odstranit položky z kolekce",
|
||||||
@@ -759,9 +770,9 @@
|
|||||||
"ToastCollectionRemoveSuccess": "Kolekce odstraněna",
|
"ToastCollectionRemoveSuccess": "Kolekce odstraněna",
|
||||||
"ToastCollectionUpdateFailed": "Aktualizace kolekce se nezdařila",
|
"ToastCollectionUpdateFailed": "Aktualizace kolekce se nezdařila",
|
||||||
"ToastCollectionUpdateSuccess": "Kolekce aktualizována",
|
"ToastCollectionUpdateSuccess": "Kolekce aktualizována",
|
||||||
"ToastDeleteFileFailed": "Failed to delete file",
|
"ToastDeleteFileFailed": "Nepodařilo se smazat soubor",
|
||||||
"ToastDeleteFileSuccess": "File deleted",
|
"ToastDeleteFileSuccess": "Soubor smazán",
|
||||||
"ToastFailedToLoadData": "Failed to load data",
|
"ToastFailedToLoadData": "Nepodařilo se načíst data",
|
||||||
"ToastItemCoverUpdateFailed": "Aktualizace obálky se nezdařila",
|
"ToastItemCoverUpdateFailed": "Aktualizace obálky se nezdařila",
|
||||||
"ToastItemCoverUpdateSuccess": "Obálka předmětu byl aktualizována",
|
"ToastItemCoverUpdateSuccess": "Obálka předmětu byl aktualizována",
|
||||||
"ToastItemDetailsUpdateFailed": "Nepodařilo se aktualizovat podrobnosti o položce",
|
"ToastItemDetailsUpdateFailed": "Nepodařilo se aktualizovat podrobnosti o položce",
|
||||||
@@ -787,24 +798,24 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Seznam přehrávání aktualizován",
|
"ToastPlaylistUpdateSuccess": "Seznam přehrávání aktualizován",
|
||||||
"ToastPodcastCreateFailed": "Vytvoření podcastu se nezdařilo",
|
"ToastPodcastCreateFailed": "Vytvoření podcastu se nezdařilo",
|
||||||
"ToastPodcastCreateSuccess": "Podcast byl úspěšně vytvořen",
|
"ToastPodcastCreateSuccess": "Podcast byl úspěšně vytvořen",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Nepodařilo se odebrat položku z kolekce",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Položka odstraněna z kolekce",
|
|
||||||
"ToastRSSFeedCloseFailed": "Nepodařilo se zavřít RSS kanál",
|
"ToastRSSFeedCloseFailed": "Nepodařilo se zavřít RSS kanál",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS kanál uzavřen",
|
"ToastRSSFeedCloseSuccess": "RSS kanál uzavřen",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Nepodařilo se odebrat položku z kolekce",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Položka odstraněna z kolekce",
|
||||||
"ToastSendEbookToDeviceFailed": "Odeslání e-knihy do zařízení se nezdařilo",
|
"ToastSendEbookToDeviceFailed": "Odeslání e-knihy do zařízení se nezdařilo",
|
||||||
"ToastSendEbookToDeviceSuccess": "E-kniha odeslána do zařízení \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "E-kniha odeslána do zařízení \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Aktualizace série se nezdařila",
|
"ToastSeriesUpdateFailed": "Aktualizace série se nezdařila",
|
||||||
"ToastSeriesUpdateSuccess": "Aktualizace série byla úspěšná",
|
"ToastSeriesUpdateSuccess": "Aktualizace série byla úspěšná",
|
||||||
"ToastServerSettingsUpdateFailed": "Failed to update server settings",
|
"ToastServerSettingsUpdateFailed": "Nepodařilo se aktualizovat nastavení serveru",
|
||||||
"ToastServerSettingsUpdateSuccess": "Server settings updated",
|
"ToastServerSettingsUpdateSuccess": "Nastavení serveru aktualizováno",
|
||||||
"ToastSessionDeleteFailed": "Nepodařilo se smazat relaci",
|
"ToastSessionDeleteFailed": "Nepodařilo se smazat relaci",
|
||||||
"ToastSessionDeleteSuccess": "Relace smazána",
|
"ToastSessionDeleteSuccess": "Relace smazána",
|
||||||
"ToastSocketConnected": "Socket připojen",
|
"ToastSocketConnected": "Socket připojen",
|
||||||
"ToastSocketDisconnected": "Socket odpojen",
|
"ToastSocketDisconnected": "Socket odpojen",
|
||||||
"ToastSocketFailedToConnect": "Socket se nepodařilo připojit",
|
"ToastSocketFailedToConnect": "Socket se nepodařilo připojit",
|
||||||
"ToastSortingPrefixesEmptyError": "Must have at least 1 sorting prefix",
|
"ToastSortingPrefixesEmptyError": "Musí mít alespoň 1 třídicí předponu",
|
||||||
"ToastSortingPrefixesUpdateFailed": "Failed to update sorting prefixes",
|
"ToastSortingPrefixesUpdateFailed": "Nepodařilo se aktualizovat třídicí předpony",
|
||||||
"ToastSortingPrefixesUpdateSuccess": "Sorting prefixes updated ({0} items)",
|
"ToastSortingPrefixesUpdateSuccess": "Aktualizovány předpony třídění ({0} položek)",
|
||||||
"ToastUserDeleteFailed": "Nepodařilo se smazat uživatele",
|
"ToastUserDeleteFailed": "Nepodařilo se smazat uživatele",
|
||||||
"ToastUserDeleteSuccess": "Uživatel smazán"
|
"ToastUserDeleteSuccess": "Uživatel smazán"
|
||||||
}
|
}
|
||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Anvend",
|
"ButtonApply": "Anvend",
|
||||||
"ButtonApplyChapters": "Anvend kapitler",
|
"ButtonApplyChapters": "Anvend kapitler",
|
||||||
"ButtonAuthors": "Forfattere",
|
"ButtonAuthors": "Forfattere",
|
||||||
|
"ButtonBack": "Tilbage",
|
||||||
"ButtonBrowseForFolder": "Gennemse mappe",
|
"ButtonBrowseForFolder": "Gennemse mappe",
|
||||||
"ButtonCancel": "Annuller",
|
"ButtonCancel": "Annuller",
|
||||||
"ButtonCancelEncode": "Annuller kodning",
|
"ButtonCancelEncode": "Annuller kodning",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Previous Chapter",
|
||||||
"ButtonPurgeAllCache": "Ryd al cache",
|
"ButtonPurgeAllCache": "Ryd al cache",
|
||||||
"ButtonPurgeItemsCache": "Ryd elementcache",
|
"ButtonPurgeItemsCache": "Ryd elementcache",
|
||||||
"ButtonPurgeMediaProgress": "Ryd Medieforløb",
|
|
||||||
"ButtonQueueAddItem": "Tilføj til kø",
|
"ButtonQueueAddItem": "Tilføj til kø",
|
||||||
"ButtonQueueRemoveItem": "Fjern fra kø",
|
"ButtonQueueRemoveItem": "Fjern fra kø",
|
||||||
"ButtonQuickMatch": "Hurtig Match",
|
"ButtonQuickMatch": "Hurtig Match",
|
||||||
|
"ButtonReScan": "Gen-scan",
|
||||||
"ButtonRead": "Læs",
|
"ButtonRead": "Læs",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Fjern fra Fortsæt Lytning",
|
"ButtonRemoveFromContinueListening": "Fjern fra Fortsæt Lytning",
|
||||||
"ButtonRemoveFromContinueReading": "Fjern fra Fortsæt Læsning",
|
"ButtonRemoveFromContinueReading": "Fjern fra Fortsæt Læsning",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Fjern Serie fra Fortsæt Serie",
|
"ButtonRemoveSeriesFromContinueSeries": "Fjern Serie fra Fortsæt Serie",
|
||||||
"ButtonReScan": "Gen-scan",
|
|
||||||
"ButtonReset": "Nulstil",
|
"ButtonReset": "Nulstil",
|
||||||
"ButtonResetToDefault": "Reset to default",
|
"ButtonResetToDefault": "Reset to default",
|
||||||
"ButtonRestore": "Gendan",
|
"ButtonRestore": "Gendan",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Konto",
|
"HeaderAccount": "Konto",
|
||||||
"HeaderAdvanced": "Avanceret",
|
"HeaderAdvanced": "Avanceret",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise Notifikationsindstillinger",
|
"HeaderAppriseNotificationSettings": "Apprise Notifikationsindstillinger",
|
||||||
"HeaderAudiobookTools": "Audiobog Filhåndteringsværktøjer",
|
|
||||||
"HeaderAudioTracks": "Lydspor",
|
"HeaderAudioTracks": "Lydspor",
|
||||||
|
"HeaderAudiobookTools": "Audiobog Filhåndteringsværktøjer",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Sikkerhedskopier",
|
"HeaderBackups": "Sikkerhedskopier",
|
||||||
"HeaderChangePassword": "Skift Adgangskode",
|
"HeaderChangePassword": "Skift Adgangskode",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Samlingselementer",
|
"HeaderCollectionItems": "Samlingselementer",
|
||||||
"HeaderCover": "Omslag",
|
"HeaderCover": "Omslag",
|
||||||
"HeaderCurrentDownloads": "Nuværende Downloads",
|
"HeaderCurrentDownloads": "Nuværende Downloads",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||||
"HeaderDetails": "Detaljer",
|
"HeaderDetails": "Detaljer",
|
||||||
"HeaderDownloadQueue": "Download Kø",
|
"HeaderDownloadQueue": "Download Kø",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Afspilningsliste Elementer",
|
"HeaderPlaylistItems": "Afspilningsliste Elementer",
|
||||||
"HeaderPodcastsToAdd": "Podcasts til Tilføjelse",
|
"HeaderPodcastsToAdd": "Podcasts til Tilføjelse",
|
||||||
"HeaderPreviewCover": "Forhåndsvis Omslag",
|
"HeaderPreviewCover": "Forhåndsvis Omslag",
|
||||||
"HeaderRemoveEpisode": "Fjern Episode",
|
|
||||||
"HeaderRemoveEpisodes": "Fjern {0} Episoder",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS Detaljer",
|
"HeaderRSSFeedGeneral": "RSS Detaljer",
|
||||||
"HeaderRSSFeedIsOpen": "RSS Feed er Åben",
|
"HeaderRSSFeedIsOpen": "RSS Feed er Åben",
|
||||||
"HeaderRSSFeeds": "RSS Feeds",
|
"HeaderRSSFeeds": "RSS Feeds",
|
||||||
|
"HeaderRemoveEpisode": "Fjern Episode",
|
||||||
|
"HeaderRemoveEpisodes": "Fjern {0} Episoder",
|
||||||
"HeaderSavedMediaProgress": "Gemt Medieforløb",
|
"HeaderSavedMediaProgress": "Gemt Medieforløb",
|
||||||
"HeaderSchedule": "Planlæg",
|
"HeaderSchedule": "Planlæg",
|
||||||
"HeaderScheduleLibraryScans": "Planlæg Automatiske Biblioteksscanninger",
|
"HeaderScheduleLibraryScans": "Planlæg Automatiske Biblioteksscanninger",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Gæst",
|
"LabelAccountTypeGuest": "Gæst",
|
||||||
"LabelAccountTypeUser": "Bruger",
|
"LabelAccountTypeUser": "Bruger",
|
||||||
"LabelActivity": "Aktivitet",
|
"LabelActivity": "Aktivitet",
|
||||||
"LabelAdded": "Tilføjet",
|
|
||||||
"LabelAddedAt": "Tilføjet Kl.",
|
|
||||||
"LabelAddToCollection": "Tilføj til Samling",
|
"LabelAddToCollection": "Tilføj til Samling",
|
||||||
"LabelAddToCollectionBatch": "Tilføj {0} Bøger til Samling",
|
"LabelAddToCollectionBatch": "Tilføj {0} Bøger til Samling",
|
||||||
"LabelAddToPlaylist": "Tilføj til Afspilningsliste",
|
"LabelAddToPlaylist": "Tilføj til Afspilningsliste",
|
||||||
"LabelAddToPlaylistBatch": "Tilføj {0} Elementer til Afspilningsliste",
|
"LabelAddToPlaylistBatch": "Tilføj {0} Elementer til Afspilningsliste",
|
||||||
|
"LabelAdded": "Tilføjet",
|
||||||
|
"LabelAddedAt": "Tilføjet Kl.",
|
||||||
"LabelAdminUsersOnly": "Admin users only",
|
"LabelAdminUsersOnly": "Admin users only",
|
||||||
"LabelAll": "Alle",
|
"LabelAll": "Alle",
|
||||||
"LabelAllUsers": "Alle Brugere",
|
"LabelAllUsers": "Alle Brugere",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Ændre Adgangskode",
|
"LabelChangePassword": "Ændre Adgangskode",
|
||||||
"LabelChannels": "Kanaler",
|
"LabelChannels": "Kanaler",
|
||||||
|
"LabelChapterTitle": "Kapitel Titel",
|
||||||
"LabelChapters": "Kapitler",
|
"LabelChapters": "Kapitler",
|
||||||
"LabelChaptersFound": "fundne kapitler",
|
"LabelChaptersFound": "fundne kapitler",
|
||||||
"LabelChapterTitle": "Kapitel Titel",
|
|
||||||
"LabelClickForMoreInfo": "Click for more info",
|
"LabelClickForMoreInfo": "Click for more info",
|
||||||
"LabelClosePlayer": "Luk afspiller",
|
"LabelClosePlayer": "Luk afspiller",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Rediger",
|
"LabelEdit": "Rediger",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "Fra Adresse",
|
"LabelEmailSettingsFromAddress": "Fra Adresse",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Sikker",
|
"LabelEmailSettingsSecure": "Sikker",
|
||||||
"LabelEmailSettingsSecureHelp": "Hvis sandt, vil forbindelsen bruge TLS ved tilslutning til serveren. Hvis falsk, bruges TLS, hvis serveren understøtter STARTTLS-udvidelsen. I de fleste tilfælde skal denne værdi sættes til sandt, hvis du tilslutter til port 465. Til port 587 eller 25 skal du holde det falsk. (fra nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Hvis sandt, vil forbindelsen bruge TLS ved tilslutning til serveren. Hvis falsk, bruges TLS, hvis serveren understøtter STARTTLS-udvidelsen. I de fleste tilfælde skal denne værdi sættes til sandt, hvis du tilslutter til port 465. Til port 587 eller 25 skal du holde det falsk. (fra nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test Adresse",
|
"LabelEmailSettingsTestAddress": "Test Adresse",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Mappe",
|
"LabelFolder": "Mappe",
|
||||||
"LabelFolders": "Mapper",
|
"LabelFolders": "Mapper",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "Fontfamilie",
|
"LabelFontFamily": "Fontfamilie",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Skriftstørrelse",
|
"LabelFontScale": "Skriftstørrelse",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Time",
|
"LabelHour": "Time",
|
||||||
"LabelIcon": "Ikon",
|
"LabelIcon": "Ikon",
|
||||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
"LabelImageURLFromTheWeb": "Image URL from the web",
|
||||||
|
"LabelInProgress": "I gang",
|
||||||
"LabelIncludeInTracklist": "Inkluder i afspilningsliste",
|
"LabelIncludeInTracklist": "Inkluder i afspilningsliste",
|
||||||
"LabelIncomplete": "Ufuldstændig",
|
"LabelIncomplete": "Ufuldstændig",
|
||||||
"LabelInProgress": "I gang",
|
|
||||||
"LabelInterval": "Interval",
|
"LabelInterval": "Interval",
|
||||||
"LabelIntervalCustomDailyWeekly": "Tilpasset dagligt/ugentligt",
|
"LabelIntervalCustomDailyWeekly": "Tilpasset dagligt/ugentligt",
|
||||||
"LabelIntervalEvery12Hours": "Hver 12. time",
|
"LabelIntervalEvery12Hours": "Hver 12. time",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Element",
|
"LabelItem": "Element",
|
||||||
"LabelLanguage": "Sprog",
|
"LabelLanguage": "Sprog",
|
||||||
"LabelLanguageDefaultServer": "Standard server sprog",
|
"LabelLanguageDefaultServer": "Standard server sprog",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Senest tilføjede bog",
|
"LabelLastBookAdded": "Senest tilføjede bog",
|
||||||
"LabelLastBookUpdated": "Senest opdaterede bog",
|
"LabelLastBookUpdated": "Senest opdaterede bog",
|
||||||
"LabelLastSeen": "Sidst set",
|
"LabelLastSeen": "Sidst set",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Mindre",
|
"LabelLess": "Mindre",
|
||||||
"LabelLibrariesAccessibleToUser": "Biblioteker tilgængelige for bruger",
|
"LabelLibrariesAccessibleToUser": "Biblioteker tilgængelige for bruger",
|
||||||
"LabelLibrary": "Bibliotek",
|
"LabelLibrary": "Bibliotek",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Bibliotekselement",
|
"LabelLibraryItem": "Bibliotekselement",
|
||||||
"LabelLibraryName": "Biblioteksnavn",
|
"LabelLibraryName": "Biblioteksnavn",
|
||||||
"LabelLimit": "Grænse",
|
"LabelLimit": "Grænse",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||||
"LabelMediaPlayer": "Medieafspiller",
|
"LabelMediaPlayer": "Medieafspiller",
|
||||||
"LabelMediaType": "Medietype",
|
"LabelMediaType": "Medietype",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Metadataudbyder",
|
|
||||||
"LabelMetaTag": "Meta-tag",
|
"LabelMetaTag": "Meta-tag",
|
||||||
"LabelMetaTags": "Meta-tags",
|
"LabelMetaTags": "Meta-tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||||
|
"LabelMetadataProvider": "Metadataudbyder",
|
||||||
"LabelMinute": "Minut",
|
"LabelMinute": "Minut",
|
||||||
"LabelMissing": "Mangler",
|
"LabelMissing": "Mangler",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Fortæller",
|
"LabelNarrator": "Fortæller",
|
||||||
"LabelNarrators": "Fortællere",
|
"LabelNarrators": "Fortællere",
|
||||||
"LabelNew": "Ny",
|
"LabelNew": "Ny",
|
||||||
|
"LabelNewPassword": "Nyt kodeord",
|
||||||
"LabelNewestAuthors": "Nyeste forfattere",
|
"LabelNewestAuthors": "Nyeste forfattere",
|
||||||
"LabelNewestEpisodes": "Nyeste episoder",
|
"LabelNewestEpisodes": "Nyeste episoder",
|
||||||
"LabelNewPassword": "Nyt kodeord",
|
|
||||||
"LabelNextBackupDate": "Næste sikkerhedskopi dato",
|
"LabelNextBackupDate": "Næste sikkerhedskopi dato",
|
||||||
"LabelNextScheduledRun": "Næste planlagte kørsel",
|
"LabelNextScheduledRun": "Næste planlagte kørsel",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "Ingen episoder valgt",
|
"LabelNoEpisodesSelected": "Ingen episoder valgt",
|
||||||
"LabelNotes": "Noter",
|
|
||||||
"LabelNotFinished": "Ikke færdig",
|
"LabelNotFinished": "Ikke færdig",
|
||||||
|
"LabelNotStarted": "Ikke påbegyndt",
|
||||||
|
"LabelNotes": "Noter",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL'er",
|
"LabelNotificationAppriseURL": "Apprise URL'er",
|
||||||
"LabelNotificationAvailableVariables": "Tilgængelige variabler",
|
"LabelNotificationAvailableVariables": "Tilgængelige variabler",
|
||||||
"LabelNotificationBodyTemplate": "Kropsskabelon",
|
"LabelNotificationBodyTemplate": "Kropsskabelon",
|
||||||
"LabelNotificationEvent": "Meddelelseshændelse",
|
"LabelNotificationEvent": "Meddelelseshændelse",
|
||||||
|
"LabelNotificationTitleTemplate": "Titelskabelon",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Maksimalt antal mislykkede forsøg",
|
"LabelNotificationsMaxFailedAttempts": "Maksimalt antal mislykkede forsøg",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Meddelelser deaktiveres, når de mislykkes med at sende så mange gange",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Meddelelser deaktiveres, når de mislykkes med at sende så mange gange",
|
||||||
"LabelNotificationsMaxQueueSize": "Maksimal køstørrelse for meddelelseshændelser",
|
"LabelNotificationsMaxQueueSize": "Maksimal køstørrelse for meddelelseshændelser",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Hændelser begrænses til at udløse en gang pr. sekund. Hændelser ignoreres, hvis køen er fyldt. Dette forhindrer meddelelsesspam.",
|
"LabelNotificationsMaxQueueSizeHelp": "Hændelser begrænses til at udløse en gang pr. sekund. Hændelser ignoreres, hvis køen er fyldt. Dette forhindrer meddelelsesspam.",
|
||||||
"LabelNotificationTitleTemplate": "Titelskabelon",
|
|
||||||
"LabelNotStarted": "Ikke påbegyndt",
|
|
||||||
"LabelNumberOfBooks": "Antal bøger",
|
"LabelNumberOfBooks": "Antal bøger",
|
||||||
"LabelNumberOfEpisodes": "Antal episoder",
|
"LabelNumberOfEpisodes": "Antal episoder",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Kan uploade",
|
"LabelPermissionsUpload": "Kan uploade",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Foto sti/URL",
|
"LabelPhotoPathURL": "Foto sti/URL",
|
||||||
"LabelPlaylists": "Afspilningslister",
|
|
||||||
"LabelPlayMethod": "Afspilningsmetode",
|
"LabelPlayMethod": "Afspilningsmetode",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Afspilningslister",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Podcast søgeområde",
|
"LabelPodcastSearchRegion": "Podcast søgeområde",
|
||||||
"LabelPodcastType": "Podcast type",
|
"LabelPodcastType": "Podcast type",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Præfikser der skal ignoreres (skal ikke skelne mellem store og små bogstaver)",
|
"LabelPrefixesToIgnore": "Præfikser der skal ignoreres (skal ikke skelne mellem store og små bogstaver)",
|
||||||
"LabelPreventIndexing": "Forhindrer, at dit feed bliver indekseret af iTunes og Google podcastkataloger",
|
"LabelPreventIndexing": "Forhindrer, at dit feed bliver indekseret af iTunes og Google podcastkataloger",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Fremskridt",
|
"LabelProgress": "Fremskridt",
|
||||||
"LabelProvider": "Udbyder",
|
"LabelProvider": "Udbyder",
|
||||||
"LabelPubDate": "Udgivelsesdato",
|
"LabelPubDate": "Udgivelsesdato",
|
||||||
"LabelPublisher": "Forlag",
|
|
||||||
"LabelPublishYear": "Udgivelsesår",
|
"LabelPublishYear": "Udgivelsesår",
|
||||||
"LabelRead": "Læst",
|
"LabelPublisher": "Forlag",
|
||||||
"LabelReadAgain": "Læs igen",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Læs e-bog uden at følge fremskridt",
|
|
||||||
"LabelRecentlyAdded": "Senest tilføjet",
|
|
||||||
"LabelRecentSeries": "Seneste serie",
|
|
||||||
"LabelRecommended": "Anbefalet",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Region",
|
|
||||||
"LabelReleaseDate": "Udgivelsesdato",
|
|
||||||
"LabelRemoveCover": "Fjern omslag",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Brugerdefineret ejerens e-mail",
|
"LabelRSSFeedCustomOwnerEmail": "Brugerdefineret ejerens e-mail",
|
||||||
"LabelRSSFeedCustomOwnerName": "Brugerdefineret ejerens navn",
|
"LabelRSSFeedCustomOwnerName": "Brugerdefineret ejerens navn",
|
||||||
"LabelRSSFeedOpen": "Åben RSS-feed",
|
"LabelRSSFeedOpen": "Åben RSS-feed",
|
||||||
"LabelRSSFeedPreventIndexing": "Forhindrer indeksering",
|
"LabelRSSFeedPreventIndexing": "Forhindrer indeksering",
|
||||||
"LabelRSSFeedSlug": "RSS-feed-slug",
|
"LabelRSSFeedSlug": "RSS-feed-slug",
|
||||||
"LabelRSSFeedURL": "RSS-feed-URL",
|
"LabelRSSFeedURL": "RSS-feed-URL",
|
||||||
|
"LabelRead": "Læst",
|
||||||
|
"LabelReadAgain": "Læs igen",
|
||||||
|
"LabelReadEbookWithoutProgress": "Læs e-bog uden at følge fremskridt",
|
||||||
|
"LabelRecentSeries": "Seneste serie",
|
||||||
|
"LabelRecentlyAdded": "Senest tilføjet",
|
||||||
|
"LabelRecommended": "Anbefalet",
|
||||||
|
"LabelRedo": "Redo",
|
||||||
|
"LabelRegion": "Region",
|
||||||
|
"LabelReleaseDate": "Udgivelsesdato",
|
||||||
|
"LabelRemoveCover": "Fjern omslag",
|
||||||
|
"LabelRowsPerPage": "Rows per page",
|
||||||
"LabelSearchTerm": "Søgeterm",
|
"LabelSearchTerm": "Søgeterm",
|
||||||
"LabelSearchTitle": "Søg efter titel",
|
"LabelSearchTitle": "Søg efter titel",
|
||||||
"LabelSearchTitleOrASIN": "Søg efter titel eller ASIN",
|
"LabelSearchTitleOrASIN": "Søg efter titel eller ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Søvntimer",
|
"LabelSleepTimer": "Søvntimer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Start",
|
"LabelStart": "Start",
|
||||||
|
"LabelStartTime": "Starttid",
|
||||||
"LabelStarted": "Startet",
|
"LabelStarted": "Startet",
|
||||||
"LabelStartedAt": "Startet klokken",
|
"LabelStartedAt": "Startet klokken",
|
||||||
"LabelStartTime": "Starttid",
|
|
||||||
"LabelStatsAudioTracks": "Lydspor",
|
"LabelStatsAudioTracks": "Lydspor",
|
||||||
"LabelStatsAuthors": "Forfattere",
|
"LabelStatsAuthors": "Forfattere",
|
||||||
"LabelStatsBestDay": "Bedste dag",
|
"LabelStatsBestDay": "Bedste dag",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Ukendt",
|
"LabelUnknown": "Ukendt",
|
||||||
"LabelUpdateCover": "Opdater omslag",
|
"LabelUpdateCover": "Opdater omslag",
|
||||||
"LabelUpdateCoverHelp": "Tillad overskrivning af eksisterende omslag for de valgte bøger, når der findes en match",
|
"LabelUpdateCoverHelp": "Tillad overskrivning af eksisterende omslag for de valgte bøger, når der findes en match",
|
||||||
"LabelUpdatedAt": "Opdateret ved",
|
|
||||||
"LabelUpdateDetails": "Opdater detaljer",
|
"LabelUpdateDetails": "Opdater detaljer",
|
||||||
"LabelUpdateDetailsHelp": "Tillad overskrivning af eksisterende detaljer for de valgte bøger, når der findes en match",
|
"LabelUpdateDetailsHelp": "Tillad overskrivning af eksisterende detaljer for de valgte bøger, når der findes en match",
|
||||||
|
"LabelUpdatedAt": "Opdateret ved",
|
||||||
"LabelUploaderDragAndDrop": "Træk og slip filer eller mapper",
|
"LabelUploaderDragAndDrop": "Træk og slip filer eller mapper",
|
||||||
"LabelUploaderDropFiles": "Smid filer",
|
"LabelUploaderDropFiles": "Smid filer",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Backups inkluderer brugere, brugerfremskridt, biblioteksvareoplysninger, serverindstillinger og billeder gemt i <code>/metadata/items</code> og <code>/metadata/authors</code>. Backups inkluderer <strong>ikke</strong> nogen filer gemt i dine biblioteksmapper.",
|
"MessageBackupsDescription": "Backups inkluderer brugere, brugerfremskridt, biblioteksvareoplysninger, serverindstillinger og billeder gemt i <code>/metadata/items</code> og <code>/metadata/authors</code>. Backups inkluderer <strong>ikke</strong> nogen filer gemt i dine biblioteksmapper.",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match vil forsøge at tilføje manglende omslag og metadata til de valgte elementer. Aktivér indstillingerne nedenfor for at tillade Quick Match at overskrive eksisterende omslag og/eller metadata.",
|
"MessageBatchQuickMatchDescription": "Quick Match vil forsøge at tilføje manglende omslag og metadata til de valgte elementer. Aktivér indstillingerne nedenfor for at tillade Quick Match at overskrive eksisterende omslag og/eller metadata.",
|
||||||
"MessageBookshelfNoCollections": "Du har ikke oprettet nogen samlinger endnu",
|
"MessageBookshelfNoCollections": "Du har ikke oprettet nogen samlinger endnu",
|
||||||
"MessageBookshelfNoResultsForFilter": "Ingen resultater for filter \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Ingen RSS-feeds er åbne",
|
"MessageBookshelfNoRSSFeeds": "Ingen RSS-feeds er åbne",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Ingen resultater for filter \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "Du har ingen serier",
|
"MessageBookshelfNoSeries": "Du har ingen serier",
|
||||||
"MessageChapterEndIsAfter": "Kapitelslutningen er efter slutningen af din lydbog",
|
"MessageChapterEndIsAfter": "Kapitelslutningen er efter slutningen af din lydbog",
|
||||||
"MessageChapterErrorFirstNotZero": "Første kapitel skal starte ved 0",
|
"MessageChapterErrorFirstNotZero": "Første kapitel skal starte ved 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Er du sikker på, at du vil markere alle bøger i denne serie som afsluttet?",
|
"MessageConfirmMarkSeriesFinished": "Er du sikker på, at du vil markere alle bøger i denne serie som afsluttet?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Er du sikker på, at du vil markere alle bøger i denne serie som ikke afsluttet?",
|
"MessageConfirmMarkSeriesNotFinished": "Er du sikker på, at du vil markere alle bøger i denne serie som ikke afsluttet?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||||
"MessageConfirmRemoveAllChapters": "Er du sikker på, at du vil fjerne alle kapitler?",
|
"MessageConfirmRemoveAllChapters": "Er du sikker på, at du vil fjerne alle kapitler?",
|
||||||
"MessageConfirmRemoveAuthor": "Er du sikker på, at du vil fjerne forfatteren \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Er du sikker på, at du vil fjerne forfatteren \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Er du sikker på, at du vil fjerne samlingen \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Er du sikker på, at du vil fjerne samlingen \"{0}\"?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Er du sikker på, at du vil omdøbe tag \"{0}\" til \"{1}\" for alle elementer?",
|
"MessageConfirmRenameTag": "Er du sikker på, at du vil omdøbe tag \"{0}\" til \"{1}\" for alle elementer?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Bemærk: Dette tag findes allerede, så de vil blive fusioneret.",
|
"MessageConfirmRenameTagMergeNote": "Bemærk: Dette tag findes allerede, så de vil blive fusioneret.",
|
||||||
"MessageConfirmRenameTagWarning": "Advarsel! Et lignende tag med en anden skrivemåde eksisterer allerede \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Advarsel! Et lignende tag med en anden skrivemåde eksisterer allerede \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Er du sikker på, at du vil sende {0} e-bog \"{1}\" til enhed \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Er du sikker på, at du vil sende {0} e-bog \"{1}\" til enhed \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Downloader episode",
|
"MessageDownloadingEpisode": "Downloader episode",
|
||||||
"MessageDragFilesIntoTrackOrder": "Træk filer ind i korrekt spororden",
|
"MessageDragFilesIntoTrackOrder": "Træk filer ind i korrekt spororden",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Ingen serier",
|
"MessageNoSeries": "Ingen serier",
|
||||||
"MessageNoTags": "Ingen tags",
|
"MessageNoTags": "Ingen tags",
|
||||||
"MessageNoTasksRunning": "Ingen opgaver kører",
|
"MessageNoTasksRunning": "Ingen opgaver kører",
|
||||||
"MessageNotYetImplemented": "Endnu ikke implementeret",
|
|
||||||
"MessageNoUpdateNecessary": "Ingen opdatering nødvendig",
|
"MessageNoUpdateNecessary": "Ingen opdatering nødvendig",
|
||||||
"MessageNoUpdatesWereNecessary": "Ingen opdateringer var nødvendige",
|
"MessageNoUpdatesWereNecessary": "Ingen opdateringer var nødvendige",
|
||||||
"MessageNoUserPlaylists": "Du har ingen afspilningslister",
|
"MessageNoUserPlaylists": "Du har ingen afspilningslister",
|
||||||
|
"MessageNotYetImplemented": "Endnu ikke implementeret",
|
||||||
"MessageOr": "eller",
|
"MessageOr": "eller",
|
||||||
"MessagePauseChapter": "Pause kapitelafspilning",
|
"MessagePauseChapter": "Pause kapitelafspilning",
|
||||||
"MessagePlayChapter": "Lyt til begyndelsen af kapitlet",
|
"MessagePlayChapter": "Lyt til begyndelsen af kapitlet",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Afspilningsliste opdateret",
|
"ToastPlaylistUpdateSuccess": "Afspilningsliste opdateret",
|
||||||
"ToastPodcastCreateFailed": "Mislykkedes oprettelse af podcast",
|
"ToastPodcastCreateFailed": "Mislykkedes oprettelse af podcast",
|
||||||
"ToastPodcastCreateSuccess": "Podcast oprettet med succes",
|
"ToastPodcastCreateSuccess": "Podcast oprettet med succes",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Mislykkedes fjernelse af element fra samling",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Element fjernet fra samling",
|
|
||||||
"ToastRSSFeedCloseFailed": "Mislykkedes lukning af RSS-feed",
|
"ToastRSSFeedCloseFailed": "Mislykkedes lukning af RSS-feed",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS-feed lukket",
|
"ToastRSSFeedCloseSuccess": "RSS-feed lukket",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Mislykkedes fjernelse af element fra samling",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Element fjernet fra samling",
|
||||||
"ToastSendEbookToDeviceFailed": "Mislykkedes afsendelse af e-bog til enhed",
|
"ToastSendEbookToDeviceFailed": "Mislykkedes afsendelse af e-bog til enhed",
|
||||||
"ToastSendEbookToDeviceSuccess": "E-bog afsendt til enhed \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "E-bog afsendt til enhed \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Mislykkedes opdatering af serie",
|
"ToastSeriesUpdateFailed": "Mislykkedes opdatering af serie",
|
||||||
|
|||||||
+78
-54
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Übernehmen",
|
"ButtonApply": "Übernehmen",
|
||||||
"ButtonApplyChapters": "Kapitel anwenden",
|
"ButtonApplyChapters": "Kapitel anwenden",
|
||||||
"ButtonAuthors": "Autoren",
|
"ButtonAuthors": "Autoren",
|
||||||
|
"ButtonBack": "Zurück",
|
||||||
"ButtonBrowseForFolder": "Ordnersuche",
|
"ButtonBrowseForFolder": "Ordnersuche",
|
||||||
"ButtonCancel": "Abbrechen",
|
"ButtonCancel": "Abbrechen",
|
||||||
"ButtonCancelEncode": "Codierung abbrechen",
|
"ButtonCancelEncode": "Codierung abbrechen",
|
||||||
@@ -34,7 +35,7 @@
|
|||||||
"ButtonIssues": "Probleme",
|
"ButtonIssues": "Probleme",
|
||||||
"ButtonJumpBackward": "Zurück springen",
|
"ButtonJumpBackward": "Zurück springen",
|
||||||
"ButtonJumpForward": "Vorwärts springen",
|
"ButtonJumpForward": "Vorwärts springen",
|
||||||
"ButtonLatest": "Neuste",
|
"ButtonLatest": "Neueste",
|
||||||
"ButtonLibrary": "Bibliothek",
|
"ButtonLibrary": "Bibliothek",
|
||||||
"ButtonLogout": "Abmelden",
|
"ButtonLogout": "Abmelden",
|
||||||
"ButtonLookup": "Online-Suche",
|
"ButtonLookup": "Online-Suche",
|
||||||
@@ -56,21 +57,20 @@
|
|||||||
"ButtonPreviousChapter": "Vorheriges Kapitel",
|
"ButtonPreviousChapter": "Vorheriges Kapitel",
|
||||||
"ButtonPurgeAllCache": "Cache leeren",
|
"ButtonPurgeAllCache": "Cache leeren",
|
||||||
"ButtonPurgeItemsCache": "Lösche Medien-Cache",
|
"ButtonPurgeItemsCache": "Lösche Medien-Cache",
|
||||||
"ButtonPurgeMediaProgress": "Lösche Hörfortschritte",
|
|
||||||
"ButtonQueueAddItem": "Zur Warteschlange hinzufügen",
|
"ButtonQueueAddItem": "Zur Warteschlange hinzufügen",
|
||||||
"ButtonQueueRemoveItem": "Aus der Warteschlange entfernen",
|
"ButtonQueueRemoveItem": "Aus der Warteschlange entfernen",
|
||||||
"ButtonQuickMatch": "Schnellabgleich",
|
"ButtonQuickMatch": "Schnellabgleich",
|
||||||
|
"ButtonReScan": "Neu scannen",
|
||||||
"ButtonRead": "Lesen",
|
"ButtonRead": "Lesen",
|
||||||
"ButtonReadLess": "Weniger anzeigen",
|
"ButtonReadLess": "Weniger anzeigen",
|
||||||
"ButtonReadMore": "Mehr anzeigen",
|
"ButtonReadMore": "Mehr anzeigen",
|
||||||
"ButtonRefresh": "Neu Laden",
|
"ButtonRefresh": "Neu Laden",
|
||||||
"ButtonRemove": "Löschen",
|
"ButtonRemove": "Entfernen",
|
||||||
"ButtonRemoveAll": "Alles löschen",
|
"ButtonRemoveAll": "Alles löschen",
|
||||||
"ButtonRemoveAllLibraryItems": "Lösche alle Bibliothekseinträge",
|
"ButtonRemoveAllLibraryItems": "Lösche alle Bibliothekseinträge",
|
||||||
"ButtonRemoveFromContinueListening": "Lösche den Eintrag aus der Fortsetzungsliste",
|
"ButtonRemoveFromContinueListening": "Lösche den Eintrag aus der Fortsetzungsliste",
|
||||||
"ButtonRemoveFromContinueReading": "Lösche die Serie aus der Lesefortsetzungsliste",
|
"ButtonRemoveFromContinueReading": "Lösche die Serie aus der Lesefortsetzungsliste",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Lösche die Serie aus der Serienfortsetzungsliste",
|
"ButtonRemoveSeriesFromContinueSeries": "Lösche die Serie aus der Serienfortsetzungsliste",
|
||||||
"ButtonReScan": "Neu scannen",
|
|
||||||
"ButtonReset": "Zurücksetzen",
|
"ButtonReset": "Zurücksetzen",
|
||||||
"ButtonResetToDefault": "Zurücksetzen auf Standard",
|
"ButtonResetToDefault": "Zurücksetzen auf Standard",
|
||||||
"ButtonRestore": "Wiederherstellen",
|
"ButtonRestore": "Wiederherstellen",
|
||||||
@@ -104,26 +104,27 @@
|
|||||||
"HeaderAccount": "Konto",
|
"HeaderAccount": "Konto",
|
||||||
"HeaderAdvanced": "Erweitert",
|
"HeaderAdvanced": "Erweitert",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise Benachrichtigungseinstellungen",
|
"HeaderAppriseNotificationSettings": "Apprise Benachrichtigungseinstellungen",
|
||||||
"HeaderAudiobookTools": "Hörbuch-Dateiverwaltungstools",
|
|
||||||
"HeaderAudioTracks": "Audiodateien",
|
"HeaderAudioTracks": "Audiodateien",
|
||||||
|
"HeaderAudiobookTools": "Hörbuch-Dateiverwaltungstools",
|
||||||
"HeaderAuthentication": "Authentifizierung",
|
"HeaderAuthentication": "Authentifizierung",
|
||||||
"HeaderBackups": "Sicherungen",
|
"HeaderBackups": "Sicherungen",
|
||||||
"HeaderChangePassword": "Passwort ändern",
|
"HeaderChangePassword": "Passwort ändern",
|
||||||
"HeaderChapters": "Kapitel",
|
"HeaderChapters": "Kapitel",
|
||||||
"HeaderChooseAFolder": "Wähle einen Ordner",
|
"HeaderChooseAFolder": "Wähle einen Ordner",
|
||||||
"HeaderCollection": "Sammlungen",
|
"HeaderCollection": "Sammlung",
|
||||||
"HeaderCollectionItems": "Sammlungseinträge",
|
"HeaderCollectionItems": "Sammlungseinträge",
|
||||||
"HeaderCover": "Titelbild",
|
"HeaderCover": "Titelbild",
|
||||||
"HeaderCurrentDownloads": "Aktuelle Downloads",
|
"HeaderCurrentDownloads": "Aktuelle Downloads",
|
||||||
|
"HeaderCustomMessageOnLogin": "Benutzerdefinierte Nachricht für den Login",
|
||||||
"HeaderCustomMetadataProviders": "Benutzerdefinierte Metadata Anbieter",
|
"HeaderCustomMetadataProviders": "Benutzerdefinierte Metadata Anbieter",
|
||||||
"HeaderDetails": "Details",
|
"HeaderDetails": "Details",
|
||||||
"HeaderDownloadQueue": "Download Warteschlange",
|
"HeaderDownloadQueue": "Download Warteschlange",
|
||||||
"HeaderEbookFiles": "E-Book Dateien",
|
"HeaderEbookFiles": "E-Buch-Dateien",
|
||||||
"HeaderEmail": "Email",
|
"HeaderEmail": "Email",
|
||||||
"HeaderEmailSettings": "Email Einstellungen",
|
"HeaderEmailSettings": "Email Einstellungen",
|
||||||
"HeaderEpisodes": "Episoden",
|
"HeaderEpisodes": "Episoden",
|
||||||
"HeaderEreaderDevices": "E-Reader Geräte",
|
"HeaderEreaderDevices": "E-Reader Geräte",
|
||||||
"HeaderEreaderSettings": "E-Reader Einstellungen",
|
"HeaderEreaderSettings": "Einstellungen zum Lesen",
|
||||||
"HeaderFiles": "Dateien",
|
"HeaderFiles": "Dateien",
|
||||||
"HeaderFindChapters": "Kapitel suchen",
|
"HeaderFindChapters": "Kapitel suchen",
|
||||||
"HeaderIgnoredFiles": "Ignorierte Dateien",
|
"HeaderIgnoredFiles": "Ignorierte Dateien",
|
||||||
@@ -141,7 +142,7 @@
|
|||||||
"HeaderManageGenres": "Kategorien verwalten",
|
"HeaderManageGenres": "Kategorien verwalten",
|
||||||
"HeaderManageTags": "Tags verwalten",
|
"HeaderManageTags": "Tags verwalten",
|
||||||
"HeaderMapDetails": "Stapelverarbeitung",
|
"HeaderMapDetails": "Stapelverarbeitung",
|
||||||
"HeaderMatch": "Metadaten",
|
"HeaderMatch": "Treffer",
|
||||||
"HeaderMetadataOrderOfPrecedence": "Metadaten Rangfolge",
|
"HeaderMetadataOrderOfPrecedence": "Metadaten Rangfolge",
|
||||||
"HeaderMetadataToEmbed": "Einzubettende Metadaten",
|
"HeaderMetadataToEmbed": "Einzubettende Metadaten",
|
||||||
"HeaderNewAccount": "Neues Konto",
|
"HeaderNewAccount": "Neues Konto",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Einträge in der Wiedergabeliste",
|
"HeaderPlaylistItems": "Einträge in der Wiedergabeliste",
|
||||||
"HeaderPodcastsToAdd": "Podcasts zum Hinzufügen",
|
"HeaderPodcastsToAdd": "Podcasts zum Hinzufügen",
|
||||||
"HeaderPreviewCover": "Vorschau Titelbild",
|
"HeaderPreviewCover": "Vorschau Titelbild",
|
||||||
"HeaderRemoveEpisode": "Episode löschen",
|
|
||||||
"HeaderRemoveEpisodes": "Lösche {0} Episoden",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS Details",
|
"HeaderRSSFeedGeneral": "RSS Details",
|
||||||
"HeaderRSSFeedIsOpen": "RSS-Feed ist geöffnet",
|
"HeaderRSSFeedIsOpen": "RSS-Feed ist geöffnet",
|
||||||
"HeaderRSSFeeds": "RSS-Feeds",
|
"HeaderRSSFeeds": "RSS-Feeds",
|
||||||
|
"HeaderRemoveEpisode": "Episode löschen",
|
||||||
|
"HeaderRemoveEpisodes": "Lösche {0} Episoden",
|
||||||
"HeaderSavedMediaProgress": "Gespeicherte Hörfortschritte",
|
"HeaderSavedMediaProgress": "Gespeicherte Hörfortschritte",
|
||||||
"HeaderSchedule": "Zeitplan",
|
"HeaderSchedule": "Zeitplan",
|
||||||
"HeaderScheduleLibraryScans": "Automatische Bibliotheksscans",
|
"HeaderScheduleLibraryScans": "Automatische Bibliotheksscans",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Gast",
|
"LabelAccountTypeGuest": "Gast",
|
||||||
"LabelAccountTypeUser": "Benutzer",
|
"LabelAccountTypeUser": "Benutzer",
|
||||||
"LabelActivity": "Aktivitäten",
|
"LabelActivity": "Aktivitäten",
|
||||||
"LabelAdded": "Hinzugefügt",
|
|
||||||
"LabelAddedAt": "Hinzugefügt am",
|
|
||||||
"LabelAddToCollection": "Zur Sammlung hinzufügen",
|
"LabelAddToCollection": "Zur Sammlung hinzufügen",
|
||||||
"LabelAddToCollectionBatch": "Füge {0} Hörbüch(er)/Podcast(s) der Sammlung hinzu",
|
"LabelAddToCollectionBatch": "Füge {0} Hörbüch(er)/Podcast(s) der Sammlung hinzu",
|
||||||
"LabelAddToPlaylist": "Zur Wiedergabeliste hinzufügen",
|
"LabelAddToPlaylist": "Zur Wiedergabeliste hinzufügen",
|
||||||
"LabelAddToPlaylistBatch": "Füge {0} Hörbüch(er)/Podcast(s) der Wiedergabeliste hinzu",
|
"LabelAddToPlaylistBatch": "Füge {0} Hörbüch(er)/Podcast(s) der Wiedergabeliste hinzu",
|
||||||
|
"LabelAdded": "Hinzugefügt",
|
||||||
|
"LabelAddedAt": "Hinzugefügt am",
|
||||||
"LabelAdminUsersOnly": "Nur Admin Benutzer",
|
"LabelAdminUsersOnly": "Nur Admin Benutzer",
|
||||||
"LabelAll": "Alle",
|
"LabelAll": "Alle",
|
||||||
"LabelAllUsers": "Alle Benutzer",
|
"LabelAllUsers": "Alle Benutzer",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "von {0}",
|
"LabelByAuthor": "von {0}",
|
||||||
"LabelChangePassword": "Passwort ändern",
|
"LabelChangePassword": "Passwort ändern",
|
||||||
"LabelChannels": "Kanäle",
|
"LabelChannels": "Kanäle",
|
||||||
|
"LabelChapterTitle": "Kapitelüberschrift",
|
||||||
"LabelChapters": "Kapitel",
|
"LabelChapters": "Kapitel",
|
||||||
"LabelChaptersFound": "Gefundene Kapitel",
|
"LabelChaptersFound": "Gefundene Kapitel",
|
||||||
"LabelChapterTitle": "Kapitelüberschrift",
|
|
||||||
"LabelClickForMoreInfo": "Klicken für mehr Informationen",
|
"LabelClickForMoreInfo": "Klicken für mehr Informationen",
|
||||||
"LabelClosePlayer": "Player schließen",
|
"LabelClosePlayer": "Player schließen",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -255,8 +256,9 @@
|
|||||||
"LabelCronExpression": "Cron-Ausdruck",
|
"LabelCronExpression": "Cron-Ausdruck",
|
||||||
"LabelCurrent": "Aktuell",
|
"LabelCurrent": "Aktuell",
|
||||||
"LabelCurrently": "Aktuell:",
|
"LabelCurrently": "Aktuell:",
|
||||||
"LabelCustomCronExpression": "Benutzerdefinierter Cron-Ausdruck",
|
"LabelCustomCronExpression": "Benutzerdefinierter Cron-Ausdruck:",
|
||||||
"LabelDatetime": "Datum & Uhrzeit",
|
"LabelDatetime": "Datum & Uhrzeit",
|
||||||
|
"LabelDays": "Tage",
|
||||||
"LabelDeleteFromFileSystemCheckbox": "Löschen von der Festplatte + Datenbank (deaktivieren um nur aus der Datenbank zu löschen)",
|
"LabelDeleteFromFileSystemCheckbox": "Löschen von der Festplatte + Datenbank (deaktivieren um nur aus der Datenbank zu löschen)",
|
||||||
"LabelDescription": "Beschreibung",
|
"LabelDescription": "Beschreibung",
|
||||||
"LabelDeselectAll": "Alles abwählen",
|
"LabelDeselectAll": "Alles abwählen",
|
||||||
@@ -274,11 +276,13 @@
|
|||||||
"LabelDurationComparisonLonger": "({0} länger)",
|
"LabelDurationComparisonLonger": "({0} länger)",
|
||||||
"LabelDurationComparisonShorter": "({0} kürzer)",
|
"LabelDurationComparisonShorter": "({0} kürzer)",
|
||||||
"LabelDurationFound": "Gefundene Laufzeit:",
|
"LabelDurationFound": "Gefundene Laufzeit:",
|
||||||
"LabelEbook": "E-Book",
|
"LabelEbook": "E-Buch",
|
||||||
"LabelEbooks": "E-Books",
|
"LabelEbooks": "E-Bücher",
|
||||||
"LabelEdit": "Bearbeiten",
|
"LabelEdit": "Bearbeiten",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "Von Adresse",
|
"LabelEmailSettingsFromAddress": "Von Adresse",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Nicht autorisierte Zertifikate ablehnen",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Durch das Deaktivieren der SSL-Zertifikatsüberprüfung kann deine Verbindung Sicherheitsrisiken wie Man-in-the-Middle-Angriffen ausgesetzt sein. Deaktiviere diese Option nur, wenn due die Auswirkungen verstehst und dem Mailserver vertraust, mit dem eine Verbindung hergestellt wird.",
|
||||||
"LabelEmailSettingsSecure": "Sicher",
|
"LabelEmailSettingsSecure": "Sicher",
|
||||||
"LabelEmailSettingsSecureHelp": "Wenn \"an\", verwendet die Verbindung TLS, wenn du eine Verbindung zum Server herstellst. Bei \"aus\" wird TLS verwendet, wenn der Server die STARTTLS-Erweiterung unterstützt. In den meisten Fällen solltest du diesen Wert auf \"an\" schalten, wenn du eine Verbindung zu Port 465 herstellst. Für Port 587 oder 25 behalte den Wert \"aus\" bei. (von nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Wenn \"an\", verwendet die Verbindung TLS, wenn du eine Verbindung zum Server herstellst. Bei \"aus\" wird TLS verwendet, wenn der Server die STARTTLS-Erweiterung unterstützt. In den meisten Fällen solltest du diesen Wert auf \"an\" schalten, wenn du eine Verbindung zu Port 465 herstellst. Für Port 587 oder 25 behalte den Wert \"aus\" bei. (von nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test Adresse",
|
"LabelEmailSettingsTestAddress": "Test Adresse",
|
||||||
@@ -304,6 +308,7 @@
|
|||||||
"LabelFolder": "Ordner",
|
"LabelFolder": "Ordner",
|
||||||
"LabelFolders": "Verzeichnisse",
|
"LabelFolders": "Verzeichnisse",
|
||||||
"LabelFontBold": "Fett",
|
"LabelFontBold": "Fett",
|
||||||
|
"LabelFontBoldness": "Schriftstärke",
|
||||||
"LabelFontFamily": "Schriftfamilie",
|
"LabelFontFamily": "Schriftfamilie",
|
||||||
"LabelFontItalic": "Kursiv",
|
"LabelFontItalic": "Kursiv",
|
||||||
"LabelFontScale": "Schriftgröße",
|
"LabelFontScale": "Schriftgröße",
|
||||||
@@ -317,11 +322,12 @@
|
|||||||
"LabelHighestPriority": "Höchste Priorität",
|
"LabelHighestPriority": "Höchste Priorität",
|
||||||
"LabelHost": "Host",
|
"LabelHost": "Host",
|
||||||
"LabelHour": "Stunde",
|
"LabelHour": "Stunde",
|
||||||
|
"LabelHours": "Stunden",
|
||||||
"LabelIcon": "Symbol",
|
"LabelIcon": "Symbol",
|
||||||
"LabelImageURLFromTheWeb": "Bild-URL vom Internet",
|
"LabelImageURLFromTheWeb": "Bild-URL vom Internet",
|
||||||
|
"LabelInProgress": "In Bearbeitung",
|
||||||
"LabelIncludeInTracklist": "In die Titelliste aufnehmen",
|
"LabelIncludeInTracklist": "In die Titelliste aufnehmen",
|
||||||
"LabelIncomplete": "Unvollständig",
|
"LabelIncomplete": "Unvollständig",
|
||||||
"LabelInProgress": "In Bearbeitung",
|
|
||||||
"LabelInterval": "Intervall",
|
"LabelInterval": "Intervall",
|
||||||
"LabelIntervalCustomDailyWeekly": "Benutzerdefiniert Täglich/Wöchentlich",
|
"LabelIntervalCustomDailyWeekly": "Benutzerdefiniert Täglich/Wöchentlich",
|
||||||
"LabelIntervalEvery12Hours": "Alle 12 Stunden",
|
"LabelIntervalEvery12Hours": "Alle 12 Stunden",
|
||||||
@@ -335,6 +341,7 @@
|
|||||||
"LabelItem": "Medium",
|
"LabelItem": "Medium",
|
||||||
"LabelLanguage": "Sprache",
|
"LabelLanguage": "Sprache",
|
||||||
"LabelLanguageDefaultServer": "Standard-Server-Sprache",
|
"LabelLanguageDefaultServer": "Standard-Server-Sprache",
|
||||||
|
"LabelLanguages": "Sprachen",
|
||||||
"LabelLastBookAdded": "Zuletzt hinzugefügtes Buch",
|
"LabelLastBookAdded": "Zuletzt hinzugefügtes Buch",
|
||||||
"LabelLastBookUpdated": "Zuletzt aktualisiertes Buch",
|
"LabelLastBookUpdated": "Zuletzt aktualisiertes Buch",
|
||||||
"LabelLastSeen": "Zuletzt gesehen",
|
"LabelLastSeen": "Zuletzt gesehen",
|
||||||
@@ -346,6 +353,7 @@
|
|||||||
"LabelLess": "Weniger",
|
"LabelLess": "Weniger",
|
||||||
"LabelLibrariesAccessibleToUser": "Für Benutzer zugängliche Bibliotheken",
|
"LabelLibrariesAccessibleToUser": "Für Benutzer zugängliche Bibliotheken",
|
||||||
"LabelLibrary": "Bibliothek",
|
"LabelLibrary": "Bibliothek",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "Nr. {0}",
|
||||||
"LabelLibraryItem": "Bibliothekseintrag",
|
"LabelLibraryItem": "Bibliothekseintrag",
|
||||||
"LabelLibraryName": "Bibliotheksname",
|
"LabelLibraryName": "Bibliotheksname",
|
||||||
"LabelLimit": "Begrenzung",
|
"LabelLimit": "Begrenzung",
|
||||||
@@ -360,11 +368,12 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Wird zum Verbinden vorhandener Benutzer verwendet. Sobald die Verbindung hergestellt ist, wird den Benutzern eine eindeutige ID vom SSO-Anbieter zugeordnet",
|
"LabelMatchExistingUsersByDescription": "Wird zum Verbinden vorhandener Benutzer verwendet. Sobald die Verbindung hergestellt ist, wird den Benutzern eine eindeutige ID vom SSO-Anbieter zugeordnet",
|
||||||
"LabelMediaPlayer": "Mediaplayer",
|
"LabelMediaPlayer": "Mediaplayer",
|
||||||
"LabelMediaType": "Medientyp",
|
"LabelMediaType": "Medientyp",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Höher priorisierte Quellen für Metadaten überschreiben Metadaten aus Quellen die niedriger priorisiert sind.",
|
|
||||||
"LabelMetadataProvider": "Metadatenanbieter",
|
|
||||||
"LabelMetaTag": "Meta Schlagwort",
|
"LabelMetaTag": "Meta Schlagwort",
|
||||||
"LabelMetaTags": "Meta Tags",
|
"LabelMetaTags": "Meta Tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Höher priorisierte Quellen für Metadaten überschreiben Metadaten aus Quellen mit niedrigerer Priorität",
|
||||||
|
"LabelMetadataProvider": "Metadatenanbieter",
|
||||||
"LabelMinute": "Minute",
|
"LabelMinute": "Minute",
|
||||||
|
"LabelMinutes": "Minuten",
|
||||||
"LabelMissing": "Fehlend",
|
"LabelMissing": "Fehlend",
|
||||||
"LabelMissingEbook": "E-Book fehlt",
|
"LabelMissingEbook": "E-Book fehlt",
|
||||||
"LabelMissingSupplementaryEbook": "Ergänzendes E-Book fehlt",
|
"LabelMissingSupplementaryEbook": "Ergänzendes E-Book fehlt",
|
||||||
@@ -376,24 +385,25 @@
|
|||||||
"LabelNarrator": "Erzähler",
|
"LabelNarrator": "Erzähler",
|
||||||
"LabelNarrators": "Erzähler",
|
"LabelNarrators": "Erzähler",
|
||||||
"LabelNew": "Neu",
|
"LabelNew": "Neu",
|
||||||
|
"LabelNewPassword": "Neues Passwort",
|
||||||
"LabelNewestAuthors": "Neueste Autoren",
|
"LabelNewestAuthors": "Neueste Autoren",
|
||||||
"LabelNewestEpisodes": "Neueste Episoden",
|
"LabelNewestEpisodes": "Neueste Episoden",
|
||||||
"LabelNewPassword": "Neues Passwort",
|
|
||||||
"LabelNextBackupDate": "Nächstes Sicherungsdatum",
|
"LabelNextBackupDate": "Nächstes Sicherungsdatum",
|
||||||
"LabelNextScheduledRun": "Nächster planmäßiger Durchlauf",
|
"LabelNextScheduledRun": "Nächster planmäßiger Durchlauf",
|
||||||
|
"LabelNoCustomMetadataProviders": "Keine benutzerdefinierten Metadata Anbieter",
|
||||||
"LabelNoEpisodesSelected": "Keine Episoden ausgewählt",
|
"LabelNoEpisodesSelected": "Keine Episoden ausgewählt",
|
||||||
"LabelNotes": "Notizen",
|
|
||||||
"LabelNotFinished": "Nicht beendet",
|
"LabelNotFinished": "Nicht beendet",
|
||||||
|
"LabelNotStarted": "Nicht begonnen",
|
||||||
|
"LabelNotes": "Notizen",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
||||||
"LabelNotificationAvailableVariables": "Verfügbare Variablen",
|
"LabelNotificationAvailableVariables": "Verfügbare Variablen",
|
||||||
"LabelNotificationBodyTemplate": "Textvorlage",
|
"LabelNotificationBodyTemplate": "Textvorlage",
|
||||||
"LabelNotificationEvent": "Benachrichtigungs Event",
|
"LabelNotificationEvent": "Benachrichtigungs Event",
|
||||||
|
"LabelNotificationTitleTemplate": "Titelvorlage",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Maximale Fehlversuche",
|
"LabelNotificationsMaxFailedAttempts": "Maximale Fehlversuche",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Benachrichtigungen werden deaktiviert, wenn sie mehrmals nicht gesendet werden können.",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Benachrichtigungen werden deaktiviert, wenn sie mehrmals nicht gesendet werden können",
|
||||||
"LabelNotificationsMaxQueueSize": "Maximale Größe der Warteschlange für die Benachrichtigungsereignisse",
|
"LabelNotificationsMaxQueueSize": "Maximale Größe der Warteschlange für die Benachrichtigungsereignisse",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Es wird nur 1 Ereignis pro Sekunde ausgelöst. Ereignisse werden ignoriert, wenn die Warteschlange die maximale Größe erreicht hat. Dies verhindert Benachrichtigungsspamming.",
|
"LabelNotificationsMaxQueueSizeHelp": "Es wird nur 1 Ereignis pro Sekunde ausgelöst. Ereignisse werden ignoriert, wenn die Warteschlange die maximale Größe erreicht hat. Dies verhindert Benachrichtigungsspamming.",
|
||||||
"LabelNotificationTitleTemplate": "Titelvorlage",
|
|
||||||
"LabelNotStarted": "Nicht begonnen",
|
|
||||||
"LabelNumberOfBooks": "Anzahl der Hörbücher",
|
"LabelNumberOfBooks": "Anzahl der Hörbücher",
|
||||||
"LabelNumberOfEpisodes": "Anzahl der Episoden",
|
"LabelNumberOfEpisodes": "Anzahl der Episoden",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name des OpenID-Claims, der erweiterte Berechtigungen für Benutzeraktionen innerhalb der Anwendung enthält, die auf Nicht-Admin-Rollen angewendet werden (<b>wenn konfiguriert</b>). Wenn der Claim in der Antwort fehlt, wird der Zugang zu ABS verweigert. Fehlt eine einzelne Option, wird sie als <code>false</code> behandelt. Stelle sicher, dass der Claim des Identitätsanbieters der erwarteten Struktur entspricht:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name des OpenID-Claims, der erweiterte Berechtigungen für Benutzeraktionen innerhalb der Anwendung enthält, die auf Nicht-Admin-Rollen angewendet werden (<b>wenn konfiguriert</b>). Wenn der Claim in der Antwort fehlt, wird der Zugang zu ABS verweigert. Fehlt eine einzelne Option, wird sie als <code>false</code> behandelt. Stelle sicher, dass der Claim des Identitätsanbieters der erwarteten Struktur entspricht:",
|
||||||
@@ -403,21 +413,23 @@
|
|||||||
"LabelOverwrite": "Überschreiben",
|
"LabelOverwrite": "Überschreiben",
|
||||||
"LabelPassword": "Passwort",
|
"LabelPassword": "Passwort",
|
||||||
"LabelPath": "Pfad",
|
"LabelPath": "Pfad",
|
||||||
|
"LabelPermanent": "Dauerhaft",
|
||||||
"LabelPermissionsAccessAllLibraries": "Zugriff auf alle Bibliotheken",
|
"LabelPermissionsAccessAllLibraries": "Zugriff auf alle Bibliotheken",
|
||||||
"LabelPermissionsAccessAllTags": "Zugriff auf alle Schlagwörter",
|
"LabelPermissionsAccessAllTags": "Zugriff auf alle Schlagwörter",
|
||||||
"LabelPermissionsAccessExplicitContent": "Zugriff auf explizite (alterbeschränkte) Inhalte",
|
"LabelPermissionsAccessExplicitContent": "Zugriff auf explizite (alterbeschränkte) Inhalte",
|
||||||
"LabelPermissionsDelete": "Löschen",
|
"LabelPermissionsDelete": "Darf Löschen",
|
||||||
"LabelPermissionsDownload": "Herunterladen",
|
"LabelPermissionsDownload": "Herunterladen",
|
||||||
"LabelPermissionsUpdate": "Aktualisieren",
|
"LabelPermissionsUpdate": "Aktualisieren",
|
||||||
"LabelPermissionsUpload": "Hochladen",
|
"LabelPermissionsUpload": "Hochladen",
|
||||||
"LabelPersonalYearReview": "Dein Jahr in Übersicht ({0})",
|
"LabelPersonalYearReview": "Dein Jahr in Übersicht ({0})",
|
||||||
"LabelPhotoPathURL": "Foto Pfad/URL",
|
"LabelPhotoPathURL": "Foto Pfad/URL",
|
||||||
"LabelPlaylists": "Wiedergabelisten",
|
|
||||||
"LabelPlayMethod": "Abspielmethode",
|
"LabelPlayMethod": "Abspielmethode",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} von {1}",
|
||||||
|
"LabelPlaylists": "Wiedergabelisten",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Podcast-Suchregion",
|
"LabelPodcastSearchRegion": "Podcast-Suchregion",
|
||||||
"LabelPodcastType": "Podcast Typ",
|
"LabelPodcastType": "Podcast Typ",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Zu ignorierende(s) Vorwort(e) (Groß- und Kleinschreibung wird nicht berücksichtigt)",
|
"LabelPrefixesToIgnore": "Zu ignorierende(s) Vorwort(e) (Groß- und Kleinschreibung wird nicht berücksichtigt)",
|
||||||
"LabelPreventIndexing": "Verhindere, dass dein Feed von iTunes- und Google-Podcast-Verzeichnissen indiziert wird",
|
"LabelPreventIndexing": "Verhindere, dass dein Feed von iTunes- und Google-Podcast-Verzeichnissen indiziert wird",
|
||||||
@@ -425,25 +437,26 @@
|
|||||||
"LabelProgress": "Fortschritt",
|
"LabelProgress": "Fortschritt",
|
||||||
"LabelProvider": "Anbieter",
|
"LabelProvider": "Anbieter",
|
||||||
"LabelPubDate": "Veröffentlichungsdatum",
|
"LabelPubDate": "Veröffentlichungsdatum",
|
||||||
"LabelPublisher": "Herausgeber",
|
|
||||||
"LabelPublishYear": "Jahr",
|
"LabelPublishYear": "Jahr",
|
||||||
|
"LabelPublisher": "Herausgeber",
|
||||||
|
"LabelPublishers": "Herausgeber",
|
||||||
|
"LabelRSSFeedCustomOwnerEmail": "Benutzerdefinierte Eigentümer-E-Mail",
|
||||||
|
"LabelRSSFeedCustomOwnerName": "Benutzerdefinierter Name des Eigentümers",
|
||||||
|
"LabelRSSFeedOpen": "RSS Feed Offen",
|
||||||
|
"LabelRSSFeedPreventIndexing": "Indizierung verhindern",
|
||||||
|
"LabelRSSFeedSlug": "RSS-Feed-Schlagwort",
|
||||||
|
"LabelRSSFeedURL": "RSS Feed URL",
|
||||||
"LabelRead": "Lesen",
|
"LabelRead": "Lesen",
|
||||||
"LabelReadAgain": "Noch einmal Lesen",
|
"LabelReadAgain": "Noch einmal Lesen",
|
||||||
"LabelReadEbookWithoutProgress": "E-Book lesen und Fortschritt verwerfen",
|
"LabelReadEbookWithoutProgress": "E-Book lesen und Fortschritt verwerfen",
|
||||||
"LabelRecentlyAdded": "Kürzlich hinzugefügt",
|
|
||||||
"LabelRecentSeries": "Aktuelle Serien",
|
"LabelRecentSeries": "Aktuelle Serien",
|
||||||
|
"LabelRecentlyAdded": "Kürzlich hinzugefügt",
|
||||||
"LabelRecommended": "Empfohlen",
|
"LabelRecommended": "Empfohlen",
|
||||||
"LabelRedo": "Wiederholen",
|
"LabelRedo": "Wiederholen",
|
||||||
"LabelRegion": "Region",
|
"LabelRegion": "Region",
|
||||||
"LabelReleaseDate": "Veröffentlichungsdatum",
|
"LabelReleaseDate": "Veröffentlichungsdatum",
|
||||||
"LabelRemoveCover": "Lösche Titelbild",
|
"LabelRemoveCover": "Lösche Titelbild",
|
||||||
"LabelRowsPerPage": "Zeilen pro Seite",
|
"LabelRowsPerPage": "Zeilen pro Seite",
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Benutzerdefinierte Eigentümer-E-Mail",
|
|
||||||
"LabelRSSFeedCustomOwnerName": "Benutzerdefinierter Name des Eigentümers",
|
|
||||||
"LabelRSSFeedOpen": "RSS Feed Offen",
|
|
||||||
"LabelRSSFeedPreventIndexing": "Indizierung verhindern",
|
|
||||||
"LabelRSSFeedSlug": "RSS Feed Schlagwort",
|
|
||||||
"LabelRSSFeedURL": "RSS Feed URL",
|
|
||||||
"LabelSearchTerm": "Begriff suchen",
|
"LabelSearchTerm": "Begriff suchen",
|
||||||
"LabelSearchTitle": "Titel suchen",
|
"LabelSearchTitle": "Titel suchen",
|
||||||
"LabelSearchTitleOrASIN": "Titel oder ASIN suchen",
|
"LabelSearchTitleOrASIN": "Titel oder ASIN suchen",
|
||||||
@@ -481,8 +494,8 @@
|
|||||||
"LabelSettingsHideSingleBookSeriesHelp": "Serien, die nur ein einzelnes Buch enthalten, werden auf der Startseite und in der Serienansicht ausgeblendet.",
|
"LabelSettingsHideSingleBookSeriesHelp": "Serien, die nur ein einzelnes Buch enthalten, werden auf der Startseite und in der Serienansicht ausgeblendet.",
|
||||||
"LabelSettingsHomePageBookshelfView": "Startseite verwendet die Bücherregalansicht",
|
"LabelSettingsHomePageBookshelfView": "Startseite verwendet die Bücherregalansicht",
|
||||||
"LabelSettingsLibraryBookshelfView": "Bibliothek verwendet die Bücherregalansicht",
|
"LabelSettingsLibraryBookshelfView": "Bibliothek verwendet die Bücherregalansicht",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Überspringe vorherige Bücher in fortführender Serie",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "The Continue Series home page shelf shows the first book not started in series that have at least one book finished and no books in progress. Enabling this setting will continue series from the furthest completed book instead of the first book not started.",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "Die Startseite von \"Fortführende Serien\" zeigt das erste noch nicht begonnene Buch in Serien an, die mindestens ein Buch abgeschlossen und keine Bücher begonnen haben. Wenn diese Einstellung aktiviert wird, werden Serien ab dem letzten abgeschlossenen Buch fortgesetzt und nicht ab dem ersten nicht begonnenen Buch.",
|
||||||
"LabelSettingsParseSubtitles": "Analysiere Untertitel",
|
"LabelSettingsParseSubtitles": "Analysiere Untertitel",
|
||||||
"LabelSettingsParseSubtitlesHelp": "Extrahiere den Untertitel von Medium-Ordnernamen.<br>Untertitel müssen vom eigentlichem Titel durch ein \" - \" getrennt sein. <br>Beispiel: \"Titel - Untertitel\"",
|
"LabelSettingsParseSubtitlesHelp": "Extrahiere den Untertitel von Medium-Ordnernamen.<br>Untertitel müssen vom eigentlichem Titel durch ein \" - \" getrennt sein. <br>Beispiel: \"Titel - Untertitel\"",
|
||||||
"LabelSettingsPreferMatchedMetadata": "Bevorzuge online abgestimmte Metadaten",
|
"LabelSettingsPreferMatchedMetadata": "Bevorzuge online abgestimmte Metadaten",
|
||||||
@@ -490,23 +503,26 @@
|
|||||||
"LabelSettingsSkipMatchingBooksWithASIN": "Überspringe beim Online-Abgleich alle Bücher die bereits eine ASIN haben",
|
"LabelSettingsSkipMatchingBooksWithASIN": "Überspringe beim Online-Abgleich alle Bücher die bereits eine ASIN haben",
|
||||||
"LabelSettingsSkipMatchingBooksWithISBN": "Überspringe beim Online-Abgleich alle Bücher die bereits eine ISBN haben",
|
"LabelSettingsSkipMatchingBooksWithISBN": "Überspringe beim Online-Abgleich alle Bücher die bereits eine ISBN haben",
|
||||||
"LabelSettingsSortingIgnorePrefixes": "Vorwort/Artikel beim Sortieren ignorieren",
|
"LabelSettingsSortingIgnorePrefixes": "Vorwort/Artikel beim Sortieren ignorieren",
|
||||||
"LabelSettingsSortingIgnorePrefixesHelp": "Beispiel: für den Artikel \"der\" würde der Mediumtitel \"Der Buchtitel\" als \"Buchtitel, Der\" sortiert werden.",
|
"LabelSettingsSortingIgnorePrefixesHelp": "Beispiel: für den Artikel \"der\" würde der Mediumtitel \"Der Buchtitel\" als \"Buchtitel, Der\" sortiert werden",
|
||||||
"LabelSettingsSquareBookCovers": "Benutze quadratische Titelbilder",
|
"LabelSettingsSquareBookCovers": "Benutze quadratische Titelbilder",
|
||||||
"LabelSettingsSquareBookCoversHelp": "Bevorzuge quadratische Titelbilder gegenüber den Standardtielbildern im Verhältnis 1,6:1",
|
"LabelSettingsSquareBookCoversHelp": "Bevorzuge quadratische Titelbilder gegenüber den Standardtielbildern im Verhältnis 1,6:1",
|
||||||
"LabelSettingsStoreCoversWithItem": "Titelbilder im Medienordner speichern",
|
"LabelSettingsStoreCoversWithItem": "Titelbilder im Medienordner speichern",
|
||||||
"LabelSettingsStoreCoversWithItemHelp": "Standardmäßig werden die Titelbilder in /metadata/items gespeichert. Wenn diese Option aktiviert ist, werden die Titelbilder als jpg Datei in dem gleichen Ordner gespeichert in welchem sich auch das Medium befindet. Es wird immer nur eine Datei mit dem Namen \"cover.jpg\" gespeichert.",
|
"LabelSettingsStoreCoversWithItemHelp": "Standardmäßig werden die Titelbilder in /metadata/items gespeichert. Wenn diese Option aktiviert ist, werden die Titelbilder als jpg Datei in dem gleichen Ordner gespeichert in welchem sich auch das Medium befindet. Es wird immer nur eine Datei mit dem Namen \"cover.jpg\" gespeichert",
|
||||||
"LabelSettingsStoreMetadataWithItem": "Metadaten als OPF-Datei im Medienordner speichern",
|
"LabelSettingsStoreMetadataWithItem": "Metadaten als OPF-Datei im Medienordner speichern",
|
||||||
"LabelSettingsStoreMetadataWithItemHelp": "Standardmäßig werden die Metadaten in /metadata/items gespeichert. Wenn diese Option aktiviert ist, werden die Metadaten als OPF-Datei (Textdatei) in dem gleichen Ordner gespeichert in welchem sich auch das Medium befindet",
|
"LabelSettingsStoreMetadataWithItemHelp": "Standardmäßig werden die Metadaten in /metadata/items gespeichert. Wenn diese Option aktiviert ist, werden die Metadaten als OPF-Datei (Textdatei) in dem gleichen Ordner gespeichert in welchem sich auch das Medium befindet",
|
||||||
"LabelSettingsTimeFormat": "Zeitformat",
|
"LabelSettingsTimeFormat": "Zeitformat",
|
||||||
|
"LabelShare": "Teilen",
|
||||||
|
"LabelShareOpen": "Teilen Offen",
|
||||||
|
"LabelShareURL": "URL teilen",
|
||||||
"LabelShowAll": "Alles anzeigen",
|
"LabelShowAll": "Alles anzeigen",
|
||||||
"LabelShowSeconds": "Zeige Sekunden",
|
"LabelShowSeconds": "Zeige Sekunden",
|
||||||
"LabelSize": "Größe",
|
"LabelSize": "Größe",
|
||||||
"LabelSleepTimer": "Schlummerfunktion",
|
"LabelSleepTimer": "Schlummerfunktion",
|
||||||
"LabelSlug": "URL Teil",
|
"LabelSlug": "URL Teil",
|
||||||
"LabelStart": "Start",
|
"LabelStart": "Start",
|
||||||
|
"LabelStartTime": "Startzeit",
|
||||||
"LabelStarted": "Gestartet",
|
"LabelStarted": "Gestartet",
|
||||||
"LabelStartedAt": "Gestartet am",
|
"LabelStartedAt": "Gestartet am",
|
||||||
"LabelStartTime": "Startzeit",
|
|
||||||
"LabelStatsAudioTracks": "Audiodateien",
|
"LabelStatsAudioTracks": "Audiodateien",
|
||||||
"LabelStatsAuthors": "Autoren",
|
"LabelStatsAuthors": "Autoren",
|
||||||
"LabelStatsBestDay": "Bester Tag",
|
"LabelStatsBestDay": "Bester Tag",
|
||||||
@@ -533,7 +549,7 @@
|
|||||||
"LabelTextEditorLink": "Link",
|
"LabelTextEditorLink": "Link",
|
||||||
"LabelTextEditorNumberedList": "nummerierte Liste",
|
"LabelTextEditorNumberedList": "nummerierte Liste",
|
||||||
"LabelTextEditorUnlink": "entkoppeln",
|
"LabelTextEditorUnlink": "entkoppeln",
|
||||||
"LabelTheme": "Theme",
|
"LabelTheme": "Farbschema",
|
||||||
"LabelThemeDark": "Dunkel",
|
"LabelThemeDark": "Dunkel",
|
||||||
"LabelThemeLight": "Hell",
|
"LabelThemeLight": "Hell",
|
||||||
"LabelTimeBase": "Basiszeit",
|
"LabelTimeBase": "Basiszeit",
|
||||||
@@ -552,7 +568,7 @@
|
|||||||
"LabelTotalTimeListened": "Gehörte Gesamtzeit",
|
"LabelTotalTimeListened": "Gehörte Gesamtzeit",
|
||||||
"LabelTrackFromFilename": "Titel aus Dateiname",
|
"LabelTrackFromFilename": "Titel aus Dateiname",
|
||||||
"LabelTrackFromMetadata": "Titel aus Metadaten",
|
"LabelTrackFromMetadata": "Titel aus Metadaten",
|
||||||
"LabelTracks": "Dateien",
|
"LabelTracks": "Titel",
|
||||||
"LabelTracksMultiTrack": "Mehrfachdatei",
|
"LabelTracksMultiTrack": "Mehrfachdatei",
|
||||||
"LabelTracksNone": "Keine Dateien",
|
"LabelTracksNone": "Keine Dateien",
|
||||||
"LabelTracksSingleTrack": "Einzeldatei",
|
"LabelTracksSingleTrack": "Einzeldatei",
|
||||||
@@ -562,9 +578,9 @@
|
|||||||
"LabelUnknown": "Unbekannt",
|
"LabelUnknown": "Unbekannt",
|
||||||
"LabelUpdateCover": "Titelbild aktualisieren",
|
"LabelUpdateCover": "Titelbild aktualisieren",
|
||||||
"LabelUpdateCoverHelp": "Erlaube das Überschreiben bestehender Titelbilder für die ausgewählten Hörbücher, wenn eine Übereinstimmung gefunden wird",
|
"LabelUpdateCoverHelp": "Erlaube das Überschreiben bestehender Titelbilder für die ausgewählten Hörbücher, wenn eine Übereinstimmung gefunden wird",
|
||||||
"LabelUpdatedAt": "Aktualisiert am",
|
|
||||||
"LabelUpdateDetails": "Details aktualisieren",
|
"LabelUpdateDetails": "Details aktualisieren",
|
||||||
"LabelUpdateDetailsHelp": "Erlaube das Überschreiben bestehender Details für die ausgewählten Hörbücher, wenn eine Übereinstimmung gefunden wird",
|
"LabelUpdateDetailsHelp": "Erlaube das Überschreiben bestehender Details für die ausgewählten Hörbücher, wenn eine Übereinstimmung gefunden wird",
|
||||||
|
"LabelUpdatedAt": "Aktualisiert am",
|
||||||
"LabelUploaderDragAndDrop": "Ziehen und Ablegen von Dateien oder Ordnern",
|
"LabelUploaderDragAndDrop": "Ziehen und Ablegen von Dateien oder Ordnern",
|
||||||
"LabelUploaderDropFiles": "Dateien löschen",
|
"LabelUploaderDropFiles": "Dateien löschen",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatisches Aktualisieren von Titel, Autor und Serie",
|
"LabelUploaderItemFetchMetadataHelp": "Automatisches Aktualisieren von Titel, Autor und Serie",
|
||||||
@@ -588,10 +604,14 @@
|
|||||||
"MessageAddToPlayerQueue": "Zur Abspielwarteliste hinzufügen",
|
"MessageAddToPlayerQueue": "Zur Abspielwarteliste hinzufügen",
|
||||||
"MessageAppriseDescription": "Um diese Funktion nutzen zu können, musst du eine Instanz von <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> laufen haben oder eine API verwenden welche dieselbe Anfragen bearbeiten kann. <br />Die Apprise API Url muss der vollständige URL-Pfad sein, an den die Benachrichtigung gesendet werden soll, z.B. wenn Ihre API-Instanz unter <code>http://192.168.1.1:8337</code> läuft, würdest du <code>http://192.168.1.1:8337/notify</code> eingeben.",
|
"MessageAppriseDescription": "Um diese Funktion nutzen zu können, musst du eine Instanz von <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> laufen haben oder eine API verwenden welche dieselbe Anfragen bearbeiten kann. <br />Die Apprise API Url muss der vollständige URL-Pfad sein, an den die Benachrichtigung gesendet werden soll, z.B. wenn Ihre API-Instanz unter <code>http://192.168.1.1:8337</code> läuft, würdest du <code>http://192.168.1.1:8337/notify</code> eingeben.",
|
||||||
"MessageBackupsDescription": "In einer Sicherung werden Benutzer, Benutzerfortschritte, Details zu den Bibliotheksobjekten, Servereinstellungen und Bilder welche in <code>/metadata/items</code> & <code>/metadata/authors</code> gespeichert sind gespeichert. Sicherungen enthalten keine Dateien welche in den einzelnen Bibliotheksordnern (Medien-Ordnern) gespeichert sind.",
|
"MessageBackupsDescription": "In einer Sicherung werden Benutzer, Benutzerfortschritte, Details zu den Bibliotheksobjekten, Servereinstellungen und Bilder welche in <code>/metadata/items</code> & <code>/metadata/authors</code> gespeichert sind gespeichert. Sicherungen enthalten keine Dateien welche in den einzelnen Bibliotheksordnern (Medien-Ordnern) gespeichert sind.",
|
||||||
|
"MessageBackupsLocationEditNote": "Hinweis: Durch das Aktualisieren des Backup-Speicherorts werden vorhandene Sicherungen nicht verschoben oder geändert",
|
||||||
|
"MessageBackupsLocationNoEditNote": "Hinweis: Der Sicherungsspeicherort wird über eine Umgebungsvariable festgelegt und kann hier nicht geändert werden.",
|
||||||
|
"MessageBackupsLocationPathEmpty": "Der Backup-Pfad darf nicht leer sein",
|
||||||
"MessageBatchQuickMatchDescription": "Der Schnellabgleich versucht, fehlende Titelbilder und Metadaten für die ausgewählten Artikel hinzuzufügen. Aktiviere die nachstehenden Optionen, damit der Schnellabgleich vorhandene Titelbilder und/oder Metadaten überschreiben kann.",
|
"MessageBatchQuickMatchDescription": "Der Schnellabgleich versucht, fehlende Titelbilder und Metadaten für die ausgewählten Artikel hinzuzufügen. Aktiviere die nachstehenden Optionen, damit der Schnellabgleich vorhandene Titelbilder und/oder Metadaten überschreiben kann.",
|
||||||
"MessageBookshelfNoCollections": "Es wurden noch keine Sammlungen erstellt",
|
"MessageBookshelfNoCollections": "Es wurden noch keine Sammlungen erstellt",
|
||||||
"MessageBookshelfNoResultsForFilter": "Keine Ergebnisse für Filter \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Keine RSS-Feeds geöffnet",
|
"MessageBookshelfNoRSSFeeds": "Keine RSS-Feeds geöffnet",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Keine Ergebnisse für Filter \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "Keine Ergebnisse für die Abfrage",
|
||||||
"MessageBookshelfNoSeries": "Keine Serien vorhanden",
|
"MessageBookshelfNoSeries": "Keine Serien vorhanden",
|
||||||
"MessageChapterEndIsAfter": "Ungültige Kapitelendzeit: Kapitelende > Mediumende (Kapitelende liegt nach dem Ende des Mediums)",
|
"MessageChapterEndIsAfter": "Ungültige Kapitelendzeit: Kapitelende > Mediumende (Kapitelende liegt nach dem Ende des Mediums)",
|
||||||
"MessageChapterErrorFirstNotZero": "Ungültige Kapitelstartzeit: Das erste Kapitel muss bei 0 beginnen",
|
"MessageChapterErrorFirstNotZero": "Ungültige Kapitelstartzeit: Das erste Kapitel muss bei 0 beginnen",
|
||||||
@@ -612,7 +632,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Alle Medien dieser Reihe werden als abgeschlossen markiert! Bist du dir sicher?",
|
"MessageConfirmMarkSeriesFinished": "Alle Medien dieser Reihe werden als abgeschlossen markiert! Bist du dir sicher?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Alle Medien dieser Reihe werden als nicht abgeschlossen markiert! Bist du dir sicher?",
|
"MessageConfirmMarkSeriesNotFinished": "Alle Medien dieser Reihe werden als nicht abgeschlossen markiert! Bist du dir sicher?",
|
||||||
"MessageConfirmPurgeCache": "Cache leeren wird das ganze Verzeichnis <code>/metadata/cache</code> löschen. <br /><br />Bist du dir sicher, dass das Cache Verzeichnis gelöscht werden soll?",
|
"MessageConfirmPurgeCache": "Cache leeren wird das ganze Verzeichnis <code>/metadata/cache</code> löschen. <br /><br />Bist du dir sicher, dass das Cache Verzeichnis gelöscht werden soll?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Durch Elementcache leeren wird das gesamte Verzeichnis unter <code>/metadata/cache/items</code> gelöscht.<br />Bist du dir sicher?",
|
||||||
"MessageConfirmQuickEmbed": "Warnung! Audiodateien werden bei der Schnelleinbettung nicht gesichert! Achte darauf, dass du eine Sicherungskopie der Audiodateien besitzt. <br><br>Möchtest du fortfahren?",
|
"MessageConfirmQuickEmbed": "Warnung! Audiodateien werden bei der Schnelleinbettung nicht gesichert! Achte darauf, dass du eine Sicherungskopie der Audiodateien besitzt. <br><br>Möchtest du fortfahren?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "{0} Elemente werden erneut gescannt! Bist du dir sicher?",
|
||||||
"MessageConfirmRemoveAllChapters": "Alle Kapitel werden entfernt! Bist du dir sicher?",
|
"MessageConfirmRemoveAllChapters": "Alle Kapitel werden entfernt! Bist du dir sicher?",
|
||||||
"MessageConfirmRemoveAuthor": "Autor \"{0}\" wird enfernt! Bist du dir sicher?",
|
"MessageConfirmRemoveAuthor": "Autor \"{0}\" wird enfernt! Bist du dir sicher?",
|
||||||
"MessageConfirmRemoveCollection": "Sammlung \"{0}\" wird gelöscht! Bist du dir sicher?",
|
"MessageConfirmRemoveCollection": "Sammlung \"{0}\" wird gelöscht! Bist du dir sicher?",
|
||||||
@@ -627,7 +649,6 @@
|
|||||||
"MessageConfirmRenameTag": "Tag \"{0}\" in \"{1}\" für alle Hörbücher/Podcasts werden umbenannt! Bist du dir sicher?",
|
"MessageConfirmRenameTag": "Tag \"{0}\" in \"{1}\" für alle Hörbücher/Podcasts werden umbenannt! Bist du dir sicher?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Hinweis: Tag existiert bereits -> Tags werden zusammengelegt.",
|
"MessageConfirmRenameTagMergeNote": "Hinweis: Tag existiert bereits -> Tags werden zusammengelegt.",
|
||||||
"MessageConfirmRenameTagWarning": "Warnung! Ein ähnlicher Tag mit einem anderen Wortlaut existiert bereits: \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Warnung! Ein ähnlicher Tag mit einem anderen Wortlaut existiert bereits: \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "{0} Elemente werden erneut gescannt! Bist du dir sicher?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "{0} E-Book \"{1}\" wird auf das Gerät \"{2}\" gesendet! Bist du dir sicher?",
|
"MessageConfirmSendEbookToDevice": "{0} E-Book \"{1}\" wird auf das Gerät \"{2}\" gesendet! Bist du dir sicher?",
|
||||||
"MessageDownloadingEpisode": "Episode wird heruntergeladen",
|
"MessageDownloadingEpisode": "Episode wird heruntergeladen",
|
||||||
"MessageDragFilesIntoTrackOrder": "Verschiebe die Dateien in die richtige Reihenfolge",
|
"MessageDragFilesIntoTrackOrder": "Verschiebe die Dateien in die richtige Reihenfolge",
|
||||||
@@ -635,7 +656,7 @@
|
|||||||
"MessageEpisodesQueuedForDownload": "{0} Episode(n) in der Warteschlange zum Herunterladen",
|
"MessageEpisodesQueuedForDownload": "{0} Episode(n) in der Warteschlange zum Herunterladen",
|
||||||
"MessageEreaderDevices": "Um die Zustellung von E-Books sicherzustellen, musst du eventuell die oben genannte E-Mail-Adresse als gültigen Absender für jedes unten aufgeführte Gerät hinzufügen.",
|
"MessageEreaderDevices": "Um die Zustellung von E-Books sicherzustellen, musst du eventuell die oben genannte E-Mail-Adresse als gültigen Absender für jedes unten aufgeführte Gerät hinzufügen.",
|
||||||
"MessageFeedURLWillBe": "Feed-URL wird {0} sein",
|
"MessageFeedURLWillBe": "Feed-URL wird {0} sein",
|
||||||
"MessageFetching": "Abrufen...",
|
"MessageFetching": "Wird abgerufen …",
|
||||||
"MessageForceReScanDescription": "Durchsucht alle Dateien erneut, wie bei einem frischen Scan. ID3-Tags von Audiodateien, OPF-Dateien und Textdateien werden neu durchsucht.",
|
"MessageForceReScanDescription": "Durchsucht alle Dateien erneut, wie bei einem frischen Scan. ID3-Tags von Audiodateien, OPF-Dateien und Textdateien werden neu durchsucht.",
|
||||||
"MessageImportantNotice": "Wichtiger Hinweis!",
|
"MessageImportantNotice": "Wichtiger Hinweis!",
|
||||||
"MessageInsertChapterBelow": "Kapitel unten einfügen",
|
"MessageInsertChapterBelow": "Kapitel unten einfügen",
|
||||||
@@ -643,7 +664,7 @@
|
|||||||
"MessageItemsUpdated": "{0} Medien aktualisiert",
|
"MessageItemsUpdated": "{0} Medien aktualisiert",
|
||||||
"MessageJoinUsOn": "Besuche uns auf",
|
"MessageJoinUsOn": "Besuche uns auf",
|
||||||
"MessageListeningSessionsInTheLastYear": "{0} Ereignisse im letzten Jahr",
|
"MessageListeningSessionsInTheLastYear": "{0} Ereignisse im letzten Jahr",
|
||||||
"MessageLoading": "Laden...",
|
"MessageLoading": "Wird geladen …",
|
||||||
"MessageLoadingFolders": "Lade Ordner...",
|
"MessageLoadingFolders": "Lade Ordner...",
|
||||||
"MessageLogsDescription": "Die Logs werdern in <code>/metadata/logs</code> als JSON Dateien gespeichert. Crash logs werden in <code>/metadata/logs/crash_logs.txt</code> gespeichert.",
|
"MessageLogsDescription": "Die Logs werdern in <code>/metadata/logs</code> als JSON Dateien gespeichert. Crash logs werden in <code>/metadata/logs/crash_logs.txt</code> gespeichert.",
|
||||||
"MessageM4BFailed": "M4B fehlgeschlagen!",
|
"MessageM4BFailed": "M4B fehlgeschlagen!",
|
||||||
@@ -681,10 +702,10 @@
|
|||||||
"MessageNoSeries": "Keine Serien",
|
"MessageNoSeries": "Keine Serien",
|
||||||
"MessageNoTags": "Keine Tags",
|
"MessageNoTags": "Keine Tags",
|
||||||
"MessageNoTasksRunning": "Keine laufenden Aufgaben",
|
"MessageNoTasksRunning": "Keine laufenden Aufgaben",
|
||||||
"MessageNotYetImplemented": "Noch nicht implementiert",
|
|
||||||
"MessageNoUpdateNecessary": "Keine Aktualisierung erforderlich",
|
"MessageNoUpdateNecessary": "Keine Aktualisierung erforderlich",
|
||||||
"MessageNoUpdatesWereNecessary": "Keine Aktualisierungen waren notwendig",
|
"MessageNoUpdatesWereNecessary": "Keine Aktualisierungen waren notwendig",
|
||||||
"MessageNoUserPlaylists": "Keine Wiedergabelisten vorhanden",
|
"MessageNoUserPlaylists": "Keine Wiedergabelisten vorhanden",
|
||||||
|
"MessageNotYetImplemented": "Noch nicht implementiert",
|
||||||
"MessageOr": "Oder",
|
"MessageOr": "Oder",
|
||||||
"MessagePauseChapter": "Kapitelwiedergabe pausieren",
|
"MessagePauseChapter": "Kapitelwiedergabe pausieren",
|
||||||
"MessagePlayChapter": "Kapitelanfang anhören",
|
"MessagePlayChapter": "Kapitelanfang anhören",
|
||||||
@@ -703,6 +724,9 @@
|
|||||||
"MessageSelected": "{0} ausgewählt",
|
"MessageSelected": "{0} ausgewählt",
|
||||||
"MessageServerCouldNotBeReached": "Server kann nicht erreicht werden",
|
"MessageServerCouldNotBeReached": "Server kann nicht erreicht werden",
|
||||||
"MessageSetChaptersFromTracksDescription": "Kaitelerstellung basiert auf den existierenden einzelnen Audiodateien. Pro existierende Audiodatei wird 1 Kapitel erstellt, wobei deren Kapitelname aus dem Audiodateinamen extrahiert wird",
|
"MessageSetChaptersFromTracksDescription": "Kaitelerstellung basiert auf den existierenden einzelnen Audiodateien. Pro existierende Audiodatei wird 1 Kapitel erstellt, wobei deren Kapitelname aus dem Audiodateinamen extrahiert wird",
|
||||||
|
"MessageShareExpirationWillBe": "Läuft am <strong>{0}</strong> ab",
|
||||||
|
"MessageShareExpiresIn": "Läuft in {0} ab",
|
||||||
|
"MessageShareURLWillBe": "Der geteilte Link wird <strong>{0}</strong> sein.",
|
||||||
"MessageStartPlaybackAtTime": "Start der Wiedergabe für \"{0}\" bei {1}?",
|
"MessageStartPlaybackAtTime": "Start der Wiedergabe für \"{0}\" bei {1}?",
|
||||||
"MessageThinking": "Nachdenken...",
|
"MessageThinking": "Nachdenken...",
|
||||||
"MessageUploaderItemFailed": "Hochladen fehlgeschlagen",
|
"MessageUploaderItemFailed": "Hochladen fehlgeschlagen",
|
||||||
@@ -715,8 +739,8 @@
|
|||||||
"MessageYourAudiobookDurationIsShorter": "Die Dauer deines Mediums ist kürzer als die gefundene Dauer",
|
"MessageYourAudiobookDurationIsShorter": "Die Dauer deines Mediums ist kürzer als die gefundene Dauer",
|
||||||
"NoteChangeRootPassword": "Der Root-Benutzer (Hauptbenutzer) ist der einzige Benutzer, der ein leeres Passwort haben kann",
|
"NoteChangeRootPassword": "Der Root-Benutzer (Hauptbenutzer) ist der einzige Benutzer, der ein leeres Passwort haben kann",
|
||||||
"NoteChapterEditorTimes": "Hinweis: Die Anfangszeit des ersten Kapitels muss bei 0:00 beginnen und die Anfangszeit des letzten Kapitels darf die Dauer des Mediums nicht überschreiten.",
|
"NoteChapterEditorTimes": "Hinweis: Die Anfangszeit des ersten Kapitels muss bei 0:00 beginnen und die Anfangszeit des letzten Kapitels darf die Dauer des Mediums nicht überschreiten.",
|
||||||
"NoteFolderPicker": "Hinweis: Bereits zugeordnete Ordner werden nicht angezeigt.",
|
"NoteFolderPicker": "Hinweis: Bereits zugeordnete Ordner werden nicht angezeigt",
|
||||||
"NoteRSSFeedPodcastAppsHttps": "Warnung: Die meisten Podcast-Apps verlangen, dass die URL des RSS-Feeds HTTPS verwendet.",
|
"NoteRSSFeedPodcastAppsHttps": "Warnung: Die meisten Podcast-Apps verlangen, dass die URL des RSS-Feeds HTTPS verwendet",
|
||||||
"NoteRSSFeedPodcastAppsPubDate": "Warnung: 1 oder mehrere deiner Episoden haben kein Veröffentlichungsdatum. Einige Podcast-Apps verlangen dies.",
|
"NoteRSSFeedPodcastAppsPubDate": "Warnung: 1 oder mehrere deiner Episoden haben kein Veröffentlichungsdatum. Einige Podcast-Apps verlangen dies.",
|
||||||
"NoteUploaderFoldersWithMediaFiles": "Ordner mit Mediendateien werden als separate Bibliothekselemente behandelt.",
|
"NoteUploaderFoldersWithMediaFiles": "Ordner mit Mediendateien werden als separate Bibliothekselemente behandelt.",
|
||||||
"NoteUploaderOnlyAudioFiles": "Wenn du nur Audiodateien hochlädst, wird jede Audiodatei als ein separates Medium behandelt.",
|
"NoteUploaderOnlyAudioFiles": "Wenn du nur Audiodateien hochlädst, wird jede Audiodatei als ein separates Medium behandelt.",
|
||||||
@@ -787,15 +811,15 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Wiedergabeliste aktualisiert",
|
"ToastPlaylistUpdateSuccess": "Wiedergabeliste aktualisiert",
|
||||||
"ToastPodcastCreateFailed": "Podcast konnte nicht erstellt werden",
|
"ToastPodcastCreateFailed": "Podcast konnte nicht erstellt werden",
|
||||||
"ToastPodcastCreateSuccess": "Podcast erstellt",
|
"ToastPodcastCreateSuccess": "Podcast erstellt",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Löschen des Mediums aus der Sammlung fehlgeschlagen",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Medium aus der Sammlung gelöscht",
|
|
||||||
"ToastRSSFeedCloseFailed": "RSS-Feed konnte nicht geschlossen werden",
|
"ToastRSSFeedCloseFailed": "RSS-Feed konnte nicht geschlossen werden",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS-Feed geschlossen",
|
"ToastRSSFeedCloseSuccess": "RSS-Feed geschlossen",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Löschen des Mediums aus der Sammlung fehlgeschlagen",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Medium aus der Sammlung gelöscht",
|
||||||
"ToastSendEbookToDeviceFailed": "E-Book konnte nicht auf Gerät übertragen werden",
|
"ToastSendEbookToDeviceFailed": "E-Book konnte nicht auf Gerät übertragen werden",
|
||||||
"ToastSendEbookToDeviceSuccess": "E-Book an Gerät \"{0}\" gesendet",
|
"ToastSendEbookToDeviceSuccess": "E-Book an Gerät \"{0}\" gesendet",
|
||||||
"ToastSeriesUpdateFailed": "Aktualisierung der Serien fehlgeschlagen",
|
"ToastSeriesUpdateFailed": "Aktualisierung der Serien fehlgeschlagen",
|
||||||
"ToastSeriesUpdateSuccess": "Serien aktualisiert",
|
"ToastSeriesUpdateSuccess": "Serien aktualisiert",
|
||||||
"ToastServerSettingsUpdateFailed": "Die Server-Einstellungen wurden nicht gespeichert.",
|
"ToastServerSettingsUpdateFailed": "Die Server-Einstellungen wurden nicht gespeichert",
|
||||||
"ToastServerSettingsUpdateSuccess": "Die Server-Einstellungen wurden geupdated",
|
"ToastServerSettingsUpdateSuccess": "Die Server-Einstellungen wurden geupdated",
|
||||||
"ToastSessionDeleteFailed": "Sitzung konnte nicht gelöscht werden",
|
"ToastSessionDeleteFailed": "Sitzung konnte nicht gelöscht werden",
|
||||||
"ToastSessionDeleteSuccess": "Sitzung gelöscht",
|
"ToastSessionDeleteSuccess": "Sitzung gelöscht",
|
||||||
|
|||||||
+60
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Apply",
|
"ButtonApply": "Apply",
|
||||||
"ButtonApplyChapters": "Apply Chapters",
|
"ButtonApplyChapters": "Apply Chapters",
|
||||||
"ButtonAuthors": "Authors",
|
"ButtonAuthors": "Authors",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "Browse for Folder",
|
"ButtonBrowseForFolder": "Browse for Folder",
|
||||||
"ButtonCancel": "Cancel",
|
"ButtonCancel": "Cancel",
|
||||||
"ButtonCancelEncode": "Cancel Encode",
|
"ButtonCancelEncode": "Cancel Encode",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Previous Chapter",
|
||||||
"ButtonPurgeAllCache": "Purge All Cache",
|
"ButtonPurgeAllCache": "Purge All Cache",
|
||||||
"ButtonPurgeItemsCache": "Purge Items Cache",
|
"ButtonPurgeItemsCache": "Purge Items Cache",
|
||||||
"ButtonPurgeMediaProgress": "Purge Media Progress",
|
|
||||||
"ButtonQueueAddItem": "Add to queue",
|
"ButtonQueueAddItem": "Add to queue",
|
||||||
"ButtonQueueRemoveItem": "Remove from queue",
|
"ButtonQueueRemoveItem": "Remove from queue",
|
||||||
"ButtonQuickMatch": "Quick Match",
|
"ButtonQuickMatch": "Quick Match",
|
||||||
|
"ButtonReScan": "Re-Scan",
|
||||||
"ButtonRead": "Read",
|
"ButtonRead": "Read",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Remove from Continue Listening",
|
"ButtonRemoveFromContinueListening": "Remove from Continue Listening",
|
||||||
"ButtonRemoveFromContinueReading": "Remove from Continue Reading",
|
"ButtonRemoveFromContinueReading": "Remove from Continue Reading",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Remove Series from Continue Series",
|
"ButtonRemoveSeriesFromContinueSeries": "Remove Series from Continue Series",
|
||||||
"ButtonReScan": "Re-Scan",
|
|
||||||
"ButtonReset": "Reset",
|
"ButtonReset": "Reset",
|
||||||
"ButtonResetToDefault": "Reset to default",
|
"ButtonResetToDefault": "Reset to default",
|
||||||
"ButtonRestore": "Restore",
|
"ButtonRestore": "Restore",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Account",
|
"HeaderAccount": "Account",
|
||||||
"HeaderAdvanced": "Advanced",
|
"HeaderAdvanced": "Advanced",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise Notification Settings",
|
"HeaderAppriseNotificationSettings": "Apprise Notification Settings",
|
||||||
"HeaderAudiobookTools": "Audiobook File Management Tools",
|
|
||||||
"HeaderAudioTracks": "Audio Tracks",
|
"HeaderAudioTracks": "Audio Tracks",
|
||||||
|
"HeaderAudiobookTools": "Audiobook File Management Tools",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Backups",
|
"HeaderBackups": "Backups",
|
||||||
"HeaderChangePassword": "Change Password",
|
"HeaderChangePassword": "Change Password",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Collection Items",
|
"HeaderCollectionItems": "Collection Items",
|
||||||
"HeaderCover": "Cover",
|
"HeaderCover": "Cover",
|
||||||
"HeaderCurrentDownloads": "Current Downloads",
|
"HeaderCurrentDownloads": "Current Downloads",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||||
"HeaderDetails": "Details",
|
"HeaderDetails": "Details",
|
||||||
"HeaderDownloadQueue": "Download Queue",
|
"HeaderDownloadQueue": "Download Queue",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Playlist Items",
|
"HeaderPlaylistItems": "Playlist Items",
|
||||||
"HeaderPodcastsToAdd": "Podcasts to Add",
|
"HeaderPodcastsToAdd": "Podcasts to Add",
|
||||||
"HeaderPreviewCover": "Preview Cover",
|
"HeaderPreviewCover": "Preview Cover",
|
||||||
"HeaderRemoveEpisode": "Remove Episode",
|
|
||||||
"HeaderRemoveEpisodes": "Remove {0} Episodes",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS Details",
|
"HeaderRSSFeedGeneral": "RSS Details",
|
||||||
"HeaderRSSFeedIsOpen": "RSS Feed is Open",
|
"HeaderRSSFeedIsOpen": "RSS Feed is Open",
|
||||||
"HeaderRSSFeeds": "RSS Feeds",
|
"HeaderRSSFeeds": "RSS Feeds",
|
||||||
|
"HeaderRemoveEpisode": "Remove Episode",
|
||||||
|
"HeaderRemoveEpisodes": "Remove {0} Episodes",
|
||||||
"HeaderSavedMediaProgress": "Saved Media Progress",
|
"HeaderSavedMediaProgress": "Saved Media Progress",
|
||||||
"HeaderSchedule": "Schedule",
|
"HeaderSchedule": "Schedule",
|
||||||
"HeaderScheduleLibraryScans": "Schedule Automatic Library Scans",
|
"HeaderScheduleLibraryScans": "Schedule Automatic Library Scans",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Guest",
|
"LabelAccountTypeGuest": "Guest",
|
||||||
"LabelAccountTypeUser": "User",
|
"LabelAccountTypeUser": "User",
|
||||||
"LabelActivity": "Activity",
|
"LabelActivity": "Activity",
|
||||||
"LabelAdded": "Added",
|
|
||||||
"LabelAddedAt": "Added At",
|
|
||||||
"LabelAddToCollection": "Add to Collection",
|
"LabelAddToCollection": "Add to Collection",
|
||||||
"LabelAddToCollectionBatch": "Add {0} Books to Collection",
|
"LabelAddToCollectionBatch": "Add {0} Books to Collection",
|
||||||
"LabelAddToPlaylist": "Add to Playlist",
|
"LabelAddToPlaylist": "Add to Playlist",
|
||||||
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
||||||
|
"LabelAdded": "Added",
|
||||||
|
"LabelAddedAt": "Added At",
|
||||||
"LabelAdminUsersOnly": "Admin users only",
|
"LabelAdminUsersOnly": "Admin users only",
|
||||||
"LabelAll": "All",
|
"LabelAll": "All",
|
||||||
"LabelAllUsers": "All Users",
|
"LabelAllUsers": "All Users",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Change Password",
|
"LabelChangePassword": "Change Password",
|
||||||
"LabelChannels": "Channels",
|
"LabelChannels": "Channels",
|
||||||
|
"LabelChapterTitle": "Chapter Title",
|
||||||
"LabelChapters": "Chapters",
|
"LabelChapters": "Chapters",
|
||||||
"LabelChaptersFound": "chapters found",
|
"LabelChaptersFound": "chapters found",
|
||||||
"LabelChapterTitle": "Chapter Title",
|
|
||||||
"LabelClickForMoreInfo": "Click for more info",
|
"LabelClickForMoreInfo": "Click for more info",
|
||||||
"LabelClosePlayer": "Close player",
|
"LabelClosePlayer": "Close player",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -257,6 +258,7 @@
|
|||||||
"LabelCurrently": "Currently:",
|
"LabelCurrently": "Currently:",
|
||||||
"LabelCustomCronExpression": "Custom Cron Expression:",
|
"LabelCustomCronExpression": "Custom Cron Expression:",
|
||||||
"LabelDatetime": "Datetime",
|
"LabelDatetime": "Datetime",
|
||||||
|
"LabelDays": "Days",
|
||||||
"LabelDeleteFromFileSystemCheckbox": "Delete from file system (uncheck to only remove from database)",
|
"LabelDeleteFromFileSystemCheckbox": "Delete from file system (uncheck to only remove from database)",
|
||||||
"LabelDescription": "Description",
|
"LabelDescription": "Description",
|
||||||
"LabelDeselectAll": "Deselect All",
|
"LabelDeselectAll": "Deselect All",
|
||||||
@@ -279,6 +281,8 @@
|
|||||||
"LabelEdit": "Edit",
|
"LabelEdit": "Edit",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "From Address",
|
"LabelEmailSettingsFromAddress": "From Address",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Secure",
|
"LabelEmailSettingsSecure": "Secure",
|
||||||
"LabelEmailSettingsSecureHelp": "If true the connection will use TLS when connecting to server. If false then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false. (from nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "If true the connection will use TLS when connecting to server. If false then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false. (from nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test Address",
|
"LabelEmailSettingsTestAddress": "Test Address",
|
||||||
@@ -304,6 +308,7 @@
|
|||||||
"LabelFolder": "Folder",
|
"LabelFolder": "Folder",
|
||||||
"LabelFolders": "Folders",
|
"LabelFolders": "Folders",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "Font family",
|
"LabelFontFamily": "Font family",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Font scale",
|
"LabelFontScale": "Font scale",
|
||||||
@@ -317,11 +322,12 @@
|
|||||||
"LabelHighestPriority": "Highest priority",
|
"LabelHighestPriority": "Highest priority",
|
||||||
"LabelHost": "Host",
|
"LabelHost": "Host",
|
||||||
"LabelHour": "Hour",
|
"LabelHour": "Hour",
|
||||||
|
"LabelHours": "Hours",
|
||||||
"LabelIcon": "Icon",
|
"LabelIcon": "Icon",
|
||||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
"LabelImageURLFromTheWeb": "Image URL from the web",
|
||||||
|
"LabelInProgress": "In Progress",
|
||||||
"LabelIncludeInTracklist": "Include in Tracklist",
|
"LabelIncludeInTracklist": "Include in Tracklist",
|
||||||
"LabelIncomplete": "Incomplete",
|
"LabelIncomplete": "Incomplete",
|
||||||
"LabelInProgress": "In Progress",
|
|
||||||
"LabelInterval": "Interval",
|
"LabelInterval": "Interval",
|
||||||
"LabelIntervalCustomDailyWeekly": "Custom daily/weekly",
|
"LabelIntervalCustomDailyWeekly": "Custom daily/weekly",
|
||||||
"LabelIntervalEvery12Hours": "Every 12 hours",
|
"LabelIntervalEvery12Hours": "Every 12 hours",
|
||||||
@@ -335,6 +341,7 @@
|
|||||||
"LabelItem": "Item",
|
"LabelItem": "Item",
|
||||||
"LabelLanguage": "Language",
|
"LabelLanguage": "Language",
|
||||||
"LabelLanguageDefaultServer": "Default Server Language",
|
"LabelLanguageDefaultServer": "Default Server Language",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Last Book Added",
|
"LabelLastBookAdded": "Last Book Added",
|
||||||
"LabelLastBookUpdated": "Last Book Updated",
|
"LabelLastBookUpdated": "Last Book Updated",
|
||||||
"LabelLastSeen": "Last Seen",
|
"LabelLastSeen": "Last Seen",
|
||||||
@@ -346,6 +353,7 @@
|
|||||||
"LabelLess": "Less",
|
"LabelLess": "Less",
|
||||||
"LabelLibrariesAccessibleToUser": "Libraries Accessible to User",
|
"LabelLibrariesAccessibleToUser": "Libraries Accessible to User",
|
||||||
"LabelLibrary": "Library",
|
"LabelLibrary": "Library",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Library Item",
|
"LabelLibraryItem": "Library Item",
|
||||||
"LabelLibraryName": "Library Name",
|
"LabelLibraryName": "Library Name",
|
||||||
"LabelLimit": "Limit",
|
"LabelLimit": "Limit",
|
||||||
@@ -360,11 +368,12 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||||
"LabelMediaPlayer": "Media Player",
|
"LabelMediaPlayer": "Media Player",
|
||||||
"LabelMediaType": "Media Type",
|
"LabelMediaType": "Media Type",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Metadata Provider",
|
|
||||||
"LabelMetaTag": "Meta Tag",
|
"LabelMetaTag": "Meta Tag",
|
||||||
"LabelMetaTags": "Meta Tags",
|
"LabelMetaTags": "Meta Tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||||
|
"LabelMetadataProvider": "Metadata Provider",
|
||||||
"LabelMinute": "Minute",
|
"LabelMinute": "Minute",
|
||||||
|
"LabelMinutes": "Minutes",
|
||||||
"LabelMissing": "Missing",
|
"LabelMissing": "Missing",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||||
@@ -376,24 +385,25 @@
|
|||||||
"LabelNarrator": "Narrator",
|
"LabelNarrator": "Narrator",
|
||||||
"LabelNarrators": "Narrators",
|
"LabelNarrators": "Narrators",
|
||||||
"LabelNew": "New",
|
"LabelNew": "New",
|
||||||
|
"LabelNewPassword": "New Password",
|
||||||
"LabelNewestAuthors": "Newest Authors",
|
"LabelNewestAuthors": "Newest Authors",
|
||||||
"LabelNewestEpisodes": "Newest Episodes",
|
"LabelNewestEpisodes": "Newest Episodes",
|
||||||
"LabelNewPassword": "New Password",
|
|
||||||
"LabelNextBackupDate": "Next backup date",
|
"LabelNextBackupDate": "Next backup date",
|
||||||
"LabelNextScheduledRun": "Next scheduled run",
|
"LabelNextScheduledRun": "Next scheduled run",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "No episodes selected",
|
"LabelNoEpisodesSelected": "No episodes selected",
|
||||||
"LabelNotes": "Notes",
|
|
||||||
"LabelNotFinished": "Not Finished",
|
"LabelNotFinished": "Not Finished",
|
||||||
|
"LabelNotStarted": "Not Started",
|
||||||
|
"LabelNotes": "Notes",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
||||||
"LabelNotificationAvailableVariables": "Available variables",
|
"LabelNotificationAvailableVariables": "Available variables",
|
||||||
"LabelNotificationBodyTemplate": "Body Template",
|
"LabelNotificationBodyTemplate": "Body Template",
|
||||||
"LabelNotificationEvent": "Notification Event",
|
"LabelNotificationEvent": "Notification Event",
|
||||||
|
"LabelNotificationTitleTemplate": "Title Template",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Max failed attempts",
|
"LabelNotificationsMaxFailedAttempts": "Max failed attempts",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Notifications are disabled once they fail to send this many times",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Notifications are disabled once they fail to send this many times",
|
||||||
"LabelNotificationsMaxQueueSize": "Max queue size for notification events",
|
"LabelNotificationsMaxQueueSize": "Max queue size for notification events",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Events are limited to firing 1 per second. Events will be ignored if the queue is at max size. This prevents notification spamming.",
|
"LabelNotificationsMaxQueueSizeHelp": "Events are limited to firing 1 per second. Events will be ignored if the queue is at max size. This prevents notification spamming.",
|
||||||
"LabelNotificationTitleTemplate": "Title Template",
|
|
||||||
"LabelNotStarted": "Not Started",
|
|
||||||
"LabelNumberOfBooks": "Number of Books",
|
"LabelNumberOfBooks": "Number of Books",
|
||||||
"LabelNumberOfEpisodes": "# of Episodes",
|
"LabelNumberOfEpisodes": "# of Episodes",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -403,6 +413,7 @@
|
|||||||
"LabelOverwrite": "Overwrite",
|
"LabelOverwrite": "Overwrite",
|
||||||
"LabelPassword": "Password",
|
"LabelPassword": "Password",
|
||||||
"LabelPath": "Path",
|
"LabelPath": "Path",
|
||||||
|
"LabelPermanent": "Permanent",
|
||||||
"LabelPermissionsAccessAllLibraries": "Can Access All Libraries",
|
"LabelPermissionsAccessAllLibraries": "Can Access All Libraries",
|
||||||
"LabelPermissionsAccessAllTags": "Can Access All Tags",
|
"LabelPermissionsAccessAllTags": "Can Access All Tags",
|
||||||
"LabelPermissionsAccessExplicitContent": "Can Access Explicit Content",
|
"LabelPermissionsAccessExplicitContent": "Can Access Explicit Content",
|
||||||
@@ -412,12 +423,13 @@
|
|||||||
"LabelPermissionsUpload": "Can Upload",
|
"LabelPermissionsUpload": "Can Upload",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Photo Path/URL",
|
"LabelPhotoPathURL": "Photo Path/URL",
|
||||||
"LabelPlaylists": "Playlists",
|
|
||||||
"LabelPlayMethod": "Play Method",
|
"LabelPlayMethod": "Play Method",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Playlists",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Podcast search region",
|
"LabelPodcastSearchRegion": "Podcast search region",
|
||||||
"LabelPodcastType": "Podcast Type",
|
"LabelPodcastType": "Podcast Type",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Prefixes to Ignore (case insensitive)",
|
"LabelPrefixesToIgnore": "Prefixes to Ignore (case insensitive)",
|
||||||
"LabelPreventIndexing": "Prevent your feed from being indexed by iTunes and Google podcast directories",
|
"LabelPreventIndexing": "Prevent your feed from being indexed by iTunes and Google podcast directories",
|
||||||
@@ -425,25 +437,26 @@
|
|||||||
"LabelProgress": "Progress",
|
"LabelProgress": "Progress",
|
||||||
"LabelProvider": "Provider",
|
"LabelProvider": "Provider",
|
||||||
"LabelPubDate": "Pub Date",
|
"LabelPubDate": "Pub Date",
|
||||||
"LabelPublisher": "Publisher",
|
|
||||||
"LabelPublishYear": "Publish Year",
|
"LabelPublishYear": "Publish Year",
|
||||||
"LabelRead": "Read",
|
"LabelPublisher": "Publisher",
|
||||||
"LabelReadAgain": "Read Again",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Read ebook without keeping progress",
|
|
||||||
"LabelRecentlyAdded": "Recently Added",
|
|
||||||
"LabelRecentSeries": "Recent Series",
|
|
||||||
"LabelRecommended": "Recommended",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Region",
|
|
||||||
"LabelReleaseDate": "Release Date",
|
|
||||||
"LabelRemoveCover": "Remove cover",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
||||||
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
||||||
"LabelRSSFeedOpen": "RSS Feed Open",
|
"LabelRSSFeedOpen": "RSS Feed Open",
|
||||||
"LabelRSSFeedPreventIndexing": "Prevent Indexing",
|
"LabelRSSFeedPreventIndexing": "Prevent Indexing",
|
||||||
"LabelRSSFeedSlug": "RSS Feed Slug",
|
"LabelRSSFeedSlug": "RSS Feed Slug",
|
||||||
"LabelRSSFeedURL": "RSS Feed URL",
|
"LabelRSSFeedURL": "RSS Feed URL",
|
||||||
|
"LabelRead": "Read",
|
||||||
|
"LabelReadAgain": "Read Again",
|
||||||
|
"LabelReadEbookWithoutProgress": "Read ebook without keeping progress",
|
||||||
|
"LabelRecentSeries": "Recent Series",
|
||||||
|
"LabelRecentlyAdded": "Recently Added",
|
||||||
|
"LabelRecommended": "Recommended",
|
||||||
|
"LabelRedo": "Redo",
|
||||||
|
"LabelRegion": "Region",
|
||||||
|
"LabelReleaseDate": "Release Date",
|
||||||
|
"LabelRemoveCover": "Remove cover",
|
||||||
|
"LabelRowsPerPage": "Rows per page",
|
||||||
"LabelSearchTerm": "Search Term",
|
"LabelSearchTerm": "Search Term",
|
||||||
"LabelSearchTitle": "Search Title",
|
"LabelSearchTitle": "Search Title",
|
||||||
"LabelSearchTitleOrASIN": "Search Title or ASIN",
|
"LabelSearchTitleOrASIN": "Search Title or ASIN",
|
||||||
@@ -498,15 +511,18 @@
|
|||||||
"LabelSettingsStoreMetadataWithItem": "Store metadata with item",
|
"LabelSettingsStoreMetadataWithItem": "Store metadata with item",
|
||||||
"LabelSettingsStoreMetadataWithItemHelp": "By default metadata files are stored in /metadata/items, enabling this setting will store metadata files in your library item folders",
|
"LabelSettingsStoreMetadataWithItemHelp": "By default metadata files are stored in /metadata/items, enabling this setting will store metadata files in your library item folders",
|
||||||
"LabelSettingsTimeFormat": "Time Format",
|
"LabelSettingsTimeFormat": "Time Format",
|
||||||
|
"LabelShare": "Share",
|
||||||
|
"LabelShareOpen": "Share Open",
|
||||||
|
"LabelShareURL": "Share URL",
|
||||||
"LabelShowAll": "Show All",
|
"LabelShowAll": "Show All",
|
||||||
"LabelShowSeconds": "Show seconds",
|
"LabelShowSeconds": "Show seconds",
|
||||||
"LabelSize": "Size",
|
"LabelSize": "Size",
|
||||||
"LabelSleepTimer": "Sleep timer",
|
"LabelSleepTimer": "Sleep timer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Start",
|
"LabelStart": "Start",
|
||||||
|
"LabelStartTime": "Start Time",
|
||||||
"LabelStarted": "Started",
|
"LabelStarted": "Started",
|
||||||
"LabelStartedAt": "Started At",
|
"LabelStartedAt": "Started At",
|
||||||
"LabelStartTime": "Start Time",
|
|
||||||
"LabelStatsAudioTracks": "Audio Tracks",
|
"LabelStatsAudioTracks": "Audio Tracks",
|
||||||
"LabelStatsAuthors": "Authors",
|
"LabelStatsAuthors": "Authors",
|
||||||
"LabelStatsBestDay": "Best Day",
|
"LabelStatsBestDay": "Best Day",
|
||||||
@@ -562,9 +578,9 @@
|
|||||||
"LabelUnknown": "Unknown",
|
"LabelUnknown": "Unknown",
|
||||||
"LabelUpdateCover": "Update Cover",
|
"LabelUpdateCover": "Update Cover",
|
||||||
"LabelUpdateCoverHelp": "Allow overwriting of existing covers for the selected books when a match is located",
|
"LabelUpdateCoverHelp": "Allow overwriting of existing covers for the selected books when a match is located",
|
||||||
"LabelUpdatedAt": "Updated At",
|
|
||||||
"LabelUpdateDetails": "Update Details",
|
"LabelUpdateDetails": "Update Details",
|
||||||
"LabelUpdateDetailsHelp": "Allow overwriting of existing details for the selected books when a match is located",
|
"LabelUpdateDetailsHelp": "Allow overwriting of existing details for the selected books when a match is located",
|
||||||
|
"LabelUpdatedAt": "Updated At",
|
||||||
"LabelUploaderDragAndDrop": "Drag & drop files or folders",
|
"LabelUploaderDragAndDrop": "Drag & drop files or folders",
|
||||||
"LabelUploaderDropFiles": "Drop files",
|
"LabelUploaderDropFiles": "Drop files",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||||
@@ -588,10 +604,14 @@
|
|||||||
"MessageAddToPlayerQueue": "Add to player queue",
|
"MessageAddToPlayerQueue": "Add to player queue",
|
||||||
"MessageAppriseDescription": "To use this feature you will need to have an instance of <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> running or an api that will handle those same requests. <br />The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at <code>http://192.168.1.1:8337</code> then you would put <code>http://192.168.1.1:8337/notify</code>.",
|
"MessageAppriseDescription": "To use this feature you will need to have an instance of <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> running or an api that will handle those same requests. <br />The Apprise API Url should be the full URL path to send the notification, e.g., if your API instance is served at <code>http://192.168.1.1:8337</code> then you would put <code>http://192.168.1.1:8337/notify</code>.",
|
||||||
"MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>do not</strong> include any files stored in your library folders.",
|
"MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>do not</strong> include any files stored in your library folders.",
|
||||||
|
"MessageBackupsLocationEditNote": "Note: Updating the backup location will not move or modify existing backups",
|
||||||
|
"MessageBackupsLocationNoEditNote": "Note: The backup location is set through an environment variable and cannot be changed here.",
|
||||||
|
"MessageBackupsLocationPathEmpty": "Backup location path cannot be empty",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match will attempt to add missing covers and metadata for the selected items. Enable the options below to allow Quick Match to overwrite existing covers and/or metadata.",
|
"MessageBatchQuickMatchDescription": "Quick Match will attempt to add missing covers and metadata for the selected items. Enable the options below to allow Quick Match to overwrite existing covers and/or metadata.",
|
||||||
"MessageBookshelfNoCollections": "You haven't made any collections yet",
|
"MessageBookshelfNoCollections": "You haven't made any collections yet",
|
||||||
"MessageBookshelfNoResultsForFilter": "No Results for filter \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "No RSS feeds are open",
|
"MessageBookshelfNoRSSFeeds": "No RSS feeds are open",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "No results for filter \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "You have no series",
|
"MessageBookshelfNoSeries": "You have no series",
|
||||||
"MessageChapterEndIsAfter": "Chapter end is after the end of your audiobook",
|
"MessageChapterEndIsAfter": "Chapter end is after the end of your audiobook",
|
||||||
"MessageChapterErrorFirstNotZero": "First chapter must start at 0",
|
"MessageChapterErrorFirstNotZero": "First chapter must start at 0",
|
||||||
@@ -612,7 +632,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Are you sure you want to mark all books in this series as finished?",
|
"MessageConfirmMarkSeriesFinished": "Are you sure you want to mark all books in this series as finished?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Are you sure you want to mark all books in this series as not finished?",
|
"MessageConfirmMarkSeriesNotFinished": "Are you sure you want to mark all books in this series as not finished?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||||
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
||||||
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Are you sure you want to remove collection \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Are you sure you want to remove collection \"{0}\"?",
|
||||||
@@ -627,7 +649,6 @@
|
|||||||
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
||||||
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Downloading episode",
|
"MessageDownloadingEpisode": "Downloading episode",
|
||||||
"MessageDragFilesIntoTrackOrder": "Drag files into correct track order",
|
"MessageDragFilesIntoTrackOrder": "Drag files into correct track order",
|
||||||
@@ -681,10 +702,10 @@
|
|||||||
"MessageNoSeries": "No Series",
|
"MessageNoSeries": "No Series",
|
||||||
"MessageNoTags": "No Tags",
|
"MessageNoTags": "No Tags",
|
||||||
"MessageNoTasksRunning": "No Tasks Running",
|
"MessageNoTasksRunning": "No Tasks Running",
|
||||||
"MessageNotYetImplemented": "Not yet implemented",
|
|
||||||
"MessageNoUpdateNecessary": "No update necessary",
|
"MessageNoUpdateNecessary": "No update necessary",
|
||||||
"MessageNoUpdatesWereNecessary": "No updates were necessary",
|
"MessageNoUpdatesWereNecessary": "No updates were necessary",
|
||||||
"MessageNoUserPlaylists": "You have no playlists",
|
"MessageNoUserPlaylists": "You have no playlists",
|
||||||
|
"MessageNotYetImplemented": "Not yet implemented",
|
||||||
"MessageOr": "or",
|
"MessageOr": "or",
|
||||||
"MessagePauseChapter": "Pause chapter playback",
|
"MessagePauseChapter": "Pause chapter playback",
|
||||||
"MessagePlayChapter": "Listen to beginning of chapter",
|
"MessagePlayChapter": "Listen to beginning of chapter",
|
||||||
@@ -703,6 +724,9 @@
|
|||||||
"MessageSelected": "{0} selected",
|
"MessageSelected": "{0} selected",
|
||||||
"MessageServerCouldNotBeReached": "Server could not be reached",
|
"MessageServerCouldNotBeReached": "Server could not be reached",
|
||||||
"MessageSetChaptersFromTracksDescription": "Set chapters using each audio file as a chapter and chapter title as the audio file name",
|
"MessageSetChaptersFromTracksDescription": "Set chapters using each audio file as a chapter and chapter title as the audio file name",
|
||||||
|
"MessageShareExpirationWillBe": "Expiration will be <strong>{0}</strong>",
|
||||||
|
"MessageShareExpiresIn": "Expires in {0}",
|
||||||
|
"MessageShareURLWillBe": "Share URL will be <strong>{0}</strong>",
|
||||||
"MessageStartPlaybackAtTime": "Start playback for \"{0}\" at {1}?",
|
"MessageStartPlaybackAtTime": "Start playback for \"{0}\" at {1}?",
|
||||||
"MessageThinking": "Thinking...",
|
"MessageThinking": "Thinking...",
|
||||||
"MessageUploaderItemFailed": "Failed to upload",
|
"MessageUploaderItemFailed": "Failed to upload",
|
||||||
@@ -787,10 +811,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
||||||
"ToastPodcastCreateFailed": "Failed to create podcast",
|
"ToastPodcastCreateFailed": "Failed to create podcast",
|
||||||
"ToastPodcastCreateSuccess": "Podcast created successfully",
|
"ToastPodcastCreateSuccess": "Podcast created successfully",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Failed to remove item from collection",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Item removed from collection",
|
|
||||||
"ToastRSSFeedCloseFailed": "Failed to close RSS feed",
|
"ToastRSSFeedCloseFailed": "Failed to close RSS feed",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS feed closed",
|
"ToastRSSFeedCloseSuccess": "RSS feed closed",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Failed to remove item from collection",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Item removed from collection",
|
||||||
"ToastSendEbookToDeviceFailed": "Failed to send ebook to device",
|
"ToastSendEbookToDeviceFailed": "Failed to send ebook to device",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Series update failed",
|
"ToastSeriesUpdateFailed": "Series update failed",
|
||||||
|
|||||||
+125
-102
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Aplicar",
|
"ButtonApply": "Aplicar",
|
||||||
"ButtonApplyChapters": "Aplicar Capítulos",
|
"ButtonApplyChapters": "Aplicar Capítulos",
|
||||||
"ButtonAuthors": "Autores",
|
"ButtonAuthors": "Autores",
|
||||||
|
"ButtonBack": "Atrás",
|
||||||
"ButtonBrowseForFolder": "Buscar por Carpeta",
|
"ButtonBrowseForFolder": "Buscar por Carpeta",
|
||||||
"ButtonCancel": "Cancelar",
|
"ButtonCancel": "Cancelar",
|
||||||
"ButtonCancelEncode": "Cancelar Codificador",
|
"ButtonCancelEncode": "Cancelar Codificador",
|
||||||
@@ -16,8 +17,8 @@
|
|||||||
"ButtonCheckAndDownloadNewEpisodes": "Verificar y Descargar Nuevos Episodios",
|
"ButtonCheckAndDownloadNewEpisodes": "Verificar y Descargar Nuevos Episodios",
|
||||||
"ButtonChooseAFolder": "Escoger una Carpeta",
|
"ButtonChooseAFolder": "Escoger una Carpeta",
|
||||||
"ButtonChooseFiles": "Escoger un Archivo",
|
"ButtonChooseFiles": "Escoger un Archivo",
|
||||||
"ButtonClearFilter": "Quitar Filtros",
|
"ButtonClearFilter": "Quitar filtros",
|
||||||
"ButtonCloseFeed": "Cerrar Fuente",
|
"ButtonCloseFeed": "Cerrar fuente",
|
||||||
"ButtonCollections": "Colecciones",
|
"ButtonCollections": "Colecciones",
|
||||||
"ButtonConfigureScanner": "Configurar Escáner",
|
"ButtonConfigureScanner": "Configurar Escáner",
|
||||||
"ButtonCreate": "Crear",
|
"ButtonCreate": "Crear",
|
||||||
@@ -46,20 +47,20 @@
|
|||||||
"ButtonNext": "Next",
|
"ButtonNext": "Next",
|
||||||
"ButtonNextChapter": "Siguiente Capítulo",
|
"ButtonNextChapter": "Siguiente Capítulo",
|
||||||
"ButtonOk": "Ok",
|
"ButtonOk": "Ok",
|
||||||
"ButtonOpenFeed": "Abrir Fuente",
|
"ButtonOpenFeed": "Abrir fuente",
|
||||||
"ButtonOpenManager": "Abrir Editor",
|
"ButtonOpenManager": "Abrir Editor",
|
||||||
"ButtonPause": "Pausar",
|
"ButtonPause": "Pausar",
|
||||||
"ButtonPlay": "Reproducir",
|
"ButtonPlay": "Reproducir",
|
||||||
"ButtonPlaying": "Reproduciendo",
|
"ButtonPlaying": "Reproduciendo",
|
||||||
"ButtonPlaylists": "Listas de Reproducción",
|
"ButtonPlaylists": "Listas de reproducción",
|
||||||
"ButtonPrevious": "Previous",
|
"ButtonPrevious": "Anterior",
|
||||||
"ButtonPreviousChapter": "Capítulo Anterior",
|
"ButtonPreviousChapter": "Capítulo Anterior",
|
||||||
"ButtonPurgeAllCache": "Purgar Todo el Cache",
|
"ButtonPurgeAllCache": "Purgar Todo el Cache",
|
||||||
"ButtonPurgeItemsCache": "Purgar Elementos de Cache",
|
"ButtonPurgeItemsCache": "Purgar Elementos de Cache",
|
||||||
"ButtonPurgeMediaProgress": "Purgar Progreso de Multimedia",
|
|
||||||
"ButtonQueueAddItem": "Agregar a la Fila",
|
"ButtonQueueAddItem": "Agregar a la Fila",
|
||||||
"ButtonQueueRemoveItem": "Remover de la Fila",
|
"ButtonQueueRemoveItem": "Remover de la Fila",
|
||||||
"ButtonQuickMatch": "Encontrar Rápido",
|
"ButtonQuickMatch": "Encontrar Rápido",
|
||||||
|
"ButtonReScan": "Re-Escanear",
|
||||||
"ButtonRead": "Leer",
|
"ButtonRead": "Leer",
|
||||||
"ButtonReadLess": "Lea menos",
|
"ButtonReadLess": "Lea menos",
|
||||||
"ButtonReadMore": "Lea mas",
|
"ButtonReadMore": "Lea mas",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Remover de Continuar Escuchando",
|
"ButtonRemoveFromContinueListening": "Remover de Continuar Escuchando",
|
||||||
"ButtonRemoveFromContinueReading": "Remover de Continuar Leyendo",
|
"ButtonRemoveFromContinueReading": "Remover de Continuar Leyendo",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Remover Serie de Continuar Series",
|
"ButtonRemoveSeriesFromContinueSeries": "Remover Serie de Continuar Series",
|
||||||
"ButtonReScan": "Re-Escanear",
|
|
||||||
"ButtonReset": "Reiniciar",
|
"ButtonReset": "Reiniciar",
|
||||||
"ButtonResetToDefault": "Restaurar valores por defecto",
|
"ButtonResetToDefault": "Restaurar valores por defecto",
|
||||||
"ButtonRestore": "Restaurar",
|
"ButtonRestore": "Restaurar",
|
||||||
@@ -93,51 +93,52 @@
|
|||||||
"ButtonUpload": "Subir",
|
"ButtonUpload": "Subir",
|
||||||
"ButtonUploadBackup": "Subir Respaldo",
|
"ButtonUploadBackup": "Subir Respaldo",
|
||||||
"ButtonUploadCover": "Subir Portada",
|
"ButtonUploadCover": "Subir Portada",
|
||||||
"ButtonUploadOPMLFile": "Subir Archivo OPML ",
|
"ButtonUploadOPMLFile": "Cargar archivo OPML",
|
||||||
"ButtonUserDelete": "Eliminar Usuario {0}",
|
"ButtonUserDelete": "Eliminar Usuario {0}",
|
||||||
"ButtonUserEdit": "Editar Usuario {0}",
|
"ButtonUserEdit": "Editar Usuario {0}",
|
||||||
"ButtonViewAll": "Ver Todos",
|
"ButtonViewAll": "Ver Todos",
|
||||||
"ButtonYes": "Aceptar",
|
"ButtonYes": "Sí",
|
||||||
"ErrorUploadFetchMetadataAPI": "Error obteniendo metadatos",
|
"ErrorUploadFetchMetadataAPI": "Error obteniendo metadatos",
|
||||||
"ErrorUploadFetchMetadataNoResults": "No se pudo obtener metadatos - Intenta actualizar el título y/o autor",
|
"ErrorUploadFetchMetadataNoResults": "No se pudo obtener metadatos - Intenta actualizar el título y/o autor",
|
||||||
"ErrorUploadLacksTitle": "Se debe tener título",
|
"ErrorUploadLacksTitle": "Se debe tener título",
|
||||||
"HeaderAccount": "Cuenta",
|
"HeaderAccount": "Cuenta",
|
||||||
"HeaderAdvanced": "Avanzado",
|
"HeaderAdvanced": "Avanzado",
|
||||||
"HeaderAppriseNotificationSettings": "Ajustes de Notificaciones de Apprise",
|
"HeaderAppriseNotificationSettings": "Ajustes de Notificaciones de Apprise",
|
||||||
|
"HeaderAudioTracks": "Pistas de audio",
|
||||||
"HeaderAudiobookTools": "Herramientas de Gestión de Archivos de Audiolibro",
|
"HeaderAudiobookTools": "Herramientas de Gestión de Archivos de Audiolibro",
|
||||||
"HeaderAudioTracks": "Pistas de Audio",
|
|
||||||
"HeaderAuthentication": "Autenticación",
|
"HeaderAuthentication": "Autenticación",
|
||||||
"HeaderBackups": "Respaldos",
|
"HeaderBackups": "Respaldos",
|
||||||
"HeaderChangePassword": "Cambiar Contraseña",
|
"HeaderChangePassword": "Cambiar Contraseña",
|
||||||
"HeaderChapters": "Capítulos",
|
"HeaderChapters": "Capítulos",
|
||||||
"HeaderChooseAFolder": "Escoger una Carpeta",
|
"HeaderChooseAFolder": "Escoger una Carpeta",
|
||||||
"HeaderCollection": "Colección",
|
"HeaderCollection": "Colección",
|
||||||
"HeaderCollectionItems": "Elementos en la Colección",
|
"HeaderCollectionItems": "Elementos en la colección",
|
||||||
"HeaderCover": "Portada",
|
"HeaderCover": "Portada",
|
||||||
"HeaderCurrentDownloads": "Descargando Actualmente",
|
"HeaderCurrentDownloads": "Descargando Actualmente",
|
||||||
|
"HeaderCustomMessageOnLogin": "Mensaje personalizado al iniciar sesión",
|
||||||
"HeaderCustomMetadataProviders": "Proveedores de metadatos personalizados",
|
"HeaderCustomMetadataProviders": "Proveedores de metadatos personalizados",
|
||||||
"HeaderDetails": "Detalles",
|
"HeaderDetails": "Detalles",
|
||||||
"HeaderDownloadQueue": "Lista de Descarga",
|
"HeaderDownloadQueue": "Lista de Descarga",
|
||||||
"HeaderEbookFiles": "Archivos de Ebook",
|
"HeaderEbookFiles": "Archivos de libros digitales",
|
||||||
"HeaderEmail": "Email",
|
"HeaderEmail": "Email",
|
||||||
"HeaderEmailSettings": "Opciones de Email",
|
"HeaderEmailSettings": "Opciones de Email",
|
||||||
"HeaderEpisodes": "Episodios",
|
"HeaderEpisodes": "Episodios",
|
||||||
"HeaderEreaderDevices": "Dispositivos Ereader",
|
"HeaderEreaderDevices": "Dispositivos Ereader",
|
||||||
"HeaderEreaderSettings": "Opciones de Ereader",
|
"HeaderEreaderSettings": "Ajustes del lector",
|
||||||
"HeaderFiles": "Elemento",
|
"HeaderFiles": "Elemento",
|
||||||
"HeaderFindChapters": "Buscar Capitulo",
|
"HeaderFindChapters": "Buscar Capitulo",
|
||||||
"HeaderIgnoredFiles": "Ignorar Elemento",
|
"HeaderIgnoredFiles": "Ignorar Elemento",
|
||||||
"HeaderItemFiles": "Carpetas de Elementos",
|
"HeaderItemFiles": "Carpetas de Elementos",
|
||||||
"HeaderItemMetadataUtils": "Utilidades de Metadata de Elementos",
|
"HeaderItemMetadataUtils": "Utilidades de Metadata de Elementos",
|
||||||
"HeaderLastListeningSession": "Ultimas Sesiones",
|
"HeaderLastListeningSession": "Ultimas Sesiones",
|
||||||
"HeaderLatestEpisodes": "Últimos Episodios",
|
"HeaderLatestEpisodes": "Últimos episodios",
|
||||||
"HeaderLibraries": "Bibliotecas",
|
"HeaderLibraries": "Bibliotecas",
|
||||||
"HeaderLibraryFiles": "Archivos de Biblioteca",
|
"HeaderLibraryFiles": "Archivos de Biblioteca",
|
||||||
"HeaderLibraryStats": "Estáticas de Biblioteca",
|
"HeaderLibraryStats": "Estáticas de Biblioteca",
|
||||||
"HeaderListeningSessions": "Sesión",
|
"HeaderListeningSessions": "Sesión",
|
||||||
"HeaderListeningStats": "Estadísticas de Tiempo Escuchado",
|
"HeaderListeningStats": "Estadísticas de Tiempo Escuchado",
|
||||||
"HeaderLogin": "Iniciar Session",
|
"HeaderLogin": "Iniciar Session",
|
||||||
"HeaderLogs": "Logs",
|
"HeaderLogs": "Registros",
|
||||||
"HeaderManageGenres": "Administrar Géneros",
|
"HeaderManageGenres": "Administrar Géneros",
|
||||||
"HeaderManageTags": "Administrar Etiquetas",
|
"HeaderManageTags": "Administrar Etiquetas",
|
||||||
"HeaderMapDetails": "Asignar Detalles",
|
"HeaderMapDetails": "Asignar Detalles",
|
||||||
@@ -153,15 +154,15 @@
|
|||||||
"HeaderPasswordAuthentication": "Autenticación por contraseña",
|
"HeaderPasswordAuthentication": "Autenticación por contraseña",
|
||||||
"HeaderPermissions": "Permisos",
|
"HeaderPermissions": "Permisos",
|
||||||
"HeaderPlayerQueue": "Fila del Reproductor",
|
"HeaderPlayerQueue": "Fila del Reproductor",
|
||||||
"HeaderPlaylist": "Lista de Reproducción",
|
"HeaderPlaylist": "Lista de reproducción",
|
||||||
"HeaderPlaylistItems": "Elementos de Lista de Reproducción",
|
"HeaderPlaylistItems": "Elementos de lista de reproducción",
|
||||||
"HeaderPodcastsToAdd": "Podcasts para agregar",
|
"HeaderPodcastsToAdd": "Podcasts para agregar",
|
||||||
"HeaderPreviewCover": "Vista Previa de Portada",
|
"HeaderPreviewCover": "Vista Previa de Portada",
|
||||||
|
"HeaderRSSFeedGeneral": "Detalles RSS",
|
||||||
|
"HeaderRSSFeedIsOpen": "Fuente RSS está abierta",
|
||||||
|
"HeaderRSSFeeds": "Fuentes RSS",
|
||||||
"HeaderRemoveEpisode": "Remover Episodio",
|
"HeaderRemoveEpisode": "Remover Episodio",
|
||||||
"HeaderRemoveEpisodes": "Remover {0} Episodios",
|
"HeaderRemoveEpisodes": "Remover {0} Episodios",
|
||||||
"HeaderRSSFeedGeneral": "Detalles RSS",
|
|
||||||
"HeaderRSSFeedIsOpen": "Fuente RSS esta abierta",
|
|
||||||
"HeaderRSSFeeds": "Fuentes RSS",
|
|
||||||
"HeaderSavedMediaProgress": "Guardar Progreso de Multimedia",
|
"HeaderSavedMediaProgress": "Guardar Progreso de Multimedia",
|
||||||
"HeaderSchedule": "Horario",
|
"HeaderSchedule": "Horario",
|
||||||
"HeaderScheduleLibraryScans": "Programar Escaneo Automático de Biblioteca",
|
"HeaderScheduleLibraryScans": "Programar Escaneo Automático de Biblioteca",
|
||||||
@@ -172,37 +173,37 @@
|
|||||||
"HeaderSettingsExperimental": "Funciones Experimentales",
|
"HeaderSettingsExperimental": "Funciones Experimentales",
|
||||||
"HeaderSettingsGeneral": "General",
|
"HeaderSettingsGeneral": "General",
|
||||||
"HeaderSettingsScanner": "Escáner",
|
"HeaderSettingsScanner": "Escáner",
|
||||||
"HeaderSleepTimer": "Temporizador para Dormir",
|
"HeaderSleepTimer": "Temporizador de apagado",
|
||||||
"HeaderStatsLargestItems": "Artículos mas Grandes",
|
"HeaderStatsLargestItems": "Artículos mas Grandes",
|
||||||
"HeaderStatsLongestItems": "Artículos mas Largos (h)",
|
"HeaderStatsLongestItems": "Artículos mas Largos (h)",
|
||||||
"HeaderStatsMinutesListeningChart": "Minutos Escuchando (Últimos 7 días)",
|
"HeaderStatsMinutesListeningChart": "Minutos escuchando (Últimos 7 días)",
|
||||||
"HeaderStatsRecentSessions": "Sesiones Recientes",
|
"HeaderStatsRecentSessions": "Sesiones recientes",
|
||||||
"HeaderStatsTop10Authors": "Top 10 Autores",
|
"HeaderStatsTop10Authors": "Top 10 Autores",
|
||||||
"HeaderStatsTop5Genres": "Top 5 Géneros",
|
"HeaderStatsTop5Genres": "Top 5 Géneros",
|
||||||
"HeaderTableOfContents": "Tabla de Contenidos",
|
"HeaderTableOfContents": "Tabla de contenidos",
|
||||||
"HeaderTools": "Herramientas",
|
"HeaderTools": "Herramientas",
|
||||||
"HeaderUpdateAccount": "Actualizar Cuenta",
|
"HeaderUpdateAccount": "Actualizar Cuenta",
|
||||||
"HeaderUpdateAuthor": "Actualizar Autor",
|
"HeaderUpdateAuthor": "Actualizar Autor",
|
||||||
"HeaderUpdateDetails": "Actualizar Detalles",
|
"HeaderUpdateDetails": "Actualizar Detalles",
|
||||||
"HeaderUpdateLibrary": "Actualizar Biblioteca",
|
"HeaderUpdateLibrary": "Actualizar Biblioteca",
|
||||||
"HeaderUsers": "Usuarios",
|
"HeaderUsers": "Usuarios",
|
||||||
"HeaderYearReview": "Year {0} in Review",
|
"HeaderYearReview": "Revisión del año {0}",
|
||||||
"HeaderYourStats": "Tus Estadísticas",
|
"HeaderYourStats": "Tus estadísticas",
|
||||||
"LabelAbridged": "Abreviado",
|
"LabelAbridged": "Abreviado",
|
||||||
"LabelAbridgedChecked": "Abridged (checked)",
|
"LabelAbridgedChecked": "Abreviado (comprobado)",
|
||||||
"LabelAbridgedUnchecked": "Unabridged (unchecked)",
|
"LabelAbridgedUnchecked": "Sin abreviar (sin comprobar)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "Accesible por",
|
||||||
"LabelAccountType": "Tipo de Cuenta",
|
"LabelAccountType": "Tipo de Cuenta",
|
||||||
"LabelAccountTypeAdmin": "Administrador",
|
"LabelAccountTypeAdmin": "Administrador",
|
||||||
"LabelAccountTypeGuest": "Invitado",
|
"LabelAccountTypeGuest": "Invitado",
|
||||||
"LabelAccountTypeUser": "Usuario",
|
"LabelAccountTypeUser": "Usuario",
|
||||||
"LabelActivity": "Actividad",
|
"LabelActivity": "Actividad",
|
||||||
"LabelAdded": "Añadido",
|
|
||||||
"LabelAddedAt": "Añadido",
|
|
||||||
"LabelAddToCollection": "Añadido a la Colección",
|
"LabelAddToCollection": "Añadido a la Colección",
|
||||||
"LabelAddToCollectionBatch": "Se Añadieron {0} Libros a la Colección",
|
"LabelAddToCollectionBatch": "Se Añadieron {0} Libros a la Colección",
|
||||||
"LabelAddToPlaylist": "Añadido a la Lista de Reproducción",
|
"LabelAddToPlaylist": "Añadido a la lista de reproducción",
|
||||||
"LabelAddToPlaylistBatch": "Se Añadieron {0} Artículos a la Lista de Reproducción",
|
"LabelAddToPlaylistBatch": "Se Añadieron {0} Artículos a la Lista de Reproducción",
|
||||||
|
"LabelAdded": "Añadido",
|
||||||
|
"LabelAddedAt": "Añadido",
|
||||||
"LabelAdminUsersOnly": "Solamente usuarios administradores",
|
"LabelAdminUsersOnly": "Solamente usuarios administradores",
|
||||||
"LabelAll": "Todos",
|
"LabelAll": "Todos",
|
||||||
"LabelAllUsers": "Todos los Usuarios",
|
"LabelAllUsers": "Todos los Usuarios",
|
||||||
@@ -214,7 +215,7 @@
|
|||||||
"LabelAuthorFirstLast": "Autor (Nombre Apellido)",
|
"LabelAuthorFirstLast": "Autor (Nombre Apellido)",
|
||||||
"LabelAuthorLastFirst": "Autor (Apellido, Nombre)",
|
"LabelAuthorLastFirst": "Autor (Apellido, Nombre)",
|
||||||
"LabelAuthors": "Autores",
|
"LabelAuthors": "Autores",
|
||||||
"LabelAutoDownloadEpisodes": "Descargar Episodios Automáticamente",
|
"LabelAutoDownloadEpisodes": "Descargar episodios automáticamente",
|
||||||
"LabelAutoFetchMetadata": "Actualizar Metadatos Automáticamente",
|
"LabelAutoFetchMetadata": "Actualizar Metadatos Automáticamente",
|
||||||
"LabelAutoFetchMetadataHelp": "Obtiene metadatos de título, autor y serie para agilizar la carga. Es posible que haya que cotejar metadatos adicionales después de la carga.",
|
"LabelAutoFetchMetadataHelp": "Obtiene metadatos de título, autor y serie para agilizar la carga. Es posible que haya que cotejar metadatos adicionales después de la carga.",
|
||||||
"LabelAutoLaunch": "Lanzamiento automático",
|
"LabelAutoLaunch": "Lanzamiento automático",
|
||||||
@@ -235,20 +236,20 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Cambiar Contraseña",
|
"LabelChangePassword": "Cambiar Contraseña",
|
||||||
"LabelChannels": "Canales",
|
"LabelChannels": "Canales",
|
||||||
|
"LabelChapterTitle": "Titulo del Capítulo",
|
||||||
"LabelChapters": "Capítulos",
|
"LabelChapters": "Capítulos",
|
||||||
"LabelChaptersFound": "Capítulo Encontrado",
|
"LabelChaptersFound": "Capítulo Encontrado",
|
||||||
"LabelChapterTitle": "Titulo del Capítulo",
|
|
||||||
"LabelClickForMoreInfo": "Click para más información",
|
"LabelClickForMoreInfo": "Click para más información",
|
||||||
"LabelClosePlayer": "Cerrar Reproductor",
|
"LabelClosePlayer": "Cerrar reproductor",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
"LabelCollapseSeries": "Colapsar Serie",
|
"LabelCollapseSeries": "Colapsar serie",
|
||||||
"LabelCollection": "Colección",
|
"LabelCollection": "Colección",
|
||||||
"LabelCollections": "Colecciones",
|
"LabelCollections": "Colecciones",
|
||||||
"LabelComplete": "Completo",
|
"LabelComplete": "Completo",
|
||||||
"LabelConfirmPassword": "Confirmar Contraseña",
|
"LabelConfirmPassword": "Confirmar Contraseña",
|
||||||
"LabelContinueListening": "Continuar Escuchando",
|
"LabelContinueListening": "Seguir escuchando",
|
||||||
"LabelContinueReading": "Continuar Leyendo",
|
"LabelContinueReading": "Continuar leyendo",
|
||||||
"LabelContinueSeries": "Continuar Serie",
|
"LabelContinueSeries": "Continuar series",
|
||||||
"LabelCover": "Portada",
|
"LabelCover": "Portada",
|
||||||
"LabelCoverImageURL": "URL de Imagen de Portada",
|
"LabelCoverImageURL": "URL de Imagen de Portada",
|
||||||
"LabelCreatedAt": "Creado",
|
"LabelCreatedAt": "Creado",
|
||||||
@@ -257,6 +258,7 @@
|
|||||||
"LabelCurrently": "En este momento:",
|
"LabelCurrently": "En este momento:",
|
||||||
"LabelCustomCronExpression": "Expresión de Cron Personalizada:",
|
"LabelCustomCronExpression": "Expresión de Cron Personalizada:",
|
||||||
"LabelDatetime": "Hora y Fecha",
|
"LabelDatetime": "Hora y Fecha",
|
||||||
|
"LabelDays": "Días",
|
||||||
"LabelDeleteFromFileSystemCheckbox": "Eliminar archivos del sistema (desmarcar para eliminar sólo de la base de datos)",
|
"LabelDeleteFromFileSystemCheckbox": "Eliminar archivos del sistema (desmarcar para eliminar sólo de la base de datos)",
|
||||||
"LabelDescription": "Descripción",
|
"LabelDescription": "Descripción",
|
||||||
"LabelDeselectAll": "Deseleccionar Todos",
|
"LabelDeselectAll": "Deseleccionar Todos",
|
||||||
@@ -274,11 +276,13 @@
|
|||||||
"LabelDurationComparisonLonger": "({0} más largo)",
|
"LabelDurationComparisonLonger": "({0} más largo)",
|
||||||
"LabelDurationComparisonShorter": "({0} más corto)",
|
"LabelDurationComparisonShorter": "({0} más corto)",
|
||||||
"LabelDurationFound": "Duración Comprobada:",
|
"LabelDurationFound": "Duración Comprobada:",
|
||||||
"LabelEbook": "Ebook",
|
"LabelEbook": "Libro electrónico",
|
||||||
"LabelEbooks": "Ebooks",
|
"LabelEbooks": "Libros electrónicos",
|
||||||
"LabelEdit": "Editar",
|
"LabelEdit": "Editar",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "Remitente",
|
"LabelEmailSettingsFromAddress": "Remitente",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Rechazar certificados no autorizados",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Deshabilitar la validación de certificados SSL puede exponer tu conexión a riesgos de seguridad, como ataques man-in-the-middle. Desactiva esta opción sólo si conoces las implicaciones y confias en el servidor de correo al que te conectas.",
|
||||||
"LabelEmailSettingsSecure": "Seguridad",
|
"LabelEmailSettingsSecure": "Seguridad",
|
||||||
"LabelEmailSettingsSecureHelp": "Si está activado, se usará TLS para conectarse al servidor. Si está apagado, se usará TLS si su servidor tiene soporte para la extensión STARTTLS. En la mayoría de los casos, puede dejar esta opción activada si se está conectando al puerto 465. Apáguela en el caso de usar los puertos 587 o 25. (de nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Si está activado, se usará TLS para conectarse al servidor. Si está apagado, se usará TLS si su servidor tiene soporte para la extensión STARTTLS. En la mayoría de los casos, puede dejar esta opción activada si se está conectando al puerto 465. Apáguela en el caso de usar los puertos 587 o 25. (de nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Probar Dirección",
|
"LabelEmailSettingsTestAddress": "Probar Dirección",
|
||||||
@@ -295,33 +299,35 @@
|
|||||||
"LabelFeedURL": "Fuente de URL",
|
"LabelFeedURL": "Fuente de URL",
|
||||||
"LabelFetchingMetadata": "Obteniendo metadatos",
|
"LabelFetchingMetadata": "Obteniendo metadatos",
|
||||||
"LabelFile": "Archivo",
|
"LabelFile": "Archivo",
|
||||||
"LabelFileBirthtime": "Archivo Creado en",
|
"LabelFileBirthtime": "Archivo creado en",
|
||||||
"LabelFileModified": "Archivo modificado",
|
"LabelFileModified": "Archivo modificado",
|
||||||
"LabelFilename": "Nombre del Archivo",
|
"LabelFilename": "Nombre del archivo",
|
||||||
"LabelFilterByUser": "Filtrar por Usuario",
|
"LabelFilterByUser": "Filtrar por Usuario",
|
||||||
"LabelFindEpisodes": "Buscar Episodio",
|
"LabelFindEpisodes": "Buscar Episodio",
|
||||||
"LabelFinished": "Terminado",
|
"LabelFinished": "Terminado",
|
||||||
"LabelFolder": "Carpeta",
|
"LabelFolder": "Carpeta",
|
||||||
"LabelFolders": "Carpetas",
|
"LabelFolders": "Carpetas",
|
||||||
"LabelFontBold": "Negrilla",
|
"LabelFontBold": "Negrilla",
|
||||||
|
"LabelFontBoldness": "Nivel de negrilla en fuente",
|
||||||
"LabelFontFamily": "Familia tipográfica",
|
"LabelFontFamily": "Familia tipográfica",
|
||||||
"LabelFontItalic": "Itálica",
|
"LabelFontItalic": "Itálica",
|
||||||
"LabelFontScale": "Tamaño de Fuente",
|
"LabelFontScale": "Tamaño de fuente",
|
||||||
"LabelFontStrikethrough": "Tachado",
|
"LabelFontStrikethrough": "Tachado",
|
||||||
"LabelFormat": "Formato",
|
"LabelFormat": "Formato",
|
||||||
"LabelGenre": "Genero",
|
"LabelGenre": "Genero",
|
||||||
"LabelGenres": "Géneros",
|
"LabelGenres": "Géneros",
|
||||||
"LabelHardDeleteFile": "Eliminar Definitivamente",
|
"LabelHardDeleteFile": "Eliminar Definitivamente",
|
||||||
"LabelHasEbook": "Tiene Ebook",
|
"LabelHasEbook": "Tiene un libro",
|
||||||
"LabelHasSupplementaryEbook": "Tiene Ebook Suplementario",
|
"LabelHasSupplementaryEbook": "Tiene un libro complementario",
|
||||||
"LabelHighestPriority": "Mayor prioridad",
|
"LabelHighestPriority": "Mayor prioridad",
|
||||||
"LabelHost": "Host",
|
"LabelHost": "Host",
|
||||||
"LabelHour": "Hora",
|
"LabelHour": "Hora",
|
||||||
|
"LabelHours": "Horas",
|
||||||
"LabelIcon": "Icono",
|
"LabelIcon": "Icono",
|
||||||
"LabelImageURLFromTheWeb": "URL de la imagen",
|
"LabelImageURLFromTheWeb": "URL de la imagen",
|
||||||
|
"LabelInProgress": "En proceso",
|
||||||
"LabelIncludeInTracklist": "Incluir en la Tracklist",
|
"LabelIncludeInTracklist": "Incluir en la Tracklist",
|
||||||
"LabelIncomplete": "Incompleto",
|
"LabelIncomplete": "Incompleto",
|
||||||
"LabelInProgress": "En Proceso",
|
|
||||||
"LabelInterval": "Intervalo",
|
"LabelInterval": "Intervalo",
|
||||||
"LabelIntervalCustomDailyWeekly": "Personalizar diario/semanal",
|
"LabelIntervalCustomDailyWeekly": "Personalizar diario/semanal",
|
||||||
"LabelIntervalEvery12Hours": "Cada 12 Horas",
|
"LabelIntervalEvery12Hours": "Cada 12 Horas",
|
||||||
@@ -333,8 +339,9 @@
|
|||||||
"LabelIntervalEveryHour": "Cada Hora",
|
"LabelIntervalEveryHour": "Cada Hora",
|
||||||
"LabelInvert": "Invertir",
|
"LabelInvert": "Invertir",
|
||||||
"LabelItem": "Elemento",
|
"LabelItem": "Elemento",
|
||||||
"LabelLanguage": "Lenguaje",
|
"LabelLanguage": "Idioma",
|
||||||
"LabelLanguageDefaultServer": "Lenguaje Predeterminado del Servidor",
|
"LabelLanguageDefaultServer": "Lenguaje Predeterminado del Servidor",
|
||||||
|
"LabelLanguages": "Idiomas",
|
||||||
"LabelLastBookAdded": "Último Libro Agregado",
|
"LabelLastBookAdded": "Último Libro Agregado",
|
||||||
"LabelLastBookUpdated": "Último Libro Actualizado",
|
"LabelLastBookUpdated": "Último Libro Actualizado",
|
||||||
"LabelLastSeen": "Última Vez Visto",
|
"LabelLastSeen": "Última Vez Visto",
|
||||||
@@ -346,11 +353,12 @@
|
|||||||
"LabelLess": "Menos",
|
"LabelLess": "Menos",
|
||||||
"LabelLibrariesAccessibleToUser": "Bibliotecas Disponibles para el Usuario",
|
"LabelLibrariesAccessibleToUser": "Bibliotecas Disponibles para el Usuario",
|
||||||
"LabelLibrary": "Biblioteca",
|
"LabelLibrary": "Biblioteca",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Elemento de Biblioteca",
|
"LabelLibraryItem": "Elemento de Biblioteca",
|
||||||
"LabelLibraryName": "Nombre de Biblioteca",
|
"LabelLibraryName": "Nombre de Biblioteca",
|
||||||
"LabelLimit": "Limites",
|
"LabelLimit": "Limites",
|
||||||
"LabelLineSpacing": "Interlineado",
|
"LabelLineSpacing": "Interlineado",
|
||||||
"LabelListenAgain": "Escuchar Otra Vez",
|
"LabelListenAgain": "Volver a escuchar",
|
||||||
"LabelLogLevelDebug": "Debug",
|
"LabelLogLevelDebug": "Debug",
|
||||||
"LabelLogLevelInfo": "Información",
|
"LabelLogLevelInfo": "Información",
|
||||||
"LabelLogLevelWarn": "Advertencia",
|
"LabelLogLevelWarn": "Advertencia",
|
||||||
@@ -359,50 +367,53 @@
|
|||||||
"LabelMatchExistingUsersBy": "Emparejar a los usuarios existentes por",
|
"LabelMatchExistingUsersBy": "Emparejar a los usuarios existentes por",
|
||||||
"LabelMatchExistingUsersByDescription": "Se utiliza para conectar usuarios existentes. Una vez conectados, los usuarios serán emparejados por un identificador único de su proveedor de SSO",
|
"LabelMatchExistingUsersByDescription": "Se utiliza para conectar usuarios existentes. Una vez conectados, los usuarios serán emparejados por un identificador único de su proveedor de SSO",
|
||||||
"LabelMediaPlayer": "Reproductor de Medios",
|
"LabelMediaPlayer": "Reproductor de Medios",
|
||||||
"LabelMediaType": "Tipo de Multimedia",
|
"LabelMediaType": "Tipo de multimedia",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Las fuentes de metadatos de mayor prioridad prevalecerán sobre las de menor prioridad",
|
|
||||||
"LabelMetadataProvider": "Proveedor de Metadatos",
|
|
||||||
"LabelMetaTag": "Metaetiqueta",
|
"LabelMetaTag": "Metaetiqueta",
|
||||||
"LabelMetaTags": "Metaetiquetas",
|
"LabelMetaTags": "Metaetiquetas",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Las fuentes de metadatos de mayor prioridad prevalecerán sobre las de menor prioridad",
|
||||||
|
"LabelMetadataProvider": "Proveedor de Metadatos",
|
||||||
"LabelMinute": "Minuto",
|
"LabelMinute": "Minuto",
|
||||||
|
"LabelMinutes": "Minutos",
|
||||||
"LabelMissing": "Ausente",
|
"LabelMissing": "Ausente",
|
||||||
"LabelMissingEbook": "No tiene ebook",
|
"LabelMissingEbook": "No tiene ebook",
|
||||||
"LabelMissingSupplementaryEbook": "No tiene ebook suplementario",
|
"LabelMissingSupplementaryEbook": "No tiene ebook suplementario",
|
||||||
"LabelMobileRedirectURIs": "URIs de redirección a móviles permitidos",
|
"LabelMobileRedirectURIs": "URIs de redirección a móviles permitidos",
|
||||||
"LabelMobileRedirectURIsDescription": "Esta es una lista de URIs válidos para redireccionamiento de apps móviles. La URI por defecto es <code>audiobookshelf://oauth</code>, la cual puedes remover or corroborar con URIs adicionales para la integración con apps de terceros. Utilizando un asterisco (<code>*</code>) como el único punto de entrada permite cualquier URI.",
|
"LabelMobileRedirectURIsDescription": "Esta es una lista blanca de URI de redireccionamiento válidos para aplicaciones móviles. El predeterminado es <code> audiobookshelf</code> , que puede eliminar o complementar con URI adicionales para la integración de aplicaciones de terceros. Usando un asterisco (<code> *</code> ) como única entrada que permite cualquier URI.",
|
||||||
"LabelMore": "Más",
|
"LabelMore": "Más",
|
||||||
"LabelMoreInfo": "Más Información",
|
"LabelMoreInfo": "Más información",
|
||||||
"LabelName": "Nombre",
|
"LabelName": "Nombre",
|
||||||
"LabelNarrator": "Narrador",
|
"LabelNarrator": "Narrador",
|
||||||
"LabelNarrators": "Narradores",
|
"LabelNarrators": "Narradores",
|
||||||
"LabelNew": "Nuevo",
|
"LabelNew": "Nuevo",
|
||||||
"LabelNewestAuthors": "Nuevos Autores",
|
|
||||||
"LabelNewestEpisodes": "Nuevos Episodios",
|
|
||||||
"LabelNewPassword": "Nueva Contraseña",
|
"LabelNewPassword": "Nueva Contraseña",
|
||||||
|
"LabelNewestAuthors": "Autores más recientes",
|
||||||
|
"LabelNewestEpisodes": "Episodios más recientes",
|
||||||
"LabelNextBackupDate": "Fecha del Siguiente Respaldo",
|
"LabelNextBackupDate": "Fecha del Siguiente Respaldo",
|
||||||
"LabelNextScheduledRun": "Próxima Ejecución Programada",
|
"LabelNextScheduledRun": "Próxima Ejecución Programada",
|
||||||
|
"LabelNoCustomMetadataProviders": "Sin proveedores de metadatos personalizados",
|
||||||
"LabelNoEpisodesSelected": "Ningún Episodio Seleccionado",
|
"LabelNoEpisodesSelected": "Ningún Episodio Seleccionado",
|
||||||
|
"LabelNotFinished": "No terminado",
|
||||||
|
"LabelNotStarted": "Sin iniciar",
|
||||||
"LabelNotes": "Notas",
|
"LabelNotes": "Notas",
|
||||||
"LabelNotFinished": "No Terminado",
|
|
||||||
"LabelNotificationAppriseURL": "URL(s) de Apprise",
|
"LabelNotificationAppriseURL": "URL(s) de Apprise",
|
||||||
"LabelNotificationAvailableVariables": "Variables Disponibles",
|
"LabelNotificationAvailableVariables": "Variables Disponibles",
|
||||||
"LabelNotificationBodyTemplate": "Plantilla de Cuerpo",
|
"LabelNotificationBodyTemplate": "Plantilla de Cuerpo",
|
||||||
"LabelNotificationEvent": "Evento de Notificación",
|
"LabelNotificationEvent": "Evento de Notificación",
|
||||||
|
"LabelNotificationTitleTemplate": "Plantilla de Titulo",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Máximo de Intentos Fallidos",
|
"LabelNotificationsMaxFailedAttempts": "Máximo de Intentos Fallidos",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Las notificaciones se desactivan después de fallar este número de veces",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Las notificaciones se desactivan después de fallar este número de veces",
|
||||||
"LabelNotificationsMaxQueueSize": "Tamaño máximo de la cola de notificaciones",
|
"LabelNotificationsMaxQueueSize": "Tamaño máximo de la cola de notificaciones",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Las notificaciones están limitadas a 1 por segundo. Las notificaciones serán ignoradas si llegan al numero máximo de cola para prevenir spam de eventos.",
|
"LabelNotificationsMaxQueueSizeHelp": "Las notificaciones están limitadas a 1 por segundo. Las notificaciones serán ignoradas si llegan al numero máximo de cola para prevenir spam de eventos.",
|
||||||
"LabelNotificationTitleTemplate": "Plantilla de Titulo",
|
|
||||||
"LabelNotStarted": "Sin Iniciar",
|
|
||||||
"LabelNumberOfBooks": "Numero de Libros",
|
"LabelNumberOfBooks": "Numero de Libros",
|
||||||
"LabelNumberOfEpisodes": "# de Episodios",
|
"LabelNumberOfEpisodes": "# de Episodios",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Nombre de la notificación de OpenID que contiene permisos avanzados para acciones de usuario dentro de la aplicación que se aplicarán a roles que no sean de administrador (<b>si están configurados</b>). Si el reclamo no aparece en la respuesta, se denegará el acceso a ABS. Si falta una sola opción, se tratará como <code>falsa</code>. Asegúrese de que la notificación del proveedor de identidades coincida con la estructura esperada:",
|
||||||
"LabelOpenIDClaims": "Leave the following options empty to disable advanced group and permissions assignment, automatically assigning 'User' group then.",
|
"LabelOpenIDClaims": "Deje las siguientes opciones vacías para deshabilitar la asignación avanzada de grupos y permisos, lo que asignaría de manera automática al grupo 'Usuario'",
|
||||||
"LabelOpenIDGroupClaimDescription": "Name of the OpenID claim that contains a list of the user's groups. Commonly referred to as <code>groups</code>. <b>If configured</b>, the application will automatically assign roles based on the user's group memberships, provided that these groups are named case-insensitively 'admin', 'user', or 'guest' in the claim. The claim should contain a list, and if a user belongs to multiple groups, the application will assign the role corresponding to the highest level of access. If no group matches, access will be denied.",
|
"LabelOpenIDGroupClaimDescription": "Nombre de la declaración OpenID que contiene una lista de grupos del usuario. Comúnmente conocidos como <code>grupos</code>. <b>Si se configura</b>, la aplicación asignará automáticamente roles en función de la pertenencia a grupos del usuario, siempre que estos grupos se denominen \"admin\", \"user\" o \"guest\" en la notificación. La solicitud debe contener una lista, y si un usuario pertenece a varios grupos, la aplicación asignará el rol correspondiente al mayor nivel de acceso. Si ningún grupo coincide, se denegará el acceso.",
|
||||||
"LabelOpenRSSFeed": "Abrir Fuente RSS",
|
"LabelOpenRSSFeed": "Abrir Fuente RSS",
|
||||||
"LabelOverwrite": "Sobrescribir",
|
"LabelOverwrite": "Sobrescribir",
|
||||||
"LabelPassword": "Contraseña",
|
"LabelPassword": "Contraseña",
|
||||||
"LabelPath": "Ruta de Carpeta",
|
"LabelPath": "Ruta de carpeta",
|
||||||
|
"LabelPermanent": "Permanente",
|
||||||
"LabelPermissionsAccessAllLibraries": "Puede Accesar a Todas las bibliotecas",
|
"LabelPermissionsAccessAllLibraries": "Puede Accesar a Todas las bibliotecas",
|
||||||
"LabelPermissionsAccessAllTags": "Pueda Accesar a Todas las Etiquetas",
|
"LabelPermissionsAccessAllTags": "Pueda Accesar a Todas las Etiquetas",
|
||||||
"LabelPermissionsAccessExplicitContent": "Puede Accesar a Contenido Explicito",
|
"LabelPermissionsAccessExplicitContent": "Puede Accesar a Contenido Explicito",
|
||||||
@@ -410,45 +421,47 @@
|
|||||||
"LabelPermissionsDownload": "Puede Descargar",
|
"LabelPermissionsDownload": "Puede Descargar",
|
||||||
"LabelPermissionsUpdate": "Puede Actualizar",
|
"LabelPermissionsUpdate": "Puede Actualizar",
|
||||||
"LabelPermissionsUpload": "Puede Subir",
|
"LabelPermissionsUpload": "Puede Subir",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Revisión de tu año ({0})",
|
||||||
"LabelPhotoPathURL": "Ruta de Acceso/URL de Foto",
|
"LabelPhotoPathURL": "Ruta de Acceso/URL de Foto",
|
||||||
"LabelPlaylists": "Lista de Reproducción",
|
|
||||||
"LabelPlayMethod": "Método de Reproducción",
|
"LabelPlayMethod": "Método de Reproducción",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Lista de Reproducción",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Región de búsqueda de podcasts",
|
"LabelPodcastSearchRegion": "Región de búsqueda de podcasts",
|
||||||
"LabelPodcastType": "Tipo Podcast",
|
"LabelPodcastType": "Tipo Podcast",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Puerto",
|
"LabelPort": "Puerto",
|
||||||
"LabelPrefixesToIgnore": "Prefijos para Ignorar (no distingue entre mayúsculas y minúsculas.)",
|
"LabelPrefixesToIgnore": "Prefijos para Ignorar (no distingue entre mayúsculas y minúsculas.)",
|
||||||
"LabelPreventIndexing": "Evite que su fuente sea indexada por los directorios de podcasts de iTunes y Google",
|
"LabelPreventIndexing": "Evite que su fuente sea indexada por los directorios de podcasts de iTunes y Google",
|
||||||
"LabelPrimaryEbook": "Ebook principal",
|
"LabelPrimaryEbook": "Ebook principal",
|
||||||
"LabelProgress": "Progreso",
|
"LabelProgress": "Progreso",
|
||||||
"LabelProvider": "Proveedor",
|
"LabelProvider": "Proveedor",
|
||||||
"LabelPubDate": "Fecha de Publicación",
|
"LabelPubDate": "Fecha de publicación",
|
||||||
|
"LabelPublishYear": "Año de publicación",
|
||||||
"LabelPublisher": "Editor",
|
"LabelPublisher": "Editor",
|
||||||
"LabelPublishYear": "Año de Publicación",
|
"LabelPublishers": "Editores",
|
||||||
|
"LabelRSSFeedCustomOwnerEmail": "Correo electrónico de dueño personalizado",
|
||||||
|
"LabelRSSFeedCustomOwnerName": "Nombre de dueño personalizado",
|
||||||
|
"LabelRSSFeedOpen": "Fuente RSS Abierta",
|
||||||
|
"LabelRSSFeedPreventIndexing": "Prevenir indexado",
|
||||||
|
"LabelRSSFeedSlug": "Fuente RSS Slug",
|
||||||
|
"LabelRSSFeedURL": "URL de Fuente RSS",
|
||||||
"LabelRead": "Leído",
|
"LabelRead": "Leído",
|
||||||
"LabelReadAgain": "Volver a leer",
|
"LabelReadAgain": "Volver a leer",
|
||||||
"LabelReadEbookWithoutProgress": "Leer Ebook sin guardar progreso",
|
"LabelReadEbookWithoutProgress": "Leer Ebook sin guardar progreso",
|
||||||
"LabelRecentlyAdded": "Agregado Recientemente",
|
|
||||||
"LabelRecentSeries": "Series Recientes",
|
"LabelRecentSeries": "Series Recientes",
|
||||||
|
"LabelRecentlyAdded": "Agregado Recientemente",
|
||||||
"LabelRecommended": "Recomendados",
|
"LabelRecommended": "Recomendados",
|
||||||
"LabelRedo": "Rehacer",
|
"LabelRedo": "Rehacer",
|
||||||
"LabelRegion": "Región",
|
"LabelRegion": "Región",
|
||||||
"LabelReleaseDate": "Fecha de Estreno",
|
"LabelReleaseDate": "Fecha de Estreno",
|
||||||
"LabelRemoveCover": "Remover Portada",
|
"LabelRemoveCover": "Remover Portada",
|
||||||
"LabelRowsPerPage": "Filas por página",
|
"LabelRowsPerPage": "Filas por página",
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Email de dueño personalizado",
|
|
||||||
"LabelRSSFeedCustomOwnerName": "Nombre de dueño personalizado",
|
|
||||||
"LabelRSSFeedOpen": "Fuente RSS Abierta",
|
|
||||||
"LabelRSSFeedPreventIndexing": "Prevenir Indexado",
|
|
||||||
"LabelRSSFeedSlug": "Fuente RSS Slug",
|
|
||||||
"LabelRSSFeedURL": "URL de Fuente RSS",
|
|
||||||
"LabelSearchTerm": "Buscar Termino",
|
"LabelSearchTerm": "Buscar Termino",
|
||||||
"LabelSearchTitle": "Buscar Titulo",
|
"LabelSearchTitle": "Buscar Titulo",
|
||||||
"LabelSearchTitleOrASIN": "Buscar Título o ASIN",
|
"LabelSearchTitleOrASIN": "Buscar Título o ASIN",
|
||||||
"LabelSeason": "Temporada",
|
"LabelSeason": "Temporada",
|
||||||
"LabelSelectAll": "Select all",
|
"LabelSelectAll": "Seleccionar todo",
|
||||||
"LabelSelectAllEpisodes": "Seleccionar todos los episodios",
|
"LabelSelectAllEpisodes": "Seleccionar todos los episodios",
|
||||||
"LabelSelectEpisodesShowing": "Seleccionar los {0} episodios visibles",
|
"LabelSelectEpisodesShowing": "Seleccionar los {0} episodios visibles",
|
||||||
"LabelSelectUsers": "Seleccionar usuarios",
|
"LabelSelectUsers": "Seleccionar usuarios",
|
||||||
@@ -457,7 +470,7 @@
|
|||||||
"LabelSeries": "Series",
|
"LabelSeries": "Series",
|
||||||
"LabelSeriesName": "Nombre de la Serie",
|
"LabelSeriesName": "Nombre de la Serie",
|
||||||
"LabelSeriesProgress": "Progreso de la Serie",
|
"LabelSeriesProgress": "Progreso de la Serie",
|
||||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
"LabelServerYearReview": "Resumen del año del servidor ({0})",
|
||||||
"LabelSetEbookAsPrimary": "Establecer como primario",
|
"LabelSetEbookAsPrimary": "Establecer como primario",
|
||||||
"LabelSetEbookAsSupplementary": "Establecer como suplementario",
|
"LabelSetEbookAsSupplementary": "Establecer como suplementario",
|
||||||
"LabelSettingsAudiobooksOnly": "Sólo Audiolibros",
|
"LabelSettingsAudiobooksOnly": "Sólo Audiolibros",
|
||||||
@@ -471,8 +484,8 @@
|
|||||||
"LabelSettingsEnableWatcher": "Habilitar Watcher",
|
"LabelSettingsEnableWatcher": "Habilitar Watcher",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "Habilitar Watcher para la carpeta de esta biblioteca",
|
"LabelSettingsEnableWatcherForLibrary": "Habilitar Watcher para la carpeta de esta biblioteca",
|
||||||
"LabelSettingsEnableWatcherHelp": "Permite agregar/actualizar elementos automáticamente cuando se detectan cambios en los archivos. *Requiere reiniciar el servidor",
|
"LabelSettingsEnableWatcherHelp": "Permite agregar/actualizar elementos automáticamente cuando se detectan cambios en los archivos. *Requiere reiniciar el servidor",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Permitir scripts en epubs",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Permitir que los archivos epub ejecuten scripts. Se recomienda mantener esta opción desactivada a menos que confíe en el origen de los archivos epub.",
|
||||||
"LabelSettingsExperimentalFeatures": "Funciones Experimentales",
|
"LabelSettingsExperimentalFeatures": "Funciones Experimentales",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "Funciones en desarrollo que se beneficiarían de sus comentarios y experiencias de prueba. Haga click aquí para abrir una conversación en Github.",
|
"LabelSettingsExperimentalFeaturesHelp": "Funciones en desarrollo que se beneficiarían de sus comentarios y experiencias de prueba. Haga click aquí para abrir una conversación en Github.",
|
||||||
"LabelSettingsFindCovers": "Buscar Portadas",
|
"LabelSettingsFindCovers": "Buscar Portadas",
|
||||||
@@ -481,7 +494,7 @@
|
|||||||
"LabelSettingsHideSingleBookSeriesHelp": "Las series con un solo libro no aparecerán en la página de series ni la repisa para series de la página principal.",
|
"LabelSettingsHideSingleBookSeriesHelp": "Las series con un solo libro no aparecerán en la página de series ni la repisa para series de la página principal.",
|
||||||
"LabelSettingsHomePageBookshelfView": "Usar la vista de librero en la página principal",
|
"LabelSettingsHomePageBookshelfView": "Usar la vista de librero en la página principal",
|
||||||
"LabelSettingsLibraryBookshelfView": "Usar la vista de librero en la biblioteca",
|
"LabelSettingsLibraryBookshelfView": "Usar la vista de librero en la biblioteca",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Saltar libros anteriores de la serie Continuada",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "El estante de la página de inicio de Continuar Serie muestra el primer libro no iniciado de una serie que tenga por lo menos un libro finalizado y no tenga libros en progreso. Habilitar esta opción le permitirá continuar series desde el último libro que ha completado en vez del primer libro que no ha empezado.",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "El estante de la página de inicio de Continuar Serie muestra el primer libro no iniciado de una serie que tenga por lo menos un libro finalizado y no tenga libros en progreso. Habilitar esta opción le permitirá continuar series desde el último libro que ha completado en vez del primer libro que no ha empezado.",
|
||||||
"LabelSettingsParseSubtitles": "Extraer Subtítulos",
|
"LabelSettingsParseSubtitles": "Extraer Subtítulos",
|
||||||
"LabelSettingsParseSubtitlesHelp": "Extraer subtítulos de los nombres de las carpetas de los audiolibros.<br>Los subtítulos deben estar separados por \" - \"<br>Por ejemplo: \"Ejemplo de Título - Subtítulo Aquí\" tiene el subtítulo \"Subtítulo Aquí\"",
|
"LabelSettingsParseSubtitlesHelp": "Extraer subtítulos de los nombres de las carpetas de los audiolibros.<br>Los subtítulos deben estar separados por \" - \"<br>Por ejemplo: \"Ejemplo de Título - Subtítulo Aquí\" tiene el subtítulo \"Subtítulo Aquí\"",
|
||||||
@@ -490,23 +503,25 @@
|
|||||||
"LabelSettingsSkipMatchingBooksWithASIN": "Omitir libros coincidentes que ya tengan un ASIN",
|
"LabelSettingsSkipMatchingBooksWithASIN": "Omitir libros coincidentes que ya tengan un ASIN",
|
||||||
"LabelSettingsSkipMatchingBooksWithISBN": "Omitir libros coincidentes que ya tengan un ISBN",
|
"LabelSettingsSkipMatchingBooksWithISBN": "Omitir libros coincidentes que ya tengan un ISBN",
|
||||||
"LabelSettingsSortingIgnorePrefixes": "Ignorar prefijos al ordenar",
|
"LabelSettingsSortingIgnorePrefixes": "Ignorar prefijos al ordenar",
|
||||||
"LabelSettingsSortingIgnorePrefixesHelp": "Por ejemplo: El prefijo \"el\" del titulo \"El titulo del libro\" se ordenará como \"Titulo del Libro, el\".",
|
"LabelSettingsSortingIgnorePrefixesHelp": "Es decir, para el prefijo \"el\" título del libro, \"El título del libro\" se ordenaría como \"Título del libro, El\"",
|
||||||
"LabelSettingsSquareBookCovers": "Usar portadas cuadradas",
|
"LabelSettingsSquareBookCovers": "Usar portadas cuadradas",
|
||||||
"LabelSettingsSquareBookCoversHelp": "Prefierir usar portadas cuadradas sobre las portadas estándar 1.6:1",
|
"LabelSettingsSquareBookCoversHelp": "Prefierir usar portadas cuadradas sobre las portadas estándar 1.6:1",
|
||||||
"LabelSettingsStoreCoversWithItem": "Guardar portadas con elementos",
|
"LabelSettingsStoreCoversWithItem": "Guardar portadas con elementos",
|
||||||
"LabelSettingsStoreCoversWithItemHelp": "Por defecto, las portadas se almacenan en /metadata/items. Si habilita esta opción, las portadas se almacenarán en la carpeta de elementos de su biblioteca. Se guardará un solo archivo llamado \"cover\".",
|
"LabelSettingsStoreCoversWithItemHelp": "De forma predeterminada, las portadas se almacenan en /metadata/items, activando esta opción almacenará las portadas en la carpeta de elementos de la biblioteca. Sólo se conservará un archivo llamado \"cover\"",
|
||||||
"LabelSettingsStoreMetadataWithItem": "Guardar metadatos con elementos",
|
"LabelSettingsStoreMetadataWithItem": "Guardar metadatos con elementos",
|
||||||
"LabelSettingsStoreMetadataWithItemHelp": "Por defecto, los archivos de metadatos se almacenan en /metadata/items. Si habilita esta opción, los archivos de metadatos se guardarán en la carpeta de elementos de su biblioteca",
|
"LabelSettingsStoreMetadataWithItemHelp": "Por defecto, los archivos de metadatos se almacenan en /metadata/items. Si habilita esta opción, los archivos de metadatos se guardarán en la carpeta de elementos de su biblioteca",
|
||||||
"LabelSettingsTimeFormat": "Formato de Tiempo",
|
"LabelSettingsTimeFormat": "Formato de Tiempo",
|
||||||
|
"LabelShare": "Compartir",
|
||||||
|
"LabelShareURL": "Compartir la URL",
|
||||||
"LabelShowAll": "Mostrar Todos",
|
"LabelShowAll": "Mostrar Todos",
|
||||||
"LabelShowSeconds": "Mostrar segundos",
|
"LabelShowSeconds": "Mostrar segundos",
|
||||||
"LabelSize": "Tamaño",
|
"LabelSize": "Tamaño",
|
||||||
"LabelSleepTimer": "Temporizador para Dormir",
|
"LabelSleepTimer": "Temporizador de apagado",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Iniciar",
|
"LabelStart": "Iniciar",
|
||||||
|
"LabelStartTime": "Tiempo de Inicio",
|
||||||
"LabelStarted": "Iniciado",
|
"LabelStarted": "Iniciado",
|
||||||
"LabelStartedAt": "Iniciado En",
|
"LabelStartedAt": "Iniciado En",
|
||||||
"LabelStartTime": "Tiempo de Inicio",
|
|
||||||
"LabelStatsAudioTracks": "Pistas de Audio",
|
"LabelStatsAudioTracks": "Pistas de Audio",
|
||||||
"LabelStatsAuthors": "Autores",
|
"LabelStatsAuthors": "Autores",
|
||||||
"LabelStatsBestDay": "Mejor Día",
|
"LabelStatsBestDay": "Mejor Día",
|
||||||
@@ -561,10 +576,10 @@
|
|||||||
"LabelUndo": "Deshacer",
|
"LabelUndo": "Deshacer",
|
||||||
"LabelUnknown": "Desconocido",
|
"LabelUnknown": "Desconocido",
|
||||||
"LabelUpdateCover": "Actualizar Portada",
|
"LabelUpdateCover": "Actualizar Portada",
|
||||||
"LabelUpdateCoverHelp": "Permitir sobrescribir las portadas existentes de los libros seleccionados cuando sean encontradas.",
|
"LabelUpdateCoverHelp": "Permitir sobrescribir las portadas existentes para los libros seleccionados cuando se encuentra una coincidencia",
|
||||||
"LabelUpdatedAt": "Actualizado En",
|
|
||||||
"LabelUpdateDetails": "Actualizar Detalles",
|
"LabelUpdateDetails": "Actualizar Detalles",
|
||||||
"LabelUpdateDetailsHelp": "Permitir sobrescribir detalles existentes de los libros seleccionados cuando sean encontrados",
|
"LabelUpdateDetailsHelp": "Permitir sobrescribir detalles existentes de los libros seleccionados cuando sean encontrados",
|
||||||
|
"LabelUpdatedAt": "Actualizado En",
|
||||||
"LabelUploaderDragAndDrop": "Arrastre y suelte archivos o carpetas",
|
"LabelUploaderDragAndDrop": "Arrastre y suelte archivos o carpetas",
|
||||||
"LabelUploaderDropFiles": "Suelte los Archivos",
|
"LabelUploaderDropFiles": "Suelte los Archivos",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Buscar título, autor y series automáticamente",
|
"LabelUploaderItemFetchMetadataHelp": "Buscar título, autor y series automáticamente",
|
||||||
@@ -588,12 +603,16 @@
|
|||||||
"MessageAddToPlayerQueue": "Agregar a fila del Reproductor",
|
"MessageAddToPlayerQueue": "Agregar a fila del Reproductor",
|
||||||
"MessageAppriseDescription": "Para usar esta función deberás tener <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">la API de Apprise</a> corriendo o una API que maneje los mismos resultados. <br/>La URL de la API de Apprise debe tener la misma ruta de archivos que donde se envían las notificaciones. Por ejemplo: si su API esta en <code>http://192.168.1.1:8337</code> entonces pondría <code>http://192.168.1.1:8337/notify</code>.",
|
"MessageAppriseDescription": "Para usar esta función deberás tener <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">la API de Apprise</a> corriendo o una API que maneje los mismos resultados. <br/>La URL de la API de Apprise debe tener la misma ruta de archivos que donde se envían las notificaciones. Por ejemplo: si su API esta en <code>http://192.168.1.1:8337</code> entonces pondría <code>http://192.168.1.1:8337/notify</code>.",
|
||||||
"MessageBackupsDescription": "Los respaldos incluyen: usuarios, el progreso del los usuarios, los detalles de los elementos de la biblioteca, la configuración del servidor y las imágenes en <code>/metadata/items</code> y <code>/metadata/authors</code>. Los Respaldos <strong>NO</strong> incluyen ningún archivo guardado en la carpeta de tu biblioteca.",
|
"MessageBackupsDescription": "Los respaldos incluyen: usuarios, el progreso del los usuarios, los detalles de los elementos de la biblioteca, la configuración del servidor y las imágenes en <code>/metadata/items</code> y <code>/metadata/authors</code>. Los Respaldos <strong>NO</strong> incluyen ningún archivo guardado en la carpeta de tu biblioteca.",
|
||||||
|
"MessageBackupsLocationEditNote": "Nota: Actualizar la ubicación de la copia de seguridad no moverá ni modificará las copias de seguridad existentes",
|
||||||
|
"MessageBackupsLocationNoEditNote": "Nota: La ubicación de la copia de seguridad se establece a través de una variable de entorno y no se puede cambiar aquí.",
|
||||||
|
"MessageBackupsLocationPathEmpty": "La ruta de la copia de seguridad no puede estar vacía",
|
||||||
"MessageBatchQuickMatchDescription": "\"Encontrar Rápido\" tratará de agregar portadas y metadatos faltantes de los elementos seleccionados. Habilite la opción de abajo para que \"Encontrar Rápido\" pueda sobrescribir portadas y/o metadatos existentes.",
|
"MessageBatchQuickMatchDescription": "\"Encontrar Rápido\" tratará de agregar portadas y metadatos faltantes de los elementos seleccionados. Habilite la opción de abajo para que \"Encontrar Rápido\" pueda sobrescribir portadas y/o metadatos existentes.",
|
||||||
"MessageBookshelfNoCollections": "No tienes ninguna colección.",
|
"MessageBookshelfNoCollections": "No tienes ninguna colección.",
|
||||||
"MessageBookshelfNoResultsForFilter": "Ningún Resultado para el filtro \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Ninguna Fuente RSS esta abierta",
|
"MessageBookshelfNoRSSFeeds": "Ninguna Fuente RSS esta abierta",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Ningún Resultado para el filtro \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No hay resultados para la consulta",
|
||||||
"MessageBookshelfNoSeries": "No tienes ninguna serie",
|
"MessageBookshelfNoSeries": "No tienes ninguna serie",
|
||||||
"MessageChapterEndIsAfter": "El final del capítulo es después del final de su audiolibro.",
|
"MessageChapterEndIsAfter": "El final del capítulo es después del final de tu audiolibro.",
|
||||||
"MessageChapterErrorFirstNotZero": "El primer capitulo debe iniciar en 0",
|
"MessageChapterErrorFirstNotZero": "El primer capitulo debe iniciar en 0",
|
||||||
"MessageChapterErrorStartGteDuration": "El tiempo de inicio no es válido: debe ser inferior a la duración del audiolibro.",
|
"MessageChapterErrorStartGteDuration": "El tiempo de inicio no es válido: debe ser inferior a la duración del audiolibro.",
|
||||||
"MessageChapterErrorStartLtPrev": "El tiempo de inicio no es válido: debe ser mayor o igual que el tiempo de inicio del capítulo anterior",
|
"MessageChapterErrorStartLtPrev": "El tiempo de inicio no es válido: debe ser mayor o igual que el tiempo de inicio del capítulo anterior",
|
||||||
@@ -612,7 +631,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "¿Está seguro de que desea marcar todos los libros en esta serie como terminados?",
|
"MessageConfirmMarkSeriesFinished": "¿Está seguro de que desea marcar todos los libros en esta serie como terminados?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "¿Está seguro de que desea marcar todos los libros en esta serie como no terminados?",
|
"MessageConfirmMarkSeriesNotFinished": "¿Está seguro de que desea marcar todos los libros en esta serie como no terminados?",
|
||||||
"MessageConfirmPurgeCache": "Purgar el caché eliminará el directorio completo ubicado en <code>/metadata/cache</code>. <br /><br />¿Está seguro que desea eliminar el directorio del caché?",
|
"MessageConfirmPurgeCache": "Purgar el caché eliminará el directorio completo ubicado en <code>/metadata/cache</code>. <br /><br />¿Está seguro que desea eliminar el directorio del caché?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purgar la caché de los elementos eliminará todo el directorio <code>/metadata/cache/items</code>.<br />¿Estás seguro?",
|
||||||
"MessageConfirmQuickEmbed": "¡Advertencia! La integración rápida no realiza copias de seguridad a ninguno de tus archivos de audio. Asegúrate de haber realizado una copia de los mismos previamente. <br><br>¿Deseas continuar?",
|
"MessageConfirmQuickEmbed": "¡Advertencia! La integración rápida no realiza copias de seguridad a ninguno de tus archivos de audio. Asegúrate de haber realizado una copia de los mismos previamente. <br><br>¿Deseas continuar?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "¿Estás seguro de querer re escanear {0} elemento(s)?",
|
||||||
"MessageConfirmRemoveAllChapters": "¿Está seguro de que desea remover todos los capitulos?",
|
"MessageConfirmRemoveAllChapters": "¿Está seguro de que desea remover todos los capitulos?",
|
||||||
"MessageConfirmRemoveAuthor": "¿Está seguro de que desea remover el autor \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "¿Está seguro de que desea remover el autor \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "¿Está seguro de que desea remover la colección \"{0}\"?",
|
"MessageConfirmRemoveCollection": "¿Está seguro de que desea remover la colección \"{0}\"?",
|
||||||
@@ -627,13 +648,12 @@
|
|||||||
"MessageConfirmRenameTag": "¿Está seguro de que desea renombrar la etiqueta \"{0}\" a \"{1}\" de todos los elementos?",
|
"MessageConfirmRenameTag": "¿Está seguro de que desea renombrar la etiqueta \"{0}\" a \"{1}\" de todos los elementos?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Nota: Esta etiqueta ya existe, por lo que se fusionarán.",
|
"MessageConfirmRenameTagMergeNote": "Nota: Esta etiqueta ya existe, por lo que se fusionarán.",
|
||||||
"MessageConfirmRenameTagWarning": "Advertencia! Una etiqueta similar ya existe \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Advertencia! Una etiqueta similar ya existe \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "¿Estás seguro de querer re escanear {0} elemento(s)?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "¿Está seguro de que enviar {0} ebook(s) \"{1}\" al dispositivo \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "¿Está seguro de que enviar {0} ebook(s) \"{1}\" al dispositivo \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Descargando Capitulo",
|
"MessageDownloadingEpisode": "Descargando Capitulo",
|
||||||
"MessageDragFilesIntoTrackOrder": "Arrastra los archivos al orden correcto de las pistas.",
|
"MessageDragFilesIntoTrackOrder": "Arrastra los archivos al orden correcto de las pistas.",
|
||||||
"MessageEmbedFinished": "Incrustación Terminada!",
|
"MessageEmbedFinished": "Incrustación Terminada!",
|
||||||
"MessageEpisodesQueuedForDownload": "{0} Episodio(s) en cola para descargar",
|
"MessageEpisodesQueuedForDownload": "{0} Episodio(s) en cola para descargar",
|
||||||
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below.",
|
"MessageEreaderDevices": "Para garantizar la entrega de libros electrónicos, es posible que tenga que agregar la dirección de correo electrónico anterior como remitente válido para cada dispositivo enumerado a continuación.",
|
||||||
"MessageFeedURLWillBe": "URL de la fuente será {0}",
|
"MessageFeedURLWillBe": "URL de la fuente será {0}",
|
||||||
"MessageFetching": "Buscando...",
|
"MessageFetching": "Buscando...",
|
||||||
"MessageForceReScanDescription": "Escaneará todos los archivos como un nuevo escaneo. Archivos de audio con etiquetas ID3, archivos OPF y archivos de texto serán escaneados como nuevos.",
|
"MessageForceReScanDescription": "Escaneará todos los archivos como un nuevo escaneo. Archivos de audio con etiquetas ID3, archivos OPF y archivos de texto serán escaneados como nuevos.",
|
||||||
@@ -651,14 +671,14 @@
|
|||||||
"MessageMapChapterTitles": "Asignar los nombres de capítulos a los capítulos existentes en tu audiolibro sin ajustar sus tiempos",
|
"MessageMapChapterTitles": "Asignar los nombres de capítulos a los capítulos existentes en tu audiolibro sin ajustar sus tiempos",
|
||||||
"MessageMarkAllEpisodesFinished": "Marcar todos los episodios como terminados",
|
"MessageMarkAllEpisodesFinished": "Marcar todos los episodios como terminados",
|
||||||
"MessageMarkAllEpisodesNotFinished": "Marcar todos los episodios como no terminados",
|
"MessageMarkAllEpisodesNotFinished": "Marcar todos los episodios como no terminados",
|
||||||
"MessageMarkAsFinished": "Marcar como Terminado",
|
"MessageMarkAsFinished": "Marcar como terminado",
|
||||||
"MessageMarkAsNotFinished": "Marcar como No Terminado",
|
"MessageMarkAsNotFinished": "Marcar como No Terminado",
|
||||||
"MessageMatchBooksDescription": "Se intentará hacer coincidir los libros de la biblioteca con un libro del proveedor de búsqueda seleccionado, y se rellenarán los detalles vacíos y la portada. No sobrescribe los detalles.",
|
"MessageMatchBooksDescription": "Se intentará hacer coincidir los libros de la biblioteca con un libro del proveedor de búsqueda seleccionado, y se rellenarán los detalles vacíos y la portada. No sobrescribe los detalles.",
|
||||||
"MessageNoAudioTracks": "Sin Pista de Audio",
|
"MessageNoAudioTracks": "Sin Pista de Audio",
|
||||||
"MessageNoAuthors": "Sin Autores",
|
"MessageNoAuthors": "Sin Autores",
|
||||||
"MessageNoBackups": "Sin Respaldos",
|
"MessageNoBackups": "Sin Respaldos",
|
||||||
"MessageNoBookmarks": "Sin Marcadores",
|
"MessageNoBookmarks": "Sin marcadores",
|
||||||
"MessageNoChapters": "Sin Capítulos",
|
"MessageNoChapters": "Sin capítulos",
|
||||||
"MessageNoCollections": "Sin Colecciones",
|
"MessageNoCollections": "Sin Colecciones",
|
||||||
"MessageNoCoversFound": "Ninguna Portada Encontrada",
|
"MessageNoCoversFound": "Ninguna Portada Encontrada",
|
||||||
"MessageNoDescription": "Sin Descripción",
|
"MessageNoDescription": "Sin Descripción",
|
||||||
@@ -669,9 +689,9 @@
|
|||||||
"MessageNoFoldersAvailable": "No Hay Carpetas Disponibles",
|
"MessageNoFoldersAvailable": "No Hay Carpetas Disponibles",
|
||||||
"MessageNoGenres": "Sin Géneros",
|
"MessageNoGenres": "Sin Géneros",
|
||||||
"MessageNoIssues": "Sin Problemas",
|
"MessageNoIssues": "Sin Problemas",
|
||||||
"MessageNoItems": "Sin Elementos",
|
"MessageNoItems": "Sin elementos",
|
||||||
"MessageNoItemsFound": "Ningún Elemento Encontrado",
|
"MessageNoItemsFound": "Ningún elemento encontrado",
|
||||||
"MessageNoListeningSessions": "Ninguna Session Escuchada",
|
"MessageNoListeningSessions": "Ninguna sesión escuchada",
|
||||||
"MessageNoLogs": "No hay logs",
|
"MessageNoLogs": "No hay logs",
|
||||||
"MessageNoMediaProgress": "Multimedia sin Progreso",
|
"MessageNoMediaProgress": "Multimedia sin Progreso",
|
||||||
"MessageNoNotifications": "Ninguna Notificación",
|
"MessageNoNotifications": "Ninguna Notificación",
|
||||||
@@ -681,10 +701,10 @@
|
|||||||
"MessageNoSeries": "Sin Series",
|
"MessageNoSeries": "Sin Series",
|
||||||
"MessageNoTags": "Sin Etiquetas",
|
"MessageNoTags": "Sin Etiquetas",
|
||||||
"MessageNoTasksRunning": "Ninguna Tarea Corriendo",
|
"MessageNoTasksRunning": "Ninguna Tarea Corriendo",
|
||||||
"MessageNotYetImplemented": "Aun no implementado",
|
|
||||||
"MessageNoUpdateNecessary": "No es necesario actualizar",
|
"MessageNoUpdateNecessary": "No es necesario actualizar",
|
||||||
"MessageNoUpdatesWereNecessary": "No fue necesario actualizar",
|
"MessageNoUpdatesWereNecessary": "No fue necesario actualizar",
|
||||||
"MessageNoUserPlaylists": "No tienes lista de reproducciones",
|
"MessageNoUserPlaylists": "No tienes lista de reproducciones",
|
||||||
|
"MessageNotYetImplemented": "Aun no implementado",
|
||||||
"MessageOr": "o",
|
"MessageOr": "o",
|
||||||
"MessagePauseChapter": "Pausar la reproducción del capítulo",
|
"MessagePauseChapter": "Pausar la reproducción del capítulo",
|
||||||
"MessagePlayChapter": "Escuchar el comienzo del capítulo",
|
"MessagePlayChapter": "Escuchar el comienzo del capítulo",
|
||||||
@@ -703,6 +723,9 @@
|
|||||||
"MessageSelected": "{0} seleccionado(s)",
|
"MessageSelected": "{0} seleccionado(s)",
|
||||||
"MessageServerCouldNotBeReached": "No se pudo establecer la conexión con el servidor",
|
"MessageServerCouldNotBeReached": "No se pudo establecer la conexión con el servidor",
|
||||||
"MessageSetChaptersFromTracksDescription": "Establecer capítulos usando cada archivo de audio como un capítulo y el título del capítulo como el nombre del archivo de audio",
|
"MessageSetChaptersFromTracksDescription": "Establecer capítulos usando cada archivo de audio como un capítulo y el título del capítulo como el nombre del archivo de audio",
|
||||||
|
"MessageShareExpirationWillBe": "La caducidad será <strong>{0}</strong>",
|
||||||
|
"MessageShareExpiresIn": "Caduduca en {0}",
|
||||||
|
"MessageShareURLWillBe": "La URL para compartir será <strong> {0} </strong>",
|
||||||
"MessageStartPlaybackAtTime": "Iniciar reproducción para \"{0}\" en {1}?",
|
"MessageStartPlaybackAtTime": "Iniciar reproducción para \"{0}\" en {1}?",
|
||||||
"MessageThinking": "Pensando...",
|
"MessageThinking": "Pensando...",
|
||||||
"MessageUploaderItemFailed": "Error al Subir",
|
"MessageUploaderItemFailed": "Error al Subir",
|
||||||
@@ -767,9 +790,9 @@
|
|||||||
"ToastItemDetailsUpdateFailed": "Error al actualizar los detalles del elemento",
|
"ToastItemDetailsUpdateFailed": "Error al actualizar los detalles del elemento",
|
||||||
"ToastItemDetailsUpdateSuccess": "Detalles del Elemento Actualizados",
|
"ToastItemDetailsUpdateSuccess": "Detalles del Elemento Actualizados",
|
||||||
"ToastItemDetailsUpdateUnneeded": "No se necesitan actualizaciones para los detalles del Elemento",
|
"ToastItemDetailsUpdateUnneeded": "No se necesitan actualizaciones para los detalles del Elemento",
|
||||||
"ToastItemMarkedAsFinishedFailed": "Error al marcar como Terminado",
|
"ToastItemMarkedAsFinishedFailed": "Error al marcar como terminado",
|
||||||
"ToastItemMarkedAsFinishedSuccess": "Elemento marcado como terminado",
|
"ToastItemMarkedAsFinishedSuccess": "Elemento marcado como terminado",
|
||||||
"ToastItemMarkedAsNotFinishedFailed": "Error al marcar como No Terminado",
|
"ToastItemMarkedAsNotFinishedFailed": "No se ha podido marcar como no finalizado",
|
||||||
"ToastItemMarkedAsNotFinishedSuccess": "Elemento marcado como No Terminado",
|
"ToastItemMarkedAsNotFinishedSuccess": "Elemento marcado como No Terminado",
|
||||||
"ToastLibraryCreateFailed": "Error al crear biblioteca",
|
"ToastLibraryCreateFailed": "Error al crear biblioteca",
|
||||||
"ToastLibraryCreateSuccess": "Biblioteca \"{0}\" creada",
|
"ToastLibraryCreateSuccess": "Biblioteca \"{0}\" creada",
|
||||||
@@ -779,7 +802,7 @@
|
|||||||
"ToastLibraryScanStarted": "Se inició el escaneo de la biblioteca",
|
"ToastLibraryScanStarted": "Se inició el escaneo de la biblioteca",
|
||||||
"ToastLibraryUpdateFailed": "Error al actualizar la biblioteca",
|
"ToastLibraryUpdateFailed": "Error al actualizar la biblioteca",
|
||||||
"ToastLibraryUpdateSuccess": "Biblioteca \"{0}\" actualizada",
|
"ToastLibraryUpdateSuccess": "Biblioteca \"{0}\" actualizada",
|
||||||
"ToastPlaylistCreateFailed": "Error al crear la lista de reproducción.",
|
"ToastPlaylistCreateFailed": "Error al crear la lista de reproducción",
|
||||||
"ToastPlaylistCreateSuccess": "Lista de reproducción creada",
|
"ToastPlaylistCreateSuccess": "Lista de reproducción creada",
|
||||||
"ToastPlaylistRemoveFailed": "Error al eliminar la lista de reproducción",
|
"ToastPlaylistRemoveFailed": "Error al eliminar la lista de reproducción",
|
||||||
"ToastPlaylistRemoveSuccess": "Lista de reproducción eliminada",
|
"ToastPlaylistRemoveSuccess": "Lista de reproducción eliminada",
|
||||||
@@ -787,10 +810,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Lista de reproducción actualizada",
|
"ToastPlaylistUpdateSuccess": "Lista de reproducción actualizada",
|
||||||
"ToastPodcastCreateFailed": "Error al crear podcast",
|
"ToastPodcastCreateFailed": "Error al crear podcast",
|
||||||
"ToastPodcastCreateSuccess": "Podcast creado",
|
"ToastPodcastCreateSuccess": "Podcast creado",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Error al eliminar el elemento de la colección",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Elemento eliminado de la colección.",
|
|
||||||
"ToastRSSFeedCloseFailed": "Error al cerrar fuente RSS",
|
"ToastRSSFeedCloseFailed": "Error al cerrar fuente RSS",
|
||||||
"ToastRSSFeedCloseSuccess": "Fuente RSS cerrada",
|
"ToastRSSFeedCloseSuccess": "Fuente RSS cerrada",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Error al eliminar el elemento de la colección",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Elemento eliminado de la colección.",
|
||||||
"ToastSendEbookToDeviceFailed": "Error al enviar el ebook al dispositivo",
|
"ToastSendEbookToDeviceFailed": "Error al enviar el ebook al dispositivo",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook enviado al dispositivo \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook enviado al dispositivo \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Error al actualizar la serie",
|
"ToastSeriesUpdateFailed": "Error al actualizar la serie",
|
||||||
|
|||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Rakenda",
|
"ButtonApply": "Rakenda",
|
||||||
"ButtonApplyChapters": "Rakenda peatükid",
|
"ButtonApplyChapters": "Rakenda peatükid",
|
||||||
"ButtonAuthors": "Autorid",
|
"ButtonAuthors": "Autorid",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "Sirvi kausta",
|
"ButtonBrowseForFolder": "Sirvi kausta",
|
||||||
"ButtonCancel": "Tühista",
|
"ButtonCancel": "Tühista",
|
||||||
"ButtonCancelEncode": "Tühista kodeerimine",
|
"ButtonCancelEncode": "Tühista kodeerimine",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Eelmine peatükk",
|
"ButtonPreviousChapter": "Eelmine peatükk",
|
||||||
"ButtonPurgeAllCache": "Tühjenda kogu vahemälu",
|
"ButtonPurgeAllCache": "Tühjenda kogu vahemälu",
|
||||||
"ButtonPurgeItemsCache": "Tühjenda esemete vahemälu",
|
"ButtonPurgeItemsCache": "Tühjenda esemete vahemälu",
|
||||||
"ButtonPurgeMediaProgress": "Tühjenda meedia edenemine",
|
|
||||||
"ButtonQueueAddItem": "Lisa järjekorda",
|
"ButtonQueueAddItem": "Lisa järjekorda",
|
||||||
"ButtonQueueRemoveItem": "Eemalda järjekorrast",
|
"ButtonQueueRemoveItem": "Eemalda järjekorrast",
|
||||||
"ButtonQuickMatch": "Kiire sobitamine",
|
"ButtonQuickMatch": "Kiire sobitamine",
|
||||||
|
"ButtonReScan": "Uuestiskaneeri",
|
||||||
"ButtonRead": "Loe",
|
"ButtonRead": "Loe",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Eemalda jätkake kuulamisest",
|
"ButtonRemoveFromContinueListening": "Eemalda jätkake kuulamisest",
|
||||||
"ButtonRemoveFromContinueReading": "Eemalda jätkake lugemisest",
|
"ButtonRemoveFromContinueReading": "Eemalda jätkake lugemisest",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Eemalda seeria jätkamisest",
|
"ButtonRemoveSeriesFromContinueSeries": "Eemalda seeria jätkamisest",
|
||||||
"ButtonReScan": "Uuestiskaneeri",
|
|
||||||
"ButtonReset": "Lähtesta",
|
"ButtonReset": "Lähtesta",
|
||||||
"ButtonResetToDefault": "Lähtesta vaikeseade",
|
"ButtonResetToDefault": "Lähtesta vaikeseade",
|
||||||
"ButtonRestore": "Taasta",
|
"ButtonRestore": "Taasta",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Konto",
|
"HeaderAccount": "Konto",
|
||||||
"HeaderAdvanced": "Täpsem",
|
"HeaderAdvanced": "Täpsem",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise teavitamise seaded",
|
"HeaderAppriseNotificationSettings": "Apprise teavitamise seaded",
|
||||||
"HeaderAudiobookTools": "Heliraamatu failihaldustööriistad",
|
|
||||||
"HeaderAudioTracks": "Helirajad",
|
"HeaderAudioTracks": "Helirajad",
|
||||||
|
"HeaderAudiobookTools": "Heliraamatu failihaldustööriistad",
|
||||||
"HeaderAuthentication": "Autentimine",
|
"HeaderAuthentication": "Autentimine",
|
||||||
"HeaderBackups": "Varukoopiad",
|
"HeaderBackups": "Varukoopiad",
|
||||||
"HeaderChangePassword": "Muuda parooli",
|
"HeaderChangePassword": "Muuda parooli",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Kogu esemed",
|
"HeaderCollectionItems": "Kogu esemed",
|
||||||
"HeaderCover": "Ümbris",
|
"HeaderCover": "Ümbris",
|
||||||
"HeaderCurrentDownloads": "Praegused allalaadimised",
|
"HeaderCurrentDownloads": "Praegused allalaadimised",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Kohandatud metaandmete pakkujad",
|
"HeaderCustomMetadataProviders": "Kohandatud metaandmete pakkujad",
|
||||||
"HeaderDetails": "Detailid",
|
"HeaderDetails": "Detailid",
|
||||||
"HeaderDownloadQueue": "Allalaadimise järjekord",
|
"HeaderDownloadQueue": "Allalaadimise järjekord",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Mänguloendi esemed",
|
"HeaderPlaylistItems": "Mänguloendi esemed",
|
||||||
"HeaderPodcastsToAdd": "Lisatavad podcastid",
|
"HeaderPodcastsToAdd": "Lisatavad podcastid",
|
||||||
"HeaderPreviewCover": "Eelvaate kaas",
|
"HeaderPreviewCover": "Eelvaate kaas",
|
||||||
"HeaderRemoveEpisode": "Eemalda episood",
|
|
||||||
"HeaderRemoveEpisodes": "Eemalda {0} episoodi",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS-i üksikasjad",
|
"HeaderRSSFeedGeneral": "RSS-i üksikasjad",
|
||||||
"HeaderRSSFeedIsOpen": "RSS-voog on avatud",
|
"HeaderRSSFeedIsOpen": "RSS-voog on avatud",
|
||||||
"HeaderRSSFeeds": "RSS-vooged",
|
"HeaderRSSFeeds": "RSS-vooged",
|
||||||
|
"HeaderRemoveEpisode": "Eemalda episood",
|
||||||
|
"HeaderRemoveEpisodes": "Eemalda {0} episoodi",
|
||||||
"HeaderSavedMediaProgress": "Salvestatud meedia edenemine",
|
"HeaderSavedMediaProgress": "Salvestatud meedia edenemine",
|
||||||
"HeaderSchedule": "Ajakava",
|
"HeaderSchedule": "Ajakava",
|
||||||
"HeaderScheduleLibraryScans": "Ajasta automaatsed raamatukogu skaneerimised",
|
"HeaderScheduleLibraryScans": "Ajasta automaatsed raamatukogu skaneerimised",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Külaline",
|
"LabelAccountTypeGuest": "Külaline",
|
||||||
"LabelAccountTypeUser": "Kasutaja",
|
"LabelAccountTypeUser": "Kasutaja",
|
||||||
"LabelActivity": "Tegevus",
|
"LabelActivity": "Tegevus",
|
||||||
"LabelAdded": "Lisatud",
|
|
||||||
"LabelAddedAt": "Lisatud",
|
|
||||||
"LabelAddToCollection": "Lisa kogusse",
|
"LabelAddToCollection": "Lisa kogusse",
|
||||||
"LabelAddToCollectionBatch": "Lisa {0} raamatut kogusse",
|
"LabelAddToCollectionBatch": "Lisa {0} raamatut kogusse",
|
||||||
"LabelAddToPlaylist": "Lisa mänguloendisse",
|
"LabelAddToPlaylist": "Lisa mänguloendisse",
|
||||||
"LabelAddToPlaylistBatch": "Lisa {0} eset mänguloendisse",
|
"LabelAddToPlaylistBatch": "Lisa {0} eset mänguloendisse",
|
||||||
|
"LabelAdded": "Lisatud",
|
||||||
|
"LabelAddedAt": "Lisatud",
|
||||||
"LabelAdminUsersOnly": "Ainult administraatorid",
|
"LabelAdminUsersOnly": "Ainult administraatorid",
|
||||||
"LabelAll": "Kõik",
|
"LabelAll": "Kõik",
|
||||||
"LabelAllUsers": "Kõik kasutajad",
|
"LabelAllUsers": "Kõik kasutajad",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Muuda parooli",
|
"LabelChangePassword": "Muuda parooli",
|
||||||
"LabelChannels": "Kanalid",
|
"LabelChannels": "Kanalid",
|
||||||
|
"LabelChapterTitle": "Peatüki pealkiri",
|
||||||
"LabelChapters": "Peatükid",
|
"LabelChapters": "Peatükid",
|
||||||
"LabelChaptersFound": "peatükid leitud",
|
"LabelChaptersFound": "peatükid leitud",
|
||||||
"LabelChapterTitle": "Peatüki pealkiri",
|
|
||||||
"LabelClickForMoreInfo": "Klõpsa lisateabe saamiseks",
|
"LabelClickForMoreInfo": "Klõpsa lisateabe saamiseks",
|
||||||
"LabelClosePlayer": "Sulge mängija",
|
"LabelClosePlayer": "Sulge mängija",
|
||||||
"LabelCodec": "Kodek",
|
"LabelCodec": "Kodek",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Muuda",
|
"LabelEdit": "Muuda",
|
||||||
"LabelEmail": "E-post",
|
"LabelEmail": "E-post",
|
||||||
"LabelEmailSettingsFromAddress": "Saatja aadress",
|
"LabelEmailSettingsFromAddress": "Saatja aadress",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Turvaline",
|
"LabelEmailSettingsSecure": "Turvaline",
|
||||||
"LabelEmailSettingsSecureHelp": "Kui see on tõene, kasutab ühendus serveriga ühenduse loomisel TLS-i. Kui see on väär, kasutatakse TLS-i, kui server toetab STARTTLS-i laiendust. Enamikul juhtudest seadke see väärtus tõeks, kui ühendate pordile 465. Pordi 587 või 25 korral hoidke seda väär. (nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Kui see on tõene, kasutab ühendus serveriga ühenduse loomisel TLS-i. Kui see on väär, kasutatakse TLS-i, kui server toetab STARTTLS-i laiendust. Enamikul juhtudest seadke see väärtus tõeks, kui ühendate pordile 465. Pordi 587 või 25 korral hoidke seda väär. (nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Testi aadress",
|
"LabelEmailSettingsTestAddress": "Testi aadress",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Kaust",
|
"LabelFolder": "Kaust",
|
||||||
"LabelFolders": "Kataloogid",
|
"LabelFolders": "Kataloogid",
|
||||||
"LabelFontBold": "Paks",
|
"LabelFontBold": "Paks",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "Fondi pere",
|
"LabelFontFamily": "Fondi pere",
|
||||||
"LabelFontItalic": "Kaldkiri",
|
"LabelFontItalic": "Kaldkiri",
|
||||||
"LabelFontScale": "Fondi suurus",
|
"LabelFontScale": "Fondi suurus",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Tund",
|
"LabelHour": "Tund",
|
||||||
"LabelIcon": "Ikoon",
|
"LabelIcon": "Ikoon",
|
||||||
"LabelImageURLFromTheWeb": "Pildi URL veebist",
|
"LabelImageURLFromTheWeb": "Pildi URL veebist",
|
||||||
|
"LabelInProgress": "Pooleli",
|
||||||
"LabelIncludeInTracklist": "Kaasa jälgimisloendis",
|
"LabelIncludeInTracklist": "Kaasa jälgimisloendis",
|
||||||
"LabelIncomplete": "Puudulik",
|
"LabelIncomplete": "Puudulik",
|
||||||
"LabelInProgress": "Pooleli",
|
|
||||||
"LabelInterval": "Intervall",
|
"LabelInterval": "Intervall",
|
||||||
"LabelIntervalCustomDailyWeekly": "Kohandatud päevane/nädalane",
|
"LabelIntervalCustomDailyWeekly": "Kohandatud päevane/nädalane",
|
||||||
"LabelIntervalEvery12Hours": "Iga 12 tunni tagant",
|
"LabelIntervalEvery12Hours": "Iga 12 tunni tagant",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Kirje",
|
"LabelItem": "Kirje",
|
||||||
"LabelLanguage": "Keel",
|
"LabelLanguage": "Keel",
|
||||||
"LabelLanguageDefaultServer": "Vaikeserveri keel",
|
"LabelLanguageDefaultServer": "Vaikeserveri keel",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Viimati lisatud raamat",
|
"LabelLastBookAdded": "Viimati lisatud raamat",
|
||||||
"LabelLastBookUpdated": "Viimati uuendatud raamat",
|
"LabelLastBookUpdated": "Viimati uuendatud raamat",
|
||||||
"LabelLastSeen": "Viimati nähtud",
|
"LabelLastSeen": "Viimati nähtud",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Vähem",
|
"LabelLess": "Vähem",
|
||||||
"LabelLibrariesAccessibleToUser": "Kasutajale ligipääsetavad raamatukogud",
|
"LabelLibrariesAccessibleToUser": "Kasutajale ligipääsetavad raamatukogud",
|
||||||
"LabelLibrary": "Raamatukogu",
|
"LabelLibrary": "Raamatukogu",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Raamatukogu kirje",
|
"LabelLibraryItem": "Raamatukogu kirje",
|
||||||
"LabelLibraryName": "Raamatukogu nimi",
|
"LabelLibraryName": "Raamatukogu nimi",
|
||||||
"LabelLimit": "Piirang",
|
"LabelLimit": "Piirang",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Kasutatakse olemasolevate kasutajate ühendamiseks. Ühendatud kasutajaid sobitatakse teie SSO pakkuja unikaalse ID järgi.",
|
"LabelMatchExistingUsersByDescription": "Kasutatakse olemasolevate kasutajate ühendamiseks. Ühendatud kasutajaid sobitatakse teie SSO pakkuja unikaalse ID järgi.",
|
||||||
"LabelMediaPlayer": "Meediapleier",
|
"LabelMediaPlayer": "Meediapleier",
|
||||||
"LabelMediaType": "Meedia tüüp",
|
"LabelMediaType": "Meedia tüüp",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Kõrgema prioriteediga metaandmete allikad võtavad üle madalama prioriteediga metaandmete allikad",
|
|
||||||
"LabelMetadataProvider": "Metaandmete pakkuja",
|
|
||||||
"LabelMetaTag": "Meta märge",
|
"LabelMetaTag": "Meta märge",
|
||||||
"LabelMetaTags": "Meta märgendid",
|
"LabelMetaTags": "Meta märgendid",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Kõrgema prioriteediga metaandmete allikad võtavad üle madalama prioriteediga metaandmete allikad",
|
||||||
|
"LabelMetadataProvider": "Metaandmete pakkuja",
|
||||||
"LabelMinute": "Minut",
|
"LabelMinute": "Minut",
|
||||||
"LabelMissing": "Puudub",
|
"LabelMissing": "Puudub",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Jutustaja",
|
"LabelNarrator": "Jutustaja",
|
||||||
"LabelNarrators": "Jutustajad",
|
"LabelNarrators": "Jutustajad",
|
||||||
"LabelNew": "Uus",
|
"LabelNew": "Uus",
|
||||||
|
"LabelNewPassword": "Uus parool",
|
||||||
"LabelNewestAuthors": "Uusimad autorid",
|
"LabelNewestAuthors": "Uusimad autorid",
|
||||||
"LabelNewestEpisodes": "Uusimad episoodid",
|
"LabelNewestEpisodes": "Uusimad episoodid",
|
||||||
"LabelNewPassword": "Uus parool",
|
|
||||||
"LabelNextBackupDate": "Järgmine varukoopia kuupäev",
|
"LabelNextBackupDate": "Järgmine varukoopia kuupäev",
|
||||||
"LabelNextScheduledRun": "Järgmine ajakava järgmine",
|
"LabelNextScheduledRun": "Järgmine ajakava järgmine",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "Episoodid pole valitud",
|
"LabelNoEpisodesSelected": "Episoodid pole valitud",
|
||||||
"LabelNotes": "Märkused",
|
|
||||||
"LabelNotFinished": "Ei ole lõpetatud",
|
"LabelNotFinished": "Ei ole lõpetatud",
|
||||||
|
"LabelNotStarted": "Pole alustatud",
|
||||||
|
"LabelNotes": "Märkused",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL-id",
|
"LabelNotificationAppriseURL": "Apprise URL-id",
|
||||||
"LabelNotificationAvailableVariables": "Saadaolevad muutujad",
|
"LabelNotificationAvailableVariables": "Saadaolevad muutujad",
|
||||||
"LabelNotificationBodyTemplate": "Keha mall",
|
"LabelNotificationBodyTemplate": "Keha mall",
|
||||||
"LabelNotificationEvent": "Teavituse sündmus",
|
"LabelNotificationEvent": "Teavituse sündmus",
|
||||||
|
"LabelNotificationTitleTemplate": "Pealkirja mall",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Maksimaalsed ebaõnnestunud katsed",
|
"LabelNotificationsMaxFailedAttempts": "Maksimaalsed ebaõnnestunud katsed",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Teatised keelatakse, kui need ebaõnnestuvad nii palju kordi",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Teatised keelatakse, kui need ebaõnnestuvad nii palju kordi",
|
||||||
"LabelNotificationsMaxQueueSize": "Teavituste sündmuste maksimaalne järjekorra suurus",
|
"LabelNotificationsMaxQueueSize": "Teavituste sündmuste maksimaalne järjekorra suurus",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Sündmused on piiratud 1 sekundiga. Sündmusi ignoreeritakse, kui järjekord on maksimumsuuruses. See takistab teavituste rämpsposti.",
|
"LabelNotificationsMaxQueueSizeHelp": "Sündmused on piiratud 1 sekundiga. Sündmusi ignoreeritakse, kui järjekord on maksimumsuuruses. See takistab teavituste rämpsposti.",
|
||||||
"LabelNotificationTitleTemplate": "Pealkirja mall",
|
|
||||||
"LabelNotStarted": "Pole alustatud",
|
|
||||||
"LabelNumberOfBooks": "Raamatute arv",
|
"LabelNumberOfBooks": "Raamatute arv",
|
||||||
"LabelNumberOfEpisodes": "Episoodide arv",
|
"LabelNumberOfEpisodes": "Episoodide arv",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Saab üles laadida",
|
"LabelPermissionsUpload": "Saab üles laadida",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Foto tee/URL",
|
"LabelPhotoPathURL": "Foto tee/URL",
|
||||||
"LabelPlaylists": "Mänguloendid",
|
|
||||||
"LabelPlayMethod": "Esitusmeetod",
|
"LabelPlayMethod": "Esitusmeetod",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Mänguloendid",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcastid",
|
|
||||||
"LabelPodcastSearchRegion": "Podcasti otsingu piirkond",
|
"LabelPodcastSearchRegion": "Podcasti otsingu piirkond",
|
||||||
"LabelPodcastType": "Podcasti tüüp",
|
"LabelPodcastType": "Podcasti tüüp",
|
||||||
|
"LabelPodcasts": "Podcastid",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Eiramiseks eesliited (tõstutundetu)",
|
"LabelPrefixesToIgnore": "Eiramiseks eesliited (tõstutundetu)",
|
||||||
"LabelPreventIndexing": "Vältige oma voogu indekseerimist iTunes'i ja Google podcasti kataloogides",
|
"LabelPreventIndexing": "Vältige oma voogu indekseerimist iTunes'i ja Google podcasti kataloogides",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Edenemine",
|
"LabelProgress": "Edenemine",
|
||||||
"LabelProvider": "Pakkuja",
|
"LabelProvider": "Pakkuja",
|
||||||
"LabelPubDate": "Avaldamise kuupäev",
|
"LabelPubDate": "Avaldamise kuupäev",
|
||||||
"LabelPublisher": "Kirjastaja",
|
|
||||||
"LabelPublishYear": "Aasta avaldamine",
|
"LabelPublishYear": "Aasta avaldamine",
|
||||||
"LabelRead": "Lugenud",
|
"LabelPublisher": "Kirjastaja",
|
||||||
"LabelReadAgain": "Loe uuesti",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Lugege e-raamatut ilma edenemist säilitamata",
|
|
||||||
"LabelRecentlyAdded": "Hiljuti lisatud",
|
|
||||||
"LabelRecentSeries": "Hiljutised seeriad",
|
|
||||||
"LabelRecommended": "Soovitatud",
|
|
||||||
"LabelRedo": "Tee uuesti",
|
|
||||||
"LabelRegion": "Piirkond",
|
|
||||||
"LabelReleaseDate": "Väljalaske kuupäev",
|
|
||||||
"LabelRemoveCover": "Eemalda ümbris",
|
|
||||||
"LabelRowsPerPage": "Rida lehe kohta",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Kohandatud omaniku e-post",
|
"LabelRSSFeedCustomOwnerEmail": "Kohandatud omaniku e-post",
|
||||||
"LabelRSSFeedCustomOwnerName": "Kohandatud omaniku nimi",
|
"LabelRSSFeedCustomOwnerName": "Kohandatud omaniku nimi",
|
||||||
"LabelRSSFeedOpen": "Ava RSS voog",
|
"LabelRSSFeedOpen": "Ava RSS voog",
|
||||||
"LabelRSSFeedPreventIndexing": "Vältige indekseerimist",
|
"LabelRSSFeedPreventIndexing": "Vältige indekseerimist",
|
||||||
"LabelRSSFeedSlug": "RSS voog Slug",
|
"LabelRSSFeedSlug": "RSS voog Slug",
|
||||||
"LabelRSSFeedURL": "RSS voog URL",
|
"LabelRSSFeedURL": "RSS voog URL",
|
||||||
|
"LabelRead": "Lugenud",
|
||||||
|
"LabelReadAgain": "Loe uuesti",
|
||||||
|
"LabelReadEbookWithoutProgress": "Lugege e-raamatut ilma edenemist säilitamata",
|
||||||
|
"LabelRecentSeries": "Hiljutised seeriad",
|
||||||
|
"LabelRecentlyAdded": "Hiljuti lisatud",
|
||||||
|
"LabelRecommended": "Soovitatud",
|
||||||
|
"LabelRedo": "Tee uuesti",
|
||||||
|
"LabelRegion": "Piirkond",
|
||||||
|
"LabelReleaseDate": "Väljalaske kuupäev",
|
||||||
|
"LabelRemoveCover": "Eemalda ümbris",
|
||||||
|
"LabelRowsPerPage": "Rida lehe kohta",
|
||||||
"LabelSearchTerm": "Otsingutermin",
|
"LabelSearchTerm": "Otsingutermin",
|
||||||
"LabelSearchTitle": "Otsi pealkirja",
|
"LabelSearchTitle": "Otsi pealkirja",
|
||||||
"LabelSearchTitleOrASIN": "Otsi pealkirja või ASIN-i",
|
"LabelSearchTitleOrASIN": "Otsi pealkirja või ASIN-i",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Uinaku taimer",
|
"LabelSleepTimer": "Uinaku taimer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Alusta",
|
"LabelStart": "Alusta",
|
||||||
|
"LabelStartTime": "Alustamise aeg",
|
||||||
"LabelStarted": "Alustatud",
|
"LabelStarted": "Alustatud",
|
||||||
"LabelStartedAt": "Alustatud",
|
"LabelStartedAt": "Alustatud",
|
||||||
"LabelStartTime": "Alustamise aeg",
|
|
||||||
"LabelStatsAudioTracks": "Audiojäljed",
|
"LabelStatsAudioTracks": "Audiojäljed",
|
||||||
"LabelStatsAuthors": "Autorid",
|
"LabelStatsAuthors": "Autorid",
|
||||||
"LabelStatsBestDay": "Parim päev",
|
"LabelStatsBestDay": "Parim päev",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Tundmatu",
|
"LabelUnknown": "Tundmatu",
|
||||||
"LabelUpdateCover": "Uuenda kaant",
|
"LabelUpdateCover": "Uuenda kaant",
|
||||||
"LabelUpdateCoverHelp": "Luba üle kirjutamine olemasolevate kaante jaoks valitud raamatutele, kui leitakse sobivus",
|
"LabelUpdateCoverHelp": "Luba üle kirjutamine olemasolevate kaante jaoks valitud raamatutele, kui leitakse sobivus",
|
||||||
"LabelUpdatedAt": "Uuendatud",
|
|
||||||
"LabelUpdateDetails": "Uuenda üksikasju",
|
"LabelUpdateDetails": "Uuenda üksikasju",
|
||||||
"LabelUpdateDetailsHelp": "Luba üle kirjutamine olemasolevate üksikasjade jaoks valitud raamatutele, kui leitakse sobivus",
|
"LabelUpdateDetailsHelp": "Luba üle kirjutamine olemasolevate üksikasjade jaoks valitud raamatutele, kui leitakse sobivus",
|
||||||
|
"LabelUpdatedAt": "Uuendatud",
|
||||||
"LabelUploaderDragAndDrop": "Lohista ja aseta faile või kaustu",
|
"LabelUploaderDragAndDrop": "Lohista ja aseta faile või kaustu",
|
||||||
"LabelUploaderDropFiles": "Aseta failid",
|
"LabelUploaderDropFiles": "Aseta failid",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Hangi automaatselt pealkiri, autor ja seeria",
|
"LabelUploaderItemFetchMetadataHelp": "Hangi automaatselt pealkiri, autor ja seeria",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Varukoopiad hõlmavad kasutajaid, kasutajate edenemist, raamatukogu üksikasju, serveri seadeid ja kaustades <code>/metadata/items</code> ja <code>/metadata/authors</code> salvestatud pilte. Varukoopiad ei hõlma ühtegi teie raamatukogu kaustades olevat faili.",
|
"MessageBackupsDescription": "Varukoopiad hõlmavad kasutajaid, kasutajate edenemist, raamatukogu üksikasju, serveri seadeid ja kaustades <code>/metadata/items</code> ja <code>/metadata/authors</code> salvestatud pilte. Varukoopiad ei hõlma ühtegi teie raamatukogu kaustades olevat faili.",
|
||||||
"MessageBatchQuickMatchDescription": "Kiire sobitamine üritab lisada valitud üksustele puuduvad kaaned ja metaandmed. Luba allpool olevad valikud, et lubada Kiire sobitamine'il üle kirjutada olemasolevaid kaasi ja/või metaandmeid.",
|
"MessageBatchQuickMatchDescription": "Kiire sobitamine üritab lisada valitud üksustele puuduvad kaaned ja metaandmed. Luba allpool olevad valikud, et lubada Kiire sobitamine'il üle kirjutada olemasolevaid kaasi ja/või metaandmeid.",
|
||||||
"MessageBookshelfNoCollections": "Te pole veel ühtegi kogumit teinud",
|
"MessageBookshelfNoCollections": "Te pole veel ühtegi kogumit teinud",
|
||||||
"MessageBookshelfNoResultsForFilter": "Filtrile \"{0}: {1}\" pole tulemusi",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Ühtegi RSS-i voogu pole avatud",
|
"MessageBookshelfNoRSSFeeds": "Ühtegi RSS-i voogu pole avatud",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Filtrile \"{0}: {1}\" pole tulemusi",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "Teil pole ühtegi seeriat",
|
"MessageBookshelfNoSeries": "Teil pole ühtegi seeriat",
|
||||||
"MessageChapterEndIsAfter": "Peatüki lõpp on pärast teie heliraamatu lõppu",
|
"MessageChapterEndIsAfter": "Peatüki lõpp on pärast teie heliraamatu lõppu",
|
||||||
"MessageChapterErrorFirstNotZero": "Esimene peatükk peab algama 0-st",
|
"MessageChapterErrorFirstNotZero": "Esimene peatükk peab algama 0-st",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Olete kindel, et soovite selle seeria kõik raamatud lõpetatuks märkida?",
|
"MessageConfirmMarkSeriesFinished": "Olete kindel, et soovite selle seeria kõik raamatud lõpetatuks märkida?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Olete kindel, et soovite selle seeria kõik raamatud mitte lõpetatuks märkida?",
|
"MessageConfirmMarkSeriesNotFinished": "Olete kindel, et soovite selle seeria kõik raamatud mitte lõpetatuks märkida?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Hoiatus! Quick Embed ei tee varukoopiaid teie helifailidest. Veenduge, et teil oleks varukoopia oma helifailidest. <br><br>Kas soovite jätkata?",
|
"MessageConfirmQuickEmbed": "Hoiatus! Quick Embed ei tee varukoopiaid teie helifailidest. Veenduge, et teil oleks varukoopia oma helifailidest. <br><br>Kas soovite jätkata?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Olete kindel, et soovite uuesti skannida {0} üksust?",
|
||||||
"MessageConfirmRemoveAllChapters": "Olete kindel, et soovite eemaldada kõik peatükid?",
|
"MessageConfirmRemoveAllChapters": "Olete kindel, et soovite eemaldada kõik peatükid?",
|
||||||
"MessageConfirmRemoveAuthor": "Olete kindel, et soovite autori \"{0}\" eemaldada?",
|
"MessageConfirmRemoveAuthor": "Olete kindel, et soovite autori \"{0}\" eemaldada?",
|
||||||
"MessageConfirmRemoveCollection": "Olete kindel, et soovite kogumi \"{0}\" eemaldada?",
|
"MessageConfirmRemoveCollection": "Olete kindel, et soovite kogumi \"{0}\" eemaldada?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Olete kindel, et soovite silti \"{0}\" ümber nimetada kujule \"{1}\" kõikidele üksustele?",
|
"MessageConfirmRenameTag": "Olete kindel, et soovite silti \"{0}\" ümber nimetada kujule \"{1}\" kõikidele üksustele?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Märkus: See silt on juba olemas, nii et need ühendatakse.",
|
"MessageConfirmRenameTagMergeNote": "Märkus: See silt on juba olemas, nii et need ühendatakse.",
|
||||||
"MessageConfirmRenameTagWarning": "Hoiatus! Sarnane silt erineva puhvriga on juba olemas \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Hoiatus! Sarnane silt erineva puhvriga on juba olemas \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Olete kindel, et soovite uuesti skannida {0} üksust?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Olete kindel, et soovite saata {0} e-raamatu \"{1}\" seadmesse \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Olete kindel, et soovite saata {0} e-raamatu \"{1}\" seadmesse \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Episoodi allalaadimine",
|
"MessageDownloadingEpisode": "Episoodi allalaadimine",
|
||||||
"MessageDragFilesIntoTrackOrder": "Lohistage failid õigesse järjekorda",
|
"MessageDragFilesIntoTrackOrder": "Lohistage failid õigesse järjekorda",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Ühtegi seeriat pole",
|
"MessageNoSeries": "Ühtegi seeriat pole",
|
||||||
"MessageNoTags": "Ühtegi silti pole",
|
"MessageNoTags": "Ühtegi silti pole",
|
||||||
"MessageNoTasksRunning": "Ühtegi käimasolevat ülesannet pole",
|
"MessageNoTasksRunning": "Ühtegi käimasolevat ülesannet pole",
|
||||||
"MessageNotYetImplemented": "Pole veel ellu viidud",
|
|
||||||
"MessageNoUpdateNecessary": "Ühtegi värskendust pole vaja",
|
"MessageNoUpdateNecessary": "Ühtegi värskendust pole vaja",
|
||||||
"MessageNoUpdatesWereNecessary": "Ühtegi värskendust polnud vaja",
|
"MessageNoUpdatesWereNecessary": "Ühtegi värskendust polnud vaja",
|
||||||
"MessageNoUserPlaylists": "Teil pole ühtegi esitusloendit",
|
"MessageNoUserPlaylists": "Teil pole ühtegi esitusloendit",
|
||||||
|
"MessageNotYetImplemented": "Pole veel ellu viidud",
|
||||||
"MessageOr": "või",
|
"MessageOr": "või",
|
||||||
"MessagePauseChapter": "Peata peatüki esitamine",
|
"MessagePauseChapter": "Peata peatüki esitamine",
|
||||||
"MessagePlayChapter": "Kuula peatüki algust",
|
"MessagePlayChapter": "Kuula peatüki algust",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Esitusloend värskendatud",
|
"ToastPlaylistUpdateSuccess": "Esitusloend värskendatud",
|
||||||
"ToastPodcastCreateFailed": "Podcasti loomine ebaõnnestus",
|
"ToastPodcastCreateFailed": "Podcasti loomine ebaõnnestus",
|
||||||
"ToastPodcastCreateSuccess": "Podcast loodud edukalt",
|
"ToastPodcastCreateSuccess": "Podcast loodud edukalt",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Üksuse eemaldamine kogumist ebaõnnestus",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Üksus eemaldatud kogumist",
|
|
||||||
"ToastRSSFeedCloseFailed": "RSS-voogu sulgemine ebaõnnestus",
|
"ToastRSSFeedCloseFailed": "RSS-voogu sulgemine ebaõnnestus",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS-voog suletud",
|
"ToastRSSFeedCloseSuccess": "RSS-voog suletud",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Üksuse eemaldamine kogumist ebaõnnestus",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Üksus eemaldatud kogumist",
|
||||||
"ToastSendEbookToDeviceFailed": "E-raamatu saatmine seadmesse ebaõnnestus",
|
"ToastSendEbookToDeviceFailed": "E-raamatu saatmine seadmesse ebaõnnestus",
|
||||||
"ToastSendEbookToDeviceSuccess": "E-raamat saadetud seadmesse \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "E-raamat saadetud seadmesse \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Sarja värskendamine ebaõnnestus",
|
"ToastSeriesUpdateFailed": "Sarja värskendamine ebaõnnestus",
|
||||||
|
|||||||
@@ -0,0 +1,162 @@
|
|||||||
|
{
|
||||||
|
"ButtonAdd": "Lisää",
|
||||||
|
"ButtonAddChapters": "Lisää lukuja",
|
||||||
|
"ButtonAddDevice": "Lisää laite",
|
||||||
|
"ButtonAddLibrary": "Lisää kirjasto",
|
||||||
|
"ButtonAddPodcasts": "Lisää podcasteja",
|
||||||
|
"ButtonAddUser": "Lisää käyttäjä",
|
||||||
|
"ButtonAddYourFirstLibrary": "Lisää ensimmäinen kirjastosi",
|
||||||
|
"ButtonApply": "Käytä",
|
||||||
|
"ButtonApplyChapters": "Käytä lukuihin",
|
||||||
|
"ButtonAuthors": "Tekijät",
|
||||||
|
"ButtonBack": "Takaisin",
|
||||||
|
"ButtonBrowseForFolder": "Selaa (kansio)",
|
||||||
|
"ButtonCancel": "Peruuta",
|
||||||
|
"ButtonCancelEncode": "Lopeta enkoodaus",
|
||||||
|
"ButtonChangeRootPassword": "Vaihda root salasana",
|
||||||
|
"ButtonCheckAndDownloadNewEpisodes": "Tarkista ja lataa uudet jaksot",
|
||||||
|
"ButtonChooseAFolder": "Valitse kansio",
|
||||||
|
"ButtonChooseFiles": "Valitse tiedostot",
|
||||||
|
"ButtonClearFilter": "Poista suodatus",
|
||||||
|
"ButtonCloseFeed": "Sulje syöte",
|
||||||
|
"ButtonCollections": "Kokoelmat",
|
||||||
|
"ButtonConfigureScanner": "Skannerin asetukset",
|
||||||
|
"ButtonCreate": "Luo",
|
||||||
|
"ButtonCreateBackup": "Luo varmuuskopio",
|
||||||
|
"ButtonDelete": "Poista",
|
||||||
|
"ButtonDownloadQueue": "Jono",
|
||||||
|
"ButtonEdit": "Muokkaa",
|
||||||
|
"ButtonEditChapters": "Muokkaa lukuja",
|
||||||
|
"ButtonEditPodcast": "Muokkaa podcastia",
|
||||||
|
"ButtonForceReScan": "Pakota uudelleenskannaus",
|
||||||
|
"ButtonFullPath": "Koko polku",
|
||||||
|
"ButtonHide": "Piilota",
|
||||||
|
"ButtonHome": "Koti",
|
||||||
|
"ButtonIssues": "Ongelmat",
|
||||||
|
"ButtonJumpBackward": "Hyppää taaksepäin",
|
||||||
|
"ButtonJumpForward": "Hyppää eteenpäin",
|
||||||
|
"ButtonLatest": "Viimeisimmät",
|
||||||
|
"ButtonLibrary": "Kirjasto",
|
||||||
|
"ButtonLogout": "Kirjaudu ulos",
|
||||||
|
"ButtonLookup": "Hae",
|
||||||
|
"ButtonManageTracks": "Hallitse raitoja",
|
||||||
|
"ButtonMapChapterTitles": "Kartoita lukujen nimet",
|
||||||
|
"ButtonMatchAllAuthors": "Täsmää kaikki Tekijät",
|
||||||
|
"ButtonMatchBooks": "Täsmää kirjat",
|
||||||
|
"ButtonNevermind": "Ei sittenkään",
|
||||||
|
"ButtonNext": "Seuraava",
|
||||||
|
"ButtonNextChapter": "Seuraava luku",
|
||||||
|
"ButtonOk": "Ok",
|
||||||
|
"ButtonOpenFeed": "Avaa syöte",
|
||||||
|
"ButtonOpenManager": "Avaa hallinta",
|
||||||
|
"ButtonPause": "Pysäytä",
|
||||||
|
"ButtonPlay": "Toista",
|
||||||
|
"ButtonPlaying": "Toistetaan",
|
||||||
|
"ButtonPlaylists": "Soittolistat",
|
||||||
|
"ButtonPrevious": "Edellinen",
|
||||||
|
"ButtonPreviousChapter": "Edellinen luku",
|
||||||
|
"ButtonPurgeAllCache": "Tyhjennä kaikki välimuistit",
|
||||||
|
"ButtonPurgeItemsCache": "Tyhjennä kohteiden välimuisti",
|
||||||
|
"ButtonQueueAddItem": "Lisää jonoon",
|
||||||
|
"ButtonQueueRemoveItem": "Poista jonosta",
|
||||||
|
"ButtonQuickMatch": "Pikatäsmää",
|
||||||
|
"ButtonReScan": "Uudelleenskannaa",
|
||||||
|
"ButtonRead": "Lue",
|
||||||
|
"ButtonReadLess": "Näytä vähemmän",
|
||||||
|
"ButtonReadMore": "Näytä enemmän",
|
||||||
|
"ButtonRefresh": "Päivitä",
|
||||||
|
"ButtonRemove": "Poista",
|
||||||
|
"ButtonRemoveAll": "Poista kaikki",
|
||||||
|
"ButtonRemoveAllLibraryItems": "Poista kaikki kirjaston kohteet",
|
||||||
|
"ButtonRemoveFromContinueListening": "Poista Jatka kuuntelua -osiosta",
|
||||||
|
"ButtonRemoveFromContinueReading": "Poista Jatka lukemista -osiosta",
|
||||||
|
"ButtonRemoveSeriesFromContinueSeries": "Poista sarja Jatka sarjaa -osiosta",
|
||||||
|
"ButtonReset": "Nollaa",
|
||||||
|
"ButtonResetToDefault": "Palauta oletusasetukset",
|
||||||
|
"ButtonRestore": "Palauta",
|
||||||
|
"ButtonSave": "Tallenna",
|
||||||
|
"ButtonSaveAndClose": "Tallenna ja sulje",
|
||||||
|
"ButtonSaveTracklist": "Tallenna raitalista",
|
||||||
|
"ButtonScan": "Skannaa",
|
||||||
|
"ButtonScanLibrary": "Skannaa kirjasto",
|
||||||
|
"ButtonSearch": "Etsi",
|
||||||
|
"ButtonSelectFolderPath": "Valitse kansiopolku",
|
||||||
|
"ButtonSeries": "Sarjat",
|
||||||
|
"ButtonSetChaptersFromTracks": "Aseta luvut raidoista",
|
||||||
|
"ButtonShare": "Jaa",
|
||||||
|
"ButtonShiftTimes": "Siirrä aikoja",
|
||||||
|
"ButtonShow": "Näytä",
|
||||||
|
"ButtonStartM4BEncode": "Aloita M4B enkoodaus",
|
||||||
|
"ButtonStartMetadataEmbed": "Aloita metadatan embed",
|
||||||
|
"ButtonSubmit": "Lähetä",
|
||||||
|
"ButtonTest": "Testi",
|
||||||
|
"ButtonUpload": "Lähetä palvelimelle",
|
||||||
|
"ButtonUploadBackup": "Lähetä varmuuskopio",
|
||||||
|
"ButtonUploadCover": "Lähetä kansikuva",
|
||||||
|
"ButtonUploadOPMLFile": "Lähetä OPML-tiedosto",
|
||||||
|
"ButtonUserDelete": "Poista käyttäjä {0}",
|
||||||
|
"ButtonUserEdit": "Muokkaa käyttäjää {0}",
|
||||||
|
"ButtonViewAll": "Näytä kaikki",
|
||||||
|
"ButtonYes": "Kyllä",
|
||||||
|
"ErrorUploadFetchMetadataAPI": "Virhe haettaessa metadataa",
|
||||||
|
"ErrorUploadFetchMetadataNoResults": "Metadatan haku epäonnistui, yritä päivittää Teoksen nimi ja/tai Tekijä",
|
||||||
|
"ErrorUploadLacksTitle": "Pitää sisältää Nimi",
|
||||||
|
"HeaderAccount": "Tili",
|
||||||
|
"HeaderAdvanced": "Edistynyt",
|
||||||
|
"HeaderAppriseNotificationSettings": "Apprise-ilmoitusasetukset",
|
||||||
|
"HeaderAudioTracks": "Ääniraidat",
|
||||||
|
"HeaderAudiobookTools": "Äänikirjojen tiedostonhallintatyökalut",
|
||||||
|
"HeaderAuthentication": "Todennus",
|
||||||
|
"HeaderBackups": "Varmuuskopiot",
|
||||||
|
"HeaderChangePassword": "Vaihda salasana",
|
||||||
|
"HeaderChapters": "Luvut",
|
||||||
|
"HeaderChooseAFolder": "Valitse kansio",
|
||||||
|
"HeaderCollection": "Kokoelma",
|
||||||
|
"HeaderCollectionItems": "Kokoelman osat",
|
||||||
|
"HeaderCover": "Kansikuva",
|
||||||
|
"HeaderCurrentDownloads": "Tämänhetkiset lataukset",
|
||||||
|
"HeaderCustomMessageOnLogin": "Muokattu kirjautumisviesti",
|
||||||
|
"HeaderCustomMetadataProviders": "Mukautetut metadatan tarjoajat",
|
||||||
|
"HeaderDetails": "Yksityiskohdat",
|
||||||
|
"HeaderDownloadQueue": "Latausjono",
|
||||||
|
"HeaderEbookFiles": "E-kirjatiedostot",
|
||||||
|
"HeaderEpisodes": "Jaksot",
|
||||||
|
"HeaderEreaderSettings": "E-lukijan asetukset",
|
||||||
|
"HeaderLatestEpisodes": "Viimeisimmät jaksot",
|
||||||
|
"HeaderLibraries": "Kirjastot",
|
||||||
|
"HeaderOpenRSSFeed": "Avaa RSS-syöte",
|
||||||
|
"HeaderPlaylist": "Soittolista",
|
||||||
|
"HeaderRSSFeedGeneral": "RSS yksityiskohdat",
|
||||||
|
"HeaderRSSFeedIsOpen": "RSS syöte on avoinna",
|
||||||
|
"HeaderSettings": "Asetukset",
|
||||||
|
"HeaderSleepTimer": "Uniajastin",
|
||||||
|
"HeaderStatsMinutesListeningChart": "Kuunteluminuutit (viim. 7 pv)",
|
||||||
|
"HeaderStatsRecentSessions": "Viimeaikaiset istunnot",
|
||||||
|
"HeaderTableOfContents": "Sisällysluettelo",
|
||||||
|
"HeaderYourStats": "Tilastosi",
|
||||||
|
"LabelAddToPlaylist": "Lisää soittolistaan",
|
||||||
|
"LabelAdded": "Lisätty",
|
||||||
|
"LabelAddedAt": "Lisätty",
|
||||||
|
"LabelAll": "Kaikki",
|
||||||
|
"LabelAuthor": "Tekijä",
|
||||||
|
"LabelAuthorFirstLast": "Tekijä (Etunimi Sukunimi)",
|
||||||
|
"LabelAuthorLastFirst": "Tekijä (Sukunimi, Etunimi)",
|
||||||
|
"LabelAuthors": "Tekijät",
|
||||||
|
"LabelAutoDownloadEpisodes": "Lataa jaksot automaattisesti",
|
||||||
|
"LabelBooks": "Kirjat",
|
||||||
|
"LabelChapters": "Luvut",
|
||||||
|
"LabelClosePlayer": "Sulje soitin",
|
||||||
|
"LabelCollapseSeries": "Pienennä sarja",
|
||||||
|
"LabelComplete": "Valmis",
|
||||||
|
"LabelContinueListening": "Jatka kuuntelua",
|
||||||
|
"LabelContinueReading": "Jatka lukemista",
|
||||||
|
"LabelContinueSeries": "Jatka sarjoja",
|
||||||
|
"LabelDescription": "Kuvaus",
|
||||||
|
"LabelDuration": "Kesto",
|
||||||
|
"LabelEbook": "E-kirja",
|
||||||
|
"LabelEbooks": "E-kirjat",
|
||||||
|
"LabelFile": "Tiedosto",
|
||||||
|
"LabelFileBirthtime": "Tiedoston syntymäaika",
|
||||||
|
"LabelFileModified": "Muutettu tiedosto",
|
||||||
|
"LabelFilename": "Tiedostonimi"
|
||||||
|
}
|
||||||
+146
-133
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Appliquer",
|
"ButtonApply": "Appliquer",
|
||||||
"ButtonApplyChapters": "Appliquer aux chapitres",
|
"ButtonApplyChapters": "Appliquer aux chapitres",
|
||||||
"ButtonAuthors": "Auteurs",
|
"ButtonAuthors": "Auteurs",
|
||||||
|
"ButtonBack": "Retour",
|
||||||
"ButtonBrowseForFolder": "Naviguer vers le répertoire",
|
"ButtonBrowseForFolder": "Naviguer vers le répertoire",
|
||||||
"ButtonCancel": "Annuler",
|
"ButtonCancel": "Annuler",
|
||||||
"ButtonCancelEncode": "Annuler l’encodage",
|
"ButtonCancelEncode": "Annuler l’encodage",
|
||||||
@@ -22,7 +23,7 @@
|
|||||||
"ButtonConfigureScanner": "Configurer l’analyse",
|
"ButtonConfigureScanner": "Configurer l’analyse",
|
||||||
"ButtonCreate": "Créer",
|
"ButtonCreate": "Créer",
|
||||||
"ButtonCreateBackup": "Créer une sauvegarde",
|
"ButtonCreateBackup": "Créer une sauvegarde",
|
||||||
"ButtonDelete": "Effacer",
|
"ButtonDelete": "Supprimer",
|
||||||
"ButtonDownloadQueue": "File d’attente de téléchargement",
|
"ButtonDownloadQueue": "File d’attente de téléchargement",
|
||||||
"ButtonEdit": "Modifier",
|
"ButtonEdit": "Modifier",
|
||||||
"ButtonEditChapters": "Modifier les chapitres",
|
"ButtonEditChapters": "Modifier les chapitres",
|
||||||
@@ -31,7 +32,7 @@
|
|||||||
"ButtonFullPath": "Chemin complet",
|
"ButtonFullPath": "Chemin complet",
|
||||||
"ButtonHide": "Cacher",
|
"ButtonHide": "Cacher",
|
||||||
"ButtonHome": "Accueil",
|
"ButtonHome": "Accueil",
|
||||||
"ButtonIssues": "Parutions",
|
"ButtonIssues": "Problèmes",
|
||||||
"ButtonJumpBackward": "Retour",
|
"ButtonJumpBackward": "Retour",
|
||||||
"ButtonJumpForward": "Avancer",
|
"ButtonJumpForward": "Avancer",
|
||||||
"ButtonLatest": "Dernière version",
|
"ButtonLatest": "Dernière version",
|
||||||
@@ -49,33 +50,32 @@
|
|||||||
"ButtonOpenFeed": "Ouvrir le flux",
|
"ButtonOpenFeed": "Ouvrir le flux",
|
||||||
"ButtonOpenManager": "Ouvrir le gestionnaire",
|
"ButtonOpenManager": "Ouvrir le gestionnaire",
|
||||||
"ButtonPause": "Pause",
|
"ButtonPause": "Pause",
|
||||||
"ButtonPlay": "Écouter",
|
"ButtonPlay": "Lire",
|
||||||
"ButtonPlaying": "En lecture",
|
"ButtonPlaying": "En lecture",
|
||||||
"ButtonPlaylists": "Listes de lecture",
|
"ButtonPlaylists": "Listes de lecture",
|
||||||
"ButtonPrevious": "Précédent",
|
"ButtonPrevious": "Précédent",
|
||||||
"ButtonPreviousChapter": "Chapitre précédent",
|
"ButtonPreviousChapter": "Chapitre précédent",
|
||||||
"ButtonPurgeAllCache": "Purger le cache",
|
"ButtonPurgeAllCache": "Purger tout le cache",
|
||||||
"ButtonPurgeItemsCache": "Purger le cache des articles",
|
"ButtonPurgeItemsCache": "Purger le cache des éléments",
|
||||||
"ButtonPurgeMediaProgress": "Purger la progression des médias",
|
|
||||||
"ButtonQueueAddItem": "Ajouter à la liste de lecture",
|
"ButtonQueueAddItem": "Ajouter à la liste de lecture",
|
||||||
"ButtonQueueRemoveItem": "Supprimer de la liste de lecture",
|
"ButtonQueueRemoveItem": "Supprimer de la liste de lecture",
|
||||||
"ButtonQuickMatch": "Recherche rapide",
|
"ButtonQuickMatch": "Recherche rapide",
|
||||||
|
"ButtonReScan": "Nouvelle analyse",
|
||||||
"ButtonRead": "Lire",
|
"ButtonRead": "Lire",
|
||||||
"ButtonReadLess": "Lire moins",
|
"ButtonReadLess": "Lire moins",
|
||||||
"ButtonReadMore": "Lire la suite",
|
"ButtonReadMore": "Lire la suite",
|
||||||
"ButtonRefresh": "Rafraîchir",
|
"ButtonRefresh": "Rafraîchir",
|
||||||
"ButtonRemove": "Supprimer",
|
"ButtonRemove": "Retirer",
|
||||||
"ButtonRemoveAll": "Supprimer tout",
|
"ButtonRemoveAll": "Supprimer tout",
|
||||||
"ButtonRemoveAllLibraryItems": "Supprimer tous les articles de la bibliothèque",
|
"ButtonRemoveAllLibraryItems": "Supprimer tous les éléments de la bibliothèque",
|
||||||
"ButtonRemoveFromContinueListening": "Ne plus continuer à écouter",
|
"ButtonRemoveFromContinueListening": "Ne plus continuer à écouter",
|
||||||
"ButtonRemoveFromContinueReading": "Ne plus continuer à lire",
|
"ButtonRemoveFromContinueReading": "Ne plus continuer à lire",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Ne plus continuer à écouter la série",
|
"ButtonRemoveSeriesFromContinueSeries": "Ne plus continuer à écouter la série",
|
||||||
"ButtonReScan": "Nouvelle analyse",
|
|
||||||
"ButtonReset": "Réinitialiser",
|
"ButtonReset": "Réinitialiser",
|
||||||
"ButtonResetToDefault": "Réinitialiser aux valeurs par défaut",
|
"ButtonResetToDefault": "Réinitialiser aux valeurs par défaut",
|
||||||
"ButtonRestore": "Rétablir",
|
"ButtonRestore": "Rétablir",
|
||||||
"ButtonSave": "Sauvegarder",
|
"ButtonSave": "Sauvegarder",
|
||||||
"ButtonSaveAndClose": "Sauvegarder et Fermer",
|
"ButtonSaveAndClose": "Sauvegarder et fermer",
|
||||||
"ButtonSaveTracklist": "Sauvegarder la liste de lecture",
|
"ButtonSaveTracklist": "Sauvegarder la liste de lecture",
|
||||||
"ButtonScan": "Analyser",
|
"ButtonScan": "Analyser",
|
||||||
"ButtonScanLibrary": "Analyser la bibliothèque",
|
"ButtonScanLibrary": "Analyser la bibliothèque",
|
||||||
@@ -99,13 +99,13 @@
|
|||||||
"ButtonViewAll": "Afficher tout",
|
"ButtonViewAll": "Afficher tout",
|
||||||
"ButtonYes": "Oui",
|
"ButtonYes": "Oui",
|
||||||
"ErrorUploadFetchMetadataAPI": "Erreur lors de la récupération des métadonnées",
|
"ErrorUploadFetchMetadataAPI": "Erreur lors de la récupération des métadonnées",
|
||||||
"ErrorUploadFetchMetadataNoResults": "Impossible de récupérer les métadonnées - essayez de mettre à jour le titre et/ou l’auteur.",
|
"ErrorUploadFetchMetadataNoResults": "Impossible de récupérer les métadonnées - essayez de mettre à jour le titre et/ou l’auteur",
|
||||||
"ErrorUploadLacksTitle": "Doit avoir un titre",
|
"ErrorUploadLacksTitle": "Doit avoir un titre",
|
||||||
"HeaderAccount": "Compte",
|
"HeaderAccount": "Compte",
|
||||||
"HeaderAdvanced": "Avancé",
|
"HeaderAdvanced": "Avancé",
|
||||||
"HeaderAppriseNotificationSettings": "Configuration des notifications Apprise",
|
"HeaderAppriseNotificationSettings": "Configuration des notifications Apprise",
|
||||||
"HeaderAudiobookTools": "Outils de gestion de fichiers de livres audio",
|
|
||||||
"HeaderAudioTracks": "Pistes audio",
|
"HeaderAudioTracks": "Pistes audio",
|
||||||
|
"HeaderAudiobookTools": "Outils de gestion de fichiers de livres audio",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Sauvegardes",
|
"HeaderBackups": "Sauvegardes",
|
||||||
"HeaderChangePassword": "Modifier le mot de passe",
|
"HeaderChangePassword": "Modifier le mot de passe",
|
||||||
@@ -115,19 +115,20 @@
|
|||||||
"HeaderCollectionItems": "Entrées de la collection",
|
"HeaderCollectionItems": "Entrées de la collection",
|
||||||
"HeaderCover": "Couverture",
|
"HeaderCover": "Couverture",
|
||||||
"HeaderCurrentDownloads": "Téléchargements en cours",
|
"HeaderCurrentDownloads": "Téléchargements en cours",
|
||||||
|
"HeaderCustomMessageOnLogin": "Message personnalisé lors de la connexion",
|
||||||
"HeaderCustomMetadataProviders": "Fournisseurs de métadonnées personnalisés",
|
"HeaderCustomMetadataProviders": "Fournisseurs de métadonnées personnalisés",
|
||||||
"HeaderDetails": "Détails",
|
"HeaderDetails": "Détails",
|
||||||
"HeaderDownloadQueue": "File d’attente de téléchargements",
|
"HeaderDownloadQueue": "File d’attente de téléchargements",
|
||||||
"HeaderEbookFiles": "Fichier des livres numériques",
|
"HeaderEbookFiles": "Fichiers des livres numériques",
|
||||||
"HeaderEmail": "Courriels",
|
"HeaderEmail": "Courriels",
|
||||||
"HeaderEmailSettings": "Configuration des courriels",
|
"HeaderEmailSettings": "Configuration des courriels",
|
||||||
"HeaderEpisodes": "Épisodes",
|
"HeaderEpisodes": "Épisodes",
|
||||||
"HeaderEreaderDevices": "Lecteur de livres numériques",
|
"HeaderEreaderDevices": "Lecteur de livres numériques",
|
||||||
"HeaderEreaderSettings": "Options Ereader",
|
"HeaderEreaderSettings": "Paramètres de la liseuse",
|
||||||
"HeaderFiles": "Fichiers",
|
"HeaderFiles": "Fichiers",
|
||||||
"HeaderFindChapters": "Trouver les chapitres",
|
"HeaderFindChapters": "Trouver les chapitres",
|
||||||
"HeaderIgnoredFiles": "Fichiers ignorés",
|
"HeaderIgnoredFiles": "Fichiers ignorés",
|
||||||
"HeaderItemFiles": "Fichiers des articles",
|
"HeaderItemFiles": "Fichiers des éléments",
|
||||||
"HeaderItemMetadataUtils": "Outils de gestion des métadonnées",
|
"HeaderItemMetadataUtils": "Outils de gestion des métadonnées",
|
||||||
"HeaderLastListeningSession": "Dernière session d’écoute",
|
"HeaderLastListeningSession": "Dernière session d’écoute",
|
||||||
"HeaderLatestEpisodes": "Dernier épisodes",
|
"HeaderLatestEpisodes": "Dernier épisodes",
|
||||||
@@ -148,7 +149,7 @@
|
|||||||
"HeaderNewLibrary": "Nouvelle bibliothèque",
|
"HeaderNewLibrary": "Nouvelle bibliothèque",
|
||||||
"HeaderNotifications": "Notifications",
|
"HeaderNotifications": "Notifications",
|
||||||
"HeaderOpenIDConnectAuthentication": "Authentification via OpenID Connect",
|
"HeaderOpenIDConnectAuthentication": "Authentification via OpenID Connect",
|
||||||
"HeaderOpenRSSFeed": "Ouvrir un flux RSS",
|
"HeaderOpenRSSFeed": "Ouvrir le flux RSS",
|
||||||
"HeaderOtherFiles": "Autres fichiers",
|
"HeaderOtherFiles": "Autres fichiers",
|
||||||
"HeaderPasswordAuthentication": "Authentification par mot de passe",
|
"HeaderPasswordAuthentication": "Authentification par mot de passe",
|
||||||
"HeaderPermissions": "Permissions",
|
"HeaderPermissions": "Permissions",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Éléments de la liste de lecture",
|
"HeaderPlaylistItems": "Éléments de la liste de lecture",
|
||||||
"HeaderPodcastsToAdd": "Podcasts à ajouter",
|
"HeaderPodcastsToAdd": "Podcasts à ajouter",
|
||||||
"HeaderPreviewCover": "Prévisualiser la couverture",
|
"HeaderPreviewCover": "Prévisualiser la couverture",
|
||||||
|
"HeaderRSSFeedGeneral": "Détails du flux RSS",
|
||||||
|
"HeaderRSSFeedIsOpen": "Le flux RSS est actif",
|
||||||
|
"HeaderRSSFeeds": "Flux RSS",
|
||||||
"HeaderRemoveEpisode": "Supprimer l’épisode",
|
"HeaderRemoveEpisode": "Supprimer l’épisode",
|
||||||
"HeaderRemoveEpisodes": "Suppression de {0} épisodes",
|
"HeaderRemoveEpisodes": "Suppression de {0} épisodes",
|
||||||
"HeaderRSSFeedGeneral": "Détails de flux RSS",
|
|
||||||
"HeaderRSSFeedIsOpen": "Le Flux RSS est actif",
|
|
||||||
"HeaderRSSFeeds": "Flux RSS",
|
|
||||||
"HeaderSavedMediaProgress": "Progression de la sauvegarde des médias",
|
"HeaderSavedMediaProgress": "Progression de la sauvegarde des médias",
|
||||||
"HeaderSchedule": "Programmation",
|
"HeaderSchedule": "Programmation",
|
||||||
"HeaderScheduleLibraryScans": "Analyse automatique de la bibliothèque",
|
"HeaderScheduleLibraryScans": "Analyse automatique de la bibliothèque",
|
||||||
@@ -173,8 +174,8 @@
|
|||||||
"HeaderSettingsGeneral": "Général",
|
"HeaderSettingsGeneral": "Général",
|
||||||
"HeaderSettingsScanner": "Analyseur",
|
"HeaderSettingsScanner": "Analyseur",
|
||||||
"HeaderSleepTimer": "Minuterie",
|
"HeaderSleepTimer": "Minuterie",
|
||||||
"HeaderStatsLargestItems": "Articles les plus lourd",
|
"HeaderStatsLargestItems": "Éléments les plus grands",
|
||||||
"HeaderStatsLongestItems": "Articles les plus long (heures)",
|
"HeaderStatsLongestItems": "Éléments les plus long (hrs)",
|
||||||
"HeaderStatsMinutesListeningChart": "Minutes d’écoute (7 derniers jours)",
|
"HeaderStatsMinutesListeningChart": "Minutes d’écoute (7 derniers jours)",
|
||||||
"HeaderStatsRecentSessions": "Sessions récentes",
|
"HeaderStatsRecentSessions": "Sessions récentes",
|
||||||
"HeaderStatsTop10Authors": "Top 10 Auteurs",
|
"HeaderStatsTop10Authors": "Top 10 Auteurs",
|
||||||
@@ -191,18 +192,18 @@
|
|||||||
"LabelAbridged": "Version courte",
|
"LabelAbridged": "Version courte",
|
||||||
"LabelAbridgedChecked": "Abrégé (vérifié)",
|
"LabelAbridgedChecked": "Abrégé (vérifié)",
|
||||||
"LabelAbridgedUnchecked": "Intégral (non vérifié)",
|
"LabelAbridgedUnchecked": "Intégral (non vérifié)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "Accessible par",
|
||||||
"LabelAccountType": "Type de compte",
|
"LabelAccountType": "Type de compte",
|
||||||
"LabelAccountTypeAdmin": "Admin",
|
"LabelAccountTypeAdmin": "Admin",
|
||||||
"LabelAccountTypeGuest": "Invité",
|
"LabelAccountTypeGuest": "Invité",
|
||||||
"LabelAccountTypeUser": "Utilisateur",
|
"LabelAccountTypeUser": "Utilisateur",
|
||||||
"LabelActivity": "Activité",
|
"LabelActivity": "Activité",
|
||||||
"LabelAdded": "Ajouté",
|
|
||||||
"LabelAddedAt": "Date d’ajout",
|
|
||||||
"LabelAddToCollection": "Ajouter à la collection",
|
"LabelAddToCollection": "Ajouter à la collection",
|
||||||
"LabelAddToCollectionBatch": "Ajout de {0} livres à la lollection",
|
"LabelAddToCollectionBatch": "Ajout de {0} livres à la lollection",
|
||||||
"LabelAddToPlaylist": "Ajouter à la liste de lecture",
|
"LabelAddToPlaylist": "Ajouter à la liste de lecture",
|
||||||
"LabelAddToPlaylistBatch": "{0} éléments ajoutés à la liste de lecture",
|
"LabelAddToPlaylistBatch": "{0} éléments ajoutés à la liste de lecture",
|
||||||
|
"LabelAdded": "Ajouté",
|
||||||
|
"LabelAddedAt": "Date d’ajout",
|
||||||
"LabelAdminUsersOnly": "Administrateurs uniquement",
|
"LabelAdminUsersOnly": "Administrateurs uniquement",
|
||||||
"LabelAll": "Tout",
|
"LabelAll": "Tout",
|
||||||
"LabelAllUsers": "Tous les utilisateurs",
|
"LabelAllUsers": "Tous les utilisateurs",
|
||||||
@@ -214,7 +215,7 @@
|
|||||||
"LabelAuthorFirstLast": "Auteur (Prénom Nom)",
|
"LabelAuthorFirstLast": "Auteur (Prénom Nom)",
|
||||||
"LabelAuthorLastFirst": "Auteur (Nom, Prénom)",
|
"LabelAuthorLastFirst": "Auteur (Nom, Prénom)",
|
||||||
"LabelAuthors": "Auteurs",
|
"LabelAuthors": "Auteurs",
|
||||||
"LabelAutoDownloadEpisodes": "Téléchargement automatique d’épisode",
|
"LabelAutoDownloadEpisodes": "Téléchargement automatique des épisodes",
|
||||||
"LabelAutoFetchMetadata": "Recherche automatique de métadonnées",
|
"LabelAutoFetchMetadata": "Recherche automatique de métadonnées",
|
||||||
"LabelAutoFetchMetadataHelp": "Récupère les métadonnées du titre, de l’auteur et de la série pour simplifier le téléchargement. Il se peut que des métadonnées supplémentaires doivent être ajoutées après le téléchargement.",
|
"LabelAutoFetchMetadataHelp": "Récupère les métadonnées du titre, de l’auteur et de la série pour simplifier le téléchargement. Il se peut que des métadonnées supplémentaires doivent être ajoutées après le téléchargement.",
|
||||||
"LabelAutoLaunch": "Lancement automatique",
|
"LabelAutoLaunch": "Lancement automatique",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "par {0}",
|
"LabelByAuthor": "par {0}",
|
||||||
"LabelChangePassword": "Modifier le mot de passe",
|
"LabelChangePassword": "Modifier le mot de passe",
|
||||||
"LabelChannels": "Canaux",
|
"LabelChannels": "Canaux",
|
||||||
|
"LabelChapterTitle": "Titre du chapitre",
|
||||||
"LabelChapters": "Chapitres",
|
"LabelChapters": "Chapitres",
|
||||||
"LabelChaptersFound": "chapitres trouvés",
|
"LabelChaptersFound": "chapitres trouvés",
|
||||||
"LabelChapterTitle": "Titre du chapitre",
|
|
||||||
"LabelClickForMoreInfo": "Cliquez ici pour plus d’informations",
|
"LabelClickForMoreInfo": "Cliquez ici pour plus d’informations",
|
||||||
"LabelClosePlayer": "Fermer le lecteur",
|
"LabelClosePlayer": "Fermer le lecteur",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -248,7 +249,7 @@
|
|||||||
"LabelConfirmPassword": "Confirmer le mot de passe",
|
"LabelConfirmPassword": "Confirmer le mot de passe",
|
||||||
"LabelContinueListening": "Continuer la lecture",
|
"LabelContinueListening": "Continuer la lecture",
|
||||||
"LabelContinueReading": "Continuer la lecture",
|
"LabelContinueReading": "Continuer la lecture",
|
||||||
"LabelContinueSeries": "Continuer la série",
|
"LabelContinueSeries": "Continuer les séries",
|
||||||
"LabelCover": "Couverture",
|
"LabelCover": "Couverture",
|
||||||
"LabelCoverImageURL": "URL vers l’image de couverture",
|
"LabelCoverImageURL": "URL vers l’image de couverture",
|
||||||
"LabelCreatedAt": "Créé le",
|
"LabelCreatedAt": "Créé le",
|
||||||
@@ -279,8 +280,10 @@
|
|||||||
"LabelEdit": "Modifier",
|
"LabelEdit": "Modifier",
|
||||||
"LabelEmail": "Courriel",
|
"LabelEmail": "Courriel",
|
||||||
"LabelEmailSettingsFromAddress": "Expéditeur",
|
"LabelEmailSettingsFromAddress": "Expéditeur",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Rejeter les certificats non autorisés",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Désactiver la validation du certificat SSL peut exposer votre connexion à des risques de sécurité, tels que des attaques de type « man-in-the-middle ». Ne désactivez cette option que si vous en comprenez les implications et si vous faites confiance au serveur de messagerie auquel vous vous connectez.",
|
||||||
"LabelEmailSettingsSecure": "Sécurisé",
|
"LabelEmailSettingsSecure": "Sécurisé",
|
||||||
"LabelEmailSettingsSecureHelp": "Utiliser TLS lors de la connexion au serveur, autrement TLS sera utilisé si le serveur prend en charge l’extension STARTTLS. Dans la plupart des cas, actviez l’option si vous vous connectez au port 465. Désactivez l’option pour utiliser port 587 ou 25. (source: nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Si vous activez cette option, TLS sera utiliser lors de la connexion au serveur. Sinon, TLS est utilisé uniquement si le serveur supporte l’extension STARTTLS. Dans la plupart des cas, activez l’option, vous vous connecterai sur le port 465. Pour le port 587 ou 25, désactiver l’option. (source : nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Adresse de test",
|
"LabelEmailSettingsTestAddress": "Adresse de test",
|
||||||
"LabelEmbeddedCover": "Couverture du livre intégrée",
|
"LabelEmbeddedCover": "Couverture du livre intégrée",
|
||||||
"LabelEnable": "Activer",
|
"LabelEnable": "Activer",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Dossier",
|
"LabelFolder": "Dossier",
|
||||||
"LabelFolders": "Dossiers",
|
"LabelFolders": "Dossiers",
|
||||||
"LabelFontBold": "Gras",
|
"LabelFontBold": "Gras",
|
||||||
|
"LabelFontBoldness": "Graisse de la police",
|
||||||
"LabelFontFamily": "Polices de caractères",
|
"LabelFontFamily": "Polices de caractères",
|
||||||
"LabelFontItalic": "Italique",
|
"LabelFontItalic": "Italique",
|
||||||
"LabelFontScale": "Taille de la police de caractère",
|
"LabelFontScale": "Taille de la police de caractère",
|
||||||
@@ -312,16 +316,16 @@
|
|||||||
"LabelGenre": "Genre",
|
"LabelGenre": "Genre",
|
||||||
"LabelGenres": "Genres",
|
"LabelGenres": "Genres",
|
||||||
"LabelHardDeleteFile": "Suppression du fichier",
|
"LabelHardDeleteFile": "Suppression du fichier",
|
||||||
"LabelHasEbook": "Dispose d’un livre numérique",
|
"LabelHasEbook": "A un livre numérique",
|
||||||
"LabelHasSupplementaryEbook": "Dispose d’un livre numérique supplémentaire",
|
"LabelHasSupplementaryEbook": "A un livre numérique supplémentaire",
|
||||||
"LabelHighestPriority": "Priorité la plus élevée",
|
"LabelHighestPriority": "Priorité la plus élevée",
|
||||||
"LabelHost": "Hôte",
|
"LabelHost": "Hôte",
|
||||||
"LabelHour": "Heure",
|
"LabelHour": "Heure",
|
||||||
"LabelIcon": "Icône",
|
"LabelIcon": "Icône",
|
||||||
"LabelImageURLFromTheWeb": "URL de l’image à partir du web",
|
"LabelImageURLFromTheWeb": "URL de l’image à partir du web",
|
||||||
|
"LabelInProgress": "En cours",
|
||||||
"LabelIncludeInTracklist": "Inclure dans la liste de lecture",
|
"LabelIncludeInTracklist": "Inclure dans la liste de lecture",
|
||||||
"LabelIncomplete": "Incomplet",
|
"LabelIncomplete": "Incomplet",
|
||||||
"LabelInProgress": "En cours",
|
|
||||||
"LabelInterval": "Intervalle",
|
"LabelInterval": "Intervalle",
|
||||||
"LabelIntervalCustomDailyWeekly": "Personnaliser quotidiennement / hebdomadairement",
|
"LabelIntervalCustomDailyWeekly": "Personnaliser quotidiennement / hebdomadairement",
|
||||||
"LabelIntervalEvery12Hours": "Toutes les 12 heures",
|
"LabelIntervalEvery12Hours": "Toutes les 12 heures",
|
||||||
@@ -332,68 +336,71 @@
|
|||||||
"LabelIntervalEveryDay": "Tous les jours",
|
"LabelIntervalEveryDay": "Tous les jours",
|
||||||
"LabelIntervalEveryHour": "Toutes les heures",
|
"LabelIntervalEveryHour": "Toutes les heures",
|
||||||
"LabelInvert": "Inverser",
|
"LabelInvert": "Inverser",
|
||||||
"LabelItem": "Article",
|
"LabelItem": "Élément",
|
||||||
"LabelLanguage": "Langue",
|
"LabelLanguage": "Langue",
|
||||||
"LabelLanguageDefaultServer": "Langue par défaut",
|
"LabelLanguageDefaultServer": "Langue par défaut",
|
||||||
|
"LabelLanguages": "Langues",
|
||||||
"LabelLastBookAdded": "Dernier livre ajouté",
|
"LabelLastBookAdded": "Dernier livre ajouté",
|
||||||
"LabelLastBookUpdated": "Dernier livre mis à jour",
|
"LabelLastBookUpdated": "Dernier livre mis à jour",
|
||||||
"LabelLastSeen": "Vu dernièrement",
|
"LabelLastSeen": "Vu dernièrement",
|
||||||
"LabelLastTime": "Progression",
|
"LabelLastTime": "Progression",
|
||||||
"LabelLastUpdate": "Dernière mise à jour",
|
"LabelLastUpdate": "Dernière mise à jour",
|
||||||
"LabelLayout": "Disposition",
|
"LabelLayout": "Mise en page",
|
||||||
"LabelLayoutSinglePage": "Vue unique",
|
"LabelLayoutSinglePage": "Page seule",
|
||||||
"LabelLayoutSplitPage": "Vue partagée",
|
"LabelLayoutSplitPage": "Vue partagée",
|
||||||
"LabelLess": "Moins",
|
"LabelLess": "Moins",
|
||||||
"LabelLibrariesAccessibleToUser": "Bibliothèque accessible à l’utilisateur",
|
"LabelLibrariesAccessibleToUser": "Bibliothèque accessible à l’utilisateur",
|
||||||
"LabelLibrary": "Bibliothèque",
|
"LabelLibrary": "Bibliothèque",
|
||||||
"LabelLibraryItem": "Article de bibliothèque",
|
"LabelLibraryFilterSublistEmpty": "Aucun {0}",
|
||||||
|
"LabelLibraryItem": "Élément de bibliothèque",
|
||||||
"LabelLibraryName": "Nom de la bibliothèque",
|
"LabelLibraryName": "Nom de la bibliothèque",
|
||||||
"LabelLimit": "Limite",
|
"LabelLimit": "Limite",
|
||||||
"LabelLineSpacing": "Interligne",
|
"LabelLineSpacing": "Espacement des lignes",
|
||||||
"LabelListenAgain": "Écouter à nouveau",
|
"LabelListenAgain": "Écouter à nouveau",
|
||||||
"LabelLogLevelDebug": "Debug",
|
"LabelLogLevelDebug": "Debug",
|
||||||
"LabelLogLevelInfo": "Info",
|
"LabelLogLevelInfo": "Info",
|
||||||
"LabelLogLevelWarn": "Warn",
|
"LabelLogLevelWarn": "Warn",
|
||||||
"LabelLookForNewEpisodesAfterDate": "Chercher de nouveaux épisode après cette date",
|
"LabelLookForNewEpisodesAfterDate": "Rechercher les nouveaux épisodes après cette date",
|
||||||
"LabelLowestPriority": "Priorité la plus basse",
|
"LabelLowestPriority": "Priorité la plus basse",
|
||||||
"LabelMatchExistingUsersBy": "Faire correspondre les utilisateurs existants par",
|
"LabelMatchExistingUsersBy": "Correspondance avec les utilisateurs existants",
|
||||||
"LabelMatchExistingUsersByDescription": "Utilisé pour connecter les utilisateurs existants. Une fois connectés, les utilisateurs seront associés à un identifiant unique provenant de votre fournisseur SSO.",
|
"LabelMatchExistingUsersByDescription": "Utilisé pour connecter les utilisateurs existants. Une fois connectés, les utilisateurs seront associés à un identifiant unique provenant de votre fournisseur SSO",
|
||||||
"LabelMediaPlayer": "Lecteur multimédia",
|
"LabelMediaPlayer": "Lecteur multimédia",
|
||||||
"LabelMediaType": "Type de média",
|
"LabelMediaType": "Type de média",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Les sources de métadonnées ayant une priorité plus élevée auront la priorité sur celles ayant une priorité moins élevée.",
|
|
||||||
"LabelMetadataProvider": "Fournisseur de métadonnées",
|
|
||||||
"LabelMetaTag": "Balise de métadonnée",
|
"LabelMetaTag": "Balise de métadonnée",
|
||||||
"LabelMetaTags": "Balises de métadonnée",
|
"LabelMetaTags": "Balises de métadonnée",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Les sources de métadonnées ayant une priorité plus élevée auront la priorité sur celles ayant une priorité moins élevée",
|
||||||
|
"LabelMetadataProvider": "Fournisseur de métadonnées",
|
||||||
"LabelMinute": "Minute",
|
"LabelMinute": "Minute",
|
||||||
"LabelMissing": "Manquant",
|
"LabelMissing": "Manquant",
|
||||||
"LabelMissingEbook": "Ne possède pas de livre numérique",
|
"LabelMissingEbook": "Ne possède aucun livre numérique",
|
||||||
"LabelMissingSupplementaryEbook": "Ne possède pas de livre numérique supplémentaire",
|
"LabelMissingSupplementaryEbook": "Ne possède aucun livre numérique supplémentaire",
|
||||||
"LabelMobileRedirectURIs": "URI de redirection mobile autorisés",
|
"LabelMobileRedirectURIs": "URI de redirection mobile autorisés",
|
||||||
"LabelMobileRedirectURIsDescription": "Il s’agit d’une liste blanche d’URI de redirection valides pour les applications mobiles. Celui par défaut est <code>audiobookshelf://oauth</code>, que vous pouvez supprimer ou compléter avec des URIs supplémentaires pour l’intégration d’applications tierces. L’utilisation d’un astérisque (<code>*</code>) comme seule entrée autorise n’importe quel URI.",
|
"LabelMobileRedirectURIsDescription": "Il s’agit d’une liste blanche d’URI de redirection valides pour les applications mobiles. Celui par défaut est <code>audiobookshelf://oauth</code>, que vous pouvez supprimer ou compléter avec des URIs supplémentaires pour l’intégration d’applications tierces. L’utilisation d’un astérisque (<code>*</code>) comme seule entrée autorise n’importe quel URI.",
|
||||||
"LabelMore": "Plus",
|
"LabelMore": "Plus",
|
||||||
"LabelMoreInfo": "Plus d’informations",
|
"LabelMoreInfo": "Plus d’infos",
|
||||||
"LabelName": "Nom",
|
"LabelName": "Nom",
|
||||||
"LabelNarrator": "Narrateur",
|
"LabelNarrator": "Narrateur",
|
||||||
"LabelNarrators": "Narrateurs",
|
"LabelNarrators": "Narrateurs",
|
||||||
"LabelNew": "Nouveau",
|
"LabelNew": "Nouveau",
|
||||||
"LabelNewestAuthors": "Nouveaux auteurs",
|
|
||||||
"LabelNewestEpisodes": "Derniers épisodes",
|
|
||||||
"LabelNewPassword": "Nouveau mot de passe",
|
"LabelNewPassword": "Nouveau mot de passe",
|
||||||
|
"LabelNewestAuthors": "Auteurs récents",
|
||||||
|
"LabelNewestEpisodes": "Épisodes récents",
|
||||||
"LabelNextBackupDate": "Date de la prochaine sauvegarde",
|
"LabelNextBackupDate": "Date de la prochaine sauvegarde",
|
||||||
"LabelNextScheduledRun": "Prochain lancement prévu",
|
"LabelNextScheduledRun": "Prochain lancement prévu",
|
||||||
|
"LabelNoCustomMetadataProviders": "Aucun fournisseurs de métadonnées personnalisés",
|
||||||
"LabelNoEpisodesSelected": "Aucun épisode sélectionné",
|
"LabelNoEpisodesSelected": "Aucun épisode sélectionné",
|
||||||
"LabelNotes": "Notes",
|
|
||||||
"LabelNotFinished": "Non terminé",
|
"LabelNotFinished": "Non terminé",
|
||||||
|
"LabelNotStarted": "Pas commencé",
|
||||||
|
"LabelNotes": "Notes",
|
||||||
"LabelNotificationAppriseURL": "URL(s) d’Apprise",
|
"LabelNotificationAppriseURL": "URL(s) d’Apprise",
|
||||||
"LabelNotificationAvailableVariables": "Variables disponibles",
|
"LabelNotificationAvailableVariables": "Variables disponibles",
|
||||||
"LabelNotificationBodyTemplate": "Modèle de Message",
|
"LabelNotificationBodyTemplate": "Modèle de message",
|
||||||
"LabelNotificationEvent": "Evènement de Notification",
|
"LabelNotificationEvent": "Evènement de Notification",
|
||||||
|
"LabelNotificationTitleTemplate": "Modèle de titre",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Nombres de tentatives d’envoi",
|
"LabelNotificationsMaxFailedAttempts": "Nombres de tentatives d’envoi",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "La notification est abandonnée une fois ce seuil atteint",
|
"LabelNotificationsMaxFailedAttemptsHelp": "La notification est abandonnée une fois ce seuil atteint",
|
||||||
"LabelNotificationsMaxQueueSize": "Nombres de notifications maximum à mettre en attente",
|
"LabelNotificationsMaxQueueSize": "Nombres de notifications maximum à mettre en attente",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "La limite de notification est de un évènement par seconde. Les notifications seront ignorées si la file d’attente est à son maximum. Cela empêche un flot trop important.",
|
"LabelNotificationsMaxQueueSizeHelp": "La limite de notification est de un évènement par seconde. Les notifications seront ignorées si la file d’attente est à son maximum. Cela empêche un flot trop important.",
|
||||||
"LabelNotificationTitleTemplate": "Modèle de titre",
|
|
||||||
"LabelNotStarted": "Pas commencé",
|
|
||||||
"LabelNumberOfBooks": "Nombre de livres",
|
"LabelNumberOfBooks": "Nombre de livres",
|
||||||
"LabelNumberOfEpisodes": "Nombre d’épisodes",
|
"LabelNumberOfEpisodes": "Nombre d’épisodes",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Nom de la demande OpenID qui contient des autorisations avancées pour les actions de l’utilisateur dans l’application, qui s’appliqueront à des rôles autres que celui d’administrateur (<b>s’il est configuré</b>). Si la demande est absente de la réponse, l’accès à ABS sera refusé. Si une seule option est manquante, elle sera considérée comme <code>false</code>. Assurez-vous que la demande du fournisseur d’identité correspond à la structure attendue :",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Nom de la demande OpenID qui contient des autorisations avancées pour les actions de l’utilisateur dans l’application, qui s’appliqueront à des rôles autres que celui d’administrateur (<b>s’il est configuré</b>). Si la demande est absente de la réponse, l’accès à ABS sera refusé. Si une seule option est manquante, elle sera considérée comme <code>false</code>. Assurez-vous que la demande du fournisseur d’identité correspond à la structure attendue :",
|
||||||
@@ -410,14 +417,15 @@
|
|||||||
"LabelPermissionsDownload": "Peut télécharger",
|
"LabelPermissionsDownload": "Peut télécharger",
|
||||||
"LabelPermissionsUpdate": "Peut mettre à jour",
|
"LabelPermissionsUpdate": "Peut mettre à jour",
|
||||||
"LabelPermissionsUpload": "Peut téléverser",
|
"LabelPermissionsUpload": "Peut téléverser",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Bilan de l’année ({0})",
|
||||||
"LabelPhotoPathURL": "Chemin / URL des photos",
|
"LabelPhotoPathURL": "Chemin / URL des photos",
|
||||||
"LabelPlaylists": "Listes de lecture",
|
|
||||||
"LabelPlayMethod": "Méthode d’écoute",
|
"LabelPlayMethod": "Méthode d’écoute",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} sur {1}",
|
||||||
|
"LabelPlaylists": "Listes de lecture",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Région de recherche de podcasts",
|
"LabelPodcastSearchRegion": "Région de recherche de podcasts",
|
||||||
"LabelPodcastType": "Type de Podcast",
|
"LabelPodcastType": "Type de Podcast",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Préfixes à Ignorer (Insensible à la Casse)",
|
"LabelPrefixesToIgnore": "Préfixes à Ignorer (Insensible à la Casse)",
|
||||||
"LabelPreventIndexing": "Empêcher l’indexation de votre flux par les bases de données iTunes et Google podcast",
|
"LabelPreventIndexing": "Empêcher l’indexation de votre flux par les bases de données iTunes et Google podcast",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Progression",
|
"LabelProgress": "Progression",
|
||||||
"LabelProvider": "Fournisseur",
|
"LabelProvider": "Fournisseur",
|
||||||
"LabelPubDate": "Date de publication",
|
"LabelPubDate": "Date de publication",
|
||||||
|
"LabelPublishYear": "Année de publication",
|
||||||
"LabelPublisher": "Éditeur",
|
"LabelPublisher": "Éditeur",
|
||||||
"LabelPublishYear": "Année d’édition",
|
"LabelPublishers": "Éditeurs",
|
||||||
"LabelRead": "Lire",
|
|
||||||
"LabelReadAgain": "Lire à nouveau",
|
|
||||||
"LabelReadEbookWithoutProgress": "Lire le livre numérique sans sauvegarder la progression",
|
|
||||||
"LabelRecentlyAdded": "Derniers ajouts",
|
|
||||||
"LabelRecentSeries": "Séries récentes",
|
|
||||||
"LabelRecommended": "Recommandé",
|
|
||||||
"LabelRedo": "Refaire",
|
|
||||||
"LabelRegion": "Région",
|
|
||||||
"LabelReleaseDate": "Date de parution",
|
|
||||||
"LabelRemoveCover": "Supprimer la couverture",
|
|
||||||
"LabelRowsPerPage": "Lignes par page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Courriel du propriétaire personnalisé",
|
"LabelRSSFeedCustomOwnerEmail": "Courriel du propriétaire personnalisé",
|
||||||
"LabelRSSFeedCustomOwnerName": "Nom propriétaire personnalisé",
|
"LabelRSSFeedCustomOwnerName": "Nom propriétaire personnalisé",
|
||||||
"LabelRSSFeedOpen": "Flux RSS ouvert",
|
"LabelRSSFeedOpen": "Flux RSS ouvert",
|
||||||
"LabelRSSFeedPreventIndexing": "Empêcher l’indexation",
|
"LabelRSSFeedPreventIndexing": "Empêcher l’indexation",
|
||||||
"LabelRSSFeedSlug": "Balise URL du flux RSS",
|
"LabelRSSFeedSlug": "Balise URL du flux RSS",
|
||||||
"LabelRSSFeedURL": "Adresse du flux RSS",
|
"LabelRSSFeedURL": "Adresse du flux RSS",
|
||||||
|
"LabelRead": "Lire",
|
||||||
|
"LabelReadAgain": "Lire à nouveau",
|
||||||
|
"LabelReadEbookWithoutProgress": "Lire le livre numérique sans sauvegarder la progression",
|
||||||
|
"LabelRecentSeries": "Séries récentes",
|
||||||
|
"LabelRecentlyAdded": "Ajouts récents",
|
||||||
|
"LabelRecommended": "Recommandé",
|
||||||
|
"LabelRedo": "Refaire",
|
||||||
|
"LabelRegion": "Région",
|
||||||
|
"LabelReleaseDate": "Date de parution",
|
||||||
|
"LabelRemoveCover": "Supprimer la couverture",
|
||||||
|
"LabelRowsPerPage": "Lignes par page",
|
||||||
"LabelSearchTerm": "Terme de recherche",
|
"LabelSearchTerm": "Terme de recherche",
|
||||||
"LabelSearchTitle": "Titre de recherche",
|
"LabelSearchTitle": "Titre de recherche",
|
||||||
"LabelSearchTitleOrASIN": "Recherche du titre ou ASIN",
|
"LabelSearchTitleOrASIN": "Recherche du titre ou ASIN",
|
||||||
@@ -457,57 +466,57 @@
|
|||||||
"LabelSeries": "Séries",
|
"LabelSeries": "Séries",
|
||||||
"LabelSeriesName": "Nom de la série",
|
"LabelSeriesName": "Nom de la série",
|
||||||
"LabelSeriesProgress": "Progression de séries",
|
"LabelSeriesProgress": "Progression de séries",
|
||||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
"LabelServerYearReview": "Bilan de l’année du serveur ({0})",
|
||||||
"LabelSetEbookAsPrimary": "Définir comme principale",
|
"LabelSetEbookAsPrimary": "Définir comme principale",
|
||||||
"LabelSetEbookAsSupplementary": "Définir comme supplémentaire",
|
"LabelSetEbookAsSupplementary": "Définir comme supplémentaire",
|
||||||
"LabelSettingsAudiobooksOnly": "Livres audios seulement",
|
"LabelSettingsAudiobooksOnly": "Livres audios seulement",
|
||||||
"LabelSettingsAudiobooksOnlyHelp": "L’activation de ce paramètre ignorera les fichiers de type « livre numériques », sauf s’ils se trouvent dans un dossier spécifique , auquel cas ils seront définis comme des livres numériques supplémentaires.",
|
"LabelSettingsAudiobooksOnlyHelp": "L’activation de ce paramètre ignorera les fichiers de type « livre numériques », sauf s’ils se trouvent dans un dossier spécifique , auquel cas ils seront définis comme des livres numériques supplémentaires",
|
||||||
"LabelSettingsBookshelfViewHelp": "Interface skeuomorphique avec une étagère en bois",
|
"LabelSettingsBookshelfViewHelp": "Interface skeumorphique avec étagères en bois",
|
||||||
"LabelSettingsChromecastSupport": "Support du Chromecast",
|
"LabelSettingsChromecastSupport": "Support du Chromecast",
|
||||||
"LabelSettingsDateFormat": "Format de date",
|
"LabelSettingsDateFormat": "Format de date",
|
||||||
"LabelSettingsDisableWatcher": "Désactiver la surveillance",
|
"LabelSettingsDisableWatcher": "Désactiver la surveillance",
|
||||||
"LabelSettingsDisableWatcherForLibrary": "Désactiver la surveillance des dossiers pour la bibliothèque",
|
"LabelSettingsDisableWatcherForLibrary": "Désactiver la surveillance des dossiers pour la bibliothèque",
|
||||||
"LabelSettingsDisableWatcherHelp": "Désactive la mise à jour automatique lorsque des modifications de fichiers sont détectées. * nécessite le redémarrage du serveur",
|
"LabelSettingsDisableWatcherHelp": "Désactive la mise à jour automatique lorsque des modifications de fichiers sont détectées. * Nécessite le redémarrage du serveur",
|
||||||
"LabelSettingsEnableWatcher": "Activer la veille",
|
"LabelSettingsEnableWatcher": "Activer la veille",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "Activer la surveillance des dossiers pour la bibliothèque",
|
"LabelSettingsEnableWatcherForLibrary": "Activer la surveillance des dossiers pour la bibliothèque",
|
||||||
"LabelSettingsEnableWatcherHelp": "Active la mise à jour automatique automatique lorsque des modifications de fichiers sont détectées. * nécessite le redémarrage du serveur",
|
"LabelSettingsEnableWatcherHelp": "Active la mise à jour automatique d'éléments lorsque des modifications de fichiers sont détectées. * Nécessite le redémarrage du serveur",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Autoriser le contenu scénarisé pour les fichiers EPUB",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Autoriser les fichiers EPUB à exécuter des scripts. Il est recommandé de laisser ce paramètre désactivé, sauf si vous faites confiance à la source des fichiers EPUB.",
|
||||||
"LabelSettingsExperimentalFeatures": "Fonctionnalités expérimentales",
|
"LabelSettingsExperimentalFeatures": "Fonctionnalités expérimentales",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "Fonctionnalités en cours de développement sur lesquelles nous attendons votre retour et expérience. Cliquez pour ouvrir la discussion GitHub.",
|
"LabelSettingsExperimentalFeaturesHelp": "Fonctionnalités en cours de développement sur lesquelles nous attendons votre retour et expérience. Cliquez pour ouvrir la discussion GitHub.",
|
||||||
"LabelSettingsFindCovers": "Chercher des couvertures de livre",
|
"LabelSettingsFindCovers": "Chercher des couvertures de livre",
|
||||||
"LabelSettingsFindCoversHelp": "Si votre livre audio ne possède pas de couverture intégrée ou une image de couverture dans le dossier, l’analyseur tentera de récupérer une couverture.<br>Attention, cela peut augmenter le temps d’analyse.",
|
"LabelSettingsFindCoversHelp": "Si votre livre audio ne possède aucune couverture intégrée ou une image de couverture dans le dossier, l’analyseur tentera de récupérer une couverture.<br>Attention : cela peut augmenter le temps d’analyse",
|
||||||
"LabelSettingsHideSingleBookSeries": "Masquer les séries de livres uniques",
|
"LabelSettingsHideSingleBookSeries": "Masquer les séries de livres uniques",
|
||||||
"LabelSettingsHideSingleBookSeriesHelp": "Les séries qui ne comportent qu’un seul livre seront masquées sur la page de la série et sur les étagères de la page d’accueil.",
|
"LabelSettingsHideSingleBookSeriesHelp": "Les séries qui ne comportent qu’un seul livre seront masquées sur la page de la série et sur les étagères de la page d’accueil.",
|
||||||
"LabelSettingsHomePageBookshelfView": "La page d’accueil utilise la vue étagère",
|
"LabelSettingsHomePageBookshelfView": "Utiliser la vue étagère sur la page d’accueil",
|
||||||
"LabelSettingsLibraryBookshelfView": "La bibliothèque utilise la vue étagère",
|
"LabelSettingsLibraryBookshelfView": "Utiliser la vue étagère pour la bibliothèque",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Sauter les livres précédents dans « Continuer la série »",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Sauter les livres précédents dans « Continuer la série »",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "L’étagère de la page d’accueil « Continuer la série » affiche le premier livre non commencé dans les séries dont au moins un livre est terminé et aucun livre n’est en cours. L’activation de ce paramètre permet de poursuivre la série à partir du dernier livre terminé au lieu du premier livre non commencé.",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "L’étagère de la page d’accueil « Continuer la série » affiche le premier livre non commencé dans les séries dont au moins un livre est terminé et aucun livre n’est en cours. L’activation de ce paramètre permet de poursuivre la série à partir du dernier livre terminé au lieu du premier livre non commencé.",
|
||||||
"LabelSettingsParseSubtitles": "Analyser les sous-titres",
|
"LabelSettingsParseSubtitles": "Analyser les sous-titres",
|
||||||
"LabelSettingsParseSubtitlesHelp": "Extrait les sous-titres depuis le dossier du livre audio.<br>Les sous-titres doivent être séparés par des « - »<br>c’est-à-dire : « Titre du livre - Ceci est un sous-titre » aura le sous-titre « Ceci est un sous-titre »",
|
"LabelSettingsParseSubtitlesHelp": "Extrait les sous-titres depuis le dossier du livre audio.<br>Les sous-titres doivent être séparés par des « - »<br>c’est-à-dire : « Titre du livre - Ceci est un sous-titre » aura le sous-titre « Ceci est un sous-titre »",
|
||||||
"LabelSettingsPreferMatchedMetadata": "Préférer les métadonnées par correspondance",
|
"LabelSettingsPreferMatchedMetadata": "Préférer les métadonnées par correspondance",
|
||||||
"LabelSettingsPreferMatchedMetadataHelp": "Les métadonnées par correspondance écrase les détails de l’article lors d’une recherche par correspondance rapide. Par défaut, la recherche par correspondance rapide ne comblera que les éléments manquant.",
|
"LabelSettingsPreferMatchedMetadataHelp": "Les métadonnées mises en correspondance remplaceront les détails de l’élément lors de l’utilisation de la correspondance rapide. Par défaut, la correspondance rapide ne remplira que les détails manquants.",
|
||||||
"LabelSettingsSkipMatchingBooksWithASIN": "Ignorer la recherche par correspondance sur les livres ayant déjà un ASIN",
|
"LabelSettingsSkipMatchingBooksWithASIN": "Ignorer la recherche par correspondance pour les livres ayant déjà un ASIN",
|
||||||
"LabelSettingsSkipMatchingBooksWithISBN": "Ignorer la recherche par correspondance sur les livres ayant déjà un ISBN",
|
"LabelSettingsSkipMatchingBooksWithISBN": "Ignorer la recherche par correspondance pour les livres ayant déjà un ISBN",
|
||||||
"LabelSettingsSortingIgnorePrefixes": "Ignorer les préfixes lors du tri",
|
"LabelSettingsSortingIgnorePrefixes": "Ignorer les préfixes lors du tri",
|
||||||
"LabelSettingsSortingIgnorePrefixesHelp": "c’est-à-dire : pour le préfixe « le », le livre avec pour titre « Le Titre du Livre » sera trié en tant que « Titre du Livre, Le »",
|
"LabelSettingsSortingIgnorePrefixesHelp": "c’est-à-dire : pour le préfixe « le », le livre avec pour titre « Le Titre du Livre » sera trié en tant que « Titre du Livre, Le »",
|
||||||
"LabelSettingsSquareBookCovers": "Utiliser des couvertures carrées",
|
"LabelSettingsSquareBookCovers": "Utiliser des couvertures carrées",
|
||||||
"LabelSettingsSquareBookCoversHelp": "Préférer les couvertures carrées par rapport aux couvertures standards de ratio 1.6:1.",
|
"LabelSettingsSquareBookCoversHelp": "Préférer les couvertures carrées par rapport aux couvertures standards de ratio 1.6:1",
|
||||||
"LabelSettingsStoreCoversWithItem": "Enregistrer la couverture avec les articles",
|
"LabelSettingsStoreCoversWithItem": "Enregistrer la couverture avec les éléments",
|
||||||
"LabelSettingsStoreCoversWithItemHelp": "Par défaut, les couvertures sont enregistrées dans /metadata/items. Activer ce paramètre enregistrera les couvertures dans le dossier avec les fichiers de l’article. Seul un fichier nommé « cover » sera conservé.",
|
"LabelSettingsStoreCoversWithItemHelp": "Par défaut, les couvertures sont enregistrées dans /metadata/items. Activer ce paramètre enregistrera les couvertures dans le dossier avec les fichiers de élément. Seul un fichier nommé « cover » sera conservé",
|
||||||
"LabelSettingsStoreMetadataWithItem": "Enregistrer les Métadonnées avec les articles",
|
"LabelSettingsStoreMetadataWithItem": "Enregistrer les métadonnées avec l’élément",
|
||||||
"LabelSettingsStoreMetadataWithItemHelp": "Par défaut, les métadonnées sont enregistrées dans /metadata/items",
|
"LabelSettingsStoreMetadataWithItemHelp": "Par défaut, les fichiers de métadonnées sont stockés dans /metadata/items. En activant ce paramètre, les fichiers de métadonnées seront stockés dans les dossiers des éléments de votre bibliothèque",
|
||||||
"LabelSettingsTimeFormat": "Format d’heure",
|
"LabelSettingsTimeFormat": "Format d’heure",
|
||||||
"LabelShowAll": "Tout afficher",
|
"LabelShowAll": "Tout afficher",
|
||||||
"LabelShowSeconds": "Afficher le seondes",
|
"LabelShowSeconds": "Afficher les seondes",
|
||||||
"LabelSize": "Taille",
|
"LabelSize": "Taille",
|
||||||
"LabelSleepTimer": "Minuterie",
|
"LabelSleepTimer": "Minuterie de mise en veille",
|
||||||
"LabelSlug": "Balise",
|
"LabelSlug": "Balise",
|
||||||
"LabelStart": "Démarrer",
|
"LabelStart": "Démarrer",
|
||||||
|
"LabelStartTime": "Heure de démarrage",
|
||||||
"LabelStarted": "Démarré",
|
"LabelStarted": "Démarré",
|
||||||
"LabelStartedAt": "Démarré à",
|
"LabelStartedAt": "Démarré à",
|
||||||
"LabelStartTime": "Heure de démarrage",
|
"LabelStatsAudioTracks": "Pistes audio",
|
||||||
"LabelStatsAudioTracks": "Pistes Audios",
|
|
||||||
"LabelStatsAuthors": "Auteurs",
|
"LabelStatsAuthors": "Auteurs",
|
||||||
"LabelStatsBestDay": "Meilleur jour",
|
"LabelStatsBestDay": "Meilleur jour",
|
||||||
"LabelStatsDailyAverage": "Moyenne journalière",
|
"LabelStatsDailyAverage": "Moyenne journalière",
|
||||||
@@ -515,8 +524,8 @@
|
|||||||
"LabelStatsDaysListened": "Jours d’écoute",
|
"LabelStatsDaysListened": "Jours d’écoute",
|
||||||
"LabelStatsHours": "Heures",
|
"LabelStatsHours": "Heures",
|
||||||
"LabelStatsInARow": "d’affilée(s)",
|
"LabelStatsInARow": "d’affilée(s)",
|
||||||
"LabelStatsItemsFinished": "Articles terminés",
|
"LabelStatsItemsFinished": "Éléments terminés",
|
||||||
"LabelStatsItemsInLibrary": "Articles dans la bibliothèque",
|
"LabelStatsItemsInLibrary": "Éléments dans la bibliothèque",
|
||||||
"LabelStatsMinutes": "minutes",
|
"LabelStatsMinutes": "minutes",
|
||||||
"LabelStatsMinutesListening": "Minutes d’écoute",
|
"LabelStatsMinutesListening": "Minutes d’écoute",
|
||||||
"LabelStatsOverallDays": "Nombre total de jours",
|
"LabelStatsOverallDays": "Nombre total de jours",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Inconnu",
|
"LabelUnknown": "Inconnu",
|
||||||
"LabelUpdateCover": "Mettre à jour la couverture",
|
"LabelUpdateCover": "Mettre à jour la couverture",
|
||||||
"LabelUpdateCoverHelp": "Autoriser la mise à jour de la couverture existante lorsqu’une correspondance est trouvée",
|
"LabelUpdateCoverHelp": "Autoriser la mise à jour de la couverture existante lorsqu’une correspondance est trouvée",
|
||||||
"LabelUpdatedAt": "Mis à jour à",
|
|
||||||
"LabelUpdateDetails": "Mettre à jours les détails",
|
"LabelUpdateDetails": "Mettre à jours les détails",
|
||||||
"LabelUpdateDetailsHelp": "Autoriser la mise à jour des détails existants lorsqu’une correspondance est trouvée",
|
"LabelUpdateDetailsHelp": "Autoriser la mise à jour des détails existants lorsqu’une correspondance est trouvée",
|
||||||
|
"LabelUpdatedAt": "Mis à jour à",
|
||||||
"LabelUploaderDragAndDrop": "Glisser et déposer des fichiers ou dossiers",
|
"LabelUploaderDragAndDrop": "Glisser et déposer des fichiers ou dossiers",
|
||||||
"LabelUploaderDropFiles": "Déposer des fichiers",
|
"LabelUploaderDropFiles": "Déposer des fichiers",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Récupérer automatiquement le titre, l’auteur et la série",
|
"LabelUploaderItemFetchMetadataHelp": "Récupérer automatiquement le titre, l’auteur et la série",
|
||||||
@@ -574,7 +583,7 @@
|
|||||||
"LabelUsername": "Nom d’utilisateur",
|
"LabelUsername": "Nom d’utilisateur",
|
||||||
"LabelValue": "Valeur",
|
"LabelValue": "Valeur",
|
||||||
"LabelVersion": "Version",
|
"LabelVersion": "Version",
|
||||||
"LabelViewBookmarks": "Afficher les signets",
|
"LabelViewBookmarks": "Afficher les favoris",
|
||||||
"LabelViewChapters": "Afficher les chapitres",
|
"LabelViewChapters": "Afficher les chapitres",
|
||||||
"LabelViewQueue": "Afficher la liste de lecture",
|
"LabelViewQueue": "Afficher la liste de lecture",
|
||||||
"LabelVolume": "Volume",
|
"LabelVolume": "Volume",
|
||||||
@@ -582,18 +591,21 @@
|
|||||||
"LabelYearReviewHide": "Masquer le bilan de l’année",
|
"LabelYearReviewHide": "Masquer le bilan de l’année",
|
||||||
"LabelYearReviewShow": "Afficher le bilan de l’année",
|
"LabelYearReviewShow": "Afficher le bilan de l’année",
|
||||||
"LabelYourAudiobookDuration": "Durée de vos livres audios",
|
"LabelYourAudiobookDuration": "Durée de vos livres audios",
|
||||||
"LabelYourBookmarks": "Vos signets",
|
"LabelYourBookmarks": "Vos favoris",
|
||||||
"LabelYourPlaylists": "Vos listes de lecture",
|
"LabelYourPlaylists": "Vos listes de lecture",
|
||||||
"LabelYourProgress": "Votre progression",
|
"LabelYourProgress": "Votre progression",
|
||||||
"MessageAddToPlayerQueue": "Ajouter en file d’attente",
|
"MessageAddToPlayerQueue": "Ajouter en file d’attente",
|
||||||
"MessageAppriseDescription": "Nécessite une instance d’<a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">API Apprise</a> pour utiliser cette fonctionnalité ou une api qui prend en charge les mêmes requêtes.<br>L’URL de l’API Apprise doit comprendre le chemin complet pour envoyer la notification. Par exemple, si votre instance écoute sur <code>http://192.168.1.1:8337</code> alors vous devez mettre <code>http://192.168.1.1:8337/notify</code>.",
|
"MessageAppriseDescription": "Nécessite une instance d’<a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">API Apprise</a> pour utiliser cette fonctionnalité ou une api qui prend en charge les mêmes requêtes.<br />L’URL de l’API Apprise doit comprendre le chemin complet pour envoyer la notification. Par exemple, si votre instance écoute sur <code>http://192.168.1.1:8337</code> alors vous devez mettre <code>http://192.168.1.1:8337/notify</code>.",
|
||||||
"MessageBackupsDescription": "Les sauvegardes incluent les utilisateurs, la progression de lecture par utilisateur, les détails des articles des bibliothèques, les paramètres du serveur et les images sauvegardées. Les sauvegardes n’incluent pas les fichiers de votre bibliothèque.",
|
"MessageBackupsDescription": "Les sauvegardes incluent les utilisateurs, la progression des utilisateurs, les détails des éléments de la bibliothèque, les paramètres du serveur et les images stockées dans <code>/metadata/items</code> & <code>/metadata/authors</code>. Les sauvegardes <strong>n’incluent pas</strong> les fichiers stockés dans les dossiers de votre bibliothèque.",
|
||||||
"MessageBatchQuickMatchDescription": "La recherche par correspondance rapide tentera d’ajouter les couvertures et les métadonnées manquantes pour les articles sélectionnés. Activer l’option suivante pour autoriser la recherche par correspondance à écraser les données existantes.",
|
"MessageBackupsLocationEditNote": "Remarque : Mettre à jour l'emplacement de sauvegarde ne déplacera pas ou ne modifiera pas les sauvegardes existantes",
|
||||||
|
"MessageBackupsLocationPathEmpty": "L'emplacement de secours ne peut pas être vide",
|
||||||
|
"MessageBatchQuickMatchDescription": "La recherche par correspondance rapide tentera d’ajouter les couvertures et métadonnées manquantes pour les éléments sélectionnés. Activez les options ci-dessous pour permettre la Recherche par correspondance d’écraser les couvertures et/ou métadonnées existantes.",
|
||||||
"MessageBookshelfNoCollections": "Vous n’avez pas encore de collections",
|
"MessageBookshelfNoCollections": "Vous n’avez pas encore de collections",
|
||||||
"MessageBookshelfNoResultsForFilter": "Aucun résultat pour le filtre « {0} : {1} »",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Aucun flux RSS n’est ouvert",
|
"MessageBookshelfNoRSSFeeds": "Aucun flux RSS n’est ouvert",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Aucun résultat pour le filtre « {0} : {1} »",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "Aucun résultat pour la requête",
|
||||||
"MessageBookshelfNoSeries": "Vous n’avez aucune série",
|
"MessageBookshelfNoSeries": "Vous n’avez aucune série",
|
||||||
"MessageChapterEndIsAfter": "La fin du chapitre se situe après la fin de votre livre audio.",
|
"MessageChapterEndIsAfter": "La fin du chapitre se situe après la fin de votre livre audio",
|
||||||
"MessageChapterErrorFirstNotZero": "Le premier capitre doit débuter à 0",
|
"MessageChapterErrorFirstNotZero": "Le premier capitre doit débuter à 0",
|
||||||
"MessageChapterErrorStartGteDuration": "Horodatage invalide car il doit débuter avant la fin du livre",
|
"MessageChapterErrorStartGteDuration": "Horodatage invalide car il doit débuter avant la fin du livre",
|
||||||
"MessageChapterErrorStartLtPrev": "Horodatage invalide car il doit débuter au moins après le précédent chapitre",
|
"MessageChapterErrorStartLtPrev": "Horodatage invalide car il doit débuter au moins après le précédent chapitre",
|
||||||
@@ -610,45 +622,46 @@
|
|||||||
"MessageConfirmMarkAllEpisodesFinished": "Êtes-vous sûr de marquer tous les épisodes comme terminés ?",
|
"MessageConfirmMarkAllEpisodesFinished": "Êtes-vous sûr de marquer tous les épisodes comme terminés ?",
|
||||||
"MessageConfirmMarkAllEpisodesNotFinished": "Êtes-vous sûr de vouloir marquer tous les épisodes comme non terminés ?",
|
"MessageConfirmMarkAllEpisodesNotFinished": "Êtes-vous sûr de vouloir marquer tous les épisodes comme non terminés ?",
|
||||||
"MessageConfirmMarkSeriesFinished": "Êtes-vous sûr de vouloir marquer tous les livres de cette série comme terminées ?",
|
"MessageConfirmMarkSeriesFinished": "Êtes-vous sûr de vouloir marquer tous les livres de cette série comme terminées ?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Êtes-vous sûr de vouloir marquer tous les livres de cette série comme comme non terminés ?",
|
"MessageConfirmMarkSeriesNotFinished": "Êtes-vous sûr de vouloir marquer tous les livres de cette série comme non terminés ?",
|
||||||
"MessageConfirmPurgeCache": "La purge du cache supprimera l’intégralité du répertoire à <code>/metadata/cache</code>.<br><br>Êtes-vous sûr de vouloir supprimer le répertoire de cache ?",
|
"MessageConfirmPurgeCache": "La purge du cache supprimera l’intégralité du répertoire à <code>/metadata/cache</code>.<br /><br />Êtes-vous sûr de vouloir supprimer le répertoire de cache ?",
|
||||||
"MessageConfirmQuickEmbed": "Attention ! L’intégration rapide ne sauvegardera pas vos fichiers audio. Assurez-vous d’avoir effectuer une sauvegarde de vos fichiers audio.<br><br>Souhaitez-vous continuer ?",
|
"MessageConfirmPurgeItemsCache": "Purger le cache des éléments supprimera l'ensemble du répertoire <code>/metadata/cache/items</code>.<br />Êtes-vous sûr ?",
|
||||||
|
"MessageConfirmQuickEmbed": "Attention ! L'intégration rapide ne permet pas de sauvegarder vos fichiers audio. Assurez-vous d’avoir effectuer une sauvegarde de vos fichiers audio.<br><br>Souhaitez-vous continuer ?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Êtes-vous sûr de vouloir re-analyser {0} éléments ?",
|
||||||
"MessageConfirmRemoveAllChapters": "Êtes-vous sûr de vouloir supprimer tous les chapitres ?",
|
"MessageConfirmRemoveAllChapters": "Êtes-vous sûr de vouloir supprimer tous les chapitres ?",
|
||||||
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Êtes-vous sûr de vouloir supprimer l’auteur « {0} » ?",
|
||||||
"MessageConfirmRemoveCollection": "Êtes-vous sûr de vouloir supprimer la collection « {0} » ?",
|
"MessageConfirmRemoveCollection": "Êtes-vous sûr de vouloir supprimer la collection « {0} » ?",
|
||||||
"MessageConfirmRemoveEpisode": "Êtes-vous sûr de vouloir supprimer l’épisode « {0} » ?",
|
"MessageConfirmRemoveEpisode": "Êtes-vous sûr de vouloir supprimer l’épisode « {0} » ?",
|
||||||
"MessageConfirmRemoveEpisodes": "Êtes-vous sûr de vouloir supprimer {0} épisodes ?",
|
"MessageConfirmRemoveEpisodes": "Êtes-vous sûr de vouloir supprimer {0} épisodes ?",
|
||||||
"MessageConfirmRemoveListeningSessions": "Are you sure you want to remove {0} listening sessions?",
|
"MessageConfirmRemoveListeningSessions": "Êtes-vous sûr de vouloir supprimer {0} sessions d’écoute ?",
|
||||||
"MessageConfirmRemoveNarrator": "Êtes-vous sûr de vouloir supprimer le narrateur « {0} » ?",
|
"MessageConfirmRemoveNarrator": "Êtes-vous sûr de vouloir supprimer le narrateur « {0} » ?",
|
||||||
"MessageConfirmRemovePlaylist": "Êtes-vous sûr de vouloir supprimer la liste de lecture « {0} » ?",
|
"MessageConfirmRemovePlaylist": "Êtes-vous sûr de vouloir supprimer la liste de lecture « {0} » ?",
|
||||||
"MessageConfirmRenameGenre": "Êtes-vous sûr de vouloir renommer le genre « {0} » en « {1} » pour tous les articles ?",
|
"MessageConfirmRenameGenre": "Êtes-vous sûr de vouloir renommer le genre « {0} » en « {1} » pour tous les éléments ?",
|
||||||
"MessageConfirmRenameGenreMergeNote": "Information: Ce genre existe déjà et sera fusionné.",
|
"MessageConfirmRenameGenreMergeNote": "Information : ce genre existe déjà et sera fusionné.",
|
||||||
"MessageConfirmRenameGenreWarning": "Attention ! Un genre similaire avec une casse différente existe déjà « {0} ».",
|
"MessageConfirmRenameGenreWarning": "Attention ! Un genre similaire avec une casse différente existe déjà « {0} ».",
|
||||||
"MessageConfirmRenameTag": "Êtes-vous sûr de vouloir renommer l’étiquette « {0} » en « {1} » pour tous les articles ?",
|
"MessageConfirmRenameTag": "Êtes-vous sûr de vouloir renommer l’étiquette « {0} » en « {1} » pour tous les éléments ?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Information : Cette étiquette existe déjà et sera fusionnée.",
|
"MessageConfirmRenameTagMergeNote": "Information : Cette étiquette existe déjà et sera fusionnée.",
|
||||||
"MessageConfirmRenameTagWarning": "Attention ! Une étiquette similaire avec une casse différente existe déjà « {0} ».",
|
"MessageConfirmRenameTagWarning": "Attention ! Une étiquette similaire avec une casse différente existe déjà « {0} ».",
|
||||||
"MessageConfirmReScanLibraryItems": "Êtes-vous sûr de vouloir re-analyser {0} éléments ?",
|
"MessageConfirmSendEbookToDevice": "Êtes-vous sûr de vouloir envoyer {0} livre numérique « {1} » à l'appareil « {2} » ?",
|
||||||
"MessageConfirmSendEbookToDevice": "Êtes-vous sûr de vouloir envoyer le livre numérique {0} « {1} » à l’appareil « {2} »?",
|
|
||||||
"MessageDownloadingEpisode": "Téléchargement de l’épisode",
|
"MessageDownloadingEpisode": "Téléchargement de l’épisode",
|
||||||
"MessageDragFilesIntoTrackOrder": "Faites glisser les fichiers dans l’ordre correct des pistes",
|
"MessageDragFilesIntoTrackOrder": "Faites glisser les fichiers dans l’ordre correct des pistes",
|
||||||
"MessageEmbedFinished": "Intégration terminée !",
|
"MessageEmbedFinished": "Intégration terminée !",
|
||||||
"MessageEpisodesQueuedForDownload": "{0} épisode(s) mis en file pour téléchargement",
|
"MessageEpisodesQueuedForDownload": "{0} épisode(s) mis en file pour téléchargement",
|
||||||
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below.",
|
"MessageEreaderDevices": "Pour garantir l’envoie des livres électroniques, il se peut que vous deviez ajouter l’adresse électronique ci-dessus en tant qu’expéditeur valide pour chaque appareil répertorié ci-dessous.",
|
||||||
"MessageFeedURLWillBe": "L’URL du flux sera {0}",
|
"MessageFeedURLWillBe": "L’URL du flux sera {0}",
|
||||||
"MessageFetching": "Récupération…",
|
"MessageFetching": "Récupération…",
|
||||||
"MessageForceReScanDescription": "analysera de nouveau tous les fichiers. Les étiquettes ID3 des fichiers audio, les fichiers OPF et les fichiers texte seront analysés comme s’ils étaient nouveaux.",
|
"MessageForceReScanDescription": "analysera de nouveau tous les fichiers. Les étiquettes ID3 des fichiers audio, les fichiers OPF et les fichiers texte seront analysés comme s’ils étaient nouveaux.",
|
||||||
"MessageImportantNotice": "Information importante !",
|
"MessageImportantNotice": "Information importante !",
|
||||||
"MessageInsertChapterBelow": "Insérer le chapitre ci-dessous",
|
"MessageInsertChapterBelow": "Insérer le chapitre ci-dessous",
|
||||||
"MessageItemsSelected": "{0} articles sélectionnés",
|
"MessageItemsSelected": "{0} éléments sélectionnés",
|
||||||
"MessageItemsUpdated": "{0} articles mis à jour",
|
"MessageItemsUpdated": "{0} éléments mis à jour",
|
||||||
"MessageJoinUsOn": "Rejoignez-nous sur",
|
"MessageJoinUsOn": "Rejoignez-nous sur",
|
||||||
"MessageListeningSessionsInTheLastYear": "{0} sessions d’écoute l’an dernier",
|
"MessageListeningSessionsInTheLastYear": "{0} sessions d’écoute l’an dernier",
|
||||||
"MessageLoading": "Chargement…",
|
"MessageLoading": "Chargement…",
|
||||||
"MessageLoadingFolders": "Chargement des dossiers…",
|
"MessageLoadingFolders": "Chargement des dossiers…",
|
||||||
"MessageLogsDescription": "Les journaux sont stockés dans <code>/metadata/logs</code> sous forme de fichiers JSON. Les journaux d’incidents sont stockés dans <code>/metadata/logs/crash_logs.txt</code>.",
|
"MessageLogsDescription": "Les journaux sont stockés dans <code>/metadata/logs</code> sous forme de fichiers JSON. Les journaux d’incidents sont stockés dans <code>/metadata/logs/crash_logs.txt</code>.",
|
||||||
"MessageM4BFailed": "M4B échec",
|
"MessageM4BFailed": "M4B a échoué !",
|
||||||
"MessageM4BFinished": "M4B terminé",
|
"MessageM4BFinished": "M4B terminé !",
|
||||||
"MessageMapChapterTitles": "Faire correspondre les titres des chapitres aux chapitres existants de votre livre audio sans ajuster l’horodatage.",
|
"MessageMapChapterTitles": "Faire correspondre les titres de chapitres avec ceux de vos livres audio existants sans ajuster les horodatages",
|
||||||
"MessageMarkAllEpisodesFinished": "Marquer tous les épisodes terminés",
|
"MessageMarkAllEpisodesFinished": "Marquer tous les épisodes terminés",
|
||||||
"MessageMarkAllEpisodesNotFinished": "Marquer tous les épisodes non terminés",
|
"MessageMarkAllEpisodesNotFinished": "Marquer tous les épisodes non terminés",
|
||||||
"MessageMarkAsFinished": "Marquer comme terminé",
|
"MessageMarkAsFinished": "Marquer comme terminé",
|
||||||
@@ -657,20 +670,20 @@
|
|||||||
"MessageNoAudioTracks": "Aucune piste audio",
|
"MessageNoAudioTracks": "Aucune piste audio",
|
||||||
"MessageNoAuthors": "Aucun auteur",
|
"MessageNoAuthors": "Aucun auteur",
|
||||||
"MessageNoBackups": "Aucune sauvegarde",
|
"MessageNoBackups": "Aucune sauvegarde",
|
||||||
"MessageNoBookmarks": "Aucun signet",
|
"MessageNoBookmarks": "Aucun favoris",
|
||||||
"MessageNoChapters": "Aucun chapitre",
|
"MessageNoChapters": "Aucun chapitre",
|
||||||
"MessageNoCollections": "Aucune collection",
|
"MessageNoCollections": "Aucune collection",
|
||||||
"MessageNoCoversFound": "Aucune couverture trouvée",
|
"MessageNoCoversFound": "Aucune couverture trouvée",
|
||||||
"MessageNoDescription": "Aucune description",
|
"MessageNoDescription": "Aucune description",
|
||||||
"MessageNoDownloadsInProgress": "Aucun téléchargement en cours",
|
"MessageNoDownloadsInProgress": "Aucun téléchargement en cours",
|
||||||
"MessageNoDownloadsQueued": "Aucun téléchargement en file d’attente",
|
"MessageNoDownloadsQueued": "Aucun téléchargement en attente",
|
||||||
"MessageNoEpisodeMatchesFound": "Aucune correspondance d’épisode trouvée",
|
"MessageNoEpisodeMatchesFound": "Aucune correspondance d’épisode trouvée",
|
||||||
"MessageNoEpisodes": "Aucun épisode",
|
"MessageNoEpisodes": "Aucun épisode",
|
||||||
"MessageNoFoldersAvailable": "Aucun dossier disponible",
|
"MessageNoFoldersAvailable": "Aucun dossiers disponible",
|
||||||
"MessageNoGenres": "Aucun genre",
|
"MessageNoGenres": "Aucun genre",
|
||||||
"MessageNoIssues": "Aucune parution",
|
"MessageNoIssues": "Aucune parution",
|
||||||
"MessageNoItems": "Aucun article",
|
"MessageNoItems": "Aucun élément",
|
||||||
"MessageNoItemsFound": "Aucun article trouvé",
|
"MessageNoItemsFound": "Aucun élément trouvé",
|
||||||
"MessageNoListeningSessions": "Aucune session d’écoute en cours",
|
"MessageNoListeningSessions": "Aucune session d’écoute en cours",
|
||||||
"MessageNoLogs": "Aucun journaux",
|
"MessageNoLogs": "Aucun journaux",
|
||||||
"MessageNoMediaProgress": "Aucun média en cours",
|
"MessageNoMediaProgress": "Aucun média en cours",
|
||||||
@@ -679,12 +692,12 @@
|
|||||||
"MessageNoResults": "Aucun résultat",
|
"MessageNoResults": "Aucun résultat",
|
||||||
"MessageNoSearchResultsFor": "Aucun résultat pour la recherche « {0} »",
|
"MessageNoSearchResultsFor": "Aucun résultat pour la recherche « {0} »",
|
||||||
"MessageNoSeries": "Aucune série",
|
"MessageNoSeries": "Aucune série",
|
||||||
"MessageNoTags": "Aucune d’étiquettes",
|
"MessageNoTags": "Aucune étiquette",
|
||||||
"MessageNoTasksRunning": "Aucune tâche en cours",
|
"MessageNoTasksRunning": "Aucune tâche en cours",
|
||||||
"MessageNotYetImplemented": "Non implémenté",
|
|
||||||
"MessageNoUpdateNecessary": "Aucune mise à jour nécessaire",
|
"MessageNoUpdateNecessary": "Aucune mise à jour nécessaire",
|
||||||
"MessageNoUpdatesWereNecessary": "Aucune mise à jour n’était nécessaire",
|
"MessageNoUpdatesWereNecessary": "Aucune mise à jour n’était nécessaire",
|
||||||
"MessageNoUserPlaylists": "Vous n’avez aucune liste de lecture",
|
"MessageNoUserPlaylists": "Vous n’avez aucune liste de lecture",
|
||||||
|
"MessageNotYetImplemented": "Non implémenté",
|
||||||
"MessageOr": "ou",
|
"MessageOr": "ou",
|
||||||
"MessagePauseChapter": "Suspendre la lecture du chapitre",
|
"MessagePauseChapter": "Suspendre la lecture du chapitre",
|
||||||
"MessagePlayChapter": "Écouter depuis le début du chapitre",
|
"MessagePlayChapter": "Écouter depuis le début du chapitre",
|
||||||
@@ -695,7 +708,7 @@
|
|||||||
"MessageRemoveEpisodes": "Suppression de {0} épisode(s)",
|
"MessageRemoveEpisodes": "Suppression de {0} épisode(s)",
|
||||||
"MessageRemoveFromPlayerQueue": "Supprimer de la liste d’écoute",
|
"MessageRemoveFromPlayerQueue": "Supprimer de la liste d’écoute",
|
||||||
"MessageRemoveUserWarning": "Êtes-vous sûr de vouloir supprimer définitivement l’utilisateur « {0} » ?",
|
"MessageRemoveUserWarning": "Êtes-vous sûr de vouloir supprimer définitivement l’utilisateur « {0} » ?",
|
||||||
"MessageReportBugsAndContribute": "Remonter des anomalies, demander des fonctionnalités et contribuer sur",
|
"MessageReportBugsAndContribute": "Signalez des anomalies, demandez des fonctionnalités et contribuez sur",
|
||||||
"MessageResetChaptersConfirm": "Êtes-vous sûr de vouloir réinitialiser les chapitres et annuler les changements effectués ?",
|
"MessageResetChaptersConfirm": "Êtes-vous sûr de vouloir réinitialiser les chapitres et annuler les changements effectués ?",
|
||||||
"MessageRestoreBackupConfirm": "Êtes-vous sûr de vouloir restaurer la sauvegarde créée le",
|
"MessageRestoreBackupConfirm": "Êtes-vous sûr de vouloir restaurer la sauvegarde créée le",
|
||||||
"MessageRestoreBackupWarning": "Restaurer la sauvegarde écrasera la base de donnée située dans le dossier /config ainsi que les images sur /metadata/items et /metadata/authors.<br><br>Les sauvegardes ne touchent pas aux fichiers de la bibliothèque. Si vous avez activé le paramètre pour sauvegarder les métadonnées et les images de couverture dans le même dossier que les fichiers, ceux-ci ne ni sauvegardés, ni écrasés lors de la restauration.<br><br>Tous les clients utilisant votre serveur seront automatiquement mis à jour.",
|
"MessageRestoreBackupWarning": "Restaurer la sauvegarde écrasera la base de donnée située dans le dossier /config ainsi que les images sur /metadata/items et /metadata/authors.<br><br>Les sauvegardes ne touchent pas aux fichiers de la bibliothèque. Si vous avez activé le paramètre pour sauvegarder les métadonnées et les images de couverture dans le même dossier que les fichiers, ceux-ci ne ni sauvegardés, ni écrasés lors de la restauration.<br><br>Tous les clients utilisant votre serveur seront automatiquement mis à jour.",
|
||||||
@@ -716,7 +729,7 @@
|
|||||||
"NoteChangeRootPassword": "seul l’utilisateur « root » peut utiliser un mot de passe vide",
|
"NoteChangeRootPassword": "seul l’utilisateur « root » peut utiliser un mot de passe vide",
|
||||||
"NoteChapterEditorTimes": "Information : l’horodatage du premier chapitre doit être à 0:00 et celui du dernier chapitre ne peut se situer au-delà de la durée du livre audio.",
|
"NoteChapterEditorTimes": "Information : l’horodatage du premier chapitre doit être à 0:00 et celui du dernier chapitre ne peut se situer au-delà de la durée du livre audio.",
|
||||||
"NoteFolderPicker": "Information : les dossiers déjà surveillés ne sont pas affichés",
|
"NoteFolderPicker": "Information : les dossiers déjà surveillés ne sont pas affichés",
|
||||||
"NoteRSSFeedPodcastAppsHttps": "Attention : la majorité des application de podcast nécessite une adresse de flux en HTTPS.",
|
"NoteRSSFeedPodcastAppsHttps": "Attention : la majorité des application de podcast nécessite une adresse de flux HTTPS",
|
||||||
"NoteRSSFeedPodcastAppsPubDate": "Attention : un ou plusieurs de vos épisodes ne possèdent pas de date de publication. Certaines applications de podcast le requièrent.",
|
"NoteRSSFeedPodcastAppsPubDate": "Attention : un ou plusieurs de vos épisodes ne possèdent pas de date de publication. Certaines applications de podcast le requièrent.",
|
||||||
"NoteUploaderFoldersWithMediaFiles": "Les dossiers contenant des fichiers multimédias seront traités comme des éléments distincts de la bibliothèque.",
|
"NoteUploaderFoldersWithMediaFiles": "Les dossiers contenant des fichiers multimédias seront traités comme des éléments distincts de la bibliothèque.",
|
||||||
"NoteUploaderOnlyAudioFiles": "Si vous téléversez uniquement des fichiers audio, chaque fichier audio sera traité comme un livre audio distinct.",
|
"NoteUploaderOnlyAudioFiles": "Si vous téléversez uniquement des fichiers audio, chaque fichier audio sera traité comme un livre audio distinct.",
|
||||||
@@ -753,8 +766,8 @@
|
|||||||
"ToastCachePurgeSuccess": "Cache purgé avec succès",
|
"ToastCachePurgeSuccess": "Cache purgé avec succès",
|
||||||
"ToastChaptersHaveErrors": "Les chapitres contiennent des erreurs",
|
"ToastChaptersHaveErrors": "Les chapitres contiennent des erreurs",
|
||||||
"ToastChaptersMustHaveTitles": "Les chapitre doivent avoir un titre",
|
"ToastChaptersMustHaveTitles": "Les chapitre doivent avoir un titre",
|
||||||
"ToastCollectionItemsRemoveFailed": "Échec de la suppression de(s) article(s) de la collection",
|
"ToastCollectionItemsRemoveFailed": "Échec de la suppression d’un ou plusieurs éléments de la collection",
|
||||||
"ToastCollectionItemsRemoveSuccess": "Article(s) supprimé(s) de la collection",
|
"ToastCollectionItemsRemoveSuccess": "Élément(s) supprimé(s) de la collection",
|
||||||
"ToastCollectionRemoveFailed": "Échec de la suppression de la collection",
|
"ToastCollectionRemoveFailed": "Échec de la suppression de la collection",
|
||||||
"ToastCollectionRemoveSuccess": "Collection supprimée",
|
"ToastCollectionRemoveSuccess": "Collection supprimée",
|
||||||
"ToastCollectionUpdateFailed": "Échec de la mise à jour de la collection",
|
"ToastCollectionUpdateFailed": "Échec de la mise à jour de la collection",
|
||||||
@@ -762,11 +775,11 @@
|
|||||||
"ToastDeleteFileFailed": "Échec de la suppression du fichier",
|
"ToastDeleteFileFailed": "Échec de la suppression du fichier",
|
||||||
"ToastDeleteFileSuccess": "Fichier supprimé",
|
"ToastDeleteFileSuccess": "Fichier supprimé",
|
||||||
"ToastFailedToLoadData": "Échec du chargement des données",
|
"ToastFailedToLoadData": "Échec du chargement des données",
|
||||||
"ToastItemCoverUpdateFailed": "Échec de la mise à jour de la couverture de l’article",
|
"ToastItemCoverUpdateFailed": "Échec de la mise à jour de la couverture de l’élément",
|
||||||
"ToastItemCoverUpdateSuccess": "Couverture de l’article mise à jour",
|
"ToastItemCoverUpdateSuccess": "Couverture mise à jour",
|
||||||
"ToastItemDetailsUpdateFailed": "Échec de la mise à jour des détails de l’article",
|
"ToastItemDetailsUpdateFailed": "Échec de la mise à jour des détails de l’élément",
|
||||||
"ToastItemDetailsUpdateSuccess": "Détails de l’article mis à jour",
|
"ToastItemDetailsUpdateSuccess": "Détails de l’élément mis à jour",
|
||||||
"ToastItemDetailsUpdateUnneeded": "Pas de mise à jour nécessaire sur les détails de l’article",
|
"ToastItemDetailsUpdateUnneeded": "Aucune mise à jour n’est nécessaire pour les détails de l’élément",
|
||||||
"ToastItemMarkedAsFinishedFailed": "Échec de l’annotation terminée",
|
"ToastItemMarkedAsFinishedFailed": "Échec de l’annotation terminée",
|
||||||
"ToastItemMarkedAsFinishedSuccess": "Article marqué comme terminé",
|
"ToastItemMarkedAsFinishedSuccess": "Article marqué comme terminé",
|
||||||
"ToastItemMarkedAsNotFinishedFailed": "Échec de l’annotation non-terminée",
|
"ToastItemMarkedAsNotFinishedFailed": "Échec de l’annotation non-terminée",
|
||||||
@@ -785,12 +798,12 @@
|
|||||||
"ToastPlaylistRemoveSuccess": "Liste de lecture supprimée",
|
"ToastPlaylistRemoveSuccess": "Liste de lecture supprimée",
|
||||||
"ToastPlaylistUpdateFailed": "Échec de la mise à jour de la liste de lecture",
|
"ToastPlaylistUpdateFailed": "Échec de la mise à jour de la liste de lecture",
|
||||||
"ToastPlaylistUpdateSuccess": "Liste de lecture mise à jour",
|
"ToastPlaylistUpdateSuccess": "Liste de lecture mise à jour",
|
||||||
"ToastPodcastCreateFailed": "Échec de la création du Podcast",
|
"ToastPodcastCreateFailed": "Échec de la création du podcast",
|
||||||
"ToastPodcastCreateSuccess": "Podcast créé",
|
"ToastPodcastCreateSuccess": "Podcast créé avec succès",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Échec de la suppression de l’article de la collection",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Article supprimé de la collection",
|
|
||||||
"ToastRSSFeedCloseFailed": "Échec de la fermeture du flux RSS",
|
"ToastRSSFeedCloseFailed": "Échec de la fermeture du flux RSS",
|
||||||
"ToastRSSFeedCloseSuccess": "Flux RSS fermé",
|
"ToastRSSFeedCloseSuccess": "Flux RSS fermé",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Échec de la suppression d’un élément de la collection",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Élément supprimé de la collection",
|
||||||
"ToastSendEbookToDeviceFailed": "Échec de l’envoi du livre numérique à l’appareil",
|
"ToastSendEbookToDeviceFailed": "Échec de l’envoi du livre numérique à l’appareil",
|
||||||
"ToastSendEbookToDeviceSuccess": "Livre numérique envoyé à l’appareil : {0}",
|
"ToastSendEbookToDeviceSuccess": "Livre numérique envoyé à l’appareil : {0}",
|
||||||
"ToastSeriesUpdateFailed": "Échec de la mise à jour de la série",
|
"ToastSeriesUpdateFailed": "Échec de la mise à jour de la série",
|
||||||
|
|||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "લાગુ કરો",
|
"ButtonApply": "લાગુ કરો",
|
||||||
"ButtonApplyChapters": "પ્રકરણો લાગુ કરો",
|
"ButtonApplyChapters": "પ્રકરણો લાગુ કરો",
|
||||||
"ButtonAuthors": "લેખકો",
|
"ButtonAuthors": "લેખકો",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "ફોલ્ડર માટે જુઓ",
|
"ButtonBrowseForFolder": "ફોલ્ડર માટે જુઓ",
|
||||||
"ButtonCancel": "રદ કરો",
|
"ButtonCancel": "રદ કરો",
|
||||||
"ButtonCancelEncode": "એન્કોડ રદ કરો",
|
"ButtonCancelEncode": "એન્કોડ રદ કરો",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Previous Chapter",
|
||||||
"ButtonPurgeAllCache": "બધો Cache કાઢી નાખો",
|
"ButtonPurgeAllCache": "બધો Cache કાઢી નાખો",
|
||||||
"ButtonPurgeItemsCache": "વસ્તુઓનો Cache કાઢી નાખો",
|
"ButtonPurgeItemsCache": "વસ્તુઓનો Cache કાઢી નાખો",
|
||||||
"ButtonPurgeMediaProgress": "બધું સાંભળ્યું કાઢી નાખો",
|
|
||||||
"ButtonQueueAddItem": "કતારમાં ઉમેરો",
|
"ButtonQueueAddItem": "કતારમાં ઉમેરો",
|
||||||
"ButtonQueueRemoveItem": "કતારથી કાઢી નાખો",
|
"ButtonQueueRemoveItem": "કતારથી કાઢી નાખો",
|
||||||
"ButtonQuickMatch": "ઝડપી મેળ ખવડાવો",
|
"ButtonQuickMatch": "ઝડપી મેળ ખવડાવો",
|
||||||
|
"ButtonReScan": "ફરીથી સ્કેન કરો",
|
||||||
"ButtonRead": "વાંચો",
|
"ButtonRead": "વાંચો",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "સાંભળતી પુસ્તકો માંથી કાઢી નાખો",
|
"ButtonRemoveFromContinueListening": "સાંભળતી પુસ્તકો માંથી કાઢી નાખો",
|
||||||
"ButtonRemoveFromContinueReading": "સાંભળતી પુસ્તકો માંથી કાઢી નાખો",
|
"ButtonRemoveFromContinueReading": "સાંભળતી પુસ્તકો માંથી કાઢી નાખો",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "સાંભળતી સિરીઝ માંથી કાઢી નાખો",
|
"ButtonRemoveSeriesFromContinueSeries": "સાંભળતી સિરીઝ માંથી કાઢી નાખો",
|
||||||
"ButtonReScan": "ફરીથી સ્કેન કરો",
|
|
||||||
"ButtonReset": "રીસેટ કરો",
|
"ButtonReset": "રીસેટ કરો",
|
||||||
"ButtonResetToDefault": "ડિફોલ્ટ પર રીસેટ કરો",
|
"ButtonResetToDefault": "ડિફોલ્ટ પર રીસેટ કરો",
|
||||||
"ButtonRestore": "પુનઃસ્થાપિત કરો",
|
"ButtonRestore": "પુનઃસ્થાપિત કરો",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "એકાઉન્ટ",
|
"HeaderAccount": "એકાઉન્ટ",
|
||||||
"HeaderAdvanced": "અડ્વાન્સડ",
|
"HeaderAdvanced": "અડ્વાન્સડ",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise સૂચના સેટિંગ્સ",
|
"HeaderAppriseNotificationSettings": "Apprise સૂચના સેટિંગ્સ",
|
||||||
"HeaderAudiobookTools": "ઓડિયોબુક ફાઇલ વ્યવસ્થાપન ટૂલ્સ",
|
|
||||||
"HeaderAudioTracks": "ઓડિયો ટ્રેક્સ",
|
"HeaderAudioTracks": "ઓડિયો ટ્રેક્સ",
|
||||||
|
"HeaderAudiobookTools": "ઓડિયોબુક ફાઇલ વ્યવસ્થાપન ટૂલ્સ",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "બેકઅપ્સ",
|
"HeaderBackups": "બેકઅપ્સ",
|
||||||
"HeaderChangePassword": "પાસવર્ડ બદલો",
|
"HeaderChangePassword": "પાસવર્ડ બદલો",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "સંગ્રહ વસ્તુઓ",
|
"HeaderCollectionItems": "સંગ્રહ વસ્તુઓ",
|
||||||
"HeaderCover": "આવરણ",
|
"HeaderCover": "આવરણ",
|
||||||
"HeaderCurrentDownloads": "વર્તમાન ડાઉનલોડ્સ",
|
"HeaderCurrentDownloads": "વર્તમાન ડાઉનલોડ્સ",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||||
"HeaderDetails": "વિગતો",
|
"HeaderDetails": "વિગતો",
|
||||||
"HeaderDownloadQueue": "ડાઉનલોડ કતાર",
|
"HeaderDownloadQueue": "ડાઉનલોડ કતાર",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "પ્લેલિસ્ટ ની વસ્તુઓ",
|
"HeaderPlaylistItems": "પ્લેલિસ્ટ ની વસ્તુઓ",
|
||||||
"HeaderPodcastsToAdd": "ઉમેરવા માટે પોડકાસ્ટ્સ",
|
"HeaderPodcastsToAdd": "ઉમેરવા માટે પોડકાસ્ટ્સ",
|
||||||
"HeaderPreviewCover": "પૂર્વાવલોકન કવર",
|
"HeaderPreviewCover": "પૂર્વાવલોકન કવર",
|
||||||
"HeaderRemoveEpisode": "એપિસોડ કાઢી નાખો",
|
|
||||||
"HeaderRemoveEpisodes": "{0} એપિસોડ્સ કાઢી નાખો",
|
|
||||||
"HeaderRSSFeedGeneral": "સામાન્ય RSS ફીડ",
|
"HeaderRSSFeedGeneral": "સામાન્ય RSS ફીડ",
|
||||||
"HeaderRSSFeedIsOpen": "RSS ફીડ ખોલેલી છે",
|
"HeaderRSSFeedIsOpen": "RSS ફીડ ખોલેલી છે",
|
||||||
"HeaderRSSFeeds": "RSS ફીડ્સ",
|
"HeaderRSSFeeds": "RSS ફીડ્સ",
|
||||||
|
"HeaderRemoveEpisode": "એપિસોડ કાઢી નાખો",
|
||||||
|
"HeaderRemoveEpisodes": "{0} એપિસોડ્સ કાઢી નાખો",
|
||||||
"HeaderSavedMediaProgress": "સાચવેલ મીડિયા પ્રગતિ",
|
"HeaderSavedMediaProgress": "સાચવેલ મીડિયા પ્રગતિ",
|
||||||
"HeaderSchedule": "સમયપત્રક",
|
"HeaderSchedule": "સમયપત્રક",
|
||||||
"HeaderScheduleLibraryScans": "પુસ્તકાલય સ્કેન સમયપત્રક",
|
"HeaderScheduleLibraryScans": "પુસ્તકાલય સ્કેન સમયપત્રક",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Guest",
|
"LabelAccountTypeGuest": "Guest",
|
||||||
"LabelAccountTypeUser": "User",
|
"LabelAccountTypeUser": "User",
|
||||||
"LabelActivity": "Activity",
|
"LabelActivity": "Activity",
|
||||||
"LabelAdded": "Added",
|
|
||||||
"LabelAddedAt": "Added At",
|
|
||||||
"LabelAddToCollection": "Add to Collection",
|
"LabelAddToCollection": "Add to Collection",
|
||||||
"LabelAddToCollectionBatch": "Add {0} Books to Collection",
|
"LabelAddToCollectionBatch": "Add {0} Books to Collection",
|
||||||
"LabelAddToPlaylist": "Add to Playlist",
|
"LabelAddToPlaylist": "Add to Playlist",
|
||||||
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
||||||
|
"LabelAdded": "Added",
|
||||||
|
"LabelAddedAt": "Added At",
|
||||||
"LabelAdminUsersOnly": "Admin users only",
|
"LabelAdminUsersOnly": "Admin users only",
|
||||||
"LabelAll": "All",
|
"LabelAll": "All",
|
||||||
"LabelAllUsers": "All Users",
|
"LabelAllUsers": "All Users",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Change Password",
|
"LabelChangePassword": "Change Password",
|
||||||
"LabelChannels": "Channels",
|
"LabelChannels": "Channels",
|
||||||
|
"LabelChapterTitle": "Chapter Title",
|
||||||
"LabelChapters": "Chapters",
|
"LabelChapters": "Chapters",
|
||||||
"LabelChaptersFound": "chapters found",
|
"LabelChaptersFound": "chapters found",
|
||||||
"LabelChapterTitle": "Chapter Title",
|
|
||||||
"LabelClickForMoreInfo": "Click for more info",
|
"LabelClickForMoreInfo": "Click for more info",
|
||||||
"LabelClosePlayer": "Close player",
|
"LabelClosePlayer": "Close player",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Edit",
|
"LabelEdit": "Edit",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "From Address",
|
"LabelEmailSettingsFromAddress": "From Address",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Secure",
|
"LabelEmailSettingsSecure": "Secure",
|
||||||
"LabelEmailSettingsSecureHelp": "If true the connection will use TLS when connecting to server. If false then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false. (from nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "If true the connection will use TLS when connecting to server. If false then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false. (from nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test Address",
|
"LabelEmailSettingsTestAddress": "Test Address",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Folder",
|
"LabelFolder": "Folder",
|
||||||
"LabelFolders": "Folders",
|
"LabelFolders": "Folders",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "ફોન્ટ કુટુંબ",
|
"LabelFontFamily": "ફોન્ટ કુટુંબ",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Font scale",
|
"LabelFontScale": "Font scale",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Hour",
|
"LabelHour": "Hour",
|
||||||
"LabelIcon": "Icon",
|
"LabelIcon": "Icon",
|
||||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
"LabelImageURLFromTheWeb": "Image URL from the web",
|
||||||
|
"LabelInProgress": "In Progress",
|
||||||
"LabelIncludeInTracklist": "Include in Tracklist",
|
"LabelIncludeInTracklist": "Include in Tracklist",
|
||||||
"LabelIncomplete": "Incomplete",
|
"LabelIncomplete": "Incomplete",
|
||||||
"LabelInProgress": "In Progress",
|
|
||||||
"LabelInterval": "Interval",
|
"LabelInterval": "Interval",
|
||||||
"LabelIntervalCustomDailyWeekly": "Custom daily/weekly",
|
"LabelIntervalCustomDailyWeekly": "Custom daily/weekly",
|
||||||
"LabelIntervalEvery12Hours": "Every 12 hours",
|
"LabelIntervalEvery12Hours": "Every 12 hours",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Item",
|
"LabelItem": "Item",
|
||||||
"LabelLanguage": "Language",
|
"LabelLanguage": "Language",
|
||||||
"LabelLanguageDefaultServer": "Default Server Language",
|
"LabelLanguageDefaultServer": "Default Server Language",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Last Book Added",
|
"LabelLastBookAdded": "Last Book Added",
|
||||||
"LabelLastBookUpdated": "Last Book Updated",
|
"LabelLastBookUpdated": "Last Book Updated",
|
||||||
"LabelLastSeen": "Last Seen",
|
"LabelLastSeen": "Last Seen",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Less",
|
"LabelLess": "Less",
|
||||||
"LabelLibrariesAccessibleToUser": "Libraries Accessible to User",
|
"LabelLibrariesAccessibleToUser": "Libraries Accessible to User",
|
||||||
"LabelLibrary": "Library",
|
"LabelLibrary": "Library",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Library Item",
|
"LabelLibraryItem": "Library Item",
|
||||||
"LabelLibraryName": "Library Name",
|
"LabelLibraryName": "Library Name",
|
||||||
"LabelLimit": "Limit",
|
"LabelLimit": "Limit",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||||
"LabelMediaPlayer": "Media Player",
|
"LabelMediaPlayer": "Media Player",
|
||||||
"LabelMediaType": "Media Type",
|
"LabelMediaType": "Media Type",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Metadata Provider",
|
|
||||||
"LabelMetaTag": "Meta Tag",
|
"LabelMetaTag": "Meta Tag",
|
||||||
"LabelMetaTags": "Meta Tags",
|
"LabelMetaTags": "Meta Tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||||
|
"LabelMetadataProvider": "Metadata Provider",
|
||||||
"LabelMinute": "Minute",
|
"LabelMinute": "Minute",
|
||||||
"LabelMissing": "Missing",
|
"LabelMissing": "Missing",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Narrator",
|
"LabelNarrator": "Narrator",
|
||||||
"LabelNarrators": "Narrators",
|
"LabelNarrators": "Narrators",
|
||||||
"LabelNew": "New",
|
"LabelNew": "New",
|
||||||
|
"LabelNewPassword": "New Password",
|
||||||
"LabelNewestAuthors": "Newest Authors",
|
"LabelNewestAuthors": "Newest Authors",
|
||||||
"LabelNewestEpisodes": "Newest Episodes",
|
"LabelNewestEpisodes": "Newest Episodes",
|
||||||
"LabelNewPassword": "New Password",
|
|
||||||
"LabelNextBackupDate": "Next backup date",
|
"LabelNextBackupDate": "Next backup date",
|
||||||
"LabelNextScheduledRun": "Next scheduled run",
|
"LabelNextScheduledRun": "Next scheduled run",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "No episodes selected",
|
"LabelNoEpisodesSelected": "No episodes selected",
|
||||||
"LabelNotes": "Notes",
|
|
||||||
"LabelNotFinished": "Not Finished",
|
"LabelNotFinished": "Not Finished",
|
||||||
|
"LabelNotStarted": "Not Started",
|
||||||
|
"LabelNotes": "Notes",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
||||||
"LabelNotificationAvailableVariables": "Available variables",
|
"LabelNotificationAvailableVariables": "Available variables",
|
||||||
"LabelNotificationBodyTemplate": "Body Template",
|
"LabelNotificationBodyTemplate": "Body Template",
|
||||||
"LabelNotificationEvent": "Notification Event",
|
"LabelNotificationEvent": "Notification Event",
|
||||||
|
"LabelNotificationTitleTemplate": "Title Template",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Max failed attempts",
|
"LabelNotificationsMaxFailedAttempts": "Max failed attempts",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Notifications are disabled once they fail to send this many times",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Notifications are disabled once they fail to send this many times",
|
||||||
"LabelNotificationsMaxQueueSize": "Max queue size for notification events",
|
"LabelNotificationsMaxQueueSize": "Max queue size for notification events",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Events are limited to firing 1 per second. Events will be ignored if the queue is at max size. This prevents notification spamming.",
|
"LabelNotificationsMaxQueueSizeHelp": "Events are limited to firing 1 per second. Events will be ignored if the queue is at max size. This prevents notification spamming.",
|
||||||
"LabelNotificationTitleTemplate": "Title Template",
|
|
||||||
"LabelNotStarted": "Not Started",
|
|
||||||
"LabelNumberOfBooks": "Number of Books",
|
"LabelNumberOfBooks": "Number of Books",
|
||||||
"LabelNumberOfEpisodes": "# of Episodes",
|
"LabelNumberOfEpisodes": "# of Episodes",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Can Upload",
|
"LabelPermissionsUpload": "Can Upload",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Photo Path/URL",
|
"LabelPhotoPathURL": "Photo Path/URL",
|
||||||
"LabelPlaylists": "Playlists",
|
|
||||||
"LabelPlayMethod": "Play Method",
|
"LabelPlayMethod": "Play Method",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Playlists",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "પોડકાસ્ટ શોધ પ્રદેશ",
|
"LabelPodcastSearchRegion": "પોડકાસ્ટ શોધ પ્રદેશ",
|
||||||
"LabelPodcastType": "Podcast Type",
|
"LabelPodcastType": "Podcast Type",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Prefixes to Ignore (case insensitive)",
|
"LabelPrefixesToIgnore": "Prefixes to Ignore (case insensitive)",
|
||||||
"LabelPreventIndexing": "Prevent your feed from being indexed by iTunes and Google podcast directories",
|
"LabelPreventIndexing": "Prevent your feed from being indexed by iTunes and Google podcast directories",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Progress",
|
"LabelProgress": "Progress",
|
||||||
"LabelProvider": "Provider",
|
"LabelProvider": "Provider",
|
||||||
"LabelPubDate": "Pub Date",
|
"LabelPubDate": "Pub Date",
|
||||||
"LabelPublisher": "Publisher",
|
|
||||||
"LabelPublishYear": "Publish Year",
|
"LabelPublishYear": "Publish Year",
|
||||||
"LabelRead": "Read",
|
"LabelPublisher": "Publisher",
|
||||||
"LabelReadAgain": "Read Again",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Read ebook without keeping progress",
|
|
||||||
"LabelRecentlyAdded": "Recently Added",
|
|
||||||
"LabelRecentSeries": "Recent Series",
|
|
||||||
"LabelRecommended": "Recommended",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Region",
|
|
||||||
"LabelReleaseDate": "Release Date",
|
|
||||||
"LabelRemoveCover": "Remove cover",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
||||||
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
||||||
"LabelRSSFeedOpen": "RSS Feed Open",
|
"LabelRSSFeedOpen": "RSS Feed Open",
|
||||||
"LabelRSSFeedPreventIndexing": "Prevent Indexing",
|
"LabelRSSFeedPreventIndexing": "Prevent Indexing",
|
||||||
"LabelRSSFeedSlug": "RSS Feed Slug",
|
"LabelRSSFeedSlug": "RSS Feed Slug",
|
||||||
"LabelRSSFeedURL": "RSS Feed URL",
|
"LabelRSSFeedURL": "RSS Feed URL",
|
||||||
|
"LabelRead": "Read",
|
||||||
|
"LabelReadAgain": "Read Again",
|
||||||
|
"LabelReadEbookWithoutProgress": "Read ebook without keeping progress",
|
||||||
|
"LabelRecentSeries": "Recent Series",
|
||||||
|
"LabelRecentlyAdded": "Recently Added",
|
||||||
|
"LabelRecommended": "Recommended",
|
||||||
|
"LabelRedo": "Redo",
|
||||||
|
"LabelRegion": "Region",
|
||||||
|
"LabelReleaseDate": "Release Date",
|
||||||
|
"LabelRemoveCover": "Remove cover",
|
||||||
|
"LabelRowsPerPage": "Rows per page",
|
||||||
"LabelSearchTerm": "Search Term",
|
"LabelSearchTerm": "Search Term",
|
||||||
"LabelSearchTitle": "Search Title",
|
"LabelSearchTitle": "Search Title",
|
||||||
"LabelSearchTitleOrASIN": "Search Title or ASIN",
|
"LabelSearchTitleOrASIN": "Search Title or ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Sleep timer",
|
"LabelSleepTimer": "Sleep timer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Start",
|
"LabelStart": "Start",
|
||||||
|
"LabelStartTime": "Start Time",
|
||||||
"LabelStarted": "Started",
|
"LabelStarted": "Started",
|
||||||
"LabelStartedAt": "Started At",
|
"LabelStartedAt": "Started At",
|
||||||
"LabelStartTime": "Start Time",
|
|
||||||
"LabelStatsAudioTracks": "Audio Tracks",
|
"LabelStatsAudioTracks": "Audio Tracks",
|
||||||
"LabelStatsAuthors": "Authors",
|
"LabelStatsAuthors": "Authors",
|
||||||
"LabelStatsBestDay": "Best Day",
|
"LabelStatsBestDay": "Best Day",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Unknown",
|
"LabelUnknown": "Unknown",
|
||||||
"LabelUpdateCover": "Update Cover",
|
"LabelUpdateCover": "Update Cover",
|
||||||
"LabelUpdateCoverHelp": "Allow overwriting of existing covers for the selected books when a match is located",
|
"LabelUpdateCoverHelp": "Allow overwriting of existing covers for the selected books when a match is located",
|
||||||
"LabelUpdatedAt": "Updated At",
|
|
||||||
"LabelUpdateDetails": "Update Details",
|
"LabelUpdateDetails": "Update Details",
|
||||||
"LabelUpdateDetailsHelp": "Allow overwriting of existing details for the selected books when a match is located",
|
"LabelUpdateDetailsHelp": "Allow overwriting of existing details for the selected books when a match is located",
|
||||||
|
"LabelUpdatedAt": "Updated At",
|
||||||
"LabelUploaderDragAndDrop": "Drag & drop files or folders",
|
"LabelUploaderDragAndDrop": "Drag & drop files or folders",
|
||||||
"LabelUploaderDropFiles": "Drop files",
|
"LabelUploaderDropFiles": "Drop files",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>do not</strong> include any files stored in your library folders.",
|
"MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>do not</strong> include any files stored in your library folders.",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match will attempt to add missing covers and metadata for the selected items. Enable the options below to allow Quick Match to overwrite existing covers and/or metadata.",
|
"MessageBatchQuickMatchDescription": "Quick Match will attempt to add missing covers and metadata for the selected items. Enable the options below to allow Quick Match to overwrite existing covers and/or metadata.",
|
||||||
"MessageBookshelfNoCollections": "You haven't made any collections yet",
|
"MessageBookshelfNoCollections": "You haven't made any collections yet",
|
||||||
"MessageBookshelfNoResultsForFilter": "No Results for filter \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "No RSS feeds are open",
|
"MessageBookshelfNoRSSFeeds": "No RSS feeds are open",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "No Results for filter \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "You have no series",
|
"MessageBookshelfNoSeries": "You have no series",
|
||||||
"MessageChapterEndIsAfter": "Chapter end is after the end of your audiobook",
|
"MessageChapterEndIsAfter": "Chapter end is after the end of your audiobook",
|
||||||
"MessageChapterErrorFirstNotZero": "First chapter must start at 0",
|
"MessageChapterErrorFirstNotZero": "First chapter must start at 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Are you sure you want to mark all books in this series as finished?",
|
"MessageConfirmMarkSeriesFinished": "Are you sure you want to mark all books in this series as finished?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Are you sure you want to mark all books in this series as not finished?",
|
"MessageConfirmMarkSeriesNotFinished": "Are you sure you want to mark all books in this series as not finished?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||||
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
||||||
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Are you sure you want to remove collection \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Are you sure you want to remove collection \"{0}\"?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
||||||
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Downloading episode",
|
"MessageDownloadingEpisode": "Downloading episode",
|
||||||
"MessageDragFilesIntoTrackOrder": "Drag files into correct track order",
|
"MessageDragFilesIntoTrackOrder": "Drag files into correct track order",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "No Series",
|
"MessageNoSeries": "No Series",
|
||||||
"MessageNoTags": "No Tags",
|
"MessageNoTags": "No Tags",
|
||||||
"MessageNoTasksRunning": "No Tasks Running",
|
"MessageNoTasksRunning": "No Tasks Running",
|
||||||
"MessageNotYetImplemented": "Not yet implemented",
|
|
||||||
"MessageNoUpdateNecessary": "No update necessary",
|
"MessageNoUpdateNecessary": "No update necessary",
|
||||||
"MessageNoUpdatesWereNecessary": "No updates were necessary",
|
"MessageNoUpdatesWereNecessary": "No updates were necessary",
|
||||||
"MessageNoUserPlaylists": "You have no playlists",
|
"MessageNoUserPlaylists": "You have no playlists",
|
||||||
|
"MessageNotYetImplemented": "Not yet implemented",
|
||||||
"MessageOr": "or",
|
"MessageOr": "or",
|
||||||
"MessagePauseChapter": "Pause chapter playback",
|
"MessagePauseChapter": "Pause chapter playback",
|
||||||
"MessagePlayChapter": "Listen to beginning of chapter",
|
"MessagePlayChapter": "Listen to beginning of chapter",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
||||||
"ToastPodcastCreateFailed": "Failed to create podcast",
|
"ToastPodcastCreateFailed": "Failed to create podcast",
|
||||||
"ToastPodcastCreateSuccess": "Podcast created successfully",
|
"ToastPodcastCreateSuccess": "Podcast created successfully",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Failed to remove item from collection",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Item removed from collection",
|
|
||||||
"ToastRSSFeedCloseFailed": "Failed to close RSS feed",
|
"ToastRSSFeedCloseFailed": "Failed to close RSS feed",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS feed closed",
|
"ToastRSSFeedCloseSuccess": "RSS feed closed",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Failed to remove item from collection",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Item removed from collection",
|
||||||
"ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device",
|
"ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Series update failed",
|
"ToastSeriesUpdateFailed": "Series update failed",
|
||||||
|
|||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "החל",
|
"ButtonApply": "החל",
|
||||||
"ButtonApplyChapters": "החל פרקים",
|
"ButtonApplyChapters": "החל פרקים",
|
||||||
"ButtonAuthors": "יוצרים",
|
"ButtonAuthors": "יוצרים",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "עיין בתיקייה",
|
"ButtonBrowseForFolder": "עיין בתיקייה",
|
||||||
"ButtonCancel": "בטל",
|
"ButtonCancel": "בטל",
|
||||||
"ButtonCancelEncode": "בטל קידוד",
|
"ButtonCancelEncode": "בטל קידוד",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "פרק קודם",
|
"ButtonPreviousChapter": "פרק קודם",
|
||||||
"ButtonPurgeAllCache": "נקה את כל המטמון",
|
"ButtonPurgeAllCache": "נקה את כל המטמון",
|
||||||
"ButtonPurgeItemsCache": "נקה את מטמון הפריטים",
|
"ButtonPurgeItemsCache": "נקה את מטמון הפריטים",
|
||||||
"ButtonPurgeMediaProgress": "נקה את ההתקדמות במדיה",
|
|
||||||
"ButtonQueueAddItem": "הוסף לתור",
|
"ButtonQueueAddItem": "הוסף לתור",
|
||||||
"ButtonQueueRemoveItem": "הסר מהתור",
|
"ButtonQueueRemoveItem": "הסר מהתור",
|
||||||
"ButtonQuickMatch": "התאמה מהירה",
|
"ButtonQuickMatch": "התאמה מהירה",
|
||||||
|
"ButtonReScan": "סרוק מחדש",
|
||||||
"ButtonRead": "קרא",
|
"ButtonRead": "קרא",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "הסר מ- המשך האזנה",
|
"ButtonRemoveFromContinueListening": "הסר מ- המשך האזנה",
|
||||||
"ButtonRemoveFromContinueReading": "הסר מ- המשך קריאה",
|
"ButtonRemoveFromContinueReading": "הסר מ- המשך קריאה",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "הסר סדרה מ- המשך סדרה",
|
"ButtonRemoveSeriesFromContinueSeries": "הסר סדרה מ- המשך סדרה",
|
||||||
"ButtonReScan": "סרוק מחדש",
|
|
||||||
"ButtonReset": "איפוס",
|
"ButtonReset": "איפוס",
|
||||||
"ButtonResetToDefault": "איפוס לברירת המחדל",
|
"ButtonResetToDefault": "איפוס לברירת המחדל",
|
||||||
"ButtonRestore": "שחזר",
|
"ButtonRestore": "שחזר",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "חשבון",
|
"HeaderAccount": "חשבון",
|
||||||
"HeaderAdvanced": "מתקדם",
|
"HeaderAdvanced": "מתקדם",
|
||||||
"HeaderAppriseNotificationSettings": "הגדרות התראות של Apprise",
|
"HeaderAppriseNotificationSettings": "הגדרות התראות של Apprise",
|
||||||
"HeaderAudiobookTools": "כלים לניהול קבצי ספרים קוליים",
|
|
||||||
"HeaderAudioTracks": "רצועות קול",
|
"HeaderAudioTracks": "רצועות קול",
|
||||||
|
"HeaderAudiobookTools": "כלים לניהול קבצי ספרים קוליים",
|
||||||
"HeaderAuthentication": "אימות",
|
"HeaderAuthentication": "אימות",
|
||||||
"HeaderBackups": "גיבויים",
|
"HeaderBackups": "גיבויים",
|
||||||
"HeaderChangePassword": "שנה סיסמה",
|
"HeaderChangePassword": "שנה סיסמה",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "פריטי אוסף",
|
"HeaderCollectionItems": "פריטי אוסף",
|
||||||
"HeaderCover": "כריכה",
|
"HeaderCover": "כריכה",
|
||||||
"HeaderCurrentDownloads": "הורדות נוכחיות",
|
"HeaderCurrentDownloads": "הורדות נוכחיות",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "ספקי מטא-נתונים מותאמים אישית",
|
"HeaderCustomMetadataProviders": "ספקי מטא-נתונים מותאמים אישית",
|
||||||
"HeaderDetails": "פרטים",
|
"HeaderDetails": "פרטים",
|
||||||
"HeaderDownloadQueue": "תור הורדה",
|
"HeaderDownloadQueue": "תור הורדה",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "פריטי רשימת השמעה",
|
"HeaderPlaylistItems": "פריטי רשימת השמעה",
|
||||||
"HeaderPodcastsToAdd": "פודקאסטים להוספה",
|
"HeaderPodcastsToAdd": "פודקאסטים להוספה",
|
||||||
"HeaderPreviewCover": "תצוגה מקדימה של כריכה",
|
"HeaderPreviewCover": "תצוגה מקדימה של כריכה",
|
||||||
"HeaderRemoveEpisode": "הסר פרק",
|
|
||||||
"HeaderRemoveEpisodes": "הסר {0} פרקים",
|
|
||||||
"HeaderRSSFeedGeneral": "פרטי ערוץ RSS",
|
"HeaderRSSFeedGeneral": "פרטי ערוץ RSS",
|
||||||
"HeaderRSSFeedIsOpen": "ערוץ RSS פתוח",
|
"HeaderRSSFeedIsOpen": "ערוץ RSS פתוח",
|
||||||
"HeaderRSSFeeds": "ערוצי RSS",
|
"HeaderRSSFeeds": "ערוצי RSS",
|
||||||
|
"HeaderRemoveEpisode": "הסר פרק",
|
||||||
|
"HeaderRemoveEpisodes": "הסר {0} פרקים",
|
||||||
"HeaderSavedMediaProgress": "התקדמות מדיה שמורה",
|
"HeaderSavedMediaProgress": "התקדמות מדיה שמורה",
|
||||||
"HeaderSchedule": "תיזמון",
|
"HeaderSchedule": "תיזמון",
|
||||||
"HeaderScheduleLibraryScans": "קבע סריקות ספרייה אוטומטיות",
|
"HeaderScheduleLibraryScans": "קבע סריקות ספרייה אוטומטיות",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "אורח",
|
"LabelAccountTypeGuest": "אורח",
|
||||||
"LabelAccountTypeUser": "משתמש",
|
"LabelAccountTypeUser": "משתמש",
|
||||||
"LabelActivity": "פעילות",
|
"LabelActivity": "פעילות",
|
||||||
"LabelAdded": "נוסף",
|
|
||||||
"LabelAddedAt": "נוסף בתאריך",
|
|
||||||
"LabelAddToCollection": "הוסף לאוסף",
|
"LabelAddToCollection": "הוסף לאוסף",
|
||||||
"LabelAddToCollectionBatch": "הוסף {0} ספרים לאוסף",
|
"LabelAddToCollectionBatch": "הוסף {0} ספרים לאוסף",
|
||||||
"LabelAddToPlaylist": "הוסף לרשימת השמעה",
|
"LabelAddToPlaylist": "הוסף לרשימת השמעה",
|
||||||
"LabelAddToPlaylistBatch": "הוסף {0} פריטים לרשימת השמעה",
|
"LabelAddToPlaylistBatch": "הוסף {0} פריטים לרשימת השמעה",
|
||||||
|
"LabelAdded": "נוסף",
|
||||||
|
"LabelAddedAt": "נוסף בתאריך",
|
||||||
"LabelAdminUsersOnly": "רק מנהלים",
|
"LabelAdminUsersOnly": "רק מנהלים",
|
||||||
"LabelAll": "הכל",
|
"LabelAll": "הכל",
|
||||||
"LabelAllUsers": "כל המשתמשים",
|
"LabelAllUsers": "כל המשתמשים",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "שינוי סיסמה",
|
"LabelChangePassword": "שינוי סיסמה",
|
||||||
"LabelChannels": "ערוצים",
|
"LabelChannels": "ערוצים",
|
||||||
|
"LabelChapterTitle": "כותרת הפרק",
|
||||||
"LabelChapters": "פרקים",
|
"LabelChapters": "פרקים",
|
||||||
"LabelChaptersFound": "פרקים שנמצאו",
|
"LabelChaptersFound": "פרקים שנמצאו",
|
||||||
"LabelChapterTitle": "כותרת הפרק",
|
|
||||||
"LabelClickForMoreInfo": "לחץ למידע נוסף",
|
"LabelClickForMoreInfo": "לחץ למידע נוסף",
|
||||||
"LabelClosePlayer": "סגור נגן",
|
"LabelClosePlayer": "סגור נגן",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "עריכה",
|
"LabelEdit": "עריכה",
|
||||||
"LabelEmail": "דואר אלקטרוני",
|
"LabelEmail": "דואר אלקטרוני",
|
||||||
"LabelEmailSettingsFromAddress": "מאת",
|
"LabelEmailSettingsFromAddress": "מאת",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "מאובטח",
|
"LabelEmailSettingsSecure": "מאובטח",
|
||||||
"LabelEmailSettingsSecureHelp": "אם מופעל, החיבור ישתמש ב-TLS בעת ההתחברות לשרת. אם לא, אז TLS יהיה בשימוש אם השרת תומך בהרחבת STARTTLS. ברוב המקרים מומלץ להפעיל את הגדרה זו אם אתה מתחבר לפורט 465. לפורט 587 או 25, השאר כבוי. (from nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "אם מופעל, החיבור ישתמש ב-TLS בעת ההתחברות לשרת. אם לא, אז TLS יהיה בשימוש אם השרת תומך בהרחבת STARTTLS. ברוב המקרים מומלץ להפעיל את הגדרה זו אם אתה מתחבר לפורט 465. לפורט 587 או 25, השאר כבוי. (from nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "כתובת לבדיקה",
|
"LabelEmailSettingsTestAddress": "כתובת לבדיקה",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "תיקייה",
|
"LabelFolder": "תיקייה",
|
||||||
"LabelFolders": "תיקיות",
|
"LabelFolders": "תיקיות",
|
||||||
"LabelFontBold": "מודגש",
|
"LabelFontBold": "מודגש",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "משפחת הפונטים",
|
"LabelFontFamily": "משפחת הפונטים",
|
||||||
"LabelFontItalic": "נטוי",
|
"LabelFontItalic": "נטוי",
|
||||||
"LabelFontScale": "קנה מידה של הפונט",
|
"LabelFontScale": "קנה מידה של הפונט",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "שעה",
|
"LabelHour": "שעה",
|
||||||
"LabelIcon": "סמל",
|
"LabelIcon": "סמל",
|
||||||
"LabelImageURLFromTheWeb": "כתובת התמונה מהרשת",
|
"LabelImageURLFromTheWeb": "כתובת התמונה מהרשת",
|
||||||
|
"LabelInProgress": "בתהליך",
|
||||||
"LabelIncludeInTracklist": "כלול ברשימת השמעה",
|
"LabelIncludeInTracklist": "כלול ברשימת השמעה",
|
||||||
"LabelIncomplete": "לא הושלם",
|
"LabelIncomplete": "לא הושלם",
|
||||||
"LabelInProgress": "בתהליך",
|
|
||||||
"LabelInterval": "מרווח",
|
"LabelInterval": "מרווח",
|
||||||
"LabelIntervalCustomDailyWeekly": "מותאם אישית יומי/שבועי",
|
"LabelIntervalCustomDailyWeekly": "מותאם אישית יומי/שבועי",
|
||||||
"LabelIntervalEvery12Hours": "כל 12 שעות",
|
"LabelIntervalEvery12Hours": "כל 12 שעות",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "פריט",
|
"LabelItem": "פריט",
|
||||||
"LabelLanguage": "שפה",
|
"LabelLanguage": "שפה",
|
||||||
"LabelLanguageDefaultServer": "שפת ברירת המחדל של השרת",
|
"LabelLanguageDefaultServer": "שפת ברירת המחדל של השרת",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "הספר האחרון שנוסף",
|
"LabelLastBookAdded": "הספר האחרון שנוסף",
|
||||||
"LabelLastBookUpdated": "הספר האחרון שעודכן",
|
"LabelLastBookUpdated": "הספר האחרון שעודכן",
|
||||||
"LabelLastSeen": "נראה לאחרונה",
|
"LabelLastSeen": "נראה לאחרונה",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "פחות",
|
"LabelLess": "פחות",
|
||||||
"LabelLibrariesAccessibleToUser": "ספריות נגישות למשתמש",
|
"LabelLibrariesAccessibleToUser": "ספריות נגישות למשתמש",
|
||||||
"LabelLibrary": "ספרייה",
|
"LabelLibrary": "ספרייה",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "פריט ספרייה",
|
"LabelLibraryItem": "פריט ספרייה",
|
||||||
"LabelLibraryName": "שם הספרייה",
|
"LabelLibraryName": "שם הספרייה",
|
||||||
"LabelLimit": "מגבלה",
|
"LabelLimit": "מגבלה",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "משמש לחיבור משתמשים קיימים. לאחר החיבור, המשתמשים יותאמו לפי זיהוי ייחודי מספק ה-SSO שלך",
|
"LabelMatchExistingUsersByDescription": "משמש לחיבור משתמשים קיימים. לאחר החיבור, המשתמשים יותאמו לפי זיהוי ייחודי מספק ה-SSO שלך",
|
||||||
"LabelMediaPlayer": "נגן מדיה",
|
"LabelMediaPlayer": "נגן מדיה",
|
||||||
"LabelMediaType": "סוג מדיה",
|
"LabelMediaType": "סוג מדיה",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "מקורות המטא-נתונים עם עדיפות גבוהה יחליפו מקורות עם עדיפות נמוכה יותר",
|
|
||||||
"LabelMetadataProvider": "ספק מטא-נתונים",
|
|
||||||
"LabelMetaTag": "תג מטא",
|
"LabelMetaTag": "תג מטא",
|
||||||
"LabelMetaTags": "תגי מטא",
|
"LabelMetaTags": "תגי מטא",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "מקורות המטא-נתונים עם עדיפות גבוהה יחליפו מקורות עם עדיפות נמוכה יותר",
|
||||||
|
"LabelMetadataProvider": "ספק מטא-נתונים",
|
||||||
"LabelMinute": "דקה",
|
"LabelMinute": "דקה",
|
||||||
"LabelMissing": "חסר",
|
"LabelMissing": "חסר",
|
||||||
"LabelMissingEbook": "אין ספר אלקטרוני",
|
"LabelMissingEbook": "אין ספר אלקטרוני",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "מספר",
|
"LabelNarrator": "מספר",
|
||||||
"LabelNarrators": "מספרים",
|
"LabelNarrators": "מספרים",
|
||||||
"LabelNew": "חדש",
|
"LabelNew": "חדש",
|
||||||
|
"LabelNewPassword": "סיסמה חדשה",
|
||||||
"LabelNewestAuthors": "הסופרים החדשים ביותר",
|
"LabelNewestAuthors": "הסופרים החדשים ביותר",
|
||||||
"LabelNewestEpisodes": "הפרקים החדשים ביותר",
|
"LabelNewestEpisodes": "הפרקים החדשים ביותר",
|
||||||
"LabelNewPassword": "סיסמה חדשה",
|
|
||||||
"LabelNextBackupDate": "תאריך הגיבוי הבא",
|
"LabelNextBackupDate": "תאריך הגיבוי הבא",
|
||||||
"LabelNextScheduledRun": "הרצה מתוזמנת הבאה",
|
"LabelNextScheduledRun": "הרצה מתוזמנת הבאה",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "לא נבחרו פרקים",
|
"LabelNoEpisodesSelected": "לא נבחרו פרקים",
|
||||||
"LabelNotes": "הערות",
|
|
||||||
"LabelNotFinished": "לא הושלם",
|
"LabelNotFinished": "לא הושלם",
|
||||||
|
"LabelNotStarted": "לא התחיל",
|
||||||
|
"LabelNotes": "הערות",
|
||||||
"LabelNotificationAppriseURL": "כתובות Apprise",
|
"LabelNotificationAppriseURL": "כתובות Apprise",
|
||||||
"LabelNotificationAvailableVariables": "משתנים זמינים",
|
"LabelNotificationAvailableVariables": "משתנים זמינים",
|
||||||
"LabelNotificationBodyTemplate": "תבנית גוף",
|
"LabelNotificationBodyTemplate": "תבנית גוף",
|
||||||
"LabelNotificationEvent": "אירוע התראה",
|
"LabelNotificationEvent": "אירוע התראה",
|
||||||
|
"LabelNotificationTitleTemplate": "תבנית כותרת",
|
||||||
"LabelNotificationsMaxFailedAttempts": "מספר הניסיונות הנכשלים המרבי",
|
"LabelNotificationsMaxFailedAttempts": "מספר הניסיונות הנכשלים המרבי",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "ההתראות מושבתות לאחר שהן נכשלות לשלוח מספר פעמים זה",
|
"LabelNotificationsMaxFailedAttemptsHelp": "ההתראות מושבתות לאחר שהן נכשלות לשלוח מספר פעמים זה",
|
||||||
"LabelNotificationsMaxQueueSize": "גודל התור המרבי לאירועי התראה",
|
"LabelNotificationsMaxQueueSize": "גודל התור המרבי לאירועי התראה",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "האירועים מוגבלים לשליחה אחת לשנייה. האירועים יתעלמו אם התור מלא. הגדרה זו נועדה למנוע ספאם התראות.",
|
"LabelNotificationsMaxQueueSizeHelp": "האירועים מוגבלים לשליחה אחת לשנייה. האירועים יתעלמו אם התור מלא. הגדרה זו נועדה למנוע ספאם התראות.",
|
||||||
"LabelNotificationTitleTemplate": "תבנית כותרת",
|
|
||||||
"LabelNotStarted": "לא התחיל",
|
|
||||||
"LabelNumberOfBooks": "מספר הספרים",
|
"LabelNumberOfBooks": "מספר הספרים",
|
||||||
"LabelNumberOfEpisodes": "מספר הפרקים",
|
"LabelNumberOfEpisodes": "מספר הפרקים",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "מותר להעלות",
|
"LabelPermissionsUpload": "מותר להעלות",
|
||||||
"LabelPersonalYearReview": "השנה שלך בסקירה ({0})",
|
"LabelPersonalYearReview": "השנה שלך בסקירה ({0})",
|
||||||
"LabelPhotoPathURL": "נתיב/URL לתמונה",
|
"LabelPhotoPathURL": "נתיב/URL לתמונה",
|
||||||
"LabelPlaylists": "רשימות השמעה",
|
|
||||||
"LabelPlayMethod": "שיטת הפעלה",
|
"LabelPlayMethod": "שיטת הפעלה",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "רשימות השמעה",
|
||||||
"LabelPodcast": "פודקאסט",
|
"LabelPodcast": "פודקאסט",
|
||||||
"LabelPodcasts": "פודקאסטים",
|
|
||||||
"LabelPodcastSearchRegion": "אזור חיפוש פודקאסט",
|
"LabelPodcastSearchRegion": "אזור חיפוש פודקאסט",
|
||||||
"LabelPodcastType": "סוג פודקאסט",
|
"LabelPodcastType": "סוג פודקאסט",
|
||||||
|
"LabelPodcasts": "פודקאסטים",
|
||||||
"LabelPort": "פורט",
|
"LabelPort": "פורט",
|
||||||
"LabelPrefixesToIgnore": "קידומות להתעלמות (מתעלם מאותיות גדולות/קטנות)",
|
"LabelPrefixesToIgnore": "קידומות להתעלמות (מתעלם מאותיות גדולות/קטנות)",
|
||||||
"LabelPreventIndexing": "מנע רישום של הערוץ שלך על ידי ספריות אייטונס וגוגל פודקאסט",
|
"LabelPreventIndexing": "מנע רישום של הערוץ שלך על ידי ספריות אייטונס וגוגל פודקאסט",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "התקדמות",
|
"LabelProgress": "התקדמות",
|
||||||
"LabelProvider": "ספק",
|
"LabelProvider": "ספק",
|
||||||
"LabelPubDate": "תאריך פרסום",
|
"LabelPubDate": "תאריך פרסום",
|
||||||
"LabelPublisher": "מוציא לאור",
|
|
||||||
"LabelPublishYear": "שנת הפרסום",
|
"LabelPublishYear": "שנת הפרסום",
|
||||||
"LabelRead": "קריאה",
|
"LabelPublisher": "מוציא לאור",
|
||||||
"LabelReadAgain": "קרא שוב",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "קרא/י ספר אלקטרוני ללא שמירת התקדמות",
|
|
||||||
"LabelRecentlyAdded": "נוסף לאחרונה",
|
|
||||||
"LabelRecentSeries": "סדרות אחרונות",
|
|
||||||
"LabelRecommended": "מומלץ",
|
|
||||||
"LabelRedo": "עשה שוב",
|
|
||||||
"LabelRegion": "אזור",
|
|
||||||
"LabelReleaseDate": "תאריך הוצאה לאור",
|
|
||||||
"LabelRemoveCover": "הסר כריכה",
|
|
||||||
"LabelRowsPerPage": "שורות לעמוד",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "אימייל בעלים מותאם אישית",
|
"LabelRSSFeedCustomOwnerEmail": "אימייל בעלים מותאם אישית",
|
||||||
"LabelRSSFeedCustomOwnerName": "שם בעלים מותאם אישית",
|
"LabelRSSFeedCustomOwnerName": "שם בעלים מותאם אישית",
|
||||||
"LabelRSSFeedOpen": "פתח ערוץ RSS",
|
"LabelRSSFeedOpen": "פתח ערוץ RSS",
|
||||||
"LabelRSSFeedPreventIndexing": "מנע רישום",
|
"LabelRSSFeedPreventIndexing": "מנע רישום",
|
||||||
"LabelRSSFeedSlug": "Slug של ערוץ ה-RSS",
|
"LabelRSSFeedSlug": "Slug של ערוץ ה-RSS",
|
||||||
"LabelRSSFeedURL": "כתובת ערוץ ה-RSS",
|
"LabelRSSFeedURL": "כתובת ערוץ ה-RSS",
|
||||||
|
"LabelRead": "קריאה",
|
||||||
|
"LabelReadAgain": "קרא שוב",
|
||||||
|
"LabelReadEbookWithoutProgress": "קרא/י ספר אלקטרוני ללא שמירת התקדמות",
|
||||||
|
"LabelRecentSeries": "סדרות אחרונות",
|
||||||
|
"LabelRecentlyAdded": "נוסף לאחרונה",
|
||||||
|
"LabelRecommended": "מומלץ",
|
||||||
|
"LabelRedo": "עשה שוב",
|
||||||
|
"LabelRegion": "אזור",
|
||||||
|
"LabelReleaseDate": "תאריך הוצאה לאור",
|
||||||
|
"LabelRemoveCover": "הסר כריכה",
|
||||||
|
"LabelRowsPerPage": "שורות לעמוד",
|
||||||
"LabelSearchTerm": "מונח חיפוש",
|
"LabelSearchTerm": "מונח חיפוש",
|
||||||
"LabelSearchTitle": "כותרת חיפוש",
|
"LabelSearchTitle": "כותרת חיפוש",
|
||||||
"LabelSearchTitleOrASIN": "כותרת חיפוש או ASIN",
|
"LabelSearchTitleOrASIN": "כותרת חיפוש או ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "טיימר שינה",
|
"LabelSleepTimer": "טיימר שינה",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "התחלה",
|
"LabelStart": "התחלה",
|
||||||
|
"LabelStartTime": "זמן התחלה",
|
||||||
"LabelStarted": "התחיל",
|
"LabelStarted": "התחיל",
|
||||||
"LabelStartedAt": "התחיל ב",
|
"LabelStartedAt": "התחיל ב",
|
||||||
"LabelStartTime": "זמן התחלה",
|
|
||||||
"LabelStatsAudioTracks": "רצועות שמע",
|
"LabelStatsAudioTracks": "רצועות שמע",
|
||||||
"LabelStatsAuthors": "מחברים",
|
"LabelStatsAuthors": "מחברים",
|
||||||
"LabelStatsBestDay": "היום הטוב ביותר",
|
"LabelStatsBestDay": "היום הטוב ביותר",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "לא ידוע",
|
"LabelUnknown": "לא ידוע",
|
||||||
"LabelUpdateCover": "עדכן כריכה",
|
"LabelUpdateCover": "עדכן כריכה",
|
||||||
"LabelUpdateCoverHelp": "אפשר החלפה של כריכות קיימות עבור הספרים הנבחרים כאשר נמצאה התאמה",
|
"LabelUpdateCoverHelp": "אפשר החלפה של כריכות קיימות עבור הספרים הנבחרים כאשר נמצאה התאמה",
|
||||||
"LabelUpdatedAt": "עודכן ב-",
|
|
||||||
"LabelUpdateDetails": "עדכון פרטים",
|
"LabelUpdateDetails": "עדכון פרטים",
|
||||||
"LabelUpdateDetailsHelp": "אפשר החלפה של פרטים קיימים עבור הספרים הנבחרים כאשר נמצאה התאמה",
|
"LabelUpdateDetailsHelp": "אפשר החלפה של פרטים קיימים עבור הספרים הנבחרים כאשר נמצאה התאמה",
|
||||||
|
"LabelUpdatedAt": "עודכן ב-",
|
||||||
"LabelUploaderDragAndDrop": "גרור ושחרר קבצים או תיקיות",
|
"LabelUploaderDragAndDrop": "גרור ושחרר קבצים או תיקיות",
|
||||||
"LabelUploaderDropFiles": "שחרר קבצים",
|
"LabelUploaderDropFiles": "שחרר קבצים",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "משיכת כותרת, סופר וסדרה באופן אוטומטי",
|
"LabelUploaderItemFetchMetadataHelp": "משיכת כותרת, סופר וסדרה באופן אוטומטי",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "גיבויים כוללים משתמשים, התקדמות משתמש, פרטי פריטי ספרייה, הגדרות שרת ותמונות השמורות ב-<code>/metadata/items</code> & <code>/metadata/authors</code>. גיבויים <strong>לא</strong> כוללים קבצים שמורים בתיקיות הספרייה שלך.",
|
"MessageBackupsDescription": "גיבויים כוללים משתמשים, התקדמות משתמש, פרטי פריטי ספרייה, הגדרות שרת ותמונות השמורות ב-<code>/metadata/items</code> & <code>/metadata/authors</code>. גיבויים <strong>לא</strong> כוללים קבצים שמורים בתיקיות הספרייה שלך.",
|
||||||
"MessageBatchQuickMatchDescription": "התאמה מהירה תנסה להוסיף כריכות ומטה-נתונים חסרים עבור הפריטים הנבחרים. הפעל את האפשרויות למטה כדי לאפשר להתאמה מהירה להחליף כריכות קיימות ו/או מטה-נתונים.",
|
"MessageBatchQuickMatchDescription": "התאמה מהירה תנסה להוסיף כריכות ומטה-נתונים חסרים עבור הפריטים הנבחרים. הפעל את האפשרויות למטה כדי לאפשר להתאמה מהירה להחליף כריכות קיימות ו/או מטה-נתונים.",
|
||||||
"MessageBookshelfNoCollections": "עדיין לא יצרת אוספים",
|
"MessageBookshelfNoCollections": "עדיין לא יצרת אוספים",
|
||||||
"MessageBookshelfNoResultsForFilter": "אין תוצאות עבור סינון \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "אין ערוצי RSS פתוחים",
|
"MessageBookshelfNoRSSFeeds": "אין ערוצי RSS פתוחים",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "אין תוצאות עבור סינון \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "אין לך סדרות",
|
"MessageBookshelfNoSeries": "אין לך סדרות",
|
||||||
"MessageChapterEndIsAfter": "זמן סיום הפרק אחרי סיום הספר הקולי שלך",
|
"MessageChapterEndIsAfter": "זמן סיום הפרק אחרי סיום הספר הקולי שלך",
|
||||||
"MessageChapterErrorFirstNotZero": "הפרק הראשון חייב להתחיל ב-0",
|
"MessageChapterErrorFirstNotZero": "הפרק הראשון חייב להתחיל ב-0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כהסתיימו?",
|
"MessageConfirmMarkSeriesFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כהסתיימו?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כלא הסתיימו?",
|
"MessageConfirmMarkSeriesNotFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כלא הסתיימו?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "אזהרה! הטמעה מהירה לא תגבה גיבוי של קבצי האודיו שלך. וודא שיש לך גיבוי של קבצי האודיו שלך. <br><br>האם ברצונך להמשיך?",
|
"MessageConfirmQuickEmbed": "אזהרה! הטמעה מהירה לא תגבה גיבוי של קבצי האודיו שלך. וודא שיש לך גיבוי של קבצי האודיו שלך. <br><br>האם ברצונך להמשיך?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "האם אתה בטוח שברצונך לסרוק מחדש {0} פריטים?",
|
||||||
"MessageConfirmRemoveAllChapters": "האם אתה בטוח שברצונך להסיר את כל הפרקים?",
|
"MessageConfirmRemoveAllChapters": "האם אתה בטוח שברצונך להסיר את כל הפרקים?",
|
||||||
"MessageConfirmRemoveAuthor": "האם אתה בטוח שברצונך להסיר את המחבר \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "האם אתה בטוח שברצונך להסיר את המחבר \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "האם אתה בטוח שברצונך להסיר אוסף \"{0}\"?",
|
"MessageConfirmRemoveCollection": "האם אתה בטוח שברצונך להסיר אוסף \"{0}\"?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "האם אתה בטוח שברצונך לשנות את שם התג \"{0}\" ל \"{1}\" עבור כל הפריטים?",
|
"MessageConfirmRenameTag": "האם אתה בטוח שברצונך לשנות את שם התג \"{0}\" ל \"{1}\" עבור כל הפריטים?",
|
||||||
"MessageConfirmRenameTagMergeNote": "הערה: התג זה כבר קיים ולכן הם יתמזגו.",
|
"MessageConfirmRenameTagMergeNote": "הערה: התג זה כבר קיים ולכן הם יתמזגו.",
|
||||||
"MessageConfirmRenameTagWarning": "אזהרה! יש תג דומה עם רישום שונה שכבר קיים \"{0}\".",
|
"MessageConfirmRenameTagWarning": "אזהרה! יש תג דומה עם רישום שונה שכבר קיים \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "האם אתה בטוח שברצונך לסרוק מחדש {0} פריטים?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "האם אתה בטוח שברצונך לשלוח {0} את הספר האלקטרוני \"{1}\" למכשיר \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "האם אתה בטוח שברצונך לשלוח {0} את הספר האלקטרוני \"{1}\" למכשיר \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "מוריד פרק",
|
"MessageDownloadingEpisode": "מוריד פרק",
|
||||||
"MessageDragFilesIntoTrackOrder": "גרור קבצים לסדר ההשמעה נכון",
|
"MessageDragFilesIntoTrackOrder": "גרור קבצים לסדר ההשמעה נכון",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "אין סדרות",
|
"MessageNoSeries": "אין סדרות",
|
||||||
"MessageNoTags": "אין תגיות",
|
"MessageNoTags": "אין תגיות",
|
||||||
"MessageNoTasksRunning": "אין משימות פעילות",
|
"MessageNoTasksRunning": "אין משימות פעילות",
|
||||||
"MessageNotYetImplemented": "עדיין לא מיושם",
|
|
||||||
"MessageNoUpdateNecessary": "לא נדרש עדכון",
|
"MessageNoUpdateNecessary": "לא נדרש עדכון",
|
||||||
"MessageNoUpdatesWereNecessary": "לא היה צורך בעדכונים",
|
"MessageNoUpdatesWereNecessary": "לא היה צורך בעדכונים",
|
||||||
"MessageNoUserPlaylists": "אין לך רשימות השמעה",
|
"MessageNoUserPlaylists": "אין לך רשימות השמעה",
|
||||||
|
"MessageNotYetImplemented": "עדיין לא מיושם",
|
||||||
"MessageOr": "או",
|
"MessageOr": "או",
|
||||||
"MessagePauseChapter": "השהה השמעת הפרק",
|
"MessagePauseChapter": "השהה השמעת הפרק",
|
||||||
"MessagePlayChapter": "הקשב לתחילת הפרק",
|
"MessagePlayChapter": "הקשב לתחילת הפרק",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "רשימת השמעה עודכנה בהצלחה",
|
"ToastPlaylistUpdateSuccess": "רשימת השמעה עודכנה בהצלחה",
|
||||||
"ToastPodcastCreateFailed": "יצירת הפודקאסט נכשלה",
|
"ToastPodcastCreateFailed": "יצירת הפודקאסט נכשלה",
|
||||||
"ToastPodcastCreateSuccess": "הפודקאסט נוצר בהצלחה",
|
"ToastPodcastCreateSuccess": "הפודקאסט נוצר בהצלחה",
|
||||||
"ToastRemoveItemFromCollectionFailed": "הסרת הפריט מהאוסף נכשלה",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "הפריט הוסר מהאוסף בהצלחה",
|
|
||||||
"ToastRSSFeedCloseFailed": "סגירת ערוץ ה-RSS נכשלה",
|
"ToastRSSFeedCloseFailed": "סגירת ערוץ ה-RSS נכשלה",
|
||||||
"ToastRSSFeedCloseSuccess": "ערוץ ה-RSS נסגר בהצלחה",
|
"ToastRSSFeedCloseSuccess": "ערוץ ה-RSS נסגר בהצלחה",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "הסרת הפריט מהאוסף נכשלה",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "הפריט הוסר מהאוסף בהצלחה",
|
||||||
"ToastSendEbookToDeviceFailed": "שליחת הספר אל המכשיר נכשלה",
|
"ToastSendEbookToDeviceFailed": "שליחת הספר אל המכשיר נכשלה",
|
||||||
"ToastSendEbookToDeviceSuccess": "הספר נשלח אל המכשיר \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "הספר נשלח אל המכשיר \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "עדכון הסדרה נכשל",
|
"ToastSeriesUpdateFailed": "עדכון הסדרה נכשל",
|
||||||
|
|||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "लागू करें",
|
"ButtonApply": "लागू करें",
|
||||||
"ButtonApplyChapters": "अध्यायों में परिवर्तन लागू करें",
|
"ButtonApplyChapters": "अध्यायों में परिवर्तन लागू करें",
|
||||||
"ButtonAuthors": "लेखक",
|
"ButtonAuthors": "लेखक",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "फ़ोल्डर खोजें",
|
"ButtonBrowseForFolder": "फ़ोल्डर खोजें",
|
||||||
"ButtonCancel": "रद्द करें",
|
"ButtonCancel": "रद्द करें",
|
||||||
"ButtonCancelEncode": "एनकोड रद्द करें",
|
"ButtonCancelEncode": "एनकोड रद्द करें",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Previous Chapter",
|
||||||
"ButtonPurgeAllCache": "सभी Cache मिटाएं",
|
"ButtonPurgeAllCache": "सभी Cache मिटाएं",
|
||||||
"ButtonPurgeItemsCache": "आइटम Cache मिटाएं",
|
"ButtonPurgeItemsCache": "आइटम Cache मिटाएं",
|
||||||
"ButtonPurgeMediaProgress": "अभी तक सुना हुआ सब हटा दे",
|
|
||||||
"ButtonQueueAddItem": "क़तार में जोड़ें",
|
"ButtonQueueAddItem": "क़तार में जोड़ें",
|
||||||
"ButtonQueueRemoveItem": "कतार से हटाएं",
|
"ButtonQueueRemoveItem": "कतार से हटाएं",
|
||||||
"ButtonQuickMatch": "जल्दी से समानता की तलाश करें",
|
"ButtonQuickMatch": "जल्दी से समानता की तलाश करें",
|
||||||
|
"ButtonReScan": "पुन: स्कैन करें",
|
||||||
"ButtonRead": "पढ़ लिया",
|
"ButtonRead": "पढ़ लिया",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "सुनना जारी रखें से हटाएं",
|
"ButtonRemoveFromContinueListening": "सुनना जारी रखें से हटाएं",
|
||||||
"ButtonRemoveFromContinueReading": "Remove from Continue Reading",
|
"ButtonRemoveFromContinueReading": "Remove from Continue Reading",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "इस सीरीज को कंटिन्यू सीरीज से हटा दें",
|
"ButtonRemoveSeriesFromContinueSeries": "इस सीरीज को कंटिन्यू सीरीज से हटा दें",
|
||||||
"ButtonReScan": "पुन: स्कैन करें",
|
|
||||||
"ButtonReset": "रीसेट करें",
|
"ButtonReset": "रीसेट करें",
|
||||||
"ButtonResetToDefault": "Reset to default",
|
"ButtonResetToDefault": "Reset to default",
|
||||||
"ButtonRestore": "पुनर्स्थापित करें",
|
"ButtonRestore": "पुनर्स्थापित करें",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "खाता",
|
"HeaderAccount": "खाता",
|
||||||
"HeaderAdvanced": "विकसित",
|
"HeaderAdvanced": "विकसित",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise अधिसूचना सेटिंग्स",
|
"HeaderAppriseNotificationSettings": "Apprise अधिसूचना सेटिंग्स",
|
||||||
"HeaderAudiobookTools": "Audiobook File Management Tools",
|
|
||||||
"HeaderAudioTracks": "Audio Tracks",
|
"HeaderAudioTracks": "Audio Tracks",
|
||||||
|
"HeaderAudiobookTools": "Audiobook File Management Tools",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Backups",
|
"HeaderBackups": "Backups",
|
||||||
"HeaderChangePassword": "Change Password",
|
"HeaderChangePassword": "Change Password",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Collection Items",
|
"HeaderCollectionItems": "Collection Items",
|
||||||
"HeaderCover": "Cover",
|
"HeaderCover": "Cover",
|
||||||
"HeaderCurrentDownloads": "Current Downloads",
|
"HeaderCurrentDownloads": "Current Downloads",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||||
"HeaderDetails": "Details",
|
"HeaderDetails": "Details",
|
||||||
"HeaderDownloadQueue": "Download Queue",
|
"HeaderDownloadQueue": "Download Queue",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Playlist Items",
|
"HeaderPlaylistItems": "Playlist Items",
|
||||||
"HeaderPodcastsToAdd": "Podcasts to Add",
|
"HeaderPodcastsToAdd": "Podcasts to Add",
|
||||||
"HeaderPreviewCover": "Preview Cover",
|
"HeaderPreviewCover": "Preview Cover",
|
||||||
"HeaderRemoveEpisode": "Remove Episode",
|
|
||||||
"HeaderRemoveEpisodes": "Remove {0} Episodes",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS Details",
|
"HeaderRSSFeedGeneral": "RSS Details",
|
||||||
"HeaderRSSFeedIsOpen": "RSS Feed is Open",
|
"HeaderRSSFeedIsOpen": "RSS Feed is Open",
|
||||||
"HeaderRSSFeeds": "RSS Feeds",
|
"HeaderRSSFeeds": "RSS Feeds",
|
||||||
|
"HeaderRemoveEpisode": "Remove Episode",
|
||||||
|
"HeaderRemoveEpisodes": "Remove {0} Episodes",
|
||||||
"HeaderSavedMediaProgress": "Saved Media Progress",
|
"HeaderSavedMediaProgress": "Saved Media Progress",
|
||||||
"HeaderSchedule": "Schedule",
|
"HeaderSchedule": "Schedule",
|
||||||
"HeaderScheduleLibraryScans": "Schedule Automatic Library Scans",
|
"HeaderScheduleLibraryScans": "Schedule Automatic Library Scans",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Guest",
|
"LabelAccountTypeGuest": "Guest",
|
||||||
"LabelAccountTypeUser": "User",
|
"LabelAccountTypeUser": "User",
|
||||||
"LabelActivity": "Activity",
|
"LabelActivity": "Activity",
|
||||||
"LabelAdded": "Added",
|
|
||||||
"LabelAddedAt": "Added At",
|
|
||||||
"LabelAddToCollection": "Add to Collection",
|
"LabelAddToCollection": "Add to Collection",
|
||||||
"LabelAddToCollectionBatch": "Add {0} Books to Collection",
|
"LabelAddToCollectionBatch": "Add {0} Books to Collection",
|
||||||
"LabelAddToPlaylist": "Add to Playlist",
|
"LabelAddToPlaylist": "Add to Playlist",
|
||||||
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
||||||
|
"LabelAdded": "Added",
|
||||||
|
"LabelAddedAt": "Added At",
|
||||||
"LabelAdminUsersOnly": "Admin users only",
|
"LabelAdminUsersOnly": "Admin users only",
|
||||||
"LabelAll": "All",
|
"LabelAll": "All",
|
||||||
"LabelAllUsers": "All Users",
|
"LabelAllUsers": "All Users",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Change Password",
|
"LabelChangePassword": "Change Password",
|
||||||
"LabelChannels": "Channels",
|
"LabelChannels": "Channels",
|
||||||
|
"LabelChapterTitle": "Chapter Title",
|
||||||
"LabelChapters": "Chapters",
|
"LabelChapters": "Chapters",
|
||||||
"LabelChaptersFound": "chapters found",
|
"LabelChaptersFound": "chapters found",
|
||||||
"LabelChapterTitle": "Chapter Title",
|
|
||||||
"LabelClickForMoreInfo": "Click for more info",
|
"LabelClickForMoreInfo": "Click for more info",
|
||||||
"LabelClosePlayer": "Close player",
|
"LabelClosePlayer": "Close player",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Edit",
|
"LabelEdit": "Edit",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "From Address",
|
"LabelEmailSettingsFromAddress": "From Address",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Secure",
|
"LabelEmailSettingsSecure": "Secure",
|
||||||
"LabelEmailSettingsSecureHelp": "If true the connection will use TLS when connecting to server. If false then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false. (from nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "If true the connection will use TLS when connecting to server. If false then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false. (from nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test Address",
|
"LabelEmailSettingsTestAddress": "Test Address",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Folder",
|
"LabelFolder": "Folder",
|
||||||
"LabelFolders": "Folders",
|
"LabelFolders": "Folders",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "फुहारा परिवार",
|
"LabelFontFamily": "फुहारा परिवार",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Font scale",
|
"LabelFontScale": "Font scale",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Hour",
|
"LabelHour": "Hour",
|
||||||
"LabelIcon": "Icon",
|
"LabelIcon": "Icon",
|
||||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
"LabelImageURLFromTheWeb": "Image URL from the web",
|
||||||
|
"LabelInProgress": "In Progress",
|
||||||
"LabelIncludeInTracklist": "Include in Tracklist",
|
"LabelIncludeInTracklist": "Include in Tracklist",
|
||||||
"LabelIncomplete": "Incomplete",
|
"LabelIncomplete": "Incomplete",
|
||||||
"LabelInProgress": "In Progress",
|
|
||||||
"LabelInterval": "Interval",
|
"LabelInterval": "Interval",
|
||||||
"LabelIntervalCustomDailyWeekly": "Custom daily/weekly",
|
"LabelIntervalCustomDailyWeekly": "Custom daily/weekly",
|
||||||
"LabelIntervalEvery12Hours": "Every 12 hours",
|
"LabelIntervalEvery12Hours": "Every 12 hours",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Item",
|
"LabelItem": "Item",
|
||||||
"LabelLanguage": "Language",
|
"LabelLanguage": "Language",
|
||||||
"LabelLanguageDefaultServer": "Default Server Language",
|
"LabelLanguageDefaultServer": "Default Server Language",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Last Book Added",
|
"LabelLastBookAdded": "Last Book Added",
|
||||||
"LabelLastBookUpdated": "Last Book Updated",
|
"LabelLastBookUpdated": "Last Book Updated",
|
||||||
"LabelLastSeen": "Last Seen",
|
"LabelLastSeen": "Last Seen",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Less",
|
"LabelLess": "Less",
|
||||||
"LabelLibrariesAccessibleToUser": "Libraries Accessible to User",
|
"LabelLibrariesAccessibleToUser": "Libraries Accessible to User",
|
||||||
"LabelLibrary": "Library",
|
"LabelLibrary": "Library",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Library Item",
|
"LabelLibraryItem": "Library Item",
|
||||||
"LabelLibraryName": "Library Name",
|
"LabelLibraryName": "Library Name",
|
||||||
"LabelLimit": "Limit",
|
"LabelLimit": "Limit",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||||
"LabelMediaPlayer": "Media Player",
|
"LabelMediaPlayer": "Media Player",
|
||||||
"LabelMediaType": "Media Type",
|
"LabelMediaType": "Media Type",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Metadata Provider",
|
|
||||||
"LabelMetaTag": "Meta Tag",
|
"LabelMetaTag": "Meta Tag",
|
||||||
"LabelMetaTags": "Meta Tags",
|
"LabelMetaTags": "Meta Tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||||
|
"LabelMetadataProvider": "Metadata Provider",
|
||||||
"LabelMinute": "Minute",
|
"LabelMinute": "Minute",
|
||||||
"LabelMissing": "Missing",
|
"LabelMissing": "Missing",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Narrator",
|
"LabelNarrator": "Narrator",
|
||||||
"LabelNarrators": "Narrators",
|
"LabelNarrators": "Narrators",
|
||||||
"LabelNew": "New",
|
"LabelNew": "New",
|
||||||
|
"LabelNewPassword": "New Password",
|
||||||
"LabelNewestAuthors": "Newest Authors",
|
"LabelNewestAuthors": "Newest Authors",
|
||||||
"LabelNewestEpisodes": "Newest Episodes",
|
"LabelNewestEpisodes": "Newest Episodes",
|
||||||
"LabelNewPassword": "New Password",
|
|
||||||
"LabelNextBackupDate": "Next backup date",
|
"LabelNextBackupDate": "Next backup date",
|
||||||
"LabelNextScheduledRun": "Next scheduled run",
|
"LabelNextScheduledRun": "Next scheduled run",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "No episodes selected",
|
"LabelNoEpisodesSelected": "No episodes selected",
|
||||||
"LabelNotes": "Notes",
|
|
||||||
"LabelNotFinished": "Not Finished",
|
"LabelNotFinished": "Not Finished",
|
||||||
|
"LabelNotStarted": "Not Started",
|
||||||
|
"LabelNotes": "Notes",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
||||||
"LabelNotificationAvailableVariables": "Available variables",
|
"LabelNotificationAvailableVariables": "Available variables",
|
||||||
"LabelNotificationBodyTemplate": "Body Template",
|
"LabelNotificationBodyTemplate": "Body Template",
|
||||||
"LabelNotificationEvent": "Notification Event",
|
"LabelNotificationEvent": "Notification Event",
|
||||||
|
"LabelNotificationTitleTemplate": "Title Template",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Max failed attempts",
|
"LabelNotificationsMaxFailedAttempts": "Max failed attempts",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Notifications are disabled once they fail to send this many times",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Notifications are disabled once they fail to send this many times",
|
||||||
"LabelNotificationsMaxQueueSize": "Max queue size for notification events",
|
"LabelNotificationsMaxQueueSize": "Max queue size for notification events",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Events are limited to firing 1 per second. Events will be ignored if the queue is at max size. This prevents notification spamming.",
|
"LabelNotificationsMaxQueueSizeHelp": "Events are limited to firing 1 per second. Events will be ignored if the queue is at max size. This prevents notification spamming.",
|
||||||
"LabelNotificationTitleTemplate": "Title Template",
|
|
||||||
"LabelNotStarted": "Not Started",
|
|
||||||
"LabelNumberOfBooks": "Number of Books",
|
"LabelNumberOfBooks": "Number of Books",
|
||||||
"LabelNumberOfEpisodes": "# of Episodes",
|
"LabelNumberOfEpisodes": "# of Episodes",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Can Upload",
|
"LabelPermissionsUpload": "Can Upload",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Photo Path/URL",
|
"LabelPhotoPathURL": "Photo Path/URL",
|
||||||
"LabelPlaylists": "Playlists",
|
|
||||||
"LabelPlayMethod": "Play Method",
|
"LabelPlayMethod": "Play Method",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Playlists",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "पॉडकास्ट खोज क्षेत्र",
|
"LabelPodcastSearchRegion": "पॉडकास्ट खोज क्षेत्र",
|
||||||
"LabelPodcastType": "Podcast Type",
|
"LabelPodcastType": "Podcast Type",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Prefixes to Ignore (case insensitive)",
|
"LabelPrefixesToIgnore": "Prefixes to Ignore (case insensitive)",
|
||||||
"LabelPreventIndexing": "Prevent your feed from being indexed by iTunes and Google podcast directories",
|
"LabelPreventIndexing": "Prevent your feed from being indexed by iTunes and Google podcast directories",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Progress",
|
"LabelProgress": "Progress",
|
||||||
"LabelProvider": "Provider",
|
"LabelProvider": "Provider",
|
||||||
"LabelPubDate": "Pub Date",
|
"LabelPubDate": "Pub Date",
|
||||||
"LabelPublisher": "Publisher",
|
|
||||||
"LabelPublishYear": "Publish Year",
|
"LabelPublishYear": "Publish Year",
|
||||||
"LabelRead": "Read",
|
"LabelPublisher": "Publisher",
|
||||||
"LabelReadAgain": "Read Again",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Read ebook without keeping progress",
|
|
||||||
"LabelRecentlyAdded": "Recently Added",
|
|
||||||
"LabelRecentSeries": "Recent Series",
|
|
||||||
"LabelRecommended": "Recommended",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Region",
|
|
||||||
"LabelReleaseDate": "Release Date",
|
|
||||||
"LabelRemoveCover": "Remove cover",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
||||||
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
||||||
"LabelRSSFeedOpen": "RSS Feed Open",
|
"LabelRSSFeedOpen": "RSS Feed Open",
|
||||||
"LabelRSSFeedPreventIndexing": "Prevent Indexing",
|
"LabelRSSFeedPreventIndexing": "Prevent Indexing",
|
||||||
"LabelRSSFeedSlug": "RSS Feed Slug",
|
"LabelRSSFeedSlug": "RSS Feed Slug",
|
||||||
"LabelRSSFeedURL": "RSS Feed URL",
|
"LabelRSSFeedURL": "RSS Feed URL",
|
||||||
|
"LabelRead": "Read",
|
||||||
|
"LabelReadAgain": "Read Again",
|
||||||
|
"LabelReadEbookWithoutProgress": "Read ebook without keeping progress",
|
||||||
|
"LabelRecentSeries": "Recent Series",
|
||||||
|
"LabelRecentlyAdded": "Recently Added",
|
||||||
|
"LabelRecommended": "Recommended",
|
||||||
|
"LabelRedo": "Redo",
|
||||||
|
"LabelRegion": "Region",
|
||||||
|
"LabelReleaseDate": "Release Date",
|
||||||
|
"LabelRemoveCover": "Remove cover",
|
||||||
|
"LabelRowsPerPage": "Rows per page",
|
||||||
"LabelSearchTerm": "Search Term",
|
"LabelSearchTerm": "Search Term",
|
||||||
"LabelSearchTitle": "Search Title",
|
"LabelSearchTitle": "Search Title",
|
||||||
"LabelSearchTitleOrASIN": "Search Title or ASIN",
|
"LabelSearchTitleOrASIN": "Search Title or ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Sleep timer",
|
"LabelSleepTimer": "Sleep timer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Start",
|
"LabelStart": "Start",
|
||||||
|
"LabelStartTime": "Start Time",
|
||||||
"LabelStarted": "Started",
|
"LabelStarted": "Started",
|
||||||
"LabelStartedAt": "Started At",
|
"LabelStartedAt": "Started At",
|
||||||
"LabelStartTime": "Start Time",
|
|
||||||
"LabelStatsAudioTracks": "Audio Tracks",
|
"LabelStatsAudioTracks": "Audio Tracks",
|
||||||
"LabelStatsAuthors": "Authors",
|
"LabelStatsAuthors": "Authors",
|
||||||
"LabelStatsBestDay": "Best Day",
|
"LabelStatsBestDay": "Best Day",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Unknown",
|
"LabelUnknown": "Unknown",
|
||||||
"LabelUpdateCover": "Update Cover",
|
"LabelUpdateCover": "Update Cover",
|
||||||
"LabelUpdateCoverHelp": "Allow overwriting of existing covers for the selected books when a match is located",
|
"LabelUpdateCoverHelp": "Allow overwriting of existing covers for the selected books when a match is located",
|
||||||
"LabelUpdatedAt": "Updated At",
|
|
||||||
"LabelUpdateDetails": "Update Details",
|
"LabelUpdateDetails": "Update Details",
|
||||||
"LabelUpdateDetailsHelp": "Allow overwriting of existing details for the selected books when a match is located",
|
"LabelUpdateDetailsHelp": "Allow overwriting of existing details for the selected books when a match is located",
|
||||||
|
"LabelUpdatedAt": "Updated At",
|
||||||
"LabelUploaderDragAndDrop": "Drag & drop files or folders",
|
"LabelUploaderDragAndDrop": "Drag & drop files or folders",
|
||||||
"LabelUploaderDropFiles": "Drop files",
|
"LabelUploaderDropFiles": "Drop files",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>do not</strong> include any files stored in your library folders.",
|
"MessageBackupsDescription": "Backups include users, user progress, library item details, server settings, and images stored in <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>do not</strong> include any files stored in your library folders.",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match will attempt to add missing covers and metadata for the selected items. Enable the options below to allow Quick Match to overwrite existing covers and/or metadata.",
|
"MessageBatchQuickMatchDescription": "Quick Match will attempt to add missing covers and metadata for the selected items. Enable the options below to allow Quick Match to overwrite existing covers and/or metadata.",
|
||||||
"MessageBookshelfNoCollections": "You haven't made any collections yet",
|
"MessageBookshelfNoCollections": "You haven't made any collections yet",
|
||||||
"MessageBookshelfNoResultsForFilter": "No Results for filter \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "No RSS feeds are open",
|
"MessageBookshelfNoRSSFeeds": "No RSS feeds are open",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "No Results for filter \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "You have no series",
|
"MessageBookshelfNoSeries": "You have no series",
|
||||||
"MessageChapterEndIsAfter": "Chapter end is after the end of your audiobook",
|
"MessageChapterEndIsAfter": "Chapter end is after the end of your audiobook",
|
||||||
"MessageChapterErrorFirstNotZero": "First chapter must start at 0",
|
"MessageChapterErrorFirstNotZero": "First chapter must start at 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Are you sure you want to mark all books in this series as finished?",
|
"MessageConfirmMarkSeriesFinished": "Are you sure you want to mark all books in this series as finished?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Are you sure you want to mark all books in this series as not finished?",
|
"MessageConfirmMarkSeriesNotFinished": "Are you sure you want to mark all books in this series as not finished?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||||
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
||||||
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Are you sure you want to remove collection \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Are you sure you want to remove collection \"{0}\"?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
||||||
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Downloading episode",
|
"MessageDownloadingEpisode": "Downloading episode",
|
||||||
"MessageDragFilesIntoTrackOrder": "Drag files into correct track order",
|
"MessageDragFilesIntoTrackOrder": "Drag files into correct track order",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "No Series",
|
"MessageNoSeries": "No Series",
|
||||||
"MessageNoTags": "No Tags",
|
"MessageNoTags": "No Tags",
|
||||||
"MessageNoTasksRunning": "No Tasks Running",
|
"MessageNoTasksRunning": "No Tasks Running",
|
||||||
"MessageNotYetImplemented": "Not yet implemented",
|
|
||||||
"MessageNoUpdateNecessary": "No update necessary",
|
"MessageNoUpdateNecessary": "No update necessary",
|
||||||
"MessageNoUpdatesWereNecessary": "No updates were necessary",
|
"MessageNoUpdatesWereNecessary": "No updates were necessary",
|
||||||
"MessageNoUserPlaylists": "You have no playlists",
|
"MessageNoUserPlaylists": "You have no playlists",
|
||||||
|
"MessageNotYetImplemented": "Not yet implemented",
|
||||||
"MessageOr": "or",
|
"MessageOr": "or",
|
||||||
"MessagePauseChapter": "Pause chapter playback",
|
"MessagePauseChapter": "Pause chapter playback",
|
||||||
"MessagePlayChapter": "Listen to beginning of chapter",
|
"MessagePlayChapter": "Listen to beginning of chapter",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
||||||
"ToastPodcastCreateFailed": "Failed to create podcast",
|
"ToastPodcastCreateFailed": "Failed to create podcast",
|
||||||
"ToastPodcastCreateSuccess": "Podcast created successfully",
|
"ToastPodcastCreateSuccess": "Podcast created successfully",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Failed to remove item from collection",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Item removed from collection",
|
|
||||||
"ToastRSSFeedCloseFailed": "Failed to close RSS feed",
|
"ToastRSSFeedCloseFailed": "Failed to close RSS feed",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS feed closed",
|
"ToastRSSFeedCloseSuccess": "RSS feed closed",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Failed to remove item from collection",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Item removed from collection",
|
||||||
"ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device",
|
"ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Series update failed",
|
"ToastSeriesUpdateFailed": "Series update failed",
|
||||||
|
|||||||
+74
-63
@@ -1,14 +1,15 @@
|
|||||||
{
|
{
|
||||||
"ButtonAdd": "Dodaj",
|
"ButtonAdd": "Dodaj",
|
||||||
"ButtonAddChapters": "Dodaj poglavlja",
|
"ButtonAddChapters": "Dodaj poglavlja",
|
||||||
"ButtonAddDevice": "Add Device",
|
"ButtonAddDevice": "Dodaj uređaj",
|
||||||
"ButtonAddLibrary": "Add Library",
|
"ButtonAddLibrary": "Dodaj biblioteku",
|
||||||
"ButtonAddPodcasts": "Dodaj podcaste",
|
"ButtonAddPodcasts": "Dodaj podkaste",
|
||||||
"ButtonAddUser": "Add User",
|
"ButtonAddUser": "Dodaj korisnika",
|
||||||
"ButtonAddYourFirstLibrary": "Dodaj svoju prvu biblioteku",
|
"ButtonAddYourFirstLibrary": "Dodaj svoju prvu biblioteku",
|
||||||
"ButtonApply": "Primijeni",
|
"ButtonApply": "Primijeni",
|
||||||
"ButtonApplyChapters": "Primijeni poglavlja",
|
"ButtonApplyChapters": "Primijeni poglavlja",
|
||||||
"ButtonAuthors": "Autori",
|
"ButtonAuthors": "Autori",
|
||||||
|
"ButtonBack": "Natrag",
|
||||||
"ButtonBrowseForFolder": "Browse for Folder",
|
"ButtonBrowseForFolder": "Browse for Folder",
|
||||||
"ButtonCancel": "Odustani",
|
"ButtonCancel": "Odustani",
|
||||||
"ButtonCancelEncode": "Otkaži kodiranje",
|
"ButtonCancelEncode": "Otkaži kodiranje",
|
||||||
@@ -16,7 +17,7 @@
|
|||||||
"ButtonCheckAndDownloadNewEpisodes": "Provjeri i preuzmi nove epizode",
|
"ButtonCheckAndDownloadNewEpisodes": "Provjeri i preuzmi nove epizode",
|
||||||
"ButtonChooseAFolder": "Odaberi folder",
|
"ButtonChooseAFolder": "Odaberi folder",
|
||||||
"ButtonChooseFiles": "Odaberi datoteke",
|
"ButtonChooseFiles": "Odaberi datoteke",
|
||||||
"ButtonClearFilter": "Clear Filter",
|
"ButtonClearFilter": "Poništi filter",
|
||||||
"ButtonCloseFeed": "Zatvori feed",
|
"ButtonCloseFeed": "Zatvori feed",
|
||||||
"ButtonCollections": "Kolekcije",
|
"ButtonCollections": "Kolekcije",
|
||||||
"ButtonConfigureScanner": "Configure Scanner",
|
"ButtonConfigureScanner": "Configure Scanner",
|
||||||
@@ -24,7 +25,7 @@
|
|||||||
"ButtonCreateBackup": "Napravi backup",
|
"ButtonCreateBackup": "Napravi backup",
|
||||||
"ButtonDelete": "Obriši",
|
"ButtonDelete": "Obriši",
|
||||||
"ButtonDownloadQueue": "Queue",
|
"ButtonDownloadQueue": "Queue",
|
||||||
"ButtonEdit": "Edit",
|
"ButtonEdit": "Uredi",
|
||||||
"ButtonEditChapters": "Uredi poglavlja",
|
"ButtonEditChapters": "Uredi poglavlja",
|
||||||
"ButtonEditPodcast": "Uredi podcast",
|
"ButtonEditPodcast": "Uredi podcast",
|
||||||
"ButtonForceReScan": "Prisilno ponovno skeniranje",
|
"ButtonForceReScan": "Prisilno ponovno skeniranje",
|
||||||
@@ -50,16 +51,16 @@
|
|||||||
"ButtonOpenManager": "Otvori menadžera",
|
"ButtonOpenManager": "Otvori menadžera",
|
||||||
"ButtonPause": "Pause",
|
"ButtonPause": "Pause",
|
||||||
"ButtonPlay": "Pokreni",
|
"ButtonPlay": "Pokreni",
|
||||||
"ButtonPlaying": "Playing",
|
"ButtonPlaying": "pušteno",
|
||||||
"ButtonPlaylists": "Playlists",
|
"ButtonPlaylists": "plejliste",
|
||||||
"ButtonPrevious": "Previous",
|
"ButtonPrevious": "Previous",
|
||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Previous Chapter",
|
||||||
"ButtonPurgeAllCache": "Isprazni sav cache",
|
"ButtonPurgeAllCache": "Isprazni sav cache",
|
||||||
"ButtonPurgeItemsCache": "Isprazni Items Cache",
|
"ButtonPurgeItemsCache": "Isprazni Items Cache",
|
||||||
"ButtonPurgeMediaProgress": "Purge Media Progress",
|
|
||||||
"ButtonQueueAddItem": "Add to queue",
|
"ButtonQueueAddItem": "Add to queue",
|
||||||
"ButtonQueueRemoveItem": "Remove from queue",
|
"ButtonQueueRemoveItem": "Remove from queue",
|
||||||
"ButtonQuickMatch": "Brzi match",
|
"ButtonQuickMatch": "Brzi match",
|
||||||
|
"ButtonReScan": "Skeniraj ponovno",
|
||||||
"ButtonRead": "Pročitaj",
|
"ButtonRead": "Pročitaj",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Ukloni iz Nastavi slušati",
|
"ButtonRemoveFromContinueListening": "Ukloni iz Nastavi slušati",
|
||||||
"ButtonRemoveFromContinueReading": "Remove from Continue Reading",
|
"ButtonRemoveFromContinueReading": "Remove from Continue Reading",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Ukloni seriju iz Nastavi seriju",
|
"ButtonRemoveSeriesFromContinueSeries": "Ukloni seriju iz Nastavi seriju",
|
||||||
"ButtonReScan": "Skeniraj ponovno",
|
|
||||||
"ButtonReset": "Poništi",
|
"ButtonReset": "Poništi",
|
||||||
"ButtonResetToDefault": "Reset to default",
|
"ButtonResetToDefault": "Reset to default",
|
||||||
"ButtonRestore": "Povrati",
|
"ButtonRestore": "Povrati",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Korisnički račun",
|
"HeaderAccount": "Korisnički račun",
|
||||||
"HeaderAdvanced": "Napredno",
|
"HeaderAdvanced": "Napredno",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise Notification Settings",
|
"HeaderAppriseNotificationSettings": "Apprise Notification Settings",
|
||||||
|
"HeaderAudioTracks": "audio trake",
|
||||||
"HeaderAudiobookTools": "Audiobook File Management alati",
|
"HeaderAudiobookTools": "Audiobook File Management alati",
|
||||||
"HeaderAudioTracks": "Audio Tracks",
|
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Backups",
|
"HeaderBackups": "Backups",
|
||||||
"HeaderChangePassword": "Promijeni lozinku",
|
"HeaderChangePassword": "Promijeni lozinku",
|
||||||
@@ -115,15 +115,16 @@
|
|||||||
"HeaderCollectionItems": "Stvari u kolekciji",
|
"HeaderCollectionItems": "Stvari u kolekciji",
|
||||||
"HeaderCover": "Cover",
|
"HeaderCover": "Cover",
|
||||||
"HeaderCurrentDownloads": "Current Downloads",
|
"HeaderCurrentDownloads": "Current Downloads",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||||
"HeaderDetails": "Detalji",
|
"HeaderDetails": "Detalji",
|
||||||
"HeaderDownloadQueue": "Download Queue",
|
"HeaderDownloadQueue": "Download Queue",
|
||||||
"HeaderEbookFiles": "Ebook Files",
|
"HeaderEbookFiles": "fajlovi elektronske knjige",
|
||||||
"HeaderEmail": "Email",
|
"HeaderEmail": "Email",
|
||||||
"HeaderEmailSettings": "Email Settings",
|
"HeaderEmailSettings": "Email Settings",
|
||||||
"HeaderEpisodes": "Epizode",
|
"HeaderEpisodes": "Epizode",
|
||||||
"HeaderEreaderDevices": "Ereader Devices",
|
"HeaderEreaderDevices": "Ereader Devices",
|
||||||
"HeaderEreaderSettings": "Ereader Settings",
|
"HeaderEreaderSettings": "podešavanje elektronskog čitača",
|
||||||
"HeaderFiles": "Datoteke",
|
"HeaderFiles": "Datoteke",
|
||||||
"HeaderFindChapters": "Pronađi poglavlja",
|
"HeaderFindChapters": "Pronađi poglavlja",
|
||||||
"HeaderIgnoredFiles": "Zanemarene datoteke",
|
"HeaderIgnoredFiles": "Zanemarene datoteke",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Playlist Items",
|
"HeaderPlaylistItems": "Playlist Items",
|
||||||
"HeaderPodcastsToAdd": "Podcasti za dodati",
|
"HeaderPodcastsToAdd": "Podcasti za dodati",
|
||||||
"HeaderPreviewCover": "Pregledaj Cover",
|
"HeaderPreviewCover": "Pregledaj Cover",
|
||||||
"HeaderRemoveEpisode": "Ukloni epizodu",
|
|
||||||
"HeaderRemoveEpisodes": "Ukloni {0} epizoda/-e",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS Details",
|
"HeaderRSSFeedGeneral": "RSS Details",
|
||||||
"HeaderRSSFeedIsOpen": "RSS Feed je otvoren",
|
"HeaderRSSFeedIsOpen": "RSS Feed je otvoren",
|
||||||
"HeaderRSSFeeds": "RSS Feeds",
|
"HeaderRSSFeeds": "RSS Feeds",
|
||||||
|
"HeaderRemoveEpisode": "Ukloni epizodu",
|
||||||
|
"HeaderRemoveEpisodes": "Ukloni {0} epizoda/-e",
|
||||||
"HeaderSavedMediaProgress": "Spremljen Media Progress",
|
"HeaderSavedMediaProgress": "Spremljen Media Progress",
|
||||||
"HeaderSchedule": "Schedule",
|
"HeaderSchedule": "Schedule",
|
||||||
"HeaderScheduleLibraryScans": "Zakaži automatsko skeniranje biblioteke",
|
"HeaderScheduleLibraryScans": "Zakaži automatsko skeniranje biblioteke",
|
||||||
@@ -172,14 +173,14 @@
|
|||||||
"HeaderSettingsExperimental": "Eksperimentalni Features",
|
"HeaderSettingsExperimental": "Eksperimentalni Features",
|
||||||
"HeaderSettingsGeneral": "Opčenito",
|
"HeaderSettingsGeneral": "Opčenito",
|
||||||
"HeaderSettingsScanner": "Scanner",
|
"HeaderSettingsScanner": "Scanner",
|
||||||
"HeaderSleepTimer": "Sleep Timer",
|
"HeaderSleepTimer": "merač vremena spavanja",
|
||||||
"HeaderStatsLargestItems": "Largest Items",
|
"HeaderStatsLargestItems": "Largest Items",
|
||||||
"HeaderStatsLongestItems": "Najduže stavke (sati)",
|
"HeaderStatsLongestItems": "Najduže stavke (sati)",
|
||||||
"HeaderStatsMinutesListeningChart": "Minuta odslušanih (posljednjih 7 dana)",
|
"HeaderStatsMinutesListeningChart": "Minuta odslušanih (posljednjih 7 dana)",
|
||||||
"HeaderStatsRecentSessions": "Nedavne sesije",
|
"HeaderStatsRecentSessions": "Nedavne sesije",
|
||||||
"HeaderStatsTop10Authors": "Top 10 autora",
|
"HeaderStatsTop10Authors": "Top 10 autora",
|
||||||
"HeaderStatsTop5Genres": "Top 5 žanrova",
|
"HeaderStatsTop5Genres": "Top 5 žanrova",
|
||||||
"HeaderTableOfContents": "Table of Contents",
|
"HeaderTableOfContents": "tabela kontenta",
|
||||||
"HeaderTools": "Alati",
|
"HeaderTools": "Alati",
|
||||||
"HeaderUpdateAccount": "Aktualiziraj Korisnički račun",
|
"HeaderUpdateAccount": "Aktualiziraj Korisnički račun",
|
||||||
"HeaderUpdateAuthor": "Aktualiziraj autora",
|
"HeaderUpdateAuthor": "Aktualiziraj autora",
|
||||||
@@ -197,22 +198,22 @@
|
|||||||
"LabelAccountTypeGuest": "Gost",
|
"LabelAccountTypeGuest": "Gost",
|
||||||
"LabelAccountTypeUser": "Korisnik",
|
"LabelAccountTypeUser": "Korisnik",
|
||||||
"LabelActivity": "Aktivnost",
|
"LabelActivity": "Aktivnost",
|
||||||
"LabelAdded": "Added",
|
|
||||||
"LabelAddedAt": "Added At",
|
|
||||||
"LabelAddToCollection": "Dodaj u kolekciju",
|
"LabelAddToCollection": "Dodaj u kolekciju",
|
||||||
"LabelAddToCollectionBatch": "Add {0} Books to Collection",
|
"LabelAddToCollectionBatch": "Add {0} Books to Collection",
|
||||||
"LabelAddToPlaylist": "Add to Playlist",
|
"LabelAddToPlaylist": "Add to Playlist",
|
||||||
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
||||||
|
"LabelAdded": "dodato",
|
||||||
|
"LabelAddedAt": "dodato u",
|
||||||
"LabelAdminUsersOnly": "Admin users only",
|
"LabelAdminUsersOnly": "Admin users only",
|
||||||
"LabelAll": "All",
|
"LabelAll": "sve",
|
||||||
"LabelAllUsers": "Svi korisnici",
|
"LabelAllUsers": "Svi korisnici",
|
||||||
"LabelAllUsersExcludingGuests": "All users excluding guests",
|
"LabelAllUsersExcludingGuests": "All users excluding guests",
|
||||||
"LabelAllUsersIncludingGuests": "All users including guests",
|
"LabelAllUsersIncludingGuests": "All users including guests",
|
||||||
"LabelAlreadyInYourLibrary": "Already in your library",
|
"LabelAlreadyInYourLibrary": "Already in your library",
|
||||||
"LabelAppend": "Append",
|
"LabelAppend": "Append",
|
||||||
"LabelAuthor": "Autor",
|
"LabelAuthor": "Autor",
|
||||||
"LabelAuthorFirstLast": "Author (First Last)",
|
"LabelAuthorFirstLast": "autor (prvi zadnji)",
|
||||||
"LabelAuthorLastFirst": "Author (Last, First)",
|
"LabelAuthorLastFirst": "autor (zadnji, prvi)",
|
||||||
"LabelAuthors": "Autori",
|
"LabelAuthors": "Autori",
|
||||||
"LabelAutoDownloadEpisodes": "Automatski preuzmi epizode",
|
"LabelAutoDownloadEpisodes": "Automatski preuzmi epizode",
|
||||||
"LabelAutoFetchMetadata": "Auto Fetch Metadata",
|
"LabelAutoFetchMetadata": "Auto Fetch Metadata",
|
||||||
@@ -235,20 +236,20 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Promijeni lozinku",
|
"LabelChangePassword": "Promijeni lozinku",
|
||||||
"LabelChannels": "Channels",
|
"LabelChannels": "Channels",
|
||||||
"LabelChapters": "Chapters",
|
|
||||||
"LabelChaptersFound": "poglavlja pronađena",
|
|
||||||
"LabelChapterTitle": "Ime poglavlja",
|
"LabelChapterTitle": "Ime poglavlja",
|
||||||
|
"LabelChapters": "poglavlja",
|
||||||
|
"LabelChaptersFound": "poglavlja pronađena",
|
||||||
"LabelClickForMoreInfo": "Click for more info",
|
"LabelClickForMoreInfo": "Click for more info",
|
||||||
"LabelClosePlayer": "Close player",
|
"LabelClosePlayer": "izaberi igrača",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
"LabelCollapseSeries": "Collapse Series",
|
"LabelCollapseSeries": "Collapse Series",
|
||||||
"LabelCollection": "Collection",
|
"LabelCollection": "Collection",
|
||||||
"LabelCollections": "Kolekcije",
|
"LabelCollections": "Kolekcije",
|
||||||
"LabelComplete": "Complete",
|
"LabelComplete": "završeno",
|
||||||
"LabelConfirmPassword": "Potvrdi lozinku",
|
"LabelConfirmPassword": "Potvrdi lozinku",
|
||||||
"LabelContinueListening": "Nastavi slušanje",
|
"LabelContinueListening": "nastavi slušati",
|
||||||
"LabelContinueReading": "Continue Reading",
|
"LabelContinueReading": "nastavi čitati",
|
||||||
"LabelContinueSeries": "Nastavi seriju",
|
"LabelContinueSeries": "nastavi serije",
|
||||||
"LabelCover": "Cover",
|
"LabelCover": "Cover",
|
||||||
"LabelCoverImageURL": "URL od covera",
|
"LabelCoverImageURL": "URL od covera",
|
||||||
"LabelCreatedAt": "Napravljeno",
|
"LabelCreatedAt": "Napravljeno",
|
||||||
@@ -266,7 +267,7 @@
|
|||||||
"LabelDirectory": "Direktorij",
|
"LabelDirectory": "Direktorij",
|
||||||
"LabelDiscFromFilename": "CD iz imena datoteke",
|
"LabelDiscFromFilename": "CD iz imena datoteke",
|
||||||
"LabelDiscFromMetadata": "CD iz metapodataka",
|
"LabelDiscFromMetadata": "CD iz metapodataka",
|
||||||
"LabelDiscover": "Discover",
|
"LabelDiscover": "otkriti",
|
||||||
"LabelDownload": "Preuzmi",
|
"LabelDownload": "Preuzmi",
|
||||||
"LabelDownloadNEpisodes": "Download {0} episodes",
|
"LabelDownloadNEpisodes": "Download {0} episodes",
|
||||||
"LabelDuration": "Trajanje",
|
"LabelDuration": "Trajanje",
|
||||||
@@ -274,11 +275,13 @@
|
|||||||
"LabelDurationComparisonLonger": "({0} longer)",
|
"LabelDurationComparisonLonger": "({0} longer)",
|
||||||
"LabelDurationComparisonShorter": "({0} shorter)",
|
"LabelDurationComparisonShorter": "({0} shorter)",
|
||||||
"LabelDurationFound": "Pronađeno trajanje:",
|
"LabelDurationFound": "Pronađeno trajanje:",
|
||||||
"LabelEbook": "Ebook",
|
"LabelEbook": "elektronska knjiga",
|
||||||
"LabelEbooks": "Ebooks",
|
"LabelEbooks": "elektronske knjige",
|
||||||
"LabelEdit": "Uredi",
|
"LabelEdit": "Uredi",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "From Address",
|
"LabelEmailSettingsFromAddress": "From Address",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Secure",
|
"LabelEmailSettingsSecure": "Secure",
|
||||||
"LabelEmailSettingsSecureHelp": "If true the connection will use TLS when connecting to server. If false then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false. (from nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "If true the connection will use TLS when connecting to server. If false then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false. (from nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test Address",
|
"LabelEmailSettingsTestAddress": "Test Address",
|
||||||
@@ -296,14 +299,15 @@
|
|||||||
"LabelFetchingMetadata": "Fetching Metadata",
|
"LabelFetchingMetadata": "Fetching Metadata",
|
||||||
"LabelFile": "Datoteka",
|
"LabelFile": "Datoteka",
|
||||||
"LabelFileBirthtime": "File Birthtime",
|
"LabelFileBirthtime": "File Birthtime",
|
||||||
"LabelFileModified": "File Modified",
|
"LabelFileModified": "fajl izmenjen",
|
||||||
"LabelFilename": "Ime datoteke",
|
"LabelFilename": "Ime datoteke",
|
||||||
"LabelFilterByUser": "Filtriraj po korisniku",
|
"LabelFilterByUser": "Filtriraj po korisniku",
|
||||||
"LabelFindEpisodes": "Pronađi epizode",
|
"LabelFindEpisodes": "Pronađi epizode",
|
||||||
"LabelFinished": "Finished",
|
"LabelFinished": "završen",
|
||||||
"LabelFolder": "Folder",
|
"LabelFolder": "folder",
|
||||||
"LabelFolders": "Folderi",
|
"LabelFolders": "Folderi",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "Font family",
|
"LabelFontFamily": "Font family",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Font scale",
|
"LabelFontScale": "Font scale",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Sat",
|
"LabelHour": "Sat",
|
||||||
"LabelIcon": "Ikona",
|
"LabelIcon": "Ikona",
|
||||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
"LabelImageURLFromTheWeb": "Image URL from the web",
|
||||||
|
"LabelInProgress": "U tijeku",
|
||||||
"LabelIncludeInTracklist": "Dodaj u Tracklist",
|
"LabelIncludeInTracklist": "Dodaj u Tracklist",
|
||||||
"LabelIncomplete": "Nepotpuno",
|
"LabelIncomplete": "Nepotpuno",
|
||||||
"LabelInProgress": "U tijeku",
|
|
||||||
"LabelInterval": "Interval",
|
"LabelInterval": "Interval",
|
||||||
"LabelIntervalCustomDailyWeekly": "Custom daily/weekly",
|
"LabelIntervalCustomDailyWeekly": "Custom daily/weekly",
|
||||||
"LabelIntervalEvery12Hours": "Every 12 hours",
|
"LabelIntervalEvery12Hours": "Every 12 hours",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Stavka",
|
"LabelItem": "Stavka",
|
||||||
"LabelLanguage": "Jezik",
|
"LabelLanguage": "Jezik",
|
||||||
"LabelLanguageDefaultServer": "Default jezik servera",
|
"LabelLanguageDefaultServer": "Default jezik servera",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Last Book Added",
|
"LabelLastBookAdded": "Last Book Added",
|
||||||
"LabelLastBookUpdated": "Last Book Updated",
|
"LabelLastBookUpdated": "Last Book Updated",
|
||||||
"LabelLastSeen": "Zadnje pogledano",
|
"LabelLastSeen": "Zadnje pogledano",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Manje",
|
"LabelLess": "Manje",
|
||||||
"LabelLibrariesAccessibleToUser": "Biblioteke pristupačne korisniku",
|
"LabelLibrariesAccessibleToUser": "Biblioteke pristupačne korisniku",
|
||||||
"LabelLibrary": "Biblioteka",
|
"LabelLibrary": "Biblioteka",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Stavka biblioteke",
|
"LabelLibraryItem": "Stavka biblioteke",
|
||||||
"LabelLibraryName": "Ime biblioteke",
|
"LabelLibraryName": "Ime biblioteke",
|
||||||
"LabelLimit": "Limit",
|
"LabelLimit": "Limit",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||||
"LabelMediaPlayer": "Media Player",
|
"LabelMediaPlayer": "Media Player",
|
||||||
"LabelMediaType": "Media Type",
|
"LabelMediaType": "Media Type",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Poslužitelj metapodataka ",
|
|
||||||
"LabelMetaTag": "Meta Tag",
|
"LabelMetaTag": "Meta Tag",
|
||||||
"LabelMetaTags": "Meta Tags",
|
"LabelMetaTags": "Meta Tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||||
|
"LabelMetadataProvider": "Poslužitelj metapodataka ",
|
||||||
"LabelMinute": "Minuta",
|
"LabelMinute": "Minuta",
|
||||||
"LabelMissing": "Nedostaje",
|
"LabelMissing": "Nedostaje",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Narrator",
|
"LabelNarrator": "Narrator",
|
||||||
"LabelNarrators": "Naratori",
|
"LabelNarrators": "Naratori",
|
||||||
"LabelNew": "Novo",
|
"LabelNew": "Novo",
|
||||||
|
"LabelNewPassword": "Nova lozinka",
|
||||||
"LabelNewestAuthors": "Najnoviji autori",
|
"LabelNewestAuthors": "Najnoviji autori",
|
||||||
"LabelNewestEpisodes": "Najnovije epizode",
|
"LabelNewestEpisodes": "Najnovije epizode",
|
||||||
"LabelNewPassword": "Nova lozinka",
|
|
||||||
"LabelNextBackupDate": "Next backup date",
|
"LabelNextBackupDate": "Next backup date",
|
||||||
"LabelNextScheduledRun": "Next scheduled run",
|
"LabelNextScheduledRun": "Next scheduled run",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "No episodes selected",
|
"LabelNoEpisodesSelected": "No episodes selected",
|
||||||
"LabelNotes": "Bilješke",
|
|
||||||
"LabelNotFinished": "Nedovršeno",
|
"LabelNotFinished": "Nedovršeno",
|
||||||
|
"LabelNotStarted": "Not Started",
|
||||||
|
"LabelNotes": "Bilješke",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
||||||
"LabelNotificationAvailableVariables": "Dostupne varijable",
|
"LabelNotificationAvailableVariables": "Dostupne varijable",
|
||||||
"LabelNotificationBodyTemplate": "Body Template",
|
"LabelNotificationBodyTemplate": "Body Template",
|
||||||
"LabelNotificationEvent": "Notification Event",
|
"LabelNotificationEvent": "Notification Event",
|
||||||
|
"LabelNotificationTitleTemplate": "Title Template",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Maksimalan broj neuspjelih pokušaja",
|
"LabelNotificationsMaxFailedAttempts": "Maksimalan broj neuspjelih pokušaja",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Obavijesti će biti isključene ako par puta budu neuspješno poslane.",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Obavijesti će biti isključene ako par puta budu neuspješno poslane.",
|
||||||
"LabelNotificationsMaxQueueSize": "Maksimalna veličina queuea za notification events",
|
"LabelNotificationsMaxQueueSize": "Maksimalna veličina queuea za notification events",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Samo 1 event po sekundi može biti pokrenut. Eventi će biti ignorirani ako je queue na maksimalnoj veličini. To spriječava spammanje s obavijestima.",
|
"LabelNotificationsMaxQueueSizeHelp": "Samo 1 event po sekundi može biti pokrenut. Eventi će biti ignorirani ako je queue na maksimalnoj veličini. To spriječava spammanje s obavijestima.",
|
||||||
"LabelNotificationTitleTemplate": "Title Template",
|
|
||||||
"LabelNotStarted": "Not Started",
|
|
||||||
"LabelNumberOfBooks": "Number of Books",
|
"LabelNumberOfBooks": "Number of Books",
|
||||||
"LabelNumberOfEpisodes": "# of Episodes",
|
"LabelNumberOfEpisodes": "# of Episodes",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Smije uploadati",
|
"LabelPermissionsUpload": "Smije uploadati",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Slika putanja/URL",
|
"LabelPhotoPathURL": "Slika putanja/URL",
|
||||||
"LabelPlaylists": "Playlists",
|
|
||||||
"LabelPlayMethod": "Vrsta reprodukcije",
|
"LabelPlayMethod": "Vrsta reprodukcije",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Playlists",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Područje pretrage podcasta",
|
"LabelPodcastSearchRegion": "Područje pretrage podcasta",
|
||||||
"LabelPodcastType": "Podcast Type",
|
"LabelPodcastType": "Podcast Type",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Prefiksi za ignorirati (mala i velika slova nisu bitna)",
|
"LabelPrefixesToIgnore": "Prefiksi za ignorirati (mala i velika slova nisu bitna)",
|
||||||
"LabelPreventIndexing": "Prevent your feed from being indexed by iTunes and Google podcast directories",
|
"LabelPreventIndexing": "Prevent your feed from being indexed by iTunes and Google podcast directories",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Napredak",
|
"LabelProgress": "Napredak",
|
||||||
"LabelProvider": "Dobavljač",
|
"LabelProvider": "Dobavljač",
|
||||||
"LabelPubDate": "Datam izdavanja",
|
"LabelPubDate": "Datam izdavanja",
|
||||||
"LabelPublisher": "Izdavač",
|
|
||||||
"LabelPublishYear": "Godina izdavanja",
|
"LabelPublishYear": "Godina izdavanja",
|
||||||
"LabelRead": "Read",
|
"LabelPublisher": "Izdavač",
|
||||||
"LabelReadAgain": "Read Again",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Read ebook without keeping progress",
|
|
||||||
"LabelRecentlyAdded": "Nedavno dodano",
|
|
||||||
"LabelRecentSeries": "Nedavne serije",
|
|
||||||
"LabelRecommended": "Recommended",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Regija",
|
|
||||||
"LabelReleaseDate": "Datum izlaska",
|
|
||||||
"LabelRemoveCover": "Remove cover",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
||||||
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
||||||
"LabelRSSFeedOpen": "RSS Feed Open",
|
"LabelRSSFeedOpen": "RSS Feed Open",
|
||||||
"LabelRSSFeedPreventIndexing": "Prevent Indexing",
|
"LabelRSSFeedPreventIndexing": "Prevent Indexing",
|
||||||
"LabelRSSFeedSlug": "RSS Feed Slug",
|
"LabelRSSFeedSlug": "RSS Feed Slug",
|
||||||
"LabelRSSFeedURL": "RSS Feed URL",
|
"LabelRSSFeedURL": "RSS Feed URL",
|
||||||
|
"LabelRead": "Read",
|
||||||
|
"LabelReadAgain": "Read Again",
|
||||||
|
"LabelReadEbookWithoutProgress": "Read ebook without keeping progress",
|
||||||
|
"LabelRecentSeries": "Nedavne serije",
|
||||||
|
"LabelRecentlyAdded": "Nedavno dodano",
|
||||||
|
"LabelRecommended": "Recommended",
|
||||||
|
"LabelRedo": "Redo",
|
||||||
|
"LabelRegion": "Regija",
|
||||||
|
"LabelReleaseDate": "Datum izlaska",
|
||||||
|
"LabelRemoveCover": "Remove cover",
|
||||||
|
"LabelRowsPerPage": "Rows per page",
|
||||||
"LabelSearchTerm": "Traži pojam",
|
"LabelSearchTerm": "Traži pojam",
|
||||||
"LabelSearchTitle": "Traži naslov",
|
"LabelSearchTitle": "Traži naslov",
|
||||||
"LabelSearchTitleOrASIN": "Traži naslov ili ASIN",
|
"LabelSearchTitleOrASIN": "Traži naslov ili ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Sleep timer",
|
"LabelSleepTimer": "Sleep timer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Pokreni",
|
"LabelStart": "Pokreni",
|
||||||
|
"LabelStartTime": "Vrijeme pokretanja",
|
||||||
"LabelStarted": "Pokrenuto",
|
"LabelStarted": "Pokrenuto",
|
||||||
"LabelStartedAt": "Pokrenuto",
|
"LabelStartedAt": "Pokrenuto",
|
||||||
"LabelStartTime": "Vrijeme pokretanja",
|
|
||||||
"LabelStatsAudioTracks": "Audio Tracks",
|
"LabelStatsAudioTracks": "Audio Tracks",
|
||||||
"LabelStatsAuthors": "Autori",
|
"LabelStatsAuthors": "Autori",
|
||||||
"LabelStatsBestDay": "Najbolji dan",
|
"LabelStatsBestDay": "Najbolji dan",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Nepoznato",
|
"LabelUnknown": "Nepoznato",
|
||||||
"LabelUpdateCover": "Aktualiziraj Cover",
|
"LabelUpdateCover": "Aktualiziraj Cover",
|
||||||
"LabelUpdateCoverHelp": "Dozvoli postavljanje novog covera za odabrane knjige nakon što je match pronađen.",
|
"LabelUpdateCoverHelp": "Dozvoli postavljanje novog covera za odabrane knjige nakon što je match pronađen.",
|
||||||
"LabelUpdatedAt": "Aktualizirano",
|
|
||||||
"LabelUpdateDetails": "Aktualiziraj detalje",
|
"LabelUpdateDetails": "Aktualiziraj detalje",
|
||||||
"LabelUpdateDetailsHelp": "Dozvoli postavljanje novih detalja za odabrane knjige nakon što je match pronađen",
|
"LabelUpdateDetailsHelp": "Dozvoli postavljanje novih detalja za odabrane knjige nakon što je match pronađen",
|
||||||
|
"LabelUpdatedAt": "Aktualizirano",
|
||||||
"LabelUploaderDragAndDrop": "Drag & Drop datoteke ili foldere",
|
"LabelUploaderDragAndDrop": "Drag & Drop datoteke ili foldere",
|
||||||
"LabelUploaderDropFiles": "Ubaci datoteke",
|
"LabelUploaderDropFiles": "Ubaci datoteke",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Backups uključuju korisnike, korisnikov napredak, detalje stavki iz biblioteke, postavke server i slike iz <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups ne uključuju nijedne datoteke koje su u folderima biblioteke.",
|
"MessageBackupsDescription": "Backups uključuju korisnike, korisnikov napredak, detalje stavki iz biblioteke, postavke server i slike iz <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups ne uključuju nijedne datoteke koje su u folderima biblioteke.",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match će probati dodati nedostale covere i metapodatke za odabrane stavke. Uključi postavke ispod da omočutie Quick Mathchu da zamijeni postojeće covere i/ili metapodatke.",
|
"MessageBatchQuickMatchDescription": "Quick Match će probati dodati nedostale covere i metapodatke za odabrane stavke. Uključi postavke ispod da omočutie Quick Mathchu da zamijeni postojeće covere i/ili metapodatke.",
|
||||||
"MessageBookshelfNoCollections": "You haven't made any collections yet",
|
"MessageBookshelfNoCollections": "You haven't made any collections yet",
|
||||||
"MessageBookshelfNoResultsForFilter": "No Results for filter \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "No RSS feeds are open",
|
"MessageBookshelfNoRSSFeeds": "No RSS feeds are open",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "No Results for filter \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "You have no series",
|
"MessageBookshelfNoSeries": "You have no series",
|
||||||
"MessageChapterEndIsAfter": "Kraj poglavlja je nakon kraja audioknjige.",
|
"MessageChapterEndIsAfter": "Kraj poglavlja je nakon kraja audioknjige.",
|
||||||
"MessageChapterErrorFirstNotZero": "First chapter must start at 0",
|
"MessageChapterErrorFirstNotZero": "First chapter must start at 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Are you sure you want to mark all books in this series as finished?",
|
"MessageConfirmMarkSeriesFinished": "Are you sure you want to mark all books in this series as finished?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Are you sure you want to mark all books in this series as not finished?",
|
"MessageConfirmMarkSeriesNotFinished": "Are you sure you want to mark all books in this series as not finished?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||||
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
||||||
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "AJeste li sigurni da želite obrisati kolekciju \"{0}\"?",
|
"MessageConfirmRemoveCollection": "AJeste li sigurni da želite obrisati kolekciju \"{0}\"?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
||||||
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Preuzimam epizodu",
|
"MessageDownloadingEpisode": "Preuzimam epizodu",
|
||||||
"MessageDragFilesIntoTrackOrder": "Povuci datoteke u pravilan redoslijed tracka.",
|
"MessageDragFilesIntoTrackOrder": "Povuci datoteke u pravilan redoslijed tracka.",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "No Series",
|
"MessageNoSeries": "No Series",
|
||||||
"MessageNoTags": "No Tags",
|
"MessageNoTags": "No Tags",
|
||||||
"MessageNoTasksRunning": "No Tasks Running",
|
"MessageNoTasksRunning": "No Tasks Running",
|
||||||
"MessageNotYetImplemented": "Not yet implemented",
|
|
||||||
"MessageNoUpdateNecessary": "Aktualiziranje nije potrebno",
|
"MessageNoUpdateNecessary": "Aktualiziranje nije potrebno",
|
||||||
"MessageNoUpdatesWereNecessary": "Aktualiziranje nije bilo potrebno",
|
"MessageNoUpdatesWereNecessary": "Aktualiziranje nije bilo potrebno",
|
||||||
"MessageNoUserPlaylists": "You have no playlists",
|
"MessageNoUserPlaylists": "You have no playlists",
|
||||||
|
"MessageNotYetImplemented": "Not yet implemented",
|
||||||
"MessageOr": "or",
|
"MessageOr": "or",
|
||||||
"MessagePauseChapter": "Pause chapter playback",
|
"MessagePauseChapter": "Pause chapter playback",
|
||||||
"MessagePlayChapter": "Listen to beginning of chapter",
|
"MessagePlayChapter": "Listen to beginning of chapter",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
||||||
"ToastPodcastCreateFailed": "Neuspješno kreiranje podcasta",
|
"ToastPodcastCreateFailed": "Neuspješno kreiranje podcasta",
|
||||||
"ToastPodcastCreateSuccess": "Podcast uspješno kreiran",
|
"ToastPodcastCreateSuccess": "Podcast uspješno kreiran",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Neuspješno uklanjanje stavke iz kolekcije",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Stavka uklonjena iz kolekcije",
|
|
||||||
"ToastRSSFeedCloseFailed": "Neuspješno zatvaranje RSS Feeda",
|
"ToastRSSFeedCloseFailed": "Neuspješno zatvaranje RSS Feeda",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS Feed zatvoren",
|
"ToastRSSFeedCloseSuccess": "RSS Feed zatvoren",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Neuspješno uklanjanje stavke iz kolekcije",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Stavka uklonjena iz kolekcije",
|
||||||
"ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device",
|
"ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Series update failed",
|
"ToastSeriesUpdateFailed": "Series update failed",
|
||||||
|
|||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Alkalmaz",
|
"ButtonApply": "Alkalmaz",
|
||||||
"ButtonApplyChapters": "Fejezetek alkalmazása",
|
"ButtonApplyChapters": "Fejezetek alkalmazása",
|
||||||
"ButtonAuthors": "Szerzők",
|
"ButtonAuthors": "Szerzők",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "Mappa keresése",
|
"ButtonBrowseForFolder": "Mappa keresése",
|
||||||
"ButtonCancel": "Mégse",
|
"ButtonCancel": "Mégse",
|
||||||
"ButtonCancelEncode": "Kódolás megszakítása",
|
"ButtonCancelEncode": "Kódolás megszakítása",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Előző fejezet",
|
"ButtonPreviousChapter": "Előző fejezet",
|
||||||
"ButtonPurgeAllCache": "Összes gyorsítótár törlése",
|
"ButtonPurgeAllCache": "Összes gyorsítótár törlése",
|
||||||
"ButtonPurgeItemsCache": "Elemek gyorsítótárának törlése",
|
"ButtonPurgeItemsCache": "Elemek gyorsítótárának törlése",
|
||||||
"ButtonPurgeMediaProgress": "Médialejátszás állapotának törlése",
|
|
||||||
"ButtonQueueAddItem": "Hozzáadás a sorhoz",
|
"ButtonQueueAddItem": "Hozzáadás a sorhoz",
|
||||||
"ButtonQueueRemoveItem": "Eltávolítás a sorból",
|
"ButtonQueueRemoveItem": "Eltávolítás a sorból",
|
||||||
"ButtonQuickMatch": "Gyors egyeztetés",
|
"ButtonQuickMatch": "Gyors egyeztetés",
|
||||||
|
"ButtonReScan": "Újraszkennelés",
|
||||||
"ButtonRead": "Olvasás",
|
"ButtonRead": "Olvasás",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Eltávolítás a Folytatás hallgatásából",
|
"ButtonRemoveFromContinueListening": "Eltávolítás a Folytatás hallgatásából",
|
||||||
"ButtonRemoveFromContinueReading": "Eltávolítás a Folytatás olvasásából",
|
"ButtonRemoveFromContinueReading": "Eltávolítás a Folytatás olvasásából",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Sorozat eltávolítása a Folytatás sorozatokból",
|
"ButtonRemoveSeriesFromContinueSeries": "Sorozat eltávolítása a Folytatás sorozatokból",
|
||||||
"ButtonReScan": "Újraszkennelés",
|
|
||||||
"ButtonReset": "Visszaállítás",
|
"ButtonReset": "Visszaállítás",
|
||||||
"ButtonResetToDefault": "Alapértelmezésre állítás",
|
"ButtonResetToDefault": "Alapértelmezésre állítás",
|
||||||
"ButtonRestore": "Visszaállítás",
|
"ButtonRestore": "Visszaállítás",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Fiók",
|
"HeaderAccount": "Fiók",
|
||||||
"HeaderAdvanced": "Haladó",
|
"HeaderAdvanced": "Haladó",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise értesítési beállítások",
|
"HeaderAppriseNotificationSettings": "Apprise értesítési beállítások",
|
||||||
"HeaderAudiobookTools": "Hangoskönyv fájlkezelő eszközök",
|
|
||||||
"HeaderAudioTracks": "Audiósávok",
|
"HeaderAudioTracks": "Audiósávok",
|
||||||
|
"HeaderAudiobookTools": "Hangoskönyv fájlkezelő eszközök",
|
||||||
"HeaderAuthentication": "Hitelesítés",
|
"HeaderAuthentication": "Hitelesítés",
|
||||||
"HeaderBackups": "Biztonsági másolatok",
|
"HeaderBackups": "Biztonsági másolatok",
|
||||||
"HeaderChangePassword": "Jelszó megváltoztatása",
|
"HeaderChangePassword": "Jelszó megváltoztatása",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Gyűjtemény elemek",
|
"HeaderCollectionItems": "Gyűjtemény elemek",
|
||||||
"HeaderCover": "Borító",
|
"HeaderCover": "Borító",
|
||||||
"HeaderCurrentDownloads": "Jelenlegi letöltések",
|
"HeaderCurrentDownloads": "Jelenlegi letöltések",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Egyéni metaadat-szolgáltatók",
|
"HeaderCustomMetadataProviders": "Egyéni metaadat-szolgáltatók",
|
||||||
"HeaderDetails": "Részletek",
|
"HeaderDetails": "Részletek",
|
||||||
"HeaderDownloadQueue": "Letöltési sor",
|
"HeaderDownloadQueue": "Letöltési sor",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Lejátszási lista elemek",
|
"HeaderPlaylistItems": "Lejátszási lista elemek",
|
||||||
"HeaderPodcastsToAdd": "Hozzáadandó podcastok",
|
"HeaderPodcastsToAdd": "Hozzáadandó podcastok",
|
||||||
"HeaderPreviewCover": "Borító előnézete",
|
"HeaderPreviewCover": "Borító előnézete",
|
||||||
"HeaderRemoveEpisode": "Epizód eltávolítása",
|
|
||||||
"HeaderRemoveEpisodes": "{0} epizód eltávolítása",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS részletek",
|
"HeaderRSSFeedGeneral": "RSS részletek",
|
||||||
"HeaderRSSFeedIsOpen": "RSS hírcsatorna nyitva",
|
"HeaderRSSFeedIsOpen": "RSS hírcsatorna nyitva",
|
||||||
"HeaderRSSFeeds": "RSS hírcsatornák",
|
"HeaderRSSFeeds": "RSS hírcsatornák",
|
||||||
|
"HeaderRemoveEpisode": "Epizód eltávolítása",
|
||||||
|
"HeaderRemoveEpisodes": "{0} epizód eltávolítása",
|
||||||
"HeaderSavedMediaProgress": "Mentett médialejátszási állapot",
|
"HeaderSavedMediaProgress": "Mentett médialejátszási állapot",
|
||||||
"HeaderSchedule": "Ütemezés",
|
"HeaderSchedule": "Ütemezés",
|
||||||
"HeaderScheduleLibraryScans": "Könyvtárak automatikus szkennelésének ütemezése",
|
"HeaderScheduleLibraryScans": "Könyvtárak automatikus szkennelésének ütemezése",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Vendég",
|
"LabelAccountTypeGuest": "Vendég",
|
||||||
"LabelAccountTypeUser": "Felhasználó",
|
"LabelAccountTypeUser": "Felhasználó",
|
||||||
"LabelActivity": "Tevékenység",
|
"LabelActivity": "Tevékenység",
|
||||||
"LabelAdded": "Hozzáadva",
|
|
||||||
"LabelAddedAt": "Hozzáadás ideje",
|
|
||||||
"LabelAddToCollection": "Hozzáadás a gyűjteményhez",
|
"LabelAddToCollection": "Hozzáadás a gyűjteményhez",
|
||||||
"LabelAddToCollectionBatch": "{0} könyv hozzáadása a gyűjteményhez",
|
"LabelAddToCollectionBatch": "{0} könyv hozzáadása a gyűjteményhez",
|
||||||
"LabelAddToPlaylist": "Hozzáadás a lejátszási listához",
|
"LabelAddToPlaylist": "Hozzáadás a lejátszási listához",
|
||||||
"LabelAddToPlaylistBatch": "{0} elem hozzáadása a lejátszási listához",
|
"LabelAddToPlaylistBatch": "{0} elem hozzáadása a lejátszási listához",
|
||||||
|
"LabelAdded": "Hozzáadva",
|
||||||
|
"LabelAddedAt": "Hozzáadás ideje",
|
||||||
"LabelAdminUsersOnly": "Csak admin felhasználók",
|
"LabelAdminUsersOnly": "Csak admin felhasználók",
|
||||||
"LabelAll": "Minden",
|
"LabelAll": "Minden",
|
||||||
"LabelAllUsers": "Minden felhasználó",
|
"LabelAllUsers": "Minden felhasználó",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Jelszó megváltoztatása",
|
"LabelChangePassword": "Jelszó megváltoztatása",
|
||||||
"LabelChannels": "Csatornák",
|
"LabelChannels": "Csatornák",
|
||||||
|
"LabelChapterTitle": "Fejezet címe",
|
||||||
"LabelChapters": "Fejezetek",
|
"LabelChapters": "Fejezetek",
|
||||||
"LabelChaptersFound": "fejezet található",
|
"LabelChaptersFound": "fejezet található",
|
||||||
"LabelChapterTitle": "Fejezet címe",
|
|
||||||
"LabelClickForMoreInfo": "További információkért kattintson",
|
"LabelClickForMoreInfo": "További információkért kattintson",
|
||||||
"LabelClosePlayer": "Lejátszó bezárása",
|
"LabelClosePlayer": "Lejátszó bezárása",
|
||||||
"LabelCodec": "Kodek",
|
"LabelCodec": "Kodek",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Szerkesztés",
|
"LabelEdit": "Szerkesztés",
|
||||||
"LabelEmail": "E-mail",
|
"LabelEmail": "E-mail",
|
||||||
"LabelEmailSettingsFromAddress": "Feladó címe",
|
"LabelEmailSettingsFromAddress": "Feladó címe",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Biztonságos",
|
"LabelEmailSettingsSecure": "Biztonságos",
|
||||||
"LabelEmailSettingsSecureHelp": "Ha igaz, a kapcsolat TLS-t használ a szerverhez való csatlakozáskor. Ha hamis, akkor TLS-t használ, ha a szerver támogatja a STARTTLS kiterjesztést. A legtöbb esetben állítsa ezt az értéket igazra, ha a 465-ös portra csatlakozik. A 587-es vagy 25-ös port esetében tartsa hamis értéken. (a nodemailer.com/smtp/#authentication oldalról)",
|
"LabelEmailSettingsSecureHelp": "Ha igaz, a kapcsolat TLS-t használ a szerverhez való csatlakozáskor. Ha hamis, akkor TLS-t használ, ha a szerver támogatja a STARTTLS kiterjesztést. A legtöbb esetben állítsa ezt az értéket igazra, ha a 465-ös portra csatlakozik. A 587-es vagy 25-ös port esetében tartsa hamis értéken. (a nodemailer.com/smtp/#authentication oldalról)",
|
||||||
"LabelEmailSettingsTestAddress": "Teszt cím",
|
"LabelEmailSettingsTestAddress": "Teszt cím",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Mappa",
|
"LabelFolder": "Mappa",
|
||||||
"LabelFolders": "Mappák",
|
"LabelFolders": "Mappák",
|
||||||
"LabelFontBold": "Félkövér",
|
"LabelFontBold": "Félkövér",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "Betűtípus család",
|
"LabelFontFamily": "Betűtípus család",
|
||||||
"LabelFontItalic": "Dőlt",
|
"LabelFontItalic": "Dőlt",
|
||||||
"LabelFontScale": "Betűméret skála",
|
"LabelFontScale": "Betűméret skála",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Óra",
|
"LabelHour": "Óra",
|
||||||
"LabelIcon": "Ikon",
|
"LabelIcon": "Ikon",
|
||||||
"LabelImageURLFromTheWeb": "Kép URL a weben",
|
"LabelImageURLFromTheWeb": "Kép URL a weben",
|
||||||
|
"LabelInProgress": "Folyamatban",
|
||||||
"LabelIncludeInTracklist": "Beleértve a sávlistába",
|
"LabelIncludeInTracklist": "Beleértve a sávlistába",
|
||||||
"LabelIncomplete": "Befejezetlen",
|
"LabelIncomplete": "Befejezetlen",
|
||||||
"LabelInProgress": "Folyamatban",
|
|
||||||
"LabelInterval": "Intervallum",
|
"LabelInterval": "Intervallum",
|
||||||
"LabelIntervalCustomDailyWeekly": "Egyéni napi/heti",
|
"LabelIntervalCustomDailyWeekly": "Egyéni napi/heti",
|
||||||
"LabelIntervalEvery12Hours": "Minden 12 órában",
|
"LabelIntervalEvery12Hours": "Minden 12 órában",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Elem",
|
"LabelItem": "Elem",
|
||||||
"LabelLanguage": "Nyelv",
|
"LabelLanguage": "Nyelv",
|
||||||
"LabelLanguageDefaultServer": "Szerver alapértelmezett nyelve",
|
"LabelLanguageDefaultServer": "Szerver alapértelmezett nyelve",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Utolsó hozzáadott könyv",
|
"LabelLastBookAdded": "Utolsó hozzáadott könyv",
|
||||||
"LabelLastBookUpdated": "Utolsó frissített könyv",
|
"LabelLastBookUpdated": "Utolsó frissített könyv",
|
||||||
"LabelLastSeen": "Utolsó látogatás",
|
"LabelLastSeen": "Utolsó látogatás",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Kevesebb",
|
"LabelLess": "Kevesebb",
|
||||||
"LabelLibrariesAccessibleToUser": "A felhasználó számára elérhető könyvtárak",
|
"LabelLibrariesAccessibleToUser": "A felhasználó számára elérhető könyvtárak",
|
||||||
"LabelLibrary": "Könyvtár",
|
"LabelLibrary": "Könyvtár",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Könyvtári elem",
|
"LabelLibraryItem": "Könyvtári elem",
|
||||||
"LabelLibraryName": "Könyvtár neve",
|
"LabelLibraryName": "Könyvtár neve",
|
||||||
"LabelLimit": "Korlát",
|
"LabelLimit": "Korlát",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Meglévő felhasználók összekapcsolására használt. Egyszer összekapcsolva, a felhasználók egyedülálló azonosítóval lesznek egyeztetve az Ön SSO szolgáltatójától",
|
"LabelMatchExistingUsersByDescription": "Meglévő felhasználók összekapcsolására használt. Egyszer összekapcsolva, a felhasználók egyedülálló azonosítóval lesznek egyeztetve az Ön SSO szolgáltatójától",
|
||||||
"LabelMediaPlayer": "Médialejátszó",
|
"LabelMediaPlayer": "Médialejátszó",
|
||||||
"LabelMediaType": "Média típus",
|
"LabelMediaType": "Média típus",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "A magasabb prioritású metaadat-források felülírják az alacsonyabb prioritásúakat",
|
|
||||||
"LabelMetadataProvider": "Metaadat-szolgáltató",
|
|
||||||
"LabelMetaTag": "Meta címke",
|
"LabelMetaTag": "Meta címke",
|
||||||
"LabelMetaTags": "Meta címkék",
|
"LabelMetaTags": "Meta címkék",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "A magasabb prioritású metaadat-források felülírják az alacsonyabb prioritásúakat",
|
||||||
|
"LabelMetadataProvider": "Metaadat-szolgáltató",
|
||||||
"LabelMinute": "Perc",
|
"LabelMinute": "Perc",
|
||||||
"LabelMissing": "Hiányzó",
|
"LabelMissing": "Hiányzó",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Előadó",
|
"LabelNarrator": "Előadó",
|
||||||
"LabelNarrators": "Előadók",
|
"LabelNarrators": "Előadók",
|
||||||
"LabelNew": "Új",
|
"LabelNew": "Új",
|
||||||
|
"LabelNewPassword": "Új jelszó",
|
||||||
"LabelNewestAuthors": "Legújabb szerzők",
|
"LabelNewestAuthors": "Legújabb szerzők",
|
||||||
"LabelNewestEpisodes": "Legújabb epizódok",
|
"LabelNewestEpisodes": "Legújabb epizódok",
|
||||||
"LabelNewPassword": "Új jelszó",
|
|
||||||
"LabelNextBackupDate": "Következő biztonsági másolat dátuma",
|
"LabelNextBackupDate": "Következő biztonsági másolat dátuma",
|
||||||
"LabelNextScheduledRun": "Következő ütemezett futtatás",
|
"LabelNextScheduledRun": "Következő ütemezett futtatás",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "Nincsenek kiválasztott epizódok",
|
"LabelNoEpisodesSelected": "Nincsenek kiválasztott epizódok",
|
||||||
"LabelNotes": "Megjegyzések",
|
|
||||||
"LabelNotFinished": "Nem befejezett",
|
"LabelNotFinished": "Nem befejezett",
|
||||||
|
"LabelNotStarted": "Nem indult el",
|
||||||
|
"LabelNotes": "Megjegyzések",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL(ek)",
|
"LabelNotificationAppriseURL": "Apprise URL(ek)",
|
||||||
"LabelNotificationAvailableVariables": "Elérhető változók",
|
"LabelNotificationAvailableVariables": "Elérhető változók",
|
||||||
"LabelNotificationBodyTemplate": "Törzs sablon",
|
"LabelNotificationBodyTemplate": "Törzs sablon",
|
||||||
"LabelNotificationEvent": "Értesítési esemény",
|
"LabelNotificationEvent": "Értesítési esemény",
|
||||||
|
"LabelNotificationTitleTemplate": "Cím sablon",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Maximális sikertelen próbálkozások",
|
"LabelNotificationsMaxFailedAttempts": "Maximális sikertelen próbálkozások",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Az értesítések akkor kerülnek letiltásra, ha ennyiszer nem sikerül elküldeni őket",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Az értesítések akkor kerülnek letiltásra, ha ennyiszer nem sikerül elküldeni őket",
|
||||||
"LabelNotificationsMaxQueueSize": "Maximális értesítési események sorának mérete",
|
"LabelNotificationsMaxQueueSize": "Maximális értesítési események sorának mérete",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Az események korlátozva vannak, hogy másodpercenként 1-szer történjenek. Ha a sor maximális méretű, akkor az események figyelmen kívül lesznek hagyva. Ez megakadályozza az értesítések spamelését.",
|
"LabelNotificationsMaxQueueSizeHelp": "Az események korlátozva vannak, hogy másodpercenként 1-szer történjenek. Ha a sor maximális méretű, akkor az események figyelmen kívül lesznek hagyva. Ez megakadályozza az értesítések spamelését.",
|
||||||
"LabelNotificationTitleTemplate": "Cím sablon",
|
|
||||||
"LabelNotStarted": "Nem indult el",
|
|
||||||
"LabelNumberOfBooks": "Könyvek száma",
|
"LabelNumberOfBooks": "Könyvek száma",
|
||||||
"LabelNumberOfEpisodes": "Epizódok száma",
|
"LabelNumberOfEpisodes": "Epizódok száma",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Feltölthet",
|
"LabelPermissionsUpload": "Feltölthet",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Fénykép útvonal/URL",
|
"LabelPhotoPathURL": "Fénykép útvonal/URL",
|
||||||
"LabelPlaylists": "Lejátszási listák",
|
|
||||||
"LabelPlayMethod": "Lejátszási módszer",
|
"LabelPlayMethod": "Lejátszási módszer",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Lejátszási listák",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcastok",
|
|
||||||
"LabelPodcastSearchRegion": "Podcast keresési régió",
|
"LabelPodcastSearchRegion": "Podcast keresési régió",
|
||||||
"LabelPodcastType": "Podcast típus",
|
"LabelPodcastType": "Podcast típus",
|
||||||
|
"LabelPodcasts": "Podcastok",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Figyelmen kívül hagyandó előtagok (nem érzékeny a kis- és nagybetűkre)",
|
"LabelPrefixesToIgnore": "Figyelmen kívül hagyandó előtagok (nem érzékeny a kis- és nagybetűkre)",
|
||||||
"LabelPreventIndexing": "A hírcsatorna indexelésének megakadályozása az iTunes és a Google podcast könyvtáraiban",
|
"LabelPreventIndexing": "A hírcsatorna indexelésének megakadályozása az iTunes és a Google podcast könyvtáraiban",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Haladás",
|
"LabelProgress": "Haladás",
|
||||||
"LabelProvider": "Szolgáltató",
|
"LabelProvider": "Szolgáltató",
|
||||||
"LabelPubDate": "Kiadás dátuma",
|
"LabelPubDate": "Kiadás dátuma",
|
||||||
"LabelPublisher": "Kiadó",
|
|
||||||
"LabelPublishYear": "Kiadás éve",
|
"LabelPublishYear": "Kiadás éve",
|
||||||
"LabelRead": "Olvasás",
|
"LabelPublisher": "Kiadó",
|
||||||
"LabelReadAgain": "Újraolvasás",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "E-könyv olvasása haladás nélkül",
|
|
||||||
"LabelRecentlyAdded": "Nemrég hozzáadva",
|
|
||||||
"LabelRecentSeries": "Legutóbbi sorozatok",
|
|
||||||
"LabelRecommended": "Ajánlott",
|
|
||||||
"LabelRedo": "Újra",
|
|
||||||
"LabelRegion": "Régió",
|
|
||||||
"LabelReleaseDate": "Megjelenés dátuma",
|
|
||||||
"LabelRemoveCover": "Borító eltávolítása",
|
|
||||||
"LabelRowsPerPage": "Sorok száma oldalanként",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Egyéni tulajdonos e-mail",
|
"LabelRSSFeedCustomOwnerEmail": "Egyéni tulajdonos e-mail",
|
||||||
"LabelRSSFeedCustomOwnerName": "Egyéni tulajdonos neve",
|
"LabelRSSFeedCustomOwnerName": "Egyéni tulajdonos neve",
|
||||||
"LabelRSSFeedOpen": "RSS hírcsatorna nyitva",
|
"LabelRSSFeedOpen": "RSS hírcsatorna nyitva",
|
||||||
"LabelRSSFeedPreventIndexing": "Indexelés megakadályozása",
|
"LabelRSSFeedPreventIndexing": "Indexelés megakadályozása",
|
||||||
"LabelRSSFeedSlug": "RSS hírcsatorna slug",
|
"LabelRSSFeedSlug": "RSS hírcsatorna slug",
|
||||||
"LabelRSSFeedURL": "RSS hírcsatorna URL",
|
"LabelRSSFeedURL": "RSS hírcsatorna URL",
|
||||||
|
"LabelRead": "Olvasás",
|
||||||
|
"LabelReadAgain": "Újraolvasás",
|
||||||
|
"LabelReadEbookWithoutProgress": "E-könyv olvasása haladás nélkül",
|
||||||
|
"LabelRecentSeries": "Legutóbbi sorozatok",
|
||||||
|
"LabelRecentlyAdded": "Nemrég hozzáadva",
|
||||||
|
"LabelRecommended": "Ajánlott",
|
||||||
|
"LabelRedo": "Újra",
|
||||||
|
"LabelRegion": "Régió",
|
||||||
|
"LabelReleaseDate": "Megjelenés dátuma",
|
||||||
|
"LabelRemoveCover": "Borító eltávolítása",
|
||||||
|
"LabelRowsPerPage": "Sorok száma oldalanként",
|
||||||
"LabelSearchTerm": "Keresési kifejezés",
|
"LabelSearchTerm": "Keresési kifejezés",
|
||||||
"LabelSearchTitle": "Cím keresése",
|
"LabelSearchTitle": "Cím keresése",
|
||||||
"LabelSearchTitleOrASIN": "Cím vagy ASIN keresése",
|
"LabelSearchTitleOrASIN": "Cím vagy ASIN keresése",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Alvásidőzítő",
|
"LabelSleepTimer": "Alvásidőzítő",
|
||||||
"LabelSlug": "Rövid cím",
|
"LabelSlug": "Rövid cím",
|
||||||
"LabelStart": "Kezdés",
|
"LabelStart": "Kezdés",
|
||||||
|
"LabelStartTime": "Kezdési idő",
|
||||||
"LabelStarted": "Elkezdődött",
|
"LabelStarted": "Elkezdődött",
|
||||||
"LabelStartedAt": "Kezdés ideje",
|
"LabelStartedAt": "Kezdés ideje",
|
||||||
"LabelStartTime": "Kezdési idő",
|
|
||||||
"LabelStatsAudioTracks": "Audiósávok",
|
"LabelStatsAudioTracks": "Audiósávok",
|
||||||
"LabelStatsAuthors": "Szerzők",
|
"LabelStatsAuthors": "Szerzők",
|
||||||
"LabelStatsBestDay": "Legjobb nap",
|
"LabelStatsBestDay": "Legjobb nap",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Ismeretlen",
|
"LabelUnknown": "Ismeretlen",
|
||||||
"LabelUpdateCover": "Borító frissítése",
|
"LabelUpdateCover": "Borító frissítése",
|
||||||
"LabelUpdateCoverHelp": "Lehetővé teszi a meglévő borítók felülírását a kiválasztott könyveknél, amikor találatot talál",
|
"LabelUpdateCoverHelp": "Lehetővé teszi a meglévő borítók felülírását a kiválasztott könyveknél, amikor találatot talál",
|
||||||
"LabelUpdatedAt": "Frissítve",
|
|
||||||
"LabelUpdateDetails": "Részletek frissítése",
|
"LabelUpdateDetails": "Részletek frissítése",
|
||||||
"LabelUpdateDetailsHelp": "Lehetővé teszi a meglévő részletek felülírását a kiválasztott könyveknél, amikor találatot talál",
|
"LabelUpdateDetailsHelp": "Lehetővé teszi a meglévő részletek felülírását a kiválasztott könyveknél, amikor találatot talál",
|
||||||
|
"LabelUpdatedAt": "Frissítve",
|
||||||
"LabelUploaderDragAndDrop": "Fájlok vagy mappák húzása és elengedése",
|
"LabelUploaderDragAndDrop": "Fájlok vagy mappák húzása és elengedése",
|
||||||
"LabelUploaderDropFiles": "Fájlok elengedése",
|
"LabelUploaderDropFiles": "Fájlok elengedése",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Cím, szerző és sorozat automatikus lekérése",
|
"LabelUploaderItemFetchMetadataHelp": "Cím, szerző és sorozat automatikus lekérése",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "A biztonsági másolatok tartalmazzák a felhasználókat, a felhasználói haladást, a könyvtári elem részleteit, a szerver beállításait és a képeket, amelyek a <code>/metadata/items</code> és <code>/metadata/authors</code> mappákban vannak tárolva. A biztonsági másolatok <strong>nem</strong> tartalmazzák a könyvtári mappákban tárolt fájlokat.",
|
"MessageBackupsDescription": "A biztonsági másolatok tartalmazzák a felhasználókat, a felhasználói haladást, a könyvtári elem részleteit, a szerver beállításait és a képeket, amelyek a <code>/metadata/items</code> és <code>/metadata/authors</code> mappákban vannak tárolva. A biztonsági másolatok <strong>nem</strong> tartalmazzák a könyvtári mappákban tárolt fájlokat.",
|
||||||
"MessageBatchQuickMatchDescription": "A Gyors egyeztetés megpróbálja hozzáadni a hiányzó borítókat és metaadatokat a kiválasztott elemekhez. Engedélyezze az alábbi opciókat, hogy a Gyors egyeztetés felülírhassa a meglévő borítókat és/vagy metaadatokat.",
|
"MessageBatchQuickMatchDescription": "A Gyors egyeztetés megpróbálja hozzáadni a hiányzó borítókat és metaadatokat a kiválasztott elemekhez. Engedélyezze az alábbi opciókat, hogy a Gyors egyeztetés felülírhassa a meglévő borítókat és/vagy metaadatokat.",
|
||||||
"MessageBookshelfNoCollections": "Még nem készített gyűjteményeket",
|
"MessageBookshelfNoCollections": "Még nem készített gyűjteményeket",
|
||||||
"MessageBookshelfNoResultsForFilter": "Nincs eredmény a \"{0}: {1}\" szűrőre",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Nincsenek nyitott RSS hírcsatornák",
|
"MessageBookshelfNoRSSFeeds": "Nincsenek nyitott RSS hírcsatornák",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Nincs eredmény a \"{0}: {1}\" szűrőre",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "Nincsenek sorozatai",
|
"MessageBookshelfNoSeries": "Nincsenek sorozatai",
|
||||||
"MessageChapterEndIsAfter": "A fejezet vége a hangoskönyv végét követi",
|
"MessageChapterEndIsAfter": "A fejezet vége a hangoskönyv végét követi",
|
||||||
"MessageChapterErrorFirstNotZero": "Az első fejezetnek 0:00-kor kell kezdődnie",
|
"MessageChapterErrorFirstNotZero": "Az első fejezetnek 0:00-kor kell kezdődnie",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Biztosan meg szeretné jelölni a sorozat összes könyvét befejezettnek?",
|
"MessageConfirmMarkSeriesFinished": "Biztosan meg szeretné jelölni a sorozat összes könyvét befejezettnek?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Biztosan meg szeretné jelölni a sorozat összes könyvét nem befejezettnek?",
|
"MessageConfirmMarkSeriesNotFinished": "Biztosan meg szeretné jelölni a sorozat összes könyvét nem befejezettnek?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Figyelem! A Gyors beágyazás nem készít biztonsági másolatot az audiofájlokról. Győződjön meg arról, hogy van biztonsági másolata az audiofájlokról. <br><br>Szeretné folytatni?",
|
"MessageConfirmQuickEmbed": "Figyelem! A Gyors beágyazás nem készít biztonsági másolatot az audiofájlokról. Győződjön meg arról, hogy van biztonsági másolata az audiofájlokról. <br><br>Szeretné folytatni?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Biztosan újra szeretné szkennelni a(z) {0} elemet?",
|
||||||
"MessageConfirmRemoveAllChapters": "Biztosan eltávolítja az összes fejezetet?",
|
"MessageConfirmRemoveAllChapters": "Biztosan eltávolítja az összes fejezetet?",
|
||||||
"MessageConfirmRemoveAuthor": "Biztosan eltávolítja a(z) \"{0}\" szerzőt?",
|
"MessageConfirmRemoveAuthor": "Biztosan eltávolítja a(z) \"{0}\" szerzőt?",
|
||||||
"MessageConfirmRemoveCollection": "Biztosan eltávolítja a(z) \"{0}\" gyűjteményt?",
|
"MessageConfirmRemoveCollection": "Biztosan eltávolítja a(z) \"{0}\" gyűjteményt?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Biztosan át szeretné nevezni a(z) \"{0}\" címkét \"{1}\"-re az összes elemnél?",
|
"MessageConfirmRenameTag": "Biztosan át szeretné nevezni a(z) \"{0}\" címkét \"{1}\"-re az összes elemnél?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Megjegyzés: Ez a címke már létezik, így össze lesznek vonva.",
|
"MessageConfirmRenameTagMergeNote": "Megjegyzés: Ez a címke már létezik, így össze lesznek vonva.",
|
||||||
"MessageConfirmRenameTagWarning": "Figyelem! Egy hasonló, de eltérő nagybetűkkel rendelkező címke már létezik \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Figyelem! Egy hasonló, de eltérő nagybetűkkel rendelkező címke már létezik \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Biztosan újra szeretné szkennelni a(z) {0} elemet?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Biztosan el szeretné küldeni a(z) {0} e-könyvet a(z) \"{1}\" eszközre?",
|
"MessageConfirmSendEbookToDevice": "Biztosan el szeretné küldeni a(z) {0} e-könyvet a(z) \"{1}\" eszközre?",
|
||||||
"MessageDownloadingEpisode": "Epizód letöltése",
|
"MessageDownloadingEpisode": "Epizód letöltése",
|
||||||
"MessageDragFilesIntoTrackOrder": "Húzza a fájlokat a helyes sávrendbe",
|
"MessageDragFilesIntoTrackOrder": "Húzza a fájlokat a helyes sávrendbe",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Nincsenek sorozatok",
|
"MessageNoSeries": "Nincsenek sorozatok",
|
||||||
"MessageNoTags": "Nincsenek címkék",
|
"MessageNoTags": "Nincsenek címkék",
|
||||||
"MessageNoTasksRunning": "Nincsenek futó feladatok",
|
"MessageNoTasksRunning": "Nincsenek futó feladatok",
|
||||||
"MessageNotYetImplemented": "Még nem implementált",
|
|
||||||
"MessageNoUpdateNecessary": "Nincs szükség frissítésre",
|
"MessageNoUpdateNecessary": "Nincs szükség frissítésre",
|
||||||
"MessageNoUpdatesWereNecessary": "Nem volt szükség frissítésekre",
|
"MessageNoUpdatesWereNecessary": "Nem volt szükség frissítésekre",
|
||||||
"MessageNoUserPlaylists": "Nincsenek felhasználói lejátszási listák",
|
"MessageNoUserPlaylists": "Nincsenek felhasználói lejátszási listák",
|
||||||
|
"MessageNotYetImplemented": "Még nem implementált",
|
||||||
"MessageOr": "vagy",
|
"MessageOr": "vagy",
|
||||||
"MessagePauseChapter": "Fejezet lejátszásának szüneteltetése",
|
"MessagePauseChapter": "Fejezet lejátszásának szüneteltetése",
|
||||||
"MessagePlayChapter": "Fejezet elejének meghallgatása",
|
"MessagePlayChapter": "Fejezet elejének meghallgatása",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Lejátszási lista frissítve",
|
"ToastPlaylistUpdateSuccess": "Lejátszási lista frissítve",
|
||||||
"ToastPodcastCreateFailed": "Podcast létrehozása sikertelen",
|
"ToastPodcastCreateFailed": "Podcast létrehozása sikertelen",
|
||||||
"ToastPodcastCreateSuccess": "Podcast sikeresen létrehozva",
|
"ToastPodcastCreateSuccess": "Podcast sikeresen létrehozva",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Tétel eltávolítása a gyűjteményből sikertelen",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Tétel eltávolítva a gyűjteményből",
|
|
||||||
"ToastRSSFeedCloseFailed": "RSS feed bezárása sikertelen",
|
"ToastRSSFeedCloseFailed": "RSS feed bezárása sikertelen",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS feed bezárva",
|
"ToastRSSFeedCloseSuccess": "RSS feed bezárva",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Tétel eltávolítása a gyűjteményből sikertelen",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Tétel eltávolítva a gyűjteményből",
|
||||||
"ToastSendEbookToDeviceFailed": "E-könyv küldése az eszközre sikertelen",
|
"ToastSendEbookToDeviceFailed": "E-könyv küldése az eszközre sikertelen",
|
||||||
"ToastSendEbookToDeviceSuccess": "E-könyv elküldve az eszközre \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "E-könyv elküldve az eszközre \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Sorozat frissítése sikertelen",
|
"ToastSeriesUpdateFailed": "Sorozat frissítése sikertelen",
|
||||||
|
|||||||
+161
-148
@@ -9,15 +9,16 @@
|
|||||||
"ButtonApply": "Applica",
|
"ButtonApply": "Applica",
|
||||||
"ButtonApplyChapters": "Applica",
|
"ButtonApplyChapters": "Applica",
|
||||||
"ButtonAuthors": "Autori",
|
"ButtonAuthors": "Autori",
|
||||||
|
"ButtonBack": "Indietro",
|
||||||
"ButtonBrowseForFolder": "Per Cartella",
|
"ButtonBrowseForFolder": "Per Cartella",
|
||||||
"ButtonCancel": "Cancella",
|
"ButtonCancel": "Annulla",
|
||||||
"ButtonCancelEncode": "Ferma la codifica",
|
"ButtonCancelEncode": "Ferma la codifica",
|
||||||
"ButtonChangeRootPassword": "Cambia la Password di root",
|
"ButtonChangeRootPassword": "Cambia la Password di root",
|
||||||
"ButtonCheckAndDownloadNewEpisodes": "Controlla & scarica i nuovi episodi",
|
"ButtonCheckAndDownloadNewEpisodes": "Controlla & scarica i nuovi episodi",
|
||||||
"ButtonChooseAFolder": "Seleziona la Cartella",
|
"ButtonChooseAFolder": "Seleziona la Cartella",
|
||||||
"ButtonChooseFiles": "Seleziona i File",
|
"ButtonChooseFiles": "Seleziona i File",
|
||||||
"ButtonClearFilter": "Elimina Filtri",
|
"ButtonClearFilter": "Elimina filtri",
|
||||||
"ButtonCloseFeed": "Chudi i Feed",
|
"ButtonCloseFeed": "Chiudi flusso",
|
||||||
"ButtonCollections": "Raccolte",
|
"ButtonCollections": "Raccolte",
|
||||||
"ButtonConfigureScanner": "Configura Scanner",
|
"ButtonConfigureScanner": "Configura Scanner",
|
||||||
"ButtonCreate": "Crea",
|
"ButtonCreate": "Crea",
|
||||||
@@ -30,47 +31,46 @@
|
|||||||
"ButtonForceReScan": "Forza Re-Scan",
|
"ButtonForceReScan": "Forza Re-Scan",
|
||||||
"ButtonFullPath": "Percorso Completo",
|
"ButtonFullPath": "Percorso Completo",
|
||||||
"ButtonHide": "Nascondi",
|
"ButtonHide": "Nascondi",
|
||||||
"ButtonHome": "Home",
|
"ButtonHome": "Pagina principale",
|
||||||
"ButtonIssues": "Errori",
|
"ButtonIssues": "Errori",
|
||||||
"ButtonJumpBackward": "Salta indietro",
|
"ButtonJumpBackward": "Salta indietro",
|
||||||
"ButtonJumpForward": "Salta Avanti",
|
"ButtonJumpForward": "Salta Avanti",
|
||||||
"ButtonLatest": "Ultimi",
|
"ButtonLatest": "Ultimi",
|
||||||
"ButtonLibrary": "Libreria",
|
"ButtonLibrary": "Biblioteca",
|
||||||
"ButtonLogout": "Disconnetti",
|
"ButtonLogout": "Disconnetti",
|
||||||
"ButtonLookup": "Consulta",
|
"ButtonLookup": "Consulta",
|
||||||
"ButtonManageTracks": "Gestisci le Tracce",
|
"ButtonManageTracks": "Gestisci le Tracce",
|
||||||
"ButtonMapChapterTitles": "Titoli dei Capitoli",
|
"ButtonMapChapterTitles": "Titoli dei Capitoli",
|
||||||
"ButtonMatchAllAuthors": "Aggiungi metadata agli Autori",
|
"ButtonMatchAllAuthors": "Aggiungi metadata agli Autori",
|
||||||
"ButtonMatchBooks": "Aggiungi metadata della Libreria",
|
"ButtonMatchBooks": "Aggiungi metadata della Libreria",
|
||||||
"ButtonNevermind": "Nevermind",
|
"ButtonNevermind": "Ingnora",
|
||||||
"ButtonNext": "Prossimo",
|
"ButtonNext": "Prossimo",
|
||||||
"ButtonNextChapter": "Prossimo Capitolo",
|
"ButtonNextChapter": "Prossimo Capitolo",
|
||||||
"ButtonOk": "Ok",
|
"ButtonOk": "Ok",
|
||||||
"ButtonOpenFeed": "Apri Feed",
|
"ButtonOpenFeed": "Apri il flusso",
|
||||||
"ButtonOpenManager": "Apri Manager",
|
"ButtonOpenManager": "Apri Manager",
|
||||||
"ButtonPause": "Pausa",
|
"ButtonPause": "Pausa",
|
||||||
"ButtonPlay": "Play",
|
"ButtonPlay": "Riproduci",
|
||||||
"ButtonPlaying": "In Riproduzione",
|
"ButtonPlaying": "In riproduzione",
|
||||||
"ButtonPlaylists": "Playlists",
|
"ButtonPlaylists": "Playlist",
|
||||||
"ButtonPrevious": "Precendente",
|
"ButtonPrevious": "Precendente",
|
||||||
"ButtonPreviousChapter": "Capitolo Precendente",
|
"ButtonPreviousChapter": "Capitolo Precendente",
|
||||||
"ButtonPurgeAllCache": "Elimina tutta la Cache",
|
"ButtonPurgeAllCache": "Elimina tutta la Cache",
|
||||||
"ButtonPurgeItemsCache": "Elimina la Cache selezionata",
|
"ButtonPurgeItemsCache": "Elimina la Cache selezionata",
|
||||||
"ButtonPurgeMediaProgress": "Elimina info dei media ascoltati",
|
|
||||||
"ButtonQueueAddItem": "Aggiungi alla Coda",
|
"ButtonQueueAddItem": "Aggiungi alla Coda",
|
||||||
"ButtonQueueRemoveItem": "Rimuovi dalla Coda",
|
"ButtonQueueRemoveItem": "Rimuovi dalla Coda",
|
||||||
"ButtonQuickMatch": "Controlla Metadata Auto",
|
"ButtonQuickMatch": "Controlla Metadata Auto",
|
||||||
|
"ButtonReScan": "Ri-scansiona",
|
||||||
"ButtonRead": "Leggi",
|
"ButtonRead": "Leggi",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Leggi di Meno",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Leggi di Più",
|
||||||
"ButtonRefresh": "Refresh",
|
"ButtonRefresh": "Aggiorna",
|
||||||
"ButtonRemove": "Rimuovi",
|
"ButtonRemove": "Rimuovi",
|
||||||
"ButtonRemoveAll": "Rimuovi Tutto",
|
"ButtonRemoveAll": "Rimuovi Tutto",
|
||||||
"ButtonRemoveAllLibraryItems": "Rimuovi tutto il contenuto della libreria",
|
"ButtonRemoveAllLibraryItems": "Rimuovi tutto il contenuto della libreria",
|
||||||
"ButtonRemoveFromContinueListening": "Rimuovi per proseguire l'ascolto",
|
"ButtonRemoveFromContinueListening": "Rimuovi per proseguire l'ascolto",
|
||||||
"ButtonRemoveFromContinueReading": "Rimuovi per proseguire la lettura",
|
"ButtonRemoveFromContinueReading": "Rimuovi per proseguire la lettura",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Rimuovi la Serie per Continuarla",
|
"ButtonRemoveSeriesFromContinueSeries": "Rimuovi la Serie per Continuarla",
|
||||||
"ButtonReScan": "Ri-scansiona",
|
|
||||||
"ButtonReset": "Reset",
|
"ButtonReset": "Reset",
|
||||||
"ButtonResetToDefault": "Ripristino di default",
|
"ButtonResetToDefault": "Ripristino di default",
|
||||||
"ButtonRestore": "Ripristina",
|
"ButtonRestore": "Ripristina",
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
"ButtonSelectFolderPath": "Seleziona percorso cartella",
|
"ButtonSelectFolderPath": "Seleziona percorso cartella",
|
||||||
"ButtonSeries": "Serie",
|
"ButtonSeries": "Serie",
|
||||||
"ButtonSetChaptersFromTracks": "Impostare i capitoli dalle tracce",
|
"ButtonSetChaptersFromTracks": "Impostare i capitoli dalle tracce",
|
||||||
"ButtonShare": "Share",
|
"ButtonShare": "Condividi",
|
||||||
"ButtonShiftTimes": "Ricerca veloce",
|
"ButtonShiftTimes": "Ricerca veloce",
|
||||||
"ButtonShow": "Mostra",
|
"ButtonShow": "Mostra",
|
||||||
"ButtonStartM4BEncode": "Inizia L'Encode del M4B",
|
"ButtonStartM4BEncode": "Inizia L'Encode del M4B",
|
||||||
@@ -97,41 +97,42 @@
|
|||||||
"ButtonUserDelete": "Cancella Utente {0}",
|
"ButtonUserDelete": "Cancella Utente {0}",
|
||||||
"ButtonUserEdit": "Modifica Utente {0}",
|
"ButtonUserEdit": "Modifica Utente {0}",
|
||||||
"ButtonViewAll": "Mostra Tutto",
|
"ButtonViewAll": "Mostra Tutto",
|
||||||
"ButtonYes": "Si",
|
"ButtonYes": "Sì",
|
||||||
"ErrorUploadFetchMetadataAPI": "Errore Recupero metadati",
|
"ErrorUploadFetchMetadataAPI": "Errore Recupero metadati",
|
||||||
"ErrorUploadFetchMetadataNoResults": "Impossibile recuperare i metadati: prova a modificate il titolo e/o l'autore",
|
"ErrorUploadFetchMetadataNoResults": "Impossibile recuperare i metadati: prova a modificate il titolo e/o l'autore",
|
||||||
"ErrorUploadLacksTitle": "Deve avere un titolo",
|
"ErrorUploadLacksTitle": "Deve avere un titolo",
|
||||||
"HeaderAccount": "Account",
|
"HeaderAccount": "Account",
|
||||||
"HeaderAdvanced": "Avanzate",
|
"HeaderAdvanced": "Avanzate",
|
||||||
"HeaderAppriseNotificationSettings": "Apprendi le impostazioni di Notifica",
|
"HeaderAppriseNotificationSettings": "Apprendi le impostazioni di Notifica",
|
||||||
|
"HeaderAudioTracks": "Tracce audio",
|
||||||
"HeaderAudiobookTools": "Utilità Audiobook File Management",
|
"HeaderAudiobookTools": "Utilità Audiobook File Management",
|
||||||
"HeaderAudioTracks": "Tracce Audio",
|
|
||||||
"HeaderAuthentication": "Authenticazione",
|
"HeaderAuthentication": "Authenticazione",
|
||||||
"HeaderBackups": "Backup",
|
"HeaderBackups": "Backup",
|
||||||
"HeaderChangePassword": "Cambia Password",
|
"HeaderChangePassword": "Cambia Password",
|
||||||
"HeaderChapters": "Capitoli",
|
"HeaderChapters": "Capitoli",
|
||||||
"HeaderChooseAFolder": "Seleziona la cartella",
|
"HeaderChooseAFolder": "Seleziona la cartella",
|
||||||
"HeaderCollection": "Raccolta",
|
"HeaderCollection": "Raccolta",
|
||||||
"HeaderCollectionItems": "Elementi della Raccolta",
|
"HeaderCollectionItems": "Elementi della raccolta",
|
||||||
"HeaderCover": "Cover",
|
"HeaderCover": "Cover",
|
||||||
"HeaderCurrentDownloads": "Download Correnti",
|
"HeaderCurrentDownloads": "Download Correnti",
|
||||||
|
"HeaderCustomMessageOnLogin": "Messaggio personalizzato all'accesso",
|
||||||
"HeaderCustomMetadataProviders": "Metadata Providers Personalizzato",
|
"HeaderCustomMetadataProviders": "Metadata Providers Personalizzato",
|
||||||
"HeaderDetails": "Dettagli",
|
"HeaderDetails": "Dettagli",
|
||||||
"HeaderDownloadQueue": "Download coda",
|
"HeaderDownloadQueue": "Download coda",
|
||||||
"HeaderEbookFiles": "Ebook File",
|
"HeaderEbookFiles": "File dei libri",
|
||||||
"HeaderEmail": "Email",
|
"HeaderEmail": "Email",
|
||||||
"HeaderEmailSettings": "Email Settings",
|
"HeaderEmailSettings": "Impostazioni Email",
|
||||||
"HeaderEpisodes": "Episodi",
|
"HeaderEpisodes": "Episodi",
|
||||||
"HeaderEreaderDevices": "Dispositivo Ereader",
|
"HeaderEreaderDevices": "Dispositivo Ereader",
|
||||||
"HeaderEreaderSettings": "Impostazioni Ereader",
|
"HeaderEreaderSettings": "Impostazioni lettore",
|
||||||
"HeaderFiles": "File",
|
"HeaderFiles": "Files",
|
||||||
"HeaderFindChapters": "Trova Capitoli",
|
"HeaderFindChapters": "Trova Capitoli",
|
||||||
"HeaderIgnoredFiles": "File Ignorati",
|
"HeaderIgnoredFiles": "File Ignorati",
|
||||||
"HeaderItemFiles": "Files",
|
"HeaderItemFiles": "Files",
|
||||||
"HeaderItemMetadataUtils": "Utilità Metadata oggetti",
|
"HeaderItemMetadataUtils": "Utilità Metadata oggetti",
|
||||||
"HeaderLastListeningSession": "Ultima sessione di Ascolto",
|
"HeaderLastListeningSession": "Ultima sessione di Ascolto",
|
||||||
"HeaderLatestEpisodes": "Ultimi Episodi",
|
"HeaderLatestEpisodes": "Ultimi Episodi",
|
||||||
"HeaderLibraries": "Librerie",
|
"HeaderLibraries": "Biblioteche",
|
||||||
"HeaderLibraryFiles": "File della Libreria",
|
"HeaderLibraryFiles": "File della Libreria",
|
||||||
"HeaderLibraryStats": "Statistiche Libreria",
|
"HeaderLibraryStats": "Statistiche Libreria",
|
||||||
"HeaderListeningSessions": "Sessioni di Ascolto",
|
"HeaderListeningSessions": "Sessioni di Ascolto",
|
||||||
@@ -147,8 +148,8 @@
|
|||||||
"HeaderNewAccount": "Nuovo Account",
|
"HeaderNewAccount": "Nuovo Account",
|
||||||
"HeaderNewLibrary": "Nuova Libreria",
|
"HeaderNewLibrary": "Nuova Libreria",
|
||||||
"HeaderNotifications": "Notifiche",
|
"HeaderNotifications": "Notifiche",
|
||||||
"HeaderOpenIDConnectAuthentication": "OpenID Connect Authentication",
|
"HeaderOpenIDConnectAuthentication": "Autenticazione OpenID Connect",
|
||||||
"HeaderOpenRSSFeed": "Apri RSS Feed",
|
"HeaderOpenRSSFeed": "Apri il flusso RSS",
|
||||||
"HeaderOtherFiles": "Altri File",
|
"HeaderOtherFiles": "Altri File",
|
||||||
"HeaderPasswordAuthentication": "Password Authentication",
|
"HeaderPasswordAuthentication": "Password Authentication",
|
||||||
"HeaderPermissions": "Permessi",
|
"HeaderPermissions": "Permessi",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Elementi della playlist",
|
"HeaderPlaylistItems": "Elementi della playlist",
|
||||||
"HeaderPodcastsToAdd": "Podcasts da Aggiungere",
|
"HeaderPodcastsToAdd": "Podcasts da Aggiungere",
|
||||||
"HeaderPreviewCover": "Anteprima Cover",
|
"HeaderPreviewCover": "Anteprima Cover",
|
||||||
"HeaderRemoveEpisode": "Rimuovi Episodi",
|
|
||||||
"HeaderRemoveEpisodes": "Rimuovi {0} Episodi",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS Details",
|
"HeaderRSSFeedGeneral": "RSS Details",
|
||||||
"HeaderRSSFeedIsOpen": "RSS Feed è aperto",
|
"HeaderRSSFeedIsOpen": "RSS Feed è aperto",
|
||||||
"HeaderRSSFeeds": "RSS Feeds",
|
"HeaderRSSFeeds": "RSS Feeds",
|
||||||
|
"HeaderRemoveEpisode": "Rimuovi Episodi",
|
||||||
|
"HeaderRemoveEpisodes": "Rimuovi {0} Episodi",
|
||||||
"HeaderSavedMediaProgress": "Progressi salvati",
|
"HeaderSavedMediaProgress": "Progressi salvati",
|
||||||
"HeaderSchedule": "Schedula",
|
"HeaderSchedule": "Schedula",
|
||||||
"HeaderScheduleLibraryScans": "Schedula la scansione della libreria",
|
"HeaderScheduleLibraryScans": "Schedula la scansione della libreria",
|
||||||
@@ -179,7 +180,7 @@
|
|||||||
"HeaderStatsRecentSessions": "Sessioni Recenti",
|
"HeaderStatsRecentSessions": "Sessioni Recenti",
|
||||||
"HeaderStatsTop10Authors": "Top 10 Autori",
|
"HeaderStatsTop10Authors": "Top 10 Autori",
|
||||||
"HeaderStatsTop5Genres": "Top 5 Generi",
|
"HeaderStatsTop5Genres": "Top 5 Generi",
|
||||||
"HeaderTableOfContents": "Tabella dei Contenuti",
|
"HeaderTableOfContents": "Indice",
|
||||||
"HeaderTools": "Strumenti",
|
"HeaderTools": "Strumenti",
|
||||||
"HeaderUpdateAccount": "Aggiorna Account",
|
"HeaderUpdateAccount": "Aggiorna Account",
|
||||||
"HeaderUpdateAuthor": "Aggiorna Autore",
|
"HeaderUpdateAuthor": "Aggiorna Autore",
|
||||||
@@ -187,22 +188,22 @@
|
|||||||
"HeaderUpdateLibrary": "Aggiorna Libreria",
|
"HeaderUpdateLibrary": "Aggiorna Libreria",
|
||||||
"HeaderUsers": "Utenti",
|
"HeaderUsers": "Utenti",
|
||||||
"HeaderYearReview": "Anno {0} in Sintesi",
|
"HeaderYearReview": "Anno {0} in Sintesi",
|
||||||
"HeaderYourStats": "Statistiche Personali",
|
"HeaderYourStats": "Statistiche personali",
|
||||||
"LabelAbridged": "Abbreviato",
|
"LabelAbridged": "Abbreviato",
|
||||||
"LabelAbridgedChecked": "Abridged (checked)",
|
"LabelAbridgedChecked": "Ridotto (selezionato)",
|
||||||
"LabelAbridgedUnchecked": "Unabridged (unchecked)",
|
"LabelAbridgedUnchecked": "Integrale (non selezionato)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "Accessibile da",
|
||||||
"LabelAccountType": "Tipo di Account",
|
"LabelAccountType": "Tipo di Account",
|
||||||
"LabelAccountTypeAdmin": "Admin",
|
"LabelAccountTypeAdmin": "Admin",
|
||||||
"LabelAccountTypeGuest": "Ospite",
|
"LabelAccountTypeGuest": "Ospite",
|
||||||
"LabelAccountTypeUser": "Utente",
|
"LabelAccountTypeUser": "Utente",
|
||||||
"LabelActivity": "Attività",
|
"LabelActivity": "Attività",
|
||||||
"LabelAdded": "Aggiunto",
|
|
||||||
"LabelAddedAt": "Aggiunto il",
|
|
||||||
"LabelAddToCollection": "Aggiungi alla Raccolta",
|
"LabelAddToCollection": "Aggiungi alla Raccolta",
|
||||||
"LabelAddToCollectionBatch": "Aggiungi {0} Libri alla Raccolta",
|
"LabelAddToCollectionBatch": "Aggiungi {0} Libri alla Raccolta",
|
||||||
"LabelAddToPlaylist": "aggiungi alla Playlist",
|
"LabelAddToPlaylist": "Aggiungi alla playlist",
|
||||||
"LabelAddToPlaylistBatch": "Aggiungi {0} file alla Playlist",
|
"LabelAddToPlaylistBatch": "Aggiungi {0} file alla Playlist",
|
||||||
|
"LabelAdded": "Aggiunto",
|
||||||
|
"LabelAddedAt": "Aggiunto il",
|
||||||
"LabelAdminUsersOnly": "Solo utenti Amministratori",
|
"LabelAdminUsersOnly": "Solo utenti Amministratori",
|
||||||
"LabelAll": "Tutti",
|
"LabelAll": "Tutti",
|
||||||
"LabelAllUsers": "Tutti gli Utenti",
|
"LabelAllUsers": "Tutti gli Utenti",
|
||||||
@@ -217,7 +218,7 @@
|
|||||||
"LabelAutoDownloadEpisodes": "Auto Download Episodi",
|
"LabelAutoDownloadEpisodes": "Auto Download Episodi",
|
||||||
"LabelAutoFetchMetadata": "Auto controllo Metadata",
|
"LabelAutoFetchMetadata": "Auto controllo Metadata",
|
||||||
"LabelAutoFetchMetadataHelp": "Recupera i metadati per titolo, autore e serie per semplificare il caricamento. Potrebbe essere necessario abbinare metadati aggiuntivi dopo il caricamento.",
|
"LabelAutoFetchMetadataHelp": "Recupera i metadati per titolo, autore e serie per semplificare il caricamento. Potrebbe essere necessario abbinare metadati aggiuntivi dopo il caricamento.",
|
||||||
"LabelAutoLaunch": "Auto Launch",
|
"LabelAutoLaunch": "Auto Avvio",
|
||||||
"LabelAutoLaunchDescription": "Reindirizzamento automatico al provider di autenticazione quando si accede alla pagina di accesso (percorso di sostituzione manuale <code>/login?autoLaunch=0</code>)",
|
"LabelAutoLaunchDescription": "Reindirizzamento automatico al provider di autenticazione quando si accede alla pagina di accesso (percorso di sostituzione manuale <code>/login?autoLaunch=0</code>)",
|
||||||
"LabelAutoRegister": "Auto Registrazione",
|
"LabelAutoRegister": "Auto Registrazione",
|
||||||
"LabelAutoRegisterDescription": "Crea automaticamente nuovi utenti dopo aver effettuato l'accesso",
|
"LabelAutoRegisterDescription": "Crea automaticamente nuovi utenti dopo aver effettuato l'accesso",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Cambia Password",
|
"LabelChangePassword": "Cambia Password",
|
||||||
"LabelChannels": "Canali",
|
"LabelChannels": "Canali",
|
||||||
|
"LabelChapterTitle": "Titoli dei Capitoli",
|
||||||
"LabelChapters": "Capitoli",
|
"LabelChapters": "Capitoli",
|
||||||
"LabelChaptersFound": "Capitoli Trovati",
|
"LabelChaptersFound": "Capitoli Trovati",
|
||||||
"LabelChapterTitle": "Titoli dei Capitoli",
|
|
||||||
"LabelClickForMoreInfo": "Click per altre Info",
|
"LabelClickForMoreInfo": "Click per altre Info",
|
||||||
"LabelClosePlayer": "Chiudi player",
|
"LabelClosePlayer": "Chiudi player",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -248,7 +249,7 @@
|
|||||||
"LabelConfirmPassword": "Conferma Password",
|
"LabelConfirmPassword": "Conferma Password",
|
||||||
"LabelContinueListening": "Continua ad Ascoltare",
|
"LabelContinueListening": "Continua ad Ascoltare",
|
||||||
"LabelContinueReading": "Continua la Lettura",
|
"LabelContinueReading": "Continua la Lettura",
|
||||||
"LabelContinueSeries": "Continua Serie",
|
"LabelContinueSeries": "Continua serie",
|
||||||
"LabelCover": "Cover",
|
"LabelCover": "Cover",
|
||||||
"LabelCoverImageURL": "Indirizzo della cover URL",
|
"LabelCoverImageURL": "Indirizzo della cover URL",
|
||||||
"LabelCreatedAt": "Creato A",
|
"LabelCreatedAt": "Creato A",
|
||||||
@@ -267,19 +268,21 @@
|
|||||||
"LabelDiscFromFilename": "Disco dal nome file",
|
"LabelDiscFromFilename": "Disco dal nome file",
|
||||||
"LabelDiscFromMetadata": "Disco dal Metadata",
|
"LabelDiscFromMetadata": "Disco dal Metadata",
|
||||||
"LabelDiscover": "Scopri",
|
"LabelDiscover": "Scopri",
|
||||||
"LabelDownload": "Download",
|
"LabelDownload": "Scarica",
|
||||||
"LabelDownloadNEpisodes": "Download {0} episodes",
|
"LabelDownloadNEpisodes": "Download {0} episodi",
|
||||||
"LabelDuration": "Durata",
|
"LabelDuration": "Durata",
|
||||||
"LabelDurationComparisonExactMatch": "(exact match)",
|
"LabelDurationComparisonExactMatch": "(corrispondenza esatta)",
|
||||||
"LabelDurationComparisonLonger": "({0} longer)",
|
"LabelDurationComparisonLonger": "({0} lungo)",
|
||||||
"LabelDurationComparisonShorter": "({0} shorter)",
|
"LabelDurationComparisonShorter": "({0} corto)",
|
||||||
"LabelDurationFound": "Durata Trovata:",
|
"LabelDurationFound": "Durata Trovata:",
|
||||||
"LabelEbook": "Ebook",
|
"LabelEbook": "Libro digitale",
|
||||||
"LabelEbooks": "Ebooks",
|
"LabelEbooks": "Libri digitali",
|
||||||
"LabelEdit": "Modifica",
|
"LabelEdit": "Modifica",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "Da Indirizzo",
|
"LabelEmailSettingsFromAddress": "Da Indirizzo",
|
||||||
"LabelEmailSettingsSecure": "Secure",
|
"LabelEmailSettingsRejectUnauthorized": "Rifiuta i certificati non autorizzati",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "La disattivazione della convalida del certificato SSL può esporre la tua connessione a rischi per la sicurezza, come attacchi man-in-the-middle. Disattiva questa opzione solo se ne comprendi le implicazioni e ti fidi del server di posta a cui ti stai connettendo.",
|
||||||
|
"LabelEmailSettingsSecure": "Sicuro",
|
||||||
"LabelEmailSettingsSecureHelp": "Se vero, la connessione utilizzerà TLS durante la connessione al server. Se false, viene utilizzato TLS se il server supporta l'estensione STARTTLS. Nella maggior parte dei casi impostare questo valore su true se ci si connette alla porta 465. Per la porta 587 o 25 mantenerlo false. (da nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Se vero, la connessione utilizzerà TLS durante la connessione al server. Se false, viene utilizzato TLS se il server supporta l'estensione STARTTLS. Nella maggior parte dei casi impostare questo valore su true se ci si connette alla porta 465. Per la porta 587 o 25 mantenerlo false. (da nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test Indirizzo",
|
"LabelEmailSettingsTestAddress": "Test Indirizzo",
|
||||||
"LabelEmbeddedCover": "Cover Integrata",
|
"LabelEmbeddedCover": "Cover Integrata",
|
||||||
@@ -290,38 +293,39 @@
|
|||||||
"LabelEpisodeType": "Tipo Episodio",
|
"LabelEpisodeType": "Tipo Episodio",
|
||||||
"LabelExample": "Esempio",
|
"LabelExample": "Esempio",
|
||||||
"LabelExplicit": "Esplicito",
|
"LabelExplicit": "Esplicito",
|
||||||
"LabelExplicitChecked": "Explicit (checked)",
|
"LabelExplicitChecked": "Esplicito (selezionato)",
|
||||||
"LabelExplicitUnchecked": "Not Explicit (unchecked)",
|
"LabelExplicitUnchecked": "Non Esplicito (selezionato)",
|
||||||
"LabelFeedURL": "Feed URL",
|
"LabelFeedURL": "URL del flusso",
|
||||||
"LabelFetchingMetadata": "Recupero dei metadati",
|
"LabelFetchingMetadata": "Recupero dei metadati",
|
||||||
"LabelFile": "File",
|
"LabelFile": "File",
|
||||||
"LabelFileBirthtime": "Data Creazione",
|
"LabelFileBirthtime": "Data di creazione",
|
||||||
"LabelFileModified": "Ultima modifica",
|
"LabelFileModified": "Ultima modifica",
|
||||||
"LabelFilename": "Nome File",
|
"LabelFilename": "Nome del file",
|
||||||
"LabelFilterByUser": "Filtro per Utente",
|
"LabelFilterByUser": "Filtro per Utente",
|
||||||
"LabelFindEpisodes": "Trova Episodi",
|
"LabelFindEpisodes": "Trova Episodi",
|
||||||
"LabelFinished": "Finita",
|
"LabelFinished": "Finita",
|
||||||
"LabelFolder": "Cartella",
|
"LabelFolder": "Cartella",
|
||||||
"LabelFolders": "Cartelle",
|
"LabelFolders": "Cartelle",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Grassetto",
|
||||||
|
"LabelFontBoldness": "Grassetto",
|
||||||
"LabelFontFamily": "Font family",
|
"LabelFontFamily": "Font family",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Dimensione Font",
|
"LabelFontScale": "Dimensione font",
|
||||||
"LabelFontStrikethrough": "Strikethrough",
|
"LabelFontStrikethrough": "Barrato",
|
||||||
"LabelFormat": "Formato",
|
"LabelFormat": "Formato",
|
||||||
"LabelGenre": "Genere",
|
"LabelGenre": "Genere",
|
||||||
"LabelGenres": "Generi",
|
"LabelGenres": "Generi",
|
||||||
"LabelHardDeleteFile": "Elimina Definitivamente",
|
"LabelHardDeleteFile": "Elimina Definitivamente",
|
||||||
"LabelHasEbook": "Un ebook",
|
"LabelHasEbook": "Ha un libro",
|
||||||
"LabelHasSupplementaryEbook": "Un ebook Supplementare",
|
"LabelHasSupplementaryEbook": "Ha un libro supplementale",
|
||||||
"LabelHighestPriority": "Priorità Massima",
|
"LabelHighestPriority": "Priorità Massima",
|
||||||
"LabelHost": "Host",
|
"LabelHost": "Host",
|
||||||
"LabelHour": "Ora",
|
"LabelHour": "Ora",
|
||||||
"LabelIcon": "Icona",
|
"LabelIcon": "Icona",
|
||||||
"LabelImageURLFromTheWeb": "Immagine URL da internet",
|
"LabelImageURLFromTheWeb": "Immagine URL da internet",
|
||||||
|
"LabelInProgress": "In corso",
|
||||||
"LabelIncludeInTracklist": "Includi nella Tracklist",
|
"LabelIncludeInTracklist": "Includi nella Tracklist",
|
||||||
"LabelIncomplete": "Incompleta",
|
"LabelIncomplete": "Incompleta",
|
||||||
"LabelInProgress": "In Corso",
|
|
||||||
"LabelInterval": "Intervallo",
|
"LabelInterval": "Intervallo",
|
||||||
"LabelIntervalCustomDailyWeekly": "Personalizza giorni/settimane",
|
"LabelIntervalCustomDailyWeekly": "Personalizza giorni/settimane",
|
||||||
"LabelIntervalEvery12Hours": "Ogni 12 Ore",
|
"LabelIntervalEvery12Hours": "Ogni 12 Ore",
|
||||||
@@ -335,22 +339,24 @@
|
|||||||
"LabelItem": "Oggetti",
|
"LabelItem": "Oggetti",
|
||||||
"LabelLanguage": "Lingua",
|
"LabelLanguage": "Lingua",
|
||||||
"LabelLanguageDefaultServer": "Lingua di Default",
|
"LabelLanguageDefaultServer": "Lingua di Default",
|
||||||
|
"LabelLanguages": "Lingua",
|
||||||
"LabelLastBookAdded": "Ultimo Libro Aggiunto",
|
"LabelLastBookAdded": "Ultimo Libro Aggiunto",
|
||||||
"LabelLastBookUpdated": "Ultimo Libro Aggiornato",
|
"LabelLastBookUpdated": "Ultimo Libro Aggiornato",
|
||||||
"LabelLastSeen": "Ultimi Visti",
|
"LabelLastSeen": "Ultimi Visti",
|
||||||
"LabelLastTime": "Ultima Volta",
|
"LabelLastTime": "Ultima Volta",
|
||||||
"LabelLastUpdate": "Ultimo Aggiornamento",
|
"LabelLastUpdate": "Ultimo Aggiornamento",
|
||||||
"LabelLayout": "Layout",
|
"LabelLayout": "Disposizione",
|
||||||
"LabelLayoutSinglePage": "Pagina Singola",
|
"LabelLayoutSinglePage": "Pagina Singola",
|
||||||
"LabelLayoutSplitPage": "Dividi Pagina",
|
"LabelLayoutSplitPage": "Dividi Pagina",
|
||||||
"LabelLess": "Poco",
|
"LabelLess": "Poco",
|
||||||
"LabelLibrariesAccessibleToUser": "Librerie Accessibili agli Utenti",
|
"LabelLibrariesAccessibleToUser": "Librerie Accessibili agli Utenti",
|
||||||
"LabelLibrary": "Libreria",
|
"LabelLibrary": "Libreria",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Elementi della Library",
|
"LabelLibraryItem": "Elementi della Library",
|
||||||
"LabelLibraryName": "Nome Libreria",
|
"LabelLibraryName": "Nome Libreria",
|
||||||
"LabelLimit": "Limiti",
|
"LabelLimit": "Limiti",
|
||||||
"LabelLineSpacing": "Interlinea",
|
"LabelLineSpacing": "Interlinea",
|
||||||
"LabelListenAgain": "Ri-ascolta",
|
"LabelListenAgain": "Ascolta ancora",
|
||||||
"LabelLogLevelDebug": "Debug",
|
"LabelLogLevelDebug": "Debug",
|
||||||
"LabelLogLevelInfo": "Info",
|
"LabelLogLevelInfo": "Info",
|
||||||
"LabelLogLevelWarn": "Allarme",
|
"LabelLogLevelWarn": "Allarme",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Utilizzato per connettere gli utenti esistenti. Una volta connessi, gli utenti verranno abbinati a un ID univoco dal tuo provider SSO",
|
"LabelMatchExistingUsersByDescription": "Utilizzato per connettere gli utenti esistenti. Una volta connessi, gli utenti verranno abbinati a un ID univoco dal tuo provider SSO",
|
||||||
"LabelMediaPlayer": "Media Player",
|
"LabelMediaPlayer": "Media Player",
|
||||||
"LabelMediaType": "Tipo Media",
|
"LabelMediaType": "Tipo Media",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Le origini di metadati con priorità più alta sovrascriveranno le origini di metadati con priorità inferiore",
|
|
||||||
"LabelMetadataProvider": "Metadata Provider",
|
|
||||||
"LabelMetaTag": "Meta Tag",
|
"LabelMetaTag": "Meta Tag",
|
||||||
"LabelMetaTags": "Meta Tags",
|
"LabelMetaTags": "Meta Tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Le origini di metadati con priorità più alta sovrascriveranno le origini di metadati con priorità inferiore",
|
||||||
|
"LabelMetadataProvider": "Metadata Provider",
|
||||||
"LabelMinute": "Minuto",
|
"LabelMinute": "Minuto",
|
||||||
"LabelMissing": "Altro",
|
"LabelMissing": "Altro",
|
||||||
"LabelMissingEbook": "Non ha ebook",
|
"LabelMissingEbook": "Non ha ebook",
|
||||||
@@ -371,34 +377,35 @@
|
|||||||
"LabelMobileRedirectURIs": "URI di reindirizzamento mobile consentiti",
|
"LabelMobileRedirectURIs": "URI di reindirizzamento mobile consentiti",
|
||||||
"LabelMobileRedirectURIsDescription": "Questa è una lista bianca di URI di reindirizzamento validi per le app mobili. Quello predefinito è <code>audiobookshelf://oauth</code>, che puoi rimuovere o integrare con URI aggiuntivi per l'integrazione di app di terze parti. Utilizzando un asterisco (<code>*</code>) poiché l'unica voce consente qualsiasi URI.",
|
"LabelMobileRedirectURIsDescription": "Questa è una lista bianca di URI di reindirizzamento validi per le app mobili. Quello predefinito è <code>audiobookshelf://oauth</code>, che puoi rimuovere o integrare con URI aggiuntivi per l'integrazione di app di terze parti. Utilizzando un asterisco (<code>*</code>) poiché l'unica voce consente qualsiasi URI.",
|
||||||
"LabelMore": "Molto",
|
"LabelMore": "Molto",
|
||||||
"LabelMoreInfo": "Più Info",
|
"LabelMoreInfo": "Più info",
|
||||||
"LabelName": "Nome",
|
"LabelName": "Nome",
|
||||||
"LabelNarrator": "Narratore",
|
"LabelNarrator": "Narratore",
|
||||||
"LabelNarrators": "Narratori",
|
"LabelNarrators": "Narratori",
|
||||||
"LabelNew": "Nuovo",
|
"LabelNew": "Nuovo",
|
||||||
"LabelNewestAuthors": "Autori Recenti",
|
|
||||||
"LabelNewestEpisodes": "Episodi Recenti",
|
|
||||||
"LabelNewPassword": "Nuova Password",
|
"LabelNewPassword": "Nuova Password",
|
||||||
|
"LabelNewestAuthors": "Nuovi autori",
|
||||||
|
"LabelNewestEpisodes": "Nuovi episodi",
|
||||||
"LabelNextBackupDate": "Data Prossimo Backup",
|
"LabelNextBackupDate": "Data Prossimo Backup",
|
||||||
"LabelNextScheduledRun": "Data prossima esecuzione schedulata",
|
"LabelNextScheduledRun": "Data prossima esecuzione schedulata",
|
||||||
|
"LabelNoCustomMetadataProviders": "Nessun provider di metadati personalizzato",
|
||||||
"LabelNoEpisodesSelected": "Nessun Episodio Selezionato",
|
"LabelNoEpisodesSelected": "Nessun Episodio Selezionato",
|
||||||
|
"LabelNotFinished": "Da completare",
|
||||||
|
"LabelNotStarted": "Non iniziato",
|
||||||
"LabelNotes": "Note",
|
"LabelNotes": "Note",
|
||||||
"LabelNotFinished": "Da Completare",
|
|
||||||
"LabelNotificationAppriseURL": "Apprendi URL(s)",
|
"LabelNotificationAppriseURL": "Apprendi URL(s)",
|
||||||
"LabelNotificationAvailableVariables": "Variabili Selezionabili",
|
"LabelNotificationAvailableVariables": "Variabili Selezionabili",
|
||||||
"LabelNotificationBodyTemplate": "Template del corpo messaggio",
|
"LabelNotificationBodyTemplate": "Template del corpo messaggio",
|
||||||
"LabelNotificationEvent": "Notifiche Eventi",
|
"LabelNotificationEvent": "Notifiche Eventi",
|
||||||
|
"LabelNotificationTitleTemplate": "Template del titolo",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Numero massimo di tentativi falliti",
|
"LabelNotificationsMaxFailedAttempts": "Numero massimo di tentativi falliti",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Le notifiche vengono disabilitate se falliscono molte volte",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Le notifiche vengono disabilitate se falliscono molte volte",
|
||||||
"LabelNotificationsMaxQueueSize": "Coda Massima di notifiche eventi",
|
"LabelNotificationsMaxQueueSize": "Coda Massima di notifiche eventi",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Le notifiche sono limitate per 1 al secondo, per evitare lo spamming le notifiche verrano ignorare se superano la coda",
|
"LabelNotificationsMaxQueueSizeHelp": "Le notifiche sono limitate per 1 al secondo, per evitare lo spamming le notifiche verrano ignorare se superano la coda",
|
||||||
"LabelNotificationTitleTemplate": "Template del titolo",
|
|
||||||
"LabelNotStarted": "Non iniziato",
|
|
||||||
"LabelNumberOfBooks": "Numero di libri",
|
"LabelNumberOfBooks": "Numero di libri",
|
||||||
"LabelNumberOfEpisodes": "# degli episodi",
|
"LabelNumberOfEpisodes": "# degli episodi",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Nome dell'attestazione OpenID che contiene autorizzazioni avanzate per le azioni dell'utente all'interno dell'applicazione che verranno applicate ai ruoli non amministratori (<b>se configurato</b>). Se il reclamo manca nella risposta, l'accesso ad ABS verrà negato. Se manca una singola opzione, verrà trattata come<code>falsa</code>. Assicurati che l'attestazione del provider di identità corrisponda alla struttura prevista:",
|
||||||
"LabelOpenIDClaims": "Leave the following options empty to disable advanced group and permissions assignment, automatically assigning 'User' group then.",
|
"LabelOpenIDClaims": "Lasciare vuote le seguenti opzioni per disabilitare l'assegnazione avanzata di gruppi e autorizzazioni, assegnando quindi automaticamente il gruppo \"Utente\".",
|
||||||
"LabelOpenIDGroupClaimDescription": "Name of the OpenID claim that contains a list of the user's groups. Commonly referred to as <code>groups</code>. <b>If configured</b>, the application will automatically assign roles based on the user's group memberships, provided that these groups are named case-insensitively 'admin', 'user', or 'guest' in the claim. The claim should contain a list, and if a user belongs to multiple groups, the application will assign the role corresponding to the highest level of access. If no group matches, access will be denied.",
|
"LabelOpenIDGroupClaimDescription": "Nome dell'attestazione OpenID che contiene un elenco dei gruppi dell'utente. Comunemente indicato come <code>gruppo</code>. <b>se configurato</b>, l'applicazione assegnerà automaticamente i ruoli in base alle appartenenze ai gruppi dell'utente, a condizione che tali gruppi siano denominati \"admin\", \"utente\" o \"ospite\" senza distinzione tra maiuscole e minuscole nell'attestazione. L'attestazione deve contenere un elenco e, se un utente appartiene a più gruppi, l'applicazione assegnerà il ruolo corrispondente al livello di accesso più alto. Se nessun gruppo corrisponde, l'accesso verrà negato.",
|
||||||
"LabelOpenRSSFeed": "Apri RSS Feed",
|
"LabelOpenRSSFeed": "Apri RSS Feed",
|
||||||
"LabelOverwrite": "Sovrascrivi",
|
"LabelOverwrite": "Sovrascrivi",
|
||||||
"LabelPassword": "Password",
|
"LabelPassword": "Password",
|
||||||
@@ -410,45 +417,47 @@
|
|||||||
"LabelPermissionsDownload": "Può Scaricare",
|
"LabelPermissionsDownload": "Può Scaricare",
|
||||||
"LabelPermissionsUpdate": "Può Aggiornare",
|
"LabelPermissionsUpdate": "Può Aggiornare",
|
||||||
"LabelPermissionsUpload": "Può caricare",
|
"LabelPermissionsUpload": "Può caricare",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Il tuo anno in rassegna ({0})",
|
||||||
"LabelPhotoPathURL": "foto Path/URL",
|
"LabelPhotoPathURL": "foto Path/URL",
|
||||||
"LabelPlaylists": "Playlists",
|
|
||||||
"LabelPlayMethod": "Metodo di riproduzione",
|
"LabelPlayMethod": "Metodo di riproduzione",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Playlists",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Area di ricerca podcast",
|
"LabelPodcastSearchRegion": "Area di ricerca podcast",
|
||||||
"LabelPodcastType": "Tipo di Podcast",
|
"LabelPodcastType": "Tipo di Podcast",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Suffissi da ignorare (specificando maiuscole e minuscole)",
|
"LabelPrefixesToIgnore": "Suffissi da ignorare (specificando maiuscole e minuscole)",
|
||||||
"LabelPreventIndexing": "Impedisci che il tuo feed venga indicizzato da iTunes e dalle directory dei podcast di Google",
|
"LabelPreventIndexing": "Impedisci che il tuo feed venga indicizzato da iTunes e dalle directory dei podcast di Google",
|
||||||
"LabelPrimaryEbook": "Libri Principlae",
|
"LabelPrimaryEbook": "Libri Principlae",
|
||||||
"LabelProgress": "Cominciati",
|
"LabelProgress": "Cominciati",
|
||||||
"LabelProvider": "Provider",
|
"LabelProvider": "Provider",
|
||||||
"LabelPubDate": "Data Pubblicazione",
|
"LabelPubDate": "Data di pubblicazione",
|
||||||
|
"LabelPublishYear": "Anno di pubblicazione",
|
||||||
"LabelPublisher": "Editore",
|
"LabelPublisher": "Editore",
|
||||||
"LabelPublishYear": "Anno Pubblicazione",
|
"LabelPublishers": "Publishers",
|
||||||
|
"LabelRSSFeedCustomOwnerEmail": "E-mail del proprietario personalizzato",
|
||||||
|
"LabelRSSFeedCustomOwnerName": "Nome del proprietario personalizzato",
|
||||||
|
"LabelRSSFeedOpen": "RSS Feed Aperto",
|
||||||
|
"LabelRSSFeedPreventIndexing": "Impedisci l'indicizzazione",
|
||||||
|
"LabelRSSFeedSlug": "Parole chiave del flusso RSS",
|
||||||
|
"LabelRSSFeedURL": "RSS Feed URL",
|
||||||
"LabelRead": "Leggi",
|
"LabelRead": "Leggi",
|
||||||
"LabelReadAgain": "Leggi Ancora",
|
"LabelReadAgain": "Leggi ancora",
|
||||||
"LabelReadEbookWithoutProgress": "Leggi l'ebook senza mantenere i progressi",
|
"LabelReadEbookWithoutProgress": "Leggi l'ebook senza mantenere i progressi",
|
||||||
"LabelRecentlyAdded": "Aggiunti Recentemente",
|
"LabelRecentSeries": "Serie recenti",
|
||||||
"LabelRecentSeries": "Serie Recenti",
|
"LabelRecentlyAdded": "Aggiunti recentemente",
|
||||||
"LabelRecommended": "Raccomandati",
|
"LabelRecommended": "Raccomandati",
|
||||||
"LabelRedo": "Rifai",
|
"LabelRedo": "Rifai",
|
||||||
"LabelRegion": "Regione",
|
"LabelRegion": "Regione",
|
||||||
"LabelReleaseDate": "Data Release",
|
"LabelReleaseDate": "Data Release",
|
||||||
"LabelRemoveCover": "Rimuovi cover",
|
"LabelRemoveCover": "Rimuovi cover",
|
||||||
"LabelRowsPerPage": "Rows per page",
|
"LabelRowsPerPage": "Righe per pagina",
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Email del proprietario personalizzato",
|
|
||||||
"LabelRSSFeedCustomOwnerName": "Nome del proprietario personalizzato",
|
|
||||||
"LabelRSSFeedOpen": "RSS Feed Aperto",
|
|
||||||
"LabelRSSFeedPreventIndexing": "Impedisci l'indicizzazione",
|
|
||||||
"LabelRSSFeedSlug": "RSS Feed Slug",
|
|
||||||
"LabelRSSFeedURL": "RSS Feed URL",
|
|
||||||
"LabelSearchTerm": "Ricerca",
|
"LabelSearchTerm": "Ricerca",
|
||||||
"LabelSearchTitle": "Cerca Titolo",
|
"LabelSearchTitle": "Cerca Titolo",
|
||||||
"LabelSearchTitleOrASIN": "Cerca titolo o ASIN",
|
"LabelSearchTitleOrASIN": "Cerca titolo o ASIN",
|
||||||
"LabelSeason": "Stagione",
|
"LabelSeason": "Stagione",
|
||||||
"LabelSelectAll": "Select all",
|
"LabelSelectAll": "Seleziona tutto",
|
||||||
"LabelSelectAllEpisodes": "Seleziona tutti gli Episodi",
|
"LabelSelectAllEpisodes": "Seleziona tutti gli Episodi",
|
||||||
"LabelSelectEpisodesShowing": "Episodi {0} selezionati",
|
"LabelSelectEpisodesShowing": "Episodi {0} selezionati",
|
||||||
"LabelSelectUsers": "Selezione Utenti",
|
"LabelSelectUsers": "Selezione Utenti",
|
||||||
@@ -458,8 +467,8 @@
|
|||||||
"LabelSeriesName": "Nome Serie",
|
"LabelSeriesName": "Nome Serie",
|
||||||
"LabelSeriesProgress": "Cominciato",
|
"LabelSeriesProgress": "Cominciato",
|
||||||
"LabelServerYearReview": "Anno del server in sintesi({0})",
|
"LabelServerYearReview": "Anno del server in sintesi({0})",
|
||||||
"LabelSetEbookAsPrimary": "Immposta come Primario",
|
"LabelSetEbookAsPrimary": "Imposta come primario",
|
||||||
"LabelSetEbookAsSupplementary": "Imposta come Suplementare",
|
"LabelSetEbookAsSupplementary": "Imposta come suplementare",
|
||||||
"LabelSettingsAudiobooksOnly": "Solo Audiolibri",
|
"LabelSettingsAudiobooksOnly": "Solo Audiolibri",
|
||||||
"LabelSettingsAudiobooksOnlyHelp": "L'abilitazione di questa impostazione ignorerà i file di ebook a meno che non si trovino all'interno di una cartella di audiolibri, nel qual caso verranno impostati come ebook supplementari",
|
"LabelSettingsAudiobooksOnlyHelp": "L'abilitazione di questa impostazione ignorerà i file di ebook a meno che non si trovino all'interno di una cartella di audiolibri, nel qual caso verranno impostati come ebook supplementari",
|
||||||
"LabelSettingsBookshelfViewHelp": "Design con scaffali in legno",
|
"LabelSettingsBookshelfViewHelp": "Design con scaffali in legno",
|
||||||
@@ -471,8 +480,8 @@
|
|||||||
"LabelSettingsEnableWatcher": "Abilita Watcher",
|
"LabelSettingsEnableWatcher": "Abilita Watcher",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "Abilita il controllo cartelle per la libreria",
|
"LabelSettingsEnableWatcherForLibrary": "Abilita il controllo cartelle per la libreria",
|
||||||
"LabelSettingsEnableWatcherHelp": "Abilita l'aggiunta/aggiornamento automatico degli elementi quando vengono rilevate modifiche ai file. *Richiede il riavvio del Server",
|
"LabelSettingsEnableWatcherHelp": "Abilita l'aggiunta/aggiornamento automatico degli elementi quando vengono rilevate modifiche ai file. *Richiede il riavvio del Server",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Consenti contenuti con script negli epub",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Consenti ai file epub di eseguire script. Si consiglia di mantenere questa impostazione disabilitata a meno che non si ritenga attendibile l'origine dei file epub.",
|
||||||
"LabelSettingsExperimentalFeatures": "Opzioni Sperimentali",
|
"LabelSettingsExperimentalFeatures": "Opzioni Sperimentali",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "Funzionalità in fase di sviluppo che potrebbero utilizzare i tuoi feedback e aiutare i test. Fare clic per aprire la discussione github.",
|
"LabelSettingsExperimentalFeaturesHelp": "Funzionalità in fase di sviluppo che potrebbero utilizzare i tuoi feedback e aiutare i test. Fare clic per aprire la discussione github.",
|
||||||
"LabelSettingsFindCovers": "Trova covers",
|
"LabelSettingsFindCovers": "Trova covers",
|
||||||
@@ -481,8 +490,8 @@
|
|||||||
"LabelSettingsHideSingleBookSeriesHelp": "Le serie che hanno un solo libro saranno nascoste dalla pagina della serie e dagli scaffali della home page.",
|
"LabelSettingsHideSingleBookSeriesHelp": "Le serie che hanno un solo libro saranno nascoste dalla pagina della serie e dagli scaffali della home page.",
|
||||||
"LabelSettingsHomePageBookshelfView": "Home page con sfondo legno",
|
"LabelSettingsHomePageBookshelfView": "Home page con sfondo legno",
|
||||||
"LabelSettingsLibraryBookshelfView": "Libreria con sfondo legno",
|
"LabelSettingsLibraryBookshelfView": "Libreria con sfondo legno",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Salta i libri precedenti nella serie Continua",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "The Continue Series home page shelf shows the first book not started in series that have at least one book finished and no books in progress. Enabling this setting will continue series from the furthest completed book instead of the first book not started.",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "Lo scaffale della home page Continua serie mostra il primo libro non iniziato della serie che ha almeno un libro finito e nessun libro in corso. Abilitando questa impostazione le serie continueranno dal libro completato più lontano invece che dal primo libro non iniziato.",
|
||||||
"LabelSettingsParseSubtitles": "Analizza sottotitoli",
|
"LabelSettingsParseSubtitles": "Analizza sottotitoli",
|
||||||
"LabelSettingsParseSubtitlesHelp": "Estrai i sottotitoli dai nomi delle cartelle degli audiolibri. <br> I sottotitoli devono essere separati da \" - \"<br> Per esempio \"Il signore degli anelli - Le due Torri \" avrà il sottotitolo \"Le due Torri\"",
|
"LabelSettingsParseSubtitlesHelp": "Estrai i sottotitoli dai nomi delle cartelle degli audiolibri. <br> I sottotitoli devono essere separati da \" - \"<br> Per esempio \"Il signore degli anelli - Le due Torri \" avrà il sottotitolo \"Le due Torri\"",
|
||||||
"LabelSettingsPreferMatchedMetadata": "Preferisci i metadata trovati",
|
"LabelSettingsPreferMatchedMetadata": "Preferisci i metadata trovati",
|
||||||
@@ -498,45 +507,45 @@
|
|||||||
"LabelSettingsStoreMetadataWithItem": "Archivia i metadata con il file",
|
"LabelSettingsStoreMetadataWithItem": "Archivia i metadata con il file",
|
||||||
"LabelSettingsStoreMetadataWithItemHelp": "Di default, i metadati sono salvati dentro /metadata/items, abilitando questa opzione si memorizzeranno i metadata nella cartella della libreria",
|
"LabelSettingsStoreMetadataWithItemHelp": "Di default, i metadati sono salvati dentro /metadata/items, abilitando questa opzione si memorizzeranno i metadata nella cartella della libreria",
|
||||||
"LabelSettingsTimeFormat": "Formato Ora",
|
"LabelSettingsTimeFormat": "Formato Ora",
|
||||||
"LabelShowAll": "Mostra Tutto",
|
"LabelShowAll": "Mostra tutto",
|
||||||
"LabelShowSeconds": "Show seconds",
|
"LabelShowSeconds": "Mostra i secondi",
|
||||||
"LabelSize": "Dimensione",
|
"LabelSize": "Dimensione",
|
||||||
"LabelSleepTimer": "Sleep timer",
|
"LabelSleepTimer": "Temporizzatore",
|
||||||
"LabelSlug": "Lento",
|
"LabelSlug": "Lento",
|
||||||
"LabelStart": "Inizo",
|
"LabelStart": "Inizo",
|
||||||
|
"LabelStartTime": "Tempo di inizio",
|
||||||
"LabelStarted": "Iniziato",
|
"LabelStarted": "Iniziato",
|
||||||
"LabelStartedAt": "Iniziato al",
|
"LabelStartedAt": "Iniziato al",
|
||||||
"LabelStartTime": "Tempo di inizio",
|
|
||||||
"LabelStatsAudioTracks": "Tracce Audio",
|
"LabelStatsAudioTracks": "Tracce Audio",
|
||||||
"LabelStatsAuthors": "Autori",
|
"LabelStatsAuthors": "Autori",
|
||||||
"LabelStatsBestDay": "Giorno Migliore",
|
"LabelStatsBestDay": "Giorno migliore",
|
||||||
"LabelStatsDailyAverage": "Media giornaliera",
|
"LabelStatsDailyAverage": "Media giornaliera",
|
||||||
"LabelStatsDays": "Giorni",
|
"LabelStatsDays": "Giorni",
|
||||||
"LabelStatsDaysListened": "Giorni di Ascolto",
|
"LabelStatsDaysListened": "Giorni di ascolto",
|
||||||
"LabelStatsHours": "Ore",
|
"LabelStatsHours": "Ore",
|
||||||
"LabelStatsInARow": "Di fila",
|
"LabelStatsInARow": "di fila",
|
||||||
"LabelStatsItemsFinished": "Libri Completati",
|
"LabelStatsItemsFinished": "Libri completati",
|
||||||
"LabelStatsItemsInLibrary": "Libri in Libreria",
|
"LabelStatsItemsInLibrary": "Libri in Libreria",
|
||||||
"LabelStatsMinutes": "Minuti",
|
"LabelStatsMinutes": "minuti",
|
||||||
"LabelStatsMinutesListening": "Ascolto in Minuti",
|
"LabelStatsMinutesListening": "Minuti di ascolto",
|
||||||
"LabelStatsOverallDays": "Giorni Complessivi",
|
"LabelStatsOverallDays": "Giorni Complessivi",
|
||||||
"LabelStatsOverallHours": "Ore Complessive",
|
"LabelStatsOverallHours": "Ore Complessive",
|
||||||
"LabelStatsWeekListening": "Ascolto Settimanale",
|
"LabelStatsWeekListening": "Ascolto settimanale",
|
||||||
"LabelSubtitle": "Sottotitoli",
|
"LabelSubtitle": "Sottotitoli",
|
||||||
"LabelSupportedFileTypes": "Tipi di file Supportati",
|
"LabelSupportedFileTypes": "Tipi di file Supportati",
|
||||||
"LabelTag": "Tag",
|
"LabelTag": "Etichetta",
|
||||||
"LabelTags": "Tags",
|
"LabelTags": "Etichette",
|
||||||
"LabelTagsAccessibleToUser": "Tags permessi agli Utenti",
|
"LabelTagsAccessibleToUser": "Tags permessi agli Utenti",
|
||||||
"LabelTagsNotAccessibleToUser": "Tags non accessibile agli Utenti",
|
"LabelTagsNotAccessibleToUser": "Tags non accessibile agli Utenti",
|
||||||
"LabelTasks": "Processi in esecuzione",
|
"LabelTasks": "Processi in esecuzione",
|
||||||
"LabelTextEditorBulletedList": "Elenco puntato",
|
"LabelTextEditorBulletedList": "Elenco puntato",
|
||||||
"LabelTextEditorLink": "Link",
|
"LabelTextEditorLink": "Link",
|
||||||
"LabelTextEditorNumberedList": "Elenco Numerato",
|
"LabelTextEditorNumberedList": "Elenco Numerato",
|
||||||
"LabelTextEditorUnlink": "Unlink",
|
"LabelTextEditorUnlink": "Scollega",
|
||||||
"LabelTheme": "Tema",
|
"LabelTheme": "Tema",
|
||||||
"LabelThemeDark": "Scuro",
|
"LabelThemeDark": "Scuro",
|
||||||
"LabelThemeLight": "Chiaro",
|
"LabelThemeLight": "Chiaro",
|
||||||
"LabelTimeBase": "Time Base",
|
"LabelTimeBase": "Tempo base",
|
||||||
"LabelTimeListened": "Tempo di Ascolto",
|
"LabelTimeListened": "Tempo di Ascolto",
|
||||||
"LabelTimeListenedToday": "Tempo di Ascolto Oggi",
|
"LabelTimeListenedToday": "Tempo di Ascolto Oggi",
|
||||||
"LabelTimeRemaining": "{0} rimanente",
|
"LabelTimeRemaining": "{0} rimanente",
|
||||||
@@ -558,20 +567,20 @@
|
|||||||
"LabelTracksSingleTrack": "Traccia-singola",
|
"LabelTracksSingleTrack": "Traccia-singola",
|
||||||
"LabelType": "Tipo",
|
"LabelType": "Tipo",
|
||||||
"LabelUnabridged": "Integrale",
|
"LabelUnabridged": "Integrale",
|
||||||
"LabelUndo": "Undo",
|
"LabelUndo": "Annulla",
|
||||||
"LabelUnknown": "Sconosciuto",
|
"LabelUnknown": "Sconosciuto",
|
||||||
"LabelUpdateCover": "Aggiornamento Cover",
|
"LabelUpdateCover": "Aggiornamento Cover",
|
||||||
"LabelUpdateCoverHelp": "Consenti la sovrascrittura delle copertine esistenti per i libri selezionati quando viene trovata una corrispondenza",
|
"LabelUpdateCoverHelp": "Consenti la sovrascrittura delle copertine esistenti per i libri selezionati quando viene trovata una corrispondenza",
|
||||||
"LabelUpdatedAt": "Aggiornato alle",
|
|
||||||
"LabelUpdateDetails": "Dettagli Aggiornamento",
|
"LabelUpdateDetails": "Dettagli Aggiornamento",
|
||||||
"LabelUpdateDetailsHelp": "Consenti la sovrascrittura dei dettagli esistenti per i libri selezionati quando viene individuata una corrispondenza",
|
"LabelUpdateDetailsHelp": "Consenti la sovrascrittura dei dettagli esistenti per i libri selezionati quando viene individuata una corrispondenza",
|
||||||
|
"LabelUpdatedAt": "Aggiornato alle",
|
||||||
"LabelUploaderDragAndDrop": "Drag & drop file o Cartelle",
|
"LabelUploaderDragAndDrop": "Drag & drop file o Cartelle",
|
||||||
"LabelUploaderDropFiles": "Elimina file",
|
"LabelUploaderDropFiles": "Elimina file",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Recupera automaticamente titolo, autore e serie",
|
"LabelUploaderItemFetchMetadataHelp": "Recupera automaticamente titolo, autore e serie",
|
||||||
"LabelUseChapterTrack": "Usa il Capitolo della Traccia",
|
"LabelUseChapterTrack": "Usa il Capitolo della Traccia",
|
||||||
"LabelUseFullTrack": "Usa la traccia totale",
|
"LabelUseFullTrack": "Usa la traccia totale",
|
||||||
"LabelUser": "Utente",
|
"LabelUser": "Utente",
|
||||||
"LabelUsername": "Username",
|
"LabelUsername": "Nome utente",
|
||||||
"LabelValue": "Valore",
|
"LabelValue": "Valore",
|
||||||
"LabelVersion": "Versione",
|
"LabelVersion": "Versione",
|
||||||
"LabelViewBookmarks": "Visualizza i Segnalibri",
|
"LabelViewBookmarks": "Visualizza i Segnalibri",
|
||||||
@@ -579,19 +588,22 @@
|
|||||||
"LabelViewQueue": "Visualizza coda",
|
"LabelViewQueue": "Visualizza coda",
|
||||||
"LabelVolume": "Volume",
|
"LabelVolume": "Volume",
|
||||||
"LabelWeekdaysToRun": "Giorni feriali da eseguire",
|
"LabelWeekdaysToRun": "Giorni feriali da eseguire",
|
||||||
"LabelYearReviewHide": "Hide Year in Review",
|
"LabelYearReviewHide": "Nascondi Anno in rassegna",
|
||||||
"LabelYearReviewShow": "See Year in Review",
|
"LabelYearReviewShow": "Vedi Anno in rassegna",
|
||||||
"LabelYourAudiobookDuration": "La durata dell'audiolibro",
|
"LabelYourAudiobookDuration": "La durata dell'audiolibro",
|
||||||
"LabelYourBookmarks": "I tuoi Preferiti",
|
"LabelYourBookmarks": "I tuoi preferiti",
|
||||||
"LabelYourPlaylists": "le tue Playlist",
|
"LabelYourPlaylists": "le tue Playlist",
|
||||||
"LabelYourProgress": "Completato al",
|
"LabelYourProgress": "Completato al",
|
||||||
"MessageAddToPlayerQueue": "Aggiungi alla coda di riproduzione",
|
"MessageAddToPlayerQueue": "Aggiungi alla coda di riproduzione",
|
||||||
"MessageAppriseDescription": "Per utilizzare questa funzione è necessario disporre di un'istanza di <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> in esecuzione o un'API che gestirà quelle stesse richieste. <br />L'API Url dovrebbe essere il percorso URL completo per inviare la notifica, ad esempio se la tua istanza API è servita cosi .<code>http://192.168.1.1:8337</code> Allora dovrai mettere <code>http://192.168.1.1:8337/notify</code>.",
|
"MessageAppriseDescription": "Per utilizzare questa funzione è necessario disporre di un'istanza di <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> in esecuzione o un'API che gestirà quelle stesse richieste. <br />L'API Url dovrebbe essere il percorso URL completo per inviare la notifica, ad esempio se la tua istanza API è servita cosi .<code>http://192.168.1.1:8337</code> Allora dovrai mettere <code>http://192.168.1.1:8337/notify</code>.",
|
||||||
"MessageBackupsDescription": "I backup includono utenti, progressi degli utenti, dettagli sugli elementi della libreria, impostazioni del server e immagini archiviate in <code>/metadata/items</code> & <code>/metadata/authors</code>. I backup non includono i file archiviati nelle cartelle della libreria.",
|
"MessageBackupsDescription": "I backup includono utenti, progressi degli utenti, dettagli sugli elementi della libreria, impostazioni del server e immagini archiviate in <code>/metadata/items</code> & <code>/metadata/authors</code>. I backup non includono i file archiviati nelle cartelle della libreria.",
|
||||||
|
"MessageBackupsLocationEditNote": "Nota: l'aggiornamento della posizione di backup non sposterà o modificherà i backup esistenti",
|
||||||
|
"MessageBackupsLocationPathEmpty": "Il percorso del backup non può essere vuoto",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match tenterà di aggiungere copertine e metadati mancanti per gli elementi selezionati. Attiva l'opzione per consentire a Quick Match di sovrascrivere copertine e/o metadati esistenti.",
|
"MessageBatchQuickMatchDescription": "Quick Match tenterà di aggiungere copertine e metadati mancanti per gli elementi selezionati. Attiva l'opzione per consentire a Quick Match di sovrascrivere copertine e/o metadati esistenti.",
|
||||||
"MessageBookshelfNoCollections": "Non hai ancora creato nessuna raccolta",
|
"MessageBookshelfNoCollections": "Non hai ancora creato nessuna raccolta",
|
||||||
"MessageBookshelfNoResultsForFilter": "Nessun risultato per il filtro \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Nessun RSS feeds aperto",
|
"MessageBookshelfNoRSSFeeds": "Nessun RSS feeds aperto",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Nessun risultato per il filtro \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "Nessun risultato per la query",
|
||||||
"MessageBookshelfNoSeries": "Non c'è nessuna Serie",
|
"MessageBookshelfNoSeries": "Non c'è nessuna Serie",
|
||||||
"MessageChapterEndIsAfter": "La fine del capitolo è dopo la fine del tuo audiolibro",
|
"MessageChapterEndIsAfter": "La fine del capitolo è dopo la fine del tuo audiolibro",
|
||||||
"MessageChapterErrorFirstNotZero": "Il primo capitolo deve iniziare da 0",
|
"MessageChapterErrorFirstNotZero": "Il primo capitolo deve iniziare da 0",
|
||||||
@@ -611,8 +623,10 @@
|
|||||||
"MessageConfirmMarkAllEpisodesNotFinished": "Sei sicuro di voler contrassegnare tutti gli episodi come non completati?",
|
"MessageConfirmMarkAllEpisodesNotFinished": "Sei sicuro di voler contrassegnare tutti gli episodi come non completati?",
|
||||||
"MessageConfirmMarkSeriesFinished": "Sei sicuro di voler contrassegnare tutti i libri di questa serie come completati?",
|
"MessageConfirmMarkSeriesFinished": "Sei sicuro di voler contrassegnare tutti i libri di questa serie come completati?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Sei sicuro di voler contrassegnare tutti i libri di questa serie come non completati?",
|
"MessageConfirmMarkSeriesNotFinished": "Sei sicuro di voler contrassegnare tutti i libri di questa serie come non completati?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "L'eliminazione della cache eliminerà l'intera directory dei <code>/metadata/cache</code>. <br /><br />Sei sicuro di voler rimuovere la directory della cache?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "L'eliminazione della cache degli elementi eliminerà l'intera directory <code>/metadata/cache/oggetti</code>.<br />Sei sicuro?",
|
||||||
"MessageConfirmQuickEmbed": "Attenzione! L'incorporamento rapido non eseguirà il backup dei file audio. Assicurati di avere un backup dei tuoi file audio. <br><br>Vuoi Continuare?",
|
"MessageConfirmQuickEmbed": "Attenzione! L'incorporamento rapido non eseguirà il backup dei file audio. Assicurati di avere un backup dei tuoi file audio. <br><br>Vuoi Continuare?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Sei sicuro di voler ripetere la scansione? {0} oggetti?",
|
||||||
"MessageConfirmRemoveAllChapters": "Sei sicuro di voler rimuovere tutti i capitoli?",
|
"MessageConfirmRemoveAllChapters": "Sei sicuro di voler rimuovere tutti i capitoli?",
|
||||||
"MessageConfirmRemoveAuthor": "Sei sicuro di voler rimuovere l'autore? \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Sei sicuro di voler rimuovere l'autore? \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Sei sicuro di voler rimuovere la Raccolta \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Sei sicuro di voler rimuovere la Raccolta \"{0}\"?",
|
||||||
@@ -627,15 +641,14 @@
|
|||||||
"MessageConfirmRenameTag": "Sei sicuro di voler rinominare il tag \"{0}\" in \"{1}\" per tutti gli oggetti?",
|
"MessageConfirmRenameTag": "Sei sicuro di voler rinominare il tag \"{0}\" in \"{1}\" per tutti gli oggetti?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Nota: Questo tag esiste già e verrà unito nel vecchio.",
|
"MessageConfirmRenameTagMergeNote": "Nota: Questo tag esiste già e verrà unito nel vecchio.",
|
||||||
"MessageConfirmRenameTagWarning": "Avvertimento! Esiste già un tag simile con un nome simile \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Avvertimento! Esiste già un tag simile con un nome simile \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Sei sicuro di voler ripetere la scansione? {0} oggetti?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Sei sicuro di voler inviare {0} ebook \"{1}\" al Device \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Sei sicuro di voler inviare {0} ebook \"{1}\" al Device \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Download episodio in corso",
|
"MessageDownloadingEpisode": "Scaricamento dell’episodio in corso",
|
||||||
"MessageDragFilesIntoTrackOrder": "Trascina i file nell'ordine di traccia corretto",
|
"MessageDragFilesIntoTrackOrder": "Trascina i file nell'ordine di traccia corretto",
|
||||||
"MessageEmbedFinished": "Incorporamento finito!",
|
"MessageEmbedFinished": "Incorporamento finito!",
|
||||||
"MessageEpisodesQueuedForDownload": "{0} Episodio(i) in coda per il Download",
|
"MessageEpisodesQueuedForDownload": "{0} episodio(i) in coda per lo scaricamento",
|
||||||
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below.",
|
"MessageEreaderDevices": "Per garantire la consegna degli ebook, potrebbe essere necessario aggiungere l'indirizzo e-mail sopra indicato come mittente valido per ciascun dispositivo elencato di seguito.",
|
||||||
"MessageFeedURLWillBe": "Feed URL Saranno {0}",
|
"MessageFeedURLWillBe": "l’URL del flusso sarà {0}",
|
||||||
"MessageFetching": "Recupero Info...",
|
"MessageFetching": "Recupero info…",
|
||||||
"MessageForceReScanDescription": "eseguirà nuovamente la scansione di tutti i file come una nuova scansione. I tag ID3 dei file audio, i file OPF e i file di testo verranno scansionati come nuovi.",
|
"MessageForceReScanDescription": "eseguirà nuovamente la scansione di tutti i file come una nuova scansione. I tag ID3 dei file audio, i file OPF e i file di testo verranno scansionati come nuovi.",
|
||||||
"MessageImportantNotice": "Avviso Importante!",
|
"MessageImportantNotice": "Avviso Importante!",
|
||||||
"MessageInsertChapterBelow": "Inserisci capitolo sotto",
|
"MessageInsertChapterBelow": "Inserisci capitolo sotto",
|
||||||
@@ -643,9 +656,9 @@
|
|||||||
"MessageItemsUpdated": "{0} Oggetti aggiornati",
|
"MessageItemsUpdated": "{0} Oggetti aggiornati",
|
||||||
"MessageJoinUsOn": "Unisciti a noi su",
|
"MessageJoinUsOn": "Unisciti a noi su",
|
||||||
"MessageListeningSessionsInTheLastYear": "{0} sessioni di ascolto nell'ultimo anno",
|
"MessageListeningSessionsInTheLastYear": "{0} sessioni di ascolto nell'ultimo anno",
|
||||||
"MessageLoading": "Caricamento...",
|
"MessageLoading": "Caricamento…",
|
||||||
"MessageLoadingFolders": "Caricamento Cartelle...",
|
"MessageLoadingFolders": "Caricamento Cartelle...",
|
||||||
"MessageLogsDescription": "Logs are stored in <code>/metadata/logs</code> as JSON files. Crash logs are stored in <code>/metadata/logs/crash_logs.txt</code>.",
|
"MessageLogsDescription": "I log vengono archiviati nel percorso <code>/metadata/logs</code> as JSON files. I registri degli arresti anomali vengono archiviati nel percorso <code>/metadata/logs/crash_logs.txt</code>.",
|
||||||
"MessageM4BFailed": "M4B Fallito!",
|
"MessageM4BFailed": "M4B Fallito!",
|
||||||
"MessageM4BFinished": "M4B Finito!",
|
"MessageM4BFinished": "M4B Finito!",
|
||||||
"MessageMapChapterTitles": "Associa i titoli dei capitoli ai capitoli dell'audiolibro esistente senza modificare i timestamp",
|
"MessageMapChapterTitles": "Associa i titoli dei capitoli ai capitoli dell'audiolibro esistente senza modificare i timestamp",
|
||||||
@@ -657,8 +670,8 @@
|
|||||||
"MessageNoAudioTracks": "Nessuna Traccia Audio",
|
"MessageNoAudioTracks": "Nessuna Traccia Audio",
|
||||||
"MessageNoAuthors": "Nessun autore",
|
"MessageNoAuthors": "Nessun autore",
|
||||||
"MessageNoBackups": "Nessun Backup",
|
"MessageNoBackups": "Nessun Backup",
|
||||||
"MessageNoBookmarks": "Nessun Preferito",
|
"MessageNoBookmarks": "Nessun preferito",
|
||||||
"MessageNoChapters": "Nessun Capitolo",
|
"MessageNoChapters": "Nessun capitolo",
|
||||||
"MessageNoCollections": "Nessuna Raccolta",
|
"MessageNoCollections": "Nessuna Raccolta",
|
||||||
"MessageNoCoversFound": "Nessuna Cover Trovata",
|
"MessageNoCoversFound": "Nessuna Cover Trovata",
|
||||||
"MessageNoDescription": "Nessuna descrizione",
|
"MessageNoDescription": "Nessuna descrizione",
|
||||||
@@ -669,22 +682,22 @@
|
|||||||
"MessageNoFoldersAvailable": "Nessuna Cartella disponibile",
|
"MessageNoFoldersAvailable": "Nessuna Cartella disponibile",
|
||||||
"MessageNoGenres": "Nessun Genere",
|
"MessageNoGenres": "Nessun Genere",
|
||||||
"MessageNoIssues": "Nessun Errore",
|
"MessageNoIssues": "Nessun Errore",
|
||||||
"MessageNoItems": "Nessun Oggetto",
|
"MessageNoItems": "Nessun oggetto",
|
||||||
"MessageNoItemsFound": "Nessun Oggetto trovato",
|
"MessageNoItemsFound": "Nessun oggetto trovato",
|
||||||
"MessageNoListeningSessions": "Nessuna sessione di ascolto",
|
"MessageNoListeningSessions": "Nessuna sessione di ascolto",
|
||||||
"MessageNoLogs": "Nessun Logs",
|
"MessageNoLogs": "Nessun Logs",
|
||||||
"MessageNoMediaProgress": "Nessun progresso multimediale",
|
"MessageNoMediaProgress": "Nessun progresso multimediale",
|
||||||
"MessageNoNotifications": "Nessuna notifica",
|
"MessageNoNotifications": "Nessuna notifica",
|
||||||
"MessageNoPodcastsFound": "Nessun podcasts trovato",
|
"MessageNoPodcastsFound": "Nessun podcast trovato",
|
||||||
"MessageNoResults": "Nessun Risultato",
|
"MessageNoResults": "Nessun Risultato",
|
||||||
"MessageNoSearchResultsFor": "Nessun risultato per \"{0}\"",
|
"MessageNoSearchResultsFor": "Nessun risultato per \"{0}\"",
|
||||||
"MessageNoSeries": "Nessuna Serie",
|
"MessageNoSeries": "Nessuna Serie",
|
||||||
"MessageNoTags": "Nessun Tags",
|
"MessageNoTags": "Nessun Tags",
|
||||||
"MessageNoTasksRunning": "Nessun processo in esecuzione",
|
"MessageNoTasksRunning": "Nessun processo in esecuzione",
|
||||||
"MessageNotYetImplemented": "Non Ancora Implementato",
|
|
||||||
"MessageNoUpdateNecessary": "Nessun aggiornamento necessario",
|
"MessageNoUpdateNecessary": "Nessun aggiornamento necessario",
|
||||||
"MessageNoUpdatesWereNecessary": "Nessun aggiornamento necessario",
|
"MessageNoUpdatesWereNecessary": "Nessun aggiornamento necessario",
|
||||||
"MessageNoUserPlaylists": "non hai nessuna Playlist",
|
"MessageNoUserPlaylists": "non hai nessuna Playlist",
|
||||||
|
"MessageNotYetImplemented": "Non Ancora Implementato",
|
||||||
"MessageOr": "o",
|
"MessageOr": "o",
|
||||||
"MessagePauseChapter": "Metti in Pausa Capitolo",
|
"MessagePauseChapter": "Metti in Pausa Capitolo",
|
||||||
"MessagePlayChapter": "Ascolta dall'inizio del capitolo",
|
"MessagePlayChapter": "Ascolta dall'inizio del capitolo",
|
||||||
@@ -695,7 +708,7 @@
|
|||||||
"MessageRemoveEpisodes": "rimuovi {0} episodio(i)",
|
"MessageRemoveEpisodes": "rimuovi {0} episodio(i)",
|
||||||
"MessageRemoveFromPlayerQueue": "Rimuovi dalla coda di riproduzione",
|
"MessageRemoveFromPlayerQueue": "Rimuovi dalla coda di riproduzione",
|
||||||
"MessageRemoveUserWarning": "Sei sicuro di voler eliminare definitivamente l'utente \"{0}\"?",
|
"MessageRemoveUserWarning": "Sei sicuro di voler eliminare definitivamente l'utente \"{0}\"?",
|
||||||
"MessageReportBugsAndContribute": "Segnala bug, richiedi funzionalità e contribuisci",
|
"MessageReportBugsAndContribute": "Segnala errori, richiedi funzionalità e contribuisci",
|
||||||
"MessageResetChaptersConfirm": "Sei sicuro di voler reimpostare i capitoli e annullare le modifiche ?",
|
"MessageResetChaptersConfirm": "Sei sicuro di voler reimpostare i capitoli e annullare le modifiche ?",
|
||||||
"MessageRestoreBackupConfirm": "Sei sicuro di voler ripristinare il backup creato su",
|
"MessageRestoreBackupConfirm": "Sei sicuro di voler ripristinare il backup creato su",
|
||||||
"MessageRestoreBackupWarning": "Il ripristino di un backup sovrascriverà l'intero database situato in /config e sovrascrive le immagini in /metadata/items & /metadata/authors.<br /><br />I backup non modificano alcun file nelle cartelle della libreria. Se hai abilitato le impostazioni del server per archiviare copertine e metadati nelle cartelle della libreria, questi non vengono sottoposti a backup o sovrascritti.<br /><br />Tutti i client che utilizzano il tuo server verranno aggiornati automaticamente.",
|
"MessageRestoreBackupWarning": "Il ripristino di un backup sovrascriverà l'intero database situato in /config e sovrascrive le immagini in /metadata/items & /metadata/authors.<br /><br />I backup non modificano alcun file nelle cartelle della libreria. Se hai abilitato le impostazioni del server per archiviare copertine e metadati nelle cartelle della libreria, questi non vengono sottoposti a backup o sovrascritti.<br /><br />Tutti i client che utilizzano il tuo server verranno aggiornati automaticamente.",
|
||||||
@@ -745,12 +758,12 @@
|
|||||||
"ToastBatchUpdateSuccess": "Batch di aggiornamento finito",
|
"ToastBatchUpdateSuccess": "Batch di aggiornamento finito",
|
||||||
"ToastBookmarkCreateFailed": "Creazione segnalibro fallita",
|
"ToastBookmarkCreateFailed": "Creazione segnalibro fallita",
|
||||||
"ToastBookmarkCreateSuccess": "Segnalibro creato",
|
"ToastBookmarkCreateSuccess": "Segnalibro creato",
|
||||||
"ToastBookmarkRemoveFailed": "Rimozione Segnalibro fallita",
|
"ToastBookmarkRemoveFailed": "Rimozione segnalibro fallita",
|
||||||
"ToastBookmarkRemoveSuccess": "Segnalibro Rimosso",
|
"ToastBookmarkRemoveSuccess": "Segnalibro Rimosso",
|
||||||
"ToastBookmarkUpdateFailed": "Aggiornamento Segnalibro fallito",
|
"ToastBookmarkUpdateFailed": "Aggiornamento segnalibro fallito",
|
||||||
"ToastBookmarkUpdateSuccess": "Segnalibro aggiornato",
|
"ToastBookmarkUpdateSuccess": "Segnalibro aggiornato",
|
||||||
"ToastCachePurgeFailed": "Failed to purge cache",
|
"ToastCachePurgeFailed": "Impossibile eliminare la cache",
|
||||||
"ToastCachePurgeSuccess": "Cache purged successfully",
|
"ToastCachePurgeSuccess": "Cache eliminata correttamente",
|
||||||
"ToastChaptersHaveErrors": "I capitoli contengono errori",
|
"ToastChaptersHaveErrors": "I capitoli contengono errori",
|
||||||
"ToastChaptersMustHaveTitles": "I capitoli devono avere titoli",
|
"ToastChaptersMustHaveTitles": "I capitoli devono avere titoli",
|
||||||
"ToastCollectionItemsRemoveFailed": "Rimozione oggetti dalla Raccolta fallita",
|
"ToastCollectionItemsRemoveFailed": "Rimozione oggetti dalla Raccolta fallita",
|
||||||
@@ -759,9 +772,9 @@
|
|||||||
"ToastCollectionRemoveSuccess": "Collezione rimossa",
|
"ToastCollectionRemoveSuccess": "Collezione rimossa",
|
||||||
"ToastCollectionUpdateFailed": "Errore aggiornamento Raccolta",
|
"ToastCollectionUpdateFailed": "Errore aggiornamento Raccolta",
|
||||||
"ToastCollectionUpdateSuccess": "Raccolta aggiornata",
|
"ToastCollectionUpdateSuccess": "Raccolta aggiornata",
|
||||||
"ToastDeleteFileFailed": "Failed to delete file",
|
"ToastDeleteFileFailed": "Impossibile eliminare il file",
|
||||||
"ToastDeleteFileSuccess": "File deleted",
|
"ToastDeleteFileSuccess": "File eliminato",
|
||||||
"ToastFailedToLoadData": "Failed to load data",
|
"ToastFailedToLoadData": "Impossibile caricare i dati",
|
||||||
"ToastItemCoverUpdateFailed": "Errore Aggiornamento cover",
|
"ToastItemCoverUpdateFailed": "Errore Aggiornamento cover",
|
||||||
"ToastItemCoverUpdateSuccess": "Cover aggiornata",
|
"ToastItemCoverUpdateSuccess": "Cover aggiornata",
|
||||||
"ToastItemDetailsUpdateFailed": "Errore Aggiornamento dettagli file",
|
"ToastItemDetailsUpdateFailed": "Errore Aggiornamento dettagli file",
|
||||||
@@ -779,32 +792,32 @@
|
|||||||
"ToastLibraryScanStarted": "Scansione Libreria iniziata",
|
"ToastLibraryScanStarted": "Scansione Libreria iniziata",
|
||||||
"ToastLibraryUpdateFailed": "Errore Aggiornamento libreria",
|
"ToastLibraryUpdateFailed": "Errore Aggiornamento libreria",
|
||||||
"ToastLibraryUpdateSuccess": "Libreria \"{0}\" aggiornata",
|
"ToastLibraryUpdateSuccess": "Libreria \"{0}\" aggiornata",
|
||||||
"ToastPlaylistCreateFailed": "Errore Creazione playlist",
|
"ToastPlaylistCreateFailed": "Errore creazione playlist",
|
||||||
"ToastPlaylistCreateSuccess": "Playlist creata",
|
"ToastPlaylistCreateSuccess": "Playlist creata",
|
||||||
"ToastPlaylistRemoveFailed": "Rimozione Playlist Fallita",
|
"ToastPlaylistRemoveFailed": "Rimozione Playlist Fallita",
|
||||||
"ToastPlaylistRemoveSuccess": "Playlist rimossa",
|
"ToastPlaylistRemoveSuccess": "Playlist rimossa",
|
||||||
"ToastPlaylistUpdateFailed": "Aggiornamento Playlist Fallita",
|
"ToastPlaylistUpdateFailed": "Aggiornamento Playlist Fallita",
|
||||||
"ToastPlaylistUpdateSuccess": "Playlist Aggiornata",
|
"ToastPlaylistUpdateSuccess": "Playlist Aggiornata",
|
||||||
"ToastPodcastCreateFailed": "Errore Creazione podcast",
|
"ToastPodcastCreateFailed": "Errore creazione podcast",
|
||||||
"ToastPodcastCreateSuccess": "Podcast creato Correttamente",
|
"ToastPodcastCreateSuccess": "Podcast creato correttamente",
|
||||||
|
"ToastRSSFeedCloseFailed": "Errore chiusura flusso RSS",
|
||||||
|
"ToastRSSFeedCloseSuccess": "Flusso RSS chiuso",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Errore rimozione file dalla Raccolta",
|
"ToastRemoveItemFromCollectionFailed": "Errore rimozione file dalla Raccolta",
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Oggetto rimosso dalla Raccolta",
|
"ToastRemoveItemFromCollectionSuccess": "Oggetto rimosso dalla Raccolta",
|
||||||
"ToastRSSFeedCloseFailed": "Errore chiusura RSS feed",
|
|
||||||
"ToastRSSFeedCloseSuccess": "RSS feed chiuso",
|
|
||||||
"ToastSendEbookToDeviceFailed": "Impossibile inviare l'ebook al dispositivo",
|
"ToastSendEbookToDeviceFailed": "Impossibile inviare l'ebook al dispositivo",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook inviato al dispositivo \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook inviato al dispositivo \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Aggiornamento Serie Fallito",
|
"ToastSeriesUpdateFailed": "Aggiornamento Serie Fallito",
|
||||||
"ToastSeriesUpdateSuccess": "Serie Aggiornate",
|
"ToastSeriesUpdateSuccess": "Serie Aggiornate",
|
||||||
"ToastServerSettingsUpdateFailed": "Failed to update server settings",
|
"ToastServerSettingsUpdateFailed": "Impossibile aggiornare le impostazioni del server",
|
||||||
"ToastServerSettingsUpdateSuccess": "Server settings updated",
|
"ToastServerSettingsUpdateSuccess": "Impostazioni del server aggiornate",
|
||||||
"ToastSessionDeleteFailed": "Errore eliminazione sessione",
|
"ToastSessionDeleteFailed": "Errore eliminazione sessione",
|
||||||
"ToastSessionDeleteSuccess": "Sessione cancellata",
|
"ToastSessionDeleteSuccess": "Sessione cancellata",
|
||||||
"ToastSocketConnected": "Socket connesso",
|
"ToastSocketConnected": "Socket connesso",
|
||||||
"ToastSocketDisconnected": "Socket disconnesso",
|
"ToastSocketDisconnected": "Socket disconnesso",
|
||||||
"ToastSocketFailedToConnect": "Socket non riesce a connettersi",
|
"ToastSocketFailedToConnect": "Socket non riesce a connettersi",
|
||||||
"ToastSortingPrefixesEmptyError": "Must have at least 1 sorting prefix",
|
"ToastSortingPrefixesEmptyError": "Deve avere almeno 1 prefisso di ordinamento",
|
||||||
"ToastSortingPrefixesUpdateFailed": "Failed to update sorting prefixes",
|
"ToastSortingPrefixesUpdateFailed": "Impossibile aggiornare i prefissi di ordinamento",
|
||||||
"ToastSortingPrefixesUpdateSuccess": "Sorting prefixes updated ({0} items)",
|
"ToastSortingPrefixesUpdateSuccess": "Prefissi di ordinamento aggiornati ({0} items)",
|
||||||
"ToastUserDeleteFailed": "Errore eliminazione utente",
|
"ToastUserDeleteFailed": "Errore eliminazione utente",
|
||||||
"ToastUserDeleteSuccess": "Utente eliminato"
|
"ToastUserDeleteSuccess": "Utente eliminato"
|
||||||
}
|
}
|
||||||
+51
-40
@@ -1,14 +1,15 @@
|
|||||||
{
|
{
|
||||||
"ButtonAdd": "Pridėti",
|
"ButtonAdd": "Pridėti",
|
||||||
"ButtonAddChapters": "Pridėti skyrius",
|
"ButtonAddChapters": "Pridėti skyrius",
|
||||||
"ButtonAddDevice": "Add Device",
|
"ButtonAddDevice": "Pridėti įrenginį",
|
||||||
"ButtonAddLibrary": "Add Library",
|
"ButtonAddLibrary": "Pridėti Biblioteką",
|
||||||
"ButtonAddPodcasts": "Pridėti tinklalaides",
|
"ButtonAddPodcasts": "Pridėti tinklalaides",
|
||||||
"ButtonAddUser": "Add User",
|
"ButtonAddUser": "Pridėti Vartotoją",
|
||||||
"ButtonAddYourFirstLibrary": "Pridėkite savo pirmąją biblioteką",
|
"ButtonAddYourFirstLibrary": "Pridėkite savo pirmąją biblioteką",
|
||||||
"ButtonApply": "Taikyti",
|
"ButtonApply": "Taikyti",
|
||||||
"ButtonApplyChapters": "Taikyti skyrius",
|
"ButtonApplyChapters": "Taikyti skyrius",
|
||||||
"ButtonAuthors": "Autoriai",
|
"ButtonAuthors": "Autoriai",
|
||||||
|
"ButtonBack": "Atgal",
|
||||||
"ButtonBrowseForFolder": "Naršyti aplanko",
|
"ButtonBrowseForFolder": "Naršyti aplanko",
|
||||||
"ButtonCancel": "Atšaukti",
|
"ButtonCancel": "Atšaukti",
|
||||||
"ButtonCancelEncode": "Atšaukti kodavimą",
|
"ButtonCancelEncode": "Atšaukti kodavimą",
|
||||||
@@ -44,7 +45,7 @@
|
|||||||
"ButtonMatchBooks": "Pritaikyti knygas",
|
"ButtonMatchBooks": "Pritaikyti knygas",
|
||||||
"ButtonNevermind": "Nesvarbu",
|
"ButtonNevermind": "Nesvarbu",
|
||||||
"ButtonNext": "Next",
|
"ButtonNext": "Next",
|
||||||
"ButtonNextChapter": "Next Chapter",
|
"ButtonNextChapter": "Kitas Skyrius",
|
||||||
"ButtonOk": "Ok",
|
"ButtonOk": "Ok",
|
||||||
"ButtonOpenFeed": "Atidaryti srautą",
|
"ButtonOpenFeed": "Atidaryti srautą",
|
||||||
"ButtonOpenManager": "Atidaryti tvarkyklę",
|
"ButtonOpenManager": "Atidaryti tvarkyklę",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Previous Chapter",
|
||||||
"ButtonPurgeAllCache": "Valyti visą saugyklą",
|
"ButtonPurgeAllCache": "Valyti visą saugyklą",
|
||||||
"ButtonPurgeItemsCache": "Valyti elementų saugyklą",
|
"ButtonPurgeItemsCache": "Valyti elementų saugyklą",
|
||||||
"ButtonPurgeMediaProgress": "Valyti medijos progresą",
|
|
||||||
"ButtonQueueAddItem": "Pridėti į eilę",
|
"ButtonQueueAddItem": "Pridėti į eilę",
|
||||||
"ButtonQueueRemoveItem": "Pašalinti iš eilės",
|
"ButtonQueueRemoveItem": "Pašalinti iš eilės",
|
||||||
"ButtonQuickMatch": "Greitas pritaikymas",
|
"ButtonQuickMatch": "Greitas pritaikymas",
|
||||||
|
"ButtonReScan": "Iš naujo nuskaityti",
|
||||||
"ButtonRead": "Skaityti",
|
"ButtonRead": "Skaityti",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Pašalinti iš Tęsti Klausimą",
|
"ButtonRemoveFromContinueListening": "Pašalinti iš Tęsti Klausimą",
|
||||||
"ButtonRemoveFromContinueReading": "Pašalinti iš Tęsti Skaitymą",
|
"ButtonRemoveFromContinueReading": "Pašalinti iš Tęsti Skaitymą",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Pašalinti seriją iš Tęsti Seriją",
|
"ButtonRemoveSeriesFromContinueSeries": "Pašalinti seriją iš Tęsti Seriją",
|
||||||
"ButtonReScan": "Iš naujo nuskaityti",
|
|
||||||
"ButtonReset": "Atstatyti",
|
"ButtonReset": "Atstatyti",
|
||||||
"ButtonResetToDefault": "Reset to default",
|
"ButtonResetToDefault": "Reset to default",
|
||||||
"ButtonRestore": "Atkurti",
|
"ButtonRestore": "Atkurti",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Paskyra",
|
"HeaderAccount": "Paskyra",
|
||||||
"HeaderAdvanced": "Papildomi",
|
"HeaderAdvanced": "Papildomi",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise pranešimo nustatymai",
|
"HeaderAppriseNotificationSettings": "Apprise pranešimo nustatymai",
|
||||||
"HeaderAudiobookTools": "Audioknygų failų valdymo įrankiai",
|
|
||||||
"HeaderAudioTracks": "Garso takeliai",
|
"HeaderAudioTracks": "Garso takeliai",
|
||||||
|
"HeaderAudiobookTools": "Audioknygų failų valdymo įrankiai",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Atsarginės kopijos",
|
"HeaderBackups": "Atsarginės kopijos",
|
||||||
"HeaderChangePassword": "Pakeisti slaptažodį",
|
"HeaderChangePassword": "Pakeisti slaptažodį",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Kolekcijos elementai",
|
"HeaderCollectionItems": "Kolekcijos elementai",
|
||||||
"HeaderCover": "Viršelis",
|
"HeaderCover": "Viršelis",
|
||||||
"HeaderCurrentDownloads": "Dabartiniai parsisiuntimai",
|
"HeaderCurrentDownloads": "Dabartiniai parsisiuntimai",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||||
"HeaderDetails": "Detalės",
|
"HeaderDetails": "Detalės",
|
||||||
"HeaderDownloadQueue": "Parsisiuntimo eilė",
|
"HeaderDownloadQueue": "Parsisiuntimo eilė",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Grojaraščio elementai",
|
"HeaderPlaylistItems": "Grojaraščio elementai",
|
||||||
"HeaderPodcastsToAdd": "Pridėti tinklalaides",
|
"HeaderPodcastsToAdd": "Pridėti tinklalaides",
|
||||||
"HeaderPreviewCover": "Peržiūrėti viršelį",
|
"HeaderPreviewCover": "Peržiūrėti viršelį",
|
||||||
"HeaderRemoveEpisode": "Pašalinti epizodą",
|
|
||||||
"HeaderRemoveEpisodes": "Pašalinti {0} epizodus",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS informacija",
|
"HeaderRSSFeedGeneral": "RSS informacija",
|
||||||
"HeaderRSSFeedIsOpen": "RSS srautas yra atidarytas",
|
"HeaderRSSFeedIsOpen": "RSS srautas yra atidarytas",
|
||||||
"HeaderRSSFeeds": "RSS Feeds",
|
"HeaderRSSFeeds": "RSS Feeds",
|
||||||
|
"HeaderRemoveEpisode": "Pašalinti epizodą",
|
||||||
|
"HeaderRemoveEpisodes": "Pašalinti {0} epizodus",
|
||||||
"HeaderSavedMediaProgress": "Išsaugota medijos pažanga",
|
"HeaderSavedMediaProgress": "Išsaugota medijos pažanga",
|
||||||
"HeaderSchedule": "Tvarkaraštis",
|
"HeaderSchedule": "Tvarkaraštis",
|
||||||
"HeaderScheduleLibraryScans": "Nustatyti bibliotekų nuskaitymo tvarkaraštį",
|
"HeaderScheduleLibraryScans": "Nustatyti bibliotekų nuskaitymo tvarkaraštį",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Svečias",
|
"LabelAccountTypeGuest": "Svečias",
|
||||||
"LabelAccountTypeUser": "Naudotojas",
|
"LabelAccountTypeUser": "Naudotojas",
|
||||||
"LabelActivity": "Veikla",
|
"LabelActivity": "Veikla",
|
||||||
"LabelAdded": "Pridėta",
|
|
||||||
"LabelAddedAt": "Pridėta {0}",
|
|
||||||
"LabelAddToCollection": "Pridėti į kolekciją",
|
"LabelAddToCollection": "Pridėti į kolekciją",
|
||||||
"LabelAddToCollectionBatch": "Pridėti {0} knygas į kolekciją",
|
"LabelAddToCollectionBatch": "Pridėti {0} knygas į kolekciją",
|
||||||
"LabelAddToPlaylist": "Pridėti į grojaraštį",
|
"LabelAddToPlaylist": "Pridėti į grojaraštį",
|
||||||
"LabelAddToPlaylistBatch": "Pridėti {0} elementus į grojaraštį",
|
"LabelAddToPlaylistBatch": "Pridėti {0} elementus į grojaraštį",
|
||||||
|
"LabelAdded": "Pridėta",
|
||||||
|
"LabelAddedAt": "Pridėta {0}",
|
||||||
"LabelAdminUsersOnly": "Admin users only",
|
"LabelAdminUsersOnly": "Admin users only",
|
||||||
"LabelAll": "Visi",
|
"LabelAll": "Visi",
|
||||||
"LabelAllUsers": "Visi naudotojai",
|
"LabelAllUsers": "Visi naudotojai",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Pakeisti slaptažodį",
|
"LabelChangePassword": "Pakeisti slaptažodį",
|
||||||
"LabelChannels": "Kanalai",
|
"LabelChannels": "Kanalai",
|
||||||
|
"LabelChapterTitle": "Skyriaus pavadinimas",
|
||||||
"LabelChapters": "Skyriai",
|
"LabelChapters": "Skyriai",
|
||||||
"LabelChaptersFound": "rasti skyriai",
|
"LabelChaptersFound": "rasti skyriai",
|
||||||
"LabelChapterTitle": "Skyriaus pavadinimas",
|
|
||||||
"LabelClickForMoreInfo": "Click for more info",
|
"LabelClickForMoreInfo": "Click for more info",
|
||||||
"LabelClosePlayer": "Uždaryti grotuvą",
|
"LabelClosePlayer": "Uždaryti grotuvą",
|
||||||
"LabelCodec": "Kodekas",
|
"LabelCodec": "Kodekas",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Redaguoti",
|
"LabelEdit": "Redaguoti",
|
||||||
"LabelEmail": "El. paštas",
|
"LabelEmail": "El. paštas",
|
||||||
"LabelEmailSettingsFromAddress": "Siuntėjo adresas",
|
"LabelEmailSettingsFromAddress": "Siuntėjo adresas",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Apsaugota",
|
"LabelEmailSettingsSecure": "Apsaugota",
|
||||||
"LabelEmailSettingsSecureHelp": "Jei ši reikšmė yra \"true\", ryšys naudos TLS protokolą. Jei \"false\", TLS bus naudojamas tik tada, jei serveris palaiko STARTTLS plėtinį. Daugumos atveju, jei jungiamasi prie 465 prievado, šią reikšmę turėtumėte nustatyti kaip \"true\". Jei jungiamasi prie 587 arba 25 prievado, turi būti nustatyta \"false\". (iš nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Jei ši reikšmė yra \"true\", ryšys naudos TLS protokolą. Jei \"false\", TLS bus naudojamas tik tada, jei serveris palaiko STARTTLS plėtinį. Daugumos atveju, jei jungiamasi prie 465 prievado, šią reikšmę turėtumėte nustatyti kaip \"true\". Jei jungiamasi prie 587 arba 25 prievado, turi būti nustatyta \"false\". (iš nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Testinis adresas",
|
"LabelEmailSettingsTestAddress": "Testinis adresas",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Aplankas",
|
"LabelFolder": "Aplankas",
|
||||||
"LabelFolders": "Aplankai",
|
"LabelFolders": "Aplankai",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "Famiglia di font",
|
"LabelFontFamily": "Famiglia di font",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Šrifto mastelis",
|
"LabelFontScale": "Šrifto mastelis",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Valanda",
|
"LabelHour": "Valanda",
|
||||||
"LabelIcon": "Piktograma",
|
"LabelIcon": "Piktograma",
|
||||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
"LabelImageURLFromTheWeb": "Image URL from the web",
|
||||||
|
"LabelInProgress": "Vyksta",
|
||||||
"LabelIncludeInTracklist": "Įtraukti į takelių sąrašą",
|
"LabelIncludeInTracklist": "Įtraukti į takelių sąrašą",
|
||||||
"LabelIncomplete": "Nebaigta",
|
"LabelIncomplete": "Nebaigta",
|
||||||
"LabelInProgress": "Vyksta",
|
|
||||||
"LabelInterval": "Intervalas",
|
"LabelInterval": "Intervalas",
|
||||||
"LabelIntervalCustomDailyWeekly": "Pasirinktinis kasdieninės/savaitinės periodiškumas",
|
"LabelIntervalCustomDailyWeekly": "Pasirinktinis kasdieninės/savaitinės periodiškumas",
|
||||||
"LabelIntervalEvery12Hours": "Kas 12 valandų",
|
"LabelIntervalEvery12Hours": "Kas 12 valandų",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Elementas",
|
"LabelItem": "Elementas",
|
||||||
"LabelLanguage": "Kalba",
|
"LabelLanguage": "Kalba",
|
||||||
"LabelLanguageDefaultServer": "Numatytoji serverio kalba",
|
"LabelLanguageDefaultServer": "Numatytoji serverio kalba",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Paskutinė pridėta knyga",
|
"LabelLastBookAdded": "Paskutinė pridėta knyga",
|
||||||
"LabelLastBookUpdated": "Paskutinė atnaujinta knyga",
|
"LabelLastBookUpdated": "Paskutinė atnaujinta knyga",
|
||||||
"LabelLastSeen": "Paskutinį kartą matyta",
|
"LabelLastSeen": "Paskutinį kartą matyta",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Mažiau",
|
"LabelLess": "Mažiau",
|
||||||
"LabelLibrariesAccessibleToUser": "Naudotojui pasiekiamos bibliotekos",
|
"LabelLibrariesAccessibleToUser": "Naudotojui pasiekiamos bibliotekos",
|
||||||
"LabelLibrary": "Biblioteka",
|
"LabelLibrary": "Biblioteka",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Bibliotekos elementas",
|
"LabelLibraryItem": "Bibliotekos elementas",
|
||||||
"LabelLibraryName": "Bibliotekos pavadinimas",
|
"LabelLibraryName": "Bibliotekos pavadinimas",
|
||||||
"LabelLimit": "Limitas",
|
"LabelLimit": "Limitas",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||||
"LabelMediaPlayer": "Grotuvas",
|
"LabelMediaPlayer": "Grotuvas",
|
||||||
"LabelMediaType": "Medijos tipas",
|
"LabelMediaType": "Medijos tipas",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Metaduomenų tiekėjas",
|
|
||||||
"LabelMetaTag": "Meta žymė",
|
"LabelMetaTag": "Meta žymė",
|
||||||
"LabelMetaTags": "Meta žymos",
|
"LabelMetaTags": "Meta žymos",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||||
|
"LabelMetadataProvider": "Metaduomenų tiekėjas",
|
||||||
"LabelMinute": "Minutė",
|
"LabelMinute": "Minutė",
|
||||||
"LabelMissing": "Trūksta",
|
"LabelMissing": "Trūksta",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Skaitytojas",
|
"LabelNarrator": "Skaitytojas",
|
||||||
"LabelNarrators": "Skaitytojai",
|
"LabelNarrators": "Skaitytojai",
|
||||||
"LabelNew": "Nauja",
|
"LabelNew": "Nauja",
|
||||||
|
"LabelNewPassword": "Naujas slaptažodis",
|
||||||
"LabelNewestAuthors": "Naujausi autoriai",
|
"LabelNewestAuthors": "Naujausi autoriai",
|
||||||
"LabelNewestEpisodes": "Naujausi epizodai",
|
"LabelNewestEpisodes": "Naujausi epizodai",
|
||||||
"LabelNewPassword": "Naujas slaptažodis",
|
|
||||||
"LabelNextBackupDate": "Kitos atsarginės kopijos data",
|
"LabelNextBackupDate": "Kitos atsarginės kopijos data",
|
||||||
"LabelNextScheduledRun": "Kito planuoto vykdymo data",
|
"LabelNextScheduledRun": "Kito planuoto vykdymo data",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "Nepasirinkti jokie epizodai",
|
"LabelNoEpisodesSelected": "Nepasirinkti jokie epizodai",
|
||||||
"LabelNotes": "Užrašai",
|
|
||||||
"LabelNotFinished": "Nebaigta",
|
"LabelNotFinished": "Nebaigta",
|
||||||
|
"LabelNotStarted": "Nepasileista",
|
||||||
|
"LabelNotes": "Užrašai",
|
||||||
"LabelNotificationAppriseURL": "Pranešimo (Apprise) URL",
|
"LabelNotificationAppriseURL": "Pranešimo (Apprise) URL",
|
||||||
"LabelNotificationAvailableVariables": "Galimi kintamieji",
|
"LabelNotificationAvailableVariables": "Galimi kintamieji",
|
||||||
"LabelNotificationBodyTemplate": "Turinio šablonas",
|
"LabelNotificationBodyTemplate": "Turinio šablonas",
|
||||||
"LabelNotificationEvent": "Pranešimo įvykis",
|
"LabelNotificationEvent": "Pranešimo įvykis",
|
||||||
|
"LabelNotificationTitleTemplate": "Pavadinimo šablonas",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Maksimalus nesėkmingų bandymų skaičius",
|
"LabelNotificationsMaxFailedAttempts": "Maksimalus nesėkmingų bandymų skaičius",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Pranešimai bus išjungti, jei nepavyks jų išsiųsti nurodytą kartų",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Pranešimai bus išjungti, jei nepavyks jų išsiųsti nurodytą kartų",
|
||||||
"LabelNotificationsMaxQueueSize": "Maksimalus pranešimų eilių dydis",
|
"LabelNotificationsMaxQueueSize": "Maksimalus pranešimų eilių dydis",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Įvykiai yra apriboti vienu įvykiu per sekundę. Įvykiai bus ignoruojami, jei eilė yra maksimalaus dydžio. Tai apsaugo nuo pranešimų šlamšto.",
|
"LabelNotificationsMaxQueueSizeHelp": "Įvykiai yra apriboti vienu įvykiu per sekundę. Įvykiai bus ignoruojami, jei eilė yra maksimalaus dydžio. Tai apsaugo nuo pranešimų šlamšto.",
|
||||||
"LabelNotificationTitleTemplate": "Pavadinimo šablonas",
|
|
||||||
"LabelNotStarted": "Nepasileista",
|
|
||||||
"LabelNumberOfBooks": "Knygų skaičius",
|
"LabelNumberOfBooks": "Knygų skaičius",
|
||||||
"LabelNumberOfEpisodes": "Epizodų skaičius",
|
"LabelNumberOfEpisodes": "Epizodų skaičius",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Gali įkelti",
|
"LabelPermissionsUpload": "Gali įkelti",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Nuotraukos kelias/URL",
|
"LabelPhotoPathURL": "Nuotraukos kelias/URL",
|
||||||
"LabelPlaylists": "Grojaraščiai",
|
|
||||||
"LabelPlayMethod": "Grojimo metodas",
|
"LabelPlayMethod": "Grojimo metodas",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Grojaraščiai",
|
||||||
"LabelPodcast": "Tinklalaidė",
|
"LabelPodcast": "Tinklalaidė",
|
||||||
"LabelPodcasts": "Tinklalaidės",
|
|
||||||
"LabelPodcastSearchRegion": "Podcast paieškos regionas",
|
"LabelPodcastSearchRegion": "Podcast paieškos regionas",
|
||||||
"LabelPodcastType": "Tinklalaidės tipas",
|
"LabelPodcastType": "Tinklalaidės tipas",
|
||||||
|
"LabelPodcasts": "Tinklalaidės",
|
||||||
"LabelPort": "Prievadas",
|
"LabelPort": "Prievadas",
|
||||||
"LabelPrefixesToIgnore": "Ignoruojami priešdėliai (didžiosios/mažosios nesvarbu)",
|
"LabelPrefixesToIgnore": "Ignoruojami priešdėliai (didžiosios/mažosios nesvarbu)",
|
||||||
"LabelPreventIndexing": "Neleisti indeksuoti jūsų srauto „iTunes“ ir Google podcast kataloguose",
|
"LabelPreventIndexing": "Neleisti indeksuoti jūsų srauto „iTunes“ ir Google podcast kataloguose",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Progresas",
|
"LabelProgress": "Progresas",
|
||||||
"LabelProvider": "Tiekėjas",
|
"LabelProvider": "Tiekėjas",
|
||||||
"LabelPubDate": "Publikavimo data",
|
"LabelPubDate": "Publikavimo data",
|
||||||
"LabelPublisher": "Leidėjas",
|
|
||||||
"LabelPublishYear": "Leidimo metai",
|
"LabelPublishYear": "Leidimo metai",
|
||||||
"LabelRead": "Skaityta",
|
"LabelPublisher": "Leidėjas",
|
||||||
"LabelReadAgain": "Skaityti dar kartą",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Skaityti e-knygą be pažangos saugojimo",
|
|
||||||
"LabelRecentlyAdded": "Neseniai pridėta",
|
|
||||||
"LabelRecentSeries": "Naujausios serijos",
|
|
||||||
"LabelRecommended": "Rekomenduojama",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Regionas",
|
|
||||||
"LabelReleaseDate": "Išleidimo data",
|
|
||||||
"LabelRemoveCover": "Pašalinti viršelį",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Pasirinktinis savininko el. paštas",
|
"LabelRSSFeedCustomOwnerEmail": "Pasirinktinis savininko el. paštas",
|
||||||
"LabelRSSFeedCustomOwnerName": "Pasirinktinis savininko vardas",
|
"LabelRSSFeedCustomOwnerName": "Pasirinktinis savininko vardas",
|
||||||
"LabelRSSFeedOpen": "Atidarytas RSS srautas",
|
"LabelRSSFeedOpen": "Atidarytas RSS srautas",
|
||||||
"LabelRSSFeedPreventIndexing": "Neleisti indeksuoti",
|
"LabelRSSFeedPreventIndexing": "Neleisti indeksuoti",
|
||||||
"LabelRSSFeedSlug": "RSS srauto identifikatorius",
|
"LabelRSSFeedSlug": "RSS srauto identifikatorius",
|
||||||
"LabelRSSFeedURL": "RSS srauto URL",
|
"LabelRSSFeedURL": "RSS srauto URL",
|
||||||
|
"LabelRead": "Skaityta",
|
||||||
|
"LabelReadAgain": "Skaityti dar kartą",
|
||||||
|
"LabelReadEbookWithoutProgress": "Skaityti e-knygą be pažangos saugojimo",
|
||||||
|
"LabelRecentSeries": "Naujausios serijos",
|
||||||
|
"LabelRecentlyAdded": "Neseniai pridėta",
|
||||||
|
"LabelRecommended": "Rekomenduojama",
|
||||||
|
"LabelRedo": "Redo",
|
||||||
|
"LabelRegion": "Regionas",
|
||||||
|
"LabelReleaseDate": "Išleidimo data",
|
||||||
|
"LabelRemoveCover": "Pašalinti viršelį",
|
||||||
|
"LabelRowsPerPage": "Rows per page",
|
||||||
"LabelSearchTerm": "Paieškos žodis",
|
"LabelSearchTerm": "Paieškos žodis",
|
||||||
"LabelSearchTitle": "Ieškoti pavadinimo",
|
"LabelSearchTitle": "Ieškoti pavadinimo",
|
||||||
"LabelSearchTitleOrASIN": "Ieškoti pavadinimo arba ASIN",
|
"LabelSearchTitleOrASIN": "Ieškoti pavadinimo arba ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Miego laikmatis",
|
"LabelSleepTimer": "Miego laikmatis",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Pradėti",
|
"LabelStart": "Pradėti",
|
||||||
|
"LabelStartTime": "Pradžios laikas",
|
||||||
"LabelStarted": "Pradėta",
|
"LabelStarted": "Pradėta",
|
||||||
"LabelStartedAt": "Pradėta",
|
"LabelStartedAt": "Pradėta",
|
||||||
"LabelStartTime": "Pradžios laikas",
|
|
||||||
"LabelStatsAudioTracks": "Garsiniai takeliai",
|
"LabelStatsAudioTracks": "Garsiniai takeliai",
|
||||||
"LabelStatsAuthors": "Autoriai",
|
"LabelStatsAuthors": "Autoriai",
|
||||||
"LabelStatsBestDay": "Geriausia diena",
|
"LabelStatsBestDay": "Geriausia diena",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Nežinoma",
|
"LabelUnknown": "Nežinoma",
|
||||||
"LabelUpdateCover": "Atnaujinti viršelį",
|
"LabelUpdateCover": "Atnaujinti viršelį",
|
||||||
"LabelUpdateCoverHelp": "Leisti perrašyti esamus viršelius pasirinktoms knygoms, kai yra rasta atitikmenų",
|
"LabelUpdateCoverHelp": "Leisti perrašyti esamus viršelius pasirinktoms knygoms, kai yra rasta atitikmenų",
|
||||||
"LabelUpdatedAt": "Atnaujinta",
|
|
||||||
"LabelUpdateDetails": "Atnaujinti duomenis",
|
"LabelUpdateDetails": "Atnaujinti duomenis",
|
||||||
"LabelUpdateDetailsHelp": "Leisti perrašyti esamus duomenis pasirinktoms knygoms, kai yra rasta atitikmenų",
|
"LabelUpdateDetailsHelp": "Leisti perrašyti esamus duomenis pasirinktoms knygoms, kai yra rasta atitikmenų",
|
||||||
|
"LabelUpdatedAt": "Atnaujinta",
|
||||||
"LabelUploaderDragAndDrop": "Tempkite ir paleiskite failus ar aplankus",
|
"LabelUploaderDragAndDrop": "Tempkite ir paleiskite failus ar aplankus",
|
||||||
"LabelUploaderDropFiles": "Nutempti failus",
|
"LabelUploaderDropFiles": "Nutempti failus",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Atsarginės kopijos apima vartotojus, vartotojų pažangą, bibliotekos elemento informaciją, serverio nustatymus ir vaizdus, saugomus <code>/metadata/items</code> ir <code>/metadata/authors</code>. Atsarginės kopijos <strong>neįtraukia</strong> jokių failų, saugomų jūsų bibliotekos aplankuose.",
|
"MessageBackupsDescription": "Atsarginės kopijos apima vartotojus, vartotojų pažangą, bibliotekos elemento informaciją, serverio nustatymus ir vaizdus, saugomus <code>/metadata/items</code> ir <code>/metadata/authors</code>. Atsarginės kopijos <strong>neįtraukia</strong> jokių failų, saugomų jūsų bibliotekos aplankuose.",
|
||||||
"MessageBatchQuickMatchDescription": "Greitas atitikmens rasti bandys pridėti trūkstamus viršelius ir metaduomenis pasirinktiems elementams. Įjunkite žemiau esančias parinktis, kad leistumėte Greitajam atitikmeniui perrašyti esamus viršelius ir/ar metaduomenis.",
|
"MessageBatchQuickMatchDescription": "Greitas atitikmens rasti bandys pridėti trūkstamus viršelius ir metaduomenis pasirinktiems elementams. Įjunkite žemiau esančias parinktis, kad leistumėte Greitajam atitikmeniui perrašyti esamus viršelius ir/ar metaduomenis.",
|
||||||
"MessageBookshelfNoCollections": "Dar nepridėjote jokių kolekcijų",
|
"MessageBookshelfNoCollections": "Dar nepridėjote jokių kolekcijų",
|
||||||
"MessageBookshelfNoResultsForFilter": "Rezultatų pagal filtrą \"{0}: {1}\" nėra",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Nėra atvertų RSS srautų",
|
"MessageBookshelfNoRSSFeeds": "Nėra atvertų RSS srautų",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Rezultatų pagal filtrą \"{0}: {1}\" nėra",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "Neturite jokių serijų",
|
"MessageBookshelfNoSeries": "Neturite jokių serijų",
|
||||||
"MessageChapterEndIsAfter": "Skyriaus pabaiga yra po jūsų garso knygos pabaigos",
|
"MessageChapterEndIsAfter": "Skyriaus pabaiga yra po jūsų garso knygos pabaigos",
|
||||||
"MessageChapterErrorFirstNotZero": "Pirmasis skyrius turi prasidėti nuo 0",
|
"MessageChapterErrorFirstNotZero": "Pirmasis skyrius turi prasidėti nuo 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Ar tikrai norite pažymėti visas knygas šioje serijoje kaip užbaigtas?",
|
"MessageConfirmMarkSeriesFinished": "Ar tikrai norite pažymėti visas knygas šioje serijoje kaip užbaigtas?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Ar tikrai norite pažymėti visas knygas šioje serijoje kaip nebaigtas?",
|
"MessageConfirmMarkSeriesNotFinished": "Ar tikrai norite pažymėti visas knygas šioje serijoje kaip nebaigtas?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||||
"MessageConfirmRemoveAllChapters": "Ar tikrai norite pašalinti visus skyrius?",
|
"MessageConfirmRemoveAllChapters": "Ar tikrai norite pašalinti visus skyrius?",
|
||||||
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Ar tikrai norite pašalinti kolekciją \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Ar tikrai norite pašalinti kolekciją \"{0}\"?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Ar tikrai norite pervadinti žymą \"{0}\" į \"{1}\" visiems elementams?",
|
"MessageConfirmRenameTag": "Ar tikrai norite pervadinti žymą \"{0}\" į \"{1}\" visiems elementams?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Pastaba: ši žyma jau egzistuoja, todėl jos bus sujungtos.",
|
"MessageConfirmRenameTagMergeNote": "Pastaba: ši žyma jau egzistuoja, todėl jos bus sujungtos.",
|
||||||
"MessageConfirmRenameTagWarning": "Įspėjimas! Panaši žyma jau egzistuoja \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Įspėjimas! Panaši žyma jau egzistuoja \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Ar tikrai norite nusiųsti {0} el. knygą \"{1}\" į įrenginį \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Ar tikrai norite nusiųsti {0} el. knygą \"{1}\" į įrenginį \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Epizodas atsisiunčiamas",
|
"MessageDownloadingEpisode": "Epizodas atsisiunčiamas",
|
||||||
"MessageDragFilesIntoTrackOrder": "Surikiuokite takelius vilkdami failus",
|
"MessageDragFilesIntoTrackOrder": "Surikiuokite takelius vilkdami failus",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Serijų nėra",
|
"MessageNoSeries": "Serijų nėra",
|
||||||
"MessageNoTags": "Žymų nėra",
|
"MessageNoTags": "Žymų nėra",
|
||||||
"MessageNoTasksRunning": "Nėra vykstančių užduočių",
|
"MessageNoTasksRunning": "Nėra vykstančių užduočių",
|
||||||
"MessageNotYetImplemented": "Dar neįgyvendinta",
|
|
||||||
"MessageNoUpdateNecessary": "Atnaujinimai nereikalingi",
|
"MessageNoUpdateNecessary": "Atnaujinimai nereikalingi",
|
||||||
"MessageNoUpdatesWereNecessary": "Nereikalingi jokie atnaujinimai",
|
"MessageNoUpdatesWereNecessary": "Nereikalingi jokie atnaujinimai",
|
||||||
"MessageNoUserPlaylists": "Neturite grojaraščių",
|
"MessageNoUserPlaylists": "Neturite grojaraščių",
|
||||||
|
"MessageNotYetImplemented": "Dar neįgyvendinta",
|
||||||
"MessageOr": "arba",
|
"MessageOr": "arba",
|
||||||
"MessagePauseChapter": "Pristabdyti skyriaus grojimą",
|
"MessagePauseChapter": "Pristabdyti skyriaus grojimą",
|
||||||
"MessagePlayChapter": "Paklausyti skyriaus pradžios",
|
"MessagePlayChapter": "Paklausyti skyriaus pradžios",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Grojaraštis atnaujintas",
|
"ToastPlaylistUpdateSuccess": "Grojaraštis atnaujintas",
|
||||||
"ToastPodcastCreateFailed": "Tinklalaidės sukurti nepavyko",
|
"ToastPodcastCreateFailed": "Tinklalaidės sukurti nepavyko",
|
||||||
"ToastPodcastCreateSuccess": "Tinklalaidė sėkmingai sukurta",
|
"ToastPodcastCreateSuccess": "Tinklalaidė sėkmingai sukurta",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Elemento pašalinti iš kolekcijos nepavyko",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Elementas pašalintas iš kolekcijos",
|
|
||||||
"ToastRSSFeedCloseFailed": "RSS srauto uždaryti nepavyko",
|
"ToastRSSFeedCloseFailed": "RSS srauto uždaryti nepavyko",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS srautas uždarytas",
|
"ToastRSSFeedCloseSuccess": "RSS srautas uždarytas",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Elemento pašalinti iš kolekcijos nepavyko",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Elementas pašalintas iš kolekcijos",
|
||||||
"ToastSendEbookToDeviceFailed": "Nepavyko nusiųsti e-knygos į įrenginį",
|
"ToastSendEbookToDeviceFailed": "Nepavyko nusiųsti e-knygos į įrenginį",
|
||||||
"ToastSendEbookToDeviceSuccess": "E-knyga išsiųsta į įrenginį \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "E-knyga išsiųsta į įrenginį \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Serijos atnaujinti nepavyko",
|
"ToastSeriesUpdateFailed": "Serijos atnaujinti nepavyko",
|
||||||
|
|||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Pas toe",
|
"ButtonApply": "Pas toe",
|
||||||
"ButtonApplyChapters": "Hoofdstukken toepassen",
|
"ButtonApplyChapters": "Hoofdstukken toepassen",
|
||||||
"ButtonAuthors": "Auteurs",
|
"ButtonAuthors": "Auteurs",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "Bladeren naar map",
|
"ButtonBrowseForFolder": "Bladeren naar map",
|
||||||
"ButtonCancel": "Annuleren",
|
"ButtonCancel": "Annuleren",
|
||||||
"ButtonCancelEncode": "Encoding annuleren",
|
"ButtonCancelEncode": "Encoding annuleren",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Previous Chapter",
|
||||||
"ButtonPurgeAllCache": "Volledige cache legen",
|
"ButtonPurgeAllCache": "Volledige cache legen",
|
||||||
"ButtonPurgeItemsCache": "Onderdelen-cache legen",
|
"ButtonPurgeItemsCache": "Onderdelen-cache legen",
|
||||||
"ButtonPurgeMediaProgress": "Mediavoortgang legen",
|
|
||||||
"ButtonQueueAddItem": "In wachtrij zetten",
|
"ButtonQueueAddItem": "In wachtrij zetten",
|
||||||
"ButtonQueueRemoveItem": "Uit wachtrij verwijderen",
|
"ButtonQueueRemoveItem": "Uit wachtrij verwijderen",
|
||||||
"ButtonQuickMatch": "Snelle match",
|
"ButtonQuickMatch": "Snelle match",
|
||||||
|
"ButtonReScan": "Nieuwe scan",
|
||||||
"ButtonRead": "Lees",
|
"ButtonRead": "Lees",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Vewijder uit Verder luisteren",
|
"ButtonRemoveFromContinueListening": "Vewijder uit Verder luisteren",
|
||||||
"ButtonRemoveFromContinueReading": "Remove from Continue Reading",
|
"ButtonRemoveFromContinueReading": "Remove from Continue Reading",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Verwijder serie uit Serie vervolgen",
|
"ButtonRemoveSeriesFromContinueSeries": "Verwijder serie uit Serie vervolgen",
|
||||||
"ButtonReScan": "Nieuwe scan",
|
|
||||||
"ButtonReset": "Reset",
|
"ButtonReset": "Reset",
|
||||||
"ButtonResetToDefault": "Reset to default",
|
"ButtonResetToDefault": "Reset to default",
|
||||||
"ButtonRestore": "Herstel",
|
"ButtonRestore": "Herstel",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Account",
|
"HeaderAccount": "Account",
|
||||||
"HeaderAdvanced": "Geavanceerd",
|
"HeaderAdvanced": "Geavanceerd",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise-notificatie instellingen",
|
"HeaderAppriseNotificationSettings": "Apprise-notificatie instellingen",
|
||||||
"HeaderAudiobookTools": "Audioboekbestandbeheer tools",
|
|
||||||
"HeaderAudioTracks": "Audiotracks",
|
"HeaderAudioTracks": "Audiotracks",
|
||||||
|
"HeaderAudiobookTools": "Audioboekbestandbeheer tools",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Back-ups",
|
"HeaderBackups": "Back-ups",
|
||||||
"HeaderChangePassword": "Wachtwoord wijzigen",
|
"HeaderChangePassword": "Wachtwoord wijzigen",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Collectie-objecten",
|
"HeaderCollectionItems": "Collectie-objecten",
|
||||||
"HeaderCover": "Cover",
|
"HeaderCover": "Cover",
|
||||||
"HeaderCurrentDownloads": "Huidige downloads",
|
"HeaderCurrentDownloads": "Huidige downloads",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||||
"HeaderDetails": "Details",
|
"HeaderDetails": "Details",
|
||||||
"HeaderDownloadQueue": "Download-wachtrij",
|
"HeaderDownloadQueue": "Download-wachtrij",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Onderdelen in afspeellijst",
|
"HeaderPlaylistItems": "Onderdelen in afspeellijst",
|
||||||
"HeaderPodcastsToAdd": "Toe te voegen podcasts",
|
"HeaderPodcastsToAdd": "Toe te voegen podcasts",
|
||||||
"HeaderPreviewCover": "Preview cover",
|
"HeaderPreviewCover": "Preview cover",
|
||||||
"HeaderRemoveEpisode": "Aflevering verwijderen",
|
|
||||||
"HeaderRemoveEpisodes": "Verwijder {0} afleveringen",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS-details",
|
"HeaderRSSFeedGeneral": "RSS-details",
|
||||||
"HeaderRSSFeedIsOpen": "RSS-feed is open",
|
"HeaderRSSFeedIsOpen": "RSS-feed is open",
|
||||||
"HeaderRSSFeeds": "RSS-feeds",
|
"HeaderRSSFeeds": "RSS-feeds",
|
||||||
|
"HeaderRemoveEpisode": "Aflevering verwijderen",
|
||||||
|
"HeaderRemoveEpisodes": "Verwijder {0} afleveringen",
|
||||||
"HeaderSavedMediaProgress": "Opgeslagen mediavoortgang",
|
"HeaderSavedMediaProgress": "Opgeslagen mediavoortgang",
|
||||||
"HeaderSchedule": "Schema",
|
"HeaderSchedule": "Schema",
|
||||||
"HeaderScheduleLibraryScans": "Schema automatische bibliotheekscans",
|
"HeaderScheduleLibraryScans": "Schema automatische bibliotheekscans",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Gast",
|
"LabelAccountTypeGuest": "Gast",
|
||||||
"LabelAccountTypeUser": "Gebruiker",
|
"LabelAccountTypeUser": "Gebruiker",
|
||||||
"LabelActivity": "Activiteit",
|
"LabelActivity": "Activiteit",
|
||||||
"LabelAdded": "Toegevoegd",
|
|
||||||
"LabelAddedAt": "Toegevoegd op",
|
|
||||||
"LabelAddToCollection": "Toevoegen aan collectie",
|
"LabelAddToCollection": "Toevoegen aan collectie",
|
||||||
"LabelAddToCollectionBatch": "{0} boeken toevoegen aan collectie",
|
"LabelAddToCollectionBatch": "{0} boeken toevoegen aan collectie",
|
||||||
"LabelAddToPlaylist": "Toevoegen aan afspeellijst",
|
"LabelAddToPlaylist": "Toevoegen aan afspeellijst",
|
||||||
"LabelAddToPlaylistBatch": "{0} onderdelen toevoegen aan afspeellijst",
|
"LabelAddToPlaylistBatch": "{0} onderdelen toevoegen aan afspeellijst",
|
||||||
|
"LabelAdded": "Toegevoegd",
|
||||||
|
"LabelAddedAt": "Toegevoegd op",
|
||||||
"LabelAdminUsersOnly": "Admin users only",
|
"LabelAdminUsersOnly": "Admin users only",
|
||||||
"LabelAll": "Alle",
|
"LabelAll": "Alle",
|
||||||
"LabelAllUsers": "Alle gebruikers",
|
"LabelAllUsers": "Alle gebruikers",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Wachtwoord wijzigen",
|
"LabelChangePassword": "Wachtwoord wijzigen",
|
||||||
"LabelChannels": "Kanalen",
|
"LabelChannels": "Kanalen",
|
||||||
|
"LabelChapterTitle": "Hoofdstuktitel",
|
||||||
"LabelChapters": "Hoofdstukken",
|
"LabelChapters": "Hoofdstukken",
|
||||||
"LabelChaptersFound": "Hoofdstukken gevonden",
|
"LabelChaptersFound": "Hoofdstukken gevonden",
|
||||||
"LabelChapterTitle": "Hoofdstuktitel",
|
|
||||||
"LabelClickForMoreInfo": "Click for more info",
|
"LabelClickForMoreInfo": "Click for more info",
|
||||||
"LabelClosePlayer": "Sluit speler",
|
"LabelClosePlayer": "Sluit speler",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Wijzig",
|
"LabelEdit": "Wijzig",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "Van-adres",
|
"LabelEmailSettingsFromAddress": "Van-adres",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Veilig",
|
"LabelEmailSettingsSecure": "Veilig",
|
||||||
"LabelEmailSettingsSecureHelp": "Als 'waar', dan gebruikt de verbinding TLS om met de server te verbinden. Als 'onwaar', dan wordt TLS gebruikt als de server de STARTTLS-extensie ondersteunt. In de meeste gevallen kies je voor 'waar' verbindt met poort 465. Voo poort 587 of 25, laat op 'onwaar'. (van nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Als 'waar', dan gebruikt de verbinding TLS om met de server te verbinden. Als 'onwaar', dan wordt TLS gebruikt als de server de STARTTLS-extensie ondersteunt. In de meeste gevallen kies je voor 'waar' verbindt met poort 465. Voo poort 587 of 25, laat op 'onwaar'. (van nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test-adres",
|
"LabelEmailSettingsTestAddress": "Test-adres",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Map",
|
"LabelFolder": "Map",
|
||||||
"LabelFolders": "Mappen",
|
"LabelFolders": "Mappen",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "Lettertypefamilie",
|
"LabelFontFamily": "Lettertypefamilie",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Lettertype schaal",
|
"LabelFontScale": "Lettertype schaal",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Uur",
|
"LabelHour": "Uur",
|
||||||
"LabelIcon": "Icoon",
|
"LabelIcon": "Icoon",
|
||||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
"LabelImageURLFromTheWeb": "Image URL from the web",
|
||||||
|
"LabelInProgress": "Bezig",
|
||||||
"LabelIncludeInTracklist": "Includeer in tracklijst",
|
"LabelIncludeInTracklist": "Includeer in tracklijst",
|
||||||
"LabelIncomplete": "Incompleet",
|
"LabelIncomplete": "Incompleet",
|
||||||
"LabelInProgress": "Bezig",
|
|
||||||
"LabelInterval": "Interval",
|
"LabelInterval": "Interval",
|
||||||
"LabelIntervalCustomDailyWeekly": "Aangepast dagelijks/wekelijks",
|
"LabelIntervalCustomDailyWeekly": "Aangepast dagelijks/wekelijks",
|
||||||
"LabelIntervalEvery12Hours": "Iedere 12 uur",
|
"LabelIntervalEvery12Hours": "Iedere 12 uur",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Onderdeel",
|
"LabelItem": "Onderdeel",
|
||||||
"LabelLanguage": "Taal",
|
"LabelLanguage": "Taal",
|
||||||
"LabelLanguageDefaultServer": "Standaard servertaal",
|
"LabelLanguageDefaultServer": "Standaard servertaal",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Laatst toegevoegde boek",
|
"LabelLastBookAdded": "Laatst toegevoegde boek",
|
||||||
"LabelLastBookUpdated": "Laatst bijgewerkte boek",
|
"LabelLastBookUpdated": "Laatst bijgewerkte boek",
|
||||||
"LabelLastSeen": "Laatst gezien",
|
"LabelLastSeen": "Laatst gezien",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Minder",
|
"LabelLess": "Minder",
|
||||||
"LabelLibrariesAccessibleToUser": "Voor gebruiker toegankelijke bibliotheken",
|
"LabelLibrariesAccessibleToUser": "Voor gebruiker toegankelijke bibliotheken",
|
||||||
"LabelLibrary": "Bibliotheek",
|
"LabelLibrary": "Bibliotheek",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Bibliotheekonderdeel",
|
"LabelLibraryItem": "Bibliotheekonderdeel",
|
||||||
"LabelLibraryName": "Bibliotheeknaam",
|
"LabelLibraryName": "Bibliotheeknaam",
|
||||||
"LabelLimit": "Limiet",
|
"LabelLimit": "Limiet",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||||
"LabelMediaPlayer": "Mediaspeler",
|
"LabelMediaPlayer": "Mediaspeler",
|
||||||
"LabelMediaType": "Mediatype",
|
"LabelMediaType": "Mediatype",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Metadatabron",
|
|
||||||
"LabelMetaTag": "Meta-tag",
|
"LabelMetaTag": "Meta-tag",
|
||||||
"LabelMetaTags": "Meta-tags",
|
"LabelMetaTags": "Meta-tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||||
|
"LabelMetadataProvider": "Metadatabron",
|
||||||
"LabelMinute": "Minuut",
|
"LabelMinute": "Minuut",
|
||||||
"LabelMissing": "Ontbrekend",
|
"LabelMissing": "Ontbrekend",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Verteller",
|
"LabelNarrator": "Verteller",
|
||||||
"LabelNarrators": "Vertellers",
|
"LabelNarrators": "Vertellers",
|
||||||
"LabelNew": "Nieuw",
|
"LabelNew": "Nieuw",
|
||||||
|
"LabelNewPassword": "Nieuw wachtwoord",
|
||||||
"LabelNewestAuthors": "Nieuwste auteurs",
|
"LabelNewestAuthors": "Nieuwste auteurs",
|
||||||
"LabelNewestEpisodes": "Nieuwste afleveringen",
|
"LabelNewestEpisodes": "Nieuwste afleveringen",
|
||||||
"LabelNewPassword": "Nieuw wachtwoord",
|
|
||||||
"LabelNextBackupDate": "Volgende back-up datum",
|
"LabelNextBackupDate": "Volgende back-up datum",
|
||||||
"LabelNextScheduledRun": "Volgende geplande run",
|
"LabelNextScheduledRun": "Volgende geplande run",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "Geen afleveringen geselecteerd",
|
"LabelNoEpisodesSelected": "Geen afleveringen geselecteerd",
|
||||||
"LabelNotes": "Notities",
|
|
||||||
"LabelNotFinished": "Niet Voltooid",
|
"LabelNotFinished": "Niet Voltooid",
|
||||||
|
"LabelNotStarted": "Niet Gestart",
|
||||||
|
"LabelNotes": "Notities",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
"LabelNotificationAppriseURL": "Apprise URL(s)",
|
||||||
"LabelNotificationAvailableVariables": "Beschikbare variabelen",
|
"LabelNotificationAvailableVariables": "Beschikbare variabelen",
|
||||||
"LabelNotificationBodyTemplate": "Body-template",
|
"LabelNotificationBodyTemplate": "Body-template",
|
||||||
"LabelNotificationEvent": "Notificatie gebeurtenis",
|
"LabelNotificationEvent": "Notificatie gebeurtenis",
|
||||||
|
"LabelNotificationTitleTemplate": "Titel-template",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Max mislukte pogingen",
|
"LabelNotificationsMaxFailedAttempts": "Max mislukte pogingen",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Notificaties worden uitgeschakeld als verzenden zo vaak mislukt",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Notificaties worden uitgeschakeld als verzenden zo vaak mislukt",
|
||||||
"LabelNotificationsMaxQueueSize": "Max rijgrootte voor notificatie gebeurtenissen",
|
"LabelNotificationsMaxQueueSize": "Max rijgrootte voor notificatie gebeurtenissen",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Gebeurtenissen zijn beperkt tot 1 aftrap per seconde. Gebeurtenissen zullen genegeerd worden als de rij aan de maximale grootte zit. Dit voorkomt notificatie-spamming.",
|
"LabelNotificationsMaxQueueSizeHelp": "Gebeurtenissen zijn beperkt tot 1 aftrap per seconde. Gebeurtenissen zullen genegeerd worden als de rij aan de maximale grootte zit. Dit voorkomt notificatie-spamming.",
|
||||||
"LabelNotificationTitleTemplate": "Titel-template",
|
|
||||||
"LabelNotStarted": "Niet Gestart",
|
|
||||||
"LabelNumberOfBooks": "Aantal Boeken",
|
"LabelNumberOfBooks": "Aantal Boeken",
|
||||||
"LabelNumberOfEpisodes": "# afleveringen",
|
"LabelNumberOfEpisodes": "# afleveringen",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Kan uploaden",
|
"LabelPermissionsUpload": "Kan uploaden",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Foto pad/URL",
|
"LabelPhotoPathURL": "Foto pad/URL",
|
||||||
"LabelPlaylists": "Afspeellijsten",
|
|
||||||
"LabelPlayMethod": "Afspeelwijze",
|
"LabelPlayMethod": "Afspeelwijze",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Afspeellijsten",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Podcast zoekregio",
|
"LabelPodcastSearchRegion": "Podcast zoekregio",
|
||||||
"LabelPodcastType": "Podcasttype",
|
"LabelPodcastType": "Podcasttype",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Poort",
|
"LabelPort": "Poort",
|
||||||
"LabelPrefixesToIgnore": "Te negeren voorzetsels (ongeacht hoofdlettergebruik)",
|
"LabelPrefixesToIgnore": "Te negeren voorzetsels (ongeacht hoofdlettergebruik)",
|
||||||
"LabelPreventIndexing": "Voorkom indexering van je feed door iTunes- en Google podcastmappen",
|
"LabelPreventIndexing": "Voorkom indexering van je feed door iTunes- en Google podcastmappen",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Voortgang",
|
"LabelProgress": "Voortgang",
|
||||||
"LabelProvider": "Bron",
|
"LabelProvider": "Bron",
|
||||||
"LabelPubDate": "Publicatiedatum",
|
"LabelPubDate": "Publicatiedatum",
|
||||||
"LabelPublisher": "Uitgever",
|
|
||||||
"LabelPublishYear": "Jaar van uitgave",
|
"LabelPublishYear": "Jaar van uitgave",
|
||||||
"LabelRead": "Lees",
|
"LabelPublisher": "Uitgever",
|
||||||
"LabelReadAgain": "Lees opnieuw",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Lees ebook zonder voortgang bij te houden",
|
|
||||||
"LabelRecentlyAdded": "Recent toegevoegd",
|
|
||||||
"LabelRecentSeries": "Recente series",
|
|
||||||
"LabelRecommended": "Aangeraden",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Regio",
|
|
||||||
"LabelReleaseDate": "Verschijningsdatum",
|
|
||||||
"LabelRemoveCover": "Verwijder cover",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Aangepast e-mailadres eigenaar",
|
"LabelRSSFeedCustomOwnerEmail": "Aangepast e-mailadres eigenaar",
|
||||||
"LabelRSSFeedCustomOwnerName": "Aangepaste naam eigenaar",
|
"LabelRSSFeedCustomOwnerName": "Aangepaste naam eigenaar",
|
||||||
"LabelRSSFeedOpen": "RSS-feed open",
|
"LabelRSSFeedOpen": "RSS-feed open",
|
||||||
"LabelRSSFeedPreventIndexing": "Voorkom indexering",
|
"LabelRSSFeedPreventIndexing": "Voorkom indexering",
|
||||||
"LabelRSSFeedSlug": "RSS-feed slug",
|
"LabelRSSFeedSlug": "RSS-feed slug",
|
||||||
"LabelRSSFeedURL": "RSS-feed URL",
|
"LabelRSSFeedURL": "RSS-feed URL",
|
||||||
|
"LabelRead": "Lees",
|
||||||
|
"LabelReadAgain": "Lees opnieuw",
|
||||||
|
"LabelReadEbookWithoutProgress": "Lees ebook zonder voortgang bij te houden",
|
||||||
|
"LabelRecentSeries": "Recente series",
|
||||||
|
"LabelRecentlyAdded": "Recent toegevoegd",
|
||||||
|
"LabelRecommended": "Aangeraden",
|
||||||
|
"LabelRedo": "Redo",
|
||||||
|
"LabelRegion": "Regio",
|
||||||
|
"LabelReleaseDate": "Verschijningsdatum",
|
||||||
|
"LabelRemoveCover": "Verwijder cover",
|
||||||
|
"LabelRowsPerPage": "Rows per page",
|
||||||
"LabelSearchTerm": "Zoekterm",
|
"LabelSearchTerm": "Zoekterm",
|
||||||
"LabelSearchTitle": "Zoek titel",
|
"LabelSearchTitle": "Zoek titel",
|
||||||
"LabelSearchTitleOrASIN": "Zoek titel of ASIN",
|
"LabelSearchTitleOrASIN": "Zoek titel of ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Slaaptimer",
|
"LabelSleepTimer": "Slaaptimer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Start",
|
"LabelStart": "Start",
|
||||||
|
"LabelStartTime": "Starttijd",
|
||||||
"LabelStarted": "Gestart",
|
"LabelStarted": "Gestart",
|
||||||
"LabelStartedAt": "Gestart op",
|
"LabelStartedAt": "Gestart op",
|
||||||
"LabelStartTime": "Starttijd",
|
|
||||||
"LabelStatsAudioTracks": "Audiotracks",
|
"LabelStatsAudioTracks": "Audiotracks",
|
||||||
"LabelStatsAuthors": "Auteurs",
|
"LabelStatsAuthors": "Auteurs",
|
||||||
"LabelStatsBestDay": "Beste dag",
|
"LabelStatsBestDay": "Beste dag",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Onbekend",
|
"LabelUnknown": "Onbekend",
|
||||||
"LabelUpdateCover": "Cover bijwerken",
|
"LabelUpdateCover": "Cover bijwerken",
|
||||||
"LabelUpdateCoverHelp": "Sta overschrijven van bestaande covers toe voor de geselecteerde boeken wanneer een match is gevonden",
|
"LabelUpdateCoverHelp": "Sta overschrijven van bestaande covers toe voor de geselecteerde boeken wanneer een match is gevonden",
|
||||||
"LabelUpdatedAt": "Bijgewerkt op",
|
|
||||||
"LabelUpdateDetails": "Details bijwerken",
|
"LabelUpdateDetails": "Details bijwerken",
|
||||||
"LabelUpdateDetailsHelp": "Sta overschrijven van bestaande details toe voor de geselecteerde boeken wanneer een match is gevonden",
|
"LabelUpdateDetailsHelp": "Sta overschrijven van bestaande details toe voor de geselecteerde boeken wanneer een match is gevonden",
|
||||||
|
"LabelUpdatedAt": "Bijgewerkt op",
|
||||||
"LabelUploaderDragAndDrop": "Slepen & neerzeten van bestanden of mappen",
|
"LabelUploaderDragAndDrop": "Slepen & neerzeten van bestanden of mappen",
|
||||||
"LabelUploaderDropFiles": "Bestanden neerzetten",
|
"LabelUploaderDropFiles": "Bestanden neerzetten",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Back-ups omvatten gebruikers, gebruikers' voortgang, bibliotheekonderdeeldetails, serverinstellingen en afbeeldingen bewaard in <code>/metadata/items</code> & <code>/metadata/authors</code>. Back-ups <strong>bevatten niet</strong> de bestanden bewaard in je bibliotheekmappen.",
|
"MessageBackupsDescription": "Back-ups omvatten gebruikers, gebruikers' voortgang, bibliotheekonderdeeldetails, serverinstellingen en afbeeldingen bewaard in <code>/metadata/items</code> & <code>/metadata/authors</code>. Back-ups <strong>bevatten niet</strong> de bestanden bewaard in je bibliotheekmappen.",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match zal proberen ontbrekende covers en metadata voor de geselecteerde onderdelen te matchten. Schakel de opties hieronder in om Quick Match toe te staan bestaande covers en/of metadata te overschrijven.",
|
"MessageBatchQuickMatchDescription": "Quick Match zal proberen ontbrekende covers en metadata voor de geselecteerde onderdelen te matchten. Schakel de opties hieronder in om Quick Match toe te staan bestaande covers en/of metadata te overschrijven.",
|
||||||
"MessageBookshelfNoCollections": "Je hebt nog geen collecties gemaakt",
|
"MessageBookshelfNoCollections": "Je hebt nog geen collecties gemaakt",
|
||||||
"MessageBookshelfNoResultsForFilter": "Geen resultaten voor filter \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Geen RSS-feeds geopend",
|
"MessageBookshelfNoRSSFeeds": "Geen RSS-feeds geopend",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Geen resultaten voor filter \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "Je hebt geen series",
|
"MessageBookshelfNoSeries": "Je hebt geen series",
|
||||||
"MessageChapterEndIsAfter": "Hoofdstukeinde is na het einde van je audioboek",
|
"MessageChapterEndIsAfter": "Hoofdstukeinde is na het einde van je audioboek",
|
||||||
"MessageChapterErrorFirstNotZero": "Eerste hoofdstuk moet starten op 0",
|
"MessageChapterErrorFirstNotZero": "Eerste hoofdstuk moet starten op 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Weet je zeker dat je alle boeken in deze serie wil markeren als voltooid?",
|
"MessageConfirmMarkSeriesFinished": "Weet je zeker dat je alle boeken in deze serie wil markeren als voltooid?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Weet je zeker dat je alle boeken in deze serie wil markeren als niet voltooid?",
|
"MessageConfirmMarkSeriesNotFinished": "Weet je zeker dat je alle boeken in deze serie wil markeren als niet voltooid?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||||
"MessageConfirmRemoveAllChapters": "Weet je zeker dat je alle hoofdstukken wil verwijderen?",
|
"MessageConfirmRemoveAllChapters": "Weet je zeker dat je alle hoofdstukken wil verwijderen?",
|
||||||
"MessageConfirmRemoveAuthor": "Weet je zeker dat je auteur \"{0}\" wil verwijderen?",
|
"MessageConfirmRemoveAuthor": "Weet je zeker dat je auteur \"{0}\" wil verwijderen?",
|
||||||
"MessageConfirmRemoveCollection": "Weet je zeker dat je de collectie \"{0}\" wil verwijderen?",
|
"MessageConfirmRemoveCollection": "Weet je zeker dat je de collectie \"{0}\" wil verwijderen?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Weet je zeker dat je tag \"{0}\" wil hernoemen naar\"{1}\" voor alle onderdelen?",
|
"MessageConfirmRenameTag": "Weet je zeker dat je tag \"{0}\" wil hernoemen naar\"{1}\" voor alle onderdelen?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Opmerking: Deze tag bestaat al, dus zullen ze worden samengevoegd.",
|
"MessageConfirmRenameTagMergeNote": "Opmerking: Deze tag bestaat al, dus zullen ze worden samengevoegd.",
|
||||||
"MessageConfirmRenameTagWarning": "Waarschuwing! Een gelijknamige tag met ander hoofdlettergebruik bestaat al: \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Waarschuwing! Een gelijknamige tag met ander hoofdlettergebruik bestaat al: \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Weet je zeker dat je {0} ebook \"{1}\" naar apparaat \"{2}\" wil sturen?",
|
"MessageConfirmSendEbookToDevice": "Weet je zeker dat je {0} ebook \"{1}\" naar apparaat \"{2}\" wil sturen?",
|
||||||
"MessageDownloadingEpisode": "Aflevering aan het dowloaden",
|
"MessageDownloadingEpisode": "Aflevering aan het dowloaden",
|
||||||
"MessageDragFilesIntoTrackOrder": "Sleep bestanden in de juiste trackvolgorde",
|
"MessageDragFilesIntoTrackOrder": "Sleep bestanden in de juiste trackvolgorde",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Geen series",
|
"MessageNoSeries": "Geen series",
|
||||||
"MessageNoTags": "Geen tags",
|
"MessageNoTags": "Geen tags",
|
||||||
"MessageNoTasksRunning": "Geen lopende taken",
|
"MessageNoTasksRunning": "Geen lopende taken",
|
||||||
"MessageNotYetImplemented": "Nog niet geimplementeerd",
|
|
||||||
"MessageNoUpdateNecessary": "Geen bijwerking noodzakelijk",
|
"MessageNoUpdateNecessary": "Geen bijwerking noodzakelijk",
|
||||||
"MessageNoUpdatesWereNecessary": "Geen bijwerkingen waren noodzakelijk",
|
"MessageNoUpdatesWereNecessary": "Geen bijwerkingen waren noodzakelijk",
|
||||||
"MessageNoUserPlaylists": "Je hebt geen afspeellijsten",
|
"MessageNoUserPlaylists": "Je hebt geen afspeellijsten",
|
||||||
|
"MessageNotYetImplemented": "Nog niet geimplementeerd",
|
||||||
"MessageOr": "of",
|
"MessageOr": "of",
|
||||||
"MessagePauseChapter": "Pauzeer afspelen hoofdstuk",
|
"MessagePauseChapter": "Pauzeer afspelen hoofdstuk",
|
||||||
"MessagePlayChapter": "Luister naar begin van hoofdstuk",
|
"MessagePlayChapter": "Luister naar begin van hoofdstuk",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Afspeellijst bijgewerkt",
|
"ToastPlaylistUpdateSuccess": "Afspeellijst bijgewerkt",
|
||||||
"ToastPodcastCreateFailed": "Podcast aanmaken mislukt",
|
"ToastPodcastCreateFailed": "Podcast aanmaken mislukt",
|
||||||
"ToastPodcastCreateSuccess": "Podcast aangemaakt",
|
"ToastPodcastCreateSuccess": "Podcast aangemaakt",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Onderdeel verwijderen uit collectie mislukt",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Onderdeel verwijderd uit collectie",
|
|
||||||
"ToastRSSFeedCloseFailed": "Sluiten RSS-feed mislukt",
|
"ToastRSSFeedCloseFailed": "Sluiten RSS-feed mislukt",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS-feed gesloten",
|
"ToastRSSFeedCloseSuccess": "RSS-feed gesloten",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Onderdeel verwijderen uit collectie mislukt",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Onderdeel verwijderd uit collectie",
|
||||||
"ToastSendEbookToDeviceFailed": "Ebook naar apparaat sturen mislukt",
|
"ToastSendEbookToDeviceFailed": "Ebook naar apparaat sturen mislukt",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook verstuurd naar apparaat \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook verstuurd naar apparaat \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Bijwerken serie mislukt",
|
"ToastSeriesUpdateFailed": "Bijwerken serie mislukt",
|
||||||
|
|||||||
+55
-42
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Bruk",
|
"ButtonApply": "Bruk",
|
||||||
"ButtonApplyChapters": "Bruk kapittel",
|
"ButtonApplyChapters": "Bruk kapittel",
|
||||||
"ButtonAuthors": "Forfatter",
|
"ButtonAuthors": "Forfatter",
|
||||||
|
"ButtonBack": "Tilbake",
|
||||||
"ButtonBrowseForFolder": "Bla gjennom mappe",
|
"ButtonBrowseForFolder": "Bla gjennom mappe",
|
||||||
"ButtonCancel": "Avbryt",
|
"ButtonCancel": "Avbryt",
|
||||||
"ButtonCancelEncode": "Avbryt Encode",
|
"ButtonCancelEncode": "Avbryt Encode",
|
||||||
@@ -51,15 +52,15 @@
|
|||||||
"ButtonPause": "Pause",
|
"ButtonPause": "Pause",
|
||||||
"ButtonPlay": "Spill av",
|
"ButtonPlay": "Spill av",
|
||||||
"ButtonPlaying": "Spiller av",
|
"ButtonPlaying": "Spiller av",
|
||||||
"ButtonPlaylists": "Spilleliste",
|
"ButtonPlaylists": "Spillelister",
|
||||||
"ButtonPrevious": "Previous",
|
"ButtonPrevious": "Previous",
|
||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Previous Chapter",
|
||||||
"ButtonPurgeAllCache": "Tøm alle mellomlager",
|
"ButtonPurgeAllCache": "Tøm alle mellomlager",
|
||||||
"ButtonPurgeItemsCache": "Tøm mellomlager",
|
"ButtonPurgeItemsCache": "Tøm mellomlager",
|
||||||
"ButtonPurgeMediaProgress": "Slett medie fremgang",
|
|
||||||
"ButtonQueueAddItem": "Legg til kø",
|
"ButtonQueueAddItem": "Legg til kø",
|
||||||
"ButtonQueueRemoveItem": "Fjern fra kø",
|
"ButtonQueueRemoveItem": "Fjern fra kø",
|
||||||
"ButtonQuickMatch": "Kjapt søk",
|
"ButtonQuickMatch": "Kjapt søk",
|
||||||
|
"ButtonReScan": "Skann på nytt",
|
||||||
"ButtonRead": "Les",
|
"ButtonRead": "Les",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Fjern fra Fortsett å lytte",
|
"ButtonRemoveFromContinueListening": "Fjern fra Fortsett å lytte",
|
||||||
"ButtonRemoveFromContinueReading": "Fjern fra Fortsett å lese",
|
"ButtonRemoveFromContinueReading": "Fjern fra Fortsett å lese",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Fjern serie fra Fortsett serie",
|
"ButtonRemoveSeriesFromContinueSeries": "Fjern serie fra Fortsett serie",
|
||||||
"ButtonReScan": "Skann på nytt",
|
|
||||||
"ButtonReset": "Nullstill",
|
"ButtonReset": "Nullstill",
|
||||||
"ButtonResetToDefault": "Reset to default",
|
"ButtonResetToDefault": "Reset to default",
|
||||||
"ButtonRestore": "Gjenopprett",
|
"ButtonRestore": "Gjenopprett",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Konto",
|
"HeaderAccount": "Konto",
|
||||||
"HeaderAdvanced": "Avansert",
|
"HeaderAdvanced": "Avansert",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise notifikasjonsinstillinger",
|
"HeaderAppriseNotificationSettings": "Apprise notifikasjonsinstillinger",
|
||||||
"HeaderAudiobookTools": "Lydbok Filbehandlingsverktøy",
|
|
||||||
"HeaderAudioTracks": "Lydspor",
|
"HeaderAudioTracks": "Lydspor",
|
||||||
|
"HeaderAudiobookTools": "Lydbok Filbehandlingsverktøy",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Sikkerhetskopier",
|
"HeaderBackups": "Sikkerhetskopier",
|
||||||
"HeaderChangePassword": "Bytt passord",
|
"HeaderChangePassword": "Bytt passord",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Samlingsgjenstander",
|
"HeaderCollectionItems": "Samlingsgjenstander",
|
||||||
"HeaderCover": "Omslag",
|
"HeaderCover": "Omslag",
|
||||||
"HeaderCurrentDownloads": "Aktive nedlastinger",
|
"HeaderCurrentDownloads": "Aktive nedlastinger",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||||
"HeaderDetails": "Detaljer",
|
"HeaderDetails": "Detaljer",
|
||||||
"HeaderDownloadQueue": "Last ned kø",
|
"HeaderDownloadQueue": "Last ned kø",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Spillelisteelement",
|
"HeaderPlaylistItems": "Spillelisteelement",
|
||||||
"HeaderPodcastsToAdd": "Podcaster å legge til",
|
"HeaderPodcastsToAdd": "Podcaster å legge til",
|
||||||
"HeaderPreviewCover": "Forhåndsvis omslag",
|
"HeaderPreviewCover": "Forhåndsvis omslag",
|
||||||
"HeaderRemoveEpisode": "Fjern episode",
|
|
||||||
"HeaderRemoveEpisodes": "Fjern {0} episoder",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS Detailer",
|
"HeaderRSSFeedGeneral": "RSS Detailer",
|
||||||
"HeaderRSSFeedIsOpen": "RSS Feed er åpen",
|
"HeaderRSSFeedIsOpen": "RSS Feed er åpen",
|
||||||
"HeaderRSSFeeds": "RSS Feeder",
|
"HeaderRSSFeeds": "RSS Feeder",
|
||||||
|
"HeaderRemoveEpisode": "Fjern episode",
|
||||||
|
"HeaderRemoveEpisodes": "Fjern {0} episoder",
|
||||||
"HeaderSavedMediaProgress": "Lagret mediefremgang",
|
"HeaderSavedMediaProgress": "Lagret mediefremgang",
|
||||||
"HeaderSchedule": "Timeplan",
|
"HeaderSchedule": "Timeplan",
|
||||||
"HeaderScheduleLibraryScans": "Planlegg automatisk bibliotek skann",
|
"HeaderScheduleLibraryScans": "Planlegg automatisk bibliotek skann",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Gjest",
|
"LabelAccountTypeGuest": "Gjest",
|
||||||
"LabelAccountTypeUser": "Bruker",
|
"LabelAccountTypeUser": "Bruker",
|
||||||
"LabelActivity": "Aktivitet",
|
"LabelActivity": "Aktivitet",
|
||||||
"LabelAdded": "Lagt til",
|
|
||||||
"LabelAddedAt": "Dato lagt til ",
|
|
||||||
"LabelAddToCollection": "Legg til i samling",
|
"LabelAddToCollection": "Legg til i samling",
|
||||||
"LabelAddToCollectionBatch": "Legg {0} bøker til samling",
|
"LabelAddToCollectionBatch": "Legg {0} bøker til samling",
|
||||||
"LabelAddToPlaylist": "Legg til i spilleliste",
|
"LabelAddToPlaylist": "Legg til i spilleliste",
|
||||||
"LabelAddToPlaylistBatch": "Legg {0} enheter til i spilleliste",
|
"LabelAddToPlaylistBatch": "Legg {0} enheter til i spilleliste",
|
||||||
|
"LabelAdded": "Lagt til",
|
||||||
|
"LabelAddedAt": "Tillagt",
|
||||||
"LabelAdminUsersOnly": "Admin users only",
|
"LabelAdminUsersOnly": "Admin users only",
|
||||||
"LabelAll": "Alle",
|
"LabelAll": "Alle",
|
||||||
"LabelAllUsers": "Alle brukere",
|
"LabelAllUsers": "Alle brukere",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Endre passord",
|
"LabelChangePassword": "Endre passord",
|
||||||
"LabelChannels": "Kanaler",
|
"LabelChannels": "Kanaler",
|
||||||
|
"LabelChapterTitle": "Kapittel tittel",
|
||||||
"LabelChapters": "Kapitler",
|
"LabelChapters": "Kapitler",
|
||||||
"LabelChaptersFound": "kapitler funnet",
|
"LabelChaptersFound": "kapitler funnet",
|
||||||
"LabelChapterTitle": "Kapittel tittel",
|
|
||||||
"LabelClickForMoreInfo": "Click for more info",
|
"LabelClickForMoreInfo": "Click for more info",
|
||||||
"LabelClosePlayer": "Lukk spiller",
|
"LabelClosePlayer": "Lukk spiller",
|
||||||
"LabelCodec": "Kodek",
|
"LabelCodec": "Kodek",
|
||||||
@@ -246,9 +247,9 @@
|
|||||||
"LabelCollections": "Samlings",
|
"LabelCollections": "Samlings",
|
||||||
"LabelComplete": "Fullfør",
|
"LabelComplete": "Fullfør",
|
||||||
"LabelConfirmPassword": "Bekreft passord",
|
"LabelConfirmPassword": "Bekreft passord",
|
||||||
"LabelContinueListening": "Forsett å lytte",
|
"LabelContinueListening": "Fortsett lytting",
|
||||||
"LabelContinueReading": "Fortsett å lese",
|
"LabelContinueReading": "Fortsett lesing",
|
||||||
"LabelContinueSeries": "Fortsett serie",
|
"LabelContinueSeries": "Fortsett serier",
|
||||||
"LabelCover": "Omslag",
|
"LabelCover": "Omslag",
|
||||||
"LabelCoverImageURL": "Omslagsbilde URL",
|
"LabelCoverImageURL": "Omslagsbilde URL",
|
||||||
"LabelCreatedAt": "Dato opprettet",
|
"LabelCreatedAt": "Dato opprettet",
|
||||||
@@ -266,7 +267,7 @@
|
|||||||
"LabelDirectory": "Mappe",
|
"LabelDirectory": "Mappe",
|
||||||
"LabelDiscFromFilename": "Disk fra filnavn",
|
"LabelDiscFromFilename": "Disk fra filnavn",
|
||||||
"LabelDiscFromMetadata": "Disk fra metadata",
|
"LabelDiscFromMetadata": "Disk fra metadata",
|
||||||
"LabelDiscover": "Oppdag",
|
"LabelDiscover": "Oppdagelse",
|
||||||
"LabelDownload": "Last ned",
|
"LabelDownload": "Last ned",
|
||||||
"LabelDownloadNEpisodes": "Last ned {0} episoder",
|
"LabelDownloadNEpisodes": "Last ned {0} episoder",
|
||||||
"LabelDuration": "Varighet",
|
"LabelDuration": "Varighet",
|
||||||
@@ -275,10 +276,12 @@
|
|||||||
"LabelDurationComparisonShorter": "({0} shorter)",
|
"LabelDurationComparisonShorter": "({0} shorter)",
|
||||||
"LabelDurationFound": "Varighet funnet:",
|
"LabelDurationFound": "Varighet funnet:",
|
||||||
"LabelEbook": "Ebok",
|
"LabelEbook": "Ebok",
|
||||||
"LabelEbooks": "Ebøker",
|
"LabelEbooks": "E-bøker",
|
||||||
"LabelEdit": "Rediger",
|
"LabelEdit": "Rediger",
|
||||||
"LabelEmail": "Epost",
|
"LabelEmail": "Epost",
|
||||||
"LabelEmailSettingsFromAddress": "Fra Adresse",
|
"LabelEmailSettingsFromAddress": "Fra Adresse",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Sikker",
|
"LabelEmailSettingsSecure": "Sikker",
|
||||||
"LabelEmailSettingsSecureHelp": "Hvis aktivert, vil tilkoblingen bruke TLS under tilkobling til tjeneren. Ellers vil TLS bli brukt hvis tjeneren støtter STARTTLS utvidelsen. I de fleste tilfeller aktiver valget hvis du kobler til med port 465. Med port 587 eller 25 deaktiver valget. (fra nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Hvis aktivert, vil tilkoblingen bruke TLS under tilkobling til tjeneren. Ellers vil TLS bli brukt hvis tjeneren støtter STARTTLS utvidelsen. I de fleste tilfeller aktiver valget hvis du kobler til med port 465. Med port 587 eller 25 deaktiver valget. (fra nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test Adresse",
|
"LabelEmailSettingsTestAddress": "Test Adresse",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Mappe",
|
"LabelFolder": "Mappe",
|
||||||
"LabelFolders": "Mapper",
|
"LabelFolders": "Mapper",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Skrifttykkelse",
|
||||||
"LabelFontFamily": "Fontfamilie",
|
"LabelFontFamily": "Fontfamilie",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Font størrelse",
|
"LabelFontScale": "Font størrelse",
|
||||||
@@ -312,16 +316,16 @@
|
|||||||
"LabelGenre": "Sjanger",
|
"LabelGenre": "Sjanger",
|
||||||
"LabelGenres": "Sjangers",
|
"LabelGenres": "Sjangers",
|
||||||
"LabelHardDeleteFile": "Tving sletting av fil",
|
"LabelHardDeleteFile": "Tving sletting av fil",
|
||||||
"LabelHasEbook": "Har ebok",
|
"LabelHasEbook": "Har e-bok",
|
||||||
"LabelHasSupplementaryEbook": "Har supplerende ebok",
|
"LabelHasSupplementaryEbook": "Har komplimentær e-bok",
|
||||||
"LabelHighestPriority": "Highest priority",
|
"LabelHighestPriority": "Highest priority",
|
||||||
"LabelHost": "Tjener",
|
"LabelHost": "Tjener",
|
||||||
"LabelHour": "Time",
|
"LabelHour": "Time",
|
||||||
"LabelIcon": "Ikon",
|
"LabelIcon": "Ikon",
|
||||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
"LabelImageURLFromTheWeb": "Image URL from the web",
|
||||||
|
"LabelInProgress": "I gang",
|
||||||
"LabelIncludeInTracklist": "Inkluder i sporliste",
|
"LabelIncludeInTracklist": "Inkluder i sporliste",
|
||||||
"LabelIncomplete": "Ufullstendig",
|
"LabelIncomplete": "Ufullstendig",
|
||||||
"LabelInProgress": "I gang",
|
|
||||||
"LabelInterval": "Intervall",
|
"LabelInterval": "Intervall",
|
||||||
"LabelIntervalCustomDailyWeekly": "Egendefinert daglig/ukentlig",
|
"LabelIntervalCustomDailyWeekly": "Egendefinert daglig/ukentlig",
|
||||||
"LabelIntervalEvery12Hours": "Hver 12. timer",
|
"LabelIntervalEvery12Hours": "Hver 12. timer",
|
||||||
@@ -335,22 +339,24 @@
|
|||||||
"LabelItem": "Enhet",
|
"LabelItem": "Enhet",
|
||||||
"LabelLanguage": "Språk",
|
"LabelLanguage": "Språk",
|
||||||
"LabelLanguageDefaultServer": "Standard tjener språk",
|
"LabelLanguageDefaultServer": "Standard tjener språk",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Siste bok lagt til",
|
"LabelLastBookAdded": "Siste bok lagt til",
|
||||||
"LabelLastBookUpdated": "Siste bok oppdatert",
|
"LabelLastBookUpdated": "Siste bok oppdatert",
|
||||||
"LabelLastSeen": "Sist sett",
|
"LabelLastSeen": "Sist sett",
|
||||||
"LabelLastTime": "Siste tid",
|
"LabelLastTime": "Siste tid",
|
||||||
"LabelLastUpdate": "Siste oppdatering",
|
"LabelLastUpdate": "Siste oppdatering",
|
||||||
"LabelLayout": "Oppsett",
|
"LabelLayout": "Oppsett",
|
||||||
"LabelLayoutSinglePage": "Enkel side",
|
"LabelLayoutSinglePage": "Enkeltside",
|
||||||
"LabelLayoutSplitPage": "Del side",
|
"LabelLayoutSplitPage": "Del side",
|
||||||
"LabelLess": "Mindre",
|
"LabelLess": "Mindre",
|
||||||
"LabelLibrariesAccessibleToUser": "Biblioteker tilgjengelig for bruker",
|
"LabelLibrariesAccessibleToUser": "Biblioteker tilgjengelig for bruker",
|
||||||
"LabelLibrary": "Bibliotek",
|
"LabelLibrary": "Bibliotek",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Bibliotek enhet",
|
"LabelLibraryItem": "Bibliotek enhet",
|
||||||
"LabelLibraryName": "Bibliotek navn",
|
"LabelLibraryName": "Bibliotek navn",
|
||||||
"LabelLimit": "Begrensning",
|
"LabelLimit": "Begrensning",
|
||||||
"LabelLineSpacing": "Linjemellomrom",
|
"LabelLineSpacing": "Linjemellomrom",
|
||||||
"LabelListenAgain": "Lytt på nytt",
|
"LabelListenAgain": "Lytt igjen",
|
||||||
"LabelLogLevelDebug": "Debug",
|
"LabelLogLevelDebug": "Debug",
|
||||||
"LabelLogLevelInfo": "Info",
|
"LabelLogLevelInfo": "Info",
|
||||||
"LabelLogLevelWarn": "Warn",
|
"LabelLogLevelWarn": "Warn",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||||
"LabelMediaPlayer": "Mediespiller",
|
"LabelMediaPlayer": "Mediespiller",
|
||||||
"LabelMediaType": "Medie type",
|
"LabelMediaType": "Medie type",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Metadata Leverandør",
|
|
||||||
"LabelMetaTag": "Meta Tag",
|
"LabelMetaTag": "Meta Tag",
|
||||||
"LabelMetaTags": "Meta Tags",
|
"LabelMetaTags": "Meta Tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||||
|
"LabelMetadataProvider": "Metadata Leverandør",
|
||||||
"LabelMinute": "Minutt",
|
"LabelMinute": "Minutt",
|
||||||
"LabelMissing": "Mangler",
|
"LabelMissing": "Mangler",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Forteller",
|
"LabelNarrator": "Forteller",
|
||||||
"LabelNarrators": "Fortellere",
|
"LabelNarrators": "Fortellere",
|
||||||
"LabelNew": "Ny",
|
"LabelNew": "Ny",
|
||||||
|
"LabelNewPassword": "Nytt passord",
|
||||||
"LabelNewestAuthors": "Nyeste forfattere",
|
"LabelNewestAuthors": "Nyeste forfattere",
|
||||||
"LabelNewestEpisodes": "Nyeste episoder",
|
"LabelNewestEpisodes": "Nyeste episoder",
|
||||||
"LabelNewPassword": "Nytt passord",
|
|
||||||
"LabelNextBackupDate": "Neste sikkerhetskopi dato",
|
"LabelNextBackupDate": "Neste sikkerhetskopi dato",
|
||||||
"LabelNextScheduledRun": "Neste planlagte kjøring",
|
"LabelNextScheduledRun": "Neste planlagte kjøring",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "Ingen episoder valgt",
|
"LabelNoEpisodesSelected": "Ingen episoder valgt",
|
||||||
"LabelNotes": "Notat",
|
|
||||||
"LabelNotFinished": "Ikke fullført",
|
"LabelNotFinished": "Ikke fullført",
|
||||||
|
"LabelNotStarted": "Ikke startet",
|
||||||
|
"LabelNotes": "Notat",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL(er)",
|
"LabelNotificationAppriseURL": "Apprise URL(er)",
|
||||||
"LabelNotificationAvailableVariables": "Tilgjengelige variabler",
|
"LabelNotificationAvailableVariables": "Tilgjengelige variabler",
|
||||||
"LabelNotificationBodyTemplate": "Kroppsmal",
|
"LabelNotificationBodyTemplate": "Kroppsmal",
|
||||||
"LabelNotificationEvent": "Notifikasjons hendelse",
|
"LabelNotificationEvent": "Notifikasjons hendelse",
|
||||||
|
"LabelNotificationTitleTemplate": "Tittel mal",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Maks mislykkede forsøk",
|
"LabelNotificationsMaxFailedAttempts": "Maks mislykkede forsøk",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Notifikasjoner er deaktivert når de mislykkes på sende dette flere ganger",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Notifikasjoner er deaktivert når de mislykkes på sende dette flere ganger",
|
||||||
"LabelNotificationsMaxQueueSize": "Maks kø lengde for Notifikasjonshendelser",
|
"LabelNotificationsMaxQueueSize": "Maks kø lengde for Notifikasjonshendelser",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Hendelser er begrenset til avfyre 1 gang per sekund. Hendelser vil bli ignorert om køen er full. Dette forhindrer Notifikasjon spam.",
|
"LabelNotificationsMaxQueueSizeHelp": "Hendelser er begrenset til avfyre 1 gang per sekund. Hendelser vil bli ignorert om køen er full. Dette forhindrer Notifikasjon spam.",
|
||||||
"LabelNotificationTitleTemplate": "Tittel mal",
|
|
||||||
"LabelNotStarted": "Ikke startet",
|
|
||||||
"LabelNumberOfBooks": "Antall bøker",
|
"LabelNumberOfBooks": "Antall bøker",
|
||||||
"LabelNumberOfEpisodes": "Antall episoder",
|
"LabelNumberOfEpisodes": "Antall episoder",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Kan laste opp",
|
"LabelPermissionsUpload": "Kan laste opp",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Bilde sti/URL",
|
"LabelPhotoPathURL": "Bilde sti/URL",
|
||||||
"LabelPlaylists": "Spilleliste",
|
|
||||||
"LabelPlayMethod": "Avspillingsmetode",
|
"LabelPlayMethod": "Avspillingsmetode",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Spilleliste",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcaster",
|
|
||||||
"LabelPodcastSearchRegion": "Podcast-søkeområde",
|
"LabelPodcastSearchRegion": "Podcast-søkeområde",
|
||||||
"LabelPodcastType": "Podcast type",
|
"LabelPodcastType": "Podcast type",
|
||||||
|
"LabelPodcasts": "Podcaster",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Prefiks som skal ignoreres (skiller ikke mellom store og små bokstaver)",
|
"LabelPrefixesToIgnore": "Prefiks som skal ignoreres (skiller ikke mellom store og små bokstaver)",
|
||||||
"LabelPreventIndexing": "Forhindre at din feed fra å bli indeksert av iTunes og Google podcast kataloger",
|
"LabelPreventIndexing": "Forhindre at din feed fra å bli indeksert av iTunes og Google podcast kataloger",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Framgang",
|
"LabelProgress": "Framgang",
|
||||||
"LabelProvider": "Tilbyder",
|
"LabelProvider": "Tilbyder",
|
||||||
"LabelPubDate": "Publiseringsdato",
|
"LabelPubDate": "Publiseringsdato",
|
||||||
"LabelPublisher": "Forlegger",
|
|
||||||
"LabelPublishYear": "Publikasjonsår",
|
"LabelPublishYear": "Publikasjonsår",
|
||||||
|
"LabelPublisher": "Forlegger",
|
||||||
|
"LabelPublishers": "Publishers",
|
||||||
|
"LabelRSSFeedCustomOwnerEmail": "Tilpasset eier e-post",
|
||||||
|
"LabelRSSFeedCustomOwnerName": "Tilpasset eier Navn",
|
||||||
|
"LabelRSSFeedOpen": "RSS Feed åpne",
|
||||||
|
"LabelRSSFeedPreventIndexing": "Forhindre indeksering",
|
||||||
|
"LabelRSSFeedSlug": "RSS-informasjonskanalunderadresse",
|
||||||
|
"LabelRSSFeedURL": "RSS Feed URL",
|
||||||
"LabelRead": "Les",
|
"LabelRead": "Les",
|
||||||
"LabelReadAgain": "Les igjen",
|
"LabelReadAgain": "Les igjen",
|
||||||
"LabelReadEbookWithoutProgress": "Les ebok uten å beholde fremgang",
|
"LabelReadEbookWithoutProgress": "Les ebok uten å beholde fremgang",
|
||||||
"LabelRecentlyAdded": "Nylig lagt til",
|
|
||||||
"LabelRecentSeries": "Nylige serier",
|
"LabelRecentSeries": "Nylige serier",
|
||||||
|
"LabelRecentlyAdded": "Nylig tillagt",
|
||||||
"LabelRecommended": "Anbefalte",
|
"LabelRecommended": "Anbefalte",
|
||||||
"LabelRedo": "Redo",
|
"LabelRedo": "Redo",
|
||||||
"LabelRegion": "Region",
|
"LabelRegion": "Region",
|
||||||
"LabelReleaseDate": "Utgivelsesdato",
|
"LabelReleaseDate": "Utgivelsesdato",
|
||||||
"LabelRemoveCover": "Fjern omslag",
|
"LabelRemoveCover": "Fjern omslag",
|
||||||
"LabelRowsPerPage": "Rows per page",
|
"LabelRowsPerPage": "Rows per page",
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Tilpasset eier Epost",
|
|
||||||
"LabelRSSFeedCustomOwnerName": "Tilpasset eier Navn",
|
|
||||||
"LabelRSSFeedOpen": "RSS Feed åpne",
|
|
||||||
"LabelRSSFeedPreventIndexing": "Forhindre indeksering",
|
|
||||||
"LabelRSSFeedSlug": "RSS Feed Slug",
|
|
||||||
"LabelRSSFeedURL": "RSS Feed URL",
|
|
||||||
"LabelSearchTerm": "Søkeord",
|
"LabelSearchTerm": "Søkeord",
|
||||||
"LabelSearchTitle": "Søk tittel",
|
"LabelSearchTitle": "Søk tittel",
|
||||||
"LabelSearchTitleOrASIN": "Søk tittel eller ASIN",
|
"LabelSearchTitleOrASIN": "Søk tittel eller ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Sove-timer",
|
"LabelSleepTimer": "Sove-timer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Start",
|
"LabelStart": "Start",
|
||||||
|
"LabelStartTime": "Start Tid",
|
||||||
"LabelStarted": "Startet",
|
"LabelStarted": "Startet",
|
||||||
"LabelStartedAt": "Startet",
|
"LabelStartedAt": "Startet",
|
||||||
"LabelStartTime": "Start Tid",
|
|
||||||
"LabelStatsAudioTracks": "Lydspor",
|
"LabelStatsAudioTracks": "Lydspor",
|
||||||
"LabelStatsAuthors": "Forfattere",
|
"LabelStatsAuthors": "Forfattere",
|
||||||
"LabelStatsBestDay": "Beste dag",
|
"LabelStatsBestDay": "Beste dag",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Ukjent",
|
"LabelUnknown": "Ukjent",
|
||||||
"LabelUpdateCover": "Oppdater omslag",
|
"LabelUpdateCover": "Oppdater omslag",
|
||||||
"LabelUpdateCoverHelp": "Tillat overskriving av eksisterende omslag for de valgte bøkene når en lik bok er funnet",
|
"LabelUpdateCoverHelp": "Tillat overskriving av eksisterende omslag for de valgte bøkene når en lik bok er funnet",
|
||||||
"LabelUpdatedAt": "Oppdatert",
|
|
||||||
"LabelUpdateDetails": "Oppdater detaljer",
|
"LabelUpdateDetails": "Oppdater detaljer",
|
||||||
"LabelUpdateDetailsHelp": "Tillat overskriving av eksisterende detaljer for de valgte bøkene når en lik bok er funnet",
|
"LabelUpdateDetailsHelp": "Tillat overskriving av eksisterende detaljer for de valgte bøkene når en lik bok er funnet",
|
||||||
|
"LabelUpdatedAt": "Oppdatert",
|
||||||
"LabelUploaderDragAndDrop": "Dra og slipp filer eller mapper",
|
"LabelUploaderDragAndDrop": "Dra og slipp filer eller mapper",
|
||||||
"LabelUploaderDropFiles": "Slipp filer",
|
"LabelUploaderDropFiles": "Slipp filer",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||||
@@ -588,10 +597,13 @@
|
|||||||
"MessageAddToPlayerQueue": "Legg til i kø",
|
"MessageAddToPlayerQueue": "Legg til i kø",
|
||||||
"MessageAppriseDescription": "For å bruke denne funksjonen trenger du en instans av <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> kjørende eller ett api som vil håndere disse forespørslene. <br />Apprise API Url skal være den fulle URL stien for å sende Notifikasjonen, f.eks., hvis din API instans er hos <code>http://192.168.1.1:8337</code> vil du bruke <code>http://192.168.1.1:8337/notify</code>.",
|
"MessageAppriseDescription": "For å bruke denne funksjonen trenger du en instans av <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> kjørende eller ett api som vil håndere disse forespørslene. <br />Apprise API Url skal være den fulle URL stien for å sende Notifikasjonen, f.eks., hvis din API instans er hos <code>http://192.168.1.1:8337</code> vil du bruke <code>http://192.168.1.1:8337/notify</code>.",
|
||||||
"MessageBackupsDescription": "Sikkerhetskopier inkluderer, brukerfremgang, detaljer om bibliotekgjenstander, tjener instillinger og bilder lagret under <code>/metadata/items</code> og <code>/metadata/authors</code>. Sikkerhetskopier <strong>vil ikke</strong> inkludere filer som er lagret i bibliotek mappene.",
|
"MessageBackupsDescription": "Sikkerhetskopier inkluderer, brukerfremgang, detaljer om bibliotekgjenstander, tjener instillinger og bilder lagret under <code>/metadata/items</code> og <code>/metadata/authors</code>. Sikkerhetskopier <strong>vil ikke</strong> inkludere filer som er lagret i bibliotek mappene.",
|
||||||
|
"MessageBackupsLocationEditNote": "Merk: Endring av sikkerhetskopieringssted hverken endrer eller flytter eksisterende sikkerhetskopier",
|
||||||
|
"MessageBackupsLocationPathEmpty": "Sti til sikkerhetskopieringssted må angis",
|
||||||
"MessageBatchQuickMatchDescription": "Kjapt søk vil forsøke å legge til manglende omslag og metadata for de valgte gjenstandene. Aktiver dette valget for å tillate Kjapt søk til å overskrive eksisterende omslag og/eller metadata.",
|
"MessageBatchQuickMatchDescription": "Kjapt søk vil forsøke å legge til manglende omslag og metadata for de valgte gjenstandene. Aktiver dette valget for å tillate Kjapt søk til å overskrive eksisterende omslag og/eller metadata.",
|
||||||
"MessageBookshelfNoCollections": "Du har ikke laget noen samlinger ennå",
|
"MessageBookshelfNoCollections": "Du har ikke laget noen samlinger ennå",
|
||||||
"MessageBookshelfNoResultsForFilter": "Ingen resultat for filter \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Ingen RSS feed er åpen",
|
"MessageBookshelfNoRSSFeeds": "Ingen RSS feed er åpen",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Ingen resultat for filter \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "Du har ingen serier",
|
"MessageBookshelfNoSeries": "Du har ingen serier",
|
||||||
"MessageChapterEndIsAfter": "Kapittel slutt er etter slutt av lydboken",
|
"MessageChapterEndIsAfter": "Kapittel slutt er etter slutt av lydboken",
|
||||||
"MessageChapterErrorFirstNotZero": "Første kapittel starter på 0",
|
"MessageChapterErrorFirstNotZero": "Første kapittel starter på 0",
|
||||||
@@ -612,7 +624,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Er du sikker på at du vil markere alle bøkene i serien som fullført?",
|
"MessageConfirmMarkSeriesFinished": "Er du sikker på at du vil markere alle bøkene i serien som fullført?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Er du sikker på at du vil markere alle bøkene i serien som ikke fullført?",
|
"MessageConfirmMarkSeriesNotFinished": "Er du sikker på at du vil markere alle bøkene i serien som ikke fullført?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||||
"MessageConfirmRemoveAllChapters": "Er du sikker på at du vil fjerne alle kapitler?",
|
"MessageConfirmRemoveAllChapters": "Er du sikker på at du vil fjerne alle kapitler?",
|
||||||
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Er du sikker på at du vil fjerne samling\"{0}\"?",
|
"MessageConfirmRemoveCollection": "Er du sikker på at du vil fjerne samling\"{0}\"?",
|
||||||
@@ -627,7 +641,6 @@
|
|||||||
"MessageConfirmRenameTag": "Er du sikker på at du vil endre tag \"{0}\" til \"{1}\" for alle gjenstandene?",
|
"MessageConfirmRenameTag": "Er du sikker på at du vil endre tag \"{0}\" til \"{1}\" for alle gjenstandene?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Notis: Denne taggen finnes allerede så de vil bli slått sammen.",
|
"MessageConfirmRenameTagMergeNote": "Notis: Denne taggen finnes allerede så de vil bli slått sammen.",
|
||||||
"MessageConfirmRenameTagWarning": "Advarsel! En lignende tag eksisterer allerede (med forsjellige store / små bokstaver) \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Advarsel! En lignende tag eksisterer allerede (med forsjellige store / små bokstaver) \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Er du sikker på at du vil sende {0} ebok \"{1}\" til enhet \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Er du sikker på at du vil sende {0} ebok \"{1}\" til enhet \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Laster ned episode",
|
"MessageDownloadingEpisode": "Laster ned episode",
|
||||||
"MessageDragFilesIntoTrackOrder": "Dra filene i rett spor rekkefølge",
|
"MessageDragFilesIntoTrackOrder": "Dra filene i rett spor rekkefølge",
|
||||||
@@ -681,10 +694,10 @@
|
|||||||
"MessageNoSeries": "Ingen serier",
|
"MessageNoSeries": "Ingen serier",
|
||||||
"MessageNoTags": "Ingen tags",
|
"MessageNoTags": "Ingen tags",
|
||||||
"MessageNoTasksRunning": "Ingen oppgaver kjører",
|
"MessageNoTasksRunning": "Ingen oppgaver kjører",
|
||||||
"MessageNotYetImplemented": "Ikke implementert ennå",
|
|
||||||
"MessageNoUpdateNecessary": "Ingen oppdatering nødvendig",
|
"MessageNoUpdateNecessary": "Ingen oppdatering nødvendig",
|
||||||
"MessageNoUpdatesWereNecessary": "Ingen oppdatering var nødvendig",
|
"MessageNoUpdatesWereNecessary": "Ingen oppdatering var nødvendig",
|
||||||
"MessageNoUserPlaylists": "Du har ingen spillelister",
|
"MessageNoUserPlaylists": "Du har ingen spillelister",
|
||||||
|
"MessageNotYetImplemented": "Ikke implementert ennå",
|
||||||
"MessageOr": "eller",
|
"MessageOr": "eller",
|
||||||
"MessagePauseChapter": "Pause avspilling av kapittel",
|
"MessagePauseChapter": "Pause avspilling av kapittel",
|
||||||
"MessagePlayChapter": "Lytter på begynnelsen av kapittel",
|
"MessagePlayChapter": "Lytter på begynnelsen av kapittel",
|
||||||
@@ -787,10 +800,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Spilleliste oppdatert",
|
"ToastPlaylistUpdateSuccess": "Spilleliste oppdatert",
|
||||||
"ToastPodcastCreateFailed": "Misslykkes å opprette podcast",
|
"ToastPodcastCreateFailed": "Misslykkes å opprette podcast",
|
||||||
"ToastPodcastCreateSuccess": "Podcast opprettet",
|
"ToastPodcastCreateSuccess": "Podcast opprettet",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Misslykkes å fjerne gjenstsand fra samling",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Gjenstand fjernet fra samling",
|
|
||||||
"ToastRSSFeedCloseFailed": "Misslykkes å lukke RSS feed",
|
"ToastRSSFeedCloseFailed": "Misslykkes å lukke RSS feed",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS feed lukket",
|
"ToastRSSFeedCloseSuccess": "RSS feed lukket",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Misslykkes å fjerne gjenstsand fra samling",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Gjenstand fjernet fra samling",
|
||||||
"ToastSendEbookToDeviceFailed": "Misslykkes å sende ebok",
|
"ToastSendEbookToDeviceFailed": "Misslykkes å sende ebok",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebok sendt til \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebok sendt til \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Misslykkes å oppdatere serie",
|
"ToastSeriesUpdateFailed": "Misslykkes å oppdatere serie",
|
||||||
|
|||||||
+184
-161
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Zatwierdź",
|
"ButtonApply": "Zatwierdź",
|
||||||
"ButtonApplyChapters": "Zatwierdź rozdziały",
|
"ButtonApplyChapters": "Zatwierdź rozdziały",
|
||||||
"ButtonAuthors": "Autorzy",
|
"ButtonAuthors": "Autorzy",
|
||||||
|
"ButtonBack": "Wstecz",
|
||||||
"ButtonBrowseForFolder": "Wyszukaj folder",
|
"ButtonBrowseForFolder": "Wyszukaj folder",
|
||||||
"ButtonCancel": "Anuluj",
|
"ButtonCancel": "Anuluj",
|
||||||
"ButtonCancelEncode": "Anuluj enkodowanie",
|
"ButtonCancelEncode": "Anuluj enkodowanie",
|
||||||
@@ -24,7 +25,7 @@
|
|||||||
"ButtonCreateBackup": "Utwórz kopię zapasową",
|
"ButtonCreateBackup": "Utwórz kopię zapasową",
|
||||||
"ButtonDelete": "Usuń",
|
"ButtonDelete": "Usuń",
|
||||||
"ButtonDownloadQueue": "Kolejka",
|
"ButtonDownloadQueue": "Kolejka",
|
||||||
"ButtonEdit": "Edit",
|
"ButtonEdit": "Edycja",
|
||||||
"ButtonEditChapters": "Edytuj rozdziały",
|
"ButtonEditChapters": "Edytuj rozdziały",
|
||||||
"ButtonEditPodcast": "Edytuj podcast",
|
"ButtonEditPodcast": "Edytuj podcast",
|
||||||
"ButtonForceReScan": "Wymuś ponowne skanowanie",
|
"ButtonForceReScan": "Wymuś ponowne skanowanie",
|
||||||
@@ -34,7 +35,7 @@
|
|||||||
"ButtonIssues": "Błędy",
|
"ButtonIssues": "Błędy",
|
||||||
"ButtonJumpBackward": "Skocz do tyłu",
|
"ButtonJumpBackward": "Skocz do tyłu",
|
||||||
"ButtonJumpForward": "Skocz do przodu",
|
"ButtonJumpForward": "Skocz do przodu",
|
||||||
"ButtonLatest": "Aktualna wersja:",
|
"ButtonLatest": "Aktualna wersja",
|
||||||
"ButtonLibrary": "Biblioteka",
|
"ButtonLibrary": "Biblioteka",
|
||||||
"ButtonLogout": "Wyloguj",
|
"ButtonLogout": "Wyloguj",
|
||||||
"ButtonLookup": "Importuj",
|
"ButtonLookup": "Importuj",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Poprzedni rozdział",
|
"ButtonPreviousChapter": "Poprzedni rozdział",
|
||||||
"ButtonPurgeAllCache": "Wyczyść dane tymczasowe",
|
"ButtonPurgeAllCache": "Wyczyść dane tymczasowe",
|
||||||
"ButtonPurgeItemsCache": "Wyczyść dane tymczasowe pozycji",
|
"ButtonPurgeItemsCache": "Wyczyść dane tymczasowe pozycji",
|
||||||
"ButtonPurgeMediaProgress": "Wyczyść postęp",
|
|
||||||
"ButtonQueueAddItem": "Dodaj do kolejki",
|
"ButtonQueueAddItem": "Dodaj do kolejki",
|
||||||
"ButtonQueueRemoveItem": "Usuń z kolejki",
|
"ButtonQueueRemoveItem": "Usuń z kolejki",
|
||||||
"ButtonQuickMatch": "Szybkie dopasowanie",
|
"ButtonQuickMatch": "Szybkie dopasowanie",
|
||||||
|
"ButtonReScan": "Ponowne skanowanie",
|
||||||
"ButtonRead": "Czytaj",
|
"ButtonRead": "Czytaj",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Usuń z listy odtwarzania",
|
"ButtonRemoveFromContinueListening": "Usuń z listy odtwarzania",
|
||||||
"ButtonRemoveFromContinueReading": "Usuń z Kontynuuj czytanie",
|
"ButtonRemoveFromContinueReading": "Usuń z Kontynuuj czytanie",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Usuń serię z listy odtwarzania",
|
"ButtonRemoveSeriesFromContinueSeries": "Usuń serię z listy odtwarzania",
|
||||||
"ButtonReScan": "Ponowne skanowanie",
|
|
||||||
"ButtonReset": "Resetowanie",
|
"ButtonReset": "Resetowanie",
|
||||||
"ButtonResetToDefault": "Przywróć ustawienia domyślne",
|
"ButtonResetToDefault": "Przywróć ustawienia domyślne",
|
||||||
"ButtonRestore": "Przywróć",
|
"ButtonRestore": "Przywróć",
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
"ButtonSelectFolderPath": "Wybierz ścieżkę folderu",
|
"ButtonSelectFolderPath": "Wybierz ścieżkę folderu",
|
||||||
"ButtonSeries": "Seria",
|
"ButtonSeries": "Seria",
|
||||||
"ButtonSetChaptersFromTracks": "Ustawiaj rozdziały na podstawie utworów",
|
"ButtonSetChaptersFromTracks": "Ustawiaj rozdziały na podstawie utworów",
|
||||||
"ButtonShare": "Share",
|
"ButtonShare": "Udostępnij",
|
||||||
"ButtonShiftTimes": "Przesunięcie czasowe",
|
"ButtonShiftTimes": "Przesunięcie czasowe",
|
||||||
"ButtonShow": "Pokaż",
|
"ButtonShow": "Pokaż",
|
||||||
"ButtonStartM4BEncode": "Eksportuj jako plik M4B",
|
"ButtonStartM4BEncode": "Eksportuj jako plik M4B",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Konto",
|
"HeaderAccount": "Konto",
|
||||||
"HeaderAdvanced": "Zaawansowane",
|
"HeaderAdvanced": "Zaawansowane",
|
||||||
"HeaderAppriseNotificationSettings": "Ustawienia powiadomień Apprise",
|
"HeaderAppriseNotificationSettings": "Ustawienia powiadomień Apprise",
|
||||||
"HeaderAudiobookTools": "Narzędzia do zarządzania audiobookami",
|
|
||||||
"HeaderAudioTracks": "Ścieżki audio",
|
"HeaderAudioTracks": "Ścieżki audio",
|
||||||
|
"HeaderAudiobookTools": "Narzędzia do zarządzania audiobookami",
|
||||||
"HeaderAuthentication": "Uwierzytelnianie",
|
"HeaderAuthentication": "Uwierzytelnianie",
|
||||||
"HeaderBackups": "Kopie zapasowe",
|
"HeaderBackups": "Kopie zapasowe",
|
||||||
"HeaderChangePassword": "Zmień hasło",
|
"HeaderChangePassword": "Zmień hasło",
|
||||||
@@ -114,16 +114,17 @@
|
|||||||
"HeaderCollection": "Kolekcja",
|
"HeaderCollection": "Kolekcja",
|
||||||
"HeaderCollectionItems": "Elementy kolekcji",
|
"HeaderCollectionItems": "Elementy kolekcji",
|
||||||
"HeaderCover": "Okładka",
|
"HeaderCover": "Okładka",
|
||||||
"HeaderCurrentDownloads": "Current Downloads",
|
"HeaderCurrentDownloads": "Obecnie ściągane",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMessageOnLogin": "Własny tekst podczas logowania",
|
||||||
|
"HeaderCustomMetadataProviders": "Niestandardowi dostawcy metadanych",
|
||||||
"HeaderDetails": "Szczegóły",
|
"HeaderDetails": "Szczegóły",
|
||||||
"HeaderDownloadQueue": "Download Queue",
|
"HeaderDownloadQueue": "Kolejka do ściągania",
|
||||||
"HeaderEbookFiles": "Ebook Files",
|
"HeaderEbookFiles": "Pliki Ebook",
|
||||||
"HeaderEmail": "Email",
|
"HeaderEmail": "Email",
|
||||||
"HeaderEmailSettings": "Email Settings",
|
"HeaderEmailSettings": "Ustawienia e-mail",
|
||||||
"HeaderEpisodes": "Rozdziały",
|
"HeaderEpisodes": "Rozdziały",
|
||||||
"HeaderEreaderDevices": "Ereader Devices",
|
"HeaderEreaderDevices": "Czytniki",
|
||||||
"HeaderEreaderSettings": "Ereader Settings",
|
"HeaderEreaderSettings": "Ustawienia czytnika",
|
||||||
"HeaderFiles": "Pliki",
|
"HeaderFiles": "Pliki",
|
||||||
"HeaderFindChapters": "Wyszukaj rozdziały",
|
"HeaderFindChapters": "Wyszukaj rozdziały",
|
||||||
"HeaderIgnoredFiles": "Zignoruj pliki",
|
"HeaderIgnoredFiles": "Zignoruj pliki",
|
||||||
@@ -140,9 +141,9 @@
|
|||||||
"HeaderLogs": "Logi",
|
"HeaderLogs": "Logi",
|
||||||
"HeaderManageGenres": "Zarządzaj gatunkami",
|
"HeaderManageGenres": "Zarządzaj gatunkami",
|
||||||
"HeaderManageTags": "Zarządzaj tagami",
|
"HeaderManageTags": "Zarządzaj tagami",
|
||||||
"HeaderMapDetails": "Map details",
|
"HeaderMapDetails": "Szczegóły mapowania",
|
||||||
"HeaderMatch": "Dopasuj",
|
"HeaderMatch": "Dopasuj",
|
||||||
"HeaderMetadataOrderOfPrecedence": "Metadata order of precedence",
|
"HeaderMetadataOrderOfPrecedence": "Kolejność metadanych",
|
||||||
"HeaderMetadataToEmbed": "Osadź metadane",
|
"HeaderMetadataToEmbed": "Osadź metadane",
|
||||||
"HeaderNewAccount": "Nowe konto",
|
"HeaderNewAccount": "Nowe konto",
|
||||||
"HeaderNewLibrary": "Nowa biblioteka",
|
"HeaderNewLibrary": "Nowa biblioteka",
|
||||||
@@ -152,16 +153,16 @@
|
|||||||
"HeaderOtherFiles": "Inne pliki",
|
"HeaderOtherFiles": "Inne pliki",
|
||||||
"HeaderPasswordAuthentication": "Uwierzytelnianie hasłem",
|
"HeaderPasswordAuthentication": "Uwierzytelnianie hasłem",
|
||||||
"HeaderPermissions": "Uprawnienia",
|
"HeaderPermissions": "Uprawnienia",
|
||||||
"HeaderPlayerQueue": "Player Queue",
|
"HeaderPlayerQueue": "Kolejka odtwarzania",
|
||||||
"HeaderPlaylist": "Playlist",
|
"HeaderPlaylist": "Playlista",
|
||||||
"HeaderPlaylistItems": "Playlist Items",
|
"HeaderPlaylistItems": "Pozycje listy odtwarzania",
|
||||||
"HeaderPodcastsToAdd": "Podcasty do dodania",
|
"HeaderPodcastsToAdd": "Podcasty do dodania",
|
||||||
"HeaderPreviewCover": "Podgląd okładki",
|
"HeaderPreviewCover": "Podgląd okładki",
|
||||||
"HeaderRemoveEpisode": "Usuń odcinek",
|
|
||||||
"HeaderRemoveEpisodes": "Usuń {0} odcinków",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS Details",
|
"HeaderRSSFeedGeneral": "RSS Details",
|
||||||
"HeaderRSSFeedIsOpen": "Kanał RSS jest otwarty",
|
"HeaderRSSFeedIsOpen": "Kanał RSS jest otwarty",
|
||||||
"HeaderRSSFeeds": "RSS Feeds",
|
"HeaderRSSFeeds": "RSS Feeds",
|
||||||
|
"HeaderRemoveEpisode": "Usuń odcinek",
|
||||||
|
"HeaderRemoveEpisodes": "Usuń {0} odcinków",
|
||||||
"HeaderSavedMediaProgress": "Zapisany postęp",
|
"HeaderSavedMediaProgress": "Zapisany postęp",
|
||||||
"HeaderSchedule": "Harmonogram",
|
"HeaderSchedule": "Harmonogram",
|
||||||
"HeaderScheduleLibraryScans": "Zaplanuj automatyczne skanowanie biblioteki",
|
"HeaderScheduleLibraryScans": "Zaplanuj automatyczne skanowanie biblioteki",
|
||||||
@@ -173,56 +174,56 @@
|
|||||||
"HeaderSettingsGeneral": "Ogólne",
|
"HeaderSettingsGeneral": "Ogólne",
|
||||||
"HeaderSettingsScanner": "Skanowanie",
|
"HeaderSettingsScanner": "Skanowanie",
|
||||||
"HeaderSleepTimer": "Wyłącznik czasowy",
|
"HeaderSleepTimer": "Wyłącznik czasowy",
|
||||||
"HeaderStatsLargestItems": "Largest Items",
|
"HeaderStatsLargestItems": "Największe pozycje",
|
||||||
"HeaderStatsLongestItems": "Najdłuższe pozycje (hrs)",
|
"HeaderStatsLongestItems": "Najdłuższe pozycje (hrs)",
|
||||||
"HeaderStatsMinutesListeningChart": "Czas słuchania w minutach (ostatnie 7 dni)",
|
"HeaderStatsMinutesListeningChart": "Czas słuchania w minutach (ostatnie 7 dni)",
|
||||||
"HeaderStatsRecentSessions": "Ostatnie sesje",
|
"HeaderStatsRecentSessions": "Ostatnie sesje",
|
||||||
"HeaderStatsTop10Authors": "Top 10 Autorów",
|
"HeaderStatsTop10Authors": "Top 10 Autorów",
|
||||||
"HeaderStatsTop5Genres": "Top 5 Gatunków",
|
"HeaderStatsTop5Genres": "Top 5 Gatunków",
|
||||||
"HeaderTableOfContents": "Table of Contents",
|
"HeaderTableOfContents": "Spis treści",
|
||||||
"HeaderTools": "Narzędzia",
|
"HeaderTools": "Narzędzia",
|
||||||
"HeaderUpdateAccount": "Zaktualizuj konto",
|
"HeaderUpdateAccount": "Zaktualizuj konto",
|
||||||
"HeaderUpdateAuthor": "Zaktualizuj autorów",
|
"HeaderUpdateAuthor": "Zaktualizuj autorów",
|
||||||
"HeaderUpdateDetails": "Zaktualizuj szczegóły",
|
"HeaderUpdateDetails": "Zaktualizuj szczegóły",
|
||||||
"HeaderUpdateLibrary": "Zaktualizuj bibliotekę",
|
"HeaderUpdateLibrary": "Zaktualizuj bibliotekę",
|
||||||
"HeaderUsers": "Użytkownicy",
|
"HeaderUsers": "Użytkownicy",
|
||||||
"HeaderYearReview": "Year {0} in Review",
|
"HeaderYearReview": "Podsumowanie roku {0}",
|
||||||
"HeaderYourStats": "Twoje statystyki",
|
"HeaderYourStats": "Twoje statystyki",
|
||||||
"LabelAbridged": "Abridged",
|
"LabelAbridged": "Skrócony",
|
||||||
"LabelAbridgedChecked": "Abridged (checked)",
|
"LabelAbridgedChecked": "Skrócony (zaznaczono)",
|
||||||
"LabelAbridgedUnchecked": "Unabridged (unchecked)",
|
"LabelAbridgedUnchecked": "Nieskrócony (nie zaznaczone)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "Dostęp przez",
|
||||||
"LabelAccountType": "Typ konta",
|
"LabelAccountType": "Typ konta",
|
||||||
"LabelAccountTypeAdmin": "Administrator",
|
"LabelAccountTypeAdmin": "Administrator",
|
||||||
"LabelAccountTypeGuest": "Gość",
|
"LabelAccountTypeGuest": "Gość",
|
||||||
"LabelAccountTypeUser": "Użytkownik",
|
"LabelAccountTypeUser": "Użytkownik",
|
||||||
"LabelActivity": "Aktywność",
|
"LabelActivity": "Aktywność",
|
||||||
"LabelAdded": "Added",
|
|
||||||
"LabelAddedAt": "Dodano",
|
|
||||||
"LabelAddToCollection": "Dodaj do kolekcji",
|
"LabelAddToCollection": "Dodaj do kolekcji",
|
||||||
"LabelAddToCollectionBatch": "Dodaj {0} książki do kolekcji",
|
"LabelAddToCollectionBatch": "Dodaj {0} książki do kolekcji",
|
||||||
"LabelAddToPlaylist": "Add to Playlist",
|
"LabelAddToPlaylist": "Add to Playlist",
|
||||||
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
||||||
|
"LabelAdded": "Dodane",
|
||||||
|
"LabelAddedAt": "Dodano",
|
||||||
"LabelAdminUsersOnly": "Tylko użytkownicy administracyjni",
|
"LabelAdminUsersOnly": "Tylko użytkownicy administracyjni",
|
||||||
"LabelAll": "All",
|
"LabelAll": "Wszystkie",
|
||||||
"LabelAllUsers": "Wszyscy użytkownicy",
|
"LabelAllUsers": "Wszyscy użytkownicy",
|
||||||
"LabelAllUsersExcludingGuests": "Wszyscy użytkownicy z wyłączeniem gości",
|
"LabelAllUsersExcludingGuests": "Wszyscy użytkownicy z wyłączeniem gości",
|
||||||
"LabelAllUsersIncludingGuests": "Wszyscy użytkownicy, łącznie z gośćmi",
|
"LabelAllUsersIncludingGuests": "Wszyscy użytkownicy, łącznie z gośćmi",
|
||||||
"LabelAlreadyInYourLibrary": "Already in your library",
|
"LabelAlreadyInYourLibrary": "Już istnieje w twojej bibliotece",
|
||||||
"LabelAppend": "Append",
|
"LabelAppend": "Dołącz",
|
||||||
"LabelAuthor": "Autor",
|
"LabelAuthor": "Autor",
|
||||||
"LabelAuthorFirstLast": "Autor (Rosnąco)",
|
"LabelAuthorFirstLast": "Autor (Rosnąco)",
|
||||||
"LabelAuthorLastFirst": "Author (Malejąco)",
|
"LabelAuthorLastFirst": "Author (Malejąco)",
|
||||||
"LabelAuthors": "Autorzy",
|
"LabelAuthors": "Autorzy",
|
||||||
"LabelAutoDownloadEpisodes": "Automatyczne pobieranie odcinków",
|
"LabelAutoDownloadEpisodes": "Automatyczne pobieranie odcinków",
|
||||||
"LabelAutoFetchMetadata": "Auto Fetch Metadata",
|
"LabelAutoFetchMetadata": "Automatycznie pobierz metadane",
|
||||||
"LabelAutoFetchMetadataHelp": "Pobiera metadane dotyczące tytułu, autora i serii, aby usprawnić przesyłanie. Po przesłaniu może być konieczne dopasowanie dodatkowych metadanych.",
|
"LabelAutoFetchMetadataHelp": "Pobiera metadane dotyczące tytułu, autora i serii, aby usprawnić przesyłanie. Po przesłaniu może być konieczne dopasowanie dodatkowych metadanych.",
|
||||||
"LabelAutoLaunch": "Auto Launch",
|
"LabelAutoLaunch": "Uruchom automatycznie",
|
||||||
"LabelAutoLaunchDescription": "Redirect to the auth provider automatically when navigating to the login page (manual override path <code>/login?autoLaunch=0</code>)",
|
"LabelAutoLaunchDescription": "Redirect to the auth provider automatically when navigating to the login page (manual override path <code>/login?autoLaunch=0</code>)",
|
||||||
"LabelAutoRegister": "Auto Register",
|
"LabelAutoRegister": "Auto Register",
|
||||||
"LabelAutoRegisterDescription": "Automatically create new users after logging in",
|
"LabelAutoRegisterDescription": "Automatically create new users after logging in",
|
||||||
"LabelBackToUser": "Powrót",
|
"LabelBackToUser": "Powrót",
|
||||||
"LabelBackupLocation": "Backup Location",
|
"LabelBackupLocation": "Lokalizacja kopii zapasowej",
|
||||||
"LabelBackupsEnableAutomaticBackups": "Włącz automatyczne kopie zapasowe",
|
"LabelBackupsEnableAutomaticBackups": "Włącz automatyczne kopie zapasowe",
|
||||||
"LabelBackupsEnableAutomaticBackupsHelp": "Kopie zapasowe są zapisywane w folderze /metadata/backups",
|
"LabelBackupsEnableAutomaticBackupsHelp": "Kopie zapasowe są zapisywane w folderze /metadata/backups",
|
||||||
"LabelBackupsMaxBackupSize": "Maksymalny łączny rozmiar backupów (w GB)",
|
"LabelBackupsMaxBackupSize": "Maksymalny łączny rozmiar backupów (w GB)",
|
||||||
@@ -234,20 +235,20 @@
|
|||||||
"LabelButtonText": "Button Text",
|
"LabelButtonText": "Button Text",
|
||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Zmień hasło",
|
"LabelChangePassword": "Zmień hasło",
|
||||||
"LabelChannels": "Channels",
|
"LabelChannels": "Kanały",
|
||||||
"LabelChapters": "Chapters",
|
|
||||||
"LabelChaptersFound": "Znalezione rozdziały",
|
|
||||||
"LabelChapterTitle": "Tytuł rozdziału",
|
"LabelChapterTitle": "Tytuł rozdziału",
|
||||||
"LabelClickForMoreInfo": "Click for more info",
|
"LabelChapters": "Rozdziały",
|
||||||
|
"LabelChaptersFound": "Znalezione rozdziały",
|
||||||
|
"LabelClickForMoreInfo": "Kliknij po więcej szczegółów",
|
||||||
"LabelClosePlayer": "Zamknij odtwarzacz",
|
"LabelClosePlayer": "Zamknij odtwarzacz",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
"LabelCollapseSeries": "Podsumuj serię",
|
"LabelCollapseSeries": "Podsumuj serię",
|
||||||
"LabelCollection": "Collection",
|
"LabelCollection": "Kolekcja",
|
||||||
"LabelCollections": "Kolekcje",
|
"LabelCollections": "Kolekcje",
|
||||||
"LabelComplete": "Ukończone",
|
"LabelComplete": "Ukończone",
|
||||||
"LabelConfirmPassword": "Potwierdź hasło",
|
"LabelConfirmPassword": "Potwierdź hasło",
|
||||||
"LabelContinueListening": "Kontynuuj odtwarzanie",
|
"LabelContinueListening": "Kontynuuj odtwarzanie",
|
||||||
"LabelContinueReading": "Continue Reading",
|
"LabelContinueReading": "Kontynuuj czytanie",
|
||||||
"LabelContinueSeries": "Kontynuuj serię",
|
"LabelContinueSeries": "Kontynuuj serię",
|
||||||
"LabelCover": "Okładka",
|
"LabelCover": "Okładka",
|
||||||
"LabelCoverImageURL": "URL okładki",
|
"LabelCoverImageURL": "URL okładki",
|
||||||
@@ -257,6 +258,7 @@
|
|||||||
"LabelCurrently": "Obecnie:",
|
"LabelCurrently": "Obecnie:",
|
||||||
"LabelCustomCronExpression": "Custom Cron Expression:",
|
"LabelCustomCronExpression": "Custom Cron Expression:",
|
||||||
"LabelDatetime": "Data i godzina",
|
"LabelDatetime": "Data i godzina",
|
||||||
|
"LabelDays": "Dni",
|
||||||
"LabelDeleteFromFileSystemCheckbox": "Usuń z systemu plików (odznacz, aby usunąć tylko z bazy danych)",
|
"LabelDeleteFromFileSystemCheckbox": "Usuń z systemu plików (odznacz, aby usunąć tylko z bazy danych)",
|
||||||
"LabelDescription": "Opis",
|
"LabelDescription": "Opis",
|
||||||
"LabelDeselectAll": "Odznacz wszystko",
|
"LabelDeselectAll": "Odznacz wszystko",
|
||||||
@@ -268,32 +270,34 @@
|
|||||||
"LabelDiscFromMetadata": "Oznaczenie dysku z metadanych",
|
"LabelDiscFromMetadata": "Oznaczenie dysku z metadanych",
|
||||||
"LabelDiscover": "Odkrywaj",
|
"LabelDiscover": "Odkrywaj",
|
||||||
"LabelDownload": "Pobierz",
|
"LabelDownload": "Pobierz",
|
||||||
"LabelDownloadNEpisodes": "Download {0} episodes",
|
"LabelDownloadNEpisodes": "Ściąganie {0} odcinków",
|
||||||
"LabelDuration": "Czas trwania",
|
"LabelDuration": "Czas trwania",
|
||||||
"LabelDurationComparisonExactMatch": "(exact match)",
|
"LabelDurationComparisonExactMatch": "(exact match)",
|
||||||
"LabelDurationComparisonLonger": "({0} longer)",
|
"LabelDurationComparisonLonger": "({0} dłużej)",
|
||||||
"LabelDurationComparisonShorter": "({0} shorter)",
|
"LabelDurationComparisonShorter": "({0} krócej)",
|
||||||
"LabelDurationFound": "Znaleziona długość:",
|
"LabelDurationFound": "Znaleziona długość:",
|
||||||
"LabelEbook": "Ebook",
|
"LabelEbook": "Ebook",
|
||||||
"LabelEbooks": "Ebooks",
|
"LabelEbooks": "Ebooki",
|
||||||
"LabelEdit": "Edytuj",
|
"LabelEdit": "Edytuj",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "From Address",
|
"LabelEmailSettingsFromAddress": "Z adresu",
|
||||||
"LabelEmailSettingsSecure": "Secure",
|
"LabelEmailSettingsRejectUnauthorized": "Odrzuć nieautoryzowane certyfikaty",
|
||||||
"LabelEmailSettingsSecureHelp": "If true the connection will use TLS when connecting to server. If false then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false. (from nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Wyłączenie walidacji certyfikatów SSL może narazić cię na ryzyka bezpieczeństwa, takie jak ataki man-in-the-middle. Wyłącz tą opcję wyłącznie jeśli rozumiesz tego skutki i ufasz serwerowi pocztowemu, do którego się podłączasz.",
|
||||||
|
"LabelEmailSettingsSecure": "Bezpieczeństwo",
|
||||||
|
"LabelEmailSettingsSecureHelp": "Jeśli włączysz, połączenie będzie korzystać z TLS podczas łączenia do serwera. Jeśli wyłączysz, TLS będzie wykorzystane jeśli serwer wspiera rozszerzenie STARTTLS. W większości przypadków włącz to ustawienie jeśli łączysz się do portu 465. Dla portów 587 lub 25 pozostaw to ustawienie wyłączone. (na podstawie nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Test Address",
|
"LabelEmailSettingsTestAddress": "Test Address",
|
||||||
"LabelEmbeddedCover": "Embedded Cover",
|
"LabelEmbeddedCover": "Wbudowana okładka",
|
||||||
"LabelEnable": "Włącz",
|
"LabelEnable": "Włącz",
|
||||||
"LabelEnd": "Zakończ",
|
"LabelEnd": "Zakończ",
|
||||||
"LabelEpisode": "Odcinek",
|
"LabelEpisode": "Odcinek",
|
||||||
"LabelEpisodeTitle": "Tytuł odcinka",
|
"LabelEpisodeTitle": "Tytuł odcinka",
|
||||||
"LabelEpisodeType": "Typ odcinka",
|
"LabelEpisodeType": "Typ odcinka",
|
||||||
"LabelExample": "Example",
|
"LabelExample": "Przykład",
|
||||||
"LabelExplicit": "Nieprzyzwoite",
|
"LabelExplicit": "Nieprzyzwoite",
|
||||||
"LabelExplicitChecked": "Explicit (checked)",
|
"LabelExplicitChecked": "Explicit (checked)",
|
||||||
"LabelExplicitUnchecked": "Not Explicit (unchecked)",
|
"LabelExplicitUnchecked": "Not Explicit (unchecked)",
|
||||||
"LabelFeedURL": "URL kanału",
|
"LabelFeedURL": "URL kanału",
|
||||||
"LabelFetchingMetadata": "Fetching Metadata",
|
"LabelFetchingMetadata": "Pobieranie metadanych",
|
||||||
"LabelFile": "Plik",
|
"LabelFile": "Plik",
|
||||||
"LabelFileBirthtime": "Data utworzenia pliku",
|
"LabelFileBirthtime": "Data utworzenia pliku",
|
||||||
"LabelFileModified": "Data modyfikacji pliku",
|
"LabelFileModified": "Data modyfikacji pliku",
|
||||||
@@ -301,27 +305,29 @@
|
|||||||
"LabelFilterByUser": "Filtruj według danego użytkownika",
|
"LabelFilterByUser": "Filtruj według danego użytkownika",
|
||||||
"LabelFindEpisodes": "Znajdź odcinki",
|
"LabelFindEpisodes": "Znajdź odcinki",
|
||||||
"LabelFinished": "Zakończone",
|
"LabelFinished": "Zakończone",
|
||||||
"LabelFolder": "Folder",
|
"LabelFolder": "Katalog",
|
||||||
"LabelFolders": "Foldery",
|
"LabelFolders": "Foldery",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Pogrubiony",
|
||||||
|
"LabelFontBoldness": "Grubość czcionki",
|
||||||
"LabelFontFamily": "Rodzina czcionek",
|
"LabelFontFamily": "Rodzina czcionek",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Font scale",
|
"LabelFontScale": "Rozmiar czcionki",
|
||||||
"LabelFontStrikethrough": "Strikethrough",
|
"LabelFontStrikethrough": "Przekreślony",
|
||||||
"LabelFormat": "Format",
|
"LabelFormat": "Format",
|
||||||
"LabelGenre": "Gatunek",
|
"LabelGenre": "Gatunek",
|
||||||
"LabelGenres": "Gatunki",
|
"LabelGenres": "Gatunki",
|
||||||
"LabelHardDeleteFile": "Usuń trwale plik",
|
"LabelHardDeleteFile": "Usuń trwale plik",
|
||||||
"LabelHasEbook": "Has ebook",
|
"LabelHasEbook": "Ma ebooka",
|
||||||
"LabelHasSupplementaryEbook": "Has supplementary ebook",
|
"LabelHasSupplementaryEbook": "Posiada dodatkowy ebook",
|
||||||
"LabelHighestPriority": "Highest priority",
|
"LabelHighestPriority": "Najwyższy priorytet",
|
||||||
"LabelHost": "Host",
|
"LabelHost": "Host",
|
||||||
"LabelHour": "Godzina",
|
"LabelHour": "Godzina",
|
||||||
|
"LabelHours": "Godziny",
|
||||||
"LabelIcon": "Ikona",
|
"LabelIcon": "Ikona",
|
||||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
"LabelImageURLFromTheWeb": "Link do obrazu w sieci",
|
||||||
|
"LabelInProgress": "W trakcie",
|
||||||
"LabelIncludeInTracklist": "Dołącz do listy odtwarzania",
|
"LabelIncludeInTracklist": "Dołącz do listy odtwarzania",
|
||||||
"LabelIncomplete": "Nieukończone",
|
"LabelIncomplete": "Nieukończone",
|
||||||
"LabelInProgress": "W trakcie",
|
|
||||||
"LabelInterval": "Interwał",
|
"LabelInterval": "Interwał",
|
||||||
"LabelIntervalCustomDailyWeekly": "Niestandardowy dzienny/tygodniowy",
|
"LabelIntervalCustomDailyWeekly": "Niestandardowy dzienny/tygodniowy",
|
||||||
"LabelIntervalEvery12Hours": "Co 12 godzin",
|
"LabelIntervalEvery12Hours": "Co 12 godzin",
|
||||||
@@ -331,78 +337,83 @@
|
|||||||
"LabelIntervalEvery6Hours": "Co 6 godzin",
|
"LabelIntervalEvery6Hours": "Co 6 godzin",
|
||||||
"LabelIntervalEveryDay": "Każdego dnia",
|
"LabelIntervalEveryDay": "Każdego dnia",
|
||||||
"LabelIntervalEveryHour": "Każdej godziny",
|
"LabelIntervalEveryHour": "Każdej godziny",
|
||||||
"LabelInvert": "Invert",
|
"LabelInvert": "Inversja",
|
||||||
"LabelItem": "Pozycja",
|
"LabelItem": "Pozycja",
|
||||||
"LabelLanguage": "Język",
|
"LabelLanguage": "Język",
|
||||||
"LabelLanguageDefaultServer": "Domyślny język serwera",
|
"LabelLanguageDefaultServer": "Domyślny język serwera",
|
||||||
"LabelLastBookAdded": "Last Book Added",
|
"LabelLanguages": "Języki",
|
||||||
"LabelLastBookUpdated": "Last Book Updated",
|
"LabelLastBookAdded": "Ostatnio dodana książka",
|
||||||
|
"LabelLastBookUpdated": "Ostatnio modyfikowana książka",
|
||||||
"LabelLastSeen": "Ostatnio widziany",
|
"LabelLastSeen": "Ostatnio widziany",
|
||||||
"LabelLastTime": "Ostatni czas",
|
"LabelLastTime": "Ostatni czas",
|
||||||
"LabelLastUpdate": "Ostatnia aktualizacja",
|
"LabelLastUpdate": "Ostatnia aktualizacja",
|
||||||
"LabelLayout": "Layout",
|
"LabelLayout": "Układ",
|
||||||
"LabelLayoutSinglePage": "Single page",
|
"LabelLayoutSinglePage": "Pojedyncza strona",
|
||||||
"LabelLayoutSplitPage": "Split page",
|
"LabelLayoutSplitPage": "Podział strony",
|
||||||
"LabelLess": "Mniej",
|
"LabelLess": "Mniej",
|
||||||
"LabelLibrariesAccessibleToUser": "Biblioteki dostępne dla użytkownika",
|
"LabelLibrariesAccessibleToUser": "Biblioteki dostępne dla użytkownika",
|
||||||
"LabelLibrary": "Biblioteka",
|
"LabelLibrary": "Biblioteka",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Element biblioteki",
|
"LabelLibraryItem": "Element biblioteki",
|
||||||
"LabelLibraryName": "Nazwa biblioteki",
|
"LabelLibraryName": "Nazwa biblioteki",
|
||||||
"LabelLimit": "Limit",
|
"LabelLimit": "Limit",
|
||||||
"LabelLineSpacing": "Line spacing",
|
"LabelLineSpacing": "Odstęp między wierszami",
|
||||||
"LabelListenAgain": "Słuchaj ponownie",
|
"LabelListenAgain": "Słuchaj ponownie",
|
||||||
"LabelLogLevelDebug": "Debug",
|
"LabelLogLevelDebug": "Debug",
|
||||||
"LabelLogLevelInfo": "Informacja",
|
"LabelLogLevelInfo": "Informacja",
|
||||||
"LabelLogLevelWarn": "Ostrzeżenie",
|
"LabelLogLevelWarn": "Ostrzeżenie",
|
||||||
"LabelLookForNewEpisodesAfterDate": "Szukaj nowych odcinków po dacie",
|
"LabelLookForNewEpisodesAfterDate": "Szukaj nowych odcinków po dacie",
|
||||||
"LabelLowestPriority": "Lowest Priority",
|
"LabelLowestPriority": "Najniższy priorytet",
|
||||||
"LabelMatchExistingUsersBy": "Match existing users by",
|
"LabelMatchExistingUsersBy": "Dopasuje istniejących użytkowników poprzez",
|
||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Służy do łączenia istniejących użytkowników. Po połączeniu użytkownicy zostaną dopasowani za pomocą unikalnego identyfikatora od dostawcy SSO",
|
||||||
"LabelMediaPlayer": "Odtwarzacz",
|
"LabelMediaPlayer": "Odtwarzacz",
|
||||||
"LabelMediaType": "Typ mediów",
|
"LabelMediaType": "Typ mediów",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Dostawca metadanych",
|
|
||||||
"LabelMetaTag": "Tag",
|
"LabelMetaTag": "Tag",
|
||||||
"LabelMetaTags": "Meta Tags",
|
"LabelMetaTags": "Meta Tags",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Źródła metadanych o wyższym priorytecie będą zastępują źródła o niższym priorytecie",
|
||||||
|
"LabelMetadataProvider": "Dostawca metadanych",
|
||||||
"LabelMinute": "Minuta",
|
"LabelMinute": "Minuta",
|
||||||
|
"LabelMinutes": "Minuty",
|
||||||
"LabelMissing": "Brakujący",
|
"LabelMissing": "Brakujący",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Nie posiada ebooka",
|
||||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
"LabelMissingSupplementaryEbook": "Nie posiada dodatkowego ebooka",
|
||||||
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
|
"LabelMobileRedirectURIs": "Allowed Mobile Redirect URIs",
|
||||||
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is <code>audiobookshelf://oauth</code>, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (<code>*</code>) as the sole entry permits any URI.",
|
"LabelMobileRedirectURIsDescription": "This is a whitelist of valid redirect URIs for mobile apps. The default one is <code>audiobookshelf://oauth</code>, which you can remove or supplement with additional URIs for third-party app integration. Using an asterisk (<code>*</code>) as the sole entry permits any URI.",
|
||||||
"LabelMore": "Więcej",
|
"LabelMore": "Więcej",
|
||||||
"LabelMoreInfo": "More Info",
|
"LabelMoreInfo": "Więcej informacji",
|
||||||
"LabelName": "Nazwa",
|
"LabelName": "Nazwa",
|
||||||
"LabelNarrator": "Narrator",
|
"LabelNarrator": "Lektor",
|
||||||
"LabelNarrators": "Lektorzy",
|
"LabelNarrators": "Lektorzy",
|
||||||
"LabelNew": "Nowy",
|
"LabelNew": "Nowy",
|
||||||
|
"LabelNewPassword": "Nowe hasło",
|
||||||
"LabelNewestAuthors": "Najnowsi autorzy",
|
"LabelNewestAuthors": "Najnowsi autorzy",
|
||||||
"LabelNewestEpisodes": "Najnowsze odcinki",
|
"LabelNewestEpisodes": "Najnowsze odcinki",
|
||||||
"LabelNewPassword": "Nowe hasło",
|
"LabelNextBackupDate": "Data kolejnej kopii zapasowej",
|
||||||
"LabelNextBackupDate": "Next backup date",
|
"LabelNextScheduledRun": "Następne uruchomienie",
|
||||||
"LabelNextScheduledRun": "Next scheduled run",
|
"LabelNoCustomMetadataProviders": "Brak niestandardowych dostawców metadanych",
|
||||||
"LabelNoEpisodesSelected": "No episodes selected",
|
"LabelNoEpisodesSelected": "Nie wybrano żadnych odcinków",
|
||||||
"LabelNotes": "Uwagi",
|
|
||||||
"LabelNotFinished": "Nieukończone",
|
"LabelNotFinished": "Nieukończone",
|
||||||
|
"LabelNotStarted": "Nie rozpoczęto",
|
||||||
|
"LabelNotes": "Uwagi",
|
||||||
"LabelNotificationAppriseURL": "URLe Apprise",
|
"LabelNotificationAppriseURL": "URLe Apprise",
|
||||||
"LabelNotificationAvailableVariables": "Dostępne zmienne",
|
"LabelNotificationAvailableVariables": "Dostępne zmienne",
|
||||||
"LabelNotificationBodyTemplate": "Szablon treści powiadomienia",
|
"LabelNotificationBodyTemplate": "Szablon treści powiadomienia",
|
||||||
"LabelNotificationEvent": "Zdarzenie",
|
"LabelNotificationEvent": "Zdarzenie",
|
||||||
|
"LabelNotificationTitleTemplate": "Szablon tytułu powiadmienia",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Maksymalna liczba nieudanych prób",
|
"LabelNotificationsMaxFailedAttempts": "Maksymalna liczba nieudanych prób",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Powiadomienia są wyłączane, gdy próba ich wysyłki nie powiedzie się kilkukrotnie",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Powiadomienia są wyłączane, gdy próba ich wysyłki nie powiedzie się kilkukrotnie",
|
||||||
"LabelNotificationsMaxQueueSize": "Maksymalny rozmiar kolejki dla powiadomień",
|
"LabelNotificationsMaxQueueSize": "Maksymalny rozmiar kolejki dla powiadomień",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Zdarzenia są ograniczone do 1 na sekundę. Zdarzenia będą ignorowane jeśli kolejka ma maksymalny rozmiar. Zapobiega to spamowaniu powiadomieniami.",
|
"LabelNotificationsMaxQueueSizeHelp": "Zdarzenia są ograniczone do 1 na sekundę. Zdarzenia będą ignorowane jeśli kolejka ma maksymalny rozmiar. Zapobiega to spamowaniu powiadomieniami.",
|
||||||
"LabelNotificationTitleTemplate": "Szablon tytułu powiadmienia",
|
|
||||||
"LabelNotStarted": "Nie rozpoęczto",
|
|
||||||
"LabelNumberOfBooks": "Liczba książek",
|
"LabelNumberOfBooks": "Liczba książek",
|
||||||
"LabelNumberOfEpisodes": "# odcinków",
|
"LabelNumberOfEpisodes": "# odcinków",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
"LabelOpenIDClaims": "Leave the following options empty to disable advanced group and permissions assignment, automatically assigning 'User' group then.",
|
"LabelOpenIDClaims": "Leave the following options empty to disable advanced group and permissions assignment, automatically assigning 'User' group then.",
|
||||||
"LabelOpenIDGroupClaimDescription": "Name of the OpenID claim that contains a list of the user's groups. Commonly referred to as <code>groups</code>. <b>If configured</b>, the application will automatically assign roles based on the user's group memberships, provided that these groups are named case-insensitively 'admin', 'user', or 'guest' in the claim. The claim should contain a list, and if a user belongs to multiple groups, the application will assign the role corresponding to the highest level of access. If no group matches, access will be denied.",
|
"LabelOpenIDGroupClaimDescription": "Name of the OpenID claim that contains a list of the user's groups. Commonly referred to as <code>groups</code>. <b>If configured</b>, the application will automatically assign roles based on the user's group memberships, provided that these groups are named case-insensitively 'admin', 'user', or 'guest' in the claim. The claim should contain a list, and if a user belongs to multiple groups, the application will assign the role corresponding to the highest level of access. If no group matches, access will be denied.",
|
||||||
"LabelOpenRSSFeed": "Otwórz kanał RSS",
|
"LabelOpenRSSFeed": "Otwórz kanał RSS",
|
||||||
"LabelOverwrite": "Overwrite",
|
"LabelOverwrite": "Nadpisz",
|
||||||
"LabelPassword": "Hasło",
|
"LabelPassword": "Hasło",
|
||||||
"LabelPath": "Ścieżka",
|
"LabelPath": "Ścieżka",
|
||||||
|
"LabelPermanent": "Trwały",
|
||||||
"LabelPermissionsAccessAllLibraries": "Ma dostęp do wszystkich bibliotek",
|
"LabelPermissionsAccessAllLibraries": "Ma dostęp do wszystkich bibliotek",
|
||||||
"LabelPermissionsAccessAllTags": "Ma dostęp do wszystkich tagów",
|
"LabelPermissionsAccessAllTags": "Ma dostęp do wszystkich tagów",
|
||||||
"LabelPermissionsAccessExplicitContent": "Ma dostęp do treści oznacznych jako nieprzyzwoite",
|
"LabelPermissionsAccessExplicitContent": "Ma dostęp do treści oznacznych jako nieprzyzwoite",
|
||||||
@@ -410,75 +421,77 @@
|
|||||||
"LabelPermissionsDownload": "Ma możliwość pobierania",
|
"LabelPermissionsDownload": "Ma możliwość pobierania",
|
||||||
"LabelPermissionsUpdate": "Ma możliwość aktualizowania",
|
"LabelPermissionsUpdate": "Ma możliwość aktualizowania",
|
||||||
"LabelPermissionsUpload": "Ma możliwość dodawania",
|
"LabelPermissionsUpload": "Ma możliwość dodawania",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Podsumowanie twojego roku ({0})",
|
||||||
"LabelPhotoPathURL": "Scieżka/URL do zdjęcia",
|
"LabelPhotoPathURL": "Scieżka/URL do zdjęcia",
|
||||||
"LabelPlaylists": "Playlists",
|
|
||||||
"LabelPlayMethod": "Metoda odtwarzania",
|
"LabelPlayMethod": "Metoda odtwarzania",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Listy odtwarzania",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasty",
|
|
||||||
"LabelPodcastSearchRegion": "Obszar wyszukiwania podcastów",
|
"LabelPodcastSearchRegion": "Obszar wyszukiwania podcastów",
|
||||||
"LabelPodcastType": "Podcast Type",
|
"LabelPodcastType": "Podcast Type",
|
||||||
|
"LabelPodcasts": "Podcasty",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Ignorowane prefiksy (wielkość liter nie ma znaczenia)",
|
"LabelPrefixesToIgnore": "Ignorowane prefiksy (wielkość liter nie ma znaczenia)",
|
||||||
"LabelPreventIndexing": "Prevent your feed from being indexed by iTunes and Google podcast directories",
|
"LabelPreventIndexing": "Zapobiega indeksowaniu przez iTunes i Google",
|
||||||
"LabelPrimaryEbook": "Primary ebook",
|
"LabelPrimaryEbook": "Główny ebook",
|
||||||
"LabelProgress": "Postęp",
|
"LabelProgress": "Postęp",
|
||||||
"LabelProvider": "Dostawca",
|
"LabelProvider": "Dostawca",
|
||||||
"LabelPubDate": "Data publikacji",
|
"LabelPubDate": "Data publikacji",
|
||||||
"LabelPublisher": "Wydawca",
|
|
||||||
"LabelPublishYear": "Rok publikacji",
|
"LabelPublishYear": "Rok publikacji",
|
||||||
"LabelRead": "Read",
|
"LabelPublisher": "Wydawca",
|
||||||
"LabelReadAgain": "Read Again",
|
"LabelPublishers": "Wydawcy",
|
||||||
"LabelReadEbookWithoutProgress": "Read ebook without keeping progress",
|
|
||||||
"LabelRecentlyAdded": "Niedawno dodany",
|
|
||||||
"LabelRecentSeries": "Ostatnie serie",
|
|
||||||
"LabelRecommended": "Recommended",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Region",
|
|
||||||
"LabelReleaseDate": "Data wydania",
|
|
||||||
"LabelRemoveCover": "Remove cover",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
"LabelRSSFeedCustomOwnerEmail": "Custom owner Email",
|
||||||
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
"LabelRSSFeedCustomOwnerName": "Custom owner Name",
|
||||||
"LabelRSSFeedOpen": "RSS Feed otwarty",
|
"LabelRSSFeedOpen": "RSS Feed otwarty",
|
||||||
"LabelRSSFeedPreventIndexing": "Prevent Indexing",
|
"LabelRSSFeedPreventIndexing": "Zapobiegaj indeksowaniu",
|
||||||
"LabelRSSFeedSlug": "RSS Feed Slug",
|
"LabelRSSFeedSlug": "RSS Feed Slug",
|
||||||
"LabelRSSFeedURL": "URL kanały RSS",
|
"LabelRSSFeedURL": "URL kanały RSS",
|
||||||
|
"LabelRead": "Czytaj",
|
||||||
|
"LabelReadAgain": "Czytaj ponownie",
|
||||||
|
"LabelReadEbookWithoutProgress": "Czytaj książkę bez zapamiętywania postępu",
|
||||||
|
"LabelRecentSeries": "Ostatnie serie",
|
||||||
|
"LabelRecentlyAdded": "Niedawno dodany",
|
||||||
|
"LabelRecommended": "Polecane",
|
||||||
|
"LabelRedo": "Wycofaj",
|
||||||
|
"LabelRegion": "Region",
|
||||||
|
"LabelReleaseDate": "Data wydania",
|
||||||
|
"LabelRemoveCover": "Usuń okładkę",
|
||||||
|
"LabelRowsPerPage": "Wierszy na stronę",
|
||||||
"LabelSearchTerm": "Wyszukiwanie frazy",
|
"LabelSearchTerm": "Wyszukiwanie frazy",
|
||||||
"LabelSearchTitle": "Wyszukaj tytuł",
|
"LabelSearchTitle": "Wyszukaj tytuł",
|
||||||
"LabelSearchTitleOrASIN": "Szukaj tytuł lub ASIN",
|
"LabelSearchTitleOrASIN": "Szukaj tytuł lub ASIN",
|
||||||
"LabelSeason": "Sezon",
|
"LabelSeason": "Sezon",
|
||||||
"LabelSelectAll": "Select all",
|
"LabelSelectAll": "Wybierz wszystko",
|
||||||
"LabelSelectAllEpisodes": "Select all episodes",
|
"LabelSelectAllEpisodes": "Wybierz wszystkie odcinki",
|
||||||
"LabelSelectEpisodesShowing": "Select {0} episodes showing",
|
"LabelSelectEpisodesShowing": "Select {0} episodes showing",
|
||||||
"LabelSelectUsers": "Select users",
|
"LabelSelectUsers": "Wybór użytkowników",
|
||||||
"LabelSendEbookToDevice": "Send Ebook to...",
|
"LabelSendEbookToDevice": "Wyślij ebook do...",
|
||||||
"LabelSequence": "Kolejność",
|
"LabelSequence": "Kolejność",
|
||||||
"LabelSeries": "Serie",
|
"LabelSeries": "Serie",
|
||||||
"LabelSeriesName": "Nazwy serii",
|
"LabelSeriesName": "Nazwy serii",
|
||||||
"LabelSeriesProgress": "Postęp w serii",
|
"LabelSeriesProgress": "Postęp w serii",
|
||||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
"LabelServerYearReview": "Podsumowanie serwera w roku ({0})",
|
||||||
"LabelSetEbookAsPrimary": "Set as primary",
|
"LabelSetEbookAsPrimary": "Ustaw jako pierwszy",
|
||||||
"LabelSetEbookAsSupplementary": "Set as supplementary",
|
"LabelSetEbookAsSupplementary": "Ustaw jako dodatkowy",
|
||||||
"LabelSettingsAudiobooksOnly": "Audiobooks only",
|
"LabelSettingsAudiobooksOnly": "Wyłącznie audiobooki",
|
||||||
"LabelSettingsAudiobooksOnlyHelp": "Enabling this setting will ignore ebook files unless they are inside an audiobook folder in which case they will be set as supplementary ebooks",
|
"LabelSettingsAudiobooksOnlyHelp": "Włączenie tej funkcji spowoduje ignorowanie plików ebooków, chyba że znajdują się wewnątrz folderu audiobooka kiedy to będą pokazywane jako dodatkowe ebooki",
|
||||||
"LabelSettingsBookshelfViewHelp": "Widok półki z ksiązkami",
|
"LabelSettingsBookshelfViewHelp": "Widok półki z książkami",
|
||||||
"LabelSettingsChromecastSupport": "Wsparcie Chromecast",
|
"LabelSettingsChromecastSupport": "Wsparcie Chromecast",
|
||||||
"LabelSettingsDateFormat": "Format daty",
|
"LabelSettingsDateFormat": "Format daty",
|
||||||
"LabelSettingsDisableWatcher": "Wyłącz monitorowanie",
|
"LabelSettingsDisableWatcher": "Wyłącz monitorowanie",
|
||||||
"LabelSettingsDisableWatcherForLibrary": "Wyłącz monitorowanie folderów dla biblioteki",
|
"LabelSettingsDisableWatcherForLibrary": "Wyłącz monitorowanie folderów dla biblioteki",
|
||||||
"LabelSettingsDisableWatcherHelp": "Wyłącz automatyczne dodawanie/aktualizowanie elementów po wykryciu zmian w plikach. *Wymaga restartu serwera",
|
"LabelSettingsDisableWatcherHelp": "Wyłącz automatyczne dodawanie/aktualizowanie elementów po wykryciu zmian w plikach. *Wymaga restartu serwera",
|
||||||
"LabelSettingsEnableWatcher": "Enable Watcher",
|
"LabelSettingsEnableWatcher": "Włącz monitorowanie",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "Enable folder watcher for library",
|
"LabelSettingsEnableWatcherForLibrary": "Włącz monitorowanie folderów dla biblioteki",
|
||||||
"LabelSettingsEnableWatcherHelp": "Enables the automatic adding/updating of items when file changes are detected. *Requires server restart",
|
"LabelSettingsEnableWatcherHelp": "Włącza automatyczne dodawanie/aktualizację pozycji gdy wykryte zostaną zmiany w plikach. Wymaga restartu serwera",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Zezwalanie na skrypty w plikach epub",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Zezwala plikom epub na wykonywanie skryptów. Zaleca się mieć to ustawienie wyłączone, chyba że ma się zaufanie do źródła plików epub.",
|
||||||
"LabelSettingsExperimentalFeatures": "Funkcje eksperymentalne",
|
"LabelSettingsExperimentalFeatures": "Funkcje eksperymentalne",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "Funkcje w trakcie rozwoju, które mogą zyskanć na Twojej opinii i pomocy w testowaniu. Kliknij, aby otworzyć dyskusję na githubie.",
|
"LabelSettingsExperimentalFeaturesHelp": "Funkcje w trakcie rozwoju, które mogą zyskanć na Twojej opinii i pomocy w testowaniu. Kliknij, aby otworzyć dyskusję na githubie.",
|
||||||
"LabelSettingsFindCovers": "Szukanie okładek",
|
"LabelSettingsFindCovers": "Szukanie okładek",
|
||||||
"LabelSettingsFindCoversHelp": "Jeśli audiobook nie posiada zintegrowanej okładki albo w folderze nie zostanie znaleziony plik okładki, skaner podejmie próbę pobrania okładki z sieci. <br>Uwaga: może to wydłuzyć proces skanowania",
|
"LabelSettingsFindCoversHelp": "Jeśli audiobook nie posiada zintegrowanej okładki albo w folderze nie zostanie znaleziony plik okładki, skaner podejmie próbę pobrania okładki z sieci. <br>Uwaga: może to wydłuzyć proces skanowania",
|
||||||
"LabelSettingsHideSingleBookSeries": "Hide single book series",
|
"LabelSettingsHideSingleBookSeries": "Ukryj serie z jedną książką",
|
||||||
"LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
|
"LabelSettingsHideSingleBookSeriesHelp": "Serie, które posiadają tylko jedną książkę, nie będą pokazywane na stronie z seriami i na stronie domowej z półkami.",
|
||||||
"LabelSettingsHomePageBookshelfView": "Widok półki z książkami na stronie głównej",
|
"LabelSettingsHomePageBookshelfView": "Widok półki z książkami na stronie głównej",
|
||||||
"LabelSettingsLibraryBookshelfView": "Widok półki z książkami na stronie biblioteki",
|
"LabelSettingsLibraryBookshelfView": "Widok półki z książkami na stronie biblioteki",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||||
@@ -494,19 +507,22 @@
|
|||||||
"LabelSettingsSquareBookCovers": "Używaj kwadratowych okładek książek",
|
"LabelSettingsSquareBookCovers": "Używaj kwadratowych okładek książek",
|
||||||
"LabelSettingsSquareBookCoversHelp": "Preferuj stosowanie kwadratowych okładek zamiast standardowych okładek książkowych o propocji 1,6:1",
|
"LabelSettingsSquareBookCoversHelp": "Preferuj stosowanie kwadratowych okładek zamiast standardowych okładek książkowych o propocji 1,6:1",
|
||||||
"LabelSettingsStoreCoversWithItem": "Przechowuj okładkę w folderze książki",
|
"LabelSettingsStoreCoversWithItem": "Przechowuj okładkę w folderze książki",
|
||||||
"LabelSettingsStoreCoversWithItemHelp": "Domyślnie okładki są przechowywane w folderze /metadata/items, włączenie tej opcji spowoduje, że okładka będzie przechowywana w folderze ksiązki. Tylko jedna okładka o nazwie pliku \"cover\" będzie przechowywana.",
|
"LabelSettingsStoreCoversWithItemHelp": "Domyślnie okładki są przechowywane w folderze /metadata/items, włączenie tej opcji spowoduje, że okładka będzie przechowywana w folderze ksiązki. Tylko jedna okładka o nazwie pliku \"cover\" będzie przechowywana",
|
||||||
"LabelSettingsStoreMetadataWithItem": "Przechowuj metadane w folderze książki",
|
"LabelSettingsStoreMetadataWithItem": "Przechowuj metadane w folderze książki",
|
||||||
"LabelSettingsStoreMetadataWithItemHelp": "Domyślnie metadane są przechowywane w folderze /metadata/items, włączenie tej opcji spowoduje, że okładka będzie przechowywana w folderze ksiązki. Tylko jedna okładka o nazwie pliku \"cover\" będzie przechowywana",
|
"LabelSettingsStoreMetadataWithItemHelp": "Domyślnie metadane są przechowywane w folderze /metadata/items, włączenie tej opcji spowoduje, że okładka będzie przechowywana w folderze ksiązki. Tylko jedna okładka o nazwie pliku \"cover\" będzie przechowywana",
|
||||||
"LabelSettingsTimeFormat": "Time Format",
|
"LabelSettingsTimeFormat": "Format czasu",
|
||||||
|
"LabelShare": "Udostępnij",
|
||||||
|
"LabelShareOpen": "Otwórz udział",
|
||||||
|
"LabelShareURL": "Link do udziału",
|
||||||
"LabelShowAll": "Pokaż wszystko",
|
"LabelShowAll": "Pokaż wszystko",
|
||||||
"LabelShowSeconds": "Show seconds",
|
"LabelShowSeconds": "Pokaż sekundy",
|
||||||
"LabelSize": "Rozmiar",
|
"LabelSize": "Rozmiar",
|
||||||
"LabelSleepTimer": "Wyłącznik czasowy",
|
"LabelSleepTimer": "Wyłącznik czasowy",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Rozpocznij",
|
"LabelStart": "Rozpocznij",
|
||||||
|
"LabelStartTime": "Czas rozpoczęcia",
|
||||||
"LabelStarted": "Rozpoczęty",
|
"LabelStarted": "Rozpoczęty",
|
||||||
"LabelStartedAt": "Rozpoczęto",
|
"LabelStartedAt": "Rozpoczęto",
|
||||||
"LabelStartTime": "Czas rozpoczęcia",
|
|
||||||
"LabelStatsAudioTracks": "Ścieżki audio",
|
"LabelStatsAudioTracks": "Ścieżki audio",
|
||||||
"LabelStatsAuthors": "Autorzy",
|
"LabelStatsAuthors": "Autorzy",
|
||||||
"LabelStatsBestDay": "Najlepszy dzień",
|
"LabelStatsBestDay": "Najlepszy dzień",
|
||||||
@@ -534,8 +550,8 @@
|
|||||||
"LabelTextEditorNumberedList": "Numbered list",
|
"LabelTextEditorNumberedList": "Numbered list",
|
||||||
"LabelTextEditorUnlink": "Unlink",
|
"LabelTextEditorUnlink": "Unlink",
|
||||||
"LabelTheme": "Theme",
|
"LabelTheme": "Theme",
|
||||||
"LabelThemeDark": "Dark",
|
"LabelThemeDark": "Ciemny",
|
||||||
"LabelThemeLight": "Light",
|
"LabelThemeLight": "Jasny",
|
||||||
"LabelTimeBase": "Time Base",
|
"LabelTimeBase": "Time Base",
|
||||||
"LabelTimeListened": "Czas odtwarzania",
|
"LabelTimeListened": "Czas odtwarzania",
|
||||||
"LabelTimeListenedToday": "Czas odtwarzania dzisiaj",
|
"LabelTimeListenedToday": "Czas odtwarzania dzisiaj",
|
||||||
@@ -543,7 +559,7 @@
|
|||||||
"LabelTimeToShift": "Czas do przesunięcia w sekundach",
|
"LabelTimeToShift": "Czas do przesunięcia w sekundach",
|
||||||
"LabelTitle": "Tytuł",
|
"LabelTitle": "Tytuł",
|
||||||
"LabelToolsEmbedMetadata": "Załącz metadane",
|
"LabelToolsEmbedMetadata": "Załącz metadane",
|
||||||
"LabelToolsEmbedMetadataDescription": "Załącz metadane do plików audio (okładkę oraz znaczniki rozdziałów)",
|
"LabelToolsEmbedMetadataDescription": "Załącz metadane do plików audio (okładkę oraz znaczniki rozdziałów).",
|
||||||
"LabelToolsMakeM4b": "Generuj plik M4B",
|
"LabelToolsMakeM4b": "Generuj plik M4B",
|
||||||
"LabelToolsMakeM4bDescription": "Tworzy plik w formacie .M4B, który zawiera metadane, okładkę oraz rozdziały.",
|
"LabelToolsMakeM4bDescription": "Tworzy plik w formacie .M4B, który zawiera metadane, okładkę oraz rozdziały.",
|
||||||
"LabelToolsSplitM4b": "Podziel plik .M4B na pliki .MP3",
|
"LabelToolsSplitM4b": "Podziel plik .M4B na pliki .MP3",
|
||||||
@@ -552,22 +568,22 @@
|
|||||||
"LabelTotalTimeListened": "Całkowity czas odtwarzania",
|
"LabelTotalTimeListened": "Całkowity czas odtwarzania",
|
||||||
"LabelTrackFromFilename": "Ścieżka z nazwy pliku",
|
"LabelTrackFromFilename": "Ścieżka z nazwy pliku",
|
||||||
"LabelTrackFromMetadata": "Ścieżka z metadanych",
|
"LabelTrackFromMetadata": "Ścieżka z metadanych",
|
||||||
"LabelTracks": "Tracks",
|
"LabelTracks": "Ścieżki",
|
||||||
"LabelTracksMultiTrack": "Multi-track",
|
"LabelTracksMultiTrack": "Multi-track",
|
||||||
"LabelTracksNone": "No tracks",
|
"LabelTracksNone": "No tracks",
|
||||||
"LabelTracksSingleTrack": "Single-track",
|
"LabelTracksSingleTrack": "Single-track",
|
||||||
"LabelType": "Typ",
|
"LabelType": "Typ",
|
||||||
"LabelUnabridged": "Unabridged",
|
"LabelUnabridged": "Unabridged",
|
||||||
"LabelUndo": "Undo",
|
"LabelUndo": "Wycofaj",
|
||||||
"LabelUnknown": "Nieznany",
|
"LabelUnknown": "Nieznany",
|
||||||
"LabelUpdateCover": "Zaktalizuj odkładkę",
|
"LabelUpdateCover": "Zaktalizuj odkładkę",
|
||||||
"LabelUpdateCoverHelp": "Umożliwienie nadpisania istniejących okładek dla wybranych książek w przypadku znalezienia dopasowania",
|
"LabelUpdateCoverHelp": "Umożliwienie nadpisania istniejących okładek dla wybranych książek w przypadku znalezienia dopasowania",
|
||||||
"LabelUpdatedAt": "Zaktualizowano",
|
|
||||||
"LabelUpdateDetails": "Zaktualizuj szczegóły",
|
"LabelUpdateDetails": "Zaktualizuj szczegóły",
|
||||||
"LabelUpdateDetailsHelp": "Umożliwienie nadpisania istniejących szczegółów dla wybranych książek w przypadku znalezienia dopasowania",
|
"LabelUpdateDetailsHelp": "Umożliwienie nadpisania istniejących szczegółów dla wybranych książek w przypadku znalezienia dopasowania",
|
||||||
|
"LabelUpdatedAt": "Zaktualizowano",
|
||||||
"LabelUploaderDragAndDrop": "Przeciągnij i puść foldery lub pliki",
|
"LabelUploaderDragAndDrop": "Przeciągnij i puść foldery lub pliki",
|
||||||
"LabelUploaderDropFiles": "Puść pliki",
|
"LabelUploaderDropFiles": "Puść pliki",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatycznie pobierz tytuł, autora i serie",
|
||||||
"LabelUseChapterTrack": "Użyj ścieżki rozdziału",
|
"LabelUseChapterTrack": "Użyj ścieżki rozdziału",
|
||||||
"LabelUseFullTrack": "Użycie ścieżki rozdziału",
|
"LabelUseFullTrack": "Użycie ścieżki rozdziału",
|
||||||
"LabelUser": "Użytkownik",
|
"LabelUser": "Użytkownik",
|
||||||
@@ -579,46 +595,52 @@
|
|||||||
"LabelViewQueue": "Wyświetlaj kolejkę odtwarzania",
|
"LabelViewQueue": "Wyświetlaj kolejkę odtwarzania",
|
||||||
"LabelVolume": "Głośność",
|
"LabelVolume": "Głośność",
|
||||||
"LabelWeekdaysToRun": "Dni tygodnia",
|
"LabelWeekdaysToRun": "Dni tygodnia",
|
||||||
"LabelYearReviewHide": "Hide Year in Review",
|
"LabelYearReviewHide": "Ukryj Podsumowanie Roku",
|
||||||
"LabelYearReviewShow": "See Year in Review",
|
"LabelYearReviewShow": "Pokaż Podsumowanie Roku",
|
||||||
"LabelYourAudiobookDuration": "Czas trwania audiobooka",
|
"LabelYourAudiobookDuration": "Czas trwania audiobooka",
|
||||||
"LabelYourBookmarks": "Twoje zakładki",
|
"LabelYourBookmarks": "Twoje zakładki",
|
||||||
"LabelYourPlaylists": "Your Playlists",
|
"LabelYourPlaylists": "Twoje playlisty",
|
||||||
"LabelYourProgress": "Twój postęp",
|
"LabelYourProgress": "Twój postęp",
|
||||||
"MessageAddToPlayerQueue": "Add to player queue",
|
"MessageAddToPlayerQueue": "Add to player queue",
|
||||||
"MessageAppriseDescription": "Aby użyć tej funkcji, konieczne jest posiadanie instancji <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> albo innego rozwiązania, które obsługuje schemat zapytań Apprise. <br />URL do interfejsu API powinno być całkowitą ścieżką, np., jeśli Twoje API do powiadomień jest dostępne pod adresem <code>http://192.168.1.1:8337</code> to wpisany tutaj URL powinien mieć postać: <code>http://192.168.1.1:8337/notify</code>.",
|
"MessageAppriseDescription": "Aby użyć tej funkcji, konieczne jest posiadanie instancji <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> albo innego rozwiązania, które obsługuje schemat zapytań Apprise. <br />URL do interfejsu API powinno być całkowitą ścieżką, np., jeśli Twoje API do powiadomień jest dostępne pod adresem <code>http://192.168.1.1:8337</code> to wpisany tutaj URL powinien mieć postać: <code>http://192.168.1.1:8337/notify</code>.",
|
||||||
"MessageBackupsDescription": "Kopie zapasowe obejmują użytkowników, postępy użytkowników, szczegóły pozycji biblioteki, ustawienia serwera i obrazy przechowywane w <code>/metadata/items</code> & <code>/metadata/authors</code>. Kopie zapasowe nie obejmują żadnych plików przechowywanych w folderach biblioteki.",
|
"MessageBackupsDescription": "Kopie zapasowe obejmują użytkowników, postępy użytkowników, szczegóły pozycji biblioteki, ustawienia serwera i obrazy przechowywane w <code>/metadata/items</code> & <code>/metadata/authors</code>. Kopie zapasowe nie obejmują żadnych plików przechowywanych w folderach biblioteki.",
|
||||||
|
"MessageBackupsLocationEditNote": "Uwaga: Zmiana lokalizacji kopii zapasowej nie przenosi ani nie modyfikuje istniejących kopii zapasowych",
|
||||||
|
"MessageBackupsLocationNoEditNote": "Uwaga: Lokalizacja kopii zapasowej jest ustawiona poprzez zmienną środowiskową i nie może być tutaj zmieniona.",
|
||||||
|
"MessageBackupsLocationPathEmpty": "Ścieżka do kopii zapasowej nie może być pusta",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match będzie próbował dodać brakujące okładki i metadane dla wybranych elementów. Włącz poniższe opcje, aby umożliwić Quick Match nadpisanie istniejących okładek i/lub metadanych.",
|
"MessageBatchQuickMatchDescription": "Quick Match będzie próbował dodać brakujące okładki i metadane dla wybranych elementów. Włącz poniższe opcje, aby umożliwić Quick Match nadpisanie istniejących okładek i/lub metadanych.",
|
||||||
"MessageBookshelfNoCollections": "Nie posiadasz jeszcze żadnych kolekcji",
|
"MessageBookshelfNoCollections": "Nie posiadasz jeszcze żadnych kolekcji",
|
||||||
"MessageBookshelfNoResultsForFilter": "Nie znaleziono żadnych pozycji przy aktualnym filtrowaniu \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Nie posiadasz żadnych otwartych feedów RSS",
|
"MessageBookshelfNoRSSFeeds": "Nie posiadasz żadnych otwartych feedów RSS",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Nie znaleziono żadnych pozycji przy aktualnym filtrowaniu \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "Brak wyników zapytania",
|
||||||
"MessageBookshelfNoSeries": "Nie masz jeszcze żadnych serii",
|
"MessageBookshelfNoSeries": "Nie masz jeszcze żadnych serii",
|
||||||
"MessageChapterEndIsAfter": "Koniec rozdziału następuje po zakończeniu audiobooka",
|
"MessageChapterEndIsAfter": "Koniec rozdziału następuje po zakończeniu audiobooka",
|
||||||
"MessageChapterErrorFirstNotZero": "First chapter must start at 0",
|
"MessageChapterErrorFirstNotZero": "Pierwszy rozdział musi rozpoczynać się na 0",
|
||||||
"MessageChapterErrorStartGteDuration": "Invalid start time must be less than audiobook duration",
|
"MessageChapterErrorStartGteDuration": "Invalid start time must be less than audiobook duration",
|
||||||
"MessageChapterErrorStartLtPrev": "Invalid start time must be greater than or equal to previous chapter start time",
|
"MessageChapterErrorStartLtPrev": "Invalid start time must be greater than or equal to previous chapter start time",
|
||||||
"MessageChapterStartIsAfter": "Początek rozdziału następuje po zakończeniu audiobooka",
|
"MessageChapterStartIsAfter": "Początek rozdziału następuje po zakończeniu audiobooka",
|
||||||
"MessageCheckingCron": "Sprawdzanie cron...",
|
"MessageCheckingCron": "Sprawdzanie cron...",
|
||||||
"MessageConfirmCloseFeed": "Are you sure you want to close this feed?",
|
"MessageConfirmCloseFeed": "Are you sure you want to close this feed?",
|
||||||
"MessageConfirmDeleteBackup": "Czy na pewno chcesz usunąć kopię zapasową dla {0}?",
|
"MessageConfirmDeleteBackup": "Czy na pewno chcesz usunąć kopię zapasową dla {0}?",
|
||||||
"MessageConfirmDeleteFile": "This will delete the file from your file system. Are you sure?",
|
"MessageConfirmDeleteFile": "Ta operacja usunie plik z twojego dysku. Jesteś pewien?",
|
||||||
"MessageConfirmDeleteLibrary": "Czy na pewno chcesz trwale usunąć bibliotekę \"{0}\"?",
|
"MessageConfirmDeleteLibrary": "Czy na pewno chcesz trwale usunąć bibliotekę \"{0}\"?",
|
||||||
"MessageConfirmDeleteLibraryItem": "This will delete the library item from the database and your file system. Are you sure?",
|
"MessageConfirmDeleteLibraryItem": "Ta operacja usunie pozycję biblioteki z bazy danych i z dysku. Czy jesteś pewien?",
|
||||||
"MessageConfirmDeleteLibraryItems": "This will delete {0} library items from the database and your file system. Are you sure?",
|
"MessageConfirmDeleteLibraryItems": "This will delete {0} library items from the database and your file system. Are you sure?",
|
||||||
"MessageConfirmDeleteSession": "Czy na pewno chcesz usunąć tę sesję?",
|
"MessageConfirmDeleteSession": "Czy na pewno chcesz usunąć tę sesję?",
|
||||||
"MessageConfirmForceReScan": "Czy na pewno chcesz wymusić ponowne skanowanie?",
|
"MessageConfirmForceReScan": "Czy na pewno chcesz wymusić ponowne skanowanie?",
|
||||||
"MessageConfirmMarkAllEpisodesFinished": "Are you sure you want to mark all episodes as finished?",
|
"MessageConfirmMarkAllEpisodesFinished": "Czy na pewno chcesz oznaczyć wszystkie odcinki jako ukończone?",
|
||||||
"MessageConfirmMarkAllEpisodesNotFinished": "Are you sure you want to mark all episodes as not finished?",
|
"MessageConfirmMarkAllEpisodesNotFinished": "Czy na pewno chcesz oznaczyć wszystkie odcinki jako nieukończone?",
|
||||||
"MessageConfirmMarkSeriesFinished": "Are you sure you want to mark all books in this series as finished?",
|
"MessageConfirmMarkSeriesFinished": "Czy na pewno chcesz oznaczyć wszystkie książki w tej serii jako ukończone?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Are you sure you want to mark all books in this series as not finished?",
|
"MessageConfirmMarkSeriesNotFinished": "Czy na pewno chcesz oznaczyć wszystkie książki w tej serii jako nieukończone?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
"MessageConfirmQuickEmbed": "Warning! Quick embed will not backup your audio files. Make sure that you have a backup of your audio files. <br><br>Would you like to continue?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||||
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
"MessageConfirmRemoveAllChapters": "Are you sure you want to remove all chapters?",
|
||||||
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Are you sure you want to remove author \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Czy na pewno chcesz usunąć kolekcję \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Czy na pewno chcesz usunąć kolekcję \"{0}\"?",
|
||||||
"MessageConfirmRemoveEpisode": "Czy na pewno chcesz usunąć odcinek \"{0}\"?",
|
"MessageConfirmRemoveEpisode": "Czy na pewno chcesz usunąć odcinek \"{0}\"?",
|
||||||
"MessageConfirmRemoveEpisodes": "Czy na pewno chcesz usunąć {0} odcinki?",
|
"MessageConfirmRemoveEpisodes": "Czy na pewno chcesz usunąć {0} odcinki?",
|
||||||
"MessageConfirmRemoveListeningSessions": "Are you sure you want to remove {0} listening sessions?",
|
"MessageConfirmRemoveListeningSessions": "Czy na pewno chcesz usunąć {0} sesji słuchania?",
|
||||||
"MessageConfirmRemoveNarrator": "Are you sure you want to remove narrator \"{0}\"?",
|
"MessageConfirmRemoveNarrator": "Are you sure you want to remove narrator \"{0}\"?",
|
||||||
"MessageConfirmRemovePlaylist": "Are you sure you want to remove your playlist \"{0}\"?",
|
"MessageConfirmRemovePlaylist": "Are you sure you want to remove your playlist \"{0}\"?",
|
||||||
"MessageConfirmRenameGenre": "Are you sure you want to rename genre \"{0}\" to \"{1}\" for all items?",
|
"MessageConfirmRenameGenre": "Are you sure you want to rename genre \"{0}\" to \"{1}\" for all items?",
|
||||||
@@ -627,7 +649,6 @@
|
|||||||
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
"MessageConfirmRenameTag": "Are you sure you want to rename tag \"{0}\" to \"{1}\" for all items?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
"MessageConfirmRenameTagMergeNote": "Note: This tag already exists so they will be merged.",
|
||||||
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Warning! A similar tag with a different casing already exists \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Are you sure you want to send {0} ebook \"{1}\" to device \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Pobieranie odcinka",
|
"MessageDownloadingEpisode": "Pobieranie odcinka",
|
||||||
"MessageDragFilesIntoTrackOrder": "przeciągnij pliki aby ustawić właściwą kolejność utworów",
|
"MessageDragFilesIntoTrackOrder": "przeciągnij pliki aby ustawić właściwą kolejność utworów",
|
||||||
@@ -645,12 +666,12 @@
|
|||||||
"MessageListeningSessionsInTheLastYear": "{0} sesje odsłuchowe w ostatnim roku",
|
"MessageListeningSessionsInTheLastYear": "{0} sesje odsłuchowe w ostatnim roku",
|
||||||
"MessageLoading": "Ładowanie...",
|
"MessageLoading": "Ładowanie...",
|
||||||
"MessageLoadingFolders": "Ładowanie folderów...",
|
"MessageLoadingFolders": "Ładowanie folderów...",
|
||||||
"MessageLogsDescription": "Logs are stored in <code>/metadata/logs</code> as JSON files. Crash logs are stored in <code>/metadata/logs/crash_logs.txt</code>.",
|
"MessageLogsDescription": "Logi zapisane są w <code>/metadata/logs</code> jako pliki JSON. Logi awaryjne są zapisane w <code>/metadata/logs/crash_logs.txt</code>.",
|
||||||
"MessageM4BFailed": "Tworzenie pliku M4B nie powiodło się",
|
"MessageM4BFailed": "Tworzenie pliku M4B nie powiodło się!",
|
||||||
"MessageM4BFinished": "Tworzenie pliku M4B zakończyło się!",
|
"MessageM4BFinished": "Tworzenie pliku M4B zakończyło się!",
|
||||||
"MessageMapChapterTitles": "Mapowanie tytułów rozdziałów do istniejących rozdziałów audiobooka bez dostosowywania znaczników czasu",
|
"MessageMapChapterTitles": "Mapowanie tytułów rozdziałów do istniejących rozdziałów audiobooka bez dostosowywania znaczników czasu",
|
||||||
"MessageMarkAllEpisodesFinished": "Mark all episodes finished",
|
"MessageMarkAllEpisodesFinished": "Oznacz wszystkie odcinki jako ukończone",
|
||||||
"MessageMarkAllEpisodesNotFinished": "Mark all episodes not finished",
|
"MessageMarkAllEpisodesNotFinished": "Oznacz wszystkie odcinki jako nieukończone",
|
||||||
"MessageMarkAsFinished": "Oznacz jako ukończone",
|
"MessageMarkAsFinished": "Oznacz jako ukończone",
|
||||||
"MessageMarkAsNotFinished": "Oznacz jako nieukończone",
|
"MessageMarkAsNotFinished": "Oznacz jako nieukończone",
|
||||||
"MessageMatchBooksDescription": "spróbuje dopasować książki w bibliotece bez plików audio, korzystając z wybranego dostawcy wyszukiwania i wypełnić puste szczegóły i okładki. Nie nadpisuje informacji.",
|
"MessageMatchBooksDescription": "spróbuje dopasować książki w bibliotece bez plików audio, korzystając z wybranego dostawcy wyszukiwania i wypełnić puste szczegóły i okładki. Nie nadpisuje informacji.",
|
||||||
@@ -670,7 +691,7 @@
|
|||||||
"MessageNoGenres": "Brak gatunków",
|
"MessageNoGenres": "Brak gatunków",
|
||||||
"MessageNoIssues": "Brak problemów",
|
"MessageNoIssues": "Brak problemów",
|
||||||
"MessageNoItems": "Brak elementów",
|
"MessageNoItems": "Brak elementów",
|
||||||
"MessageNoItemsFound": "Nie znaleziono żadnych elemntów",
|
"MessageNoItemsFound": "Nie znaleziono żadnych elementów",
|
||||||
"MessageNoListeningSessions": "Brak sesji odtwarzania",
|
"MessageNoListeningSessions": "Brak sesji odtwarzania",
|
||||||
"MessageNoLogs": "Brak logów",
|
"MessageNoLogs": "Brak logów",
|
||||||
"MessageNoMediaProgress": "Brak postępu",
|
"MessageNoMediaProgress": "Brak postępu",
|
||||||
@@ -680,29 +701,31 @@
|
|||||||
"MessageNoSearchResultsFor": "Brak wyników wyszukiwania dla \"{0}\"",
|
"MessageNoSearchResultsFor": "Brak wyników wyszukiwania dla \"{0}\"",
|
||||||
"MessageNoSeries": "No Series",
|
"MessageNoSeries": "No Series",
|
||||||
"MessageNoTags": "No Tags",
|
"MessageNoTags": "No Tags",
|
||||||
"MessageNoTasksRunning": "No Tasks Running",
|
"MessageNoTasksRunning": "Brak uruchomionych zadań",
|
||||||
"MessageNotYetImplemented": "Jeszcze nie zaimplementowane",
|
|
||||||
"MessageNoUpdateNecessary": "Brak konieczności aktualizacji",
|
"MessageNoUpdateNecessary": "Brak konieczności aktualizacji",
|
||||||
"MessageNoUpdatesWereNecessary": "Brak aktualizacji",
|
"MessageNoUpdatesWereNecessary": "Brak aktualizacji",
|
||||||
"MessageNoUserPlaylists": "You have no playlists",
|
"MessageNoUserPlaylists": "Nie masz żadnych list odtwarzania",
|
||||||
|
"MessageNotYetImplemented": "Jeszcze nie zaimplementowane",
|
||||||
"MessageOr": "lub",
|
"MessageOr": "lub",
|
||||||
"MessagePauseChapter": "Zatrzymaj odtwarzanie rozdziały",
|
"MessagePauseChapter": "Zatrzymaj odtwarzanie rozdziały",
|
||||||
"MessagePlayChapter": "Rozpocznij odtwarzanie od początku rozdziału",
|
"MessagePlayChapter": "Rozpocznij odtwarzanie od początku rozdziału",
|
||||||
"MessagePlaylistCreateFromCollection": "Create playlist from collection",
|
"MessagePlaylistCreateFromCollection": "Utwórz listę odtwarznia na podstawie kolekcji",
|
||||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast nie ma adresu url kanału RSS, który mógłby zostać użyty do dopasowania",
|
"MessagePodcastHasNoRSSFeedForMatching": "Podcast nie ma adresu url kanału RSS, który mógłby zostać użyty do dopasowania",
|
||||||
"MessageQuickMatchDescription": "Wypełnij puste informacje i okładkę pierwszym wynikiem dopasowania z '{0}'. Nie nadpisuje szczegółów, chyba że włączone jest ustawienie serwera 'Preferuj dopasowane metadane'.",
|
"MessageQuickMatchDescription": "Wypełnij puste informacje i okładkę pierwszym wynikiem dopasowania z '{0}'. Nie nadpisuje szczegółów, chyba że włączone jest ustawienie serwera 'Preferuj dopasowane metadane'.",
|
||||||
"MessageRemoveChapter": "Usuń rozdział",
|
"MessageRemoveChapter": "Usuń rozdział",
|
||||||
"MessageRemoveEpisodes": "Usuń {0} odcinków",
|
"MessageRemoveEpisodes": "Usuń {0} odcinków",
|
||||||
"MessageRemoveFromPlayerQueue": "Remove from player queue",
|
"MessageRemoveFromPlayerQueue": "Usuń z kolejki odtwarzacza",
|
||||||
"MessageRemoveUserWarning": "Czy na pewno chcesz trwale usunąć użytkownika \"{0}\"?",
|
"MessageRemoveUserWarning": "Czy na pewno chcesz trwale usunąć użytkownika \"{0}\"?",
|
||||||
"MessageReportBugsAndContribute": "Zgłoś błędy, pomysły i pomóż rozwijać aplikację na",
|
"MessageReportBugsAndContribute": "Zgłoś błędy, pomysły i pomóż rozwijać aplikację na",
|
||||||
"MessageResetChaptersConfirm": "Are you sure you want to reset chapters and undo the changes you made?",
|
"MessageResetChaptersConfirm": "Are you sure you want to reset chapters and undo the changes you made?",
|
||||||
"MessageRestoreBackupConfirm": "Czy na pewno chcesz przywrócić kopię zapasową utworzoną w dniu",
|
"MessageRestoreBackupConfirm": "Czy na pewno chcesz przywrócić kopię zapasową utworzoną w dniu",
|
||||||
"MessageRestoreBackupWarning": "Przywrócenie kopii zapasowej spowoduje nadpisane bazy danych w folderze /config oraz okładke w folderze /metadata/items & /metadata/authors.<br /><br />Kopie zapasowe nie modyfikują żadnego pliku w folderach z plikami audio. Jeśli włączyłeś ustawienia serwera, aby przechowywać okładki i metadane w folderach biblioteki, to nie są one zapisywane w kopii zapasowej lub nadpisywane<br /><br />Wszyscy klienci korzystający z Twojego serwera będą automatycznie odświeżani",
|
"MessageRestoreBackupWarning": "Przywrócenie kopii zapasowej spowoduje nadpisanie bazy danych w folderze /config oraz okładek w folderze /metadata/items & /metadata/authors.<br /><br />Kopie zapasowe nie modyfikują żadnego pliku w folderach z plikami audio. Jeśli włączyłeś ustawienia serwera, aby przechowywać okładki i metadane w folderach biblioteki, to nie są one zapisywane w kopii zapasowej lub nadpisywane<br /><br />Wszyscy klienci korzystający z Twojego serwera będą automatycznie odświeżani.",
|
||||||
"MessageSearchResultsFor": "Wyniki wyszukiwania dla",
|
"MessageSearchResultsFor": "Wyniki wyszukiwania dla",
|
||||||
"MessageSelected": "{0} selected",
|
"MessageSelected": "{0} wybranych",
|
||||||
"MessageServerCouldNotBeReached": "Nie udało się uzyskać połączenia z serwerem",
|
"MessageServerCouldNotBeReached": "Nie udało się uzyskać połączenia z serwerem",
|
||||||
"MessageSetChaptersFromTracksDescription": "Set chapters using each audio file as a chapter and chapter title as the audio file name",
|
"MessageSetChaptersFromTracksDescription": "Set chapters using each audio file as a chapter and chapter title as the audio file name",
|
||||||
|
"MessageShareExpiresIn": "Wygaśnie za {0}",
|
||||||
|
"MessageShareURLWillBe": "URL udziału będzie <strong>{0}</strong>",
|
||||||
"MessageStartPlaybackAtTime": "Rozpoczęcie odtwarzania \"{0}\" od {1}?",
|
"MessageStartPlaybackAtTime": "Rozpoczęcie odtwarzania \"{0}\" od {1}?",
|
||||||
"MessageThinking": "Myślę...",
|
"MessageThinking": "Myślę...",
|
||||||
"MessageUploaderItemFailed": "Nie udało się przesłać",
|
"MessageUploaderItemFailed": "Nie udało się przesłać",
|
||||||
@@ -716,7 +739,7 @@
|
|||||||
"NoteChangeRootPassword": "Tylko użytkownik root, może posiadać puste hasło",
|
"NoteChangeRootPassword": "Tylko użytkownik root, może posiadać puste hasło",
|
||||||
"NoteChapterEditorTimes": "Uwaga: Czas rozpoczęcia pierwszego rozdziału musi pozostać na poziomie 0:00, a czas rozpoczęcia ostatniego rozdziału nie może przekroczyć czasu trwania audiobooka.",
|
"NoteChapterEditorTimes": "Uwaga: Czas rozpoczęcia pierwszego rozdziału musi pozostać na poziomie 0:00, a czas rozpoczęcia ostatniego rozdziału nie może przekroczyć czasu trwania audiobooka.",
|
||||||
"NoteFolderPicker": "Uwaga: dotychczas zmapowane foldery nie zostaną wyświetlone",
|
"NoteFolderPicker": "Uwaga: dotychczas zmapowane foldery nie zostaną wyświetlone",
|
||||||
"NoteRSSFeedPodcastAppsHttps": "Ostrzeżenie: Większość aplikacji do obsługi podcastów wymaga, aby adres URL kanału RSS korzystał z protokołu HTTPS.",
|
"NoteRSSFeedPodcastAppsHttps": "Ostrzeżenie: Większość aplikacji do obsługi podcastów wymaga, aby adres URL kanału RSS korzystał z protokołu HTTPS",
|
||||||
"NoteRSSFeedPodcastAppsPubDate": "Ostrzeżenie: 1 lub więcej odcinków nie ma daty publikacji. Niektóre aplikacje do słuchania podcastów tego wymagają.",
|
"NoteRSSFeedPodcastAppsPubDate": "Ostrzeżenie: 1 lub więcej odcinków nie ma daty publikacji. Niektóre aplikacje do słuchania podcastów tego wymagają.",
|
||||||
"NoteUploaderFoldersWithMediaFiles": "Foldery z plikami multimedialnymi będą traktowane jako osobne elementy w bibliotece.",
|
"NoteUploaderFoldersWithMediaFiles": "Foldery z plikami multimedialnymi będą traktowane jako osobne elementy w bibliotece.",
|
||||||
"NoteUploaderOnlyAudioFiles": "Jeśli przesyłasz tylko pliki audio, każdy plik audio będzie traktowany jako osobny audiobook.",
|
"NoteUploaderOnlyAudioFiles": "Jeśli przesyłasz tylko pliki audio, każdy plik audio będzie traktowany jako osobny audiobook.",
|
||||||
@@ -725,7 +748,7 @@
|
|||||||
"PlaceholderNewFolderPath": "Nowa ścieżka folderu",
|
"PlaceholderNewFolderPath": "Nowa ścieżka folderu",
|
||||||
"PlaceholderNewPlaylist": "New playlist name",
|
"PlaceholderNewPlaylist": "New playlist name",
|
||||||
"PlaceholderSearch": "Szukanie..",
|
"PlaceholderSearch": "Szukanie..",
|
||||||
"PlaceholderSearchEpisode": "Search episode..",
|
"PlaceholderSearchEpisode": "Szukanie odcinka..",
|
||||||
"ToastAccountUpdateFailed": "Nie udało się zaktualizować konta",
|
"ToastAccountUpdateFailed": "Nie udało się zaktualizować konta",
|
||||||
"ToastAccountUpdateSuccess": "Zaktualizowano konto",
|
"ToastAccountUpdateSuccess": "Zaktualizowano konto",
|
||||||
"ToastAuthorImageRemoveFailed": "Nie udało się usunąć obrazu",
|
"ToastAuthorImageRemoveFailed": "Nie udało się usunąć obrazu",
|
||||||
@@ -767,10 +790,10 @@
|
|||||||
"ToastItemDetailsUpdateFailed": "Nie udało się zaktualizować szczegółów",
|
"ToastItemDetailsUpdateFailed": "Nie udało się zaktualizować szczegółów",
|
||||||
"ToastItemDetailsUpdateSuccess": "Zaktualizowano szczegóły",
|
"ToastItemDetailsUpdateSuccess": "Zaktualizowano szczegóły",
|
||||||
"ToastItemDetailsUpdateUnneeded": "Brak aktulizacji dla pozycji",
|
"ToastItemDetailsUpdateUnneeded": "Brak aktulizacji dla pozycji",
|
||||||
"ToastItemMarkedAsFinishedFailed": "Nie udało się oznaczyć jako zakończone",
|
"ToastItemMarkedAsFinishedFailed": "Nie udało się oznaczyć jako ukończone",
|
||||||
"ToastItemMarkedAsFinishedSuccess": "Pozycja oznaczona jako ukończona",
|
"ToastItemMarkedAsFinishedSuccess": "Pozycja oznaczona jako ukończona",
|
||||||
"ToastItemMarkedAsNotFinishedFailed": "Oznaczenie pozycji jako ukończonej nie powiodło się",
|
"ToastItemMarkedAsNotFinishedFailed": "Oznaczenie pozycji jako ukończonej nie powiodło się",
|
||||||
"ToastItemMarkedAsNotFinishedSuccess": "Pozycja oznaczona jako ukończon",
|
"ToastItemMarkedAsNotFinishedSuccess": "Pozycja oznaczona jako nieukończona",
|
||||||
"ToastLibraryCreateFailed": "Nie udało się utworzyć biblioteki",
|
"ToastLibraryCreateFailed": "Nie udało się utworzyć biblioteki",
|
||||||
"ToastLibraryCreateSuccess": "Biblioteka \"{0}\" stworzona",
|
"ToastLibraryCreateSuccess": "Biblioteka \"{0}\" stworzona",
|
||||||
"ToastLibraryDeleteFailed": "Nie udało się usunąć biblioteki",
|
"ToastLibraryDeleteFailed": "Nie udało się usunąć biblioteki",
|
||||||
@@ -787,10 +810,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
"ToastPlaylistUpdateSuccess": "Playlist updated",
|
||||||
"ToastPodcastCreateFailed": "Nie udało się utworzyć podcastu",
|
"ToastPodcastCreateFailed": "Nie udało się utworzyć podcastu",
|
||||||
"ToastPodcastCreateSuccess": "Podcast został pomyślnie utworzony",
|
"ToastPodcastCreateSuccess": "Podcast został pomyślnie utworzony",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Nie udało się usunąć elementu z kolekcji",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Pozycja usunięta z kolekcji",
|
|
||||||
"ToastRSSFeedCloseFailed": "Zamknięcie kanału RSS nie powiodło się",
|
"ToastRSSFeedCloseFailed": "Zamknięcie kanału RSS nie powiodło się",
|
||||||
"ToastRSSFeedCloseSuccess": "Zamknięcie kanału RSS powiodło się",
|
"ToastRSSFeedCloseSuccess": "Zamknięcie kanału RSS powiodło się",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Nie udało się usunąć elementu z kolekcji",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Pozycja usunięta z kolekcji",
|
||||||
"ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device",
|
"ToastSendEbookToDeviceFailed": "Failed to Send Ebook to device",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook sent to device \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Series update failed",
|
"ToastSeriesUpdateFailed": "Series update failed",
|
||||||
|
|||||||
+51
-40
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Aplicar",
|
"ButtonApply": "Aplicar",
|
||||||
"ButtonApplyChapters": "Aplicar Capítulos",
|
"ButtonApplyChapters": "Aplicar Capítulos",
|
||||||
"ButtonAuthors": "Autores",
|
"ButtonAuthors": "Autores",
|
||||||
|
"ButtonBack": "Voltar",
|
||||||
"ButtonBrowseForFolder": "Procurar por Pasta",
|
"ButtonBrowseForFolder": "Procurar por Pasta",
|
||||||
"ButtonCancel": "Cancelar",
|
"ButtonCancel": "Cancelar",
|
||||||
"ButtonCancelEncode": "Cancelar Codificação",
|
"ButtonCancelEncode": "Cancelar Codificação",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Capítulo Anterior",
|
"ButtonPreviousChapter": "Capítulo Anterior",
|
||||||
"ButtonPurgeAllCache": "Apagar Todo o Cache",
|
"ButtonPurgeAllCache": "Apagar Todo o Cache",
|
||||||
"ButtonPurgeItemsCache": "Apagar o Cache de Itens",
|
"ButtonPurgeItemsCache": "Apagar o Cache de Itens",
|
||||||
"ButtonPurgeMediaProgress": "Apagar o Progresso nas Mídias",
|
|
||||||
"ButtonQueueAddItem": "Adicionar à Lista",
|
"ButtonQueueAddItem": "Adicionar à Lista",
|
||||||
"ButtonQueueRemoveItem": "Remover da Lista",
|
"ButtonQueueRemoveItem": "Remover da Lista",
|
||||||
"ButtonQuickMatch": "Consulta rápida",
|
"ButtonQuickMatch": "Consulta rápida",
|
||||||
|
"ButtonReScan": "Nova Verificação",
|
||||||
"ButtonRead": "Ler",
|
"ButtonRead": "Ler",
|
||||||
"ButtonReadLess": "Ler menos",
|
"ButtonReadLess": "Ler menos",
|
||||||
"ButtonReadMore": "Ler mais",
|
"ButtonReadMore": "Ler mais",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Remover de Continuar Escutando",
|
"ButtonRemoveFromContinueListening": "Remover de Continuar Escutando",
|
||||||
"ButtonRemoveFromContinueReading": "Remover de Continuar Lendo",
|
"ButtonRemoveFromContinueReading": "Remover de Continuar Lendo",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Remover Série de Continuar Série",
|
"ButtonRemoveSeriesFromContinueSeries": "Remover Série de Continuar Série",
|
||||||
"ButtonReScan": "Nova Verificação",
|
|
||||||
"ButtonReset": "Resetar",
|
"ButtonReset": "Resetar",
|
||||||
"ButtonResetToDefault": "Resetar para valores padrão",
|
"ButtonResetToDefault": "Resetar para valores padrão",
|
||||||
"ButtonRestore": "Restaurar",
|
"ButtonRestore": "Restaurar",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Conta",
|
"HeaderAccount": "Conta",
|
||||||
"HeaderAdvanced": "Avançado",
|
"HeaderAdvanced": "Avançado",
|
||||||
"HeaderAppriseNotificationSettings": "Configuração de notificações Apprise",
|
"HeaderAppriseNotificationSettings": "Configuração de notificações Apprise",
|
||||||
"HeaderAudiobookTools": "Ferramentas de Gerenciamento de Arquivos de Audiobooks",
|
|
||||||
"HeaderAudioTracks": "Trilhas de áudio",
|
"HeaderAudioTracks": "Trilhas de áudio",
|
||||||
|
"HeaderAudiobookTools": "Ferramentas de Gerenciamento de Arquivos de Audiobooks",
|
||||||
"HeaderAuthentication": "Autenticação",
|
"HeaderAuthentication": "Autenticação",
|
||||||
"HeaderBackups": "Backups",
|
"HeaderBackups": "Backups",
|
||||||
"HeaderChangePassword": "Trocar Senha",
|
"HeaderChangePassword": "Trocar Senha",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Itens da Coleção",
|
"HeaderCollectionItems": "Itens da Coleção",
|
||||||
"HeaderCover": "Capas",
|
"HeaderCover": "Capas",
|
||||||
"HeaderCurrentDownloads": "Downloads em andamento",
|
"HeaderCurrentDownloads": "Downloads em andamento",
|
||||||
|
"HeaderCustomMessageOnLogin": "Mensagem personalizada no login",
|
||||||
"HeaderCustomMetadataProviders": "Fontes de Metadados Customizados",
|
"HeaderCustomMetadataProviders": "Fontes de Metadados Customizados",
|
||||||
"HeaderDetails": "Detalhes",
|
"HeaderDetails": "Detalhes",
|
||||||
"HeaderDownloadQueue": "Fila de Download",
|
"HeaderDownloadQueue": "Fila de Download",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Itens da lista de reprodução",
|
"HeaderPlaylistItems": "Itens da lista de reprodução",
|
||||||
"HeaderPodcastsToAdd": "Podcasts para Adicionar",
|
"HeaderPodcastsToAdd": "Podcasts para Adicionar",
|
||||||
"HeaderPreviewCover": "Visualização da Capa",
|
"HeaderPreviewCover": "Visualização da Capa",
|
||||||
|
"HeaderRSSFeedGeneral": "Detalhes RSS",
|
||||||
|
"HeaderRSSFeedIsOpen": "Feed RSS está Aberto",
|
||||||
|
"HeaderRSSFeeds": "Feeds RSS",
|
||||||
"HeaderRemoveEpisode": "Remover Episódio",
|
"HeaderRemoveEpisode": "Remover Episódio",
|
||||||
"HeaderRemoveEpisodes": "Remover {0} Episódios",
|
"HeaderRemoveEpisodes": "Remover {0} Episódios",
|
||||||
"HeaderRSSFeedGeneral": "Detalhes RSS",
|
|
||||||
"HeaderRSSFeedIsOpen": "Feed RSS está aberto",
|
|
||||||
"HeaderRSSFeeds": "Feeds RSS",
|
|
||||||
"HeaderSavedMediaProgress": "Progresso da gravação das mídias",
|
"HeaderSavedMediaProgress": "Progresso da gravação das mídias",
|
||||||
"HeaderSchedule": "Programação",
|
"HeaderSchedule": "Programação",
|
||||||
"HeaderScheduleLibraryScans": "Programar Verificação Automática da Biblioteca",
|
"HeaderScheduleLibraryScans": "Programar Verificação Automática da Biblioteca",
|
||||||
@@ -191,18 +192,18 @@
|
|||||||
"LabelAbridged": "Versão Abreviada",
|
"LabelAbridged": "Versão Abreviada",
|
||||||
"LabelAbridgedChecked": "Abreviada (verificada)",
|
"LabelAbridgedChecked": "Abreviada (verificada)",
|
||||||
"LabelAbridgedUnchecked": "Não Abreviada (não verificada)",
|
"LabelAbridgedUnchecked": "Não Abreviada (não verificada)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "Acessível por",
|
||||||
"LabelAccountType": "Tipo de Conta",
|
"LabelAccountType": "Tipo de Conta",
|
||||||
"LabelAccountTypeAdmin": "Administrador",
|
"LabelAccountTypeAdmin": "Administrador",
|
||||||
"LabelAccountTypeGuest": "Convidado",
|
"LabelAccountTypeGuest": "Convidado",
|
||||||
"LabelAccountTypeUser": "Usuário",
|
"LabelAccountTypeUser": "Usuário",
|
||||||
"LabelActivity": "Atividade",
|
"LabelActivity": "Atividade",
|
||||||
"LabelAdded": "Acrescentado",
|
|
||||||
"LabelAddedAt": "Acrescentado em",
|
|
||||||
"LabelAddToCollection": "Adicionar à Coleção",
|
"LabelAddToCollection": "Adicionar à Coleção",
|
||||||
"LabelAddToCollectionBatch": "Adicionar {0} Livros à Coleção",
|
"LabelAddToCollectionBatch": "Adicionar {0} Livros à Coleção",
|
||||||
"LabelAddToPlaylist": "Adicionar à Lista de Reprodução",
|
"LabelAddToPlaylist": "Adicionar à Lista de Reprodução",
|
||||||
"LabelAddToPlaylistBatch": "Adicionar {0} itens à Lista de Reprodução",
|
"LabelAddToPlaylistBatch": "Adicionar {0} itens à Lista de Reprodução",
|
||||||
|
"LabelAdded": "Acrescentado",
|
||||||
|
"LabelAddedAt": "Acrescentado em",
|
||||||
"LabelAdminUsersOnly": "Apenas usuários administradores",
|
"LabelAdminUsersOnly": "Apenas usuários administradores",
|
||||||
"LabelAll": "Todos",
|
"LabelAll": "Todos",
|
||||||
"LabelAllUsers": "Todos Usuários",
|
"LabelAllUsers": "Todos Usuários",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "por {0}",
|
"LabelByAuthor": "por {0}",
|
||||||
"LabelChangePassword": "Trocar Senha",
|
"LabelChangePassword": "Trocar Senha",
|
||||||
"LabelChannels": "Canais",
|
"LabelChannels": "Canais",
|
||||||
|
"LabelChapterTitle": "Título do Capítulo",
|
||||||
"LabelChapters": "Capítulos",
|
"LabelChapters": "Capítulos",
|
||||||
"LabelChaptersFound": "capítulos encontrados",
|
"LabelChaptersFound": "capítulos encontrados",
|
||||||
"LabelChapterTitle": "Título do Capítulo",
|
|
||||||
"LabelClickForMoreInfo": "Clique para mais informações",
|
"LabelClickForMoreInfo": "Clique para mais informações",
|
||||||
"LabelClosePlayer": "Fechar Reprodutor",
|
"LabelClosePlayer": "Fechar Reprodutor",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Editar",
|
"LabelEdit": "Editar",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "Remetente",
|
"LabelEmailSettingsFromAddress": "Remetente",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Rejeitar certificados não autorizados",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Desativar a validação de certificados SSL pode expor sua conexão a riscos de segurança, como ataques \"man-in-the-middle\". Desative essa opção apenas se entender suas consequências e se puder confiar no servidor de email ao qual você está se conectando.",
|
||||||
"LabelEmailSettingsSecure": "Seguro",
|
"LabelEmailSettingsSecure": "Seguro",
|
||||||
"LabelEmailSettingsSecureHelp": "Se ativado, a conexão utilizará TLS para a conexão ao servidor. Se desativado TLS será usado se o servidor suportar a extensão STARTTLS. Na maioria dos casos ative esse valor se estiver conectando pela porta 465. Para portas 587 ou 25, mantenha inativo. (de nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Se ativado, a conexão utilizará TLS para a conexão ao servidor. Se desativado TLS será usado se o servidor suportar a extensão STARTTLS. Na maioria dos casos ative esse valor se estiver conectando pela porta 465. Para portas 587 ou 25, mantenha inativo. (de nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Endereço de teste",
|
"LabelEmailSettingsTestAddress": "Endereço de teste",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Pasta",
|
"LabelFolder": "Pasta",
|
||||||
"LabelFolders": "Pastas",
|
"LabelFolders": "Pastas",
|
||||||
"LabelFontBold": "Negrito",
|
"LabelFontBold": "Negrito",
|
||||||
|
"LabelFontBoldness": "Intensidade do negrito",
|
||||||
"LabelFontFamily": "Família de fonte",
|
"LabelFontFamily": "Família de fonte",
|
||||||
"LabelFontItalic": "Itálico",
|
"LabelFontItalic": "Itálico",
|
||||||
"LabelFontScale": "Escala de fonte",
|
"LabelFontScale": "Escala de fonte",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Hora",
|
"LabelHour": "Hora",
|
||||||
"LabelIcon": "Ícone",
|
"LabelIcon": "Ícone",
|
||||||
"LabelImageURLFromTheWeb": "URL da imagem na internet",
|
"LabelImageURLFromTheWeb": "URL da imagem na internet",
|
||||||
|
"LabelInProgress": "Em Andamento",
|
||||||
"LabelIncludeInTracklist": "Incluir na Lista de Faixas",
|
"LabelIncludeInTracklist": "Incluir na Lista de Faixas",
|
||||||
"LabelIncomplete": "Incompleto",
|
"LabelIncomplete": "Incompleto",
|
||||||
"LabelInProgress": "Em Andamento",
|
|
||||||
"LabelInterval": "Intervalo",
|
"LabelInterval": "Intervalo",
|
||||||
"LabelIntervalCustomDailyWeekly": "Personalizar diário/semanal",
|
"LabelIntervalCustomDailyWeekly": "Personalizar diário/semanal",
|
||||||
"LabelIntervalEvery12Hours": "A cada 12 horas",
|
"LabelIntervalEvery12Hours": "A cada 12 horas",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Item",
|
"LabelItem": "Item",
|
||||||
"LabelLanguage": "Idioma",
|
"LabelLanguage": "Idioma",
|
||||||
"LabelLanguageDefaultServer": "Idioma Padrão do Servidor",
|
"LabelLanguageDefaultServer": "Idioma Padrão do Servidor",
|
||||||
|
"LabelLanguages": "Idiomas",
|
||||||
"LabelLastBookAdded": "Último Livro Acrescentado",
|
"LabelLastBookAdded": "Último Livro Acrescentado",
|
||||||
"LabelLastBookUpdated": "Último Livro Atualizado",
|
"LabelLastBookUpdated": "Último Livro Atualizado",
|
||||||
"LabelLastSeen": "Visto pela Última Vez",
|
"LabelLastSeen": "Visto pela Última Vez",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Menos",
|
"LabelLess": "Menos",
|
||||||
"LabelLibrariesAccessibleToUser": "Bibliotecas Acessíveis ao Usuário",
|
"LabelLibrariesAccessibleToUser": "Bibliotecas Acessíveis ao Usuário",
|
||||||
"LabelLibrary": "Biblioteca",
|
"LabelLibrary": "Biblioteca",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Item da Biblioteca",
|
"LabelLibraryItem": "Item da Biblioteca",
|
||||||
"LabelLibraryName": "Nome da Biblioteca",
|
"LabelLibraryName": "Nome da Biblioteca",
|
||||||
"LabelLimit": "Limite",
|
"LabelLimit": "Limite",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Utilizado para conectar usuários já existentes. Uma vez conectados, usuários serão consultados utilizando uma identificação única do seu provedor de SSO",
|
"LabelMatchExistingUsersByDescription": "Utilizado para conectar usuários já existentes. Uma vez conectados, usuários serão consultados utilizando uma identificação única do seu provedor de SSO",
|
||||||
"LabelMediaPlayer": "Reprodutor de mídia",
|
"LabelMediaPlayer": "Reprodutor de mídia",
|
||||||
"LabelMediaType": "Tipo de Mídia",
|
"LabelMediaType": "Tipo de Mídia",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Fontes de metadados de alta prioridade terão preferência sobre as fontes de metadados de prioridade baixa",
|
|
||||||
"LabelMetadataProvider": "Fonte de Metadados",
|
|
||||||
"LabelMetaTag": "Etiqueta Meta",
|
"LabelMetaTag": "Etiqueta Meta",
|
||||||
"LabelMetaTags": "Etiquetas Meta",
|
"LabelMetaTags": "Etiquetas Meta",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Fontes de metadados de alta prioridade terão preferência sobre as fontes de metadados de prioridade baixa",
|
||||||
|
"LabelMetadataProvider": "Fonte de Metadados",
|
||||||
"LabelMinute": "Minuto",
|
"LabelMinute": "Minuto",
|
||||||
"LabelMissing": "Ausente",
|
"LabelMissing": "Ausente",
|
||||||
"LabelMissingEbook": "Ebook não existe",
|
"LabelMissingEbook": "Ebook não existe",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Narrador",
|
"LabelNarrator": "Narrador",
|
||||||
"LabelNarrators": "Narradores",
|
"LabelNarrators": "Narradores",
|
||||||
"LabelNew": "Novo",
|
"LabelNew": "Novo",
|
||||||
|
"LabelNewPassword": "Nova Senha",
|
||||||
"LabelNewestAuthors": "Novos Autores",
|
"LabelNewestAuthors": "Novos Autores",
|
||||||
"LabelNewestEpisodes": "Episódios mais recentes",
|
"LabelNewestEpisodes": "Episódios mais recentes",
|
||||||
"LabelNewPassword": "Nova Senha",
|
|
||||||
"LabelNextBackupDate": "Data do próximo backup",
|
"LabelNextBackupDate": "Data do próximo backup",
|
||||||
"LabelNextScheduledRun": "Próxima execução programada",
|
"LabelNextScheduledRun": "Próxima execução programada",
|
||||||
|
"LabelNoCustomMetadataProviders": "Não existem fontes de metadados customizados",
|
||||||
"LabelNoEpisodesSelected": "Nenhum episódio selecionado",
|
"LabelNoEpisodesSelected": "Nenhum episódio selecionado",
|
||||||
"LabelNotes": "Notas",
|
|
||||||
"LabelNotFinished": "Não concluído",
|
"LabelNotFinished": "Não concluído",
|
||||||
|
"LabelNotStarted": "Não iniciado",
|
||||||
|
"LabelNotes": "Notas",
|
||||||
"LabelNotificationAppriseURL": "URL(s) Apprise",
|
"LabelNotificationAppriseURL": "URL(s) Apprise",
|
||||||
"LabelNotificationAvailableVariables": "Variáveis disponíveis",
|
"LabelNotificationAvailableVariables": "Variáveis disponíveis",
|
||||||
"LabelNotificationBodyTemplate": "Modelo de Corpo",
|
"LabelNotificationBodyTemplate": "Modelo de Corpo",
|
||||||
"LabelNotificationEvent": "Evento de Notificação",
|
"LabelNotificationEvent": "Evento de Notificação",
|
||||||
|
"LabelNotificationTitleTemplate": "Modelo de Título",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Máximo de tentativas com falhas",
|
"LabelNotificationsMaxFailedAttempts": "Máximo de tentativas com falhas",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Notificações serão desabilitadas após falharem este número de vezes",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Notificações serão desabilitadas após falharem este número de vezes",
|
||||||
"LabelNotificationsMaxQueueSize": "Tamanho máximo da fila de eventos de notificação",
|
"LabelNotificationsMaxQueueSize": "Tamanho máximo da fila de eventos de notificação",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Eventos estão limitados a um disparo por segundo. Eventos serão ignorados se a fila estiver no tamanho máximo. Isso evita o excesso de notificações.",
|
"LabelNotificationsMaxQueueSizeHelp": "Eventos estão limitados a um disparo por segundo. Eventos serão ignorados se a fila estiver no tamanho máximo. Isso evita o excesso de notificações.",
|
||||||
"LabelNotificationTitleTemplate": "Modelo de Título",
|
|
||||||
"LabelNotStarted": "Não iniciado",
|
|
||||||
"LabelNumberOfBooks": "Número de Livros",
|
"LabelNumberOfBooks": "Número de Livros",
|
||||||
"LabelNumberOfEpisodes": "# de Episódios",
|
"LabelNumberOfEpisodes": "# de Episódios",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Nome do claim OpenID contendo as permissões avançadas para ações do usuário na aplicação para serem aplicadas aos perfis não-administradores (<b>se configurados</b>). Se o claim não estiver presente na resposta, acesso ao ABS será negado. Se apenas uma opção estiver ausente, ela será tratada como <code>false</code>. Garanta que o claim do provedor de identidade segue a estrutura esperada:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Nome do claim OpenID contendo as permissões avançadas para ações do usuário na aplicação para serem aplicadas aos perfis não-administradores (<b>se configurados</b>). Se o claim não estiver presente na resposta, acesso ao ABS será negado. Se apenas uma opção estiver ausente, ela será tratada como <code>false</code>. Garanta que o claim do provedor de identidade segue a estrutura esperada:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Pode Fazer Upload",
|
"LabelPermissionsUpload": "Pode Fazer Upload",
|
||||||
"LabelPersonalYearReview": "Sua Retrospectiva Anual ({0})",
|
"LabelPersonalYearReview": "Sua Retrospectiva Anual ({0})",
|
||||||
"LabelPhotoPathURL": "Caminho/URL para Foto",
|
"LabelPhotoPathURL": "Caminho/URL para Foto",
|
||||||
"LabelPlaylists": "Listas de Reprodução",
|
|
||||||
"LabelPlayMethod": "Método de Reprodução",
|
"LabelPlayMethod": "Método de Reprodução",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Listas de Reprodução",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Região de busca do podcast",
|
"LabelPodcastSearchRegion": "Região de busca do podcast",
|
||||||
"LabelPodcastType": "Tipo de Podcast",
|
"LabelPodcastType": "Tipo de Podcast",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Porta",
|
"LabelPort": "Porta",
|
||||||
"LabelPrefixesToIgnore": "Prefixos para Ignorar (sem distinção entre maiúsculas e minúsculas)",
|
"LabelPrefixesToIgnore": "Prefixos para Ignorar (sem distinção entre maiúsculas e minúsculas)",
|
||||||
"LabelPreventIndexing": "Evitar que o seu feed seja indexado pelos diretórios de podcast do iTunes e Google",
|
"LabelPreventIndexing": "Evitar que o seu feed seja indexado pelos diretórios de podcast do iTunes e Google",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Progresso",
|
"LabelProgress": "Progresso",
|
||||||
"LabelProvider": "Fonte",
|
"LabelProvider": "Fonte",
|
||||||
"LabelPubDate": "Data de Publicação",
|
"LabelPubDate": "Data de Publicação",
|
||||||
"LabelPublisher": "Editora",
|
|
||||||
"LabelPublishYear": "Ano de Publicação",
|
"LabelPublishYear": "Ano de Publicação",
|
||||||
|
"LabelPublisher": "Editora",
|
||||||
|
"LabelPublishers": "Editoras",
|
||||||
|
"LabelRSSFeedCustomOwnerEmail": "E-mail do dono personalizado",
|
||||||
|
"LabelRSSFeedCustomOwnerName": "Nome do dono personalizado",
|
||||||
|
"LabelRSSFeedOpen": "Feed RSS Aberto",
|
||||||
|
"LabelRSSFeedPreventIndexing": "Impedir Indexação",
|
||||||
|
"LabelRSSFeedSlug": "Slug do Feed RSS",
|
||||||
|
"LabelRSSFeedURL": "URL do Feed RSS",
|
||||||
"LabelRead": "Lido",
|
"LabelRead": "Lido",
|
||||||
"LabelReadAgain": "Ler novamente",
|
"LabelReadAgain": "Ler novamente",
|
||||||
"LabelReadEbookWithoutProgress": "Ler ebook sem armazenar progresso",
|
"LabelReadEbookWithoutProgress": "Ler ebook sem armazenar progresso",
|
||||||
"LabelRecentlyAdded": "Novidades",
|
|
||||||
"LabelRecentSeries": "Séries Recentes",
|
"LabelRecentSeries": "Séries Recentes",
|
||||||
|
"LabelRecentlyAdded": "Novidades",
|
||||||
"LabelRecommended": "Recomendado",
|
"LabelRecommended": "Recomendado",
|
||||||
"LabelRedo": "Refazer",
|
"LabelRedo": "Refazer",
|
||||||
"LabelRegion": "Região",
|
"LabelRegion": "Região",
|
||||||
"LabelReleaseDate": "Data de Lançamento",
|
"LabelReleaseDate": "Data de Lançamento",
|
||||||
"LabelRemoveCover": "Remover capa",
|
"LabelRemoveCover": "Remover capa",
|
||||||
"LabelRowsPerPage": "Linhas por Página",
|
"LabelRowsPerPage": "Linhas por Página",
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Email do dono personalizado",
|
|
||||||
"LabelRSSFeedCustomOwnerName": "Nome do dono personalizado",
|
|
||||||
"LabelRSSFeedOpen": "Feed RSS Aberto",
|
|
||||||
"LabelRSSFeedPreventIndexing": "Impedir Indexação",
|
|
||||||
"LabelRSSFeedSlug": "Slug do Feed RSS",
|
|
||||||
"LabelRSSFeedURL": "URL do Feed RSS",
|
|
||||||
"LabelSearchTerm": "Busca por Termo",
|
"LabelSearchTerm": "Busca por Termo",
|
||||||
"LabelSearchTitle": "Busca por Título",
|
"LabelSearchTitle": "Busca por Título",
|
||||||
"LabelSearchTitleOrASIN": "Busca por Título ou ASIN",
|
"LabelSearchTitleOrASIN": "Busca por Título ou ASIN",
|
||||||
@@ -471,8 +480,8 @@
|
|||||||
"LabelSettingsEnableWatcher": "Ativar Monitoramento",
|
"LabelSettingsEnableWatcher": "Ativar Monitoramento",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "Ativa o monitoramento de pastas para a biblioteca",
|
"LabelSettingsEnableWatcherForLibrary": "Ativa o monitoramento de pastas para a biblioteca",
|
||||||
"LabelSettingsEnableWatcherHelp": "Ativa o acréscimo/atualização de itens quando forem detectadas mudanças no arquivo. *Requer reiniciar o servidor",
|
"LabelSettingsEnableWatcherHelp": "Ativa o acréscimo/atualização de itens quando forem detectadas mudanças no arquivo. *Requer reiniciar o servidor",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Permitir scripts em epubs",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Permitir que arquivos epub executem scripts. É recomendado manter essa configuração desativada, a não ser que confie na fonte dos arquivos epub.",
|
||||||
"LabelSettingsExperimentalFeatures": "Funcionalidade experimentais",
|
"LabelSettingsExperimentalFeatures": "Funcionalidade experimentais",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "Funcionalidade em desenvolvimento que se beneficiairam dos seus comentários e da sua ajuda para testar. Clique para abrir a discussão no github.",
|
"LabelSettingsExperimentalFeaturesHelp": "Funcionalidade em desenvolvimento que se beneficiairam dos seus comentários e da sua ajuda para testar. Clique para abrir a discussão no github.",
|
||||||
"LabelSettingsFindCovers": "Localizar capas",
|
"LabelSettingsFindCovers": "Localizar capas",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Timer",
|
"LabelSleepTimer": "Timer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Iniciar",
|
"LabelStart": "Iniciar",
|
||||||
|
"LabelStartTime": "Horário do Início",
|
||||||
"LabelStarted": "Iniciado",
|
"LabelStarted": "Iniciado",
|
||||||
"LabelStartedAt": "Iniciado Em",
|
"LabelStartedAt": "Iniciado Em",
|
||||||
"LabelStartTime": "Horário do Início",
|
|
||||||
"LabelStatsAudioTracks": "Trilhas de Áudio",
|
"LabelStatsAudioTracks": "Trilhas de Áudio",
|
||||||
"LabelStatsAuthors": "Autores",
|
"LabelStatsAuthors": "Autores",
|
||||||
"LabelStatsBestDay": "Melhor Dia",
|
"LabelStatsBestDay": "Melhor Dia",
|
||||||
@@ -558,13 +567,13 @@
|
|||||||
"LabelTracksSingleTrack": "Trilha única",
|
"LabelTracksSingleTrack": "Trilha única",
|
||||||
"LabelType": "Tipo",
|
"LabelType": "Tipo",
|
||||||
"LabelUnabridged": "Não Abreviada",
|
"LabelUnabridged": "Não Abreviada",
|
||||||
"LabelUndo": "Undo",
|
"LabelUndo": "Desfazer",
|
||||||
"LabelUnknown": "Desconhecido",
|
"LabelUnknown": "Desconhecido",
|
||||||
"LabelUpdateCover": "Atualizar Capa",
|
"LabelUpdateCover": "Atualizar Capa",
|
||||||
"LabelUpdateCoverHelp": "Permite sobrescrever capas existentes para os livros selecionados quando uma consulta for localizada",
|
"LabelUpdateCoverHelp": "Permite sobrescrever capas existentes para os livros selecionados quando uma consulta for localizada",
|
||||||
"LabelUpdatedAt": "Atualizado em",
|
|
||||||
"LabelUpdateDetails": "Atualizar Detalhes",
|
"LabelUpdateDetails": "Atualizar Detalhes",
|
||||||
"LabelUpdateDetailsHelp": "Permite sobrescrever detalhes existentes para os livros selecionados quando uma consulta for localizada",
|
"LabelUpdateDetailsHelp": "Permite sobrescrever detalhes existentes para os livros selecionados quando uma consulta for localizada",
|
||||||
|
"LabelUpdatedAt": "Atualizado em",
|
||||||
"LabelUploaderDragAndDrop": "Arraste e solte arquivos ou pastas",
|
"LabelUploaderDragAndDrop": "Arraste e solte arquivos ou pastas",
|
||||||
"LabelUploaderDropFiles": "Solte os arquivos",
|
"LabelUploaderDropFiles": "Solte os arquivos",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Busca título, autor e série automaticamente",
|
"LabelUploaderItemFetchMetadataHelp": "Busca título, autor e série automaticamente",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Backups incluem usuários, progresso dos usuários, detalhes dos itens da biblioteca, configurações do servidor e imagens armazenadas em <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>não</strong> incluem quaisquer arquivos armazenados nas pastas da sua biblioteca.",
|
"MessageBackupsDescription": "Backups incluem usuários, progresso dos usuários, detalhes dos itens da biblioteca, configurações do servidor e imagens armazenadas em <code>/metadata/items</code> & <code>/metadata/authors</code>. Backups <strong>não</strong> incluem quaisquer arquivos armazenados nas pastas da sua biblioteca.",
|
||||||
"MessageBatchQuickMatchDescription": "Consulta Rápida tentará adicionar capas e metadados ausentes para os itens selecionados. Ative as opções abaixo para permitir que a Consulta Rápida sobrescreva capas e/ou metadados existentes.",
|
"MessageBatchQuickMatchDescription": "Consulta Rápida tentará adicionar capas e metadados ausentes para os itens selecionados. Ative as opções abaixo para permitir que a Consulta Rápida sobrescreva capas e/ou metadados existentes.",
|
||||||
"MessageBookshelfNoCollections": "Você ainda não criou coleções",
|
"MessageBookshelfNoCollections": "Você ainda não criou coleções",
|
||||||
"MessageBookshelfNoResultsForFilter": "Sem Resultados para o filtro \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Não existem feeds RSS abertos",
|
"MessageBookshelfNoRSSFeeds": "Não existem feeds RSS abertos",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Sem Resultados para o filtro \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "Sem resultados para a consulta",
|
||||||
"MessageBookshelfNoSeries": "Você não tem séries",
|
"MessageBookshelfNoSeries": "Você não tem séries",
|
||||||
"MessageChapterEndIsAfter": "O final do capítulo está além do final do seu audiobook",
|
"MessageChapterEndIsAfter": "O final do capítulo está além do final do seu audiobook",
|
||||||
"MessageChapterErrorFirstNotZero": "O primeiro capítulo precisa começar no 0",
|
"MessageChapterErrorFirstNotZero": "O primeiro capítulo precisa começar no 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Tem certeza de que deseja marcar todos os livros nesta série como concluídos?",
|
"MessageConfirmMarkSeriesFinished": "Tem certeza de que deseja marcar todos os livros nesta série como concluídos?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Tem certeza de que deseja marcar todos os livros nesta série como não concluídos?",
|
"MessageConfirmMarkSeriesNotFinished": "Tem certeza de que deseja marcar todos os livros nesta série como não concluídos?",
|
||||||
"MessageConfirmPurgeCache": "Apagar o cache irá apagar o diretório todo localizado em <code>/metadata/cache</code>. <br /><br />Tem certeza que deseja apagar o diretório de cache?",
|
"MessageConfirmPurgeCache": "Apagar o cache irá apagar o diretório todo localizado em <code>/metadata/cache</code>. <br /><br />Tem certeza que deseja apagar o diretório de cache?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Apagar o cache de itens irá apagar todo conteúdo da pasta <code>/metadata/cache/items</code>.<br />Tem certeza?",
|
||||||
"MessageConfirmQuickEmbed": "Aviso! Inclusão rápida não fará backup dos seus arquivos de áudio. Verifique se tem um backup dos seus arquivos de áudio. <br><br>Quer continuar?",
|
"MessageConfirmQuickEmbed": "Aviso! Inclusão rápida não fará backup dos seus arquivos de áudio. Verifique se tem um backup dos seus arquivos de áudio. <br><br>Quer continuar?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Tem certeza de que deseja uma nova verificação de {0} itens?",
|
||||||
"MessageConfirmRemoveAllChapters": "Tem certeza de que deseja remover todos os capítulos?",
|
"MessageConfirmRemoveAllChapters": "Tem certeza de que deseja remover todos os capítulos?",
|
||||||
"MessageConfirmRemoveAuthor": "Tem certeza de que deseja remover o autor \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Tem certeza de que deseja remover o autor \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Tem certeza de que deseja remover a coleção \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Tem certeza de que deseja remover a coleção \"{0}\"?",
|
||||||
@@ -627,13 +639,12 @@
|
|||||||
"MessageConfirmRenameTag": "Tem certeza de que deseja renomear a etiqueta \"{0}\" para \"{1}\" em todos os itens?",
|
"MessageConfirmRenameTag": "Tem certeza de que deseja renomear a etiqueta \"{0}\" para \"{1}\" em todos os itens?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Aviso: Esta etiqueta já existe então elas serão combinadas.",
|
"MessageConfirmRenameTagMergeNote": "Aviso: Esta etiqueta já existe então elas serão combinadas.",
|
||||||
"MessageConfirmRenameTagWarning": "Atenção! Uma etiqueta com um nome semelhante já existe \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Atenção! Uma etiqueta com um nome semelhante já existe \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Tem certeza de que deseja uma nova verificação de {0} itens?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Tem certeza de que deseja enviar {0} ebook(s) \"{1}\" para o dispositivo \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Tem certeza de que deseja enviar {0} ebook(s) \"{1}\" para o dispositivo \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Realizando o download do episódio",
|
"MessageDownloadingEpisode": "Realizando o download do episódio",
|
||||||
"MessageDragFilesIntoTrackOrder": "Arraste os arquivos para ordenar as trilhas corretamente",
|
"MessageDragFilesIntoTrackOrder": "Arraste os arquivos para ordenar as trilhas corretamente",
|
||||||
"MessageEmbedFinished": "Inclusão Concluída!",
|
"MessageEmbedFinished": "Inclusão Concluída!",
|
||||||
"MessageEpisodesQueuedForDownload": "{0} Episódio(s) na fila de download",
|
"MessageEpisodesQueuedForDownload": "{0} Episódio(s) na fila de download",
|
||||||
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below.",
|
"MessageEreaderDevices": "Para garantir a entrega dos ebooks, você pode precisar adicionar o endereço de email acima como um remetente válido para cada um dos dispositivos listados abaixo.",
|
||||||
"MessageFeedURLWillBe": "URL do Feed será {0}",
|
"MessageFeedURLWillBe": "URL do Feed será {0}",
|
||||||
"MessageFetching": "Buscando...",
|
"MessageFetching": "Buscando...",
|
||||||
"MessageForceReScanDescription": "verificará todos os arquivos, como uma verificação nova. Etiquetas ID3 de arquivos de áudio, arquivos OPF e arquivos de texto serão tratados como novos.",
|
"MessageForceReScanDescription": "verificará todos os arquivos, como uma verificação nova. Etiquetas ID3 de arquivos de áudio, arquivos OPF e arquivos de texto serão tratados como novos.",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Sem Séries",
|
"MessageNoSeries": "Sem Séries",
|
||||||
"MessageNoTags": "Sem etiquetas",
|
"MessageNoTags": "Sem etiquetas",
|
||||||
"MessageNoTasksRunning": "Sem Tarefas em Execução",
|
"MessageNoTasksRunning": "Sem Tarefas em Execução",
|
||||||
"MessageNotYetImplemented": "Ainda não implementado",
|
|
||||||
"MessageNoUpdateNecessary": "Não é necessária a atualização",
|
"MessageNoUpdateNecessary": "Não é necessária a atualização",
|
||||||
"MessageNoUpdatesWereNecessary": "Nenhuma atualização é necessária",
|
"MessageNoUpdatesWereNecessary": "Nenhuma atualização é necessária",
|
||||||
"MessageNoUserPlaylists": "Você não tem listas de reprodução",
|
"MessageNoUserPlaylists": "Você não tem listas de reprodução",
|
||||||
|
"MessageNotYetImplemented": "Ainda não implementado",
|
||||||
"MessageOr": "ou",
|
"MessageOr": "ou",
|
||||||
"MessagePauseChapter": "Pausar reprodução do capítulo",
|
"MessagePauseChapter": "Pausar reprodução do capítulo",
|
||||||
"MessagePlayChapter": "Escutar o início do capítulo",
|
"MessagePlayChapter": "Escutar o início do capítulo",
|
||||||
@@ -749,8 +760,8 @@
|
|||||||
"ToastBookmarkRemoveSuccess": "Marcador removido",
|
"ToastBookmarkRemoveSuccess": "Marcador removido",
|
||||||
"ToastBookmarkUpdateFailed": "Falha ao atualizar o marcador",
|
"ToastBookmarkUpdateFailed": "Falha ao atualizar o marcador",
|
||||||
"ToastBookmarkUpdateSuccess": "Marcador atualizado",
|
"ToastBookmarkUpdateSuccess": "Marcador atualizado",
|
||||||
"ToastCachePurgeFailed": "Failed to purge cache",
|
"ToastCachePurgeFailed": "Falha ao apagar o cache",
|
||||||
"ToastCachePurgeSuccess": "Cache purged successfully",
|
"ToastCachePurgeSuccess": "Cache apagado com sucesso",
|
||||||
"ToastChaptersHaveErrors": "Capítulos com erro",
|
"ToastChaptersHaveErrors": "Capítulos com erro",
|
||||||
"ToastChaptersMustHaveTitles": "Capítulos precisam ter títulos",
|
"ToastChaptersMustHaveTitles": "Capítulos precisam ter títulos",
|
||||||
"ToastCollectionItemsRemoveFailed": "Falha ao remover item(ns) da coleção",
|
"ToastCollectionItemsRemoveFailed": "Falha ao remover item(ns) da coleção",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Lista de reprodução atualizada",
|
"ToastPlaylistUpdateSuccess": "Lista de reprodução atualizada",
|
||||||
"ToastPodcastCreateFailed": "Falha ao criar podcast",
|
"ToastPodcastCreateFailed": "Falha ao criar podcast",
|
||||||
"ToastPodcastCreateSuccess": "Podcast criado",
|
"ToastPodcastCreateSuccess": "Podcast criado",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Falha ao remover item da coleção",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Item removido da coleção",
|
|
||||||
"ToastRSSFeedCloseFailed": "Falha ao fechar feed RSS",
|
"ToastRSSFeedCloseFailed": "Falha ao fechar feed RSS",
|
||||||
"ToastRSSFeedCloseSuccess": "Feed RSS fechado",
|
"ToastRSSFeedCloseSuccess": "Feed RSS fechado",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Falha ao remover item da coleção",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Item removido da coleção",
|
||||||
"ToastSendEbookToDeviceFailed": "Falha ao enviar ebook para dispositivo",
|
"ToastSendEbookToDeviceFailed": "Falha ao enviar ebook para dispositivo",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook enviado para o dispositivo \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook enviado para o dispositivo \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Falha ao atualizar série",
|
"ToastSeriesUpdateFailed": "Falha ao atualizar série",
|
||||||
|
|||||||
+104
-93
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Применить",
|
"ButtonApply": "Применить",
|
||||||
"ButtonApplyChapters": "Применить главы",
|
"ButtonApplyChapters": "Применить главы",
|
||||||
"ButtonAuthors": "Авторы",
|
"ButtonAuthors": "Авторы",
|
||||||
|
"ButtonBack": "Назад",
|
||||||
"ButtonBrowseForFolder": "Выбрать папку",
|
"ButtonBrowseForFolder": "Выбрать папку",
|
||||||
"ButtonCancel": "Отмена",
|
"ButtonCancel": "Отмена",
|
||||||
"ButtonCancelEncode": "Отменить кодирование",
|
"ButtonCancelEncode": "Отменить кодирование",
|
||||||
@@ -32,8 +33,8 @@
|
|||||||
"ButtonHide": "Скрыть",
|
"ButtonHide": "Скрыть",
|
||||||
"ButtonHome": "Домой",
|
"ButtonHome": "Домой",
|
||||||
"ButtonIssues": "Проблемы",
|
"ButtonIssues": "Проблемы",
|
||||||
"ButtonJumpBackward": "Jump Backward",
|
"ButtonJumpBackward": "Назад",
|
||||||
"ButtonJumpForward": "Jump Forward",
|
"ButtonJumpForward": "Вперед",
|
||||||
"ButtonLatest": "Последнее",
|
"ButtonLatest": "Последнее",
|
||||||
"ButtonLibrary": "Библиотека",
|
"ButtonLibrary": "Библиотека",
|
||||||
"ButtonLogout": "Выход",
|
"ButtonLogout": "Выход",
|
||||||
@@ -44,7 +45,7 @@
|
|||||||
"ButtonMatchBooks": "Найти книги",
|
"ButtonMatchBooks": "Найти книги",
|
||||||
"ButtonNevermind": "Не важно",
|
"ButtonNevermind": "Не важно",
|
||||||
"ButtonNext": "Next",
|
"ButtonNext": "Next",
|
||||||
"ButtonNextChapter": "Next Chapter",
|
"ButtonNextChapter": "Следующая глава",
|
||||||
"ButtonOk": "Ok",
|
"ButtonOk": "Ok",
|
||||||
"ButtonOpenFeed": "Открыть канал",
|
"ButtonOpenFeed": "Открыть канал",
|
||||||
"ButtonOpenManager": "Открыть менеджер",
|
"ButtonOpenManager": "Открыть менеджер",
|
||||||
@@ -52,25 +53,24 @@
|
|||||||
"ButtonPlay": "Слушать",
|
"ButtonPlay": "Слушать",
|
||||||
"ButtonPlaying": "Проигрывается",
|
"ButtonPlaying": "Проигрывается",
|
||||||
"ButtonPlaylists": "Плейлисты",
|
"ButtonPlaylists": "Плейлисты",
|
||||||
"ButtonPrevious": "Previous",
|
"ButtonPrevious": "Предыдущий",
|
||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Предыдущая глава",
|
||||||
"ButtonPurgeAllCache": "Очистить весь кэш",
|
"ButtonPurgeAllCache": "Очистить весь кэш",
|
||||||
"ButtonPurgeItemsCache": "Очистить кэш элементов",
|
"ButtonPurgeItemsCache": "Очистить кэш элементов",
|
||||||
"ButtonPurgeMediaProgress": "Очистить прогресс медиа",
|
|
||||||
"ButtonQueueAddItem": "Добавить в очередь",
|
"ButtonQueueAddItem": "Добавить в очередь",
|
||||||
"ButtonQueueRemoveItem": "Удалить из очереди",
|
"ButtonQueueRemoveItem": "Удалить из очереди",
|
||||||
"ButtonQuickMatch": "Быстрый поиск",
|
"ButtonQuickMatch": "Быстрый поиск",
|
||||||
|
"ButtonReScan": "Пересканировать",
|
||||||
"ButtonRead": "Читать",
|
"ButtonRead": "Читать",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Читать меньше",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Читать больше",
|
||||||
"ButtonRefresh": "Refresh",
|
"ButtonRefresh": "Обновить",
|
||||||
"ButtonRemove": "Удалить",
|
"ButtonRemove": "Удалить",
|
||||||
"ButtonRemoveAll": "Удалить всё",
|
"ButtonRemoveAll": "Удалить всё",
|
||||||
"ButtonRemoveAllLibraryItems": "Удалить все элементы библиотеки",
|
"ButtonRemoveAllLibraryItems": "Удалить все элементы библиотеки",
|
||||||
"ButtonRemoveFromContinueListening": "Удалить из Продолжить слушать",
|
"ButtonRemoveFromContinueListening": "Удалить из Продолжить слушать",
|
||||||
"ButtonRemoveFromContinueReading": "Удалить из Продолжить читать",
|
"ButtonRemoveFromContinueReading": "Удалить из Продолжить читать",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Удалить серию из Продолжить серию",
|
"ButtonRemoveSeriesFromContinueSeries": "Удалить серию из Продолжить серию",
|
||||||
"ButtonReScan": "Пересканировать",
|
|
||||||
"ButtonReset": "Сбросить",
|
"ButtonReset": "Сбросить",
|
||||||
"ButtonResetToDefault": "Сборосить по умолчанию",
|
"ButtonResetToDefault": "Сборосить по умолчанию",
|
||||||
"ButtonRestore": "Восстановить",
|
"ButtonRestore": "Восстановить",
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
"ButtonSelectFolderPath": "Выберите путь папки",
|
"ButtonSelectFolderPath": "Выберите путь папки",
|
||||||
"ButtonSeries": "Серии",
|
"ButtonSeries": "Серии",
|
||||||
"ButtonSetChaptersFromTracks": "Установить главы из треков",
|
"ButtonSetChaptersFromTracks": "Установить главы из треков",
|
||||||
"ButtonShare": "Share",
|
"ButtonShare": "Поделиться",
|
||||||
"ButtonShiftTimes": "Смещение",
|
"ButtonShiftTimes": "Смещение",
|
||||||
"ButtonShow": "Показать",
|
"ButtonShow": "Показать",
|
||||||
"ButtonStartM4BEncode": "Начать кодирование M4B",
|
"ButtonStartM4BEncode": "Начать кодирование M4B",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Учетная запись",
|
"HeaderAccount": "Учетная запись",
|
||||||
"HeaderAdvanced": "Дополнительно",
|
"HeaderAdvanced": "Дополнительно",
|
||||||
"HeaderAppriseNotificationSettings": "Настройки оповещений",
|
"HeaderAppriseNotificationSettings": "Настройки оповещений",
|
||||||
"HeaderAudiobookTools": "Инструменты файлов аудиокниг",
|
|
||||||
"HeaderAudioTracks": "Аудио треки",
|
"HeaderAudioTracks": "Аудио треки",
|
||||||
|
"HeaderAudiobookTools": "Инструменты файлов аудиокниг",
|
||||||
"HeaderAuthentication": "Аутентификация",
|
"HeaderAuthentication": "Аутентификация",
|
||||||
"HeaderBackups": "Бэкапы",
|
"HeaderBackups": "Бэкапы",
|
||||||
"HeaderChangePassword": "Изменить пароль",
|
"HeaderChangePassword": "Изменить пароль",
|
||||||
@@ -115,7 +115,8 @@
|
|||||||
"HeaderCollectionItems": "Элементы коллекции",
|
"HeaderCollectionItems": "Элементы коллекции",
|
||||||
"HeaderCover": "Обложка",
|
"HeaderCover": "Обложка",
|
||||||
"HeaderCurrentDownloads": "Текущие закачки",
|
"HeaderCurrentDownloads": "Текущие закачки",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMessageOnLogin": "Пользовательское сообщение при входе",
|
||||||
|
"HeaderCustomMetadataProviders": "Пользовательские поставщики метаданных",
|
||||||
"HeaderDetails": "Подробности",
|
"HeaderDetails": "Подробности",
|
||||||
"HeaderDownloadQueue": "Очередь скачивания",
|
"HeaderDownloadQueue": "Очередь скачивания",
|
||||||
"HeaderEbookFiles": "Файлы e-книг",
|
"HeaderEbookFiles": "Файлы e-книг",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Элементы списка воспроизведения",
|
"HeaderPlaylistItems": "Элементы списка воспроизведения",
|
||||||
"HeaderPodcastsToAdd": "Подкасты для добавления",
|
"HeaderPodcastsToAdd": "Подкасты для добавления",
|
||||||
"HeaderPreviewCover": "Предпросмотр обложки",
|
"HeaderPreviewCover": "Предпросмотр обложки",
|
||||||
"HeaderRemoveEpisode": "Удалить эпизод",
|
|
||||||
"HeaderRemoveEpisodes": "Удалить {0} эпизодов",
|
|
||||||
"HeaderRSSFeedGeneral": "Сведения о RSS",
|
"HeaderRSSFeedGeneral": "Сведения о RSS",
|
||||||
"HeaderRSSFeedIsOpen": "RSS-канал открыт",
|
"HeaderRSSFeedIsOpen": "RSS-канал открыт",
|
||||||
"HeaderRSSFeeds": "RSS-каналы",
|
"HeaderRSSFeeds": "RSS-каналы",
|
||||||
|
"HeaderRemoveEpisode": "Удалить эпизод",
|
||||||
|
"HeaderRemoveEpisodes": "Удалить {0} эпизодов",
|
||||||
"HeaderSavedMediaProgress": "Прогресс медиа сохранен",
|
"HeaderSavedMediaProgress": "Прогресс медиа сохранен",
|
||||||
"HeaderSchedule": "Планировщик",
|
"HeaderSchedule": "Планировщик",
|
||||||
"HeaderScheduleLibraryScans": "Планировщик автоматического сканирования библиотеки",
|
"HeaderScheduleLibraryScans": "Планировщик автоматического сканирования библиотеки",
|
||||||
@@ -186,23 +187,23 @@
|
|||||||
"HeaderUpdateDetails": "Обновить детали",
|
"HeaderUpdateDetails": "Обновить детали",
|
||||||
"HeaderUpdateLibrary": "Обновить библиотеку",
|
"HeaderUpdateLibrary": "Обновить библиотеку",
|
||||||
"HeaderUsers": "Пользователи",
|
"HeaderUsers": "Пользователи",
|
||||||
"HeaderYearReview": "Year {0} in Review",
|
"HeaderYearReview": "Итоги {0} года",
|
||||||
"HeaderYourStats": "Ваша статистика",
|
"HeaderYourStats": "Ваша статистика",
|
||||||
"LabelAbridged": "Сокращенное издание",
|
"LabelAbridged": "Сокращенное издание",
|
||||||
"LabelAbridgedChecked": "Abridged (checked)",
|
"LabelAbridgedChecked": "Сокращено (отмечено)",
|
||||||
"LabelAbridgedUnchecked": "Unabridged (unchecked)",
|
"LabelAbridgedUnchecked": "Без сокращений (не отмечено)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "Доступ",
|
||||||
"LabelAccountType": "Тип учетной записи",
|
"LabelAccountType": "Тип учетной записи",
|
||||||
"LabelAccountTypeAdmin": "Администратор",
|
"LabelAccountTypeAdmin": "Администратор",
|
||||||
"LabelAccountTypeGuest": "Гость",
|
"LabelAccountTypeGuest": "Гость",
|
||||||
"LabelAccountTypeUser": "Пользователь",
|
"LabelAccountTypeUser": "Пользователь",
|
||||||
"LabelActivity": "Активность",
|
"LabelActivity": "Активность",
|
||||||
"LabelAdded": "Добавили",
|
|
||||||
"LabelAddedAt": "Дата добавления",
|
|
||||||
"LabelAddToCollection": "Добавить в коллекцию",
|
"LabelAddToCollection": "Добавить в коллекцию",
|
||||||
"LabelAddToCollectionBatch": "Добавить {0} книг в коллекцию",
|
"LabelAddToCollectionBatch": "Добавить {0} книг в коллекцию",
|
||||||
"LabelAddToPlaylist": "Добавить в плейлист",
|
"LabelAddToPlaylist": "Добавить в плейлист",
|
||||||
"LabelAddToPlaylistBatch": "Добавить {0} элементов в плейлист",
|
"LabelAddToPlaylistBatch": "Добавить {0} элементов в плейлист",
|
||||||
|
"LabelAdded": "Добавили",
|
||||||
|
"LabelAddedAt": "Дата добавления",
|
||||||
"LabelAdminUsersOnly": "Только для пользователей с правами администратора",
|
"LabelAdminUsersOnly": "Только для пользователей с правами администратора",
|
||||||
"LabelAll": "Все",
|
"LabelAll": "Все",
|
||||||
"LabelAllUsers": "Все пользователи",
|
"LabelAllUsers": "Все пользователи",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Изменить пароль",
|
"LabelChangePassword": "Изменить пароль",
|
||||||
"LabelChannels": "Каналы",
|
"LabelChannels": "Каналы",
|
||||||
|
"LabelChapterTitle": "Название главы",
|
||||||
"LabelChapters": "Главы",
|
"LabelChapters": "Главы",
|
||||||
"LabelChaptersFound": "глав найдено",
|
"LabelChaptersFound": "глав найдено",
|
||||||
"LabelChapterTitle": "Название главы",
|
|
||||||
"LabelClickForMoreInfo": "Нажмите, чтобы узнать больше",
|
"LabelClickForMoreInfo": "Нажмите, чтобы узнать больше",
|
||||||
"LabelClosePlayer": "Закрыть проигрыватель",
|
"LabelClosePlayer": "Закрыть проигрыватель",
|
||||||
"LabelCodec": "Кодек",
|
"LabelCodec": "Кодек",
|
||||||
@@ -247,7 +248,7 @@
|
|||||||
"LabelComplete": "Завершить",
|
"LabelComplete": "Завершить",
|
||||||
"LabelConfirmPassword": "Подтвердить пароль",
|
"LabelConfirmPassword": "Подтвердить пароль",
|
||||||
"LabelContinueListening": "Продолжить слушать",
|
"LabelContinueListening": "Продолжить слушать",
|
||||||
"LabelContinueReading": "Продолжить читать",
|
"LabelContinueReading": "Продолжить чтение",
|
||||||
"LabelContinueSeries": "Продолжить серию",
|
"LabelContinueSeries": "Продолжить серию",
|
||||||
"LabelCover": "Обложка",
|
"LabelCover": "Обложка",
|
||||||
"LabelCoverImageURL": "URL изображения обложки",
|
"LabelCoverImageURL": "URL изображения обложки",
|
||||||
@@ -270,15 +271,17 @@
|
|||||||
"LabelDownload": "Скачать",
|
"LabelDownload": "Скачать",
|
||||||
"LabelDownloadNEpisodes": "Скачать {0} эпизодов",
|
"LabelDownloadNEpisodes": "Скачать {0} эпизодов",
|
||||||
"LabelDuration": "Длина",
|
"LabelDuration": "Длина",
|
||||||
"LabelDurationComparisonExactMatch": "(exact match)",
|
"LabelDurationComparisonExactMatch": "(точное совпадение)",
|
||||||
"LabelDurationComparisonLonger": "({0} longer)",
|
"LabelDurationComparisonLonger": "({0} дольше)",
|
||||||
"LabelDurationComparisonShorter": "({0} shorter)",
|
"LabelDurationComparisonShorter": "({0} короче)",
|
||||||
"LabelDurationFound": "Найденная длина:",
|
"LabelDurationFound": "Найденная длина:",
|
||||||
"LabelEbook": "E-книга",
|
"LabelEbook": "E-книга",
|
||||||
"LabelEbooks": "E-книги",
|
"LabelEbooks": "E-книги",
|
||||||
"LabelEdit": "Редактировать",
|
"LabelEdit": "Редактировать",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "Адрес От",
|
"LabelEmailSettingsFromAddress": "Адрес От",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Отклонение неавторизованных сертификатов",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Отключение проверки SSL-сертификата может подвергнуть ваше подключение рискам безопасности, таким как атаки типа \"man-in-the-middle\". Отключайте эту опцию только в том случае, если вы понимаете последствия и доверяете почтовому серверу, к которому подключаетесь.",
|
||||||
"LabelEmailSettingsSecure": "Безопасность",
|
"LabelEmailSettingsSecure": "Безопасность",
|
||||||
"LabelEmailSettingsSecureHelp": "Если значение истинно, то соединение будет использовать TLS при подключении к серверу. Если значение ложно, то TLS будет использован, если сервер поддерживает расширение STARTTLS. В большинстве случаев установите это значение в истину, если вы подключаетесь к порту 465. Для порта 587 или 25 оставьте значение ложным. (из nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Если значение истинно, то соединение будет использовать TLS при подключении к серверу. Если значение ложно, то TLS будет использован, если сервер поддерживает расширение STARTTLS. В большинстве случаев установите это значение в истину, если вы подключаетесь к порту 465. Для порта 587 или 25 оставьте значение ложным. (из nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Тестовый адрес",
|
"LabelEmailSettingsTestAddress": "Тестовый адрес",
|
||||||
@@ -290,8 +293,8 @@
|
|||||||
"LabelEpisodeType": "Тип эпизода",
|
"LabelEpisodeType": "Тип эпизода",
|
||||||
"LabelExample": "Пример",
|
"LabelExample": "Пример",
|
||||||
"LabelExplicit": "Явный",
|
"LabelExplicit": "Явный",
|
||||||
"LabelExplicitChecked": "Explicit (checked)",
|
"LabelExplicitChecked": "Явный (отмечено)",
|
||||||
"LabelExplicitUnchecked": "Not Explicit (unchecked)",
|
"LabelExplicitUnchecked": "Не явно (не отмечено)",
|
||||||
"LabelFeedURL": "URL канала",
|
"LabelFeedURL": "URL канала",
|
||||||
"LabelFetchingMetadata": "Извлечение метаданных",
|
"LabelFetchingMetadata": "Извлечение метаданных",
|
||||||
"LabelFile": "Файл",
|
"LabelFile": "Файл",
|
||||||
@@ -303,11 +306,12 @@
|
|||||||
"LabelFinished": "Закончен",
|
"LabelFinished": "Закончен",
|
||||||
"LabelFolder": "Папка",
|
"LabelFolder": "Папка",
|
||||||
"LabelFolders": "Папки",
|
"LabelFolders": "Папки",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Жирный",
|
||||||
|
"LabelFontBoldness": "Жирность шрифта",
|
||||||
"LabelFontFamily": "Семейство шрифтов",
|
"LabelFontFamily": "Семейство шрифтов",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Масштаб шрифта",
|
"LabelFontScale": "Масштаб шрифта",
|
||||||
"LabelFontStrikethrough": "Strikethrough",
|
"LabelFontStrikethrough": "Зачеркнутый",
|
||||||
"LabelFormat": "Формат",
|
"LabelFormat": "Формат",
|
||||||
"LabelGenre": "Жанр",
|
"LabelGenre": "Жанр",
|
||||||
"LabelGenres": "Жанры",
|
"LabelGenres": "Жанры",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Часы",
|
"LabelHour": "Часы",
|
||||||
"LabelIcon": "Иконка",
|
"LabelIcon": "Иконка",
|
||||||
"LabelImageURLFromTheWeb": "URL-адрес изображения из Интернета",
|
"LabelImageURLFromTheWeb": "URL-адрес изображения из Интернета",
|
||||||
|
"LabelInProgress": "В процессе",
|
||||||
"LabelIncludeInTracklist": "Включать в список воспроизведения",
|
"LabelIncludeInTracklist": "Включать в список воспроизведения",
|
||||||
"LabelIncomplete": "Не завершен",
|
"LabelIncomplete": "Не завершен",
|
||||||
"LabelInProgress": "В процессе",
|
|
||||||
"LabelInterval": "Интервал",
|
"LabelInterval": "Интервал",
|
||||||
"LabelIntervalCustomDailyWeekly": "Пользовательские ежедневно/еженедельно",
|
"LabelIntervalCustomDailyWeekly": "Пользовательские ежедневно/еженедельно",
|
||||||
"LabelIntervalEvery12Hours": "Каждые 12 часов",
|
"LabelIntervalEvery12Hours": "Каждые 12 часов",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Элемент",
|
"LabelItem": "Элемент",
|
||||||
"LabelLanguage": "Язык",
|
"LabelLanguage": "Язык",
|
||||||
"LabelLanguageDefaultServer": "Язык сервера по умолчанию",
|
"LabelLanguageDefaultServer": "Язык сервера по умолчанию",
|
||||||
|
"LabelLanguages": "Языки",
|
||||||
"LabelLastBookAdded": "Последняя книга добавлена",
|
"LabelLastBookAdded": "Последняя книга добавлена",
|
||||||
"LabelLastBookUpdated": "Последняя книга обновлена",
|
"LabelLastBookUpdated": "Последняя книга обновлена",
|
||||||
"LabelLastSeen": "Последнее сканирование",
|
"LabelLastSeen": "Последнее сканирование",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Менее",
|
"LabelLess": "Менее",
|
||||||
"LabelLibrariesAccessibleToUser": "Библиотеки доступные для пользователя",
|
"LabelLibrariesAccessibleToUser": "Библиотеки доступные для пользователя",
|
||||||
"LabelLibrary": "Библиотека",
|
"LabelLibrary": "Библиотека",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Элемент библиотеки",
|
"LabelLibraryItem": "Элемент библиотеки",
|
||||||
"LabelLibraryName": "Имя библиотеки",
|
"LabelLibraryName": "Имя библиотеки",
|
||||||
"LabelLimit": "Лимит",
|
"LabelLimit": "Лимит",
|
||||||
@@ -360,14 +366,14 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Используется для подключения существующих пользователей. После подключения пользователям будет присвоен уникальный идентификатор от поставщика единого входа",
|
"LabelMatchExistingUsersByDescription": "Используется для подключения существующих пользователей. После подключения пользователям будет присвоен уникальный идентификатор от поставщика единого входа",
|
||||||
"LabelMediaPlayer": "Медиа проигрыватель",
|
"LabelMediaPlayer": "Медиа проигрыватель",
|
||||||
"LabelMediaType": "Тип медиа",
|
"LabelMediaType": "Тип медиа",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Источники метаданных с более высоким приоритетом будут переопределять источники метаданных с более низким приоритетом",
|
|
||||||
"LabelMetadataProvider": "Провайдер",
|
|
||||||
"LabelMetaTag": "Мета тег",
|
"LabelMetaTag": "Мета тег",
|
||||||
"LabelMetaTags": "Мета теги",
|
"LabelMetaTags": "Мета теги",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Источники метаданных с более высоким приоритетом будут переопределять источники метаданных с более низким приоритетом",
|
||||||
|
"LabelMetadataProvider": "Провайдер",
|
||||||
"LabelMinute": "Минуты",
|
"LabelMinute": "Минуты",
|
||||||
"LabelMissing": "Потеряно",
|
"LabelMissing": "Потеряно",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Нет e-книги",
|
||||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
"LabelMissingSupplementaryEbook": "Нет дополнительной e-книги",
|
||||||
"LabelMobileRedirectURIs": "Разрешенные URI перенаправления с мобильных устройств",
|
"LabelMobileRedirectURIs": "Разрешенные URI перенаправления с мобильных устройств",
|
||||||
"LabelMobileRedirectURIsDescription": "Это белый список допустимых URI перенаправления для мобильных приложений. По умолчанию используется <code>audiobookshelf://oauth</code>, который можно удалить или дополнить дополнительными URI для интеграции со сторонними приложениями. Использование звездочки (<code>*</code>) в качестве единственной записи разрешает любой URI.",
|
"LabelMobileRedirectURIsDescription": "Это белый список допустимых URI перенаправления для мобильных приложений. По умолчанию используется <code>audiobookshelf://oauth</code>, который можно удалить или дополнить дополнительными URI для интеграции со сторонними приложениями. Использование звездочки (<code>*</code>) в качестве единственной записи разрешает любой URI.",
|
||||||
"LabelMore": "Еще",
|
"LabelMore": "Еще",
|
||||||
@@ -376,29 +382,30 @@
|
|||||||
"LabelNarrator": "Читает",
|
"LabelNarrator": "Читает",
|
||||||
"LabelNarrators": "Чтецы",
|
"LabelNarrators": "Чтецы",
|
||||||
"LabelNew": "Новый",
|
"LabelNew": "Новый",
|
||||||
|
"LabelNewPassword": "Новый пароль",
|
||||||
"LabelNewestAuthors": "Новые авторы",
|
"LabelNewestAuthors": "Новые авторы",
|
||||||
"LabelNewestEpisodes": "Новые эпизоды",
|
"LabelNewestEpisodes": "Новые эпизоды",
|
||||||
"LabelNewPassword": "Новый пароль",
|
|
||||||
"LabelNextBackupDate": "Следующая дата бэкапирования",
|
"LabelNextBackupDate": "Следующая дата бэкапирования",
|
||||||
"LabelNextScheduledRun": "Следущий запланированный запуск",
|
"LabelNextScheduledRun": "Следущий запланированный запуск",
|
||||||
|
"LabelNoCustomMetadataProviders": "Нет пользовательских поставщиков метаданных",
|
||||||
"LabelNoEpisodesSelected": "Эпизоды не выбраны",
|
"LabelNoEpisodesSelected": "Эпизоды не выбраны",
|
||||||
"LabelNotes": "Заметки",
|
|
||||||
"LabelNotFinished": "Не завершено",
|
"LabelNotFinished": "Не завершено",
|
||||||
|
"LabelNotStarted": "Не запущено",
|
||||||
|
"LabelNotes": "Заметки",
|
||||||
"LabelNotificationAppriseURL": "URL(ы) для извещений",
|
"LabelNotificationAppriseURL": "URL(ы) для извещений",
|
||||||
"LabelNotificationAvailableVariables": "Доступные переменные",
|
"LabelNotificationAvailableVariables": "Доступные переменные",
|
||||||
"LabelNotificationBodyTemplate": "Шаблон тела",
|
"LabelNotificationBodyTemplate": "Шаблон тела",
|
||||||
"LabelNotificationEvent": "Событие оповещения",
|
"LabelNotificationEvent": "Событие оповещения",
|
||||||
|
"LabelNotificationTitleTemplate": "Шаблон заголовка",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Макс. попыток",
|
"LabelNotificationsMaxFailedAttempts": "Макс. попыток",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Уведомления будут выключены если произойдет ошибка отправки данное количество раз",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Уведомления будут выключены если произойдет ошибка отправки данное количество раз",
|
||||||
"LabelNotificationsMaxQueueSize": "Макс. размер очереди для событий уведомлений",
|
"LabelNotificationsMaxQueueSize": "Макс. размер очереди для событий уведомлений",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "События ограничены 1 в секунду. События будут игнорированы если в очереди максимальное количество. Это предотвращает спам сообщениями.",
|
"LabelNotificationsMaxQueueSizeHelp": "События ограничены 1 в секунду. События будут игнорированы если в очереди максимальное количество. Это предотвращает спам сообщениями.",
|
||||||
"LabelNotificationTitleTemplate": "Шаблон заголовка",
|
|
||||||
"LabelNotStarted": "Не запущено",
|
|
||||||
"LabelNumberOfBooks": "Количество книг",
|
"LabelNumberOfBooks": "Количество книг",
|
||||||
"LabelNumberOfEpisodes": "# Эпизодов",
|
"LabelNumberOfEpisodes": "# Эпизодов",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Имя утверждения OpenID, содержащего расширенные разрешения на действия пользователя в приложении, которые будут применяться к ролям, не являющимся администраторами (<b>если они настроены</b>). Если утверждение отсутствует в ответе, в доступе к ABS будет отказано. Если одна опция отсутствует, она будет рассматриваться как <code>false</code>. Убедитесь, что утверждение поставщика удостоверений соответствует ожидаемой структуре:",
|
||||||
"LabelOpenIDClaims": "Leave the following options empty to disable advanced group and permissions assignment, automatically assigning 'User' group then.",
|
"LabelOpenIDClaims": "Оставьте следующие параметры пустыми, чтобы отключить расширенное назначение групп и разрешений, будет автоматически присвоена группа «Пользователь».",
|
||||||
"LabelOpenIDGroupClaimDescription": "Name of the OpenID claim that contains a list of the user's groups. Commonly referred to as <code>groups</code>. <b>If configured</b>, the application will automatically assign roles based on the user's group memberships, provided that these groups are named case-insensitively 'admin', 'user', or 'guest' in the claim. The claim should contain a list, and if a user belongs to multiple groups, the application will assign the role corresponding to the highest level of access. If no group matches, access will be denied.",
|
"LabelOpenIDGroupClaimDescription": "Имя утверждения OpenID, содержащего список групп пользователя. Обычно их называют <code>groups</code>. <b>Если эта настройка</b> настроена, приложение будет автоматически назначать роли на основе членства пользователя в группах при условии, что эти группы названы в утверждении без учета регистра \"admin\", \"user\" или \"guest\". Утверждение должно содержать список, и если пользователь принадлежит к нескольким группам, то приложение назначит роль, соответствующую самому высокому уровню доступа. Если ни одна из групп не совпадает, доступ будет запрещен.",
|
||||||
"LabelOpenRSSFeed": "Открыть RSS-канал",
|
"LabelOpenRSSFeed": "Открыть RSS-канал",
|
||||||
"LabelOverwrite": "Перезаписать",
|
"LabelOverwrite": "Перезаписать",
|
||||||
"LabelPassword": "Пароль",
|
"LabelPassword": "Пароль",
|
||||||
@@ -410,14 +417,15 @@
|
|||||||
"LabelPermissionsDownload": "Может скачивать",
|
"LabelPermissionsDownload": "Может скачивать",
|
||||||
"LabelPermissionsUpdate": "Может обновлять",
|
"LabelPermissionsUpdate": "Может обновлять",
|
||||||
"LabelPermissionsUpload": "Может закачивать",
|
"LabelPermissionsUpload": "Может закачивать",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Итоги прошедшего года ({0})",
|
||||||
"LabelPhotoPathURL": "Путь к фото/URL",
|
"LabelPhotoPathURL": "Путь к фото/URL",
|
||||||
"LabelPlaylists": "Плейлисты",
|
|
||||||
"LabelPlayMethod": "Метод воспроизведения",
|
"LabelPlayMethod": "Метод воспроизведения",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Плейлисты",
|
||||||
"LabelPodcast": "Подкаст",
|
"LabelPodcast": "Подкаст",
|
||||||
"LabelPodcasts": "Подкасты",
|
|
||||||
"LabelPodcastSearchRegion": "Регион поиска подкастов",
|
"LabelPodcastSearchRegion": "Регион поиска подкастов",
|
||||||
"LabelPodcastType": "Тип подкаста",
|
"LabelPodcastType": "Тип подкаста",
|
||||||
|
"LabelPodcasts": "Подкасты",
|
||||||
"LabelPort": "Порт",
|
"LabelPort": "Порт",
|
||||||
"LabelPrefixesToIgnore": "Игнорируемые префиксы (без учета регистра)",
|
"LabelPrefixesToIgnore": "Игнорируемые префиксы (без учета регистра)",
|
||||||
"LabelPreventIndexing": "Запретить индексацию фида каталогами подкастов iTunes и Google",
|
"LabelPreventIndexing": "Запретить индексацию фида каталогами подкастов iTunes и Google",
|
||||||
@@ -425,39 +433,40 @@
|
|||||||
"LabelProgress": "Прогресс",
|
"LabelProgress": "Прогресс",
|
||||||
"LabelProvider": "Провайдер",
|
"LabelProvider": "Провайдер",
|
||||||
"LabelPubDate": "Дата публикации",
|
"LabelPubDate": "Дата публикации",
|
||||||
"LabelPublisher": "Издатель",
|
|
||||||
"LabelPublishYear": "Год публикации",
|
"LabelPublishYear": "Год публикации",
|
||||||
"LabelRead": "Читать",
|
"LabelPublisher": "Издатель",
|
||||||
"LabelReadAgain": "Читать снова",
|
"LabelPublishers": "Издатели",
|
||||||
"LabelReadEbookWithoutProgress": "Читать e-книгу без сохранения прогресса",
|
|
||||||
"LabelRecentlyAdded": "Недавно добавленные",
|
|
||||||
"LabelRecentSeries": "Последние серии",
|
|
||||||
"LabelRecommended": "Рекомендованное",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Регион",
|
|
||||||
"LabelReleaseDate": "Дата выхода",
|
|
||||||
"LabelRemoveCover": "Удалить обложку",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Пользовательский Email владельца",
|
"LabelRSSFeedCustomOwnerEmail": "Пользовательский Email владельца",
|
||||||
"LabelRSSFeedCustomOwnerName": "Пользовательское Имя владельца",
|
"LabelRSSFeedCustomOwnerName": "Пользовательское Имя владельца",
|
||||||
"LabelRSSFeedOpen": "Открыть RSS-канал",
|
"LabelRSSFeedOpen": "Открыть RSS-канал",
|
||||||
"LabelRSSFeedPreventIndexing": "Запретить индексирование",
|
"LabelRSSFeedPreventIndexing": "Запретить индексирование",
|
||||||
"LabelRSSFeedSlug": "Встроить RSS-канал",
|
"LabelRSSFeedSlug": "Встроить RSS-канал",
|
||||||
"LabelRSSFeedURL": "URL RSS-канала",
|
"LabelRSSFeedURL": "URL RSS-канала",
|
||||||
|
"LabelRead": "Читать",
|
||||||
|
"LabelReadAgain": "Читать снова",
|
||||||
|
"LabelReadEbookWithoutProgress": "Читать e-книгу без сохранения прогресса",
|
||||||
|
"LabelRecentSeries": "Последние серии",
|
||||||
|
"LabelRecentlyAdded": "Недавно добавленные",
|
||||||
|
"LabelRecommended": "Рекомендованное",
|
||||||
|
"LabelRedo": "Повторить",
|
||||||
|
"LabelRegion": "Регион",
|
||||||
|
"LabelReleaseDate": "Дата выхода",
|
||||||
|
"LabelRemoveCover": "Удалить обложку",
|
||||||
|
"LabelRowsPerPage": "Строк на странице",
|
||||||
"LabelSearchTerm": "Поисковый запрос",
|
"LabelSearchTerm": "Поисковый запрос",
|
||||||
"LabelSearchTitle": "Поиск по названию",
|
"LabelSearchTitle": "Поиск по названию",
|
||||||
"LabelSearchTitleOrASIN": "Поиск по названию или ASIN",
|
"LabelSearchTitleOrASIN": "Поиск по названию или ASIN",
|
||||||
"LabelSeason": "Сезон",
|
"LabelSeason": "Сезон",
|
||||||
"LabelSelectAll": "Select all",
|
"LabelSelectAll": "Выбрать все",
|
||||||
"LabelSelectAllEpisodes": "Выбрать все эпизоды",
|
"LabelSelectAllEpisodes": "Выбрать все эпизоды",
|
||||||
"LabelSelectEpisodesShowing": "Выберите {0} эпизодов для показа",
|
"LabelSelectEpisodesShowing": "Выберите {0} эпизодов для показа",
|
||||||
"LabelSelectUsers": "Select users",
|
"LabelSelectUsers": "Выбор пользователей",
|
||||||
"LabelSendEbookToDevice": "Отправить e-книгу в...",
|
"LabelSendEbookToDevice": "Отправить e-книгу в...",
|
||||||
"LabelSequence": "Последовательность",
|
"LabelSequence": "Последовательность",
|
||||||
"LabelSeries": "Серия",
|
"LabelSeries": "Серия",
|
||||||
"LabelSeriesName": "Имя серии",
|
"LabelSeriesName": "Имя серии",
|
||||||
"LabelSeriesProgress": "Прогресс серии",
|
"LabelSeriesProgress": "Прогресс серии",
|
||||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
"LabelServerYearReview": "Итоги года всего сервера ({0})",
|
||||||
"LabelSetEbookAsPrimary": "Установить как основную",
|
"LabelSetEbookAsPrimary": "Установить как основную",
|
||||||
"LabelSetEbookAsSupplementary": "Установить как дополнительную",
|
"LabelSetEbookAsSupplementary": "Установить как дополнительную",
|
||||||
"LabelSettingsAudiobooksOnly": "Только аудиокниги",
|
"LabelSettingsAudiobooksOnly": "Только аудиокниги",
|
||||||
@@ -471,8 +480,8 @@
|
|||||||
"LabelSettingsEnableWatcher": "Включить отслеживание",
|
"LabelSettingsEnableWatcher": "Включить отслеживание",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "Включить отслеживание за папками библиотеки",
|
"LabelSettingsEnableWatcherForLibrary": "Включить отслеживание за папками библиотеки",
|
||||||
"LabelSettingsEnableWatcherHelp": "Включает автоматическое добавление/обновление элементов при обнаружении изменений файлов. *Требуется перезапуск сервера",
|
"LabelSettingsEnableWatcherHelp": "Включает автоматическое добавление/обновление элементов при обнаружении изменений файлов. *Требуется перезапуск сервера",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Разрешение содержимого epub с скриптами",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Разрешить файлам epub выполнять скрипты. Рекомендуется отключать этот параметр, если вы не доверяете источнику файлов epub.",
|
||||||
"LabelSettingsExperimentalFeatures": "Экспериментальные функции",
|
"LabelSettingsExperimentalFeatures": "Экспериментальные функции",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "Функционал в разработке на который Вы могли бы дать отзыв или помочь в тестировании. Нажмите для открытия обсуждения на github.",
|
"LabelSettingsExperimentalFeaturesHelp": "Функционал в разработке на который Вы могли бы дать отзыв или помочь в тестировании. Нажмите для открытия обсуждения на github.",
|
||||||
"LabelSettingsFindCovers": "Найти обложки",
|
"LabelSettingsFindCovers": "Найти обложки",
|
||||||
@@ -481,8 +490,8 @@
|
|||||||
"LabelSettingsHideSingleBookSeriesHelp": "Серии, в которых всего одна книга, будут скрыты со страницы серий и полок домашней страницы.",
|
"LabelSettingsHideSingleBookSeriesHelp": "Серии, в которых всего одна книга, будут скрыты со страницы серий и полок домашней страницы.",
|
||||||
"LabelSettingsHomePageBookshelfView": "Вид книжной полки на Домашней странице",
|
"LabelSettingsHomePageBookshelfView": "Вид книжной полки на Домашней странице",
|
||||||
"LabelSettingsLibraryBookshelfView": "Вид книжной полки в Библиотеке",
|
"LabelSettingsLibraryBookshelfView": "Вид книжной полки в Библиотеке",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Пропустить предыдущие книги в \"Продолжить серию\"",
|
||||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "The Continue Series home page shelf shows the first book not started in series that have at least one book finished and no books in progress. Enabling this setting will continue series from the furthest completed book instead of the first book not started.",
|
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "На домашней странице \"Продолжить серию\" отображается первая книга, не начатая в серии, в которой закончена хотя бы одна книга и нет начатых книг. При включении этого параметра серия будет продолжена с самой последней завершенной книги, а не с первой, которая не начата.",
|
||||||
"LabelSettingsParseSubtitles": "Разбор подзаголовков",
|
"LabelSettingsParseSubtitles": "Разбор подзаголовков",
|
||||||
"LabelSettingsParseSubtitlesHelp": "Извлечение подзаголовков из имен папок аудиокниг.<br>Подзаголовок должны быть отделен \" - \"<br>например \"Название Книги - Тут Подзаголовок\" подзаголовок будет \"Тут Подзаголовок\"",
|
"LabelSettingsParseSubtitlesHelp": "Извлечение подзаголовков из имен папок аудиокниг.<br>Подзаголовок должны быть отделен \" - \"<br>например \"Название Книги - Тут Подзаголовок\" подзаголовок будет \"Тут Подзаголовок\"",
|
||||||
"LabelSettingsPreferMatchedMetadata": "Предпочитать метаданные поиска",
|
"LabelSettingsPreferMatchedMetadata": "Предпочитать метаданные поиска",
|
||||||
@@ -499,14 +508,14 @@
|
|||||||
"LabelSettingsStoreMetadataWithItemHelp": "По умолчанию метаинформация сохраняется в папке /metadata/items, при включении этой настройки метаинформация будет храниться в папке элемента",
|
"LabelSettingsStoreMetadataWithItemHelp": "По умолчанию метаинформация сохраняется в папке /metadata/items, при включении этой настройки метаинформация будет храниться в папке элемента",
|
||||||
"LabelSettingsTimeFormat": "Формат времени",
|
"LabelSettingsTimeFormat": "Формат времени",
|
||||||
"LabelShowAll": "Показать все",
|
"LabelShowAll": "Показать все",
|
||||||
"LabelShowSeconds": "Show seconds",
|
"LabelShowSeconds": "Отображать секунды",
|
||||||
"LabelSize": "Размер",
|
"LabelSize": "Размер",
|
||||||
"LabelSleepTimer": "Таймер сна",
|
"LabelSleepTimer": "Таймер сна",
|
||||||
"LabelSlug": "Слизень",
|
"LabelSlug": "Слизень",
|
||||||
"LabelStart": "Начало",
|
"LabelStart": "Начало",
|
||||||
|
"LabelStartTime": "Время начала",
|
||||||
"LabelStarted": "Начат",
|
"LabelStarted": "Начат",
|
||||||
"LabelStartedAt": "Начато В",
|
"LabelStartedAt": "Начато В",
|
||||||
"LabelStartTime": "Время начала",
|
|
||||||
"LabelStatsAudioTracks": "Аудио треки",
|
"LabelStatsAudioTracks": "Аудио треки",
|
||||||
"LabelStatsAuthors": "Авторы",
|
"LabelStatsAuthors": "Авторы",
|
||||||
"LabelStatsBestDay": "Лучший День",
|
"LabelStatsBestDay": "Лучший День",
|
||||||
@@ -529,10 +538,10 @@
|
|||||||
"LabelTagsAccessibleToUser": "Теги доступные для пользователя",
|
"LabelTagsAccessibleToUser": "Теги доступные для пользователя",
|
||||||
"LabelTagsNotAccessibleToUser": "Теги не доступные для пользователя",
|
"LabelTagsNotAccessibleToUser": "Теги не доступные для пользователя",
|
||||||
"LabelTasks": "Запущенные задачи",
|
"LabelTasks": "Запущенные задачи",
|
||||||
"LabelTextEditorBulletedList": "Bulleted list",
|
"LabelTextEditorBulletedList": "Маркированный список",
|
||||||
"LabelTextEditorLink": "Link",
|
"LabelTextEditorLink": "Link",
|
||||||
"LabelTextEditorNumberedList": "Numbered list",
|
"LabelTextEditorNumberedList": "Нумерованный список",
|
||||||
"LabelTextEditorUnlink": "Unlink",
|
"LabelTextEditorUnlink": "Отсоединить",
|
||||||
"LabelTheme": "Тема",
|
"LabelTheme": "Тема",
|
||||||
"LabelThemeDark": "Темная",
|
"LabelThemeDark": "Темная",
|
||||||
"LabelThemeLight": "Светлая",
|
"LabelThemeLight": "Светлая",
|
||||||
@@ -558,13 +567,13 @@
|
|||||||
"LabelTracksSingleTrack": "Один трек",
|
"LabelTracksSingleTrack": "Один трек",
|
||||||
"LabelType": "Тип",
|
"LabelType": "Тип",
|
||||||
"LabelUnabridged": "Полное издание",
|
"LabelUnabridged": "Полное издание",
|
||||||
"LabelUndo": "Undo",
|
"LabelUndo": "Отменить",
|
||||||
"LabelUnknown": "Неизвестно",
|
"LabelUnknown": "Неизвестно",
|
||||||
"LabelUpdateCover": "Обновить обложку",
|
"LabelUpdateCover": "Обновить обложку",
|
||||||
"LabelUpdateCoverHelp": "Позволяет перезаписывать существующие обложки для выбранных книг если будут найдены",
|
"LabelUpdateCoverHelp": "Позволяет перезаписывать существующие обложки для выбранных книг если будут найдены",
|
||||||
"LabelUpdatedAt": "Обновлено в",
|
|
||||||
"LabelUpdateDetails": "Обновить подробности",
|
"LabelUpdateDetails": "Обновить подробности",
|
||||||
"LabelUpdateDetailsHelp": "Позволяет перезаписывать текущие подробности для выбранных книг если будут найдены",
|
"LabelUpdateDetailsHelp": "Позволяет перезаписывать текущие подробности для выбранных книг если будут найдены",
|
||||||
|
"LabelUpdatedAt": "Обновлено в",
|
||||||
"LabelUploaderDragAndDrop": "Перетащите файлы или каталоги",
|
"LabelUploaderDragAndDrop": "Перетащите файлы или каталоги",
|
||||||
"LabelUploaderDropFiles": "Перетащите файлы",
|
"LabelUploaderDropFiles": "Перетащите файлы",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Автоматическое извлечение названия, автора и серии",
|
"LabelUploaderItemFetchMetadataHelp": "Автоматическое извлечение названия, автора и серии",
|
||||||
@@ -579,8 +588,8 @@
|
|||||||
"LabelViewQueue": "Очередь воспроизведения",
|
"LabelViewQueue": "Очередь воспроизведения",
|
||||||
"LabelVolume": "Громкость",
|
"LabelVolume": "Громкость",
|
||||||
"LabelWeekdaysToRun": "Дни недели для запуска",
|
"LabelWeekdaysToRun": "Дни недели для запуска",
|
||||||
"LabelYearReviewHide": "Hide Year in Review",
|
"LabelYearReviewHide": "Скрыть итоги года",
|
||||||
"LabelYearReviewShow": "See Year in Review",
|
"LabelYearReviewShow": "Итоги года",
|
||||||
"LabelYourAudiobookDuration": "Продолжительность Вашей книги",
|
"LabelYourAudiobookDuration": "Продолжительность Вашей книги",
|
||||||
"LabelYourBookmarks": "Ваши закладки",
|
"LabelYourBookmarks": "Ваши закладки",
|
||||||
"LabelYourPlaylists": "Ваши плейлисты",
|
"LabelYourPlaylists": "Ваши плейлисты",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Бэкап включает пользователей, прогресс пользователей, данные элементов библиотеки, настройки сервера и изображения хранящиеся в <code>/metadata/items</code> и <code>/metadata/authors</code>. Бэкапы <strong>НЕ</strong> сохраняют файлы из папок библиотек.",
|
"MessageBackupsDescription": "Бэкап включает пользователей, прогресс пользователей, данные элементов библиотеки, настройки сервера и изображения хранящиеся в <code>/metadata/items</code> и <code>/metadata/authors</code>. Бэкапы <strong>НЕ</strong> сохраняют файлы из папок библиотек.",
|
||||||
"MessageBatchQuickMatchDescription": "Быстрый Поиск попытается добавить отсутствующие обложки и метаданные для выбранных элементов. Включите параметры ниже, чтобы разрешить Быстрому Поиску перезаписывать существующие обложки и/или метаданные.",
|
"MessageBatchQuickMatchDescription": "Быстрый Поиск попытается добавить отсутствующие обложки и метаданные для выбранных элементов. Включите параметры ниже, чтобы разрешить Быстрому Поиску перезаписывать существующие обложки и/или метаданные.",
|
||||||
"MessageBookshelfNoCollections": "Вы еще не создали ни одной коллекции",
|
"MessageBookshelfNoCollections": "Вы еще не создали ни одной коллекции",
|
||||||
"MessageBookshelfNoResultsForFilter": "Нет Результатов для фильтра \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Нет открытых RSS-каналов",
|
"MessageBookshelfNoRSSFeeds": "Нет открытых RSS-каналов",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Нет Результатов для фильтра \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "Нет результатов для запроса",
|
||||||
"MessageBookshelfNoSeries": "У вас нет серий",
|
"MessageBookshelfNoSeries": "У вас нет серий",
|
||||||
"MessageChapterEndIsAfter": "Конец главы после окончания вашей аудиокниги",
|
"MessageChapterEndIsAfter": "Конец главы после окончания вашей аудиокниги",
|
||||||
"MessageChapterErrorFirstNotZero": "Первая глава должна начинаться с 0",
|
"MessageChapterErrorFirstNotZero": "Первая глава должна начинаться с 0",
|
||||||
@@ -611,14 +621,16 @@
|
|||||||
"MessageConfirmMarkAllEpisodesNotFinished": "Вы уверены, что хотите отметить все эпизоды как не завершенные?",
|
"MessageConfirmMarkAllEpisodesNotFinished": "Вы уверены, что хотите отметить все эпизоды как не завершенные?",
|
||||||
"MessageConfirmMarkSeriesFinished": "Вы уверены, что хотите отметить все книги этой серии как завершенные?",
|
"MessageConfirmMarkSeriesFinished": "Вы уверены, что хотите отметить все книги этой серии как завершенные?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Вы уверены, что хотите отметить все книги этой серии как не завершенные?",
|
"MessageConfirmMarkSeriesNotFinished": "Вы уверены, что хотите отметить все книги этой серии как не завершенные?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Очистка кэша удалит весь каталог в <code>/metadata/cache</code>. <br /><br />Вы уверены, что хотите удалить каталог кэша?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Очистка кэша элементов удалит весь каталог в <code>/metadata/cache/items</code>.<br />Вы уверены?",
|
||||||
"MessageConfirmQuickEmbed": "Предупреждение! Быстрое встраивание не позволяет создавать резервные копии аудиофайлов. Убедитесь, что у вас есть резервная копия аудиофайлов. <br><br>Хотите продолжить?",
|
"MessageConfirmQuickEmbed": "Предупреждение! Быстрое встраивание не позволяет создавать резервные копии аудиофайлов. Убедитесь, что у вас есть резервная копия аудиофайлов. <br><br>Хотите продолжить?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Вы уверены, что хотите пересканировать {0} элементов?",
|
||||||
"MessageConfirmRemoveAllChapters": "Вы уверены, что хотите удалить все главы?",
|
"MessageConfirmRemoveAllChapters": "Вы уверены, что хотите удалить все главы?",
|
||||||
"MessageConfirmRemoveAuthor": "Вы уверены, что хотите удалить автора \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Вы уверены, что хотите удалить автора \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Вы уверены, что хотите удалить коллекцию \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Вы уверены, что хотите удалить коллекцию \"{0}\"?",
|
||||||
"MessageConfirmRemoveEpisode": "Вы уверены, что хотите удалить эпизод \"{0}\"?",
|
"MessageConfirmRemoveEpisode": "Вы уверены, что хотите удалить эпизод \"{0}\"?",
|
||||||
"MessageConfirmRemoveEpisodes": "Вы уверены, что хотите удалить {0} эпизодов?",
|
"MessageConfirmRemoveEpisodes": "Вы уверены, что хотите удалить {0} эпизодов?",
|
||||||
"MessageConfirmRemoveListeningSessions": "Are you sure you want to remove {0} listening sessions?",
|
"MessageConfirmRemoveListeningSessions": "Вы уверены, что хотите удалить {0} сеансов прослушивания?",
|
||||||
"MessageConfirmRemoveNarrator": "Вы уверены, что хотите удалить чтеца \"{0}\"?",
|
"MessageConfirmRemoveNarrator": "Вы уверены, что хотите удалить чтеца \"{0}\"?",
|
||||||
"MessageConfirmRemovePlaylist": "Вы уверены, что хотите удалить плейлист \"{0}\"?",
|
"MessageConfirmRemovePlaylist": "Вы уверены, что хотите удалить плейлист \"{0}\"?",
|
||||||
"MessageConfirmRenameGenre": "Вы уверены, что хотите переименовать жанр \"{0}\" в \"{1}\" для всех элементов?",
|
"MessageConfirmRenameGenre": "Вы уверены, что хотите переименовать жанр \"{0}\" в \"{1}\" для всех элементов?",
|
||||||
@@ -627,13 +639,12 @@
|
|||||||
"MessageConfirmRenameTag": "Вы уверены, что хотите переименовать тег \"{0}\" в \"{1}\" для всех элементов?",
|
"MessageConfirmRenameTag": "Вы уверены, что хотите переименовать тег \"{0}\" в \"{1}\" для всех элементов?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Примечание: Этот тег уже существует, поэтому они будут объединены.",
|
"MessageConfirmRenameTagMergeNote": "Примечание: Этот тег уже существует, поэтому они будут объединены.",
|
||||||
"MessageConfirmRenameTagWarning": "Предупреждение! Похожий тег с другими начальными буквами уже существует \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Предупреждение! Похожий тег с другими начальными буквами уже существует \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Вы уверены, что хотите пересканировать {0} элементов?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Вы уверены, что хотите отправить {0} e-книгу \"{1}\" на устройство \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Вы уверены, что хотите отправить {0} e-книгу \"{1}\" на устройство \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Эпизод скачивается",
|
"MessageDownloadingEpisode": "Эпизод скачивается",
|
||||||
"MessageDragFilesIntoTrackOrder": "Перетащите файлы для исправления порядка треков",
|
"MessageDragFilesIntoTrackOrder": "Перетащите файлы для исправления порядка треков",
|
||||||
"MessageEmbedFinished": "Встраивание завершено!",
|
"MessageEmbedFinished": "Встраивание завершено!",
|
||||||
"MessageEpisodesQueuedForDownload": "{0} Эпизод(ов) запланировано для закачки",
|
"MessageEpisodesQueuedForDownload": "{0} Эпизод(ов) запланировано для закачки",
|
||||||
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below.",
|
"MessageEreaderDevices": "Чтобы обеспечить доставку электронных книг, вам может потребоваться добавить указанный выше адрес электронной почты в качестве действительного отправителя для каждого устройства, перечисленного ниже.",
|
||||||
"MessageFeedURLWillBe": "URL канала будет {0}",
|
"MessageFeedURLWillBe": "URL канала будет {0}",
|
||||||
"MessageFetching": "Завершается...",
|
"MessageFetching": "Завершается...",
|
||||||
"MessageForceReScanDescription": "будет сканировать все файлы снова, как свежее сканирование. Теги ID3 аудиофайлов, OPF-файлы и текстовые файлы будут сканироваться как новые.",
|
"MessageForceReScanDescription": "будет сканировать все файлы снова, как свежее сканирование. Теги ID3 аудиофайлов, OPF-файлы и текстовые файлы будут сканироваться как новые.",
|
||||||
@@ -645,7 +656,7 @@
|
|||||||
"MessageListeningSessionsInTheLastYear": "{0} сеансов прослушивания в прошлом году",
|
"MessageListeningSessionsInTheLastYear": "{0} сеансов прослушивания в прошлом году",
|
||||||
"MessageLoading": "Загрузка...",
|
"MessageLoading": "Загрузка...",
|
||||||
"MessageLoadingFolders": "Загрузка каталогов...",
|
"MessageLoadingFolders": "Загрузка каталогов...",
|
||||||
"MessageLogsDescription": "Logs are stored in <code>/metadata/logs</code> as JSON files. Crash logs are stored in <code>/metadata/logs/crash_logs.txt</code>.",
|
"MessageLogsDescription": "Журналы хранятся в <code>/metadata/logs</code> в виде JSON-файлов. Журналы сбоев хранятся в <code>/metadata/logs/crash_logs.txt</code>.",
|
||||||
"MessageM4BFailed": "M4B Ошибка!",
|
"MessageM4BFailed": "M4B Ошибка!",
|
||||||
"MessageM4BFinished": "M4B Завершено!",
|
"MessageM4BFinished": "M4B Завершено!",
|
||||||
"MessageMapChapterTitles": "Сопоставление названий глав с существующими главами аудиокниги без корректировки временных меток",
|
"MessageMapChapterTitles": "Сопоставление названий глав с существующими главами аудиокниги без корректировки временных меток",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Нет серий",
|
"MessageNoSeries": "Нет серий",
|
||||||
"MessageNoTags": "Нет тегов",
|
"MessageNoTags": "Нет тегов",
|
||||||
"MessageNoTasksRunning": "Нет выполняемых задач",
|
"MessageNoTasksRunning": "Нет выполняемых задач",
|
||||||
"MessageNotYetImplemented": "Пока не реализовано",
|
|
||||||
"MessageNoUpdateNecessary": "Обновление не требуется",
|
"MessageNoUpdateNecessary": "Обновление не требуется",
|
||||||
"MessageNoUpdatesWereNecessary": "Обновления не требовались",
|
"MessageNoUpdatesWereNecessary": "Обновления не требовались",
|
||||||
"MessageNoUserPlaylists": "У вас нет плейлистов",
|
"MessageNoUserPlaylists": "У вас нет плейлистов",
|
||||||
|
"MessageNotYetImplemented": "Пока не реализовано",
|
||||||
"MessageOr": "или",
|
"MessageOr": "или",
|
||||||
"MessagePauseChapter": "Пауза воспроизведения главы",
|
"MessagePauseChapter": "Пауза воспроизведения главы",
|
||||||
"MessagePlayChapter": "Прослушать начало главы",
|
"MessagePlayChapter": "Прослушать начало главы",
|
||||||
@@ -700,7 +711,7 @@
|
|||||||
"MessageRestoreBackupConfirm": "Вы уверены, что хотите восстановить резервную копию, созданную",
|
"MessageRestoreBackupConfirm": "Вы уверены, что хотите восстановить резервную копию, созданную",
|
||||||
"MessageRestoreBackupWarning": "Восстановление резервной копии перезапишет всю базу данных, расположенную в /config, и обложки изображений в /metadata/items и /metadata/authors.<br/><br/>Бэкапы не изменяют файлы в папках библиотеки. Если вы включили параметры сервера для хранения обложек и метаданных в папках библиотеки, то они не резервируются и не перезаписываются.<br/><br/>Все клиенты, использующие ваш сервер, будут автоматически обновлены.",
|
"MessageRestoreBackupWarning": "Восстановление резервной копии перезапишет всю базу данных, расположенную в /config, и обложки изображений в /metadata/items и /metadata/authors.<br/><br/>Бэкапы не изменяют файлы в папках библиотеки. Если вы включили параметры сервера для хранения обложек и метаданных в папках библиотеки, то они не резервируются и не перезаписываются.<br/><br/>Все клиенты, использующие ваш сервер, будут автоматически обновлены.",
|
||||||
"MessageSearchResultsFor": "Результаты поиска для",
|
"MessageSearchResultsFor": "Результаты поиска для",
|
||||||
"MessageSelected": "{0} selected",
|
"MessageSelected": "{0} выбрано",
|
||||||
"MessageServerCouldNotBeReached": "Не удалось связаться с сервером",
|
"MessageServerCouldNotBeReached": "Не удалось связаться с сервером",
|
||||||
"MessageSetChaptersFromTracksDescription": "Установка глав с использованием каждого аудиофайла в качестве главы и заголовка главы в качестве имени аудиофайла",
|
"MessageSetChaptersFromTracksDescription": "Установка глав с использованием каждого аудиофайла в качестве главы и заголовка главы в качестве имени аудиофайла",
|
||||||
"MessageStartPlaybackAtTime": "Начать воспроизведение для \"{0}\" с {1}?",
|
"MessageStartPlaybackAtTime": "Начать воспроизведение для \"{0}\" с {1}?",
|
||||||
@@ -749,8 +760,8 @@
|
|||||||
"ToastBookmarkRemoveSuccess": "Закладка удалена",
|
"ToastBookmarkRemoveSuccess": "Закладка удалена",
|
||||||
"ToastBookmarkUpdateFailed": "Не удалось обновить закладку",
|
"ToastBookmarkUpdateFailed": "Не удалось обновить закладку",
|
||||||
"ToastBookmarkUpdateSuccess": "Закладка обновлена",
|
"ToastBookmarkUpdateSuccess": "Закладка обновлена",
|
||||||
"ToastCachePurgeFailed": "Failed to purge cache",
|
"ToastCachePurgeFailed": "Не удалось очистить кэш",
|
||||||
"ToastCachePurgeSuccess": "Cache purged successfully",
|
"ToastCachePurgeSuccess": "Кэш успешно очищен",
|
||||||
"ToastChaptersHaveErrors": "Главы имеют ошибки",
|
"ToastChaptersHaveErrors": "Главы имеют ошибки",
|
||||||
"ToastChaptersMustHaveTitles": "Главы должны содержать названия",
|
"ToastChaptersMustHaveTitles": "Главы должны содержать названия",
|
||||||
"ToastCollectionItemsRemoveFailed": "Не удалось удалить элемент(ы) из коллекции",
|
"ToastCollectionItemsRemoveFailed": "Не удалось удалить элемент(ы) из коллекции",
|
||||||
@@ -759,9 +770,9 @@
|
|||||||
"ToastCollectionRemoveSuccess": "Коллекция удалена",
|
"ToastCollectionRemoveSuccess": "Коллекция удалена",
|
||||||
"ToastCollectionUpdateFailed": "Не удалось обновить коллекцию",
|
"ToastCollectionUpdateFailed": "Не удалось обновить коллекцию",
|
||||||
"ToastCollectionUpdateSuccess": "Коллекция обновлена",
|
"ToastCollectionUpdateSuccess": "Коллекция обновлена",
|
||||||
"ToastDeleteFileFailed": "Failed to delete file",
|
"ToastDeleteFileFailed": "Не удалось удалить файл",
|
||||||
"ToastDeleteFileSuccess": "File deleted",
|
"ToastDeleteFileSuccess": "Файл удален",
|
||||||
"ToastFailedToLoadData": "Failed to load data",
|
"ToastFailedToLoadData": "Не удалось загрузить данные",
|
||||||
"ToastItemCoverUpdateFailed": "Не удалось обновить обложку элемента",
|
"ToastItemCoverUpdateFailed": "Не удалось обновить обложку элемента",
|
||||||
"ToastItemCoverUpdateSuccess": "Обложка элемента обновлена",
|
"ToastItemCoverUpdateSuccess": "Обложка элемента обновлена",
|
||||||
"ToastItemDetailsUpdateFailed": "Не удалось обновить сведения об элементе",
|
"ToastItemDetailsUpdateFailed": "Не удалось обновить сведения об элементе",
|
||||||
@@ -787,24 +798,24 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Плейлист обновлен",
|
"ToastPlaylistUpdateSuccess": "Плейлист обновлен",
|
||||||
"ToastPodcastCreateFailed": "Не удалось создать подкаст",
|
"ToastPodcastCreateFailed": "Не удалось создать подкаст",
|
||||||
"ToastPodcastCreateSuccess": "Подкаст успешно создан",
|
"ToastPodcastCreateSuccess": "Подкаст успешно создан",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Не удалось удалить элемент из коллекции",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Элемент удален из коллекции",
|
|
||||||
"ToastRSSFeedCloseFailed": "Не удалось закрыть RSS-канал",
|
"ToastRSSFeedCloseFailed": "Не удалось закрыть RSS-канал",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS-канал закрыт",
|
"ToastRSSFeedCloseSuccess": "RSS-канал закрыт",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Не удалось удалить элемент из коллекции",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Элемент удален из коллекции",
|
||||||
"ToastSendEbookToDeviceFailed": "Не удалось отправить e-книгу на устройство",
|
"ToastSendEbookToDeviceFailed": "Не удалось отправить e-книгу на устройство",
|
||||||
"ToastSendEbookToDeviceSuccess": "E-книга отправлена на устройство \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "E-книга отправлена на устройство \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Не удалось обновить серию",
|
"ToastSeriesUpdateFailed": "Не удалось обновить серию",
|
||||||
"ToastSeriesUpdateSuccess": "Успешное обновление серии",
|
"ToastSeriesUpdateSuccess": "Успешное обновление серии",
|
||||||
"ToastServerSettingsUpdateFailed": "Failed to update server settings",
|
"ToastServerSettingsUpdateFailed": "Не удалось обновить настройки сервера",
|
||||||
"ToastServerSettingsUpdateSuccess": "Server settings updated",
|
"ToastServerSettingsUpdateSuccess": "Обновлены настройки сервера",
|
||||||
"ToastSessionDeleteFailed": "Не удалось удалить сеанс",
|
"ToastSessionDeleteFailed": "Не удалось удалить сеанс",
|
||||||
"ToastSessionDeleteSuccess": "Сеанс удален",
|
"ToastSessionDeleteSuccess": "Сеанс удален",
|
||||||
"ToastSocketConnected": "Сокет подключен",
|
"ToastSocketConnected": "Сокет подключен",
|
||||||
"ToastSocketDisconnected": "Сокет отключен",
|
"ToastSocketDisconnected": "Сокет отключен",
|
||||||
"ToastSocketFailedToConnect": "Не удалось подключить сокет",
|
"ToastSocketFailedToConnect": "Не удалось подключить сокет",
|
||||||
"ToastSortingPrefixesEmptyError": "Must have at least 1 sorting prefix",
|
"ToastSortingPrefixesEmptyError": "Должен быть хотя бы 1 префикс сортировки",
|
||||||
"ToastSortingPrefixesUpdateFailed": "Failed to update sorting prefixes",
|
"ToastSortingPrefixesUpdateFailed": "Не удалось обновить префиксы сортировки",
|
||||||
"ToastSortingPrefixesUpdateSuccess": "Sorting prefixes updated ({0} items)",
|
"ToastSortingPrefixesUpdateSuccess": "Обновлены префиксы сортировки ({0} элементов)",
|
||||||
"ToastUserDeleteFailed": "Не удалось удалить пользователя",
|
"ToastUserDeleteFailed": "Не удалось удалить пользователя",
|
||||||
"ToastUserDeleteSuccess": "Пользователь удален"
|
"ToastUserDeleteSuccess": "Пользователь удален"
|
||||||
}
|
}
|
||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Tillämpa",
|
"ButtonApply": "Tillämpa",
|
||||||
"ButtonApplyChapters": "Tillämpa kapitel",
|
"ButtonApplyChapters": "Tillämpa kapitel",
|
||||||
"ButtonAuthors": "Författare",
|
"ButtonAuthors": "Författare",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "Bläddra efter mapp",
|
"ButtonBrowseForFolder": "Bläddra efter mapp",
|
||||||
"ButtonCancel": "Avbryt",
|
"ButtonCancel": "Avbryt",
|
||||||
"ButtonCancelEncode": "Avbryt kodning",
|
"ButtonCancelEncode": "Avbryt kodning",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Previous Chapter",
|
"ButtonPreviousChapter": "Previous Chapter",
|
||||||
"ButtonPurgeAllCache": "Rensa all cache",
|
"ButtonPurgeAllCache": "Rensa all cache",
|
||||||
"ButtonPurgeItemsCache": "Rensa föremåls-cache",
|
"ButtonPurgeItemsCache": "Rensa föremåls-cache",
|
||||||
"ButtonPurgeMediaProgress": "Rensa medieförlopp",
|
|
||||||
"ButtonQueueAddItem": "Lägg till i kön",
|
"ButtonQueueAddItem": "Lägg till i kön",
|
||||||
"ButtonQueueRemoveItem": "Ta bort från kön",
|
"ButtonQueueRemoveItem": "Ta bort från kön",
|
||||||
"ButtonQuickMatch": "Snabb matchning",
|
"ButtonQuickMatch": "Snabb matchning",
|
||||||
|
"ButtonReScan": "Omstart",
|
||||||
"ButtonRead": "Läs",
|
"ButtonRead": "Läs",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Ta bort från Fortsätt lyssna",
|
"ButtonRemoveFromContinueListening": "Ta bort från Fortsätt lyssna",
|
||||||
"ButtonRemoveFromContinueReading": "Ta bort från Fortsätt läsa",
|
"ButtonRemoveFromContinueReading": "Ta bort från Fortsätt läsa",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Ta bort serie från Fortsätt serie",
|
"ButtonRemoveSeriesFromContinueSeries": "Ta bort serie från Fortsätt serie",
|
||||||
"ButtonReScan": "Omstart",
|
|
||||||
"ButtonReset": "Återställ",
|
"ButtonReset": "Återställ",
|
||||||
"ButtonResetToDefault": "Återställ till standard",
|
"ButtonResetToDefault": "Återställ till standard",
|
||||||
"ButtonRestore": "Återställ",
|
"ButtonRestore": "Återställ",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Konto",
|
"HeaderAccount": "Konto",
|
||||||
"HeaderAdvanced": "Avancerad",
|
"HeaderAdvanced": "Avancerad",
|
||||||
"HeaderAppriseNotificationSettings": "Apprise Meddelandeinställningar",
|
"HeaderAppriseNotificationSettings": "Apprise Meddelandeinställningar",
|
||||||
"HeaderAudiobookTools": "Ljudbokshantering",
|
|
||||||
"HeaderAudioTracks": "Ljudspår",
|
"HeaderAudioTracks": "Ljudspår",
|
||||||
|
"HeaderAudiobookTools": "Ljudbokshantering",
|
||||||
"HeaderAuthentication": "Authentication",
|
"HeaderAuthentication": "Authentication",
|
||||||
"HeaderBackups": "Säkerhetskopior",
|
"HeaderBackups": "Säkerhetskopior",
|
||||||
"HeaderChangePassword": "Ändra lösenord",
|
"HeaderChangePassword": "Ändra lösenord",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Samlingselement",
|
"HeaderCollectionItems": "Samlingselement",
|
||||||
"HeaderCover": "Omslag",
|
"HeaderCover": "Omslag",
|
||||||
"HeaderCurrentDownloads": "Aktuella nedladdningar",
|
"HeaderCurrentDownloads": "Aktuella nedladdningar",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||||
"HeaderDetails": "Detaljer",
|
"HeaderDetails": "Detaljer",
|
||||||
"HeaderDownloadQueue": "Nedladdningskö",
|
"HeaderDownloadQueue": "Nedladdningskö",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Spellistobjekt",
|
"HeaderPlaylistItems": "Spellistobjekt",
|
||||||
"HeaderPodcastsToAdd": "Podcaster att lägga till",
|
"HeaderPodcastsToAdd": "Podcaster att lägga till",
|
||||||
"HeaderPreviewCover": "Förhandsgranska omslag",
|
"HeaderPreviewCover": "Förhandsgranska omslag",
|
||||||
"HeaderRemoveEpisode": "Ta bort avsnitt",
|
|
||||||
"HeaderRemoveEpisodes": "Ta bort {0} avsnitt",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS-information",
|
"HeaderRSSFeedGeneral": "RSS-information",
|
||||||
"HeaderRSSFeedIsOpen": "RSS-flödet är öppet",
|
"HeaderRSSFeedIsOpen": "RSS-flödet är öppet",
|
||||||
"HeaderRSSFeeds": "RSS-flöden",
|
"HeaderRSSFeeds": "RSS-flöden",
|
||||||
|
"HeaderRemoveEpisode": "Ta bort avsnitt",
|
||||||
|
"HeaderRemoveEpisodes": "Ta bort {0} avsnitt",
|
||||||
"HeaderSavedMediaProgress": "Sparad medieförlopp",
|
"HeaderSavedMediaProgress": "Sparad medieförlopp",
|
||||||
"HeaderSchedule": "Schema",
|
"HeaderSchedule": "Schema",
|
||||||
"HeaderScheduleLibraryScans": "Schemalagda biblioteksskanningar",
|
"HeaderScheduleLibraryScans": "Schemalagda biblioteksskanningar",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Gäst",
|
"LabelAccountTypeGuest": "Gäst",
|
||||||
"LabelAccountTypeUser": "Användare",
|
"LabelAccountTypeUser": "Användare",
|
||||||
"LabelActivity": "Aktivitet",
|
"LabelActivity": "Aktivitet",
|
||||||
"LabelAdded": "Tillagd",
|
|
||||||
"LabelAddedAt": "Tillagd vid",
|
|
||||||
"LabelAddToCollection": "Lägg till i Samling",
|
"LabelAddToCollection": "Lägg till i Samling",
|
||||||
"LabelAddToCollectionBatch": "Lägg till {0} böcker i Samlingen",
|
"LabelAddToCollectionBatch": "Lägg till {0} böcker i Samlingen",
|
||||||
"LabelAddToPlaylist": "Lägg till i Spellista",
|
"LabelAddToPlaylist": "Lägg till i Spellista",
|
||||||
"LabelAddToPlaylistBatch": "Lägg till {0} objekt i Spellistan",
|
"LabelAddToPlaylistBatch": "Lägg till {0} objekt i Spellistan",
|
||||||
|
"LabelAdded": "Tillagd",
|
||||||
|
"LabelAddedAt": "Tillagd vid",
|
||||||
"LabelAdminUsersOnly": "Endast administratörer",
|
"LabelAdminUsersOnly": "Endast administratörer",
|
||||||
"LabelAll": "Alla",
|
"LabelAll": "Alla",
|
||||||
"LabelAllUsers": "Alla användare",
|
"LabelAllUsers": "Alla användare",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Ändra lösenord",
|
"LabelChangePassword": "Ändra lösenord",
|
||||||
"LabelChannels": "Kanaler",
|
"LabelChannels": "Kanaler",
|
||||||
|
"LabelChapterTitle": "Kapitelrubrik",
|
||||||
"LabelChapters": "Kapitel",
|
"LabelChapters": "Kapitel",
|
||||||
"LabelChaptersFound": "hittade kapitel",
|
"LabelChaptersFound": "hittade kapitel",
|
||||||
"LabelChapterTitle": "Kapitelrubrik",
|
|
||||||
"LabelClickForMoreInfo": "Klicka för mer information",
|
"LabelClickForMoreInfo": "Klicka för mer information",
|
||||||
"LabelClosePlayer": "Stäng spelaren",
|
"LabelClosePlayer": "Stäng spelaren",
|
||||||
"LabelCodec": "Codec",
|
"LabelCodec": "Codec",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Redigera",
|
"LabelEdit": "Redigera",
|
||||||
"LabelEmail": "E-post",
|
"LabelEmail": "E-post",
|
||||||
"LabelEmailSettingsFromAddress": "Från adress",
|
"LabelEmailSettingsFromAddress": "Från adress",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Säker",
|
"LabelEmailSettingsSecure": "Säker",
|
||||||
"LabelEmailSettingsSecureHelp": "Om sant kommer anslutningen att använda TLS vid anslutning till servern. Om falskt används TLS om servern stöder STARTTLS-tillägget. I de flesta fall, om du ansluter till port 465, bör du ställa in detta värde till sant. För port 587 eller 25, låt det vara falskt. (från nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Om sant kommer anslutningen att använda TLS vid anslutning till servern. Om falskt används TLS om servern stöder STARTTLS-tillägget. I de flesta fall, om du ansluter till port 465, bör du ställa in detta värde till sant. För port 587 eller 25, låt det vara falskt. (från nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Testadress",
|
"LabelEmailSettingsTestAddress": "Testadress",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Mapp",
|
"LabelFolder": "Mapp",
|
||||||
"LabelFolders": "Mappar",
|
"LabelFolders": "Mappar",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "Teckensnittsfamilj",
|
"LabelFontFamily": "Teckensnittsfamilj",
|
||||||
"LabelFontItalic": "Italic",
|
"LabelFontItalic": "Italic",
|
||||||
"LabelFontScale": "Teckensnittsskala",
|
"LabelFontScale": "Teckensnittsskala",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Timme",
|
"LabelHour": "Timme",
|
||||||
"LabelIcon": "Ikon",
|
"LabelIcon": "Ikon",
|
||||||
"LabelImageURLFromTheWeb": "Bild-URL från webben",
|
"LabelImageURLFromTheWeb": "Bild-URL från webben",
|
||||||
|
"LabelInProgress": "Pågående",
|
||||||
"LabelIncludeInTracklist": "Inkludera i spårlista",
|
"LabelIncludeInTracklist": "Inkludera i spårlista",
|
||||||
"LabelIncomplete": "Ofullständig",
|
"LabelIncomplete": "Ofullständig",
|
||||||
"LabelInProgress": "Pågående",
|
|
||||||
"LabelInterval": "Intervall",
|
"LabelInterval": "Intervall",
|
||||||
"LabelIntervalCustomDailyWeekly": "Anpassat dagligt/veckovis",
|
"LabelIntervalCustomDailyWeekly": "Anpassat dagligt/veckovis",
|
||||||
"LabelIntervalEvery12Hours": "Var 12:e timme",
|
"LabelIntervalEvery12Hours": "Var 12:e timme",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Objekt",
|
"LabelItem": "Objekt",
|
||||||
"LabelLanguage": "Språk",
|
"LabelLanguage": "Språk",
|
||||||
"LabelLanguageDefaultServer": "Standardspråk för server",
|
"LabelLanguageDefaultServer": "Standardspråk för server",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Senaste bok tillagd",
|
"LabelLastBookAdded": "Senaste bok tillagd",
|
||||||
"LabelLastBookUpdated": "Senaste bok uppdaterad",
|
"LabelLastBookUpdated": "Senaste bok uppdaterad",
|
||||||
"LabelLastSeen": "Senast sedd",
|
"LabelLastSeen": "Senast sedd",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Mindre",
|
"LabelLess": "Mindre",
|
||||||
"LabelLibrariesAccessibleToUser": "Åtkomliga bibliotek för användare",
|
"LabelLibrariesAccessibleToUser": "Åtkomliga bibliotek för användare",
|
||||||
"LabelLibrary": "Bibliotek",
|
"LabelLibrary": "Bibliotek",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Biblioteksobjekt",
|
"LabelLibraryItem": "Biblioteksobjekt",
|
||||||
"LabelLibraryName": "Biblioteksnamn",
|
"LabelLibraryName": "Biblioteksnamn",
|
||||||
"LabelLimit": "Begränsning",
|
"LabelLimit": "Begränsning",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||||
"LabelMediaPlayer": "Mediaspelare",
|
"LabelMediaPlayer": "Mediaspelare",
|
||||||
"LabelMediaType": "Mediatyp",
|
"LabelMediaType": "Mediatyp",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
|
||||||
"LabelMetadataProvider": "Metadataleverantör",
|
|
||||||
"LabelMetaTag": "Metamärke",
|
"LabelMetaTag": "Metamärke",
|
||||||
"LabelMetaTags": "Metamärken",
|
"LabelMetaTags": "Metamärken",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||||
|
"LabelMetadataProvider": "Metadataleverantör",
|
||||||
"LabelMinute": "Minut",
|
"LabelMinute": "Minut",
|
||||||
"LabelMissing": "Saknad",
|
"LabelMissing": "Saknad",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Berättare",
|
"LabelNarrator": "Berättare",
|
||||||
"LabelNarrators": "Berättare",
|
"LabelNarrators": "Berättare",
|
||||||
"LabelNew": "Ny",
|
"LabelNew": "Ny",
|
||||||
|
"LabelNewPassword": "Nytt lösenord",
|
||||||
"LabelNewestAuthors": "Nyaste författare",
|
"LabelNewestAuthors": "Nyaste författare",
|
||||||
"LabelNewestEpisodes": "Nyaste avsnitt",
|
"LabelNewestEpisodes": "Nyaste avsnitt",
|
||||||
"LabelNewPassword": "Nytt lösenord",
|
|
||||||
"LabelNextBackupDate": "Nästa säkerhetskopia datum",
|
"LabelNextBackupDate": "Nästa säkerhetskopia datum",
|
||||||
"LabelNextScheduledRun": "Nästa schemalagda körning",
|
"LabelNextScheduledRun": "Nästa schemalagda körning",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "Inga avsnitt valda",
|
"LabelNoEpisodesSelected": "Inga avsnitt valda",
|
||||||
"LabelNotes": "Anteckningar",
|
|
||||||
"LabelNotFinished": "Ej avslutad",
|
"LabelNotFinished": "Ej avslutad",
|
||||||
|
"LabelNotStarted": "Inte påbörjad",
|
||||||
|
"LabelNotes": "Anteckningar",
|
||||||
"LabelNotificationAppriseURL": "Apprise URL(er)",
|
"LabelNotificationAppriseURL": "Apprise URL(er)",
|
||||||
"LabelNotificationAvailableVariables": "Tillgängliga variabler",
|
"LabelNotificationAvailableVariables": "Tillgängliga variabler",
|
||||||
"LabelNotificationBodyTemplate": "Kroppsmall",
|
"LabelNotificationBodyTemplate": "Kroppsmall",
|
||||||
"LabelNotificationEvent": "Aviseringshändelse",
|
"LabelNotificationEvent": "Aviseringshändelse",
|
||||||
|
"LabelNotificationTitleTemplate": "Titelsmall",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Max antal misslyckade försök",
|
"LabelNotificationsMaxFailedAttempts": "Max antal misslyckade försök",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Aviseringar inaktiveras när de misslyckas med att skickas så många gånger",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Aviseringar inaktiveras när de misslyckas med att skickas så många gånger",
|
||||||
"LabelNotificationsMaxQueueSize": "Max köstorlek för aviseringsevenemang",
|
"LabelNotificationsMaxQueueSize": "Max köstorlek för aviseringsevenemang",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Evenemang är begränsade till att utlösa ett per sekund. Evenemang kommer att ignoreras om kön är full. Detta förhindrar aviseringsspam.",
|
"LabelNotificationsMaxQueueSizeHelp": "Evenemang är begränsade till att utlösa ett per sekund. Evenemang kommer att ignoreras om kön är full. Detta förhindrar aviseringsspam.",
|
||||||
"LabelNotificationTitleTemplate": "Titelsmall",
|
|
||||||
"LabelNotStarted": "Inte påbörjad",
|
|
||||||
"LabelNumberOfBooks": "Antal böcker",
|
"LabelNumberOfBooks": "Antal böcker",
|
||||||
"LabelNumberOfEpisodes": "Antal avsnitt",
|
"LabelNumberOfEpisodes": "Antal avsnitt",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Kan ladda upp",
|
"LabelPermissionsUpload": "Kan ladda upp",
|
||||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||||
"LabelPhotoPathURL": "Bildsökväg/URL",
|
"LabelPhotoPathURL": "Bildsökväg/URL",
|
||||||
"LabelPlaylists": "Spellistor",
|
|
||||||
"LabelPlayMethod": "Spelläge",
|
"LabelPlayMethod": "Spelläge",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Spellistor",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Podcasts",
|
|
||||||
"LabelPodcastSearchRegion": "Podcast-sökområde",
|
"LabelPodcastSearchRegion": "Podcast-sökområde",
|
||||||
"LabelPodcastType": "Podcasttyp",
|
"LabelPodcastType": "Podcasttyp",
|
||||||
|
"LabelPodcasts": "Podcasts",
|
||||||
"LabelPort": "Port",
|
"LabelPort": "Port",
|
||||||
"LabelPrefixesToIgnore": "Prefix att ignorera (skiftlägesokänsligt)",
|
"LabelPrefixesToIgnore": "Prefix att ignorera (skiftlägesokänsligt)",
|
||||||
"LabelPreventIndexing": "Förhindra att ditt flöde indexeras av iTunes och Google-podcastsökmotorer",
|
"LabelPreventIndexing": "Förhindra att ditt flöde indexeras av iTunes och Google-podcastsökmotorer",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Framsteg",
|
"LabelProgress": "Framsteg",
|
||||||
"LabelProvider": "Leverantör",
|
"LabelProvider": "Leverantör",
|
||||||
"LabelPubDate": "Publiceringsdatum",
|
"LabelPubDate": "Publiceringsdatum",
|
||||||
"LabelPublisher": "Utgivare",
|
|
||||||
"LabelPublishYear": "Publiceringsår",
|
"LabelPublishYear": "Publiceringsår",
|
||||||
"LabelRead": "Läst",
|
"LabelPublisher": "Utgivare",
|
||||||
"LabelReadAgain": "Läs igen",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Läs e-bok utan att behålla framsteg",
|
|
||||||
"LabelRecentlyAdded": "Nyligen tillagd",
|
|
||||||
"LabelRecentSeries": "Senaste serier",
|
|
||||||
"LabelRecommended": "Rekommenderad",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "Region",
|
|
||||||
"LabelReleaseDate": "Utgivningsdatum",
|
|
||||||
"LabelRemoveCover": "Ta bort omslag",
|
|
||||||
"LabelRowsPerPage": "Rows per page",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Anpassad ägarens e-post",
|
"LabelRSSFeedCustomOwnerEmail": "Anpassad ägarens e-post",
|
||||||
"LabelRSSFeedCustomOwnerName": "Anpassat ägarnamn",
|
"LabelRSSFeedCustomOwnerName": "Anpassat ägarnamn",
|
||||||
"LabelRSSFeedOpen": "Öppna RSS-flöde",
|
"LabelRSSFeedOpen": "Öppna RSS-flöde",
|
||||||
"LabelRSSFeedPreventIndexing": "Förhindra indexering",
|
"LabelRSSFeedPreventIndexing": "Förhindra indexering",
|
||||||
"LabelRSSFeedSlug": "RSS-flödesslag",
|
"LabelRSSFeedSlug": "RSS-flödesslag",
|
||||||
"LabelRSSFeedURL": "RSS-flöde URL",
|
"LabelRSSFeedURL": "RSS-flöde URL",
|
||||||
|
"LabelRead": "Läst",
|
||||||
|
"LabelReadAgain": "Läs igen",
|
||||||
|
"LabelReadEbookWithoutProgress": "Läs e-bok utan att behålla framsteg",
|
||||||
|
"LabelRecentSeries": "Senaste serier",
|
||||||
|
"LabelRecentlyAdded": "Nyligen tillagd",
|
||||||
|
"LabelRecommended": "Rekommenderad",
|
||||||
|
"LabelRedo": "Redo",
|
||||||
|
"LabelRegion": "Region",
|
||||||
|
"LabelReleaseDate": "Utgivningsdatum",
|
||||||
|
"LabelRemoveCover": "Ta bort omslag",
|
||||||
|
"LabelRowsPerPage": "Rows per page",
|
||||||
"LabelSearchTerm": "Sökterm",
|
"LabelSearchTerm": "Sökterm",
|
||||||
"LabelSearchTitle": "Sök titel",
|
"LabelSearchTitle": "Sök titel",
|
||||||
"LabelSearchTitleOrASIN": "Sök titel eller ASIN",
|
"LabelSearchTitleOrASIN": "Sök titel eller ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Sleeptimer",
|
"LabelSleepTimer": "Sleeptimer",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Start",
|
"LabelStart": "Start",
|
||||||
|
"LabelStartTime": "Starttid",
|
||||||
"LabelStarted": "Startad",
|
"LabelStarted": "Startad",
|
||||||
"LabelStartedAt": "Startad vid",
|
"LabelStartedAt": "Startad vid",
|
||||||
"LabelStartTime": "Starttid",
|
|
||||||
"LabelStatsAudioTracks": "Ljudspår",
|
"LabelStatsAudioTracks": "Ljudspår",
|
||||||
"LabelStatsAuthors": "Författare",
|
"LabelStatsAuthors": "Författare",
|
||||||
"LabelStatsBestDay": "Bästa dag",
|
"LabelStatsBestDay": "Bästa dag",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Okänd",
|
"LabelUnknown": "Okänd",
|
||||||
"LabelUpdateCover": "Uppdatera omslag",
|
"LabelUpdateCover": "Uppdatera omslag",
|
||||||
"LabelUpdateCoverHelp": "Tillåt överskrivning av befintliga omslag för de valda böckerna när en matchning hittas",
|
"LabelUpdateCoverHelp": "Tillåt överskrivning av befintliga omslag för de valda böckerna när en matchning hittas",
|
||||||
"LabelUpdatedAt": "Uppdaterad vid",
|
|
||||||
"LabelUpdateDetails": "Uppdatera detaljer",
|
"LabelUpdateDetails": "Uppdatera detaljer",
|
||||||
"LabelUpdateDetailsHelp": "Tillåt överskrivning av befintliga detaljer för de valda böckerna när en matchning hittas",
|
"LabelUpdateDetailsHelp": "Tillåt överskrivning av befintliga detaljer för de valda böckerna när en matchning hittas",
|
||||||
|
"LabelUpdatedAt": "Uppdaterad vid",
|
||||||
"LabelUploaderDragAndDrop": "Dra och släpp filer eller mappar",
|
"LabelUploaderDragAndDrop": "Dra och släpp filer eller mappar",
|
||||||
"LabelUploaderDropFiles": "Släpp filer",
|
"LabelUploaderDropFiles": "Släpp filer",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Säkerhetskopieringar inkluderar användare, användares framsteg, biblioteksföremål, serverinställningar och bilder lagrade i <code>/metadata/items</code> & <code>/metadata/authors</code>. Säkerhetskopieringar inkluderar <strong>inte</strong> några filer lagrade i dina biblioteksmappar.",
|
"MessageBackupsDescription": "Säkerhetskopieringar inkluderar användare, användares framsteg, biblioteksföremål, serverinställningar och bilder lagrade i <code>/metadata/items</code> & <code>/metadata/authors</code>. Säkerhetskopieringar inkluderar <strong>inte</strong> några filer lagrade i dina biblioteksmappar.",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match kommer försöka lägga till saknade omslag och metadata för de valda föremålen. Aktivera alternativen nedan för att tillåta Quick Match att överskriva befintliga omslag och/eller metadata.",
|
"MessageBatchQuickMatchDescription": "Quick Match kommer försöka lägga till saknade omslag och metadata för de valda föremålen. Aktivera alternativen nedan för att tillåta Quick Match att överskriva befintliga omslag och/eller metadata.",
|
||||||
"MessageBookshelfNoCollections": "Du har ännu inte skapat några samlingar",
|
"MessageBookshelfNoCollections": "Du har ännu inte skapat några samlingar",
|
||||||
"MessageBookshelfNoResultsForFilter": "Inga resultat för filter \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Inga RSS-flöden är öppna",
|
"MessageBookshelfNoRSSFeeds": "Inga RSS-flöden är öppna",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Inga resultat för filter \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "Du har inga serier",
|
"MessageBookshelfNoSeries": "Du har inga serier",
|
||||||
"MessageChapterEndIsAfter": "Kapitelns slut är efter din ljudboks slut",
|
"MessageChapterEndIsAfter": "Kapitelns slut är efter din ljudboks slut",
|
||||||
"MessageChapterErrorFirstNotZero": "Första kapitlet måste börja vid 0",
|
"MessageChapterErrorFirstNotZero": "Första kapitlet måste börja vid 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Är du säker på att du vill markera alla böcker i denna serie som avslutade?",
|
"MessageConfirmMarkSeriesFinished": "Är du säker på att du vill markera alla böcker i denna serie som avslutade?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Är du säker på att du vill markera alla böcker i denna serie som inte avslutade?",
|
"MessageConfirmMarkSeriesNotFinished": "Är du säker på att du vill markera alla böcker i denna serie som inte avslutade?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Varning! Quick embed kommer inte att säkerhetskopiera dina ljudfiler. Se till att du har en säkerhetskopia av dina ljudfiler. <br><br>Vill du fortsätta?",
|
"MessageConfirmQuickEmbed": "Varning! Quick embed kommer inte att säkerhetskopiera dina ljudfiler. Se till att du har en säkerhetskopia av dina ljudfiler. <br><br>Vill du fortsätta?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Är du säker på att du vill göra omgenomsökning för {0} objekt?",
|
||||||
"MessageConfirmRemoveAllChapters": "Är du säker på att du vill ta bort alla kapitel?",
|
"MessageConfirmRemoveAllChapters": "Är du säker på att du vill ta bort alla kapitel?",
|
||||||
"MessageConfirmRemoveAuthor": "Är du säker på att du vill ta bort författaren \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Är du säker på att du vill ta bort författaren \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Är du säker på att du vill ta bort samlingen \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Är du säker på att du vill ta bort samlingen \"{0}\"?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Är du säker på att du vill byta namn på taggen \"{0}\" till \"{1}\" för alla objekt?",
|
"MessageConfirmRenameTag": "Är du säker på att du vill byta namn på taggen \"{0}\" till \"{1}\" för alla objekt?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Observera: Den här taggen finns redan, så de kommer att slås samman.",
|
"MessageConfirmRenameTagMergeNote": "Observera: Den här taggen finns redan, så de kommer att slås samman.",
|
||||||
"MessageConfirmRenameTagWarning": "Varning! En liknande tagg med annat skrivsätt finns redan \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Varning! En liknande tagg med annat skrivsätt finns redan \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Är du säker på att du vill göra omgenomsökning för {0} objekt?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Är du säker på att du vill skicka {0} e-bok \"{1}\" till enheten \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "Är du säker på att du vill skicka {0} e-bok \"{1}\" till enheten \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "Laddar ner avsnitt",
|
"MessageDownloadingEpisode": "Laddar ner avsnitt",
|
||||||
"MessageDragFilesIntoTrackOrder": "Dra filer till rätt spårordning",
|
"MessageDragFilesIntoTrackOrder": "Dra filer till rätt spårordning",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Inga serier",
|
"MessageNoSeries": "Inga serier",
|
||||||
"MessageNoTags": "Inga taggar",
|
"MessageNoTags": "Inga taggar",
|
||||||
"MessageNoTasksRunning": "Inga pågående uppgifter",
|
"MessageNoTasksRunning": "Inga pågående uppgifter",
|
||||||
"MessageNotYetImplemented": "Ännu inte implementerad",
|
|
||||||
"MessageNoUpdateNecessary": "Ingen uppdatering krävs",
|
"MessageNoUpdateNecessary": "Ingen uppdatering krävs",
|
||||||
"MessageNoUpdatesWereNecessary": "Inga uppdateringar var nödvändiga",
|
"MessageNoUpdatesWereNecessary": "Inga uppdateringar var nödvändiga",
|
||||||
"MessageNoUserPlaylists": "Du har inga spellistor",
|
"MessageNoUserPlaylists": "Du har inga spellistor",
|
||||||
|
"MessageNotYetImplemented": "Ännu inte implementerad",
|
||||||
"MessageOr": "eller",
|
"MessageOr": "eller",
|
||||||
"MessagePauseChapter": "Pausa kapiteluppspelning",
|
"MessagePauseChapter": "Pausa kapiteluppspelning",
|
||||||
"MessagePlayChapter": "Lyssna på kapitlets början",
|
"MessagePlayChapter": "Lyssna på kapitlets början",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Spellistan uppdaterad",
|
"ToastPlaylistUpdateSuccess": "Spellistan uppdaterad",
|
||||||
"ToastPodcastCreateFailed": "Misslyckades med att skapa podcasten",
|
"ToastPodcastCreateFailed": "Misslyckades med att skapa podcasten",
|
||||||
"ToastPodcastCreateSuccess": "Podcasten skapad framgångsrikt",
|
"ToastPodcastCreateSuccess": "Podcasten skapad framgångsrikt",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Misslyckades med att ta bort objektet från samlingen",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Objektet borttaget från samlingen",
|
|
||||||
"ToastRSSFeedCloseFailed": "Misslyckades med att stänga RSS-flödet",
|
"ToastRSSFeedCloseFailed": "Misslyckades med att stänga RSS-flödet",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS-flödet stängt",
|
"ToastRSSFeedCloseSuccess": "RSS-flödet stängt",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Misslyckades med att ta bort objektet från samlingen",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Objektet borttaget från samlingen",
|
||||||
"ToastSendEbookToDeviceFailed": "Misslyckades med att skicka e-boken till enheten",
|
"ToastSendEbookToDeviceFailed": "Misslyckades med att skicka e-boken till enheten",
|
||||||
"ToastSendEbookToDeviceSuccess": "E-boken skickad till enheten \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "E-boken skickad till enheten \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Serieuppdateringen misslyckades",
|
"ToastSeriesUpdateFailed": "Serieuppdateringen misslyckades",
|
||||||
|
|||||||
+54
-43
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Застосувати",
|
"ButtonApply": "Застосувати",
|
||||||
"ButtonApplyChapters": "Зберегти глави",
|
"ButtonApplyChapters": "Зберегти глави",
|
||||||
"ButtonAuthors": "Автори",
|
"ButtonAuthors": "Автори",
|
||||||
|
"ButtonBack": "Назад",
|
||||||
"ButtonBrowseForFolder": "Огляд тек",
|
"ButtonBrowseForFolder": "Огляд тек",
|
||||||
"ButtonCancel": "Скасувати",
|
"ButtonCancel": "Скасувати",
|
||||||
"ButtonCancelEncode": "Скасувати кодування",
|
"ButtonCancelEncode": "Скасувати кодування",
|
||||||
@@ -34,7 +35,7 @@
|
|||||||
"ButtonIssues": "Проблеми",
|
"ButtonIssues": "Проблеми",
|
||||||
"ButtonJumpBackward": "Перейти назад",
|
"ButtonJumpBackward": "Перейти назад",
|
||||||
"ButtonJumpForward": "Перейти вперед",
|
"ButtonJumpForward": "Перейти вперед",
|
||||||
"ButtonLatest": "Останній",
|
"ButtonLatest": "Останні",
|
||||||
"ButtonLibrary": "Бібліотека",
|
"ButtonLibrary": "Бібліотека",
|
||||||
"ButtonLogout": "Вийти",
|
"ButtonLogout": "Вийти",
|
||||||
"ButtonLookup": "Пошук",
|
"ButtonLookup": "Пошук",
|
||||||
@@ -49,17 +50,17 @@
|
|||||||
"ButtonOpenFeed": "Відкрити стрічку",
|
"ButtonOpenFeed": "Відкрити стрічку",
|
||||||
"ButtonOpenManager": "Відкрити менеджер",
|
"ButtonOpenManager": "Відкрити менеджер",
|
||||||
"ButtonPause": "Пауза",
|
"ButtonPause": "Пауза",
|
||||||
"ButtonPlay": "Грати",
|
"ButtonPlay": "Слухати",
|
||||||
"ButtonPlaying": "Відтворюється",
|
"ButtonPlaying": "Відтворюється",
|
||||||
"ButtonPlaylists": "Списки відтворення",
|
"ButtonPlaylists": "Списки відтворення",
|
||||||
"ButtonPrevious": "Попередній",
|
"ButtonPrevious": "Попередній",
|
||||||
"ButtonPreviousChapter": "Попередня глава",
|
"ButtonPreviousChapter": "Попередня глава",
|
||||||
"ButtonPurgeAllCache": "Очистити весь кеш",
|
"ButtonPurgeAllCache": "Очистити весь кеш",
|
||||||
"ButtonPurgeItemsCache": "Очистити кеш елементів",
|
"ButtonPurgeItemsCache": "Очистити кеш елементів",
|
||||||
"ButtonPurgeMediaProgress": "Очистити прогрес",
|
|
||||||
"ButtonQueueAddItem": "Додати до черги",
|
"ButtonQueueAddItem": "Додати до черги",
|
||||||
"ButtonQueueRemoveItem": "Вилучити з черги",
|
"ButtonQueueRemoveItem": "Вилучити з черги",
|
||||||
"ButtonQuickMatch": "Швидкий пошук",
|
"ButtonQuickMatch": "Швидкий пошук",
|
||||||
|
"ButtonReScan": "Пересканувати",
|
||||||
"ButtonRead": "Читати",
|
"ButtonRead": "Читати",
|
||||||
"ButtonReadLess": "Згорнути",
|
"ButtonReadLess": "Згорнути",
|
||||||
"ButtonReadMore": "Читати далі",
|
"ButtonReadMore": "Читати далі",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Видалити з Продовжити слухати",
|
"ButtonRemoveFromContinueListening": "Видалити з Продовжити слухати",
|
||||||
"ButtonRemoveFromContinueReading": "Видалити з Продовжити читання",
|
"ButtonRemoveFromContinueReading": "Видалити з Продовжити читання",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Видалити серію з Продовжити серії",
|
"ButtonRemoveSeriesFromContinueSeries": "Видалити серію з Продовжити серії",
|
||||||
"ButtonReScan": "Пересканувати",
|
|
||||||
"ButtonReset": "Скинути",
|
"ButtonReset": "Скинути",
|
||||||
"ButtonResetToDefault": "Скинути до стандартних",
|
"ButtonResetToDefault": "Скинути до стандартних",
|
||||||
"ButtonRestore": "Відновити",
|
"ButtonRestore": "Відновити",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Профіль",
|
"HeaderAccount": "Профіль",
|
||||||
"HeaderAdvanced": "Розширені",
|
"HeaderAdvanced": "Розширені",
|
||||||
"HeaderAppriseNotificationSettings": "Налаштування сповіщень Apprise",
|
"HeaderAppriseNotificationSettings": "Налаштування сповіщень Apprise",
|
||||||
"HeaderAudiobookTools": "Інструменти керування файлами книг",
|
|
||||||
"HeaderAudioTracks": "Аудіодоріжки",
|
"HeaderAudioTracks": "Аудіодоріжки",
|
||||||
|
"HeaderAudiobookTools": "Інструменти керування файлами книг",
|
||||||
"HeaderAuthentication": "Автентифікація",
|
"HeaderAuthentication": "Автентифікація",
|
||||||
"HeaderBackups": "Резервні копії",
|
"HeaderBackups": "Резервні копії",
|
||||||
"HeaderChangePassword": "Змінити пароль",
|
"HeaderChangePassword": "Змінити пароль",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Елементи добірки",
|
"HeaderCollectionItems": "Елементи добірки",
|
||||||
"HeaderCover": "Обкладинка",
|
"HeaderCover": "Обкладинка",
|
||||||
"HeaderCurrentDownloads": "Поточні завантаження",
|
"HeaderCurrentDownloads": "Поточні завантаження",
|
||||||
|
"HeaderCustomMessageOnLogin": "Повідомлення при вході",
|
||||||
"HeaderCustomMetadataProviders": "Постачальники метаданих",
|
"HeaderCustomMetadataProviders": "Постачальники метаданих",
|
||||||
"HeaderDetails": "Подробиці",
|
"HeaderDetails": "Подробиці",
|
||||||
"HeaderDownloadQueue": "Черга завантажень",
|
"HeaderDownloadQueue": "Черга завантажень",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Елементи списку відтворення",
|
"HeaderPlaylistItems": "Елементи списку відтворення",
|
||||||
"HeaderPodcastsToAdd": "Додати подкасти",
|
"HeaderPodcastsToAdd": "Додати подкасти",
|
||||||
"HeaderPreviewCover": "Попередній перегляд",
|
"HeaderPreviewCover": "Попередній перегляд",
|
||||||
"HeaderRemoveEpisode": "Видалити епізод",
|
|
||||||
"HeaderRemoveEpisodes": "Видалити епізодів: {0}",
|
|
||||||
"HeaderRSSFeedGeneral": "Подробиці RSS",
|
"HeaderRSSFeedGeneral": "Подробиці RSS",
|
||||||
"HeaderRSSFeedIsOpen": "RSS-канал відкрито",
|
"HeaderRSSFeedIsOpen": "RSS-канал відкрито",
|
||||||
"HeaderRSSFeeds": "RSS-канали",
|
"HeaderRSSFeeds": "RSS-канали",
|
||||||
|
"HeaderRemoveEpisode": "Видалити епізод",
|
||||||
|
"HeaderRemoveEpisodes": "Видалити епізодів: {0}",
|
||||||
"HeaderSavedMediaProgress": "Збережений прогрес медіа",
|
"HeaderSavedMediaProgress": "Збережений прогрес медіа",
|
||||||
"HeaderSchedule": "Розклад",
|
"HeaderSchedule": "Розклад",
|
||||||
"HeaderScheduleLibraryScans": "Розклад автосканування бібліотеки",
|
"HeaderScheduleLibraryScans": "Розклад автосканування бібліотеки",
|
||||||
@@ -191,18 +192,18 @@
|
|||||||
"LabelAbridged": "Скорочена",
|
"LabelAbridged": "Скорочена",
|
||||||
"LabelAbridgedChecked": "Скорочена (з прапорцем)",
|
"LabelAbridgedChecked": "Скорочена (з прапорцем)",
|
||||||
"LabelAbridgedUnchecked": "Нескорочена (без прапорця)",
|
"LabelAbridgedUnchecked": "Нескорочена (без прапорця)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "Доступно",
|
||||||
"LabelAccountType": "Тип профілю",
|
"LabelAccountType": "Тип профілю",
|
||||||
"LabelAccountTypeAdmin": "Адміністратор",
|
"LabelAccountTypeAdmin": "Адміністратор",
|
||||||
"LabelAccountTypeGuest": "Гість",
|
"LabelAccountTypeGuest": "Гість",
|
||||||
"LabelAccountTypeUser": "Користувач",
|
"LabelAccountTypeUser": "Користувач",
|
||||||
"LabelActivity": "Активність",
|
"LabelActivity": "Активність",
|
||||||
"LabelAdded": "Додано",
|
|
||||||
"LabelAddedAt": "Дата додавання",
|
|
||||||
"LabelAddToCollection": "Додати у добірку",
|
"LabelAddToCollection": "Додати у добірку",
|
||||||
"LabelAddToCollectionBatch": "Додати книги до добірки: {0}",
|
"LabelAddToCollectionBatch": "Додати книги до добірки: {0}",
|
||||||
"LabelAddToPlaylist": "Додати до списку відтворення",
|
"LabelAddToPlaylist": "Додати до списку відтворення",
|
||||||
"LabelAddToPlaylistBatch": "Додано елементів у список відтворення: {0}",
|
"LabelAddToPlaylistBatch": "Додано елементів у список відтворення: {0}",
|
||||||
|
"LabelAdded": "Додано",
|
||||||
|
"LabelAddedAt": "Дата додавання",
|
||||||
"LabelAdminUsersOnly": "Тільки для адміністраторів",
|
"LabelAdminUsersOnly": "Тільки для адміністраторів",
|
||||||
"LabelAll": "Усе",
|
"LabelAll": "Усе",
|
||||||
"LabelAllUsers": "Усі користувачі",
|
"LabelAllUsers": "Усі користувачі",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "від {0}",
|
"LabelByAuthor": "від {0}",
|
||||||
"LabelChangePassword": "Змінити пароль",
|
"LabelChangePassword": "Змінити пароль",
|
||||||
"LabelChannels": "Канали",
|
"LabelChannels": "Канали",
|
||||||
|
"LabelChapterTitle": "Назва глави",
|
||||||
"LabelChapters": "Глави",
|
"LabelChapters": "Глави",
|
||||||
"LabelChaptersFound": "глав знайдено",
|
"LabelChaptersFound": "глав знайдено",
|
||||||
"LabelChapterTitle": "Назва глави",
|
|
||||||
"LabelClickForMoreInfo": "Натисніть, щоб дізнатися більше",
|
"LabelClickForMoreInfo": "Натисніть, щоб дізнатися більше",
|
||||||
"LabelClosePlayer": "Закрити програвач",
|
"LabelClosePlayer": "Закрити програвач",
|
||||||
"LabelCodec": "Кодек",
|
"LabelCodec": "Кодек",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Редагувати",
|
"LabelEdit": "Редагувати",
|
||||||
"LabelEmail": "Електронна пошта",
|
"LabelEmail": "Електронна пошта",
|
||||||
"LabelEmailSettingsFromAddress": "Адреса відправника",
|
"LabelEmailSettingsFromAddress": "Адреса відправника",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Відхиляти неавторизовані сертифікати",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Вимкнення перевірки SSL-сертифікату може наражати ваше з’єднання на ризики безпеки, наприклад атаки типу «людина посередині». Вимкніть цей параметр, лише якщо ви розумієте наслідки та довіряєте поштовому серверу, до якого підключаєтеся.",
|
||||||
"LabelEmailSettingsSecure": "Безпечне",
|
"LabelEmailSettingsSecure": "Безпечне",
|
||||||
"LabelEmailSettingsSecureHelp": "Увімкніть, аби використовувати TLS при підключенні до сервера. Якщо вимкнути, то TLS буде використано, якщо сервер підтримує STARTTLS. Увімкніть, якщо ви підключаєтеся до порту 465. Вимкніть для портів 587 або 25. (з nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Увімкніть, аби використовувати TLS при підключенні до сервера. Якщо вимкнути, то TLS буде використано, якщо сервер підтримує STARTTLS. Увімкніть, якщо ви підключаєтеся до порту 465. Вимкніть для портів 587 або 25. (з nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Тестова адреса",
|
"LabelEmailSettingsTestAddress": "Тестова адреса",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Тека",
|
"LabelFolder": "Тека",
|
||||||
"LabelFolders": "Теки",
|
"LabelFolders": "Теки",
|
||||||
"LabelFontBold": "Жирний",
|
"LabelFontBold": "Жирний",
|
||||||
|
"LabelFontBoldness": "Товщина шрифту",
|
||||||
"LabelFontFamily": "Гарнітура",
|
"LabelFontFamily": "Гарнітура",
|
||||||
"LabelFontItalic": "Курсив",
|
"LabelFontItalic": "Курсив",
|
||||||
"LabelFontScale": "Розмір шрифту",
|
"LabelFontScale": "Розмір шрифту",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Година",
|
"LabelHour": "Година",
|
||||||
"LabelIcon": "Іконка",
|
"LabelIcon": "Іконка",
|
||||||
"LabelImageURLFromTheWeb": "URL зображення з мережі",
|
"LabelImageURLFromTheWeb": "URL зображення з мережі",
|
||||||
|
"LabelInProgress": "У процесі",
|
||||||
"LabelIncludeInTracklist": "Включити у список",
|
"LabelIncludeInTracklist": "Включити у список",
|
||||||
"LabelIncomplete": "Не завершено",
|
"LabelIncomplete": "Не завершено",
|
||||||
"LabelInProgress": "У процесі",
|
|
||||||
"LabelInterval": "Частота",
|
"LabelInterval": "Частота",
|
||||||
"LabelIntervalCustomDailyWeekly": "Налаштувати щодня/щотижня",
|
"LabelIntervalCustomDailyWeekly": "Налаштувати щодня/щотижня",
|
||||||
"LabelIntervalEvery12Hours": "Кожні 12 годин",
|
"LabelIntervalEvery12Hours": "Кожні 12 годин",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Елемент",
|
"LabelItem": "Елемент",
|
||||||
"LabelLanguage": "Мова",
|
"LabelLanguage": "Мова",
|
||||||
"LabelLanguageDefaultServer": "Типова мова сервера",
|
"LabelLanguageDefaultServer": "Типова мова сервера",
|
||||||
|
"LabelLanguages": "Мови",
|
||||||
"LabelLastBookAdded": "Останню книгу додано",
|
"LabelLastBookAdded": "Останню книгу додано",
|
||||||
"LabelLastBookUpdated": "Останню книгу оновлено",
|
"LabelLastBookUpdated": "Останню книгу оновлено",
|
||||||
"LabelLastSeen": "Активність",
|
"LabelLastSeen": "Активність",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Менше",
|
"LabelLess": "Менше",
|
||||||
"LabelLibrariesAccessibleToUser": "Бібліотеки, доступні користувачу",
|
"LabelLibrariesAccessibleToUser": "Бібліотеки, доступні користувачу",
|
||||||
"LabelLibrary": "Бібліотека",
|
"LabelLibrary": "Бібліотека",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Елемент бібліотеки",
|
"LabelLibraryItem": "Елемент бібліотеки",
|
||||||
"LabelLibraryName": "Назва бібліотеки",
|
"LabelLibraryName": "Назва бібліотеки",
|
||||||
"LabelLimit": "Обмеження",
|
"LabelLimit": "Обмеження",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Використовується для підключення наявних користувачів. Після підключення користувач отримає унікальний id від вашого сервісу SSO",
|
"LabelMatchExistingUsersByDescription": "Використовується для підключення наявних користувачів. Після підключення користувач отримає унікальний id від вашого сервісу SSO",
|
||||||
"LabelMediaPlayer": "Програвач медіа",
|
"LabelMediaPlayer": "Програвач медіа",
|
||||||
"LabelMediaType": "Тип медіа",
|
"LabelMediaType": "Тип медіа",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Пріоритетніші джерела метаданих перезапишуть менш пріоритетні метадані",
|
|
||||||
"LabelMetadataProvider": "Джерело метаданих",
|
|
||||||
"LabelMetaTag": "Метатег",
|
"LabelMetaTag": "Метатег",
|
||||||
"LabelMetaTags": "Метатеги",
|
"LabelMetaTags": "Метатеги",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Пріоритетніші джерела метаданих перезапишуть менш пріоритетні метадані",
|
||||||
|
"LabelMetadataProvider": "Джерело метаданих",
|
||||||
"LabelMinute": "Хвилина",
|
"LabelMinute": "Хвилина",
|
||||||
"LabelMissing": "Бракує",
|
"LabelMissing": "Бракує",
|
||||||
"LabelMissingEbook": "Без електронної книги",
|
"LabelMissingEbook": "Без електронної книги",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Читець",
|
"LabelNarrator": "Читець",
|
||||||
"LabelNarrators": "Читці",
|
"LabelNarrators": "Читці",
|
||||||
"LabelNew": "Нове",
|
"LabelNew": "Нове",
|
||||||
|
"LabelNewPassword": "Новий пароль",
|
||||||
"LabelNewestAuthors": "Нові автори",
|
"LabelNewestAuthors": "Нові автори",
|
||||||
"LabelNewestEpisodes": "Нові епізоди",
|
"LabelNewestEpisodes": "Нові епізоди",
|
||||||
"LabelNewPassword": "Новий пароль",
|
|
||||||
"LabelNextBackupDate": "Дата наступного резервного копіювання",
|
"LabelNextBackupDate": "Дата наступного резервного копіювання",
|
||||||
"LabelNextScheduledRun": "Наступний запланований запуск",
|
"LabelNextScheduledRun": "Наступний запланований запуск",
|
||||||
|
"LabelNoCustomMetadataProviders": "Без постачальників метаданих",
|
||||||
"LabelNoEpisodesSelected": "Не вибрано жодного епізоду",
|
"LabelNoEpisodesSelected": "Не вибрано жодного епізоду",
|
||||||
"LabelNotes": "Примітки",
|
|
||||||
"LabelNotFinished": "Незавершені",
|
"LabelNotFinished": "Незавершені",
|
||||||
|
"LabelNotStarted": "Не розпочато",
|
||||||
|
"LabelNotes": "Примітки",
|
||||||
"LabelNotificationAppriseURL": "URL Apprise",
|
"LabelNotificationAppriseURL": "URL Apprise",
|
||||||
"LabelNotificationAvailableVariables": "Доступні змінні",
|
"LabelNotificationAvailableVariables": "Доступні змінні",
|
||||||
"LabelNotificationBodyTemplate": "Шаблон сповіщення",
|
"LabelNotificationBodyTemplate": "Шаблон сповіщення",
|
||||||
"LabelNotificationEvent": "Сповіщення про події",
|
"LabelNotificationEvent": "Сповіщення про події",
|
||||||
|
"LabelNotificationTitleTemplate": "Шаблон заголовку",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Ліміт невдалих спроб",
|
"LabelNotificationsMaxFailedAttempts": "Ліміт невдалих спроб",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Сповіщення буде вимкнено після багатьох невдалих надсилань",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Сповіщення буде вимкнено після багатьох невдалих надсилань",
|
||||||
"LabelNotificationsMaxQueueSize": "Ліміт розміру черги сповіщень",
|
"LabelNotificationsMaxQueueSize": "Ліміт розміру черги сповіщень",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Події обмежені до 1 на секунду. Події буде проігноровано, якщо ліміт черги досягнуто. Це запобігає спаму сповіщеннями.",
|
"LabelNotificationsMaxQueueSizeHelp": "Події обмежені до 1 на секунду. Події буде проігноровано, якщо ліміт черги досягнуто. Це запобігає спаму сповіщеннями.",
|
||||||
"LabelNotificationTitleTemplate": "Шаблон заголовку",
|
|
||||||
"LabelNotStarted": "Не розпочато",
|
|
||||||
"LabelNumberOfBooks": "Кількість книг",
|
"LabelNumberOfBooks": "Кількість книг",
|
||||||
"LabelNumberOfEpisodes": "Кількість епізодів",
|
"LabelNumberOfEpisodes": "Кількість епізодів",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Назва OpenID claim, що містить розширені дозволи на дії користувачів у додатку, які будуть застосовуватися до ролей, що не є адміністраторами (<b>якщо налаштовано</b>). Якщо у відповіді нема claim, у доступі до Audiobookshelf буде відмовлено. Якщо відсутня хоча б одна опція, відповідь буде вважатися <code>хибною</code>. Переконайтеся, що запит постачальника ідентифікаційних даних відповідає очікуваній структурі:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Назва OpenID claim, що містить розширені дозволи на дії користувачів у додатку, які будуть застосовуватися до ролей, що не є адміністраторами (<b>якщо налаштовано</b>). Якщо у відповіді нема claim, у доступі до Audiobookshelf буде відмовлено. Якщо відсутня хоча б одна опція, відповідь буде вважатися <code>хибною</code>. Переконайтеся, що запит постачальника ідентифікаційних даних відповідає очікуваній структурі:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Може завантажувати",
|
"LabelPermissionsUpload": "Може завантажувати",
|
||||||
"LabelPersonalYearReview": "Ваші підсумки року ({0})",
|
"LabelPersonalYearReview": "Ваші підсумки року ({0})",
|
||||||
"LabelPhotoPathURL": "Шлях/URL фото",
|
"LabelPhotoPathURL": "Шлях/URL фото",
|
||||||
"LabelPlaylists": "Списки відтворення",
|
|
||||||
"LabelPlayMethod": "Метод відтворення",
|
"LabelPlayMethod": "Метод відтворення",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Списки відтворення",
|
||||||
"LabelPodcast": "Подкаст",
|
"LabelPodcast": "Подкаст",
|
||||||
"LabelPodcasts": "Подкасти",
|
|
||||||
"LabelPodcastSearchRegion": "Регіон пошуку подкасту",
|
"LabelPodcastSearchRegion": "Регіон пошуку подкасту",
|
||||||
"LabelPodcastType": "Тип подкасту",
|
"LabelPodcastType": "Тип подкасту",
|
||||||
|
"LabelPodcasts": "Подкасти",
|
||||||
"LabelPort": "Порт",
|
"LabelPort": "Порт",
|
||||||
"LabelPrefixesToIgnore": "Ігнорувати префікси (з урахуванням регістру)",
|
"LabelPrefixesToIgnore": "Ігнорувати префікси (з урахуванням регістру)",
|
||||||
"LabelPreventIndexing": "Заборонити індексування вашого каналу каталогами подкастів iTunes та Google",
|
"LabelPreventIndexing": "Заборонити індексування вашого каналу каталогами подкастів iTunes та Google",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Прогрес",
|
"LabelProgress": "Прогрес",
|
||||||
"LabelProvider": "Джерело",
|
"LabelProvider": "Джерело",
|
||||||
"LabelPubDate": "Дата публікації",
|
"LabelPubDate": "Дата публікації",
|
||||||
"LabelPublisher": "Видавець",
|
|
||||||
"LabelPublishYear": "Рік публікації",
|
"LabelPublishYear": "Рік публікації",
|
||||||
"LabelRead": "Читати",
|
"LabelPublisher": "Видавець",
|
||||||
"LabelReadAgain": "Читати знову",
|
"LabelPublishers": "Видавці",
|
||||||
"LabelReadEbookWithoutProgress": "Читати книгу без збереження прогресу",
|
|
||||||
"LabelRecentlyAdded": "Нещодавно додані",
|
|
||||||
"LabelRecentSeries": "Останні серії",
|
|
||||||
"LabelRecommended": "Рекомендовані",
|
|
||||||
"LabelRedo": "Повторити",
|
|
||||||
"LabelRegion": "Регіон",
|
|
||||||
"LabelReleaseDate": "Дата публікації",
|
|
||||||
"LabelRemoveCover": "Видалити обкладинку",
|
|
||||||
"LabelRowsPerPage": "Рядків на сторінку",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Користувацька електронна адреса власника",
|
"LabelRSSFeedCustomOwnerEmail": "Користувацька електронна адреса власника",
|
||||||
"LabelRSSFeedCustomOwnerName": "Користувацьке ім'я власника",
|
"LabelRSSFeedCustomOwnerName": "Користувацьке ім'я власника",
|
||||||
"LabelRSSFeedOpen": "RSS-канал відкрито",
|
"LabelRSSFeedOpen": "RSS-канал відкрито",
|
||||||
"LabelRSSFeedPreventIndexing": "Запобігати індексації",
|
"LabelRSSFeedPreventIndexing": "Запобігати індексації",
|
||||||
"LabelRSSFeedSlug": "Назва RSS-каналу",
|
"LabelRSSFeedSlug": "Назва RSS-каналу",
|
||||||
"LabelRSSFeedURL": "Адреса RSS-каналу",
|
"LabelRSSFeedURL": "Адреса RSS-каналу",
|
||||||
|
"LabelRead": "Читати",
|
||||||
|
"LabelReadAgain": "Читати знову",
|
||||||
|
"LabelReadEbookWithoutProgress": "Читати книгу без збереження прогресу",
|
||||||
|
"LabelRecentSeries": "Останні серії",
|
||||||
|
"LabelRecentlyAdded": "Нещодавно додані",
|
||||||
|
"LabelRecommended": "Рекомендовані",
|
||||||
|
"LabelRedo": "Повторити",
|
||||||
|
"LabelRegion": "Регіон",
|
||||||
|
"LabelReleaseDate": "Дата публікації",
|
||||||
|
"LabelRemoveCover": "Видалити обкладинку",
|
||||||
|
"LabelRowsPerPage": "Рядків на сторінку",
|
||||||
"LabelSearchTerm": "Пошуковий запит",
|
"LabelSearchTerm": "Пошуковий запит",
|
||||||
"LabelSearchTitle": "Пошук за назвою",
|
"LabelSearchTitle": "Пошук за назвою",
|
||||||
"LabelSearchTitleOrASIN": "Пошук назви або ASIN",
|
"LabelSearchTitleOrASIN": "Пошук назви або ASIN",
|
||||||
@@ -471,8 +480,8 @@
|
|||||||
"LabelSettingsEnableWatcher": "Увімкнути спостерігача",
|
"LabelSettingsEnableWatcher": "Увімкнути спостерігача",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "Увімкнути спостерігання тек бібліотеки",
|
"LabelSettingsEnableWatcherForLibrary": "Увімкнути спостерігання тек бібліотеки",
|
||||||
"LabelSettingsEnableWatcherHelp": "Вмикає автоматичне додавання/оновлення елементів, коли спостерігаються зміни файлів. *Потребує перезавантаження сервера",
|
"LabelSettingsEnableWatcherHelp": "Вмикає автоматичне додавання/оновлення елементів, коли спостерігаються зміни файлів. *Потребує перезавантаження сервера",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "Дозволити JavaScript-вміст у epub",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "Дозволяти epub-файлам виконувати код. Вмикайте цей параметр лише якщо ви довіряєте джерелу epub-файлів.",
|
||||||
"LabelSettingsExperimentalFeatures": "Експериментальні функції",
|
"LabelSettingsExperimentalFeatures": "Експериментальні функції",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "Функції в розробці, які потребують вашого відгуку та допомоги в тестуванні. Натисніть, щоб відкрити обговорення на Github.",
|
"LabelSettingsExperimentalFeaturesHelp": "Функції в розробці, які потребують вашого відгуку та допомоги в тестуванні. Натисніть, щоб відкрити обговорення на Github.",
|
||||||
"LabelSettingsFindCovers": "Пошук обкладинок",
|
"LabelSettingsFindCovers": "Пошук обкладинок",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Таймер вимкнення",
|
"LabelSleepTimer": "Таймер вимкнення",
|
||||||
"LabelSlug": "Назва",
|
"LabelSlug": "Назва",
|
||||||
"LabelStart": "Початок",
|
"LabelStart": "Початок",
|
||||||
|
"LabelStartTime": "Час початку",
|
||||||
"LabelStarted": "Почато",
|
"LabelStarted": "Почато",
|
||||||
"LabelStartedAt": "Почато",
|
"LabelStartedAt": "Почато",
|
||||||
"LabelStartTime": "Час початку",
|
|
||||||
"LabelStatsAudioTracks": "Аудіодоріжки",
|
"LabelStatsAudioTracks": "Аудіодоріжки",
|
||||||
"LabelStatsAuthors": "Автори",
|
"LabelStatsAuthors": "Автори",
|
||||||
"LabelStatsBestDay": "Найкращий день",
|
"LabelStatsBestDay": "Найкращий день",
|
||||||
@@ -543,7 +552,7 @@
|
|||||||
"LabelTimeToShift": "На скільки секунд зсунути",
|
"LabelTimeToShift": "На скільки секунд зсунути",
|
||||||
"LabelTitle": "Назва",
|
"LabelTitle": "Назва",
|
||||||
"LabelToolsEmbedMetadata": "Вбудувати метадані",
|
"LabelToolsEmbedMetadata": "Вбудувати метадані",
|
||||||
"LabelToolsEmbedMetadataDescription": "Вбудувати метадані в аудіофайли, включно з обкладинками та главами",
|
"LabelToolsEmbedMetadataDescription": "Вбудувати метадані в аудіофайли, включно з обкладинками та главами.",
|
||||||
"LabelToolsMakeM4b": "Створити M4B-файл аудіокниги",
|
"LabelToolsMakeM4b": "Створити M4B-файл аудіокниги",
|
||||||
"LabelToolsMakeM4bDescription": "Створити .M4B-аудіокнигу з вбудованими метаданими, обкладинкою та главами.",
|
"LabelToolsMakeM4bDescription": "Створити .M4B-аудіокнигу з вбудованими метаданими, обкладинкою та главами.",
|
||||||
"LabelToolsSplitM4b": "Розділити M4B на MP3",
|
"LabelToolsSplitM4b": "Розділити M4B на MP3",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Невідомо",
|
"LabelUnknown": "Невідомо",
|
||||||
"LabelUpdateCover": "Оновити обкладинку",
|
"LabelUpdateCover": "Оновити обкладинку",
|
||||||
"LabelUpdateCoverHelp": "Дозволити перезапис наявних обкладинок обраних книг після віднайдення",
|
"LabelUpdateCoverHelp": "Дозволити перезапис наявних обкладинок обраних книг після віднайдення",
|
||||||
"LabelUpdatedAt": "Оновлення",
|
|
||||||
"LabelUpdateDetails": "Оновити подробиці",
|
"LabelUpdateDetails": "Оновити подробиці",
|
||||||
"LabelUpdateDetailsHelp": "Дозволити перезапис наявних подробиць обраних книг після віднайдення",
|
"LabelUpdateDetailsHelp": "Дозволити перезапис наявних подробиць обраних книг після віднайдення",
|
||||||
|
"LabelUpdatedAt": "Оновлення",
|
||||||
"LabelUploaderDragAndDrop": "Перетягніть файли або теки",
|
"LabelUploaderDragAndDrop": "Перетягніть файли або теки",
|
||||||
"LabelUploaderDropFiles": "Перетягніть файли",
|
"LabelUploaderDropFiles": "Перетягніть файли",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Автоматично шукати назву, автора та серію",
|
"LabelUploaderItemFetchMetadataHelp": "Автоматично шукати назву, автора та серію",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Резервні копії містять користувачів, прогрес, подробиці елементів бібліотеки, налаштування сервера та зображення з <code>/metadata/items</code> та <code>/metadata/authors</code>. Резервні копії <strong>не</strong> містять жодних файлів з тек бібліотеки.",
|
"MessageBackupsDescription": "Резервні копії містять користувачів, прогрес, подробиці елементів бібліотеки, налаштування сервера та зображення з <code>/metadata/items</code> та <code>/metadata/authors</code>. Резервні копії <strong>не</strong> містять жодних файлів з тек бібліотеки.",
|
||||||
"MessageBatchQuickMatchDescription": "Швидкий пошук спробує знайти відсутні обкладинки та метадані обраних елементів. Увімкніть налаштування нижче, аби дозволити заміну наявних обкладинок та/або метаданих під час швидкого пошуку.",
|
"MessageBatchQuickMatchDescription": "Швидкий пошук спробує знайти відсутні обкладинки та метадані обраних елементів. Увімкніть налаштування нижче, аби дозволити заміну наявних обкладинок та/або метаданих під час швидкого пошуку.",
|
||||||
"MessageBookshelfNoCollections": "Ви не створили жодної добірки",
|
"MessageBookshelfNoCollections": "Ви не створили жодної добірки",
|
||||||
"MessageBookshelfNoResultsForFilter": "Немає результатів з фільтром \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Немає відкритих RSS-каналів",
|
"MessageBookshelfNoRSSFeeds": "Немає відкритих RSS-каналів",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Немає результатів з фільтром \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "Немає результатів за запитом",
|
||||||
"MessageBookshelfNoSeries": "Серії відсутні",
|
"MessageBookshelfNoSeries": "Серії відсутні",
|
||||||
"MessageChapterEndIsAfter": "Кінець глави знаходиться після закінчення книги",
|
"MessageChapterEndIsAfter": "Кінець глави знаходиться після закінчення книги",
|
||||||
"MessageChapterErrorFirstNotZero": "Перша глава мусить починатися з 0",
|
"MessageChapterErrorFirstNotZero": "Перша глава мусить починатися з 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Ви дійсно бажаєте позначити усі книги серії завершеними?",
|
"MessageConfirmMarkSeriesFinished": "Ви дійсно бажаєте позначити усі книги серії завершеними?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Ви дійсно бажаєте позначити всі книги серії незавершеними?",
|
"MessageConfirmMarkSeriesNotFinished": "Ви дійсно бажаєте позначити всі книги серії незавершеними?",
|
||||||
"MessageConfirmPurgeCache": "Очищення кешу видалить усю теку <code>/metadata/cache</code>. <br /><br />Ви дійсно бажаєте видалити теку кешу?",
|
"MessageConfirmPurgeCache": "Очищення кешу видалить усю теку <code>/metadata/cache</code>. <br /><br />Ви дійсно бажаєте видалити теку кешу?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Очищення кешу елементів видалить усю теку <code>/metadata/cache/items</code>. <br />Ви певні?",
|
||||||
"MessageConfirmQuickEmbed": "Увага! Швидке вбудування не створює резервних копій ваших аудіо. Переконайтеся, що маєте копію ваших файлів.<br><br>Продовжити?",
|
"MessageConfirmQuickEmbed": "Увага! Швидке вбудування не створює резервних копій ваших аудіо. Переконайтеся, що маєте копію ваших файлів.<br><br>Продовжити?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Ви дійсно бажаєте пересканувати елементи: {0}?",
|
||||||
"MessageConfirmRemoveAllChapters": "Ви дійсно бажаєте видалити усі глави?",
|
"MessageConfirmRemoveAllChapters": "Ви дійсно бажаєте видалити усі глави?",
|
||||||
"MessageConfirmRemoveAuthor": "Ви дійсно бажаєте видалити автора \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "Ви дійсно бажаєте видалити автора \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "Ви дійсно бажаєте видалити добірку \"{0}\"?",
|
"MessageConfirmRemoveCollection": "Ви дійсно бажаєте видалити добірку \"{0}\"?",
|
||||||
@@ -627,13 +639,12 @@
|
|||||||
"MessageConfirmRenameTag": "Ви дійсно бажаєте замінити мітку \"{0}\" на \"{1}\" для усіх елементів?",
|
"MessageConfirmRenameTag": "Ви дійсно бажаєте замінити мітку \"{0}\" на \"{1}\" для усіх елементів?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Примітка: така мітка вже існує, тож їх буде об'єднано.",
|
"MessageConfirmRenameTagMergeNote": "Примітка: така мітка вже існує, тож їх буде об'єднано.",
|
||||||
"MessageConfirmRenameTagWarning": "Увага! Вже існує схожа мітка у іншому регістрі \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Увага! Вже існує схожа мітка у іншому регістрі \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Ви дійсно бажаєте пересканувати елементи: {0}?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Ви дійсно хочете відправити на пристрій \"{2}\" електроні книги: {0}, \"{1}\"?",
|
"MessageConfirmSendEbookToDevice": "Ви дійсно хочете відправити на пристрій \"{2}\" електроні книги: {0}, \"{1}\"?",
|
||||||
"MessageDownloadingEpisode": "Завантаження епізоду",
|
"MessageDownloadingEpisode": "Завантаження епізоду",
|
||||||
"MessageDragFilesIntoTrackOrder": "Перетягніть файли до правильного порядку",
|
"MessageDragFilesIntoTrackOrder": "Перетягніть файли до правильного порядку",
|
||||||
"MessageEmbedFinished": "Вбудовано!",
|
"MessageEmbedFinished": "Вбудовано!",
|
||||||
"MessageEpisodesQueuedForDownload": "Епізодів у черзі завантаження: {0}",
|
"MessageEpisodesQueuedForDownload": "Епізодів у черзі завантаження: {0}",
|
||||||
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below.",
|
"MessageEreaderDevices": "Аби гарантувати отримання електронних книг, вам може знадобитися додати вказану вище адресу електронної пошти як правильного відправника на кожному з пристроїв зі списку нижче.",
|
||||||
"MessageFeedURLWillBe": "URL-адреса каналу буде {0}",
|
"MessageFeedURLWillBe": "URL-адреса каналу буде {0}",
|
||||||
"MessageFetching": "Отримання...",
|
"MessageFetching": "Отримання...",
|
||||||
"MessageForceReScanDescription": "Просканує усі файли заново, неначе вперше. ID3-мітки, файли OPF та текстові файли будуть проскановані як нові.",
|
"MessageForceReScanDescription": "Просканує усі файли заново, неначе вперше. ID3-мітки, файли OPF та текстові файли будуть проскановані як нові.",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Без серії",
|
"MessageNoSeries": "Без серії",
|
||||||
"MessageNoTags": "Без міток",
|
"MessageNoTags": "Без міток",
|
||||||
"MessageNoTasksRunning": "Немає активних завдань",
|
"MessageNoTasksRunning": "Немає активних завдань",
|
||||||
"MessageNotYetImplemented": "Ще не реалізовано",
|
|
||||||
"MessageNoUpdateNecessary": "Оновлення не потрібно",
|
"MessageNoUpdateNecessary": "Оновлення не потрібно",
|
||||||
"MessageNoUpdatesWereNecessary": "Оновлень не потрібно",
|
"MessageNoUpdatesWereNecessary": "Оновлень не потрібно",
|
||||||
"MessageNoUserPlaylists": "У вас немає списків відтворення",
|
"MessageNoUserPlaylists": "У вас немає списків відтворення",
|
||||||
|
"MessageNotYetImplemented": "Ще не реалізовано",
|
||||||
"MessageOr": "або",
|
"MessageOr": "або",
|
||||||
"MessagePauseChapter": "Призупинити відтворення глави",
|
"MessagePauseChapter": "Призупинити відтворення глави",
|
||||||
"MessagePlayChapter": "Слухати початок глави",
|
"MessagePlayChapter": "Слухати початок глави",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Список відтворення оновлено",
|
"ToastPlaylistUpdateSuccess": "Список відтворення оновлено",
|
||||||
"ToastPodcastCreateFailed": "Не вдалося створити подкаст",
|
"ToastPodcastCreateFailed": "Не вдалося створити подкаст",
|
||||||
"ToastPodcastCreateSuccess": "Подкаст успішно створено",
|
"ToastPodcastCreateSuccess": "Подкаст успішно створено",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Не вдалося видалити елемент із добірки",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Елемент видалено з добірки",
|
|
||||||
"ToastRSSFeedCloseFailed": "Не вдалося закрити RSS-канал",
|
"ToastRSSFeedCloseFailed": "Не вдалося закрити RSS-канал",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS-канал закрито",
|
"ToastRSSFeedCloseSuccess": "RSS-канал закрито",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Не вдалося видалити елемент із добірки",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Елемент видалено з добірки",
|
||||||
"ToastSendEbookToDeviceFailed": "Не вдалося надіслати електронну книгу на пристрій",
|
"ToastSendEbookToDeviceFailed": "Не вдалося надіслати електронну книгу на пристрій",
|
||||||
"ToastSendEbookToDeviceSuccess": "Електронну книгу надіслано на пристрій \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Електронну книгу надіслано на пристрій \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Не вдалося оновити серію",
|
"ToastSeriesUpdateFailed": "Не вдалося оновити серію",
|
||||||
|
|||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "Áp Dụng",
|
"ButtonApply": "Áp Dụng",
|
||||||
"ButtonApplyChapters": "Áp Dụng Chương",
|
"ButtonApplyChapters": "Áp Dụng Chương",
|
||||||
"ButtonAuthors": "Tác Giả",
|
"ButtonAuthors": "Tác Giả",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "Duyệt Thư Mục",
|
"ButtonBrowseForFolder": "Duyệt Thư Mục",
|
||||||
"ButtonCancel": "Hủy",
|
"ButtonCancel": "Hủy",
|
||||||
"ButtonCancelEncode": "Hủy Mã Hóa",
|
"ButtonCancelEncode": "Hủy Mã Hóa",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "Chương Trước",
|
"ButtonPreviousChapter": "Chương Trước",
|
||||||
"ButtonPurgeAllCache": "Xóa Sạch Tất Cả Bộ Nhớ Cache",
|
"ButtonPurgeAllCache": "Xóa Sạch Tất Cả Bộ Nhớ Cache",
|
||||||
"ButtonPurgeItemsCache": "Xóa Sạch Bộ Nhớ Cache Các Mục",
|
"ButtonPurgeItemsCache": "Xóa Sạch Bộ Nhớ Cache Các Mục",
|
||||||
"ButtonPurgeMediaProgress": "Xóa Sạch Tiến Trình Phương Tiện",
|
|
||||||
"ButtonQueueAddItem": "Thêm vào hàng đợi",
|
"ButtonQueueAddItem": "Thêm vào hàng đợi",
|
||||||
"ButtonQueueRemoveItem": "Xóa khỏi hàng đợi",
|
"ButtonQueueRemoveItem": "Xóa khỏi hàng đợi",
|
||||||
"ButtonQuickMatch": "Khớp Nhanh",
|
"ButtonQuickMatch": "Khớp Nhanh",
|
||||||
|
"ButtonReScan": "Quét Lại",
|
||||||
"ButtonRead": "Đọc",
|
"ButtonRead": "Đọc",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "Xóa khỏi Tiếp Tục Nghe",
|
"ButtonRemoveFromContinueListening": "Xóa khỏi Tiếp Tục Nghe",
|
||||||
"ButtonRemoveFromContinueReading": "Xóa khỏi Tiếp Tục Đọc",
|
"ButtonRemoveFromContinueReading": "Xóa khỏi Tiếp Tục Đọc",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "Xóa Series khỏi Tiếp Tục Series",
|
"ButtonRemoveSeriesFromContinueSeries": "Xóa Series khỏi Tiếp Tục Series",
|
||||||
"ButtonReScan": "Quét Lại",
|
|
||||||
"ButtonReset": "Đặt Lại",
|
"ButtonReset": "Đặt Lại",
|
||||||
"ButtonResetToDefault": "Đặt Lại về Mặc Định",
|
"ButtonResetToDefault": "Đặt Lại về Mặc Định",
|
||||||
"ButtonRestore": "Khôi Phục",
|
"ButtonRestore": "Khôi Phục",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "Tài Khoản",
|
"HeaderAccount": "Tài Khoản",
|
||||||
"HeaderAdvanced": "Nâng Cao",
|
"HeaderAdvanced": "Nâng Cao",
|
||||||
"HeaderAppriseNotificationSettings": "Cài Đặt Thông Báo Apprise",
|
"HeaderAppriseNotificationSettings": "Cài Đặt Thông Báo Apprise",
|
||||||
"HeaderAudiobookTools": "Công Cụ Quản Lý Tệp Truyện Nói",
|
|
||||||
"HeaderAudioTracks": "Các Track Âm Thanh",
|
"HeaderAudioTracks": "Các Track Âm Thanh",
|
||||||
|
"HeaderAudiobookTools": "Công Cụ Quản Lý Tệp Truyện Nói",
|
||||||
"HeaderAuthentication": "Xác Thực",
|
"HeaderAuthentication": "Xác Thực",
|
||||||
"HeaderBackups": "Bản Sao Lưu",
|
"HeaderBackups": "Bản Sao Lưu",
|
||||||
"HeaderChangePassword": "Thay Đổi Mật Khẩu",
|
"HeaderChangePassword": "Thay Đổi Mật Khẩu",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "Các Mục Bộ Sưu Tập",
|
"HeaderCollectionItems": "Các Mục Bộ Sưu Tập",
|
||||||
"HeaderCover": "Bìa",
|
"HeaderCover": "Bìa",
|
||||||
"HeaderCurrentDownloads": "Tải Xuống Hiện Tại",
|
"HeaderCurrentDownloads": "Tải Xuống Hiện Tại",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "Các Nhà Cung Cấp Metadata Tùy Chỉnh",
|
"HeaderCustomMetadataProviders": "Các Nhà Cung Cấp Metadata Tùy Chỉnh",
|
||||||
"HeaderDetails": "Chi Tiết",
|
"HeaderDetails": "Chi Tiết",
|
||||||
"HeaderDownloadQueue": "Hàng Đợi Tải Xuống",
|
"HeaderDownloadQueue": "Hàng Đợi Tải Xuống",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "Các Mục Danh Sách Phát",
|
"HeaderPlaylistItems": "Các Mục Danh Sách Phát",
|
||||||
"HeaderPodcastsToAdd": "Podcasts để Thêm",
|
"HeaderPodcastsToAdd": "Podcasts để Thêm",
|
||||||
"HeaderPreviewCover": "Xem Trước Bìa",
|
"HeaderPreviewCover": "Xem Trước Bìa",
|
||||||
"HeaderRemoveEpisode": "Xóa Tập",
|
|
||||||
"HeaderRemoveEpisodes": "Xóa {0} Tập",
|
|
||||||
"HeaderRSSFeedGeneral": "Chi Tiết RSS",
|
"HeaderRSSFeedGeneral": "Chi Tiết RSS",
|
||||||
"HeaderRSSFeedIsOpen": "RSS Feed Đã Mở",
|
"HeaderRSSFeedIsOpen": "RSS Feed Đã Mở",
|
||||||
"HeaderRSSFeeds": "RSS Feeds",
|
"HeaderRSSFeeds": "RSS Feeds",
|
||||||
|
"HeaderRemoveEpisode": "Xóa Tập",
|
||||||
|
"HeaderRemoveEpisodes": "Xóa {0} Tập",
|
||||||
"HeaderSavedMediaProgress": "Tiến Trình Phương Tiện Đã Lưu",
|
"HeaderSavedMediaProgress": "Tiến Trình Phương Tiện Đã Lưu",
|
||||||
"HeaderSchedule": "Lịch Trình",
|
"HeaderSchedule": "Lịch Trình",
|
||||||
"HeaderScheduleLibraryScans": "Lên Lịch Quét Tự Động Thư Viện",
|
"HeaderScheduleLibraryScans": "Lên Lịch Quét Tự Động Thư Viện",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "Khách",
|
"LabelAccountTypeGuest": "Khách",
|
||||||
"LabelAccountTypeUser": "Người Dùng",
|
"LabelAccountTypeUser": "Người Dùng",
|
||||||
"LabelActivity": "Hoạt Động",
|
"LabelActivity": "Hoạt Động",
|
||||||
"LabelAdded": "Đã Thêm",
|
|
||||||
"LabelAddedAt": "Đã Thêm Lúc",
|
|
||||||
"LabelAddToCollection": "Thêm vào Bộ Sưu Tập",
|
"LabelAddToCollection": "Thêm vào Bộ Sưu Tập",
|
||||||
"LabelAddToCollectionBatch": "Thêm {0} Sách vào Bộ Sưu Tập",
|
"LabelAddToCollectionBatch": "Thêm {0} Sách vào Bộ Sưu Tập",
|
||||||
"LabelAddToPlaylist": "Thêm vào Danh Sách Phát",
|
"LabelAddToPlaylist": "Thêm vào Danh Sách Phát",
|
||||||
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
||||||
|
"LabelAdded": "Đã Thêm",
|
||||||
|
"LabelAddedAt": "Đã Thêm Lúc",
|
||||||
"LabelAdminUsersOnly": "Admin users only",
|
"LabelAdminUsersOnly": "Admin users only",
|
||||||
"LabelAll": "All",
|
"LabelAll": "All",
|
||||||
"LabelAllUsers": "All Users",
|
"LabelAllUsers": "All Users",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "Đổi Mật Khẩu",
|
"LabelChangePassword": "Đổi Mật Khẩu",
|
||||||
"LabelChannels": "Kênh",
|
"LabelChannels": "Kênh",
|
||||||
|
"LabelChapterTitle": "Tiêu đề Chương",
|
||||||
"LabelChapters": "Chương",
|
"LabelChapters": "Chương",
|
||||||
"LabelChaptersFound": "chương được tìm thấy",
|
"LabelChaptersFound": "chương được tìm thấy",
|
||||||
"LabelChapterTitle": "Tiêu đề Chương",
|
|
||||||
"LabelClickForMoreInfo": "Nhấn để biết thêm thông tin",
|
"LabelClickForMoreInfo": "Nhấn để biết thêm thông tin",
|
||||||
"LabelClosePlayer": "Đóng trình phát",
|
"LabelClosePlayer": "Đóng trình phát",
|
||||||
"LabelCodec": "Mã hóa",
|
"LabelCodec": "Mã hóa",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "Chỉnh Sửa",
|
"LabelEdit": "Chỉnh Sửa",
|
||||||
"LabelEmail": "Email",
|
"LabelEmail": "Email",
|
||||||
"LabelEmailSettingsFromAddress": "Địa chỉ Gửi từ",
|
"LabelEmailSettingsFromAddress": "Địa chỉ Gửi từ",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "Bảo Mật",
|
"LabelEmailSettingsSecure": "Bảo Mật",
|
||||||
"LabelEmailSettingsSecureHelp": "Nếu đúng thì kết nối sẽ sử dụng TLS khi kết nối đến máy chủ. Nếu sai thì TLS sẽ được sử dụng nếu máy chủ hỗ trợ phần mở rộng STARTTLS. Trong hầu hết các trường hợp, hãy đặt giá trị này là đúng nếu bạn kết nối đến cổng 465. Đối với cổng 587 hoặc 25, giữ nó sai. (từ nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "Nếu đúng thì kết nối sẽ sử dụng TLS khi kết nối đến máy chủ. Nếu sai thì TLS sẽ được sử dụng nếu máy chủ hỗ trợ phần mở rộng STARTTLS. Trong hầu hết các trường hợp, hãy đặt giá trị này là đúng nếu bạn kết nối đến cổng 465. Đối với cổng 587 hoặc 25, giữ nó sai. (từ nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "Địa Chỉ Kiểm Tra",
|
"LabelEmailSettingsTestAddress": "Địa Chỉ Kiểm Tra",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "Thư Mục",
|
"LabelFolder": "Thư Mục",
|
||||||
"LabelFolders": "Các Thư Mục",
|
"LabelFolders": "Các Thư Mục",
|
||||||
"LabelFontBold": "Đậm",
|
"LabelFontBold": "Đậm",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "Gia đình font",
|
"LabelFontFamily": "Gia đình font",
|
||||||
"LabelFontItalic": "Nghiêng",
|
"LabelFontItalic": "Nghiêng",
|
||||||
"LabelFontScale": "Tỷ lệ font",
|
"LabelFontScale": "Tỷ lệ font",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "Giờ",
|
"LabelHour": "Giờ",
|
||||||
"LabelIcon": "Biểu tượng",
|
"LabelIcon": "Biểu tượng",
|
||||||
"LabelImageURLFromTheWeb": "URL hình ảnh từ web",
|
"LabelImageURLFromTheWeb": "URL hình ảnh từ web",
|
||||||
|
"LabelInProgress": "Đang tiến hành",
|
||||||
"LabelIncludeInTracklist": "Bao gồm trong danh sách phát",
|
"LabelIncludeInTracklist": "Bao gồm trong danh sách phát",
|
||||||
"LabelIncomplete": "Chưa hoàn thành",
|
"LabelIncomplete": "Chưa hoàn thành",
|
||||||
"LabelInProgress": "Đang tiến hành",
|
|
||||||
"LabelInterval": "Khoảng cách",
|
"LabelInterval": "Khoảng cách",
|
||||||
"LabelIntervalCustomDailyWeekly": "Tuỳ chỉnh hàng ngày/hàng tuần",
|
"LabelIntervalCustomDailyWeekly": "Tuỳ chỉnh hàng ngày/hàng tuần",
|
||||||
"LabelIntervalEvery12Hours": "Mỗi 12 giờ",
|
"LabelIntervalEvery12Hours": "Mỗi 12 giờ",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "Mục",
|
"LabelItem": "Mục",
|
||||||
"LabelLanguage": "Ngôn ngữ",
|
"LabelLanguage": "Ngôn ngữ",
|
||||||
"LabelLanguageDefaultServer": "Ngôn ngữ Máy chủ mặc định",
|
"LabelLanguageDefaultServer": "Ngôn ngữ Máy chủ mặc định",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "Sách mới nhất được thêm",
|
"LabelLastBookAdded": "Sách mới nhất được thêm",
|
||||||
"LabelLastBookUpdated": "Sách mới nhất được cập nhật",
|
"LabelLastBookUpdated": "Sách mới nhất được cập nhật",
|
||||||
"LabelLastSeen": "Lần cuối nhìn thấy",
|
"LabelLastSeen": "Lần cuối nhìn thấy",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "Ít hơn",
|
"LabelLess": "Ít hơn",
|
||||||
"LabelLibrariesAccessibleToUser": "Thư viện có thể truy cập cho người dùng",
|
"LabelLibrariesAccessibleToUser": "Thư viện có thể truy cập cho người dùng",
|
||||||
"LabelLibrary": "Thư viện",
|
"LabelLibrary": "Thư viện",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "Mục thư viện",
|
"LabelLibraryItem": "Mục thư viện",
|
||||||
"LabelLibraryName": "Tên thư viện",
|
"LabelLibraryName": "Tên thư viện",
|
||||||
"LabelLimit": "Giới hạn",
|
"LabelLimit": "Giới hạn",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "Sử dụng để kết nối người dùng hiện có. Khi kết nối, người dùng sẽ được kết hợp bằng một ID duy nhất từ nhà cung cấp SSO của bạn",
|
"LabelMatchExistingUsersByDescription": "Sử dụng để kết nối người dùng hiện có. Khi kết nối, người dùng sẽ được kết hợp bằng một ID duy nhất từ nhà cung cấp SSO của bạn",
|
||||||
"LabelMediaPlayer": "Trình phát đa phương tiện",
|
"LabelMediaPlayer": "Trình phát đa phương tiện",
|
||||||
"LabelMediaType": "Loại phương tiện",
|
"LabelMediaType": "Loại phương tiện",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "Nguồn siêu dữ liệu ưu tiên cao hơn sẽ ghi đè lên các nguồn siêu dữ liệu ưu tiên thấp hơn",
|
|
||||||
"LabelMetadataProvider": "Nhà cung cấp siêu dữ liệu",
|
|
||||||
"LabelMetaTag": "Thẻ Meta",
|
"LabelMetaTag": "Thẻ Meta",
|
||||||
"LabelMetaTags": "Các thẻ Meta",
|
"LabelMetaTags": "Các thẻ Meta",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "Nguồn siêu dữ liệu ưu tiên cao hơn sẽ ghi đè lên các nguồn siêu dữ liệu ưu tiên thấp hơn",
|
||||||
|
"LabelMetadataProvider": "Nhà cung cấp siêu dữ liệu",
|
||||||
"LabelMinute": "Phút",
|
"LabelMinute": "Phút",
|
||||||
"LabelMissing": "Thiếu",
|
"LabelMissing": "Thiếu",
|
||||||
"LabelMissingEbook": "Không có ebook",
|
"LabelMissingEbook": "Không có ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "Người kể",
|
"LabelNarrator": "Người kể",
|
||||||
"LabelNarrators": "Các người kể",
|
"LabelNarrators": "Các người kể",
|
||||||
"LabelNew": "Mới",
|
"LabelNew": "Mới",
|
||||||
|
"LabelNewPassword": "Mật khẩu mới",
|
||||||
"LabelNewestAuthors": "Nhà văn mới nhất",
|
"LabelNewestAuthors": "Nhà văn mới nhất",
|
||||||
"LabelNewestEpisodes": "Tập mới nhất",
|
"LabelNewestEpisodes": "Tập mới nhất",
|
||||||
"LabelNewPassword": "Mật khẩu mới",
|
|
||||||
"LabelNextBackupDate": "Ngày sao lưu tiếp theo",
|
"LabelNextBackupDate": "Ngày sao lưu tiếp theo",
|
||||||
"LabelNextScheduledRun": "Chạy tiếp theo theo lịch trình",
|
"LabelNextScheduledRun": "Chạy tiếp theo theo lịch trình",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "Không có tập nào được chọn",
|
"LabelNoEpisodesSelected": "Không có tập nào được chọn",
|
||||||
"LabelNotes": "Ghi chú",
|
|
||||||
"LabelNotFinished": "Chưa hoàn thành",
|
"LabelNotFinished": "Chưa hoàn thành",
|
||||||
|
"LabelNotStarted": "Chưa bắt đầu",
|
||||||
|
"LabelNotes": "Ghi chú",
|
||||||
"LabelNotificationAppriseURL": "URL(s) thông báo",
|
"LabelNotificationAppriseURL": "URL(s) thông báo",
|
||||||
"LabelNotificationAvailableVariables": "Biến có sẵn",
|
"LabelNotificationAvailableVariables": "Biến có sẵn",
|
||||||
"LabelNotificationBodyTemplate": "Mẫu Nội dung",
|
"LabelNotificationBodyTemplate": "Mẫu Nội dung",
|
||||||
"LabelNotificationEvent": "Sự kiện Thông báo",
|
"LabelNotificationEvent": "Sự kiện Thông báo",
|
||||||
|
"LabelNotificationTitleTemplate": "Mẫu Tiêu đề",
|
||||||
"LabelNotificationsMaxFailedAttempts": "Số lần thất bại tối đa",
|
"LabelNotificationsMaxFailedAttempts": "Số lần thất bại tối đa",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "Thông báo sẽ bị vô hiệu hóa sau khi thất bại gửi số lần này",
|
"LabelNotificationsMaxFailedAttemptsHelp": "Thông báo sẽ bị vô hiệu hóa sau khi thất bại gửi số lần này",
|
||||||
"LabelNotificationsMaxQueueSize": "Kích thước hàng đợi tối đa cho sự kiện thông báo",
|
"LabelNotificationsMaxQueueSize": "Kích thước hàng đợi tối đa cho sự kiện thông báo",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "Các sự kiện bị giới hạn mỗi giây chỉ gửi 1 lần. Các sự kiện sẽ bị bỏ qua nếu hàng đợi đạt kích thước tối đa. Điều này ngăn chặn spam thông báo.",
|
"LabelNotificationsMaxQueueSizeHelp": "Các sự kiện bị giới hạn mỗi giây chỉ gửi 1 lần. Các sự kiện sẽ bị bỏ qua nếu hàng đợi đạt kích thước tối đa. Điều này ngăn chặn spam thông báo.",
|
||||||
"LabelNotificationTitleTemplate": "Mẫu Tiêu đề",
|
|
||||||
"LabelNotStarted": "Chưa bắt đầu",
|
|
||||||
"LabelNumberOfBooks": "Số lượng Sách",
|
"LabelNumberOfBooks": "Số lượng Sách",
|
||||||
"LabelNumberOfEpisodes": "# của Tập",
|
"LabelNumberOfEpisodes": "# của Tập",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "Có Thể Tải Lên",
|
"LabelPermissionsUpload": "Có Thể Tải Lên",
|
||||||
"LabelPersonalYearReview": "Năm của Bạn trong Bài Đánh Giá ({0})",
|
"LabelPersonalYearReview": "Năm của Bạn trong Bài Đánh Giá ({0})",
|
||||||
"LabelPhotoPathURL": "Đường dẫn/URL ảnh",
|
"LabelPhotoPathURL": "Đường dẫn/URL ảnh",
|
||||||
"LabelPlaylists": "Danh sách phát",
|
|
||||||
"LabelPlayMethod": "Phương pháp phát",
|
"LabelPlayMethod": "Phương pháp phát",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "Danh sách phát",
|
||||||
"LabelPodcast": "Podcast",
|
"LabelPodcast": "Podcast",
|
||||||
"LabelPodcasts": "Các podcast",
|
|
||||||
"LabelPodcastSearchRegion": "Vùng tìm kiếm podcast",
|
"LabelPodcastSearchRegion": "Vùng tìm kiếm podcast",
|
||||||
"LabelPodcastType": "Loại Podcast",
|
"LabelPodcastType": "Loại Podcast",
|
||||||
|
"LabelPodcasts": "Các podcast",
|
||||||
"LabelPort": "Cổng",
|
"LabelPort": "Cổng",
|
||||||
"LabelPrefixesToIgnore": "Tiền tố để bỏ qua (không phân biệt chữ hoa/chữ thường)",
|
"LabelPrefixesToIgnore": "Tiền tố để bỏ qua (không phân biệt chữ hoa/chữ thường)",
|
||||||
"LabelPreventIndexing": "Ngăn chặn feed của bạn được chỉ mục bởi thư mục podcast của iTunes và Google",
|
"LabelPreventIndexing": "Ngăn chặn feed của bạn được chỉ mục bởi thư mục podcast của iTunes và Google",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "Tiến độ",
|
"LabelProgress": "Tiến độ",
|
||||||
"LabelProvider": "Nhà cung cấp",
|
"LabelProvider": "Nhà cung cấp",
|
||||||
"LabelPubDate": "Ngày Xuất bản",
|
"LabelPubDate": "Ngày Xuất bản",
|
||||||
"LabelPublisher": "Nhà xuất bản",
|
|
||||||
"LabelPublishYear": "Năm Xuất bản",
|
"LabelPublishYear": "Năm Xuất bản",
|
||||||
"LabelRead": "Đọc",
|
"LabelPublisher": "Nhà xuất bản",
|
||||||
"LabelReadAgain": "Đọc lại",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "Đọc ebook mà không giữ tiến độ",
|
|
||||||
"LabelRecentlyAdded": "Gần đây thêm vào",
|
|
||||||
"LabelRecentSeries": "Loạt phim gần đây",
|
|
||||||
"LabelRecommended": "Được khuyến nghị",
|
|
||||||
"LabelRedo": "Làm lại",
|
|
||||||
"LabelRegion": "Khu vực",
|
|
||||||
"LabelReleaseDate": "Ngày Phát hành",
|
|
||||||
"LabelRemoveCover": "Xóa ảnh bìa",
|
|
||||||
"LabelRowsPerPage": "Số dòng mỗi trang",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "Email chủ sở hữu tùy chỉnh",
|
"LabelRSSFeedCustomOwnerEmail": "Email chủ sở hữu tùy chỉnh",
|
||||||
"LabelRSSFeedCustomOwnerName": "Tên chủ sở hữu tùy chỉnh",
|
"LabelRSSFeedCustomOwnerName": "Tên chủ sở hữu tùy chỉnh",
|
||||||
"LabelRSSFeedOpen": "Mở RSS Feed",
|
"LabelRSSFeedOpen": "Mở RSS Feed",
|
||||||
"LabelRSSFeedPreventIndexing": "Ngăn chặn Chỉ mục RSS Feed",
|
"LabelRSSFeedPreventIndexing": "Ngăn chặn Chỉ mục RSS Feed",
|
||||||
"LabelRSSFeedSlug": "Slug RSS Feed",
|
"LabelRSSFeedSlug": "Slug RSS Feed",
|
||||||
"LabelRSSFeedURL": "URL RSS Feed",
|
"LabelRSSFeedURL": "URL RSS Feed",
|
||||||
|
"LabelRead": "Đọc",
|
||||||
|
"LabelReadAgain": "Đọc lại",
|
||||||
|
"LabelReadEbookWithoutProgress": "Đọc ebook mà không giữ tiến độ",
|
||||||
|
"LabelRecentSeries": "Loạt phim gần đây",
|
||||||
|
"LabelRecentlyAdded": "Gần đây thêm vào",
|
||||||
|
"LabelRecommended": "Được khuyến nghị",
|
||||||
|
"LabelRedo": "Làm lại",
|
||||||
|
"LabelRegion": "Khu vực",
|
||||||
|
"LabelReleaseDate": "Ngày Phát hành",
|
||||||
|
"LabelRemoveCover": "Xóa ảnh bìa",
|
||||||
|
"LabelRowsPerPage": "Số dòng mỗi trang",
|
||||||
"LabelSearchTerm": "Thuật ngữ tìm kiếm",
|
"LabelSearchTerm": "Thuật ngữ tìm kiếm",
|
||||||
"LabelSearchTitle": "Tìm kiếm Tiêu đề",
|
"LabelSearchTitle": "Tìm kiếm Tiêu đề",
|
||||||
"LabelSearchTitleOrASIN": "Tìm kiếm Tiêu đề hoặc ASIN",
|
"LabelSearchTitleOrASIN": "Tìm kiếm Tiêu đề hoặc ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "Hẹn giờ tắt",
|
"LabelSleepTimer": "Hẹn giờ tắt",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "Bắt đầu",
|
"LabelStart": "Bắt đầu",
|
||||||
|
"LabelStartTime": "Thời gian bắt đầu",
|
||||||
"LabelStarted": "Đã bắt đầu",
|
"LabelStarted": "Đã bắt đầu",
|
||||||
"LabelStartedAt": "Bắt đầu vào",
|
"LabelStartedAt": "Bắt đầu vào",
|
||||||
"LabelStartTime": "Thời gian bắt đầu",
|
|
||||||
"LabelStatsAudioTracks": "Audio Tracks",
|
"LabelStatsAudioTracks": "Audio Tracks",
|
||||||
"LabelStatsAuthors": "Tác giả",
|
"LabelStatsAuthors": "Tác giả",
|
||||||
"LabelStatsBestDay": "Ngày tốt nhất",
|
"LabelStatsBestDay": "Ngày tốt nhất",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "Không xác định",
|
"LabelUnknown": "Không xác định",
|
||||||
"LabelUpdateCover": "Cập nhật ảnh bìa",
|
"LabelUpdateCover": "Cập nhật ảnh bìa",
|
||||||
"LabelUpdateCoverHelp": "Cho phép ghi đè lên các ảnh bìa hiện có cho các cuốn sách được chọn khi tìm thấy một kết hợp",
|
"LabelUpdateCoverHelp": "Cho phép ghi đè lên các ảnh bìa hiện có cho các cuốn sách được chọn khi tìm thấy một kết hợp",
|
||||||
"LabelUpdatedAt": "Cập nhật lúc",
|
|
||||||
"LabelUpdateDetails": "Cập nhật chi tiết",
|
"LabelUpdateDetails": "Cập nhật chi tiết",
|
||||||
"LabelUpdateDetailsHelp": "Cho phép ghi đè lên các chi tiết hiện có cho các cuốn sách được chọn khi tìm thấy một kết hợp",
|
"LabelUpdateDetailsHelp": "Cho phép ghi đè lên các chi tiết hiện có cho các cuốn sách được chọn khi tìm thấy một kết hợp",
|
||||||
|
"LabelUpdatedAt": "Cập nhật lúc",
|
||||||
"LabelUploaderDragAndDrop": "Kéo và thả tệp hoặc thư mục",
|
"LabelUploaderDragAndDrop": "Kéo và thả tệp hoặc thư mục",
|
||||||
"LabelUploaderDropFiles": "Thả tệp",
|
"LabelUploaderDropFiles": "Thả tệp",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "Tự động lấy tiêu đề, tác giả và loạt",
|
"LabelUploaderItemFetchMetadataHelp": "Tự động lấy tiêu đề, tác giả và loạt",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "Bản sao bao gồm người dùng, tiến độ của người dùng, chi tiết mục thư viện, cài đặt máy chủ và hình ảnh được lưu trữ trong <code>/metadata/items</code> & <code>/metadata/authors</code>. Bản sao <strong>không</strong> bao gồm bất kỳ tệp nào được lưu trữ trong các thư mục thư viện của bạn.",
|
"MessageBackupsDescription": "Bản sao bao gồm người dùng, tiến độ của người dùng, chi tiết mục thư viện, cài đặt máy chủ và hình ảnh được lưu trữ trong <code>/metadata/items</code> & <code>/metadata/authors</code>. Bản sao <strong>không</strong> bao gồm bất kỳ tệp nào được lưu trữ trong các thư mục thư viện của bạn.",
|
||||||
"MessageBatchQuickMatchDescription": "Quick Match sẽ cố gắng thêm các ảnh bìa và siêu dữ liệu bị thiếu cho các mục đã chọn. Bật các tùy chọn dưới đây để cho phép Quick Match ghi đè lên các ảnh bìa hiện có và / hoặc siêu dữ liệu.",
|
"MessageBatchQuickMatchDescription": "Quick Match sẽ cố gắng thêm các ảnh bìa và siêu dữ liệu bị thiếu cho các mục đã chọn. Bật các tùy chọn dưới đây để cho phép Quick Match ghi đè lên các ảnh bìa hiện có và / hoặc siêu dữ liệu.",
|
||||||
"MessageBookshelfNoCollections": "Bạn chưa tạo bất kỳ bộ sưu tập nào",
|
"MessageBookshelfNoCollections": "Bạn chưa tạo bất kỳ bộ sưu tập nào",
|
||||||
"MessageBookshelfNoResultsForFilter": "Không có Kết quả cho bộ lọc \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "Không có nguồn cung cấp RSS nào đang mở",
|
"MessageBookshelfNoRSSFeeds": "Không có nguồn cung cấp RSS nào đang mở",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "Không có Kết quả cho bộ lọc \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "Bạn không có bộ sách",
|
"MessageBookshelfNoSeries": "Bạn không có bộ sách",
|
||||||
"MessageChapterEndIsAfter": "Kết thúc chương sau khi kết thúc sách nói của bạn",
|
"MessageChapterEndIsAfter": "Kết thúc chương sau khi kết thúc sách nói của bạn",
|
||||||
"MessageChapterErrorFirstNotZero": "Chương đầu tiên phải bắt đầu từ 0",
|
"MessageChapterErrorFirstNotZero": "Chương đầu tiên phải bắt đầu từ 0",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "Bạn có chắc chắn muốn đánh dấu tất cả các sách trong loạt sách này đã kết thúc không?",
|
"MessageConfirmMarkSeriesFinished": "Bạn có chắc chắn muốn đánh dấu tất cả các sách trong loạt sách này đã kết thúc không?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "Bạn có chắc chắn muốn đánh dấu tất cả các sách trong loạt sách này chưa kết thúc không?",
|
"MessageConfirmMarkSeriesNotFinished": "Bạn có chắc chắn muốn đánh dấu tất cả các sách trong loạt sách này chưa kết thúc không?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "Cảnh báo! Quick embed sẽ không sao lưu các tệp âm thanh của bạn. Đảm bảo bạn có một bản sao lưu của các tệp âm thanh của bạn. <br><br>Bạn có muốn tiếp tục không?",
|
"MessageConfirmQuickEmbed": "Cảnh báo! Quick embed sẽ không sao lưu các tệp âm thanh của bạn. Đảm bảo bạn có một bản sao lưu của các tệp âm thanh của bạn. <br><br>Bạn có muốn tiếp tục không?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "Bạn có chắc chắn muốn quét lại {0} mục không?",
|
||||||
"MessageConfirmRemoveAllChapters": "Bạn có chắc chắn muốn xóa tất cả các chương không?",
|
"MessageConfirmRemoveAllChapters": "Bạn có chắc chắn muốn xóa tất cả các chương không?",
|
||||||
"MessageConfirmRemoveAuthor": "Bạn có chắc chắn muốn xóa tác giả \"{0}\" không?",
|
"MessageConfirmRemoveAuthor": "Bạn có chắc chắn muốn xóa tác giả \"{0}\" không?",
|
||||||
"MessageConfirmRemoveCollection": "Bạn có chắc chắn muốn xóa bộ sưu tập \"{0}\" không?",
|
"MessageConfirmRemoveCollection": "Bạn có chắc chắn muốn xóa bộ sưu tập \"{0}\" không?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "Bạn có chắc chắn muốn đổi tên tag \"{0}\" thành \"{1}\" cho tất cả các mục không?",
|
"MessageConfirmRenameTag": "Bạn có chắc chắn muốn đổi tên tag \"{0}\" thành \"{1}\" cho tất cả các mục không?",
|
||||||
"MessageConfirmRenameTagMergeNote": "Lưu ý: Thẻ này đã tồn tại nên chúng sẽ được hợp nhất.",
|
"MessageConfirmRenameTagMergeNote": "Lưu ý: Thẻ này đã tồn tại nên chúng sẽ được hợp nhất.",
|
||||||
"MessageConfirmRenameTagWarning": "Cảnh báo! Một thẻ tương tự với kiểu chữ khác đã tồn tại \"{0}\".",
|
"MessageConfirmRenameTagWarning": "Cảnh báo! Một thẻ tương tự với kiểu chữ khác đã tồn tại \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "Bạn có chắc chắn muốn quét lại {0} mục không?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "Bạn có chắc chắn muốn gửi {0} ebook \"{1}\" đến thiết bị \"{2}\" không?",
|
"MessageConfirmSendEbookToDevice": "Bạn có chắc chắn muốn gửi {0} ebook \"{1}\" đến thiết bị \"{2}\" không?",
|
||||||
"MessageDownloadingEpisode": "Đang tải tập phim",
|
"MessageDownloadingEpisode": "Đang tải tập phim",
|
||||||
"MessageDragFilesIntoTrackOrder": "Kéo tệp vào thứ tự track đúng",
|
"MessageDragFilesIntoTrackOrder": "Kéo tệp vào thứ tự track đúng",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "Không có Bộ",
|
"MessageNoSeries": "Không có Bộ",
|
||||||
"MessageNoTags": "Không có Thẻ",
|
"MessageNoTags": "Không có Thẻ",
|
||||||
"MessageNoTasksRunning": "Không có Công việc đang chạy",
|
"MessageNoTasksRunning": "Không có Công việc đang chạy",
|
||||||
"MessageNotYetImplemented": "Chưa được triển khai",
|
|
||||||
"MessageNoUpdateNecessary": "Không cần cập nhật",
|
"MessageNoUpdateNecessary": "Không cần cập nhật",
|
||||||
"MessageNoUpdatesWereNecessary": "Không cần cập nhật",
|
"MessageNoUpdatesWereNecessary": "Không cần cập nhật",
|
||||||
"MessageNoUserPlaylists": "Bạn chưa có danh sách phát",
|
"MessageNoUserPlaylists": "Bạn chưa có danh sách phát",
|
||||||
|
"MessageNotYetImplemented": "Chưa được triển khai",
|
||||||
"MessageOr": "hoặc",
|
"MessageOr": "hoặc",
|
||||||
"MessagePauseChapter": "Tạm dừng phát chương",
|
"MessagePauseChapter": "Tạm dừng phát chương",
|
||||||
"MessagePlayChapter": "Nghe từ đầu chương",
|
"MessagePlayChapter": "Nghe từ đầu chương",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "Danh sách phát đã được cập nhật",
|
"ToastPlaylistUpdateSuccess": "Danh sách phát đã được cập nhật",
|
||||||
"ToastPodcastCreateFailed": "Tạo podcast thất bại",
|
"ToastPodcastCreateFailed": "Tạo podcast thất bại",
|
||||||
"ToastPodcastCreateSuccess": "Podcast đã được tạo thành công",
|
"ToastPodcastCreateSuccess": "Podcast đã được tạo thành công",
|
||||||
"ToastRemoveItemFromCollectionFailed": "Xóa mục khỏi bộ sưu tập thất bại",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "Mục đã được xóa khỏi bộ sưu tập",
|
|
||||||
"ToastRSSFeedCloseFailed": "Đóng nguồn cấp RSS thất bại",
|
"ToastRSSFeedCloseFailed": "Đóng nguồn cấp RSS thất bại",
|
||||||
"ToastRSSFeedCloseSuccess": "Nguồn cấp RSS đã được đóng",
|
"ToastRSSFeedCloseSuccess": "Nguồn cấp RSS đã được đóng",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "Xóa mục khỏi bộ sưu tập thất bại",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "Mục đã được xóa khỏi bộ sưu tập",
|
||||||
"ToastSendEbookToDeviceFailed": "Gửi ebook đến thiết bị thất bại",
|
"ToastSendEbookToDeviceFailed": "Gửi ebook đến thiết bị thất bại",
|
||||||
"ToastSendEbookToDeviceSuccess": "Ebook đã được gửi đến thiết bị \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "Ebook đã được gửi đến thiết bị \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "Cập nhật loạt truyện thất bại",
|
"ToastSeriesUpdateFailed": "Cập nhật loạt truyện thất bại",
|
||||||
|
|||||||
+92
-79
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "应用",
|
"ButtonApply": "应用",
|
||||||
"ButtonApplyChapters": "应用到章节",
|
"ButtonApplyChapters": "应用到章节",
|
||||||
"ButtonAuthors": "作者",
|
"ButtonAuthors": "作者",
|
||||||
|
"ButtonBack": "返回",
|
||||||
"ButtonBrowseForFolder": "浏览文件夹",
|
"ButtonBrowseForFolder": "浏览文件夹",
|
||||||
"ButtonCancel": "取消",
|
"ButtonCancel": "取消",
|
||||||
"ButtonCancelEncode": "取消编码",
|
"ButtonCancelEncode": "取消编码",
|
||||||
@@ -56,13 +57,13 @@
|
|||||||
"ButtonPreviousChapter": "上一章节",
|
"ButtonPreviousChapter": "上一章节",
|
||||||
"ButtonPurgeAllCache": "清理所有缓存",
|
"ButtonPurgeAllCache": "清理所有缓存",
|
||||||
"ButtonPurgeItemsCache": "清理项目缓存",
|
"ButtonPurgeItemsCache": "清理项目缓存",
|
||||||
"ButtonPurgeMediaProgress": "清理媒体进度",
|
|
||||||
"ButtonQueueAddItem": "添加到队列",
|
"ButtonQueueAddItem": "添加到队列",
|
||||||
"ButtonQueueRemoveItem": "从队列中移除",
|
"ButtonQueueRemoveItem": "从队列中移除",
|
||||||
"ButtonQuickMatch": "快速匹配",
|
"ButtonQuickMatch": "快速匹配",
|
||||||
|
"ButtonReScan": "重新扫描",
|
||||||
"ButtonRead": "读取",
|
"ButtonRead": "读取",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "阅读更少",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "阅读更多",
|
||||||
"ButtonRefresh": "刷新",
|
"ButtonRefresh": "刷新",
|
||||||
"ButtonRemove": "移除",
|
"ButtonRemove": "移除",
|
||||||
"ButtonRemoveAll": "移除所有",
|
"ButtonRemoveAll": "移除所有",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "从继续收听中删除",
|
"ButtonRemoveFromContinueListening": "从继续收听中删除",
|
||||||
"ButtonRemoveFromContinueReading": "从继续阅读中删除",
|
"ButtonRemoveFromContinueReading": "从继续阅读中删除",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "从继续收听系列中删除",
|
"ButtonRemoveSeriesFromContinueSeries": "从继续收听系列中删除",
|
||||||
"ButtonReScan": "重新扫描",
|
|
||||||
"ButtonReset": "重置",
|
"ButtonReset": "重置",
|
||||||
"ButtonResetToDefault": "重置为默认",
|
"ButtonResetToDefault": "重置为默认",
|
||||||
"ButtonRestore": "恢复",
|
"ButtonRestore": "恢复",
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
"ButtonSelectFolderPath": "选择文件夹路径",
|
"ButtonSelectFolderPath": "选择文件夹路径",
|
||||||
"ButtonSeries": "系列",
|
"ButtonSeries": "系列",
|
||||||
"ButtonSetChaptersFromTracks": "将音轨设置为章节",
|
"ButtonSetChaptersFromTracks": "将音轨设置为章节",
|
||||||
"ButtonShare": "Share",
|
"ButtonShare": "分享",
|
||||||
"ButtonShiftTimes": "快速调整时间",
|
"ButtonShiftTimes": "快速调整时间",
|
||||||
"ButtonShow": "显示",
|
"ButtonShow": "显示",
|
||||||
"ButtonStartM4BEncode": "开始 M4B 编码",
|
"ButtonStartM4BEncode": "开始 M4B 编码",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "帐户",
|
"HeaderAccount": "帐户",
|
||||||
"HeaderAdvanced": "高级",
|
"HeaderAdvanced": "高级",
|
||||||
"HeaderAppriseNotificationSettings": "测试通知设置",
|
"HeaderAppriseNotificationSettings": "测试通知设置",
|
||||||
"HeaderAudiobookTools": "有声读物文件管理工具",
|
|
||||||
"HeaderAudioTracks": "音轨",
|
"HeaderAudioTracks": "音轨",
|
||||||
|
"HeaderAudiobookTools": "有声读物文件管理工具",
|
||||||
"HeaderAuthentication": "身份验证",
|
"HeaderAuthentication": "身份验证",
|
||||||
"HeaderBackups": "备份",
|
"HeaderBackups": "备份",
|
||||||
"HeaderChangePassword": "更改密码",
|
"HeaderChangePassword": "更改密码",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "收藏项目",
|
"HeaderCollectionItems": "收藏项目",
|
||||||
"HeaderCover": "封面",
|
"HeaderCover": "封面",
|
||||||
"HeaderCurrentDownloads": "当前下载",
|
"HeaderCurrentDownloads": "当前下载",
|
||||||
|
"HeaderCustomMessageOnLogin": "登录时的自定义消息",
|
||||||
"HeaderCustomMetadataProviders": "自定义元数据提供者",
|
"HeaderCustomMetadataProviders": "自定义元数据提供者",
|
||||||
"HeaderDetails": "详情",
|
"HeaderDetails": "详情",
|
||||||
"HeaderDownloadQueue": "下载队列",
|
"HeaderDownloadQueue": "下载队列",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "播放列表项目",
|
"HeaderPlaylistItems": "播放列表项目",
|
||||||
"HeaderPodcastsToAdd": "要添加的播客",
|
"HeaderPodcastsToAdd": "要添加的播客",
|
||||||
"HeaderPreviewCover": "预览封面",
|
"HeaderPreviewCover": "预览封面",
|
||||||
"HeaderRemoveEpisode": "移除剧集",
|
|
||||||
"HeaderRemoveEpisodes": "移除 {0} 剧集",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS 详细信息",
|
"HeaderRSSFeedGeneral": "RSS 详细信息",
|
||||||
"HeaderRSSFeedIsOpen": "RSS 源已打开",
|
"HeaderRSSFeedIsOpen": "RSS 源已打开",
|
||||||
"HeaderRSSFeeds": "RSS 订阅",
|
"HeaderRSSFeeds": "RSS 订阅",
|
||||||
|
"HeaderRemoveEpisode": "移除剧集",
|
||||||
|
"HeaderRemoveEpisodes": "移除 {0} 剧集",
|
||||||
"HeaderSavedMediaProgress": "保存媒体进度",
|
"HeaderSavedMediaProgress": "保存媒体进度",
|
||||||
"HeaderSchedule": "计划任务",
|
"HeaderSchedule": "计划任务",
|
||||||
"HeaderScheduleLibraryScans": "自动扫描媒体库",
|
"HeaderScheduleLibraryScans": "自动扫描媒体库",
|
||||||
@@ -189,20 +190,20 @@
|
|||||||
"HeaderYearReview": "{0} 年回顾",
|
"HeaderYearReview": "{0} 年回顾",
|
||||||
"HeaderYourStats": "你的统计数据",
|
"HeaderYourStats": "你的统计数据",
|
||||||
"LabelAbridged": "概要",
|
"LabelAbridged": "概要",
|
||||||
"LabelAbridgedChecked": "Abridged (checked)",
|
"LabelAbridgedChecked": "删节版 (已勾选)",
|
||||||
"LabelAbridgedUnchecked": "Unabridged (unchecked)",
|
"LabelAbridgedUnchecked": "未删节版 (未勾选)",
|
||||||
"LabelAccessibleBy": "Accessible by",
|
"LabelAccessibleBy": "可访问",
|
||||||
"LabelAccountType": "帐户类型",
|
"LabelAccountType": "帐户类型",
|
||||||
"LabelAccountTypeAdmin": "管理员",
|
"LabelAccountTypeAdmin": "管理员",
|
||||||
"LabelAccountTypeGuest": "来宾",
|
"LabelAccountTypeGuest": "来宾",
|
||||||
"LabelAccountTypeUser": "用户",
|
"LabelAccountTypeUser": "用户",
|
||||||
"LabelActivity": "活动",
|
"LabelActivity": "活动",
|
||||||
"LabelAdded": "添加",
|
|
||||||
"LabelAddedAt": "添加于",
|
|
||||||
"LabelAddToCollection": "添加到收藏",
|
"LabelAddToCollection": "添加到收藏",
|
||||||
"LabelAddToCollectionBatch": "批量添加 {0} 个媒体到收藏",
|
"LabelAddToCollectionBatch": "批量添加 {0} 个媒体到收藏",
|
||||||
"LabelAddToPlaylist": "添加到播放列表",
|
"LabelAddToPlaylist": "添加到播放列表",
|
||||||
"LabelAddToPlaylistBatch": "添加 {0} 个项目到播放列表",
|
"LabelAddToPlaylistBatch": "添加 {0} 个项目到播放列表",
|
||||||
|
"LabelAdded": "添加",
|
||||||
|
"LabelAddedAt": "添加于",
|
||||||
"LabelAdminUsersOnly": "仅限管理员用户",
|
"LabelAdminUsersOnly": "仅限管理员用户",
|
||||||
"LabelAll": "全部",
|
"LabelAll": "全部",
|
||||||
"LabelAllUsers": "所有用户",
|
"LabelAllUsers": "所有用户",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "修改密码",
|
"LabelChangePassword": "修改密码",
|
||||||
"LabelChannels": "声道",
|
"LabelChannels": "声道",
|
||||||
|
"LabelChapterTitle": "章节标题",
|
||||||
"LabelChapters": "章节",
|
"LabelChapters": "章节",
|
||||||
"LabelChaptersFound": "找到的章节",
|
"LabelChaptersFound": "找到的章节",
|
||||||
"LabelChapterTitle": "章节标题",
|
|
||||||
"LabelClickForMoreInfo": "点击了解更多信息",
|
"LabelClickForMoreInfo": "点击了解更多信息",
|
||||||
"LabelClosePlayer": "关闭播放器",
|
"LabelClosePlayer": "关闭播放器",
|
||||||
"LabelCodec": "编解码",
|
"LabelCodec": "编解码",
|
||||||
@@ -270,15 +271,17 @@
|
|||||||
"LabelDownload": "下载",
|
"LabelDownload": "下载",
|
||||||
"LabelDownloadNEpisodes": "下载 {0} 集",
|
"LabelDownloadNEpisodes": "下载 {0} 集",
|
||||||
"LabelDuration": "持续时间",
|
"LabelDuration": "持续时间",
|
||||||
"LabelDurationComparisonExactMatch": "(exact match)",
|
"LabelDurationComparisonExactMatch": "(完全匹配)",
|
||||||
"LabelDurationComparisonLonger": "({0} longer)",
|
"LabelDurationComparisonLonger": "({0} 更长)",
|
||||||
"LabelDurationComparisonShorter": "({0} shorter)",
|
"LabelDurationComparisonShorter": "({0} 更短)",
|
||||||
"LabelDurationFound": "找到持续时间:",
|
"LabelDurationFound": "找到持续时间:",
|
||||||
"LabelEbook": "电子书",
|
"LabelEbook": "电子书",
|
||||||
"LabelEbooks": "电子书",
|
"LabelEbooks": "电子书",
|
||||||
"LabelEdit": "编辑",
|
"LabelEdit": "编辑",
|
||||||
"LabelEmail": "邮箱",
|
"LabelEmail": "邮箱",
|
||||||
"LabelEmailSettingsFromAddress": "发件人地址",
|
"LabelEmailSettingsFromAddress": "发件人地址",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "拒绝未经授权的证书",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "禁用SSL证书验证可能会使你的连接面临安全风险, 例如中间人攻击. 只有当你了解其中的含义并信任所连接的邮件服务器时, 才能禁用此选项.",
|
||||||
"LabelEmailSettingsSecure": "安全",
|
"LabelEmailSettingsSecure": "安全",
|
||||||
"LabelEmailSettingsSecureHelp": "如果选是, 则连接将在连接到服务器时使用TLS. 如果选否, 则若服务器支持STARTTLS扩展, 则使用TLS. 在大多数情况下, 如果连接到端口465, 请将该值设置为是. 对于端口587或25, 请保持为否. (来自nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "如果选是, 则连接将在连接到服务器时使用TLS. 如果选否, 则若服务器支持STARTTLS扩展, 则使用TLS. 在大多数情况下, 如果连接到端口465, 请将该值设置为是. 对于端口587或25, 请保持为否. (来自nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "测试地址",
|
"LabelEmailSettingsTestAddress": "测试地址",
|
||||||
@@ -290,8 +293,8 @@
|
|||||||
"LabelEpisodeType": "剧集类型",
|
"LabelEpisodeType": "剧集类型",
|
||||||
"LabelExample": "示例",
|
"LabelExample": "示例",
|
||||||
"LabelExplicit": "信息准确",
|
"LabelExplicit": "信息准确",
|
||||||
"LabelExplicitChecked": "Explicit (checked)",
|
"LabelExplicitChecked": "明确(已选中)",
|
||||||
"LabelExplicitUnchecked": "Not Explicit (unchecked)",
|
"LabelExplicitUnchecked": "不明确 (未选中)",
|
||||||
"LabelFeedURL": "源 URL",
|
"LabelFeedURL": "源 URL",
|
||||||
"LabelFetchingMetadata": "正在获取元数据",
|
"LabelFetchingMetadata": "正在获取元数据",
|
||||||
"LabelFile": "文件",
|
"LabelFile": "文件",
|
||||||
@@ -303,7 +306,8 @@
|
|||||||
"LabelFinished": "已听完",
|
"LabelFinished": "已听完",
|
||||||
"LabelFolder": "文件夹",
|
"LabelFolder": "文件夹",
|
||||||
"LabelFolders": "文件夹",
|
"LabelFolders": "文件夹",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "加粗",
|
||||||
|
"LabelFontBoldness": "字体粗细",
|
||||||
"LabelFontFamily": "字体系列",
|
"LabelFontFamily": "字体系列",
|
||||||
"LabelFontItalic": "斜体",
|
"LabelFontItalic": "斜体",
|
||||||
"LabelFontScale": "字体比例",
|
"LabelFontScale": "字体比例",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "小时",
|
"LabelHour": "小时",
|
||||||
"LabelIcon": "图标",
|
"LabelIcon": "图标",
|
||||||
"LabelImageURLFromTheWeb": "来自 Web 图像的 URL",
|
"LabelImageURLFromTheWeb": "来自 Web 图像的 URL",
|
||||||
|
"LabelInProgress": "正在听",
|
||||||
"LabelIncludeInTracklist": "包含在音轨列表中",
|
"LabelIncludeInTracklist": "包含在音轨列表中",
|
||||||
"LabelIncomplete": "未听完",
|
"LabelIncomplete": "未听完",
|
||||||
"LabelInProgress": "正在听",
|
|
||||||
"LabelInterval": "间隔",
|
"LabelInterval": "间隔",
|
||||||
"LabelIntervalCustomDailyWeekly": "自定义 每天 / 每周",
|
"LabelIntervalCustomDailyWeekly": "自定义 每天 / 每周",
|
||||||
"LabelIntervalEvery12Hours": "每 12 小时",
|
"LabelIntervalEvery12Hours": "每 12 小时",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "项目",
|
"LabelItem": "项目",
|
||||||
"LabelLanguage": "语言",
|
"LabelLanguage": "语言",
|
||||||
"LabelLanguageDefaultServer": "默认服务器语言",
|
"LabelLanguageDefaultServer": "默认服务器语言",
|
||||||
|
"LabelLanguages": "语言",
|
||||||
"LabelLastBookAdded": "最后添加的书",
|
"LabelLastBookAdded": "最后添加的书",
|
||||||
"LabelLastBookUpdated": "最后更新的书",
|
"LabelLastBookUpdated": "最后更新的书",
|
||||||
"LabelLastSeen": "上次查看时间",
|
"LabelLastSeen": "上次查看时间",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "较少",
|
"LabelLess": "较少",
|
||||||
"LabelLibrariesAccessibleToUser": "用户可访问的媒体库",
|
"LabelLibrariesAccessibleToUser": "用户可访问的媒体库",
|
||||||
"LabelLibrary": "媒体库",
|
"LabelLibrary": "媒体库",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "媒体库项目",
|
"LabelLibraryItem": "媒体库项目",
|
||||||
"LabelLibraryName": "媒体库名称",
|
"LabelLibraryName": "媒体库名称",
|
||||||
"LabelLimit": "限制",
|
"LabelLimit": "限制",
|
||||||
@@ -360,40 +366,41 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "用于连接现有用户. 连接后, 用户将通过SSO提供商提供的唯一 id 进行匹配",
|
"LabelMatchExistingUsersByDescription": "用于连接现有用户. 连接后, 用户将通过SSO提供商提供的唯一 id 进行匹配",
|
||||||
"LabelMediaPlayer": "媒体播放器",
|
"LabelMediaPlayer": "媒体播放器",
|
||||||
"LabelMediaType": "媒体类型",
|
"LabelMediaType": "媒体类型",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "较高优先级的元数据源将覆盖较低优先级的元数据源",
|
|
||||||
"LabelMetadataProvider": "元数据提供者",
|
|
||||||
"LabelMetaTag": "元数据标签",
|
"LabelMetaTag": "元数据标签",
|
||||||
"LabelMetaTags": "元标签",
|
"LabelMetaTags": "元标签",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "较高优先级的元数据源将覆盖较低优先级的元数据源",
|
||||||
|
"LabelMetadataProvider": "元数据提供者",
|
||||||
"LabelMinute": "分钟",
|
"LabelMinute": "分钟",
|
||||||
"LabelMissing": "丢失",
|
"LabelMissing": "丢失",
|
||||||
"LabelMissingEbook": "没有电子书",
|
"LabelMissingEbook": "没有电子书",
|
||||||
"LabelMissingSupplementaryEbook": "没有补充电子书",
|
"LabelMissingSupplementaryEbook": "没有补充电子书",
|
||||||
"LabelMobileRedirectURIs": "允许移动应用重定向 URI",
|
"LabelMobileRedirectURIs": "允许移动应用重定向 URI",
|
||||||
"LabelMobileRedirectURIsDescription": "这是移动应用程序的有效重定向 URI 白名单. 默认值为 <code>audiobookshelf://oauth</code>,您可以删除它或添加其他 URI 以进行第三方应用集成. 使用星号 (<code>*</code>) 作为唯一条目允许任何 URI.",
|
"LabelMobileRedirectURIsDescription": "这是移动应用程序的有效重定向 URI 白名单. 默认值为 <code>audiobookshelf://oauth</code>,你可以删除它或添加其他 URI 以进行第三方应用集成. 使用星号 (<code>*</code>) 作为唯一条目允许任何 URI.",
|
||||||
"LabelMore": "更多",
|
"LabelMore": "更多",
|
||||||
"LabelMoreInfo": "更多..",
|
"LabelMoreInfo": "更多信息",
|
||||||
"LabelName": "名称",
|
"LabelName": "名称",
|
||||||
"LabelNarrator": "演播者",
|
"LabelNarrator": "演播者",
|
||||||
"LabelNarrators": "演播者",
|
"LabelNarrators": "演播者",
|
||||||
"LabelNew": "新建",
|
"LabelNew": "新建",
|
||||||
|
"LabelNewPassword": "新密码",
|
||||||
"LabelNewestAuthors": "最新作者",
|
"LabelNewestAuthors": "最新作者",
|
||||||
"LabelNewestEpisodes": "最新剧集",
|
"LabelNewestEpisodes": "最新剧集",
|
||||||
"LabelNewPassword": "新密码",
|
|
||||||
"LabelNextBackupDate": "下次备份日期",
|
"LabelNextBackupDate": "下次备份日期",
|
||||||
"LabelNextScheduledRun": "下次任务运行",
|
"LabelNextScheduledRun": "下次任务运行",
|
||||||
|
"LabelNoCustomMetadataProviders": "没有自定义元数据提供程序",
|
||||||
"LabelNoEpisodesSelected": "未选择任何剧集",
|
"LabelNoEpisodesSelected": "未选择任何剧集",
|
||||||
"LabelNotes": "注释",
|
|
||||||
"LabelNotFinished": "未听完",
|
"LabelNotFinished": "未听完",
|
||||||
|
"LabelNotStarted": "未开始",
|
||||||
|
"LabelNotes": "注释",
|
||||||
"LabelNotificationAppriseURL": "通知 URL(s)",
|
"LabelNotificationAppriseURL": "通知 URL(s)",
|
||||||
"LabelNotificationAvailableVariables": "可用变量",
|
"LabelNotificationAvailableVariables": "可用变量",
|
||||||
"LabelNotificationBodyTemplate": "正文模板",
|
"LabelNotificationBodyTemplate": "正文模板",
|
||||||
"LabelNotificationEvent": "通知事件",
|
"LabelNotificationEvent": "通知事件",
|
||||||
|
"LabelNotificationTitleTemplate": "标题模板",
|
||||||
"LabelNotificationsMaxFailedAttempts": "最大失败尝试次数",
|
"LabelNotificationsMaxFailedAttempts": "最大失败尝试次数",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "如果多次发送失败,通知将被禁用",
|
"LabelNotificationsMaxFailedAttemptsHelp": "如果多次发送失败,通知将被禁用",
|
||||||
"LabelNotificationsMaxQueueSize": "通知事件的最大队列大小",
|
"LabelNotificationsMaxQueueSize": "通知事件的最大队列大小",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "通知事件被限制为每秒触发 1 个. 如果队列处于最大大小, 则将忽略事件. 这可以防止通知垃圾邮件.",
|
"LabelNotificationsMaxQueueSizeHelp": "通知事件被限制为每秒触发 1 个. 如果队列处于最大大小, 则将忽略事件. 这可以防止通知垃圾邮件.",
|
||||||
"LabelNotificationTitleTemplate": "标题模板",
|
|
||||||
"LabelNotStarted": "未开始",
|
|
||||||
"LabelNumberOfBooks": "图书数量",
|
"LabelNumberOfBooks": "图书数量",
|
||||||
"LabelNumberOfEpisodes": "# 集",
|
"LabelNumberOfEpisodes": "# 集",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "OpenID 声明的名称, 该声明包含应用程序内用户操作的高级权限, 该权限将应用于非管理员角色(<b>如果已配置</b>). 如果响应中缺少声明, 获取 ABS 的权限将被拒绝. 如果缺少单个选项, 它将被视为 <code>禁用</code>. 确保身份提供者的声明与预期结构匹配:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "OpenID 声明的名称, 该声明包含应用程序内用户操作的高级权限, 该权限将应用于非管理员角色(<b>如果已配置</b>). 如果响应中缺少声明, 获取 ABS 的权限将被拒绝. 如果缺少单个选项, 它将被视为 <code>禁用</code>. 确保身份提供者的声明与预期结构匹配:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "可以上传",
|
"LabelPermissionsUpload": "可以上传",
|
||||||
"LabelPersonalYearReview": "你的年度回顾 ({0})",
|
"LabelPersonalYearReview": "你的年度回顾 ({0})",
|
||||||
"LabelPhotoPathURL": "图片路径或 URL",
|
"LabelPhotoPathURL": "图片路径或 URL",
|
||||||
"LabelPlaylists": "播放列表",
|
|
||||||
"LabelPlayMethod": "播放方法",
|
"LabelPlayMethod": "播放方法",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "播放列表",
|
||||||
"LabelPodcast": "播客",
|
"LabelPodcast": "播客",
|
||||||
"LabelPodcasts": "播客",
|
|
||||||
"LabelPodcastSearchRegion": "播客搜索地区",
|
"LabelPodcastSearchRegion": "播客搜索地区",
|
||||||
"LabelPodcastType": "播客类型",
|
"LabelPodcastType": "播客类型",
|
||||||
|
"LabelPodcasts": "播客",
|
||||||
"LabelPort": "端口",
|
"LabelPort": "端口",
|
||||||
"LabelPrefixesToIgnore": "忽略的前缀 (不区分大小写)",
|
"LabelPrefixesToIgnore": "忽略的前缀 (不区分大小写)",
|
||||||
"LabelPreventIndexing": "防止 iTunes 和 Google 播客目录对你的源进行索引",
|
"LabelPreventIndexing": "防止 iTunes 和 Google 播客目录对你的源进行索引",
|
||||||
@@ -425,30 +433,31 @@
|
|||||||
"LabelProgress": "进度",
|
"LabelProgress": "进度",
|
||||||
"LabelProvider": "供应商",
|
"LabelProvider": "供应商",
|
||||||
"LabelPubDate": "出版日期",
|
"LabelPubDate": "出版日期",
|
||||||
"LabelPublisher": "出版商",
|
|
||||||
"LabelPublishYear": "发布年份",
|
"LabelPublishYear": "发布年份",
|
||||||
"LabelRead": "阅读",
|
"LabelPublisher": "出版商",
|
||||||
"LabelReadAgain": "再次阅读",
|
"LabelPublishers": "出版商",
|
||||||
"LabelReadEbookWithoutProgress": "阅读电子书而不保存进度",
|
|
||||||
"LabelRecentlyAdded": "最近添加",
|
|
||||||
"LabelRecentSeries": "最近添加系列",
|
|
||||||
"LabelRecommended": "推荐内容",
|
|
||||||
"LabelRedo": "Redo",
|
|
||||||
"LabelRegion": "区域",
|
|
||||||
"LabelReleaseDate": "发布日期",
|
|
||||||
"LabelRemoveCover": "移除封面",
|
|
||||||
"LabelRowsPerPage": "每页行数",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "自定义所有者电子邮件",
|
"LabelRSSFeedCustomOwnerEmail": "自定义所有者电子邮件",
|
||||||
"LabelRSSFeedCustomOwnerName": "自定义所有者名称",
|
"LabelRSSFeedCustomOwnerName": "自定义所有者名称",
|
||||||
"LabelRSSFeedOpen": "打开 RSS 源",
|
"LabelRSSFeedOpen": "打开 RSS 源",
|
||||||
"LabelRSSFeedPreventIndexing": "防止索引",
|
"LabelRSSFeedPreventIndexing": "防止索引",
|
||||||
"LabelRSSFeedSlug": "RSS 源段",
|
"LabelRSSFeedSlug": "RSS 源段",
|
||||||
"LabelRSSFeedURL": "RSS 源 URL",
|
"LabelRSSFeedURL": "RSS 源 URL",
|
||||||
|
"LabelRead": "阅读",
|
||||||
|
"LabelReadAgain": "再次阅读",
|
||||||
|
"LabelReadEbookWithoutProgress": "阅读电子书而不保存进度",
|
||||||
|
"LabelRecentSeries": "最近添加系列",
|
||||||
|
"LabelRecentlyAdded": "最近添加",
|
||||||
|
"LabelRecommended": "推荐内容",
|
||||||
|
"LabelRedo": "重做",
|
||||||
|
"LabelRegion": "区域",
|
||||||
|
"LabelReleaseDate": "发布日期",
|
||||||
|
"LabelRemoveCover": "移除封面",
|
||||||
|
"LabelRowsPerPage": "每页行数",
|
||||||
"LabelSearchTerm": "搜索项",
|
"LabelSearchTerm": "搜索项",
|
||||||
"LabelSearchTitle": "搜索标题",
|
"LabelSearchTitle": "搜索标题",
|
||||||
"LabelSearchTitleOrASIN": "搜索标题或 ASIN",
|
"LabelSearchTitleOrASIN": "搜索标题或 ASIN",
|
||||||
"LabelSeason": "季",
|
"LabelSeason": "季",
|
||||||
"LabelSelectAll": "Select all",
|
"LabelSelectAll": "全选",
|
||||||
"LabelSelectAllEpisodes": "选择所有剧集",
|
"LabelSelectAllEpisodes": "选择所有剧集",
|
||||||
"LabelSelectEpisodesShowing": "选择正在播放的 {0} 剧集",
|
"LabelSelectEpisodesShowing": "选择正在播放的 {0} 剧集",
|
||||||
"LabelSelectUsers": "选择用户",
|
"LabelSelectUsers": "选择用户",
|
||||||
@@ -471,8 +480,8 @@
|
|||||||
"LabelSettingsEnableWatcher": "启用监视程序",
|
"LabelSettingsEnableWatcher": "启用监视程序",
|
||||||
"LabelSettingsEnableWatcherForLibrary": "为库启用文件夹监视程序",
|
"LabelSettingsEnableWatcherForLibrary": "为库启用文件夹监视程序",
|
||||||
"LabelSettingsEnableWatcherHelp": "当检测到文件更改时, 启用项目的自动添加/更新. *需要重新启动服务器",
|
"LabelSettingsEnableWatcherHelp": "当检测到文件更改时, 启用项目的自动添加/更新. *需要重新启动服务器",
|
||||||
"LabelSettingsEpubsAllowScriptedContent": "Allow scripted content in epubs",
|
"LabelSettingsEpubsAllowScriptedContent": "允许 epubs 中包含脚本内容",
|
||||||
"LabelSettingsEpubsAllowScriptedContentHelp": "Allow epub files to execute scripts. It is recommended to keep this setting disabled unless you trust the source of the epub files.",
|
"LabelSettingsEpubsAllowScriptedContentHelp": "允许 epub 文件执行脚本. 建议将此设置保持禁用, 除非你信任 epub 文件的来源.",
|
||||||
"LabelSettingsExperimentalFeatures": "实验功能",
|
"LabelSettingsExperimentalFeatures": "实验功能",
|
||||||
"LabelSettingsExperimentalFeaturesHelp": "开发中的功能需要你的反馈并帮助测试. 点击打开 github 讨论.",
|
"LabelSettingsExperimentalFeaturesHelp": "开发中的功能需要你的反馈并帮助测试. 点击打开 github 讨论.",
|
||||||
"LabelSettingsFindCovers": "查找封面",
|
"LabelSettingsFindCovers": "查找封面",
|
||||||
@@ -499,14 +508,14 @@
|
|||||||
"LabelSettingsStoreMetadataWithItemHelp": "默认情况下元数据文件存储在/metadata/items文件夹中, 启用此设置将存储元数据在你媒体项目文件夹中",
|
"LabelSettingsStoreMetadataWithItemHelp": "默认情况下元数据文件存储在/metadata/items文件夹中, 启用此设置将存储元数据在你媒体项目文件夹中",
|
||||||
"LabelSettingsTimeFormat": "时间格式",
|
"LabelSettingsTimeFormat": "时间格式",
|
||||||
"LabelShowAll": "全部显示",
|
"LabelShowAll": "全部显示",
|
||||||
"LabelShowSeconds": "Show seconds",
|
"LabelShowSeconds": "显示秒数",
|
||||||
"LabelSize": "文件大小",
|
"LabelSize": "文件大小",
|
||||||
"LabelSleepTimer": "睡眠定时",
|
"LabelSleepTimer": "睡眠定时",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "开始",
|
"LabelStart": "开始",
|
||||||
|
"LabelStartTime": "开始时间",
|
||||||
"LabelStarted": "开始于",
|
"LabelStarted": "开始于",
|
||||||
"LabelStartedAt": "从这开始",
|
"LabelStartedAt": "从这开始",
|
||||||
"LabelStartTime": "开始时间",
|
|
||||||
"LabelStatsAudioTracks": "音轨",
|
"LabelStatsAudioTracks": "音轨",
|
||||||
"LabelStatsAuthors": "作者",
|
"LabelStatsAuthors": "作者",
|
||||||
"LabelStatsBestDay": "最好的一天",
|
"LabelStatsBestDay": "最好的一天",
|
||||||
@@ -558,13 +567,13 @@
|
|||||||
"LabelTracksSingleTrack": "单轨",
|
"LabelTracksSingleTrack": "单轨",
|
||||||
"LabelType": "类型",
|
"LabelType": "类型",
|
||||||
"LabelUnabridged": "未删节",
|
"LabelUnabridged": "未删节",
|
||||||
"LabelUndo": "Undo",
|
"LabelUndo": "撤消",
|
||||||
"LabelUnknown": "未知",
|
"LabelUnknown": "未知",
|
||||||
"LabelUpdateCover": "更新封面",
|
"LabelUpdateCover": "更新封面",
|
||||||
"LabelUpdateCoverHelp": "找到匹配项时允许覆盖所选书籍存在的封面",
|
"LabelUpdateCoverHelp": "找到匹配项时允许覆盖所选书籍存在的封面",
|
||||||
"LabelUpdatedAt": "更新时间",
|
|
||||||
"LabelUpdateDetails": "更新详细信息",
|
"LabelUpdateDetails": "更新详细信息",
|
||||||
"LabelUpdateDetailsHelp": "找到匹配项时允许覆盖所选书籍存在的详细信息",
|
"LabelUpdateDetailsHelp": "找到匹配项时允许覆盖所选书籍存在的详细信息",
|
||||||
|
"LabelUpdatedAt": "更新时间",
|
||||||
"LabelUploaderDragAndDrop": "拖放文件或文件夹",
|
"LabelUploaderDragAndDrop": "拖放文件或文件夹",
|
||||||
"LabelUploaderDropFiles": "删除文件",
|
"LabelUploaderDropFiles": "删除文件",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "自动获取标题, 作者和系列",
|
"LabelUploaderItemFetchMetadataHelp": "自动获取标题, 作者和系列",
|
||||||
@@ -586,12 +595,15 @@
|
|||||||
"LabelYourPlaylists": "你的播放列表",
|
"LabelYourPlaylists": "你的播放列表",
|
||||||
"LabelYourProgress": "你的进度",
|
"LabelYourProgress": "你的进度",
|
||||||
"MessageAddToPlayerQueue": "添加到播放队列",
|
"MessageAddToPlayerQueue": "添加到播放队列",
|
||||||
"MessageAppriseDescription": "要使用此功能,您需要运行一个 <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> 实例或一个可以处理这些相同请求的 API. <br />Apprise API Url 应该是发送通知的完整 URL 路径, 例如: 如果你的 API 实例运行在 <code>http://192.168.1.1:8337</code>, 那么你可以输入 <code>http://192.168.1.1:8337/notify</code>.",
|
"MessageAppriseDescription": "要使用此功能,你需要运行一个 <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> 实例或一个可以处理这些相同请求的 API. <br />Apprise API Url 应该是发送通知的完整 URL 路径, 例如: 如果你的 API 实例运行在 <code>http://192.168.1.1:8337</code>, 那么你可以输入 <code>http://192.168.1.1:8337/notify</code>.",
|
||||||
"MessageBackupsDescription": "备份包括用户, 用户进度, 媒体库项目详细信息, 服务器设置和图像, 存储在 <code>/metadata/items</code> & <code>/metadata/authors</code>. 备份不包括存储在您的媒体库文件夹中的任何文件.",
|
"MessageBackupsDescription": "备份包括用户, 用户进度, 媒体库项目详细信息, 服务器设置和图像, 存储在 <code>/metadata/items</code> & <code>/metadata/authors</code>. 备份不包括存储在你的媒体库文件夹中的任何文件.",
|
||||||
|
"MessageBackupsLocationEditNote": "注意: 更新备份位置不会移动或修改现有备份",
|
||||||
|
"MessageBackupsLocationPathEmpty": "备份位置路径不能为空",
|
||||||
"MessageBatchQuickMatchDescription": "快速匹配将尝试为所选项目添加缺少的封面和元数据. 启用以下选项以允许快速匹配覆盖现有封面和或元数据.",
|
"MessageBatchQuickMatchDescription": "快速匹配将尝试为所选项目添加缺少的封面和元数据. 启用以下选项以允许快速匹配覆盖现有封面和或元数据.",
|
||||||
"MessageBookshelfNoCollections": "你尚未进行任何收藏",
|
"MessageBookshelfNoCollections": "你尚未进行任何收藏",
|
||||||
"MessageBookshelfNoResultsForFilter": "过滤器无结果 \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "没有打开的 RSS 源",
|
"MessageBookshelfNoRSSFeeds": "没有打开的 RSS 源",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "过滤器无结果 \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "没有可查询的结果",
|
||||||
"MessageBookshelfNoSeries": "你没有系列",
|
"MessageBookshelfNoSeries": "你没有系列",
|
||||||
"MessageChapterEndIsAfter": "章节结束是在有声读物结束之后",
|
"MessageChapterEndIsAfter": "章节结束是在有声读物结束之后",
|
||||||
"MessageChapterErrorFirstNotZero": "第一章节必须从 0 开始",
|
"MessageChapterErrorFirstNotZero": "第一章节必须从 0 开始",
|
||||||
@@ -611,8 +623,10 @@
|
|||||||
"MessageConfirmMarkAllEpisodesNotFinished": "你确定要将所有剧集都标记为未完成吗?",
|
"MessageConfirmMarkAllEpisodesNotFinished": "你确定要将所有剧集都标记为未完成吗?",
|
||||||
"MessageConfirmMarkSeriesFinished": "你确定要将此系列中的所有书籍都标记为已听完吗?",
|
"MessageConfirmMarkSeriesFinished": "你确定要将此系列中的所有书籍都标记为已听完吗?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "你确定要将此系列中的所有书籍都标记为未听完吗?",
|
"MessageConfirmMarkSeriesNotFinished": "你确定要将此系列中的所有书籍都标记为未听完吗?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "清除缓存将删除 <code>/metadata/cache</code> 整个目录. <br /><br />你确定要删除缓存目录吗?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "清除项目缓存将删除 <code>/metadata/cache/items</code> 整个目录.<br />你确定吗?",
|
||||||
"MessageConfirmQuickEmbed": "警告! 快速嵌入不会备份你的音频文件. 确保你有音频文件的备份. <br><br>你是否想继续吗?",
|
"MessageConfirmQuickEmbed": "警告! 快速嵌入不会备份你的音频文件. 确保你有音频文件的备份. <br><br>你是否想继续吗?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "你确定要重新扫描 {0} 个项目吗?",
|
||||||
"MessageConfirmRemoveAllChapters": "你确定要移除所有章节吗?",
|
"MessageConfirmRemoveAllChapters": "你确定要移除所有章节吗?",
|
||||||
"MessageConfirmRemoveAuthor": "你确定要删除作者 \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "你确定要删除作者 \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "你确定要移除收藏 \"{0}\"?",
|
"MessageConfirmRemoveCollection": "你确定要移除收藏 \"{0}\"?",
|
||||||
@@ -627,13 +641,12 @@
|
|||||||
"MessageConfirmRenameTag": "你确定要将所有项目标签 \"{0}\" 重命名到 \"{1}\"?",
|
"MessageConfirmRenameTag": "你确定要将所有项目标签 \"{0}\" 重命名到 \"{1}\"?",
|
||||||
"MessageConfirmRenameTagMergeNote": "注意: 该标签已经存在, 因此它们将被合并.",
|
"MessageConfirmRenameTagMergeNote": "注意: 该标签已经存在, 因此它们将被合并.",
|
||||||
"MessageConfirmRenameTagWarning": "警告! 已经存在有大小写不同的类似标签 \"{0}\".",
|
"MessageConfirmRenameTagWarning": "警告! 已经存在有大小写不同的类似标签 \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "你确定要重新扫描 {0} 个项目吗?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "你确定要发送 {0} 电子书 \"{1}\" 到设备 \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "你确定要发送 {0} 电子书 \"{1}\" 到设备 \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "正在下载剧集",
|
"MessageDownloadingEpisode": "正在下载剧集",
|
||||||
"MessageDragFilesIntoTrackOrder": "将文件拖动到正确的音轨顺序",
|
"MessageDragFilesIntoTrackOrder": "将文件拖动到正确的音轨顺序",
|
||||||
"MessageEmbedFinished": "嵌入完成!",
|
"MessageEmbedFinished": "嵌入完成!",
|
||||||
"MessageEpisodesQueuedForDownload": "{0} 个剧集排队等待下载",
|
"MessageEpisodesQueuedForDownload": "{0} 个剧集排队等待下载",
|
||||||
"MessageEreaderDevices": "To ensure delivery of ebooks, you may need to add the above email address as a valid sender for each device listed below.",
|
"MessageEreaderDevices": "为了确保电子书的送达, 你可能需要将上述电子邮件地址添加为下列每台设备的有效发件人.",
|
||||||
"MessageFeedURLWillBe": "源 URL 将改为 {0}",
|
"MessageFeedURLWillBe": "源 URL 将改为 {0}",
|
||||||
"MessageFetching": "正在获取...",
|
"MessageFetching": "正在获取...",
|
||||||
"MessageForceReScanDescription": "将像重新扫描一样再次扫描所有文件. 音频文件 ID3 标签, OPF 文件和文本文件将被扫描为新文件.",
|
"MessageForceReScanDescription": "将像重新扫描一样再次扫描所有文件. 音频文件 ID3 标签, OPF 文件和文本文件将被扫描为新文件.",
|
||||||
@@ -643,9 +656,9 @@
|
|||||||
"MessageItemsUpdated": "已更新 {0} 个项目",
|
"MessageItemsUpdated": "已更新 {0} 个项目",
|
||||||
"MessageJoinUsOn": "加入我们",
|
"MessageJoinUsOn": "加入我们",
|
||||||
"MessageListeningSessionsInTheLastYear": "去年收听 {0} 个会话",
|
"MessageListeningSessionsInTheLastYear": "去年收听 {0} 个会话",
|
||||||
"MessageLoading": "加载...",
|
"MessageLoading": "正在加载...",
|
||||||
"MessageLoadingFolders": "加载文件夹...",
|
"MessageLoadingFolders": "加载文件夹...",
|
||||||
"MessageLogsDescription": "Logs are stored in <code>/metadata/logs</code> as JSON files. Crash logs are stored in <code>/metadata/logs/crash_logs.txt</code>.",
|
"MessageLogsDescription": "日志以 JSON 文件形式存储在 <code>/metadata/logs</code> 目录中. 崩溃日志存储在 <code>/metadata/logs/crash_logs.txt</code> 目录中.",
|
||||||
"MessageM4BFailed": "M4B 失败!",
|
"MessageM4BFailed": "M4B 失败!",
|
||||||
"MessageM4BFinished": "M4B 完成!",
|
"MessageM4BFinished": "M4B 完成!",
|
||||||
"MessageMapChapterTitles": "将章节标题映射到现有的有声读物章节, 无需调整时间戳",
|
"MessageMapChapterTitles": "将章节标题映射到现有的有声读物章节, 无需调整时间戳",
|
||||||
@@ -681,10 +694,10 @@
|
|||||||
"MessageNoSeries": "无系列",
|
"MessageNoSeries": "无系列",
|
||||||
"MessageNoTags": "无标签",
|
"MessageNoTags": "无标签",
|
||||||
"MessageNoTasksRunning": "没有正在运行的任务",
|
"MessageNoTasksRunning": "没有正在运行的任务",
|
||||||
"MessageNotYetImplemented": "尚未实施",
|
|
||||||
"MessageNoUpdateNecessary": "无需更新",
|
"MessageNoUpdateNecessary": "无需更新",
|
||||||
"MessageNoUpdatesWereNecessary": "无需更新",
|
"MessageNoUpdatesWereNecessary": "无需更新",
|
||||||
"MessageNoUserPlaylists": "你没有播放列表",
|
"MessageNoUserPlaylists": "你没有播放列表",
|
||||||
|
"MessageNotYetImplemented": "尚未实施",
|
||||||
"MessageOr": "或",
|
"MessageOr": "或",
|
||||||
"MessagePauseChapter": "暂停章节播放",
|
"MessagePauseChapter": "暂停章节播放",
|
||||||
"MessagePlayChapter": "开始章节播放",
|
"MessagePlayChapter": "开始章节播放",
|
||||||
@@ -698,9 +711,9 @@
|
|||||||
"MessageReportBugsAndContribute": "报告错误、请求功能和贡献在",
|
"MessageReportBugsAndContribute": "报告错误、请求功能和贡献在",
|
||||||
"MessageResetChaptersConfirm": "你确定要重置章节并撤消你所做的更改吗?",
|
"MessageResetChaptersConfirm": "你确定要重置章节并撤消你所做的更改吗?",
|
||||||
"MessageRestoreBackupConfirm": "你确定要恢复创建的这个备份",
|
"MessageRestoreBackupConfirm": "你确定要恢复创建的这个备份",
|
||||||
"MessageRestoreBackupWarning": "恢复备份将覆盖位于 /config 的整个数据库并覆盖 /metadata/items & /metadata/authors 中的图像.<br /><br />备份不会修改媒体库文件夹中的任何文件. 如果您已启用服务器设置将封面和元数据存储在库文件夹中,则不会备份或覆盖这些内容.<br /><br />将自动刷新使用服务器的所有客户端.",
|
"MessageRestoreBackupWarning": "恢复备份将覆盖位于 /config 的整个数据库并覆盖 /metadata/items & /metadata/authors 中的图像.<br /><br />备份不会修改媒体库文件夹中的任何文件. 如果你已启用服务器设置将封面和元数据存储在库文件夹中,则不会备份或覆盖这些内容.<br /><br />将自动刷新使用服务器的所有客户端.",
|
||||||
"MessageSearchResultsFor": "搜索结果",
|
"MessageSearchResultsFor": "搜索结果",
|
||||||
"MessageSelected": "{0} selected",
|
"MessageSelected": "{0} 已选择",
|
||||||
"MessageServerCouldNotBeReached": "无法访问服务器",
|
"MessageServerCouldNotBeReached": "无法访问服务器",
|
||||||
"MessageSetChaptersFromTracksDescription": "把每个音频文件设置为章节并将章节标题设置为音频文件名",
|
"MessageSetChaptersFromTracksDescription": "把每个音频文件设置为章节并将章节标题设置为音频文件名",
|
||||||
"MessageStartPlaybackAtTime": "开始播放 \"{0}\" 在 {1}?",
|
"MessageStartPlaybackAtTime": "开始播放 \"{0}\" 在 {1}?",
|
||||||
@@ -711,13 +724,13 @@
|
|||||||
"MessageValidCronExpression": "有效的计划任务表达式",
|
"MessageValidCronExpression": "有效的计划任务表达式",
|
||||||
"MessageWatcherIsDisabledGlobally": "在服务器设置中禁用全局监视程序",
|
"MessageWatcherIsDisabledGlobally": "在服务器设置中禁用全局监视程序",
|
||||||
"MessageXLibraryIsEmpty": "{0} 库为空!",
|
"MessageXLibraryIsEmpty": "{0} 库为空!",
|
||||||
"MessageYourAudiobookDurationIsLonger": "您的有声读物持续时间比找到的持续时间长",
|
"MessageYourAudiobookDurationIsLonger": "你的有声读物持续时间比找到的持续时间长",
|
||||||
"MessageYourAudiobookDurationIsShorter": "您的有声读物持续时间比找到的持续时间短",
|
"MessageYourAudiobookDurationIsShorter": "你的有声读物持续时间比找到的持续时间短",
|
||||||
"NoteChangeRootPassword": "Root 是唯一可以拥有空密码的用户",
|
"NoteChangeRootPassword": "Root 是唯一可以拥有空密码的用户",
|
||||||
"NoteChapterEditorTimes": "注意: 第一章开始时间必须保持在 0:00, 最后一章开始时间不能超过有声读物持续时间.",
|
"NoteChapterEditorTimes": "注意: 第一章开始时间必须保持在 0:00, 最后一章开始时间不能超过有声读物持续时间.",
|
||||||
"NoteFolderPicker": "注意: 将不显示已映射的文件夹",
|
"NoteFolderPicker": "注意: 将不显示已映射的文件夹",
|
||||||
"NoteRSSFeedPodcastAppsHttps": "警告: 大多数播客应用程序都需要 RSS 源 URL 使用 HTTPS",
|
"NoteRSSFeedPodcastAppsHttps": "警告: 大多数播客应用程序都需要 RSS 源 URL 使用 HTTPS",
|
||||||
"NoteRSSFeedPodcastAppsPubDate": "警告: 您的一集或多集没有发布日期. 一些播客应用程序要求这样做.",
|
"NoteRSSFeedPodcastAppsPubDate": "警告: 你的一集或多集没有发布日期. 一些播客应用程序要求这样做.",
|
||||||
"NoteUploaderFoldersWithMediaFiles": "包含媒体文件的文件夹将作为单独的媒体库项目处理.",
|
"NoteUploaderFoldersWithMediaFiles": "包含媒体文件的文件夹将作为单独的媒体库项目处理.",
|
||||||
"NoteUploaderOnlyAudioFiles": "如果只上传音频文件, 则每个音频文件将作为单独的有声读物处理.",
|
"NoteUploaderOnlyAudioFiles": "如果只上传音频文件, 则每个音频文件将作为单独的有声读物处理.",
|
||||||
"NoteUploaderUnsupportedFiles": "不支持的文件将被忽略. 选择或删除文件夹时, 将忽略不在项目文件夹中的其他文件.",
|
"NoteUploaderUnsupportedFiles": "不支持的文件将被忽略. 选择或删除文件夹时, 将忽略不在项目文件夹中的其他文件.",
|
||||||
@@ -749,8 +762,8 @@
|
|||||||
"ToastBookmarkRemoveSuccess": "书签已删除",
|
"ToastBookmarkRemoveSuccess": "书签已删除",
|
||||||
"ToastBookmarkUpdateFailed": "书签更新失败",
|
"ToastBookmarkUpdateFailed": "书签更新失败",
|
||||||
"ToastBookmarkUpdateSuccess": "书签已更新",
|
"ToastBookmarkUpdateSuccess": "书签已更新",
|
||||||
"ToastCachePurgeFailed": "Failed to purge cache",
|
"ToastCachePurgeFailed": "清除缓存失败",
|
||||||
"ToastCachePurgeSuccess": "Cache purged successfully",
|
"ToastCachePurgeSuccess": "缓存清除成功",
|
||||||
"ToastChaptersHaveErrors": "章节有错误",
|
"ToastChaptersHaveErrors": "章节有错误",
|
||||||
"ToastChaptersMustHaveTitles": "章节必须有标题",
|
"ToastChaptersMustHaveTitles": "章节必须有标题",
|
||||||
"ToastCollectionItemsRemoveFailed": "从收藏夹移除项目失败",
|
"ToastCollectionItemsRemoveFailed": "从收藏夹移除项目失败",
|
||||||
@@ -759,17 +772,17 @@
|
|||||||
"ToastCollectionRemoveSuccess": "收藏夹已删除",
|
"ToastCollectionRemoveSuccess": "收藏夹已删除",
|
||||||
"ToastCollectionUpdateFailed": "更新收藏夹失败",
|
"ToastCollectionUpdateFailed": "更新收藏夹失败",
|
||||||
"ToastCollectionUpdateSuccess": "收藏夹已更新",
|
"ToastCollectionUpdateSuccess": "收藏夹已更新",
|
||||||
"ToastDeleteFileFailed": "Failed to delete file",
|
"ToastDeleteFileFailed": "删除文件失败",
|
||||||
"ToastDeleteFileSuccess": "File deleted",
|
"ToastDeleteFileSuccess": "文件已删除",
|
||||||
"ToastFailedToLoadData": "Failed to load data",
|
"ToastFailedToLoadData": "加载数据失败",
|
||||||
"ToastItemCoverUpdateFailed": "更新项目封面失败",
|
"ToastItemCoverUpdateFailed": "更新项目封面失败",
|
||||||
"ToastItemCoverUpdateSuccess": "项目封面已更新",
|
"ToastItemCoverUpdateSuccess": "项目封面已更新",
|
||||||
"ToastItemDetailsUpdateFailed": "更新项目详细信息失败",
|
"ToastItemDetailsUpdateFailed": "更新项目详细信息失败",
|
||||||
"ToastItemDetailsUpdateSuccess": "项目详细信息已更新",
|
"ToastItemDetailsUpdateSuccess": "项目详细信息已更新",
|
||||||
"ToastItemDetailsUpdateUnneeded": "项目详细信息无需更新",
|
"ToastItemDetailsUpdateUnneeded": "项目详细信息无需更新",
|
||||||
"ToastItemMarkedAsFinishedFailed": "标记为听完失败",
|
"ToastItemMarkedAsFinishedFailed": "无法标记为已听完",
|
||||||
"ToastItemMarkedAsFinishedSuccess": "标记为听完的项目",
|
"ToastItemMarkedAsFinishedSuccess": "标记为已听完的项目",
|
||||||
"ToastItemMarkedAsNotFinishedFailed": "标记为未听完失败",
|
"ToastItemMarkedAsNotFinishedFailed": "无法标记为未听完",
|
||||||
"ToastItemMarkedAsNotFinishedSuccess": "标记为未听完的项目",
|
"ToastItemMarkedAsNotFinishedSuccess": "标记为未听完的项目",
|
||||||
"ToastLibraryCreateFailed": "创建媒体库失败",
|
"ToastLibraryCreateFailed": "创建媒体库失败",
|
||||||
"ToastLibraryCreateSuccess": "媒体库 \"{0}\" 创建成功",
|
"ToastLibraryCreateSuccess": "媒体库 \"{0}\" 创建成功",
|
||||||
@@ -787,24 +800,24 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "播放列表已更新",
|
"ToastPlaylistUpdateSuccess": "播放列表已更新",
|
||||||
"ToastPodcastCreateFailed": "创建播客失败",
|
"ToastPodcastCreateFailed": "创建播客失败",
|
||||||
"ToastPodcastCreateSuccess": "已成功创建播客",
|
"ToastPodcastCreateSuccess": "已成功创建播客",
|
||||||
"ToastRemoveItemFromCollectionFailed": "从收藏中删除项目失败",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "项目已从收藏中删除",
|
|
||||||
"ToastRSSFeedCloseFailed": "关闭 RSS 源失败",
|
"ToastRSSFeedCloseFailed": "关闭 RSS 源失败",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS 源已关闭",
|
"ToastRSSFeedCloseSuccess": "RSS 源已关闭",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "从收藏中删除项目失败",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "项目已从收藏中删除",
|
||||||
"ToastSendEbookToDeviceFailed": "发送电子书到设备失败",
|
"ToastSendEbookToDeviceFailed": "发送电子书到设备失败",
|
||||||
"ToastSendEbookToDeviceSuccess": "电子书已经发送到设备 \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "电子书已经发送到设备 \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "更新系列失败",
|
"ToastSeriesUpdateFailed": "更新系列失败",
|
||||||
"ToastSeriesUpdateSuccess": "系列已更新",
|
"ToastSeriesUpdateSuccess": "系列已更新",
|
||||||
"ToastServerSettingsUpdateFailed": "Failed to update server settings",
|
"ToastServerSettingsUpdateFailed": "无法更新服务器设置",
|
||||||
"ToastServerSettingsUpdateSuccess": "Server settings updated",
|
"ToastServerSettingsUpdateSuccess": "服务器设置已更新",
|
||||||
"ToastSessionDeleteFailed": "删除会话失败",
|
"ToastSessionDeleteFailed": "删除会话失败",
|
||||||
"ToastSessionDeleteSuccess": "会话已删除",
|
"ToastSessionDeleteSuccess": "会话已删除",
|
||||||
"ToastSocketConnected": "网络已连接",
|
"ToastSocketConnected": "网络已连接",
|
||||||
"ToastSocketDisconnected": "网络已断开",
|
"ToastSocketDisconnected": "网络已断开",
|
||||||
"ToastSocketFailedToConnect": "网络连接失败",
|
"ToastSocketFailedToConnect": "网络连接失败",
|
||||||
"ToastSortingPrefixesEmptyError": "Must have at least 1 sorting prefix",
|
"ToastSortingPrefixesEmptyError": "必须至少有 1 个排序前缀",
|
||||||
"ToastSortingPrefixesUpdateFailed": "Failed to update sorting prefixes",
|
"ToastSortingPrefixesUpdateFailed": "无法更新排序前缀",
|
||||||
"ToastSortingPrefixesUpdateSuccess": "Sorting prefixes updated ({0} items)",
|
"ToastSortingPrefixesUpdateSuccess": "排序前缀已更新 ({0} 项)",
|
||||||
"ToastUserDeleteFailed": "删除用户失败",
|
"ToastUserDeleteFailed": "删除用户失败",
|
||||||
"ToastUserDeleteSuccess": "用户已删除"
|
"ToastUserDeleteSuccess": "用户已删除"
|
||||||
}
|
}
|
||||||
+47
-36
@@ -9,6 +9,7 @@
|
|||||||
"ButtonApply": "應用",
|
"ButtonApply": "應用",
|
||||||
"ButtonApplyChapters": "應用到章節",
|
"ButtonApplyChapters": "應用到章節",
|
||||||
"ButtonAuthors": "作者",
|
"ButtonAuthors": "作者",
|
||||||
|
"ButtonBack": "Back",
|
||||||
"ButtonBrowseForFolder": "瀏覽資料夾",
|
"ButtonBrowseForFolder": "瀏覽資料夾",
|
||||||
"ButtonCancel": "取消",
|
"ButtonCancel": "取消",
|
||||||
"ButtonCancelEncode": "取消編碼",
|
"ButtonCancelEncode": "取消編碼",
|
||||||
@@ -56,10 +57,10 @@
|
|||||||
"ButtonPreviousChapter": "過去的章節",
|
"ButtonPreviousChapter": "過去的章節",
|
||||||
"ButtonPurgeAllCache": "清理所有快取",
|
"ButtonPurgeAllCache": "清理所有快取",
|
||||||
"ButtonPurgeItemsCache": "清理項目快取",
|
"ButtonPurgeItemsCache": "清理項目快取",
|
||||||
"ButtonPurgeMediaProgress": "清理媒體進度",
|
|
||||||
"ButtonQueueAddItem": "新增到佇列",
|
"ButtonQueueAddItem": "新增到佇列",
|
||||||
"ButtonQueueRemoveItem": "從佇列中移除",
|
"ButtonQueueRemoveItem": "從佇列中移除",
|
||||||
"ButtonQuickMatch": "快速匹配",
|
"ButtonQuickMatch": "快速匹配",
|
||||||
|
"ButtonReScan": "重新掃描",
|
||||||
"ButtonRead": "讀取",
|
"ButtonRead": "讀取",
|
||||||
"ButtonReadLess": "Read less",
|
"ButtonReadLess": "Read less",
|
||||||
"ButtonReadMore": "Read more",
|
"ButtonReadMore": "Read more",
|
||||||
@@ -70,7 +71,6 @@
|
|||||||
"ButtonRemoveFromContinueListening": "從繼續收聽中刪除",
|
"ButtonRemoveFromContinueListening": "從繼續收聽中刪除",
|
||||||
"ButtonRemoveFromContinueReading": "從繼續閱讀中刪除",
|
"ButtonRemoveFromContinueReading": "從繼續閱讀中刪除",
|
||||||
"ButtonRemoveSeriesFromContinueSeries": "從繼續收聽系列中刪除",
|
"ButtonRemoveSeriesFromContinueSeries": "從繼續收聽系列中刪除",
|
||||||
"ButtonReScan": "重新掃描",
|
|
||||||
"ButtonReset": "重置",
|
"ButtonReset": "重置",
|
||||||
"ButtonResetToDefault": "重置為預設",
|
"ButtonResetToDefault": "重置為預設",
|
||||||
"ButtonRestore": "恢復",
|
"ButtonRestore": "恢復",
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
"HeaderAccount": "帳號",
|
"HeaderAccount": "帳號",
|
||||||
"HeaderAdvanced": "高級",
|
"HeaderAdvanced": "高級",
|
||||||
"HeaderAppriseNotificationSettings": "測試通知設定",
|
"HeaderAppriseNotificationSettings": "測試通知設定",
|
||||||
"HeaderAudiobookTools": "有聲書檔案管理工具",
|
|
||||||
"HeaderAudioTracks": "音軌",
|
"HeaderAudioTracks": "音軌",
|
||||||
|
"HeaderAudiobookTools": "有聲書檔案管理工具",
|
||||||
"HeaderAuthentication": "身份驗證",
|
"HeaderAuthentication": "身份驗證",
|
||||||
"HeaderBackups": "備份",
|
"HeaderBackups": "備份",
|
||||||
"HeaderChangePassword": "更改密碼",
|
"HeaderChangePassword": "更改密碼",
|
||||||
@@ -115,6 +115,7 @@
|
|||||||
"HeaderCollectionItems": "收藏項目",
|
"HeaderCollectionItems": "收藏項目",
|
||||||
"HeaderCover": "封面",
|
"HeaderCover": "封面",
|
||||||
"HeaderCurrentDownloads": "當前下載",
|
"HeaderCurrentDownloads": "當前下載",
|
||||||
|
"HeaderCustomMessageOnLogin": "Custom Message on Login",
|
||||||
"HeaderCustomMetadataProviders": "自訂 Metadata 提供者",
|
"HeaderCustomMetadataProviders": "自訂 Metadata 提供者",
|
||||||
"HeaderDetails": "詳情",
|
"HeaderDetails": "詳情",
|
||||||
"HeaderDownloadQueue": "下載佇列",
|
"HeaderDownloadQueue": "下載佇列",
|
||||||
@@ -157,11 +158,11 @@
|
|||||||
"HeaderPlaylistItems": "播放列表項目",
|
"HeaderPlaylistItems": "播放列表項目",
|
||||||
"HeaderPodcastsToAdd": "要新增的播客",
|
"HeaderPodcastsToAdd": "要新增的播客",
|
||||||
"HeaderPreviewCover": "預覽封面",
|
"HeaderPreviewCover": "預覽封面",
|
||||||
"HeaderRemoveEpisode": "移除劇集",
|
|
||||||
"HeaderRemoveEpisodes": "移除 {0} 劇集",
|
|
||||||
"HeaderRSSFeedGeneral": "RSS 詳細信息",
|
"HeaderRSSFeedGeneral": "RSS 詳細信息",
|
||||||
"HeaderRSSFeedIsOpen": "RSS 源已打開",
|
"HeaderRSSFeedIsOpen": "RSS 源已打開",
|
||||||
"HeaderRSSFeeds": "RSS 訂閱",
|
"HeaderRSSFeeds": "RSS 訂閱",
|
||||||
|
"HeaderRemoveEpisode": "移除劇集",
|
||||||
|
"HeaderRemoveEpisodes": "移除 {0} 劇集",
|
||||||
"HeaderSavedMediaProgress": "保存媒體進度",
|
"HeaderSavedMediaProgress": "保存媒體進度",
|
||||||
"HeaderSchedule": "計劃任務",
|
"HeaderSchedule": "計劃任務",
|
||||||
"HeaderScheduleLibraryScans": "自動掃描媒體庫",
|
"HeaderScheduleLibraryScans": "自動掃描媒體庫",
|
||||||
@@ -197,12 +198,12 @@
|
|||||||
"LabelAccountTypeGuest": "來賓",
|
"LabelAccountTypeGuest": "來賓",
|
||||||
"LabelAccountTypeUser": "使用者",
|
"LabelAccountTypeUser": "使用者",
|
||||||
"LabelActivity": "活動",
|
"LabelActivity": "活動",
|
||||||
"LabelAdded": "新增",
|
|
||||||
"LabelAddedAt": "新增於",
|
|
||||||
"LabelAddToCollection": "新增到收藏",
|
"LabelAddToCollection": "新增到收藏",
|
||||||
"LabelAddToCollectionBatch": "批量新增 {0} 個媒體到收藏",
|
"LabelAddToCollectionBatch": "批量新增 {0} 個媒體到收藏",
|
||||||
"LabelAddToPlaylist": "新增到播放列表",
|
"LabelAddToPlaylist": "新增到播放列表",
|
||||||
"LabelAddToPlaylistBatch": "新增 {0} 個項目到播放列表",
|
"LabelAddToPlaylistBatch": "新增 {0} 個項目到播放列表",
|
||||||
|
"LabelAdded": "新增",
|
||||||
|
"LabelAddedAt": "新增於",
|
||||||
"LabelAdminUsersOnly": "僅限管理員使用者",
|
"LabelAdminUsersOnly": "僅限管理員使用者",
|
||||||
"LabelAll": "全部",
|
"LabelAll": "全部",
|
||||||
"LabelAllUsers": "所有使用者",
|
"LabelAllUsers": "所有使用者",
|
||||||
@@ -235,9 +236,9 @@
|
|||||||
"LabelByAuthor": "by {0}",
|
"LabelByAuthor": "by {0}",
|
||||||
"LabelChangePassword": "修改密碼",
|
"LabelChangePassword": "修改密碼",
|
||||||
"LabelChannels": "聲道",
|
"LabelChannels": "聲道",
|
||||||
|
"LabelChapterTitle": "章節標題",
|
||||||
"LabelChapters": "章節",
|
"LabelChapters": "章節",
|
||||||
"LabelChaptersFound": "找到的章節",
|
"LabelChaptersFound": "找到的章節",
|
||||||
"LabelChapterTitle": "章節標題",
|
|
||||||
"LabelClickForMoreInfo": "點擊了解更多資訊",
|
"LabelClickForMoreInfo": "點擊了解更多資訊",
|
||||||
"LabelClosePlayer": "關閉播放器",
|
"LabelClosePlayer": "關閉播放器",
|
||||||
"LabelCodec": "編解碼",
|
"LabelCodec": "編解碼",
|
||||||
@@ -279,6 +280,8 @@
|
|||||||
"LabelEdit": "編輯",
|
"LabelEdit": "編輯",
|
||||||
"LabelEmail": "郵箱",
|
"LabelEmail": "郵箱",
|
||||||
"LabelEmailSettingsFromAddress": "發件人位址",
|
"LabelEmailSettingsFromAddress": "發件人位址",
|
||||||
|
"LabelEmailSettingsRejectUnauthorized": "Reject unauthorized certificates",
|
||||||
|
"LabelEmailSettingsRejectUnauthorizedHelp": "Disabling SSL certificate validation may expose your connection to security risks, such as man-in-the-middle attacks. Only disable this option if you understand the implications and trust the mail server you are connecting to.",
|
||||||
"LabelEmailSettingsSecure": "安全",
|
"LabelEmailSettingsSecure": "安全",
|
||||||
"LabelEmailSettingsSecureHelp": "如果選是, 則連接將在連接到伺服器時使用TLS. 如果選否, 則若伺服器支援STARTTLS擴展, 則使用TLS. 在大多數情況下, 如果連接到465埠, 請將該值設定為是. 對於587或25埠, 請保持為否. (來自nodemailer.com/smtp/#authentication)",
|
"LabelEmailSettingsSecureHelp": "如果選是, 則連接將在連接到伺服器時使用TLS. 如果選否, 則若伺服器支援STARTTLS擴展, 則使用TLS. 在大多數情況下, 如果連接到465埠, 請將該值設定為是. 對於587或25埠, 請保持為否. (來自nodemailer.com/smtp/#authentication)",
|
||||||
"LabelEmailSettingsTestAddress": "測試位址",
|
"LabelEmailSettingsTestAddress": "測試位址",
|
||||||
@@ -304,6 +307,7 @@
|
|||||||
"LabelFolder": "資料夾",
|
"LabelFolder": "資料夾",
|
||||||
"LabelFolders": "資料夾",
|
"LabelFolders": "資料夾",
|
||||||
"LabelFontBold": "Bold",
|
"LabelFontBold": "Bold",
|
||||||
|
"LabelFontBoldness": "Font Boldness",
|
||||||
"LabelFontFamily": "字體系列",
|
"LabelFontFamily": "字體系列",
|
||||||
"LabelFontItalic": "斜體",
|
"LabelFontItalic": "斜體",
|
||||||
"LabelFontScale": "字體比例",
|
"LabelFontScale": "字體比例",
|
||||||
@@ -319,9 +323,9 @@
|
|||||||
"LabelHour": "小時",
|
"LabelHour": "小時",
|
||||||
"LabelIcon": "圖標",
|
"LabelIcon": "圖標",
|
||||||
"LabelImageURLFromTheWeb": "來自 Web 圖像的 URL",
|
"LabelImageURLFromTheWeb": "來自 Web 圖像的 URL",
|
||||||
|
"LabelInProgress": "正在聽",
|
||||||
"LabelIncludeInTracklist": "包含在音軌列表中",
|
"LabelIncludeInTracklist": "包含在音軌列表中",
|
||||||
"LabelIncomplete": "未聽完",
|
"LabelIncomplete": "未聽完",
|
||||||
"LabelInProgress": "正在聽",
|
|
||||||
"LabelInterval": "間隔",
|
"LabelInterval": "間隔",
|
||||||
"LabelIntervalCustomDailyWeekly": "自定義 每天 / 每周",
|
"LabelIntervalCustomDailyWeekly": "自定義 每天 / 每周",
|
||||||
"LabelIntervalEvery12Hours": "每 12 小時",
|
"LabelIntervalEvery12Hours": "每 12 小時",
|
||||||
@@ -335,6 +339,7 @@
|
|||||||
"LabelItem": "項目",
|
"LabelItem": "項目",
|
||||||
"LabelLanguage": "語言",
|
"LabelLanguage": "語言",
|
||||||
"LabelLanguageDefaultServer": "預設伺服器語言",
|
"LabelLanguageDefaultServer": "預設伺服器語言",
|
||||||
|
"LabelLanguages": "Languages",
|
||||||
"LabelLastBookAdded": "最後新增的書",
|
"LabelLastBookAdded": "最後新增的書",
|
||||||
"LabelLastBookUpdated": "最後更新的書",
|
"LabelLastBookUpdated": "最後更新的書",
|
||||||
"LabelLastSeen": "上次查看時間",
|
"LabelLastSeen": "上次查看時間",
|
||||||
@@ -346,6 +351,7 @@
|
|||||||
"LabelLess": "較少",
|
"LabelLess": "較少",
|
||||||
"LabelLibrariesAccessibleToUser": "使用者可存取的媒體庫",
|
"LabelLibrariesAccessibleToUser": "使用者可存取的媒體庫",
|
||||||
"LabelLibrary": "媒體庫",
|
"LabelLibrary": "媒體庫",
|
||||||
|
"LabelLibraryFilterSublistEmpty": "No {0}",
|
||||||
"LabelLibraryItem": "媒體庫項目",
|
"LabelLibraryItem": "媒體庫項目",
|
||||||
"LabelLibraryName": "媒體庫名稱",
|
"LabelLibraryName": "媒體庫名稱",
|
||||||
"LabelLimit": "限制",
|
"LabelLimit": "限制",
|
||||||
@@ -360,10 +366,10 @@
|
|||||||
"LabelMatchExistingUsersByDescription": "用於連接現有使用者. 連接後, 使用者將通過SSO提供商提供的唯一 id 進行匹配",
|
"LabelMatchExistingUsersByDescription": "用於連接現有使用者. 連接後, 使用者將通過SSO提供商提供的唯一 id 進行匹配",
|
||||||
"LabelMediaPlayer": "媒體播放器",
|
"LabelMediaPlayer": "媒體播放器",
|
||||||
"LabelMediaType": "媒體類型",
|
"LabelMediaType": "媒體類型",
|
||||||
"LabelMetadataOrderOfPrecedenceDescription": "較高優先級的元數據源將覆蓋較低優先級的元數據源",
|
|
||||||
"LabelMetadataProvider": "元數據提供者",
|
|
||||||
"LabelMetaTag": "元數據標籤",
|
"LabelMetaTag": "元數據標籤",
|
||||||
"LabelMetaTags": "元標籤",
|
"LabelMetaTags": "元標籤",
|
||||||
|
"LabelMetadataOrderOfPrecedenceDescription": "較高優先級的元數據源將覆蓋較低優先級的元數據源",
|
||||||
|
"LabelMetadataProvider": "元數據提供者",
|
||||||
"LabelMinute": "分鐘",
|
"LabelMinute": "分鐘",
|
||||||
"LabelMissing": "丟失",
|
"LabelMissing": "丟失",
|
||||||
"LabelMissingEbook": "Has no ebook",
|
"LabelMissingEbook": "Has no ebook",
|
||||||
@@ -376,24 +382,25 @@
|
|||||||
"LabelNarrator": "講述者",
|
"LabelNarrator": "講述者",
|
||||||
"LabelNarrators": "講述者",
|
"LabelNarrators": "講述者",
|
||||||
"LabelNew": "新建",
|
"LabelNew": "新建",
|
||||||
|
"LabelNewPassword": "新密碼",
|
||||||
"LabelNewestAuthors": "最新作者",
|
"LabelNewestAuthors": "最新作者",
|
||||||
"LabelNewestEpisodes": "最新劇集",
|
"LabelNewestEpisodes": "最新劇集",
|
||||||
"LabelNewPassword": "新密碼",
|
|
||||||
"LabelNextBackupDate": "下次備份日期",
|
"LabelNextBackupDate": "下次備份日期",
|
||||||
"LabelNextScheduledRun": "下次任務運行",
|
"LabelNextScheduledRun": "下次任務運行",
|
||||||
|
"LabelNoCustomMetadataProviders": "No custom metadata providers",
|
||||||
"LabelNoEpisodesSelected": "未選擇任何劇集",
|
"LabelNoEpisodesSelected": "未選擇任何劇集",
|
||||||
"LabelNotes": "注釋",
|
|
||||||
"LabelNotFinished": "未聽完",
|
"LabelNotFinished": "未聽完",
|
||||||
|
"LabelNotStarted": "未開始",
|
||||||
|
"LabelNotes": "注釋",
|
||||||
"LabelNotificationAppriseURL": "通知 URL(s)",
|
"LabelNotificationAppriseURL": "通知 URL(s)",
|
||||||
"LabelNotificationAvailableVariables": "可用變量",
|
"LabelNotificationAvailableVariables": "可用變量",
|
||||||
"LabelNotificationBodyTemplate": "正文模板",
|
"LabelNotificationBodyTemplate": "正文模板",
|
||||||
"LabelNotificationEvent": "通知事件",
|
"LabelNotificationEvent": "通知事件",
|
||||||
|
"LabelNotificationTitleTemplate": "標題模板",
|
||||||
"LabelNotificationsMaxFailedAttempts": "最大失敗嘗試次數",
|
"LabelNotificationsMaxFailedAttempts": "最大失敗嘗試次數",
|
||||||
"LabelNotificationsMaxFailedAttemptsHelp": "如果多次發送失敗,通知將被禁用",
|
"LabelNotificationsMaxFailedAttemptsHelp": "如果多次發送失敗,通知將被禁用",
|
||||||
"LabelNotificationsMaxQueueSize": "通知事件的最大佇列大小",
|
"LabelNotificationsMaxQueueSize": "通知事件的最大佇列大小",
|
||||||
"LabelNotificationsMaxQueueSizeHelp": "通知事件被限制為每秒觸發 1 個. 如果佇列處於最大大小, 則將忽略事件. 這可以防止通知垃圾郵件.",
|
"LabelNotificationsMaxQueueSizeHelp": "通知事件被限制為每秒觸發 1 個. 如果佇列處於最大大小, 則將忽略事件. 這可以防止通知垃圾郵件.",
|
||||||
"LabelNotificationTitleTemplate": "標題模板",
|
|
||||||
"LabelNotStarted": "未開始",
|
|
||||||
"LabelNumberOfBooks": "圖書數量",
|
"LabelNumberOfBooks": "圖書數量",
|
||||||
"LabelNumberOfEpisodes": "# 集",
|
"LabelNumberOfEpisodes": "# 集",
|
||||||
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
"LabelOpenIDAdvancedPermsClaimDescription": "Name of the OpenID claim that contains advanced permissions for user actions within the application which will apply to non-admin roles (<b>if configured</b>). If the claim is missing from the response, access to ABS will be denied. If a single option is missing, it will be treated as <code>false</code>. Ensure the identity provider's claim matches the expected structure:",
|
||||||
@@ -412,12 +419,13 @@
|
|||||||
"LabelPermissionsUpload": "可以上傳",
|
"LabelPermissionsUpload": "可以上傳",
|
||||||
"LabelPersonalYearReview": "你的年度回顧 ({0})",
|
"LabelPersonalYearReview": "你的年度回顧 ({0})",
|
||||||
"LabelPhotoPathURL": "圖片路徑或 URL",
|
"LabelPhotoPathURL": "圖片路徑或 URL",
|
||||||
"LabelPlaylists": "播放列表",
|
|
||||||
"LabelPlayMethod": "播放方法",
|
"LabelPlayMethod": "播放方法",
|
||||||
|
"LabelPlayerChapterNumberMarker": "{0} of {1}",
|
||||||
|
"LabelPlaylists": "播放列表",
|
||||||
"LabelPodcast": "播客",
|
"LabelPodcast": "播客",
|
||||||
"LabelPodcasts": "播客",
|
|
||||||
"LabelPodcastSearchRegion": "播客搜尋地區",
|
"LabelPodcastSearchRegion": "播客搜尋地區",
|
||||||
"LabelPodcastType": "播客類型",
|
"LabelPodcastType": "播客類型",
|
||||||
|
"LabelPodcasts": "播客",
|
||||||
"LabelPort": "埠",
|
"LabelPort": "埠",
|
||||||
"LabelPrefixesToIgnore": "忽略的前綴 (不區分大小寫)",
|
"LabelPrefixesToIgnore": "忽略的前綴 (不區分大小寫)",
|
||||||
"LabelPreventIndexing": "防止 iTunes 和 Google 播客目錄對你的源進行索引",
|
"LabelPreventIndexing": "防止 iTunes 和 Google 播客目錄對你的源進行索引",
|
||||||
@@ -425,25 +433,26 @@
|
|||||||
"LabelProgress": "進度",
|
"LabelProgress": "進度",
|
||||||
"LabelProvider": "供應商",
|
"LabelProvider": "供應商",
|
||||||
"LabelPubDate": "出版日期",
|
"LabelPubDate": "出版日期",
|
||||||
"LabelPublisher": "出版商",
|
|
||||||
"LabelPublishYear": "發布年份",
|
"LabelPublishYear": "發布年份",
|
||||||
"LabelRead": "閱讀",
|
"LabelPublisher": "出版商",
|
||||||
"LabelReadAgain": "再次閱讀",
|
"LabelPublishers": "Publishers",
|
||||||
"LabelReadEbookWithoutProgress": "閱讀電子書而不保存進度",
|
|
||||||
"LabelRecentlyAdded": "最近新增",
|
|
||||||
"LabelRecentSeries": "最近新增系列",
|
|
||||||
"LabelRecommended": "推薦內容",
|
|
||||||
"LabelRedo": "重做",
|
|
||||||
"LabelRegion": "區域",
|
|
||||||
"LabelReleaseDate": "發布日期",
|
|
||||||
"LabelRemoveCover": "移除封面",
|
|
||||||
"LabelRowsPerPage": "每頁行數",
|
|
||||||
"LabelRSSFeedCustomOwnerEmail": "自定義所有者電子郵件",
|
"LabelRSSFeedCustomOwnerEmail": "自定義所有者電子郵件",
|
||||||
"LabelRSSFeedCustomOwnerName": "自定義所有者名稱",
|
"LabelRSSFeedCustomOwnerName": "自定義所有者名稱",
|
||||||
"LabelRSSFeedOpen": "打開 RSS 源",
|
"LabelRSSFeedOpen": "打開 RSS 源",
|
||||||
"LabelRSSFeedPreventIndexing": "防止索引",
|
"LabelRSSFeedPreventIndexing": "防止索引",
|
||||||
"LabelRSSFeedSlug": "RSS 源段",
|
"LabelRSSFeedSlug": "RSS 源段",
|
||||||
"LabelRSSFeedURL": "RSS 源 URL",
|
"LabelRSSFeedURL": "RSS 源 URL",
|
||||||
|
"LabelRead": "閱讀",
|
||||||
|
"LabelReadAgain": "再次閱讀",
|
||||||
|
"LabelReadEbookWithoutProgress": "閱讀電子書而不保存進度",
|
||||||
|
"LabelRecentSeries": "最近新增系列",
|
||||||
|
"LabelRecentlyAdded": "最近新增",
|
||||||
|
"LabelRecommended": "推薦內容",
|
||||||
|
"LabelRedo": "重做",
|
||||||
|
"LabelRegion": "區域",
|
||||||
|
"LabelReleaseDate": "發布日期",
|
||||||
|
"LabelRemoveCover": "移除封面",
|
||||||
|
"LabelRowsPerPage": "每頁行數",
|
||||||
"LabelSearchTerm": "搜尋項",
|
"LabelSearchTerm": "搜尋項",
|
||||||
"LabelSearchTitle": "搜尋標題",
|
"LabelSearchTitle": "搜尋標題",
|
||||||
"LabelSearchTitleOrASIN": "搜尋標題或 ASIN",
|
"LabelSearchTitleOrASIN": "搜尋標題或 ASIN",
|
||||||
@@ -504,9 +513,9 @@
|
|||||||
"LabelSleepTimer": "睡眠定時",
|
"LabelSleepTimer": "睡眠定時",
|
||||||
"LabelSlug": "Slug",
|
"LabelSlug": "Slug",
|
||||||
"LabelStart": "開始",
|
"LabelStart": "開始",
|
||||||
|
"LabelStartTime": "開始時間",
|
||||||
"LabelStarted": "開始於",
|
"LabelStarted": "開始於",
|
||||||
"LabelStartedAt": "從這開始",
|
"LabelStartedAt": "從這開始",
|
||||||
"LabelStartTime": "開始時間",
|
|
||||||
"LabelStatsAudioTracks": "音軌",
|
"LabelStatsAudioTracks": "音軌",
|
||||||
"LabelStatsAuthors": "作者",
|
"LabelStatsAuthors": "作者",
|
||||||
"LabelStatsBestDay": "最好的一天",
|
"LabelStatsBestDay": "最好的一天",
|
||||||
@@ -562,9 +571,9 @@
|
|||||||
"LabelUnknown": "未知",
|
"LabelUnknown": "未知",
|
||||||
"LabelUpdateCover": "更新封面",
|
"LabelUpdateCover": "更新封面",
|
||||||
"LabelUpdateCoverHelp": "找到匹配項時允許覆蓋所選書籍存在的封面",
|
"LabelUpdateCoverHelp": "找到匹配項時允許覆蓋所選書籍存在的封面",
|
||||||
"LabelUpdatedAt": "更新時間",
|
|
||||||
"LabelUpdateDetails": "更新詳細信息",
|
"LabelUpdateDetails": "更新詳細信息",
|
||||||
"LabelUpdateDetailsHelp": "找到匹配項時允許覆蓋所選書籍存在的詳細信息",
|
"LabelUpdateDetailsHelp": "找到匹配項時允許覆蓋所選書籍存在的詳細信息",
|
||||||
|
"LabelUpdatedAt": "更新時間",
|
||||||
"LabelUploaderDragAndDrop": "拖放檔案或資料夾",
|
"LabelUploaderDragAndDrop": "拖放檔案或資料夾",
|
||||||
"LabelUploaderDropFiles": "刪除檔案",
|
"LabelUploaderDropFiles": "刪除檔案",
|
||||||
"LabelUploaderItemFetchMetadataHelp": "自動獲取標題, 作者和系列",
|
"LabelUploaderItemFetchMetadataHelp": "自動獲取標題, 作者和系列",
|
||||||
@@ -590,8 +599,9 @@
|
|||||||
"MessageBackupsDescription": "備份包括使用者, 使用者進度, 媒體庫項目詳細信息, 伺服器設定和圖像, 存儲在 <code>/metadata/items</code> & <code>/metadata/authors</code>. 備份不包括存儲在您的媒體庫資料夾中的任何檔案.",
|
"MessageBackupsDescription": "備份包括使用者, 使用者進度, 媒體庫項目詳細信息, 伺服器設定和圖像, 存儲在 <code>/metadata/items</code> & <code>/metadata/authors</code>. 備份不包括存儲在您的媒體庫資料夾中的任何檔案.",
|
||||||
"MessageBatchQuickMatchDescription": "快速匹配將嘗試為所選項目新增缺少的封面和元數據. 啟用以下選項以允許快速匹配覆蓋現有封面和或元數據.",
|
"MessageBatchQuickMatchDescription": "快速匹配將嘗試為所選項目新增缺少的封面和元數據. 啟用以下選項以允許快速匹配覆蓋現有封面和或元數據.",
|
||||||
"MessageBookshelfNoCollections": "你尚未進行任何收藏",
|
"MessageBookshelfNoCollections": "你尚未進行任何收藏",
|
||||||
"MessageBookshelfNoResultsForFilter": "過濾器無結果 \"{0}: {1}\"",
|
|
||||||
"MessageBookshelfNoRSSFeeds": "沒有打開的 RSS 源",
|
"MessageBookshelfNoRSSFeeds": "沒有打開的 RSS 源",
|
||||||
|
"MessageBookshelfNoResultsForFilter": "過濾器無結果 \"{0}: {1}\"",
|
||||||
|
"MessageBookshelfNoResultsForQuery": "No results for query",
|
||||||
"MessageBookshelfNoSeries": "你沒有系列",
|
"MessageBookshelfNoSeries": "你沒有系列",
|
||||||
"MessageChapterEndIsAfter": "章節結束是在有聲書結束之後",
|
"MessageChapterEndIsAfter": "章節結束是在有聲書結束之後",
|
||||||
"MessageChapterErrorFirstNotZero": "第一章節必須從 0 開始",
|
"MessageChapterErrorFirstNotZero": "第一章節必須從 0 開始",
|
||||||
@@ -612,7 +622,9 @@
|
|||||||
"MessageConfirmMarkSeriesFinished": "你確定要將此系列中的所有書籍都標記為已聽完嗎?",
|
"MessageConfirmMarkSeriesFinished": "你確定要將此系列中的所有書籍都標記為已聽完嗎?",
|
||||||
"MessageConfirmMarkSeriesNotFinished": "你確定要將此系列中的所有書籍都標記為未聽完嗎?",
|
"MessageConfirmMarkSeriesNotFinished": "你確定要將此系列中的所有書籍都標記為未聽完嗎?",
|
||||||
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
"MessageConfirmPurgeCache": "Purge cache will delete the entire directory at <code>/metadata/cache</code>. <br /><br />Are you sure you want to remove the cache directory?",
|
||||||
|
"MessageConfirmPurgeItemsCache": "Purge items cache will delete the entire directory at <code>/metadata/cache/items</code>.<br />Are you sure?",
|
||||||
"MessageConfirmQuickEmbed": "警告! 快速嵌入不會備份你的音頻檔案. 確保你有音頻檔案的備份. <br><br>你是否想繼續嗎?",
|
"MessageConfirmQuickEmbed": "警告! 快速嵌入不會備份你的音頻檔案. 確保你有音頻檔案的備份. <br><br>你是否想繼續嗎?",
|
||||||
|
"MessageConfirmReScanLibraryItems": "你確定要重新掃描 {0} 個項目嗎?",
|
||||||
"MessageConfirmRemoveAllChapters": "你確定要移除所有章節嗎?",
|
"MessageConfirmRemoveAllChapters": "你確定要移除所有章節嗎?",
|
||||||
"MessageConfirmRemoveAuthor": "你確定要刪除作者 \"{0}\"?",
|
"MessageConfirmRemoveAuthor": "你確定要刪除作者 \"{0}\"?",
|
||||||
"MessageConfirmRemoveCollection": "你確定要移除收藏 \"{0}\"?",
|
"MessageConfirmRemoveCollection": "你確定要移除收藏 \"{0}\"?",
|
||||||
@@ -627,7 +639,6 @@
|
|||||||
"MessageConfirmRenameTag": "你確定要將所有項目標籤 \"{0}\" 重命名到 \"{1}\"?",
|
"MessageConfirmRenameTag": "你確定要將所有項目標籤 \"{0}\" 重命名到 \"{1}\"?",
|
||||||
"MessageConfirmRenameTagMergeNote": "注意: 該標籤已經存在, 因此它們將被合併.",
|
"MessageConfirmRenameTagMergeNote": "注意: 該標籤已經存在, 因此它們將被合併.",
|
||||||
"MessageConfirmRenameTagWarning": "警告! 已經存在有大小寫不同的類似標籤 \"{0}\".",
|
"MessageConfirmRenameTagWarning": "警告! 已經存在有大小寫不同的類似標籤 \"{0}\".",
|
||||||
"MessageConfirmReScanLibraryItems": "你確定要重新掃描 {0} 個項目嗎?",
|
|
||||||
"MessageConfirmSendEbookToDevice": "你確定要發送 {0} 電子書 \"{1}\" 到設備 \"{2}\"?",
|
"MessageConfirmSendEbookToDevice": "你確定要發送 {0} 電子書 \"{1}\" 到設備 \"{2}\"?",
|
||||||
"MessageDownloadingEpisode": "正在下載劇集",
|
"MessageDownloadingEpisode": "正在下載劇集",
|
||||||
"MessageDragFilesIntoTrackOrder": "將檔案拖動到正確的音軌順序",
|
"MessageDragFilesIntoTrackOrder": "將檔案拖動到正確的音軌順序",
|
||||||
@@ -681,10 +692,10 @@
|
|||||||
"MessageNoSeries": "無系列",
|
"MessageNoSeries": "無系列",
|
||||||
"MessageNoTags": "無標籤",
|
"MessageNoTags": "無標籤",
|
||||||
"MessageNoTasksRunning": "沒有正在運行的任務",
|
"MessageNoTasksRunning": "沒有正在運行的任務",
|
||||||
"MessageNotYetImplemented": "尚未實施",
|
|
||||||
"MessageNoUpdateNecessary": "無需更新",
|
"MessageNoUpdateNecessary": "無需更新",
|
||||||
"MessageNoUpdatesWereNecessary": "無需更新",
|
"MessageNoUpdatesWereNecessary": "無需更新",
|
||||||
"MessageNoUserPlaylists": "你沒有播放列表",
|
"MessageNoUserPlaylists": "你沒有播放列表",
|
||||||
|
"MessageNotYetImplemented": "尚未實施",
|
||||||
"MessageOr": "或",
|
"MessageOr": "或",
|
||||||
"MessagePauseChapter": "暫停章節播放",
|
"MessagePauseChapter": "暫停章節播放",
|
||||||
"MessagePlayChapter": "開始章節播放",
|
"MessagePlayChapter": "開始章節播放",
|
||||||
@@ -787,10 +798,10 @@
|
|||||||
"ToastPlaylistUpdateSuccess": "播放列表已更新",
|
"ToastPlaylistUpdateSuccess": "播放列表已更新",
|
||||||
"ToastPodcastCreateFailed": "創建播客失敗",
|
"ToastPodcastCreateFailed": "創建播客失敗",
|
||||||
"ToastPodcastCreateSuccess": "已成功創建播客",
|
"ToastPodcastCreateSuccess": "已成功創建播客",
|
||||||
"ToastRemoveItemFromCollectionFailed": "從收藏中刪除項目失敗",
|
|
||||||
"ToastRemoveItemFromCollectionSuccess": "項目已從收藏中刪除",
|
|
||||||
"ToastRSSFeedCloseFailed": "關閉 RSS 源失敗",
|
"ToastRSSFeedCloseFailed": "關閉 RSS 源失敗",
|
||||||
"ToastRSSFeedCloseSuccess": "RSS 源已關閉",
|
"ToastRSSFeedCloseSuccess": "RSS 源已關閉",
|
||||||
|
"ToastRemoveItemFromCollectionFailed": "從收藏中刪除項目失敗",
|
||||||
|
"ToastRemoveItemFromCollectionSuccess": "項目已從收藏中刪除",
|
||||||
"ToastSendEbookToDeviceFailed": "發送電子書到設備失敗",
|
"ToastSendEbookToDeviceFailed": "發送電子書到設備失敗",
|
||||||
"ToastSendEbookToDeviceSuccess": "電子書已經發送到設備 \"{0}\"",
|
"ToastSendEbookToDeviceSuccess": "電子書已經發送到設備 \"{0}\"",
|
||||||
"ToastSeriesUpdateFailed": "更新系列失敗",
|
"ToastSeriesUpdateFailed": "更新系列失敗",
|
||||||
|
|||||||
+70
-48
@@ -1,59 +1,81 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
content: [
|
content: ['components/**/*.vue', 'layouts/**/*.vue', 'pages/**/*.vue', 'templates/**/*.vue', 'plugins/**/*.js', 'nuxt.config.js'],
|
||||||
'components/**/*.vue',
|
safelist: ['bg-red-600', 'px-1.5', 'min-w-5', 'border-warning'],
|
||||||
'layouts/**/*.vue',
|
|
||||||
'pages/**/*.vue',
|
|
||||||
'templates/**/*.vue',
|
|
||||||
'plugins/**/*.js',
|
|
||||||
'nuxt.config.js'
|
|
||||||
],
|
|
||||||
safelist: [
|
|
||||||
'bg-red-600',
|
|
||||||
'px-1.5',
|
|
||||||
'min-w-5',
|
|
||||||
'border-warning'
|
|
||||||
],
|
|
||||||
theme: {
|
theme: {
|
||||||
extend: {
|
extend: {
|
||||||
height: {
|
height: {
|
||||||
'7.5': '1.75rem',
|
7.5: '1.75rem',
|
||||||
'18': '4.5rem',
|
18: '4.5rem',
|
||||||
'45': '11.25rem'
|
45: '11.25rem'
|
||||||
},
|
},
|
||||||
width: {
|
width: {
|
||||||
'18': '4.5rem'
|
18: '4.5rem'
|
||||||
},
|
},
|
||||||
maxWidth: {
|
maxWidth: {
|
||||||
'6': '1.5rem',
|
6: '1.5rem',
|
||||||
'12': '3rem',
|
12: '3rem',
|
||||||
'16': '4rem',
|
16: '4rem',
|
||||||
'20': '5rem',
|
20: '5rem',
|
||||||
'24': '6rem',
|
24: '6rem',
|
||||||
'32': '8rem',
|
32: '8rem',
|
||||||
'40': '10rem',
|
40: '10rem',
|
||||||
'48': '12rem',
|
48: '12rem',
|
||||||
'52': '13rem',
|
52: '13rem',
|
||||||
'64': '16rem',
|
64: '16rem',
|
||||||
'80': '20rem'
|
80: '20rem'
|
||||||
},
|
},
|
||||||
minWidth: {
|
minWidth: {
|
||||||
'5': '1.25rem',
|
5: '1.25rem',
|
||||||
'6': '1.5rem',
|
6: '1.5rem',
|
||||||
'8': '2rem',
|
8: '2rem',
|
||||||
'10': '2.5rem',
|
10: '2.5rem',
|
||||||
'12': '3rem',
|
12: '3rem',
|
||||||
'16': '4rem',
|
16: '4rem',
|
||||||
'20': '5rem',
|
20: '5rem',
|
||||||
'24': '6rem',
|
24: '6rem',
|
||||||
'26': '6.5rem',
|
26: '6.5rem',
|
||||||
'32': '8rem',
|
32: '8rem',
|
||||||
'48': '12rem',
|
48: '12rem',
|
||||||
'64': '16rem',
|
64: '16rem',
|
||||||
'80': '20rem'
|
80: '20rem'
|
||||||
},
|
},
|
||||||
spacing: {
|
spacing: {
|
||||||
'18': '4.5rem',
|
18: '4.5rem',
|
||||||
'-54': '-13.5rem'
|
'-54': '-13.5rem',
|
||||||
|
// based on tailwind default config converted to em units, see client\node_modules\tailwindcss\stubs\config.full.js
|
||||||
|
'0.5e': '0.125em',
|
||||||
|
'1e': '0.25em',
|
||||||
|
'1.5e': '0.375em',
|
||||||
|
'2e': '0.5em',
|
||||||
|
'2.5e': '0.625em',
|
||||||
|
'3e': '0.75em',
|
||||||
|
'3.5e': '0.875em',
|
||||||
|
'4e': '1em',
|
||||||
|
'5e': '1.25em',
|
||||||
|
'6e': '1.5em',
|
||||||
|
'7e': '1.75em',
|
||||||
|
'8e': '2em',
|
||||||
|
'9e': '2.25em',
|
||||||
|
'10e': '2.5em',
|
||||||
|
'11e': '2.75em',
|
||||||
|
'12e': '3em',
|
||||||
|
'14e': '3.5em',
|
||||||
|
'16e': '4em',
|
||||||
|
'20e': '5em',
|
||||||
|
'24e': '6em',
|
||||||
|
'28e': '7em',
|
||||||
|
'32e': '8em',
|
||||||
|
'36e': '9em',
|
||||||
|
'40e': '10em',
|
||||||
|
'44e': '11em',
|
||||||
|
'48e': '12em',
|
||||||
|
'52e': '13em',
|
||||||
|
'56e': '14em',
|
||||||
|
'60e': '15em',
|
||||||
|
'64e': '16em',
|
||||||
|
'72e': '18em',
|
||||||
|
'80e': '20em',
|
||||||
|
'96e': '24em'
|
||||||
},
|
},
|
||||||
rotate: {
|
rotate: {
|
||||||
'-60': '-60deg'
|
'-60': '-60deg'
|
||||||
@@ -90,13 +112,13 @@ module.exports = {
|
|||||||
'4.5xl': '2.625rem'
|
'4.5xl': '2.625rem'
|
||||||
},
|
},
|
||||||
zIndex: {
|
zIndex: {
|
||||||
'50': 50,
|
50: 50,
|
||||||
'60': 60
|
60: 60
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
variants: {
|
variants: {
|
||||||
extend: {},
|
extend: {}
|
||||||
},
|
},
|
||||||
plugins: [],
|
plugins: []
|
||||||
}
|
}
|
||||||
|
|||||||
+20
-17
@@ -1,30 +1,33 @@
|
|||||||
# OpenAPI specification
|
# OpenAPI specification
|
||||||
|
|
||||||
This directory includes the OpenAPI spec for the ABS server.
|
This directory includes the OpenAPI spec for the ABS server. The spec is made up of a number of individual `yaml` files located here and in the subfolders, with `root.yaml` being the file that references all of the others. The files are organized to have the same hierarchy as the server source files. The full spec is bundled into one file in `openapi.json`.
|
||||||
The spec is made up of a number of individual `yaml` files located here and in the subfolders, with `root.yaml` being the file that references all of the others.
|
|
||||||
The files are organized to have the same hierarchy as the server source files.
|
|
||||||
The full spec is bundled into one file in `openapi.json`.
|
|
||||||
|
|
||||||
The spec is linted and bundled by the [`vacuum` tool](https://quobix.com/vacuum/).
|
The spec is linted and bundled using [`redocly-cli`](https://redocly.com/docs/cli/). This tool also generates HTML docs for the spec.
|
||||||
The spec can also be tested with a real server using the [`wiretap` tool](https://pb33f.io/wiretap/).
|
|
||||||
Both of these tools are created by [pb33f](https://pb33f.io/).
|
The tools created by [`pb33f`](https://pb33f.io/), specifically `vacuum` and `wiretap`, are also useful for linting and verification. These tools check for some other things, such as validating requests to and responses from the server.
|
||||||
|
|
||||||
### Bundling the spec
|
### Bundling the spec
|
||||||
The command to bundle the spec into a `yaml` file is `vacuum bundle root.yaml openapi.yaml`.
|
|
||||||
|
|
||||||
The current version of `vacuum` cannot convert input `yaml` files to `json` files.
|
The command used to bundle the spec into a `yaml` file is `redocly bundle root.yaml > bundled.yaml`.
|
||||||
To convert the spec to `json`, you can use the `yq` tool or another tool.
|
|
||||||
|
|
||||||
The command to convert the spec using `yq` is `yq -p yaml -o json openapi.yaml > openapi.json`.
|
The `yq` tool is used to convert the `yaml` to a `json` using the `yq -p yaml -o json bundled.yaml > openapi.json`.
|
||||||
|
|
||||||
### Viewing report
|
### Linting the spec
|
||||||
To generate an HTML report, you can use `vacuum html-report [file]` to generate `report.html` and view the report in your browser.
|
|
||||||
|
The command used to lint the spec is `redocly lint root.yaml`
|
||||||
|
|
||||||
|
To generate an HTML report using `vacuum`, you can use `vacuum html-report [file]` to generate `report.html` and view the report in your browser.
|
||||||
|
|
||||||
|
### Generating documentation
|
||||||
|
|
||||||
|
Redocly allows for creating a static HTML page to document the API. This is done by using `redocly build-docs [file]` and supports exploded specs.
|
||||||
|
|
||||||
### Putting it all together
|
### Putting it all together
|
||||||
The full command that I run to bundle the spec and generate the report is:
|
|
||||||
|
The full command that I run to bundle the spec and generate the documentation is:
|
||||||
|
|
||||||
```
|
```
|
||||||
vacuum bundle root.yaml openapi.yaml && \
|
redocly bundle root.yaml > bundled.yaml && \
|
||||||
yq -p yaml -o json openapi.yaml > openapi.json && \
|
yq -p yaml -o json bundled.yaml > openapi.json && \
|
||||||
vacuum html-report openapi.json
|
redocly build-docs openapi.json
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -4,136 +4,299 @@ components:
|
|||||||
description: Whether the author was updated without errors. Will not exist if author was merged.
|
description: Whether the author was updated without errors. Will not exist if author was merged.
|
||||||
type: boolean
|
type: boolean
|
||||||
nullable: true
|
nullable: true
|
||||||
parameters:
|
authorMerged:
|
||||||
authorId:
|
description: Whether the author was merged with another author. Will not exist if author was updated.
|
||||||
name: id
|
type: boolean
|
||||||
in: path
|
nullable: true
|
||||||
description: Author ID
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
$ref: '../objects/entities/Author.yaml#/components/schemas/authorId'
|
|
||||||
authorInclude:
|
authorInclude:
|
||||||
name: include
|
description: A comma separated list of what to include with the author. The options are `items` and `series`. `series` will only have an effect if `items` is included. For example, the value `items,series` will include both library items and series.
|
||||||
in: query
|
|
||||||
description: A comma separated list of what to include with the author. The options are `items` and `series`. `series` will only have an effect if `items` is included.
|
|
||||||
required: false
|
|
||||||
schema:
|
|
||||||
type: string
|
type: string
|
||||||
example: "items"
|
example: 'items'
|
||||||
examples:
|
|
||||||
empty:
|
|
||||||
summary: Do not return library items
|
|
||||||
value: ""
|
|
||||||
itemOnly:
|
|
||||||
summary: Only return library items
|
|
||||||
value: "items"
|
|
||||||
itemsAndSeries:
|
|
||||||
summary: Return library items and series
|
|
||||||
value: "items,series"
|
|
||||||
authorLibraryId:
|
authorLibraryId:
|
||||||
name: library
|
|
||||||
in: query
|
|
||||||
description: The ID of the library to to include filter included items from.
|
|
||||||
required: false
|
|
||||||
schema:
|
|
||||||
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||||
asin:
|
|
||||||
name: asin
|
|
||||||
in: query
|
|
||||||
description: The Audible Identifier (ASIN).
|
|
||||||
required: false
|
|
||||||
schema:
|
|
||||||
$ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin'
|
|
||||||
authorSearchName:
|
authorSearchName:
|
||||||
name: q
|
|
||||||
in: query
|
|
||||||
description: The name of the author to use for searching.
|
description: The name of the author to use for searching.
|
||||||
required: false
|
|
||||||
schema:
|
|
||||||
type: string
|
type: string
|
||||||
example: Terry Goodkind
|
example: Terry Goodkind
|
||||||
authorName:
|
authorName:
|
||||||
name: name
|
|
||||||
in: query
|
|
||||||
description: The new name of the author.
|
|
||||||
required: false
|
|
||||||
schema:
|
|
||||||
$ref: '../objects/entities/Author.yaml#/components/schemas/authorName'
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorName'
|
||||||
authorDescription:
|
|
||||||
name: description
|
|
||||||
in: query
|
|
||||||
description: The new description of the author.
|
|
||||||
required: false
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
nullable: true
|
|
||||||
example: Terry Goodkind is a #1 New York Times Bestselling Author and creator of the critically acclaimed masterwork, ‘The Sword of Truth’. He has written 30+ major, bestselling novels, has been published in more than 20 languages world-wide, and has sold more than 26 Million books. ‘The Sword of Truth’ is a revered literary tour de force, comprised of 17 volumes, borne from over 25 years of dedicated writing.
|
|
||||||
authorImagePath:
|
|
||||||
name: imagePath
|
|
||||||
in: query
|
|
||||||
description: The new absolute path for the author image.
|
|
||||||
required: false
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
nullable: true
|
|
||||||
example: /metadata/authors/aut_z3leimgybl7uf3y4ab.jpg
|
|
||||||
imageUrl:
|
imageUrl:
|
||||||
name: url
|
|
||||||
in: query
|
|
||||||
description: The URL of the image to add to the server
|
description: The URL of the image to add to the server
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
type: string
|
type: string
|
||||||
format: uri
|
format: uri
|
||||||
example: https://images-na.ssl-images-amazon.com/images/I/51NoQTm33OL.__01_SX120_CR0,0,120,120__.jpg
|
example: https://images-na.ssl-images-amazon.com/images/I/51NoQTm33OL.__01_SX120_CR0,0,120,120__.jpg
|
||||||
imageWidth:
|
imageWidth:
|
||||||
name: width
|
|
||||||
in: query
|
|
||||||
description: The requested width of image in pixels.
|
description: The requested width of image in pixels.
|
||||||
schema:
|
|
||||||
type: integer
|
type: integer
|
||||||
default: 400
|
default: 400
|
||||||
example: 400
|
example: 400
|
||||||
example: 400
|
|
||||||
imageHeight:
|
imageHeight:
|
||||||
name: height
|
|
||||||
in: query
|
|
||||||
description: The requested height of image in pixels. If `null`, the height is scaled to maintain aspect ratio based on the requested width.
|
description: The requested height of image in pixels. If `null`, the height is scaled to maintain aspect ratio based on the requested width.
|
||||||
schema:
|
|
||||||
type: integer
|
type: integer
|
||||||
nullable: true
|
nullable: true
|
||||||
default: null
|
default: null
|
||||||
example: 600
|
example: 600
|
||||||
examples:
|
|
||||||
scaleHeight:
|
|
||||||
summary: Scale height with width
|
|
||||||
value: null
|
|
||||||
fixedHeight:
|
|
||||||
summary: Force height of image
|
|
||||||
value: 600
|
|
||||||
imageFormat:
|
imageFormat:
|
||||||
name: format
|
|
||||||
in: query
|
|
||||||
description: The requested output format.
|
description: The requested output format.
|
||||||
schema:
|
|
||||||
type: string
|
type: string
|
||||||
default: jpeg
|
default: jpeg
|
||||||
example: webp
|
example: webp
|
||||||
imageRaw:
|
imageRaw:
|
||||||
name: raw
|
|
||||||
in: query
|
|
||||||
description: Return the raw image without scaling if true.
|
description: Return the raw image without scaling if true.
|
||||||
schema:
|
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
responses:
|
responses:
|
||||||
|
author200:
|
||||||
|
description: Author found.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/author'
|
||||||
author404:
|
author404:
|
||||||
description: Author not found.
|
description: Author not found.
|
||||||
content:
|
content:
|
||||||
text/html:
|
text/html:
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
example: Not found
|
example: Author not found.
|
||||||
|
paths:
|
||||||
|
/api/authors/{id}:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: Author ID
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorId'
|
||||||
|
get:
|
||||||
|
operationId: getAuthorById
|
||||||
|
summary: Get an author by ID
|
||||||
|
description: Get an author by ID. The author's books and series can be included in the response.
|
||||||
tags:
|
tags:
|
||||||
- name: Authors
|
- Authors
|
||||||
description: Author endpoints
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: include
|
||||||
|
description: A comma separated list of what to include with the author. The options are `items` and `series`. `series` will only have an effect if `items` is included. For example, the value `items,series` will include both library items and series.
|
||||||
|
allowReserved: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 'items,series'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: getAuthorById OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/author'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/author404'
|
||||||
|
patch:
|
||||||
|
operationId: updateAuthorById
|
||||||
|
summary: Update an author by ID
|
||||||
|
description: Update an author by ID. The author's name and description can be updated. This endpoint will merge two authors if the new author name matches another author name in the database.
|
||||||
|
tags:
|
||||||
|
- Authors
|
||||||
|
requestBody:
|
||||||
|
description: The author object to update.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
$ref: '#/components/schemas/authorName'
|
||||||
|
description:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorDescription'
|
||||||
|
imagePath:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorImagePath'
|
||||||
|
asin:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: updateAuthorById OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
oneOf:
|
||||||
|
- $ref: '../objects/entities/Author.yaml#/components/schemas/author'
|
||||||
|
- $ref: '#/components/schemas/authorUpdated'
|
||||||
|
- $ref: '#/components/schemas/authorMerged'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/author404'
|
||||||
|
delete:
|
||||||
|
operationId: deleteAuthorById
|
||||||
|
summary: Delete an author by ID
|
||||||
|
description: Delete an author by ID. This will remove the author from all books.
|
||||||
|
tags:
|
||||||
|
- Authors
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: deleteAuthorById OK
|
||||||
|
content:
|
||||||
|
text/plain:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: Author deleted.
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/author404'
|
||||||
|
/api/authors/{id}/image:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: Author ID
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorId'
|
||||||
|
- name: token
|
||||||
|
in: query
|
||||||
|
description: API token
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- name: ts
|
||||||
|
in: query
|
||||||
|
description: Updated at value
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
get:
|
||||||
|
operationId: getAuthorImageById
|
||||||
|
summary: Get an author image by author ID
|
||||||
|
description: Get an author image by author ID. The image will be returned in the requested format and size.
|
||||||
|
security: [] # No security for getting author image
|
||||||
|
tags:
|
||||||
|
- Authors
|
||||||
|
requestBody:
|
||||||
|
required: false
|
||||||
|
description: The author image to get.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
width:
|
||||||
|
$ref: '#/components/schemas/imageWidth'
|
||||||
|
height:
|
||||||
|
$ref: '#/components/schemas/imageHeight'
|
||||||
|
format:
|
||||||
|
$ref: '#/components/schemas/imageFormat'
|
||||||
|
raw:
|
||||||
|
$ref: '#/components/schemas/imageRaw'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: getAuthorImageById OK
|
||||||
|
content:
|
||||||
|
image/webp:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
image/jpeg:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
image/*:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/author404'
|
||||||
|
post:
|
||||||
|
operationId: addAuthorImageById
|
||||||
|
summary: Add an author image to the server
|
||||||
|
description: Add an author image to the server. The image will be downloaded from the provided URL and stored on the server.
|
||||||
|
tags:
|
||||||
|
- Authors
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
description: The author image to add by URL.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/imageUrl'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: addAuthorImageById OK
|
||||||
|
content:
|
||||||
|
image/*:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/author404'
|
||||||
|
patch:
|
||||||
|
operationId: updateAuthorImageById
|
||||||
|
summary: Update an author image by author ID
|
||||||
|
description: Update an author image by author ID. The image will be resized if the width, height, or format is provided.
|
||||||
|
tags:
|
||||||
|
- Authors
|
||||||
|
requestBody:
|
||||||
|
description: The author image to update.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
properties:
|
||||||
|
width:
|
||||||
|
$ref: '#/components/schemas/imageWidth'
|
||||||
|
height:
|
||||||
|
$ref: '#/components/schemas/imageHeight'
|
||||||
|
format:
|
||||||
|
$ref: '#/components/schemas/imageFormat'
|
||||||
|
raw:
|
||||||
|
$ref: '#/components/schemas/imageRaw'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: updateAuthorImageById OK
|
||||||
|
content:
|
||||||
|
image/*:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: binary
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/author404'
|
||||||
|
delete:
|
||||||
|
operationId: deleteAuthorImageById
|
||||||
|
summary: Delete an author image by author ID
|
||||||
|
description: Delete an author image by author ID. This will remove the image from the server and the database.
|
||||||
|
tags:
|
||||||
|
- Authors
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: deleteAuthorImageById OK
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/author404'
|
||||||
|
/api/authors/{id}/match:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: Author ID
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorId'
|
||||||
|
post:
|
||||||
|
operationId: matchAuthorById
|
||||||
|
summary: Match the author against Audible using quick match
|
||||||
|
description: Match the author against Audible using quick match. Quick match updates the author's description and image (if no image already existed) with information from audible. Either `asin` or `q` must be provided, with `asin` taking priority if both are provided.
|
||||||
|
tags:
|
||||||
|
- Authors
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
description: The author object to match against an online provider.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
q:
|
||||||
|
$ref: '#/components/schemas/authorSearchName'
|
||||||
|
asin:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin'
|
||||||
|
region:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/region'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: matchAuthorById OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
oneOf:
|
||||||
|
- $ref: '../objects/entities/Author.yaml#/components/schemas/author'
|
||||||
|
- $ref: '#/components/schemas/authorUpdated'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/author404'
|
||||||
|
|||||||
@@ -0,0 +1,105 @@
|
|||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
emailSettings:
|
||||||
|
type: string
|
||||||
|
description: The field to sort by from the request.
|
||||||
|
example: 'media.metadata.title'
|
||||||
|
responses:
|
||||||
|
email200:
|
||||||
|
description: Successful response - Email
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/settings/EmailSettings.yaml#/components/schemas/EmailSettings'
|
||||||
|
ereader200:
|
||||||
|
description: Successful response - Ereader
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
ereaderDevices:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../objects/settings/EmailSettings.yaml#/components/schemas/EreaderDeviceObject'
|
||||||
|
paths:
|
||||||
|
/api/emails/settings:
|
||||||
|
get:
|
||||||
|
description: Get email settings
|
||||||
|
operationId: getEmailSettings
|
||||||
|
tags:
|
||||||
|
- Email
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: '#/components/responses/email200'
|
||||||
|
patch:
|
||||||
|
summary: Update email settings
|
||||||
|
operationId: updateEmailSettings
|
||||||
|
tags:
|
||||||
|
- Email
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/EmailSettings'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: '#/components/responses/email200'
|
||||||
|
/api/emails/test:
|
||||||
|
post:
|
||||||
|
summary: Send test email
|
||||||
|
operationId: sendTestEmail
|
||||||
|
tags:
|
||||||
|
- Email
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: Successful response
|
||||||
|
/api/emails/ereader-devices:
|
||||||
|
post:
|
||||||
|
summary: Update e-reader devices
|
||||||
|
operationId: updateEReaderDevices
|
||||||
|
tags:
|
||||||
|
- Email
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
ereaderDevices:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../objects/settings/EmailSettings.yaml#/components/schemas/EreaderDeviceObject'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
$ref: '#/components/responses/ereader200'
|
||||||
|
400:
|
||||||
|
description: Invalid payload
|
||||||
|
/api/emails/send-ebook-to-device:
|
||||||
|
post:
|
||||||
|
summary: Send ebook to device
|
||||||
|
operationId: sendEBookToDevice
|
||||||
|
tags:
|
||||||
|
- Email
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
libraryItemId:
|
||||||
|
$ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItemId'
|
||||||
|
deviceName:
|
||||||
|
$ref: '../objects/settings/EmailSettings.yaml#/components/schemas/ereaderName'
|
||||||
|
responses:
|
||||||
|
200:
|
||||||
|
description: Successful response
|
||||||
|
400:
|
||||||
|
description: Invalid request
|
||||||
|
403:
|
||||||
|
description: Forbidden
|
||||||
|
404:
|
||||||
|
description: Not found
|
||||||
@@ -0,0 +1,479 @@
|
|||||||
|
components:
|
||||||
|
schemas:
|
||||||
|
sortBy:
|
||||||
|
type: string
|
||||||
|
description: The field to sort by from the request.
|
||||||
|
example: 'media.metadata.title'
|
||||||
|
sortDesc:
|
||||||
|
description: Whether to sort in descending order.
|
||||||
|
type: boolean
|
||||||
|
example: true
|
||||||
|
filterBy:
|
||||||
|
type: string
|
||||||
|
description: The field to filter by from the request. TODO
|
||||||
|
example: 'media.metadata.title'
|
||||||
|
collapseSeries:
|
||||||
|
type: boolean
|
||||||
|
description: Whether collapse series was set in the request.
|
||||||
|
example: true
|
||||||
|
libraryFolders:
|
||||||
|
description: The folders of the library. Only specify the fullPath.
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../objects/Folder.yaml#/components/schemas/folder'
|
||||||
|
libraryDisplayOrder:
|
||||||
|
description: The display order of the library. Must be >= 1.
|
||||||
|
type: integer
|
||||||
|
minimum: 1
|
||||||
|
example: 1
|
||||||
|
libraryIcon:
|
||||||
|
description: The icon of the library. See Library Icons for a list of possible icons.
|
||||||
|
type: string
|
||||||
|
example: 'audiobookshelf'
|
||||||
|
libraryMediaType:
|
||||||
|
description: The type of media that the library contains. Must be `book` or `podcast`.
|
||||||
|
type: string
|
||||||
|
example: 'book'
|
||||||
|
libraryProvider:
|
||||||
|
description: Preferred metadata provider for the library. See Metadata Providers for a list of possible providers.
|
||||||
|
type: string
|
||||||
|
example: 'audible'
|
||||||
|
librarySettings:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/librarySettings'
|
||||||
|
librarySort:
|
||||||
|
description: The sort order of the library. For example, to sort by title use 'sort=media.metadata.title'.
|
||||||
|
type: string
|
||||||
|
example: 'media.metadata.title'
|
||||||
|
libraryFilter:
|
||||||
|
description: The filter for the library.
|
||||||
|
type: string
|
||||||
|
example: 'media.metadata.title'
|
||||||
|
libraryCollapseSeries:
|
||||||
|
description: Whether to collapse series.
|
||||||
|
type: boolean
|
||||||
|
example: true
|
||||||
|
default: false
|
||||||
|
libraryInclude:
|
||||||
|
description: The fields to include in the response. The only current option is `rssfeed`.
|
||||||
|
type: string
|
||||||
|
example: 'rssfeed'
|
||||||
|
parameters:
|
||||||
|
limit:
|
||||||
|
in: query
|
||||||
|
name: limit
|
||||||
|
description: The number of items to return. This the size of a single page for the optional `page` query.
|
||||||
|
example: 10
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
default: 0
|
||||||
|
page:
|
||||||
|
in: query
|
||||||
|
name: page
|
||||||
|
description: The page number (zero indexed) to return. If no limit is specified, then page will have no effect.
|
||||||
|
example: 0
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
default: 0
|
||||||
|
desc:
|
||||||
|
in: query
|
||||||
|
name: desc
|
||||||
|
description: Return items in reversed order if true.
|
||||||
|
example: 0
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
default: 0
|
||||||
|
|
||||||
|
responses:
|
||||||
|
library200:
|
||||||
|
description: Library found.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/library'
|
||||||
|
library404:
|
||||||
|
description: Library not found.
|
||||||
|
content:
|
||||||
|
text/html:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: Library not found.
|
||||||
|
paths:
|
||||||
|
/api/libraries:
|
||||||
|
get:
|
||||||
|
operationId: getLibraries
|
||||||
|
summary: Get all libraries on server
|
||||||
|
description: Get all libraries on server.
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: getLibraries OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
libraries:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/library'
|
||||||
|
post:
|
||||||
|
operationId: createLibrary
|
||||||
|
summary: Create a new library on server
|
||||||
|
description: Create a new library on server.
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
requestBody:
|
||||||
|
description: The library object to create.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
required: [name, folders]
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryName'
|
||||||
|
folders:
|
||||||
|
$ref: '#/components/schemas/libraryFolders'
|
||||||
|
displayOrder:
|
||||||
|
$ref: '#/components/schemas/libraryDisplayOrder'
|
||||||
|
icon:
|
||||||
|
$ref: '#/components/schemas/libraryIcon'
|
||||||
|
mediaType:
|
||||||
|
$ref: '#/components/schemas/libraryMediaType'
|
||||||
|
provider:
|
||||||
|
$ref: '#/components/schemas/libraryProvider'
|
||||||
|
settings:
|
||||||
|
$ref: '#/components/schemas/librarySettings'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
$ref: '#/components/responses/library200'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/library404'
|
||||||
|
/api/libraries/{id}:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: The ID of the library.
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||||
|
get:
|
||||||
|
operationId: getLibraryById
|
||||||
|
summary: Get a single library by ID on server
|
||||||
|
description: Get a single library by ID on server.
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: include
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- $ref: '../schemas.yaml#/components/parameters/minified'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
$ref: '#/components/responses/library200'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/library404'
|
||||||
|
patch:
|
||||||
|
operationId: updateLibraryById
|
||||||
|
summary: Update a single library by ID on server
|
||||||
|
description: Update a single library by ID on server.
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
requestBody:
|
||||||
|
required: true
|
||||||
|
description: The library object to update.
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryName'
|
||||||
|
folders:
|
||||||
|
$ref: '#/components/schemas/libraryFolders'
|
||||||
|
displayOrder:
|
||||||
|
$ref: '#/components/schemas/libraryDisplayOrder'
|
||||||
|
icon:
|
||||||
|
$ref: '#/components/schemas/libraryIcon'
|
||||||
|
mediaType:
|
||||||
|
$ref: '#/components/schemas/libraryMediaType'
|
||||||
|
provider:
|
||||||
|
$ref: '#/components/schemas/libraryProvider'
|
||||||
|
settings:
|
||||||
|
$ref: '#/components/schemas/librarySettings'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
$ref: '#/components/responses/library200'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/library404'
|
||||||
|
delete:
|
||||||
|
operationId: deleteLibraryById
|
||||||
|
summary: Delete a single library by ID on server
|
||||||
|
description: Delete a single library by ID on server and return the deleted object.
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
$ref: '#/components/responses/library200'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/library404'
|
||||||
|
/api/libraries/{id}/issues:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: The ID of the library.
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||||
|
delete:
|
||||||
|
operationId: deleteLibraryIssues
|
||||||
|
summary: Delete items with issues in a library.
|
||||||
|
description: Delete all items with issues in a library by library ID on the server. This only removes the items from the ABS database and does not delete media files.
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: deleteLibraryIssues OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 'Issues deleted.'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/library404'
|
||||||
|
/api/libraries/{id}/items:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: The ID of the library.
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||||
|
get:
|
||||||
|
operationId: getLibraryItems
|
||||||
|
summary: Get items in a library
|
||||||
|
description: Get items in a library by ID on server.
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
parameters:
|
||||||
|
- $ref: '#/components/parameters/limit'
|
||||||
|
- $ref: '#/components/parameters/page'
|
||||||
|
- in: query
|
||||||
|
name: sort
|
||||||
|
description: The field to sort by from the request.
|
||||||
|
example: 'numBooks'
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
default: 'name'
|
||||||
|
- $ref: '#/components/parameters/desc'
|
||||||
|
- in: query
|
||||||
|
name: filter
|
||||||
|
description: The filter for the library.
|
||||||
|
example: 'media.metadata.title'
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: include
|
||||||
|
description: The fields to include in the response. The only current option is `rssfeed`.
|
||||||
|
allowReserved: true
|
||||||
|
example: 'rssfeed'
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- $ref: '../schemas.yaml#/components/parameters/minified'
|
||||||
|
- in: query
|
||||||
|
name: collapseSeries
|
||||||
|
description: Whether to collapse series into a single cover
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
default: 0
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: getLibraryItems OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
results:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItemBase'
|
||||||
|
total:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/total'
|
||||||
|
limit:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/limit'
|
||||||
|
page:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/page'
|
||||||
|
sortBy:
|
||||||
|
$ref: '#/components/schemas/sortBy'
|
||||||
|
sortDesc:
|
||||||
|
$ref: '#/components/schemas/sortDesc'
|
||||||
|
filterBy:
|
||||||
|
$ref: '#/components/schemas/filterBy'
|
||||||
|
mediaType:
|
||||||
|
$ref: '../objects/mediaTypes/media.yaml#/components/schemas/mediaType'
|
||||||
|
minified:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/minified'
|
||||||
|
collapseSeries:
|
||||||
|
$ref: '#/components/schemas/collapseSeries'
|
||||||
|
include:
|
||||||
|
$ref: '#/components/schemas/libraryInclude'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/library404'
|
||||||
|
/api/libraries/{id}/authors:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: The ID of the library.
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||||
|
get:
|
||||||
|
operationId: getLibraryAuthors
|
||||||
|
summary: Get all authors in a library
|
||||||
|
description: Get all authors in a library by ID on server.
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: getLibraryAuthors OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
authors:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorExpanded'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/library404'
|
||||||
|
/api/libraries/{id}/series:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: The ID of the library.
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||||
|
get:
|
||||||
|
operationId: getLibrarySeries
|
||||||
|
summary: Get library series
|
||||||
|
description: Get series in a library. Filtering and sorting can be applied.
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
parameters:
|
||||||
|
- $ref: '#/components/parameters/limit'
|
||||||
|
- $ref: '#/components/parameters/page'
|
||||||
|
- in: query
|
||||||
|
name: sort
|
||||||
|
description: The field to sort by from the request.
|
||||||
|
example: 'numBooks'
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
enum: ['name', 'numBooks', 'totalDuration', 'addedAt', 'lastBookAdded', 'lastBookUpdated']
|
||||||
|
default: 'name'
|
||||||
|
- $ref: '#/components/parameters/desc'
|
||||||
|
- in: query
|
||||||
|
name: filter
|
||||||
|
description: The filter for the library.
|
||||||
|
example: 'media.metadata.title'
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: include
|
||||||
|
description: The fields to include in the response. The only current option is `rssfeed`.
|
||||||
|
allowReserved: true
|
||||||
|
example: 'rssfeed'
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- $ref: '../schemas.yaml#/components/parameters/minified'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: getLibrarySeries OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
results:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../objects/entities/Series.yaml#/components/schemas/seriesBooks'
|
||||||
|
total:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/total'
|
||||||
|
limit:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/limit'
|
||||||
|
page:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/page'
|
||||||
|
sortBy:
|
||||||
|
$ref: '#/components/schemas/sortBy'
|
||||||
|
sortDesc:
|
||||||
|
$ref: '#/components/schemas/sortDesc'
|
||||||
|
filterBy:
|
||||||
|
$ref: '#/components/schemas/filterBy'
|
||||||
|
minified:
|
||||||
|
$ref: '../schemas.yaml#/components/schemas/minified'
|
||||||
|
include:
|
||||||
|
$ref: '#/components/schemas/libraryInclude'
|
||||||
|
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/library404'
|
||||||
|
/api/libraries/{id}/series/{seriesId}:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: The ID of the library.
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||||
|
- name: seriesId
|
||||||
|
in: path
|
||||||
|
description: The ID of the series.
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/entities/Series.yaml#/components/schemas/seriesId'
|
||||||
|
get:
|
||||||
|
operationId: getLibrarySeriesById
|
||||||
|
summary: Get single series in library
|
||||||
|
description: Get a single series in a library by ID on server. This endpoint is deprecated and `/api/series/{id}` should be used instead.
|
||||||
|
deprecated: true
|
||||||
|
tags:
|
||||||
|
- Libraries
|
||||||
|
parameters:
|
||||||
|
- $ref: '#/components/parameters/limit'
|
||||||
|
- $ref: '#/components/parameters/page'
|
||||||
|
- in: query
|
||||||
|
name: sort
|
||||||
|
description: The field to sort by from the request.
|
||||||
|
example: 'numBooks'
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
enum: ['name', 'numBooks', 'totalDuration', 'addedAt', 'lastBookAdded', 'lastBookUpdated']
|
||||||
|
default: 'name'
|
||||||
|
- $ref: '#/components/parameters/desc'
|
||||||
|
- in: query
|
||||||
|
name: filter
|
||||||
|
description: The filter for the library.
|
||||||
|
example: 'media.metadata.title'
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
- $ref: '../schemas.yaml#/components/parameters/minified'
|
||||||
|
- in: query
|
||||||
|
name: include
|
||||||
|
description: The fields to include in the response. The only current option is `rssfeed`.
|
||||||
|
allowReserved: true
|
||||||
|
example: 'rssfeed'
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: getLibrarySeriesById OK
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/entities/Series.yaml#/components/schemas/seriesWithProgressAndRSS'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/library404'
|
||||||
@@ -0,0 +1,223 @@
|
|||||||
|
components:
|
||||||
|
responses:
|
||||||
|
notification200:
|
||||||
|
description: Notification endpoint success.
|
||||||
|
content:
|
||||||
|
text/html:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: OK
|
||||||
|
notification404:
|
||||||
|
description: An admin user is required or notification with the given ID not found.
|
||||||
|
content:
|
||||||
|
text/html:
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: Series not found.
|
||||||
|
paths:
|
||||||
|
/api/notifications:
|
||||||
|
get:
|
||||||
|
operationId: getNotifications
|
||||||
|
description: Get all Apprise notification events and notification settings for server.
|
||||||
|
tags:
|
||||||
|
- Notification
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Success
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
data:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
events:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/NotificationEvent'
|
||||||
|
settings:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/notification404'
|
||||||
|
patch:
|
||||||
|
operationId: updateNotificationSettings
|
||||||
|
description: Update Notification settings.
|
||||||
|
tags:
|
||||||
|
- Notification
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
appriseApiUrl:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/appriseApiUrl'
|
||||||
|
maxFailedAttempts:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/maxFailedAttempts'
|
||||||
|
maxNotificationQueue:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/maxNotificationQueue'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
$ref: '#/components/responses/notification200'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/notification404'
|
||||||
|
post:
|
||||||
|
operationId: createNotification
|
||||||
|
description: Update Notification settings.
|
||||||
|
tags:
|
||||||
|
- Notification
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
libraryId:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryIdNullable'
|
||||||
|
eventName:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/notificationEventName'
|
||||||
|
urls:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/urls'
|
||||||
|
titleTemplate:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/titleTemplate'
|
||||||
|
bodyTemplate:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/bodyTemplate'
|
||||||
|
enabled:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/enabled'
|
||||||
|
type:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/notificationType'
|
||||||
|
required:
|
||||||
|
- eventName
|
||||||
|
- urls
|
||||||
|
- titleTemplate
|
||||||
|
- bodyTemplate
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Success
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
settings:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/notification404'
|
||||||
|
/api/notificationdata:
|
||||||
|
get:
|
||||||
|
operationId: getNotificationEventData
|
||||||
|
description: Get all Apprise notification event data for the server.
|
||||||
|
tags:
|
||||||
|
- Notification
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Success
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
events:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/NotificationEvent'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/notification404'
|
||||||
|
/api/notifications/test:
|
||||||
|
get:
|
||||||
|
operationId: sendDefaultTestNotification
|
||||||
|
description: Send a test notification.
|
||||||
|
tags:
|
||||||
|
- Notification
|
||||||
|
parameters:
|
||||||
|
- in: query
|
||||||
|
name: fail
|
||||||
|
description: Whether to intentionally cause the notification to fail. `0` for false, `1` for true.
|
||||||
|
schema:
|
||||||
|
type: integer
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
$ref: '#/components/responses/notification200'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/notification404'
|
||||||
|
/api/notifications/{id}:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: The ID of the notification.
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/notificationId'
|
||||||
|
delete:
|
||||||
|
operationId: deleteNotification
|
||||||
|
description: Delete the notification by ID and return the notification settings.
|
||||||
|
tags:
|
||||||
|
- Notification
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Success
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
settings:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/notification404'
|
||||||
|
patch:
|
||||||
|
operationId: updateNotification
|
||||||
|
description: Update individual Notification
|
||||||
|
tags:
|
||||||
|
- Notification
|
||||||
|
requestBody:
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
libraryId:
|
||||||
|
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
||||||
|
eventName:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/notificationEventName'
|
||||||
|
urls:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/urls'
|
||||||
|
titleTemplate:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/titleTemplate'
|
||||||
|
bodyTemplate:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/bodyTemplate'
|
||||||
|
enabled:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/enabled'
|
||||||
|
type:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/notificationType'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Success
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
settings:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/NotificationSettings'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/notification404'
|
||||||
|
/api/notifications/{id}/test:
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: The ID of the notification.
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '../objects/Notification.yaml#/components/schemas/notificationId'
|
||||||
|
get:
|
||||||
|
operationId: sendTestNotification
|
||||||
|
description: Send a test to the given notification.
|
||||||
|
tags:
|
||||||
|
- Notification
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
$ref: '#/components/responses/notification200'
|
||||||
|
'404':
|
||||||
|
$ref: '#/components/responses/notification404'
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user