mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-01-03 13:09:27 -05:00
Compare commits
232 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b27c726d5 | ||
|
|
68418c1d3b | ||
|
|
a8af6db3d6 | ||
|
|
af856ce1ec | ||
|
|
aae8e7535a | ||
|
|
359a2752d8 | ||
|
|
9102a0045f | ||
|
|
b124d61826 | ||
|
|
8e6ead59ce | ||
|
|
f74d741821 | ||
|
|
15f83986e7 | ||
|
|
a57fe42dff | ||
|
|
b03198abd9 | ||
|
|
ad30977781 | ||
|
|
dbe10382fd | ||
|
|
f0caf1a933 | ||
|
|
0f7c99d989 | ||
|
|
60c65008dc | ||
|
|
c4fd4ff9de | ||
|
|
29fc503503 | ||
|
|
bca49616e1 | ||
|
|
cb49c17fc5 | ||
|
|
9e1686232b | ||
|
|
f702358bbd | ||
|
|
9a0b8de354 | ||
|
|
6ed6fff6bd | ||
|
|
75007bb371 | ||
|
|
df9da095ef | ||
|
|
64c98722c3 | ||
|
|
36c1a8b2df | ||
|
|
710d6af4b3 | ||
|
|
cd7ecb9933 | ||
|
|
f75f0b8cc8 | ||
|
|
e60d2a9858 | ||
|
|
04993dd63d | ||
|
|
41af913280 | ||
|
|
8dc0f2c67c | ||
|
|
fc196180b3 | ||
|
|
4a127d35b9 | ||
|
|
1525fdf4f6 | ||
|
|
8a29c998da | ||
|
|
f56d9f128f | ||
|
|
c5785e9c20 | ||
|
|
0ca91ecfff | ||
|
|
304d0f6d43 | ||
|
|
6c9a811472 | ||
|
|
116a7fb994 | ||
|
|
8e46181ba0 | ||
|
|
a336686e42 | ||
|
|
c8957fe373 | ||
|
|
ca7eaf9750 | ||
|
|
74dd24febf | ||
|
|
7b856474af | ||
|
|
c7ac12a67a | ||
|
|
3264359771 | ||
|
|
c7cc994532 | ||
|
|
afe40be957 | ||
|
|
a9c9c447f1 | ||
|
|
aa1aeacc09 | ||
|
|
fc595bd799 | ||
|
|
a5d7a81519 | ||
|
|
7e8fd91fc5 | ||
|
|
c2ed0b7d3d | ||
|
|
aefda8bd51 | ||
|
|
93bec282d2 | ||
|
|
1396a432a4 | ||
|
|
90e1283058 | ||
|
|
8cd50d5684 | ||
|
|
50bd2648aa | ||
|
|
33254654d5 | ||
|
|
617b8f4487 | ||
|
|
f9b95bb003 | ||
|
|
740640884f | ||
|
|
86fea5c667 | ||
|
|
33e4b51aee | ||
|
|
1cf0bd0f01 | ||
|
|
8ce5a5cdbd | ||
|
|
fc26b7af0a | ||
|
|
2d68fa2c27 | ||
|
|
f241cb2280 | ||
|
|
125346bb5c | ||
|
|
b60f62cebf | ||
|
|
51ff62356d | ||
|
|
f827aa97f8 | ||
|
|
68276fe30b | ||
|
|
961533765f | ||
|
|
c1bbec22f0 | ||
|
|
7d0eb215d6 | ||
|
|
ff5226fa93 | ||
|
|
8d7530254c | ||
|
|
6957b4baf6 | ||
|
|
01c8d42291 | ||
|
|
1e21847852 | ||
|
|
1bee082720 | ||
|
|
b0a9bed15a | ||
|
|
1d7434cbbb | ||
|
|
1646f0ebc2 | ||
|
|
50330b0a60 | ||
|
|
f661e0835c | ||
|
|
9511122bae | ||
|
|
56f1bfef50 | ||
|
|
8e5b7504ae | ||
|
|
0a0006f949 | ||
|
|
5b836dfa28 | ||
|
|
8396900178 | ||
|
|
8f80948211 | ||
|
|
4ad09ec3d8 | ||
|
|
be4eb28b21 | ||
|
|
f938fca2c7 | ||
|
|
d562f6a69f | ||
|
|
166454ef43 | ||
|
|
d5c854d606 | ||
|
|
eace46bf55 | ||
|
|
b9ffce166e | ||
|
|
9713e94aed | ||
|
|
d71bc89c9d | ||
|
|
a2b2a2d060 | ||
|
|
752268effb | ||
|
|
9e3b3f3e12 | ||
|
|
88f9533b37 | ||
|
|
630ece82ad | ||
|
|
5777184cae | ||
|
|
a76da14fb0 | ||
|
|
0c612b4836 | ||
|
|
a1af672c7c | ||
|
|
5fcd23409a | ||
|
|
99f0799a11 | ||
|
|
316aeba1b0 | ||
|
|
bfd4a378f3 | ||
|
|
521db90ae0 | ||
|
|
d02fc2debe | ||
|
|
e6c21c5be1 | ||
|
|
91248b496e | ||
|
|
f7ae7783bd | ||
|
|
ae395497a5 | ||
|
|
8826d3af62 | ||
|
|
65153fae9d | ||
|
|
d4c1bc5dfc | ||
|
|
d6f13513ae | ||
|
|
2584c3b432 | ||
|
|
b54421412d | ||
|
|
e2451a3281 | ||
|
|
dbf4bd5c3d | ||
|
|
2a722ab163 | ||
|
|
c83399c7b5 | ||
|
|
a814e45150 | ||
|
|
29e9216bb1 | ||
|
|
94d1732b0d | ||
|
|
7610084627 | ||
|
|
d840905a97 | ||
|
|
7b1b448795 | ||
|
|
77559d29bb | ||
|
|
c14f9accaf | ||
|
|
76a1f48c62 | ||
|
|
ae0a9bcf86 | ||
|
|
9e44fe5524 | ||
|
|
727dad7e19 | ||
|
|
0c2de91097 | ||
|
|
450fa45360 | ||
|
|
e0dddae2c2 | ||
|
|
daa9fccc14 | ||
|
|
ad45dadc15 | ||
|
|
0e8148001e | ||
|
|
fa71f9db2e | ||
|
|
0d9d2fa4be | ||
|
|
c34e9cde05 | ||
|
|
b934a755b5 | ||
|
|
a5772f6b66 | ||
|
|
153f149d58 | ||
|
|
e50b06183e | ||
|
|
305689d513 | ||
|
|
4dd140585d | ||
|
|
cd60d0219f | ||
|
|
8ec18e8d7b | ||
|
|
15545654ea | ||
|
|
8a0fab2b20 | ||
|
|
6e8c6aa740 | ||
|
|
5005aabe5e | ||
|
|
abc2d28617 | ||
|
|
7569a14510 | ||
|
|
b52341dbcf | ||
|
|
b4eed3bad2 | ||
|
|
4fe672f09d | ||
|
|
49af7eb7b0 | ||
|
|
c93c863d82 | ||
|
|
763bb1b829 | ||
|
|
79d32274aa | ||
|
|
987842ed04 | ||
|
|
d2b006b909 | ||
|
|
f4a19e48ad | ||
|
|
38f12f4795 | ||
|
|
7a4f4b1586 | ||
|
|
20ec54e085 | ||
|
|
655bebfec4 | ||
|
|
71e1abd263 | ||
|
|
72172dcb33 | ||
|
|
def2988e12 | ||
|
|
b47793c365 | ||
|
|
3a99cc56b7 | ||
|
|
24c35dede5 | ||
|
|
8c4400dff1 | ||
|
|
af8dffaa33 | ||
|
|
4a36a3c8e6 | ||
|
|
e6735e042e | ||
|
|
c799379a54 | ||
|
|
d8b9f08e5a | ||
|
|
608b25de45 | ||
|
|
2db8869908 | ||
|
|
9500737bbe | ||
|
|
def2b6425b | ||
|
|
0f4b11494e | ||
|
|
46448ce1e9 | ||
|
|
fbe12b393f | ||
|
|
ccf59b2c1a | ||
|
|
d7af3b7788 | ||
|
|
682aca0b2a | ||
|
|
3328ffe1b9 | ||
|
|
c07b7840e2 | ||
|
|
9f848b2c64 | ||
|
|
3d66ec0761 | ||
|
|
f50920be69 | ||
|
|
d31add9d5a | ||
|
|
a4dcb4f92e | ||
|
|
2c589c1dbd | ||
|
|
60ea386c6d | ||
|
|
24be1a0ec5 | ||
|
|
e71a14756b | ||
|
|
19af7454f2 | ||
|
|
d24427aad8 | ||
|
|
e2bb0cfb7c | ||
|
|
2ebdb44826 | ||
|
|
679bdf36b1 |
@@ -5,5 +5,6 @@ module.exports.config = {
|
||||
ConfigPath: Path.resolve('config'),
|
||||
MetadataPath: Path.resolve('metadata'),
|
||||
FFmpegPath: '/usr/bin/ffmpeg',
|
||||
FFProbePath: '/usr/bin/ffprobe'
|
||||
FFProbePath: '/usr/bin/ffprobe',
|
||||
SkipBinariesCheck: false
|
||||
}
|
||||
65
.github/workflows/codeql.yml
vendored
Normal file
65
.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ 'master' ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ 'master' ]
|
||||
schedule:
|
||||
- cron: '16 5 * * 4'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'javascript' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Use only 'java' to analyze code written in Java, Kotlin or both
|
||||
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
|
||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
|
||||
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
|
||||
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
||||
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
||||
|
||||
# - run: |
|
||||
# echo "Run, Build Application using script"
|
||||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
30
.github/workflows/i18n-integration.yml
vendored
Normal file
30
.github/workflows/i18n-integration.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: Verify all i18n files are alphabetized
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- client/strings/** # Should only check if any strings changed
|
||||
push:
|
||||
paths:
|
||||
- client/strings/** # Should only check if any strings changed
|
||||
|
||||
jobs:
|
||||
update_translations:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Check out the repository
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Set up node to run the javascript
|
||||
- name: Set up node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "20"
|
||||
|
||||
# The only argument is the `directory`, which is where the i18n files are
|
||||
# stored.
|
||||
- name: Run Update JSON Files action
|
||||
uses: audiobookshelf/audiobookshelf-i18n-updater@v1.2.0
|
||||
with:
|
||||
directory: "client/strings/" # Adjust the directory path as needed
|
||||
17
.github/workflows/notify-abs-windows.yml
vendored
Normal file
17
.github/workflows/notify-abs-windows.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
name: Dispatch an abs-windows event
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
abs-windows-dispatch:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Send a remote repository dispatch event
|
||||
uses: peter-evans/repository-dispatch@v3
|
||||
with:
|
||||
token: ${{ secrets.ABS_WINDOWS_PAT }}
|
||||
repository: mikiher/audiobookshelf-windows
|
||||
event-type: build-windows
|
||||
37
.github/workflows/unit-tests.yml
vendored
Normal file
37
.github/workflows/unit-tests.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Run Unit Tests
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
ref:
|
||||
description: 'Branch/Tag/SHA to test'
|
||||
required: true
|
||||
pull_request:
|
||||
push:
|
||||
|
||||
jobs:
|
||||
run-unit-tests:
|
||||
name: Run Unit Tests
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout (push/pull request)
|
||||
uses: actions/checkout@v4
|
||||
if: github.event_name != 'workflow_dispatch'
|
||||
|
||||
- name: Checkout (workflow_dispatch)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.ref }}
|
||||
if: github.event_name == 'workflow_dispatch'
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Run tests
|
||||
run: npm test
|
||||
@@ -50,9 +50,8 @@ echo "$controlfile" > dist/debian/DEBIAN/control;
|
||||
# Package debian
|
||||
pkg -t node18-linux-x64 -o dist/debian/usr/share/audiobookshelf/audiobookshelf .
|
||||
|
||||
fakeroot dpkg-deb --build dist/debian
|
||||
fakeroot dpkg-deb -Zxz --build dist/debian
|
||||
|
||||
mv dist/debian.deb "dist/$OUTPUT_FILE"
|
||||
chmod +x "dist/$OUTPUT_FILE"
|
||||
|
||||
echo "Finished! Filename: $OUTPUT_FILE"
|
||||
|
||||
@@ -30,8 +30,7 @@
|
||||
}
|
||||
|
||||
.bookshelf-row {
|
||||
/* Sidebar width + scrollbar width */
|
||||
width: calc(100vw - 88px);
|
||||
width: calc(100vw - (100vw - 100%));
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
word-wrap: normal;
|
||||
direction: ltr;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.material-icons:not([class*="text-"]) {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="w-full h-full pt-6">
|
||||
<div v-if="shelf.type === 'book' || shelf.type === 'podcast'" class="flex items-center">
|
||||
<template v-for="(entity, index) in shelf.entities">
|
||||
<cards-lazy-book-card :key="entity.id" :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}-${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" />
|
||||
</template>
|
||||
</div>
|
||||
<div v-if="shelf.type === 'episode'" class="flex items-center">
|
||||
|
||||
@@ -98,6 +98,9 @@
|
||||
<template v-else-if="page === 'authors'">
|
||||
<div class="flex-grow" />
|
||||
<ui-btn v-if="userCanUpdate && authors && authors.length && !isBatchSelecting" :loading="processingAuthors" color="primary" small @click="matchAllAuthors">{{ $strings.ButtonMatchAllAuthors }}</ui-btn>
|
||||
|
||||
<!-- author sort select -->
|
||||
<controls-sort-select v-if="authors && authors.length" v-model="settings.authorSortBy" :descending.sync="settings.authorSortDesc" :items="authorSortItems" class="w-36 sm:w-44 md:w-48 h-7.5 ml-1 sm:ml-4" @change="updateAuthorSort" />
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
@@ -183,6 +186,30 @@ export default {
|
||||
}
|
||||
]
|
||||
},
|
||||
authorSortItems() {
|
||||
return [
|
||||
{
|
||||
text: this.$strings.LabelAuthorFirstLast,
|
||||
value: 'name'
|
||||
},
|
||||
{
|
||||
text: this.$strings.LabelAuthorLastFirst,
|
||||
value: 'lastFirst'
|
||||
},
|
||||
{
|
||||
text: this.$strings.LabelNumberOfBooks,
|
||||
value: 'numBooks'
|
||||
},
|
||||
{
|
||||
text: this.$strings.LabelAddedAt,
|
||||
value: 'addedAt'
|
||||
},
|
||||
{
|
||||
text: this.$strings.LabelUpdatedAt,
|
||||
value: 'updatedAt'
|
||||
}
|
||||
]
|
||||
},
|
||||
userIsAdminOrUp() {
|
||||
return this.$store.getters['user/getIsAdminOrUp']
|
||||
},
|
||||
@@ -455,6 +482,9 @@ export default {
|
||||
updateCollapseBookSeries() {
|
||||
this.saveSettings()
|
||||
},
|
||||
updateAuthorSort() {
|
||||
this.saveSettings()
|
||||
},
|
||||
saveSettings() {
|
||||
this.$store.dispatch('user/updateUserSettings', this.settings)
|
||||
},
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div v-if="streamLibraryItem" id="mediaPlayerContainer" class="w-full fixed bottom-0 left-0 right-0 h-48 md:h-40 z-50 bg-primary px-2 md:px-4 pb-1 md:pb-4 pt-2">
|
||||
<div v-if="streamLibraryItem" id="mediaPlayerContainer" class="w-full fixed bottom-0 left-0 right-0 h-48 lg:h-40 z-50 bg-primary px-2 lg:px-4 pb-1 lg:pb-4 pt-2">
|
||||
<div id="videoDock" />
|
||||
<div class="absolute left-2 top-2 md:left-4 cursor-pointer">
|
||||
<div class="absolute left-2 top-2 lg:left-4 cursor-pointer">
|
||||
<covers-book-cover expand-on-click :library-item="streamLibraryItem" :width="bookCoverWidth" :book-cover-aspect-ratio="coverAspectRatio" />
|
||||
</div>
|
||||
<div class="flex items-start mb-6 md: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">
|
||||
<nuxt-link :to="`/item/${streamLibraryItem.id}`" class="hover:underline cursor-pointer text-sm sm:text-lg block truncate">
|
||||
{{ title }}
|
||||
@@ -29,7 +29,7 @@
|
||||
</div>
|
||||
<div class="flex-grow" />
|
||||
<ui-tooltip direction="top" :text="$strings.LabelClosePlayer">
|
||||
<button :aria-label="$strings.LabelClosePlayer" class="material-icons sm:px-2 py-1 md:p-4 cursor-pointer text-xl sm:text-2xl" @click="closePlayer">close</button>
|
||||
<button :aria-label="$strings.LabelClosePlayer" class="material-icons sm:px-2 py-1 lg:p-4 cursor-pointer text-xl sm:text-2xl" @click="closePlayer">close</button>
|
||||
</ui-tooltip>
|
||||
</div>
|
||||
<player-ui
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="bg-bg rounded-md shadow-lg border border-white border-opacity-5 p-4 mb-8">
|
||||
<div class="bg-bg rounded-md shadow-lg border border-white border-opacity-5 p-2 sm:p-4 mb-8">
|
||||
<div class="flex items-center mb-2">
|
||||
<slot name="header-prefix"></slot>
|
||||
<h1 class="text-xl">{{ headerText }}</h1>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Alternative bookshelf title/author/sort -->
|
||||
<div v-if="isAlternativeBookshelfView || isAuthorBookshelfView" class="absolute left-0 z-50 w-full" :style="{ bottom: `-${titleDisplayBottomOffset}rem` }">
|
||||
<div v-if="isAlternativeBookshelfView || isAuthorBookshelfView" dir="auto" class="absolute left-0 z-50 w-full" :style="{ bottom: `-${titleDisplayBottomOffset}rem` }">
|
||||
<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 ref="displayTitle" class="truncate">{{ displayTitle }}</p>
|
||||
@@ -358,7 +358,7 @@ export default {
|
||||
},
|
||||
showError() {
|
||||
if (this.recentEpisode) return false // Dont show podcast error on episode card
|
||||
return this.numInvalidAudioFiles || this.numMissingParts || this.isMissing || this.isInvalid
|
||||
return this.isMissing || this.isInvalid
|
||||
},
|
||||
libraryItemIdStreaming() {
|
||||
return this.store.getters['getLibraryItemIdStreaming']
|
||||
@@ -388,29 +388,13 @@ export default {
|
||||
isInvalid() {
|
||||
return this._libraryItem.isInvalid
|
||||
},
|
||||
numMissingParts() {
|
||||
if (this.isPodcast) return 0
|
||||
return this.media.numMissingParts
|
||||
},
|
||||
numInvalidAudioFiles() {
|
||||
if (this.isPodcast) return 0
|
||||
return this.media.numInvalidAudioFiles
|
||||
},
|
||||
errorText() {
|
||||
if (this.isMissing) return 'Item directory is missing!'
|
||||
else if (this.isInvalid) {
|
||||
if (this.isPodcast) return 'Podcast has no episodes'
|
||||
return 'Item has no audio tracks & ebook'
|
||||
}
|
||||
let txt = ''
|
||||
if (this.numMissingParts) {
|
||||
txt += `${this.numMissingParts} missing parts.`
|
||||
}
|
||||
if (this.numInvalidAudioFiles) {
|
||||
if (txt) txt += ' '
|
||||
txt += `${this.numInvalidAudioFiles} invalid audio files.`
|
||||
}
|
||||
return txt || 'Unknown Error'
|
||||
return 'Unknown Error'
|
||||
},
|
||||
overlayWrapperClasslist() {
|
||||
const classes = []
|
||||
|
||||
@@ -89,6 +89,14 @@
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="language" class="flex py-0.5">
|
||||
<div class="w-24 min-w-24 sm:w-32 sm:min-w-32">
|
||||
<span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelLanguage }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<nuxt-link :to="`/library/${libraryId}/bookshelf?filter=languages.${$encode(language)}`" class="hover:underline">{{ language }}</nuxt-link>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="tracks.length || audioFile || (isPodcast && totalPodcastDuration)" class="flex py-0.5">
|
||||
<div class="w-24 min-w-24 sm:w-32 sm:min-w-32">
|
||||
<span class="text-white text-opacity-60 uppercase text-sm">{{ $strings.LabelDuration }}</span>
|
||||
@@ -182,6 +190,9 @@ export default {
|
||||
narrators() {
|
||||
return this.mediaMetadata.narrators || []
|
||||
},
|
||||
language() {
|
||||
return this.mediaMetadata.language || null
|
||||
},
|
||||
durationPretty() {
|
||||
if (this.isPodcast) return this.$elapsedPrettyExtended(this.totalPodcastDuration)
|
||||
|
||||
|
||||
@@ -235,6 +235,11 @@ export default {
|
||||
value: 'tags',
|
||||
sublist: true
|
||||
},
|
||||
{
|
||||
text: this.$strings.LabelLanguage,
|
||||
value: 'languages',
|
||||
sublist: true
|
||||
},
|
||||
{
|
||||
text: this.$strings.ButtonIssues,
|
||||
value: 'issues',
|
||||
@@ -368,9 +373,17 @@ export default {
|
||||
id: 'ebook',
|
||||
name: this.$strings.LabelHasEbook
|
||||
},
|
||||
{
|
||||
id: 'no-ebook',
|
||||
name: this.$strings.LabelMissingEbook
|
||||
},
|
||||
{
|
||||
id: 'supplementary',
|
||||
name: this.$strings.LabelHasSupplementaryEbook
|
||||
},
|
||||
{
|
||||
id: 'no-supplementary',
|
||||
name: this.$strings.LabelMissingSupplementaryEbook
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -34,11 +34,6 @@ export default {
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
watch: {
|
||||
value(newVal) {
|
||||
this.$nextTick(this.scrollToChapter)
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
show: {
|
||||
get() {
|
||||
@@ -53,7 +48,7 @@ export default {
|
||||
return this.playbackRate
|
||||
},
|
||||
currentChapterId() {
|
||||
return this.currentChapter ? this.currentChapter.id : null
|
||||
return this.currentChapter?.id || null
|
||||
},
|
||||
currentChapterStart() {
|
||||
return (this.currentChapter?.start || 0) / this._playbackRate
|
||||
@@ -74,6 +69,11 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
updated() {
|
||||
if (this.value) {
|
||||
this.$nextTick(this.scrollToChapter)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -88,10 +88,11 @@
|
||||
<p class="mb-1">{{ _session.mediaPlayer }}</p>
|
||||
|
||||
<p v-if="hasDeviceInfo" class="font-semibold uppercase text-xs text-gray-400 tracking-wide mt-6 mb-2">{{ $strings.LabelDevice }}</p>
|
||||
<p v-if="clientDisplayName" class="mb-1">{{ clientDisplayName }}</p>
|
||||
<p v-if="deviceInfo.ipAddress" class="mb-1">{{ deviceInfo.ipAddress }}</p>
|
||||
<p v-if="osDisplayName" class="mb-1">{{ osDisplayName }}</p>
|
||||
<p v-if="deviceInfo.browserName" class="mb-1">{{ deviceInfo.browserName }}</p>
|
||||
<p v-if="clientDisplayName" class="mb-1">{{ clientDisplayName }}</p>
|
||||
<p v-if="deviceDisplayName" class="mb-1">{{ deviceDisplayName }}</p>
|
||||
<p v-if="deviceInfo.sdkVersion" class="mb-1">SDK {{ $strings.LabelVersion }}: {{ deviceInfo.sdkVersion }}</p>
|
||||
<p v-if="deviceInfo.deviceType" class="mb-1">{{ $strings.LabelType }}: {{ deviceInfo.deviceType }}</p>
|
||||
</div>
|
||||
@@ -141,10 +142,14 @@ export default {
|
||||
if (!this.deviceInfo.osName) return null
|
||||
return `${this.deviceInfo.osName} ${this.deviceInfo.osVersion}`
|
||||
},
|
||||
clientDisplayName() {
|
||||
deviceDisplayName() {
|
||||
if (!this.deviceInfo.manufacturer || !this.deviceInfo.model) return null
|
||||
return `${this.deviceInfo.manufacturer} ${this.deviceInfo.model}`
|
||||
},
|
||||
clientDisplayName() {
|
||||
if (!this.deviceInfo.clientName) return null
|
||||
return `${this.deviceInfo.clientName} ${this.deviceInfo.clientVersion || ''}`
|
||||
},
|
||||
playMethodName() {
|
||||
const playMethod = this._session.playMethod
|
||||
if (playMethod === this.$constants.PlayMethod.DIRECTPLAY) return 'Direct Play'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="w-full h-full overflow-hidden overflow-y-auto px-2 sm:px-4 py-6 relative">
|
||||
<div class="flex flex-wrap mb-4">
|
||||
<div class="relative">
|
||||
<div class="flex flex-col sm:flex-row mb-4">
|
||||
<div class="relative self-center">
|
||||
<covers-preview-cover :src="$store.getters['globals/getLibraryItemCoverSrcById'](libraryItemId, libraryItemUpdatedAt, true)" :width="120" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
||||
|
||||
<!-- book cover overlay -->
|
||||
@@ -14,7 +14,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex-grow sm:pl-2 md:pl-6 sm:pr-2 mt-2 md:mt-0">
|
||||
<div class="flex-grow sm:pl-2 md:pl-6 sm:pr-2 mt-6 md:mt-0">
|
||||
<div class="flex items-center">
|
||||
<div v-if="userCanUpload" class="w-10 md:w-40 pr-2 md:min-w-32">
|
||||
<ui-file-input ref="fileInput" @change="fileUploadSelected">
|
||||
@@ -49,20 +49,20 @@
|
||||
</div>
|
||||
</div>
|
||||
<form @submit.prevent="submitSearchForm">
|
||||
<div class="flex items-center justify-start -mx-1 h-20">
|
||||
<div class="w-48 px-1">
|
||||
<div class="flex flex-wrap sm:flex-nowrap items-center justify-start -mx-1">
|
||||
<div class="w-48 flex-grow p-1">
|
||||
<ui-dropdown v-model="provider" :items="providers" :label="$strings.LabelProvider" small />
|
||||
</div>
|
||||
<div class="w-72 px-1">
|
||||
<div class="w-72 flex-grow p-1">
|
||||
<ui-text-input-with-label v-model="searchTitle" :label="searchTitleLabel" :placeholder="$strings.PlaceholderSearch" />
|
||||
</div>
|
||||
<div v-show="provider != 'itunes' && provider != 'audiobookcovers'" class="w-72 px-1">
|
||||
<div v-show="provider != 'itunes' && provider != 'audiobookcovers'" class="w-72 flex-grow p-1">
|
||||
<ui-text-input-with-label v-model="searchAuthor" :label="$strings.LabelAuthor" />
|
||||
</div>
|
||||
<ui-btn class="mt-5 ml-1" type="submit">{{ $strings.ButtonSearch }}</ui-btn>
|
||||
<ui-btn class="mt-5 ml-1 md:min-w-24" :padding-x="4" type="submit">{{ $strings.ButtonSearch }}</ui-btn>
|
||||
</div>
|
||||
</form>
|
||||
<div v-if="hasSearched" class="flex items-center flex-wrap justify-center max-h-80 overflow-y-scroll mt-2 max-w-full">
|
||||
<div v-if="hasSearched" class="flex items-center flex-wrap justify-center sm:max-h-80 sm:overflow-y-scroll mt-2 max-w-full">
|
||||
<p v-if="!coversFound.length">{{ $strings.MessageNoCoversFound }}</p>
|
||||
<template v-for="cover in coversFound">
|
||||
<div :key="cover" class="m-0.5 mb-5 border-2 border-transparent hover:border-yellow-300 cursor-pointer" :class="cover === coverPath ? 'border-yellow-300' : ''" @click="updateCover(cover)">
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<td class="text-center w-20 min-w-20">
|
||||
<p>{{ episode.episode }}</p>
|
||||
</td>
|
||||
<td>
|
||||
<td dir="auto">
|
||||
{{ episode.title }}
|
||||
</td>
|
||||
<td class="font-mono text-center">
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
</div>
|
||||
<div v-if="media.coverPath">
|
||||
<p class="text-center text-gray-200">Current</p>
|
||||
<a :href="$store.getters['globals/getLibraryItemCoverSrcById'](libraryItemId, null, true)" target="_blank" class="bg-primary">
|
||||
<covers-preview-cover :src="$store.getters['globals/getLibraryItemCoverSrcById'](libraryItemId, null, true)" :width="100" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
||||
<a :href="$store.getters['globals/getLibraryItemCoverSrc'](libraryItem, null, true)" target="_blank" class="bg-primary">
|
||||
<covers-preview-cover :src="$store.getters['globals/getLibraryItemCoverSrc'](libraryItem, null, true)" :width="100" :book-cover-aspect-ratio="bookCoverAspectRatio" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -508,7 +508,10 @@ export default {
|
||||
} else if (key === 'author' && !this.isPodcast) {
|
||||
var authors = this.selectedMatch[key]
|
||||
if (!Array.isArray(authors)) {
|
||||
authors = authors.split(',').map((au) => au.trim())
|
||||
authors = authors
|
||||
.split(',')
|
||||
.map((au) => au.trim())
|
||||
.filter((au) => !!au)
|
||||
}
|
||||
var authorPayload = []
|
||||
authors.forEach((authorName) =>
|
||||
@@ -546,24 +549,11 @@ export default {
|
||||
// Persist in local storage
|
||||
localStorage.setItem('selectedMatchUsage', JSON.stringify(this.selectedMatchUsage))
|
||||
|
||||
if (updatePayload.metadata.cover) {
|
||||
const coverPayload = {
|
||||
url: updatePayload.metadata.cover
|
||||
}
|
||||
const success = await this.$axios.$post(`/api/items/${this.libraryItemId}/cover`, coverPayload).catch((error) => {
|
||||
console.error('Failed to update', error)
|
||||
return false
|
||||
})
|
||||
if (success) {
|
||||
this.$toast.success(this.$strings.ToastItemCoverUpdateSuccess)
|
||||
} else {
|
||||
this.$toast.error(this.$strings.ToastItemCoverUpdateFailed)
|
||||
}
|
||||
console.log('Updated cover')
|
||||
delete updatePayload.metadata.cover
|
||||
}
|
||||
|
||||
if (Object.keys(updatePayload).length) {
|
||||
if (updatePayload.metadata.cover) {
|
||||
updatePayload.url = updatePayload.metadata.cover
|
||||
delete updatePayload.metadata.cover
|
||||
}
|
||||
const mediaUpdatePayload = updatePayload
|
||||
const updateResult = await this.$axios.$patch(`/api/items/${this.libraryItemId}/media`, mediaUpdatePayload).catch((error) => {
|
||||
console.error('Failed to update', error)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
</ui-tooltip>
|
||||
</div>
|
||||
<div v-if="enableAutoDownloadEpisodes" class="flex items-center py-2">
|
||||
<ui-text-input ref="maxEpisodesInput" type="number" v-model="newMaxNewEpisodesToDownload" no-spinner :padding-x="1" text-center class="w-10 text-base" @change="updateMaxNewEpisodesToDownload" />
|
||||
<ui-text-input ref="maxEpisodesToDownloadInput" type="number" v-model="newMaxNewEpisodesToDownload" no-spinner :padding-x="1" text-center class="w-10 text-base" @change="updateMaxNewEpisodesToDownload" />
|
||||
<ui-tooltip text="Value of 0 sets no max limit. When checking for new episodes this is the max number of episodes that will be downloaded.">
|
||||
<p class="pl-4 text-base">
|
||||
Max new episodes to download per check
|
||||
@@ -129,9 +129,12 @@ export default {
|
||||
return
|
||||
}
|
||||
}
|
||||
if (this.$refs.maxEpisodesInput && this.$refs.maxEpisodesInput.isFocused) {
|
||||
|
||||
if (this.$refs.maxEpisodesInput?.isFocused) {
|
||||
this.$refs.maxEpisodesInput.blur()
|
||||
return
|
||||
}
|
||||
if (this.$refs.maxEpisodesToDownloadInput?.isFocused) {
|
||||
this.$refs.maxEpisodesToDownloadInput.blur()
|
||||
}
|
||||
|
||||
const updatePayload = {
|
||||
@@ -140,9 +143,11 @@ export default {
|
||||
if (this.enableAutoDownloadEpisodes) {
|
||||
updatePayload.autoDownloadSchedule = this.cronExpression
|
||||
}
|
||||
this.newMaxEpisodesToKeep = Number(this.newMaxEpisodesToKeep)
|
||||
if (this.newMaxEpisodesToKeep !== this.maxEpisodesToKeep) {
|
||||
updatePayload.maxEpisodesToKeep = this.newMaxEpisodesToKeep
|
||||
}
|
||||
this.newMaxNewEpisodesToDownload = Number(this.newMaxNewEpisodesToDownload)
|
||||
if (this.newMaxNewEpisodesToDownload !== this.maxNewEpisodesToDownload) {
|
||||
updatePayload.maxNewEpisodesToDownload = this.newMaxNewEpisodesToDownload
|
||||
}
|
||||
|
||||
@@ -127,6 +127,7 @@ export default {
|
||||
skipMatchingMediaWithIsbn: false,
|
||||
autoScanCronExpression: null,
|
||||
hideSingleBookSeries: false,
|
||||
onlyShowLaterBooksInContinueSeries: false,
|
||||
metadataPrecedence: ['folderStructure', 'audioMetatags', 'nfoFile', 'txtFiles', 'opfFile', 'absMetadata']
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,6 +49,17 @@
|
||||
</ui-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="isBookLibrary" class="py-3">
|
||||
<div class="flex items-center">
|
||||
<ui-toggle-switch v-model="onlyShowLaterBooksInContinueSeries" @input="formUpdated" />
|
||||
<ui-tooltip :text="$strings.LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp">
|
||||
<p class="pl-4 text-base">
|
||||
{{ $strings.LabelSettingsOnlyShowLaterBooksInContinueSeries }}
|
||||
<span class="material-icons icon-text text-sm">info_outlined</span>
|
||||
</p>
|
||||
</ui-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="isPodcastLibrary" class="py-3">
|
||||
<ui-dropdown :label="$strings.LabelPodcastSearchRegion" v-model="podcastSearchRegion" :items="$podcastSearchRegionOptions" small class="max-w-52" @input="formUpdated" />
|
||||
</div>
|
||||
@@ -73,6 +84,7 @@ export default {
|
||||
skipMatchingMediaWithIsbn: false,
|
||||
audiobooksOnly: false,
|
||||
hideSingleBookSeries: false,
|
||||
onlyShowLaterBooksInContinueSeries: false,
|
||||
podcastSearchRegion: 'us'
|
||||
}
|
||||
},
|
||||
@@ -107,6 +119,7 @@ export default {
|
||||
skipMatchingMediaWithIsbn: !!this.skipMatchingMediaWithIsbn,
|
||||
audiobooksOnly: !!this.audiobooksOnly,
|
||||
hideSingleBookSeries: !!this.hideSingleBookSeries,
|
||||
onlyShowLaterBooksInContinueSeries: !!this.onlyShowLaterBooksInContinueSeries,
|
||||
podcastSearchRegion: this.podcastSearchRegion
|
||||
}
|
||||
}
|
||||
@@ -121,6 +134,7 @@ export default {
|
||||
this.skipMatchingMediaWithIsbn = !!this.librarySettings.skipMatchingMediaWithIsbn
|
||||
this.audiobooksOnly = !!this.librarySettings.audiobooksOnly
|
||||
this.hideSingleBookSeries = !!this.librarySettings.hideSingleBookSeries
|
||||
this.onlyShowLaterBooksInContinueSeries = !!this.librarySettings.onlyShowLaterBooksInContinueSeries
|
||||
this.podcastSearchRegion = this.librarySettings.podcastSearchRegion || 'us'
|
||||
}
|
||||
},
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
<p class="text-xs text-gray-300">{{ podcastAuthor }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="text-lg font-semibold mb-6">{{ title }}</p>
|
||||
<div v-if="description" class="default-style" v-html="description" />
|
||||
<p dir="auto" class="text-lg font-semibold mb-6">{{ title }}</p>
|
||||
<div v-if="description" dir="auto" class="default-style" v-html="description" />
|
||||
<p v-else class="mb-2">{{ $strings.MessageNoDescription }}</p>
|
||||
</div>
|
||||
</modals-modal>
|
||||
|
||||
@@ -1,22 +1,30 @@
|
||||
<template>
|
||||
<div class="flex pt-4 pb-2 md:pt-0 md:pb-2">
|
||||
<div class="flex items-center pt-4 pb-2 lg:pt-0 lg:pb-2">
|
||||
<div class="flex-grow" />
|
||||
<template v-if="!loading">
|
||||
<button :aria-label="$strings.ButtonPreviousChapter" class="flex items-center justify-center text-gray-300 mr-4 md:mr-8" @mousedown.prevent @mouseup.prevent @click.stop="prevChapter">
|
||||
<span class="material-icons text-2xl sm:text-3xl">first_page</span>
|
||||
</button>
|
||||
<button :aria-label="$strings.ButtonJumpBackward" class="flex items-center justify-center text-gray-300" @mousedown.prevent @mouseup.prevent @click.stop="jumpBackward">
|
||||
<span class="material-icons text-2xl sm:text-3xl">replay_10</span>
|
||||
</button>
|
||||
<button :aria-label="paused ? $strings.ButtonPlay : $strings.ButtonPause" class="p-2 shadow-sm bg-accent flex items-center justify-center rounded-full text-primary mx-4 md:mx-8" :class="seekLoading ? 'animate-spin' : ''" @mousedown.prevent @mouseup.prevent @click.stop="playPause">
|
||||
<ui-tooltip direction="top" :text="$strings.ButtonPreviousChapter" class="mr-4 lg:mr-8">
|
||||
<button :aria-label="$strings.ButtonPreviousChapter" class="text-gray-300" @mousedown.prevent @mouseup.prevent @click.stop="prevChapter">
|
||||
<span class="material-icons text-2xl sm:text-3xl">first_page</span>
|
||||
</button>
|
||||
</ui-tooltip>
|
||||
<ui-tooltip direction="top" :text="$strings.ButtonJumpBackward">
|
||||
<button :aria-label="$strings.ButtonJumpBackward" class="text-gray-300" @mousedown.prevent @mouseup.prevent @click.stop="jumpBackward">
|
||||
<span class="material-icons text-2xl sm:text-3xl">replay_10</span>
|
||||
</button>
|
||||
</ui-tooltip>
|
||||
<button :aria-label="paused ? $strings.ButtonPlay : $strings.ButtonPause" class="p-2 shadow-sm bg-accent flex items-center justify-center rounded-full text-primary mx-4 lg:mx-8" :class="seekLoading ? 'animate-spin' : ''" @mousedown.prevent @mouseup.prevent @click.stop="playPause">
|
||||
<span class="material-icons text-2xl">{{ seekLoading ? 'autorenew' : paused ? 'play_arrow' : 'pause' }}</span>
|
||||
</button>
|
||||
<button :aria-label="$strings.ButtonJumpForward" class="flex items-center justify-center text-gray-300" @mousedown.prevent @mouseup.prevent @click.stop="jumpForward">
|
||||
<span class="material-icons text-2xl sm:text-3xl">forward_10</span>
|
||||
</button>
|
||||
<button :aria-label="$strings.ButtonNextChapter" class="flex items-center justify-center ml-4 md:ml-8" :disabled="!hasNextChapter" :class="hasNextChapter ? 'text-gray-300' : 'text-gray-500'" @mousedown.prevent @mouseup.prevent @click.stop="nextChapter">
|
||||
<span class="material-icons text-2xl sm:text-3xl">last_page</span>
|
||||
</button>
|
||||
<ui-tooltip direction="top" :text="$strings.ButtonJumpForward">
|
||||
<button :aria-label="$strings.ButtonJumpForward" class="text-gray-300" @mousedown.prevent @mouseup.prevent @click.stop="jumpForward">
|
||||
<span class="material-icons text-2xl sm:text-3xl">forward_10</span>
|
||||
</button>
|
||||
</ui-tooltip>
|
||||
<ui-tooltip direction="top" :text="$strings.ButtonNextChapter" class="ml-4 lg:ml-8">
|
||||
<button :aria-label="$strings.ButtonNextChapter" :disabled="!hasNextChapter" :class="hasNextChapter ? 'text-gray-300' : 'text-gray-500'" @mousedown.prevent @mouseup.prevent @click.stop="nextChapter">
|
||||
<span class="material-icons text-2xl sm:text-3xl">last_page</span>
|
||||
</button>
|
||||
</ui-tooltip>
|
||||
<controls-playback-speed-control v-model="playbackRateInput" @input="playbackRateUpdated" @change="playbackRateChanged" />
|
||||
</template>
|
||||
<template v-else>
|
||||
|
||||
@@ -57,7 +57,6 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
duration: {
|
||||
immediate: true,
|
||||
handler() {
|
||||
this.setChapterTicks()
|
||||
}
|
||||
@@ -205,10 +204,14 @@ export default {
|
||||
},
|
||||
windowResize() {
|
||||
this.setTrackWidth()
|
||||
this.setChapterTicks()
|
||||
this.updatePlayedTrackWidth()
|
||||
this.updateBufferTrack()
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.setTrackWidth()
|
||||
this.setChapterTicks()
|
||||
window.addEventListener('resize', this.windowResize)
|
||||
},
|
||||
beforeDestroy() {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="w-full -mt-6">
|
||||
<div class="w-full relative mb-1">
|
||||
<div class="absolute -top-10 md:top-0 right-0 lg:right-2 flex items-center h-full">
|
||||
<div class="absolute -top-10 lg:top-0 right-0 lg:right-2 flex items-center h-full">
|
||||
<!-- <span class="material-icons text-2xl cursor-pointer" @click="toggleFullscreen(true)">expand_less</span> -->
|
||||
|
||||
<ui-tooltip direction="top" :text="$strings.LabelVolume">
|
||||
|
||||
@@ -334,7 +334,7 @@ export default {
|
||||
}
|
||||
},
|
||||
parseFilenames(filenames) {
|
||||
const acceptableImages = ['.jpeg', '.jpg', '.png']
|
||||
const acceptableImages = ['.jpeg', '.jpg', '.png', '.webp']
|
||||
var imageFiles = filenames.filter((f) => {
|
||||
return acceptableImages.includes((Path.extname(f) || '').toLowerCase())
|
||||
})
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
<template>
|
||||
<div class="flex flex-wrap justify-center mt-6">
|
||||
<div class="flex px-2">
|
||||
<svg class="h-14 w-14 md:h-18 md:w-18" viewBox="0 0 24 24">
|
||||
<div class="flex p-2">
|
||||
<svg class="h-14 w-14" viewBox="0 0 24 24">
|
||||
<path fill="currentColor" d="M9 3V18H12V3H9M12 5L16 18L19 17L15 4L12 5M5 5V18H8V5H5M3 19V21H21V19H3Z" />
|
||||
</svg>
|
||||
<div class="px-2">
|
||||
<p class="text-4xl md:text-5xl font-bold">{{ totalItems }}</p>
|
||||
<div class="px-1">
|
||||
<p class="text-4.5xl leading-none font-bold">{{ $formatNumber(totalItems) }}</p>
|
||||
<p class="text-xs md:text-sm text-white text-opacity-80">{{ $strings.LabelStatsItemsInLibrary }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex px-4">
|
||||
<span class="material-icons text-7xl">show_chart</span>
|
||||
<div class="flex p-2">
|
||||
<span class="material-icons text-5xl py-1">show_chart</span>
|
||||
<div class="px-1">
|
||||
<p class="text-4xl md:text-5xl font-bold">{{ totalTime }}</p>
|
||||
<p class="text-4.5xl leading-none font-bold">{{ $formatNumber(totalTime) }}</p>
|
||||
<p class="text-xs md:text-sm text-white text-opacity-80">{{ useOverallHours ? $strings.LabelStatsOverallHours : $strings.LabelStatsOverallDays }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="isBookLibrary" class="flex px-4">
|
||||
<svg class="h-14 w-14 md:h-18 md:w-18" viewBox="0 0 24 24">
|
||||
<div v-if="isBookLibrary" class="flex p-2">
|
||||
<svg class="h-14 w-14" viewBox="0 0 24 24">
|
||||
<path fill="currentColor" d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,6A2,2 0 0,0 10,8A2,2 0 0,0 12,10A2,2 0 0,0 14,8A2,2 0 0,0 12,6M12,13C14.67,13 20,14.33 20,17V20H4V17C4,14.33 9.33,13 12,13M12,14.9C9.03,14.9 5.9,16.36 5.9,17V18.1H18.1V17C18.1,16.36 14.97,14.9 12,14.9Z" />
|
||||
</svg>
|
||||
<div class="px-1">
|
||||
<p class="text-4xl md:text-5xl font-bold">{{ totalAuthors }}</p>
|
||||
<p class="text-4.5xl leading-none font-bold">{{ $formatNumber(totalAuthors) }}</p>
|
||||
<p class="text-xs md:text-sm text-white text-opacity-80">{{ $strings.LabelStatsAuthors }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex px-4">
|
||||
<span class="material-icons-outlined text-6xl pt-1">insert_drive_file</span>
|
||||
<div class="flex p-2">
|
||||
<span class="material-icons-outlined text-5xl pt-1">insert_drive_file</span>
|
||||
<div class="px-1">
|
||||
<p class="text-4xl md:text-5xl font-bold">{{ totalSizeNum }}</p>
|
||||
<p class="text-4.5xl leading-none font-bold">{{ $formatNumber(totalSizeNum) }}</p>
|
||||
<p class="text-xs md:text-sm text-white text-opacity-80">{{ $strings.LabelSize }} ({{ totalSizeMod }})</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex px-4">
|
||||
<span class="material-icons-outlined text-6xl pt-1">audio_file</span>
|
||||
<div class="flex p-2">
|
||||
<span class="material-icons-outlined text-5xl pt-1">audio_file</span>
|
||||
<div class="px-1">
|
||||
<p class="text-4xl md:text-5xl font-bold">{{ numAudioTracks }}</p>
|
||||
<p class="text-4.5xl leading-none font-bold">{{ $formatNumber(numAudioTracks) }}</p>
|
||||
<p class="text-xs md:text-sm text-white text-opacity-80">{{ $strings.LabelStatsAudioTracks }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -7,9 +7,10 @@
|
||||
</div>
|
||||
|
||||
<div class="flex items-center">
|
||||
<p class="hidden md:block text-xl font-semibold">{{ yearInReviewYear }} Year in Review</p>
|
||||
<p class="hidden md:block text-xl font-semibold">{{ $getString('HeaderYearReview', [yearInReviewYear]) }}</p>
|
||||
<div class="hidden md:block flex-grow" />
|
||||
<ui-btn class="w-full md:w-auto" @click.stop="clickShowYearInReview">{{ showYearInReview ? 'Hide Year in Review' : 'See Year in Review' }}</ui-btn>
|
||||
<ui-btn class="w-full md:w-auto" @click.stop="clickShowYearInReview">{{ showYearInReview ? $strings.LabelYearReviewHide :
|
||||
$strings.LabelYearReviewShow }}</ui-btn>
|
||||
</div>
|
||||
|
||||
<!-- your year in review -->
|
||||
@@ -20,24 +21,27 @@
|
||||
<!-- previous button -->
|
||||
<ui-btn small :disabled="!yearInReviewVariant || processingYearInReview" class="inline-flex items-center font-semibold" @click="yearInReviewVariant--">
|
||||
<span class="material-icons text-lg sm:pr-1 py-px sm:py-0">chevron_left</span>
|
||||
<span class="hidden sm:inline-block pr-2">Previous</span>
|
||||
<span class="hidden sm:inline-block pr-2">{{ $strings.ButtonPrevious }}</span>
|
||||
</ui-btn>
|
||||
<!-- share button -->
|
||||
<ui-btn v-if="showShareButton" small :disabled="processingYearInReview" class="inline-flex sm:hidden items-center font-semibold ml-1 sm:ml-2" @click="shareYearInReview"> Share </ui-btn>
|
||||
<ui-btn v-if="showShareButton" small :disabled="processingYearInReview" class="inline-flex sm:hidden items-center font-semibold ml-1 sm:ml-2" @click="shareYearInReview">{{
|
||||
$strings.ButtonShare }}
|
||||
</ui-btn>
|
||||
|
||||
<div class="flex-grow" />
|
||||
<p class="hidden sm:block text-lg font-semibold">Your Year in Review ({{ yearInReviewVariant + 1 }})</p>
|
||||
<p class="hidden sm:block text-lg font-semibold">{{ $getString('LabelPersonalYearReview', [yearInReviewVariant + 1]) }}
|
||||
</p>
|
||||
<p class="block sm:hidden text-lg font-semibold">{{ yearInReviewVariant + 1 }}</p>
|
||||
<div class="flex-grow" />
|
||||
|
||||
<!-- refresh button -->
|
||||
<ui-btn small :disabled="processingYearInReview" class="inline-flex items-center font-semibold mr-1 sm:mr-2" @click="refreshYearInReview">
|
||||
<span class="hidden sm:inline-block">Refresh</span>
|
||||
<span class="hidden sm:inline-block">{{ $strings.ButtonRefresh }}</span>
|
||||
<span class="material-icons sm:!hidden text-lg py-px">refresh</span>
|
||||
</ui-btn>
|
||||
<!-- next button -->
|
||||
<ui-btn small :disabled="yearInReviewVariant >= 2 || processingYearInReview" class="inline-flex items-center font-semibold" @click="yearInReviewVariant++">
|
||||
<span class="hidden sm:inline-block pl-2">Next</span>
|
||||
<span class="hidden sm:inline-block pl-2">{{ $strings.ButtonNext }}</span>
|
||||
<span class="material-icons-outlined text-lg sm:pl-1 py-px sm:py-0">chevron_right</span>
|
||||
</ui-btn>
|
||||
</div>
|
||||
@@ -46,7 +50,7 @@
|
||||
<!-- your year in review short -->
|
||||
<div class="w-full max-w-[800px] mx-auto my-4">
|
||||
<!-- share button -->
|
||||
<ui-btn v-if="showShareButton" small :disabled="processingYearInReviewShort" class="inline-flex sm:hidden items-center font-semibold mb-1" @click="shareYearInReviewShort"> Share </ui-btn>
|
||||
<ui-btn v-if="showShareButton" small :disabled="processingYearInReviewShort" class="inline-flex sm:hidden items-center font-semibold mb-1" @click="shareYearInReviewShort">{{ $strings.ButtonShare }}</ui-btn>
|
||||
<stats-year-in-review-short ref="yearInReviewShort" :year="yearInReviewYear" :processing.sync="processingYearInReviewShort" />
|
||||
</div>
|
||||
|
||||
@@ -56,24 +60,25 @@
|
||||
<!-- previous button -->
|
||||
<ui-btn small :disabled="!yearInReviewServerVariant || processingYearInReviewServer" class="inline-flex items-center font-semibold" @click="yearInReviewServerVariant--">
|
||||
<span class="material-icons text-lg sm:pr-1 py-px sm:py-0">chevron_left</span>
|
||||
<span class="hidden sm:inline-block pr-2">Previous</span>
|
||||
<span class="hidden sm:inline-block pr-2">{{ $strings.ButtonPrevious }}</span>
|
||||
</ui-btn>
|
||||
<!-- share button -->
|
||||
<ui-btn v-if="showShareButton" small :disabled="processingYearInReviewServer" class="inline-flex sm:hidden items-center font-semibold ml-1 sm:ml-2" @click="shareYearInReviewServer"> Share </ui-btn>
|
||||
<ui-btn v-if="showShareButton" small :disabled="processingYearInReviewServer" class="inline-flex sm:hidden items-center font-semibold ml-1 sm:ml-2" @click="shareYearInReviewServer">{{ $strings.ButtonShare }}
|
||||
</ui-btn>
|
||||
|
||||
<div class="flex-grow" />
|
||||
<p class="hidden sm:block text-lg font-semibold">Server Year in Review ({{ yearInReviewServerVariant + 1 }})</p>
|
||||
<p class="hidden sm:block text-lg font-semibold">{{ $getString('LabelServerYearReview', [yearInReviewServerVariant + 1]) }}</p>
|
||||
<p class="block sm:hidden text-lg font-semibold">{{ yearInReviewServerVariant + 1 }}</p>
|
||||
<div class="flex-grow" />
|
||||
|
||||
<!-- refresh button -->
|
||||
<ui-btn small :disabled="processingYearInReviewServer" class="inline-flex items-center font-semibold mr-1 sm:mr-2" @click="refreshYearInReviewServer">
|
||||
<span class="hidden sm:inline-block">Refresh</span>
|
||||
<span class="hidden sm:inline-block">{{ $strings.ButtonRefresh }}</span>
|
||||
<span class="material-icons sm:!hidden text-lg py-px">refresh</span>
|
||||
</ui-btn>
|
||||
<!-- next button -->
|
||||
<ui-btn small :disabled="yearInReviewServerVariant >= 2 || processingYearInReviewServer" class="inline-flex items-center font-semibold" @click="yearInReviewServerVariant++">
|
||||
<span class="hidden sm:inline-block pl-2">Next</span>
|
||||
<span class="hidden sm:inline-block pl-2">{{ $strings.ButtonNext }}</span>
|
||||
<span class="material-icons-outlined text-lg sm:pl-1 py-px sm:py-0">chevron_right</span>
|
||||
</ui-btn>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="text-center mt-4">
|
||||
<div class="text-center mt-4 relative">
|
||||
<div class="flex py-4">
|
||||
<ui-file-input ref="fileInput" class="mr-2" accept=".audiobookshelf" @change="backupUploaded">{{ $strings.ButtonUploadBackup }}</ui-file-input>
|
||||
<div class="flex-grow" />
|
||||
@@ -54,6 +54,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</prompt-dialog>
|
||||
|
||||
<div v-if="isApplyingBackup" class="absolute inset-0 w-full h-full flex items-center justify-center bg-black/20 rounded-md">
|
||||
<ui-loading-indicator />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -64,6 +68,7 @@ export default {
|
||||
showConfirmApply: false,
|
||||
selectedBackup: null,
|
||||
isBackingUp: false,
|
||||
isApplyingBackup: false,
|
||||
processing: false,
|
||||
backups: []
|
||||
}
|
||||
@@ -85,19 +90,21 @@ export default {
|
||||
},
|
||||
confirm() {
|
||||
this.showConfirmApply = false
|
||||
this.isApplyingBackup = true
|
||||
|
||||
this.$axios
|
||||
.$get(`/api/backups/${this.selectedBackup.id}/apply`)
|
||||
.then(() => {
|
||||
this.isBackingUp = false
|
||||
location.replace('/config/backups?backup=1')
|
||||
})
|
||||
.catch((error) => {
|
||||
this.isBackingUp = false
|
||||
console.error('Failed to apply backup', error)
|
||||
const errorMsg = error.response.data || this.$strings.ToastBackupRestoreFailed
|
||||
this.$toast.error(errorMsg)
|
||||
})
|
||||
.finally(() => {
|
||||
this.isApplyingBackup = false
|
||||
})
|
||||
},
|
||||
deleteBackupClick(backup) {
|
||||
if (confirm(this.$getString('MessageConfirmDeleteBackup', [this.$formatDatetime(backup.createdAt, this.dateFormat, this.timeFormat)]))) {
|
||||
@@ -180,7 +187,6 @@ export default {
|
||||
this.loadBackups()
|
||||
if (this.$route.query.backup) {
|
||||
this.$toast.success('Backup applied successfully')
|
||||
this.$router.replace('/config')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<td class="text-left">
|
||||
<p class="px-4">{{ chapter.id }}</p>
|
||||
</td>
|
||||
<td>
|
||||
<td dir="auto">
|
||||
{{ chapter.title }}
|
||||
</td>
|
||||
<td class="font-mono text-center hover:underline cursor-pointer" @click.stop="goToTimestamp(chapter.start)">
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<widgets-podcast-type-indicator :type="downloadQueued.episodeType" />
|
||||
</div>
|
||||
</td>
|
||||
<td class="px-4">
|
||||
<td dir="auto" class="px-4">
|
||||
{{ downloadQueued.episodeDisplayTitle }}
|
||||
</td>
|
||||
<td class="text-xs">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div :id="`lazy-episode-${index}`" class="w-full h-full cursor-pointer" @mouseover="mouseover" @mouseleave="mouseleave">
|
||||
<div class="flex" @click="clickedEpisode">
|
||||
<div class="flex-grow">
|
||||
<div class="flex items-center">
|
||||
<div dir="auto" class="flex items-center">
|
||||
<span class="text-sm font-semibold">{{ episodeTitle }}</span>
|
||||
<widgets-podcast-type-indicator :type="episodeType" />
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<input ref="fileInput" type="file" :accept="accept" class="hidden" @change="inputChanged" />
|
||||
<ui-btn @click="clickUpload" color="primary" class="hidden md:block" type="text"><slot /></ui-btn>
|
||||
<ui-btn @click="clickUpload" color="primary" class="hidden md:block w-full" type="text"><slot /></ui-btn>
|
||||
<ui-icon-btn @click="clickUpload" icon="upload" class="block md:hidden" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
</div>
|
||||
{{ item }}
|
||||
</div>
|
||||
<input v-show="!readonly" ref="input" v-model="textInput" :disabled="disabled" style="min-width: 40px; width: 40px" class="h-full bg-primary focus:outline-none px-1" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" @paste="inputPaste" />
|
||||
<input v-show="!readonly" ref="input" v-model="textInput" :disabled="disabled" class="h-full bg-primary focus:outline-none px-1 w-6" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" @paste="inputPaste" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<ul ref="menu" v-show="showMenu" class="absolute z-60 mt-1 w-full bg-bg border border-black-200 shadow-lg max-h-56 rounded-md py-1 text-base ring-1 ring-black ring-opacity-5 overflow-auto focus:outline-none sm:text-sm" role="listbox" aria-labelledby="listbox-label">
|
||||
<template v-for="item in itemsToShow">
|
||||
<li :key="item" class="text-gray-50 select-none relative py-2 pr-9 cursor-pointer hover:bg-black-400" role="option" @click="clickedOption($event, item)" @mouseup.stop.prevent @mousedown.prevent>
|
||||
<li :key="item" class="text-gray-50 select-none relative py-2 pr-9 cursor-pointer hover:bg-black-400" :class="itemsToShow[selectedMenuItemIndex] === item ? 'text-yellow-300' : ''" role="option" @click="clickedOption($event, item)" @mouseup.stop.prevent @mousedown.prevent>
|
||||
<div class="flex items-center">
|
||||
<span class="font-normal ml-3 block truncate">{{ item }}</span>
|
||||
</div>
|
||||
@@ -54,7 +54,7 @@ export default {
|
||||
menuDisabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -62,7 +62,9 @@ export default {
|
||||
currentSearch: null,
|
||||
typingTimeout: null,
|
||||
isFocused: false,
|
||||
menu: null
|
||||
menu: null,
|
||||
filteredItems: null,
|
||||
selectedMenuItemIndex: null
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -91,24 +93,63 @@ export default {
|
||||
return classes.join(' ')
|
||||
},
|
||||
itemsToShow() {
|
||||
if (!this.currentSearch || !this.textInput) {
|
||||
if (!this.currentSearch || !this.textInput || !this.filteredItems) {
|
||||
return this.items
|
||||
}
|
||||
|
||||
return this.items.filter((i) => {
|
||||
var iValue = String(i).toLowerCase()
|
||||
return iValue.includes(this.currentSearch.toLowerCase())
|
||||
})
|
||||
return this.filteredItems
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
editItem(item) {
|
||||
this.$emit('edit', item)
|
||||
},
|
||||
keydownInput() {
|
||||
search() {
|
||||
if (!this.textInput) {
|
||||
this.filteredItems = null
|
||||
return
|
||||
}
|
||||
this.currentSearch = this.textInput
|
||||
|
||||
const results = this.items.filter((i) => {
|
||||
var iValue = String(i).toLowerCase()
|
||||
return iValue.includes(this.currentSearch.toLowerCase())
|
||||
})
|
||||
|
||||
this.filteredItems = results || []
|
||||
},
|
||||
keydownInput(event) {
|
||||
let items = this.itemsToShow
|
||||
if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
|
||||
event.preventDefault()
|
||||
if (!items.length) return
|
||||
if (event.key === 'ArrowDown') {
|
||||
if (this.selectedMenuItemIndex === null) {
|
||||
this.selectedMenuItemIndex = 0
|
||||
} else {
|
||||
this.selectedMenuItemIndex = Math.min(this.selectedMenuItemIndex + 1, items.length - 1)
|
||||
}
|
||||
} else if (event.key === 'ArrowUp') {
|
||||
if (this.selectedMenuItemIndex === null) {
|
||||
this.selectedMenuItemIndex = items.length - 1
|
||||
} else {
|
||||
this.selectedMenuItemIndex = Math.max(this.selectedMenuItemIndex - 1, 0)
|
||||
}
|
||||
}
|
||||
this.recalcScroll()
|
||||
return
|
||||
} else if (event.key === 'Enter') {
|
||||
if (this.selectedMenuItemIndex !== null) {
|
||||
this.clickedOption(event, items[this.selectedMenuItemIndex])
|
||||
} else {
|
||||
this.submitForm()
|
||||
}
|
||||
return
|
||||
}
|
||||
this.selectedMenuItemIndex = null
|
||||
clearTimeout(this.typingTimeout)
|
||||
this.typingTimeout = setTimeout(() => {
|
||||
this.currentSearch = this.textInput
|
||||
this.search()
|
||||
}, 100)
|
||||
this.setInputWidth()
|
||||
},
|
||||
@@ -120,6 +161,24 @@ export default {
|
||||
this.recalcMenuPos()
|
||||
}, 50)
|
||||
},
|
||||
recalcScroll() {
|
||||
if (!this.menu) return
|
||||
var menuItems = this.menu.querySelectorAll('li')
|
||||
if (!menuItems.length) return
|
||||
var selectedItem = menuItems[this.selectedMenuItemIndex]
|
||||
if (!selectedItem) return
|
||||
var menuHeight = this.menu.offsetHeight
|
||||
var itemHeight = selectedItem.offsetHeight
|
||||
var itemTop = selectedItem.offsetTop
|
||||
var itemBottom = itemTop + itemHeight
|
||||
if (itemBottom > this.menu.scrollTop + menuHeight) {
|
||||
let menuPaddingBottom = parseFloat(window.getComputedStyle(this.menu).paddingBottom)
|
||||
this.menu.scrollTop = itemBottom - menuHeight + menuPaddingBottom
|
||||
} else if (itemTop < this.menu.scrollTop) {
|
||||
let menuPaddingTop = parseFloat(window.getComputedStyle(this.menu).paddingTop)
|
||||
this.menu.scrollTop = itemTop - menuPaddingTop
|
||||
}
|
||||
},
|
||||
recalcMenuPos() {
|
||||
if (!this.menu || !this.$refs.inputWrapper) return
|
||||
var boundingBox = this.$refs.inputWrapper.getBoundingClientRect()
|
||||
@@ -208,7 +267,10 @@ export default {
|
||||
e.stopPropagation()
|
||||
e.preventDefault()
|
||||
}
|
||||
if (this.$refs.input) this.$refs.input.focus()
|
||||
if (this.$refs.input) {
|
||||
this.$refs.input.style.width = '24px'
|
||||
this.$refs.input.focus()
|
||||
}
|
||||
|
||||
var newSelected = null
|
||||
if (this.selected.includes(itemValue)) {
|
||||
@@ -219,6 +281,7 @@ export default {
|
||||
}
|
||||
this.textInput = null
|
||||
this.currentSearch = null
|
||||
this.selectedMenuItemIndex = null
|
||||
this.$emit('input', newSelected)
|
||||
this.$nextTick(() => {
|
||||
this.recalcMenuPos()
|
||||
@@ -245,6 +308,7 @@ export default {
|
||||
this.$emit('newItem', item)
|
||||
this.textInput = null
|
||||
this.currentSearch = null
|
||||
this.selectedMenuItemIndex = null
|
||||
this.$nextTick(() => {
|
||||
this.blur()
|
||||
})
|
||||
@@ -261,6 +325,7 @@ export default {
|
||||
} else {
|
||||
this.insertNewItem(this.textInput)
|
||||
}
|
||||
if (this.$refs.input) this.$refs.input.style.width = '24px'
|
||||
},
|
||||
scroll() {
|
||||
this.recalcMenuPos()
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
<div v-if="showEdit && !disabled" class="rounded-full cursor-pointer w-6 h-6 mx-0.5 bg-bg flex items-center justify-center">
|
||||
<span class="material-icons text-white hover:text-success pt-px pr-px" style="font-size: 1.1rem" @click.stop="addItem">add</span>
|
||||
</div>
|
||||
<input v-show="!readonly" ref="input" v-model="textInput" :disabled="disabled" style="min-width: 40px; width: 40px" class="h-full bg-primary focus:outline-none px-1" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" @paste="inputPaste" />
|
||||
<input v-show="!readonly" ref="input" v-model="textInput" :disabled="disabled" class="h-full bg-primary focus:outline-none px-1 w-6" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" @paste="inputPaste" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<ul ref="menu" v-show="showMenu" class="absolute z-60 w-full bg-bg border border-black-200 shadow-lg max-h-56 rounded-md py-1 text-base ring-1 ring-black ring-opacity-5 overflow-auto focus:outline-none sm:text-sm" role="listbox" aria-labelledby="listbox-label">
|
||||
<template v-for="item in itemsToShow">
|
||||
<li :key="item.id" class="text-gray-50 select-none relative py-2 pr-9 cursor-pointer hover:bg-black-400" role="option" @click="clickedOption($event, item)" @mouseup.stop.prevent @mousedown.prevent>
|
||||
<li :key="item.id" class="text-gray-50 select-none relative py-2 pr-9 cursor-pointer hover:bg-black-400" :class="itemsToShow[selectedMenuItemIndex] === item ? 'text-yellow-300' : ''" role="option" @click="clickedOption($event, item)" @mouseup.stop.prevent @mousedown.prevent>
|
||||
<div class="flex items-center">
|
||||
<span class="font-normal ml-3 block truncate">{{ item.name }}</span>
|
||||
</div>
|
||||
@@ -63,7 +63,8 @@ export default {
|
||||
typingTimeout: null,
|
||||
isFocused: false,
|
||||
menu: null,
|
||||
items: []
|
||||
items: [],
|
||||
selectedMenuItemIndex: null
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -122,7 +123,35 @@ export default {
|
||||
|
||||
this.items = results || []
|
||||
},
|
||||
keydownInput() {
|
||||
keydownInput(event) {
|
||||
let items = this.itemsToShow
|
||||
if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
|
||||
event.preventDefault()
|
||||
if (!items.length) return
|
||||
if (event.key === 'ArrowDown') {
|
||||
if (this.selectedMenuItemIndex === null) {
|
||||
this.selectedMenuItemIndex = 0
|
||||
} else {
|
||||
this.selectedMenuItemIndex = Math.min(this.selectedMenuItemIndex + 1, items.length - 1)
|
||||
}
|
||||
} else if (event.key === 'ArrowUp') {
|
||||
if (this.selectedMenuItemIndex === null) {
|
||||
this.selectedMenuItemIndex = items.length - 1
|
||||
} else {
|
||||
this.selectedMenuItemIndex = Math.max(this.selectedMenuItemIndex - 1, 0)
|
||||
}
|
||||
}
|
||||
this.recalcScroll()
|
||||
return
|
||||
} else if (event.key === 'Enter') {
|
||||
if (this.selectedMenuItemIndex !== null) {
|
||||
this.clickedOption(event, items[this.selectedMenuItemIndex])
|
||||
} else {
|
||||
this.submitForm()
|
||||
}
|
||||
return
|
||||
}
|
||||
this.selectedMenuItemIndex = null
|
||||
clearTimeout(this.typingTimeout)
|
||||
this.typingTimeout = setTimeout(() => {
|
||||
this.search()
|
||||
@@ -137,6 +166,24 @@ export default {
|
||||
this.recalcMenuPos()
|
||||
}, 50)
|
||||
},
|
||||
recalcScroll() {
|
||||
if (!this.menu) return
|
||||
var menuItems = this.menu.querySelectorAll('li')
|
||||
if (!menuItems.length) return
|
||||
var selectedItem = menuItems[this.selectedMenuItemIndex]
|
||||
if (!selectedItem) return
|
||||
var menuHeight = this.menu.offsetHeight
|
||||
var itemHeight = selectedItem.offsetHeight
|
||||
var itemTop = selectedItem.offsetTop
|
||||
var itemBottom = itemTop + itemHeight
|
||||
if (itemBottom > this.menu.scrollTop + menuHeight) {
|
||||
let menuPaddingBottom = parseFloat(window.getComputedStyle(this.menu).paddingBottom)
|
||||
this.menu.scrollTop = itemBottom - menuHeight + menuPaddingBottom
|
||||
} else if (itemTop < this.menu.scrollTop) {
|
||||
let menuPaddingTop = parseFloat(window.getComputedStyle(this.menu).paddingTop)
|
||||
this.menu.scrollTop = itemTop - menuPaddingTop
|
||||
}
|
||||
},
|
||||
recalcMenuPos() {
|
||||
if (!this.menu || !this.$refs.inputWrapper) return
|
||||
var boundingBox = this.$refs.inputWrapper.getBoundingClientRect()
|
||||
@@ -228,7 +275,10 @@ export default {
|
||||
e.stopPropagation()
|
||||
e.preventDefault()
|
||||
}
|
||||
if (this.$refs.input) this.$refs.input.focus()
|
||||
if (this.$refs.input) {
|
||||
this.$refs.input.style.width = '24px'
|
||||
this.$refs.input.focus()
|
||||
}
|
||||
|
||||
let newSelected = null
|
||||
if (this.getIsSelected(item.id)) {
|
||||
@@ -244,6 +294,7 @@ export default {
|
||||
}
|
||||
this.textInput = null
|
||||
this.currentSearch = null
|
||||
this.selectedMenuItemIndex = null
|
||||
|
||||
this.$emit('input', newSelected)
|
||||
this.$nextTick(() => {
|
||||
@@ -271,6 +322,7 @@ export default {
|
||||
this.$emit('newItem', item)
|
||||
this.textInput = null
|
||||
this.currentSearch = null
|
||||
this.selectedMenuItemIndex = null
|
||||
this.$nextTick(() => {
|
||||
this.blur()
|
||||
})
|
||||
@@ -291,6 +343,7 @@ export default {
|
||||
name: this.textInput
|
||||
})
|
||||
}
|
||||
if (this.$refs.input) this.$refs.input.style.width = '24px'
|
||||
},
|
||||
scroll() {
|
||||
this.recalcMenuPos()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div ref="wrapper" class="relative">
|
||||
<input :id="inputId" ref="input" v-model="inputValue" :type="actualType" :step="step" :min="min" :readonly="readonly" :disabled="disabled" :placeholder="placeholder" 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">
|
||||
<span class="material-icons text-gray-300 cursor-pointer" style="font-size: 1.1rem" @click.stop.prevent="clear">close</span>
|
||||
</div>
|
||||
@@ -33,6 +33,7 @@ export default {
|
||||
textCenter: Boolean,
|
||||
clearable: Boolean,
|
||||
inputId: String,
|
||||
inputName: String,
|
||||
step: [String, Number],
|
||||
min: [String, Number]
|
||||
},
|
||||
@@ -117,4 +118,4 @@ input:read-only {
|
||||
input::-webkit-calendar-picker-indicator {
|
||||
filter: invert(1);
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
>{{ label }}<em v-if="note" class="font-normal text-xs pl-2">{{ note }}</em></label
|
||||
>
|
||||
</slot>
|
||||
<ui-text-input :placeholder="label" :inputId="identifier" ref="input" v-model="inputValue" :disabled="disabled" :readonly="readonly" :type="type" class="w-full" :class="inputClass" @blur="inputBlurred" />
|
||||
<ui-text-input :placeholder="placeholder || label" :inputId="identifier" ref="input" v-model="inputValue" :disabled="disabled" :readonly="readonly" :type="type" class="w-full" :class="inputClass" @blur="inputBlurred" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -14,6 +14,7 @@ export default {
|
||||
props: {
|
||||
value: [String, Number],
|
||||
label: String,
|
||||
placeholder: String,
|
||||
note: String,
|
||||
type: {
|
||||
type: String,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<textarea ref="input" v-model="inputValue" :rows="rows" :readonly="readonly" :disabled="disabled" :placeholder="placeholder" class="py-2 px-3 rounded bg-primary text-gray-200 focus:border-gray-500 focus:outline-none" :class="transparent ? '' : 'border border-gray-600'" @change="change" />
|
||||
<textarea ref="input" v-model="inputValue" :rows="rows" :readonly="readonly" :disabled="disabled" :placeholder="placeholder" dir="auto" class="py-2 px-3 rounded bg-primary text-gray-200 focus:border-gray-500 focus:outline-none" :class="transparent ? '' : 'border border-gray-600'" @change="change" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
<template>
|
||||
<div class="w-full">
|
||||
<div v-if="missingParts.length" class="bg-error border-red-800 shadow-md p-4">
|
||||
<p class="text-sm mb-2">
|
||||
{{ $strings.LabelMissingParts }} <span class="text-sm">({{ missingParts.length }})</span>
|
||||
</p>
|
||||
<p class="text-sm font-mono">{{ missingPartChunks.join(', ') }}</p>
|
||||
</div>
|
||||
|
||||
<div v-if="invalidParts.length" class="bg-error border-red-800 shadow-md p-4">
|
||||
<p class="text-sm mb-2">
|
||||
{{ $strings.LabelInvalidParts }} <span class="text-sm">({{ invalidParts.length }})</span>
|
||||
</p>
|
||||
<div>
|
||||
<p v-for="part in invalidParts" :key="part.filename" class="text-sm font-mono">{{ part.filename }}: {{ part.error }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tables-tracks-table :title="$strings.LabelStatsAudioTracks" :tracks="tracksWithAudioFile" :is-file="isFile" :library-item-id="libraryItemId" class="mt-6" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
libraryItemId: String,
|
||||
media: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
isFile: Boolean
|
||||
},
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
computed: {
|
||||
tracksWithAudioFile() {
|
||||
return this.media.tracks.map((track) => {
|
||||
track.audioFile = this.media.audioFiles.find((af) => af.metadata.path === track.metadata.path)
|
||||
return track
|
||||
})
|
||||
},
|
||||
missingPartChunks() {
|
||||
if (this.missingParts === 1) return this.missingParts[0]
|
||||
var chunks = []
|
||||
|
||||
var currentIndex = this.missingParts[0]
|
||||
var currentChunk = [this.missingParts[0]]
|
||||
|
||||
for (let i = 1; i < this.missingParts.length; i++) {
|
||||
var partIndex = this.missingParts[i]
|
||||
if (currentIndex === partIndex - 1) {
|
||||
currentChunk.push(partIndex)
|
||||
currentIndex = partIndex
|
||||
} else {
|
||||
// console.log('Chunk ended', currentChunk.join(', '), currentIndex, partIndex)
|
||||
if (currentChunk.length === 0) {
|
||||
console.error('How is current chunk 0?', currentChunk.join(', '))
|
||||
}
|
||||
chunks.push(currentChunk)
|
||||
currentChunk = [partIndex]
|
||||
currentIndex = partIndex
|
||||
}
|
||||
}
|
||||
if (currentChunk.length) {
|
||||
chunks.push(currentChunk)
|
||||
}
|
||||
chunks = chunks.map((chunk) => {
|
||||
if (chunk.length === 1) return chunk[0]
|
||||
else return `${chunk[0]}-${chunk[chunk.length - 1]}`
|
||||
})
|
||||
return chunks
|
||||
},
|
||||
missingParts() {
|
||||
return this.media.missingParts || []
|
||||
},
|
||||
invalidParts() {
|
||||
return this.media.invalidParts || []
|
||||
}
|
||||
},
|
||||
methods: {},
|
||||
mounted() {}
|
||||
}
|
||||
</script>
|
||||
@@ -10,10 +10,10 @@
|
||||
<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 -mx-2" style="scroll-behavior: smooth" @scroll="scrolled">
|
||||
<div class="flex" :style="{ height: height + 'px' }">
|
||||
<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 mx-2" @edit="editAuthor" @hook:updated="setScrollVars" />
|
||||
<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>
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
<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 -mx-2" style="scroll-behavior: smooth" @scroll="scrolled">
|
||||
<div class="flex" :style="{ height: height + 'px' }">
|
||||
<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"
|
||||
@@ -23,7 +23,7 @@
|
||||
:book-cover-aspect-ratio="bookCoverAspectRatio"
|
||||
:bookshelf-view="bookshelfView"
|
||||
:continue-listening-shelf="continueListeningShelf"
|
||||
class="relative mx-2"
|
||||
class="relative"
|
||||
@edit="editEpisode"
|
||||
@editPodcast="editPodcast"
|
||||
@select="selectItem"
|
||||
|
||||
@@ -10,10 +10,24 @@
|
||||
<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 -mx-2" style="scroll-behavior: smooth" @scroll="scrolled">
|
||||
<div class="flex" :style="{ height: height + 'px' }">
|
||||
<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.id + '-' + shelfId" :ref="`slider-item-${item.id}`" :index="index" :book-mount="item" :height="cardHeight" :width="cardWidth" :book-cover-aspect-ratio="bookCoverAspectRatio" :bookshelf-view="bookshelfView" :continue-listening-shelf="continueListeningShelf" class="relative mx-2" @edit="editItem" @select="selectItem" @hook:updated="setScrollVars" />
|
||||
<cards-lazy-book-card
|
||||
:key="item.id + '-' + shelfId + '-' + index"
|
||||
:ref="`slider-item-${item.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="editItem"
|
||||
@select="selectItem"
|
||||
@hook:updated="setScrollVars"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
<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 -mx-2" style="scroll-behavior: smooth" @scroll="scrolled">
|
||||
<div class="flex" :style="{ height: height + 'px' }">
|
||||
<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 mx-2" @hook:updated="setScrollVars" />
|
||||
<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>
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
<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 -mx-2" style="scroll-behavior: smooth" @scroll="scrolled">
|
||||
<div class="flex" :style="{ height: height + 'px' }">
|
||||
<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 mx-2" @hook:updated="setScrollVars" />
|
||||
<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>
|
||||
|
||||
@@ -25,7 +25,8 @@ module.exports = {
|
||||
meta: [
|
||||
{ charset: 'utf-8' },
|
||||
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
|
||||
{ hid: 'description', name: 'description', content: '' }
|
||||
{ hid: 'description', name: 'description', content: '' },
|
||||
{ hid: 'robots', name: 'robots', content: 'noindex' }
|
||||
],
|
||||
script: [],
|
||||
link: [
|
||||
|
||||
12
client/package-lock.json
generated
12
client/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "audiobookshelf-client",
|
||||
"version": "2.8.0",
|
||||
"version": "2.9.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "audiobookshelf-client",
|
||||
"version": "2.8.0",
|
||||
"version": "2.9.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@nuxtjs/axios": "^5.13.6",
|
||||
@@ -16,7 +16,7 @@
|
||||
"cron-parser": "^4.7.1",
|
||||
"date-fns": "^2.25.0",
|
||||
"epubjs": "^0.3.88",
|
||||
"hls.js": "^1.0.7",
|
||||
"hls.js": "^1.5.7",
|
||||
"libarchive.js": "^1.3.0",
|
||||
"nuxt": "^2.17.3",
|
||||
"nuxt-socket-io": "^1.1.18",
|
||||
@@ -8627,9 +8627,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/hls.js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.1.tgz",
|
||||
"integrity": "sha512-SsUSlpyjOGnwBhVrVEG6vRFPU2SAJ0gUqrFdGeo7YPbOC0vuWK0TDMyp7n3QiaBC/Wkic771uqPnnVdT8/x+3Q=="
|
||||
"version": "1.5.7",
|
||||
"resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.7.tgz",
|
||||
"integrity": "sha512-Hnyf7ojTBtXHeOW1/t6wCBJSiK1WpoKF9yg7juxldDx8u3iswrkPt2wbOA/1NiwU4j27DSIVoIEJRAhcdMef/A=="
|
||||
},
|
||||
"node_modules/hmac-drbg": {
|
||||
"version": "1.0.1",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "audiobookshelf-client",
|
||||
"version": "2.8.0",
|
||||
"version": "2.9.0",
|
||||
"buildNumber": 1,
|
||||
"description": "Self-hosted audiobook and podcast client",
|
||||
"main": "index.js",
|
||||
@@ -21,7 +21,7 @@
|
||||
"cron-parser": "^4.7.1",
|
||||
"date-fns": "^2.25.0",
|
||||
"epubjs": "^0.3.88",
|
||||
"hls.js": "^1.0.7",
|
||||
"hls.js": "^1.5.7",
|
||||
"libarchive.js": "^1.3.0",
|
||||
"nuxt": "^2.17.3",
|
||||
"nuxt-socket-io": "^1.1.18",
|
||||
|
||||
@@ -281,7 +281,7 @@ export default {
|
||||
return this.media.audioFiles || []
|
||||
},
|
||||
audioTracks() {
|
||||
return this.audioFiles.filter((af) => !af.exclude && !af.invalid)
|
||||
return this.audioFiles.filter((af) => !af.exclude)
|
||||
},
|
||||
selectedChapterId() {
|
||||
return this.selectedChapter ? this.selectedChapter.id : null
|
||||
|
||||
@@ -137,9 +137,6 @@ export default {
|
||||
})
|
||||
return count
|
||||
},
|
||||
missingParts() {
|
||||
return this.media.missingParts || []
|
||||
},
|
||||
libraryItemId() {
|
||||
return this.libraryItem.id
|
||||
},
|
||||
|
||||
@@ -249,7 +249,7 @@ export default {
|
||||
return this.media.metadata || {}
|
||||
},
|
||||
audioFiles() {
|
||||
return (this.media.audioFiles || []).filter((af) => !af.exclude && !af.invalid)
|
||||
return (this.media.audioFiles || []).filter((af) => !af.exclude)
|
||||
},
|
||||
isSingleM4b() {
|
||||
return this.audioFiles.length === 1 && this.audioFiles[0].metadata.ext.toLowerCase() === '.m4b'
|
||||
|
||||
@@ -20,44 +20,44 @@
|
||||
<div class="overflow-hidden">
|
||||
<transition name="slide">
|
||||
<div v-if="openMapOptions" class="flex flex-wrap">
|
||||
<div v-if="!isPodcastLibrary && !isMapAppend" class="flex items-center px-4 w-1/2">
|
||||
<div v-if="!isPodcastLibrary && !isMapAppend" class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.subtitle" />
|
||||
<ui-text-input-with-label ref="subtitleInput" v-model="batchDetails.subtitle" :disabled="!selectedBatchUsage.subtitle" :label="$strings.LabelSubtitle" class="mb-4 ml-4" />
|
||||
<ui-text-input-with-label ref="subtitleInput" v-model="batchDetails.subtitle" :disabled="!selectedBatchUsage.subtitle" :label="$strings.LabelSubtitle" class="mb-5 ml-4" />
|
||||
</div>
|
||||
<div v-if="!isPodcastLibrary" class="flex items-center px-4 w-1/2">
|
||||
<div v-if="!isPodcastLibrary" class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.authors" />
|
||||
<!-- Authors filter only contains authors in this library, uses filter data -->
|
||||
<ui-multi-select-query-input ref="authorsSelect" v-model="batchDetails.authors" :disabled="!selectedBatchUsage.authors" :label="$strings.LabelAuthors" filter-key="authors" class="mb-4 ml-4" />
|
||||
<ui-multi-select-query-input ref="authorsSelect" v-model="batchDetails.authors" :disabled="!selectedBatchUsage.authors" :label="$strings.LabelAuthors" filter-key="authors" class="mb-5 ml-4" />
|
||||
</div>
|
||||
<div v-if="!isPodcastLibrary && !isMapAppend" class="flex items-center px-4 w-1/2">
|
||||
<div v-if="!isPodcastLibrary && !isMapAppend" class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.publishedYear" />
|
||||
<ui-text-input-with-label ref="publishedYearInput" v-model="batchDetails.publishedYear" :disabled="!selectedBatchUsage.publishedYear" :label="$strings.LabelPublishYear" class="mb-4 ml-4" />
|
||||
<ui-text-input-with-label ref="publishedYearInput" v-model="batchDetails.publishedYear" :disabled="!selectedBatchUsage.publishedYear" :label="$strings.LabelPublishYear" class="mb-5 ml-4" />
|
||||
</div>
|
||||
<div v-if="!isPodcastLibrary" class="flex items-center px-4 w-1/2">
|
||||
<div v-if="!isPodcastLibrary" class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.series" />
|
||||
<ui-multi-select ref="seriesSelect" v-model="batchDetails.series" :disabled="!selectedBatchUsage.series" :label="$strings.LabelSeries" :items="existingSeriesNames" @newItem="newSeriesItem" @removedItem="removedSeriesItem" class="mb-4 ml-4" />
|
||||
<ui-multi-select ref="seriesSelect" v-model="batchDetails.series" :disabled="!selectedBatchUsage.series" :label="$strings.LabelSeries" :items="existingSeriesNames" @newItem="newSeriesItem" @removedItem="removedSeriesItem" class="mb-5 ml-4" />
|
||||
</div>
|
||||
<div class="flex items-center px-4 w-1/2">
|
||||
<div class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.genres" />
|
||||
<ui-multi-select ref="genresSelect" v-model="batchDetails.genres" :disabled="!selectedBatchUsage.genres" :label="$strings.LabelGenres" :items="genreItems" @newItem="newGenreItem" @removedItem="removedGenreItem" class="mb-4 ml-4" />
|
||||
<ui-multi-select ref="genresSelect" v-model="batchDetails.genres" :disabled="!selectedBatchUsage.genres" :label="$strings.LabelGenres" :items="genreItems" @newItem="newGenreItem" @removedItem="removedGenreItem" class="mb-5 ml-4" />
|
||||
</div>
|
||||
<div class="flex items-center px-4 w-1/2">
|
||||
<div class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.tags" />
|
||||
<ui-multi-select ref="tagsSelect" v-model="batchDetails.tags" :label="$strings.LabelTags" :disabled="!selectedBatchUsage.tags" :items="tagItems" @newItem="newTagItem" @removedItem="removedTagItem" class="mb-4 ml-4" />
|
||||
<ui-multi-select ref="tagsSelect" v-model="batchDetails.tags" :label="$strings.LabelTags" :disabled="!selectedBatchUsage.tags" :items="tagItems" @newItem="newTagItem" @removedItem="removedTagItem" class="mb-5 ml-4" />
|
||||
</div>
|
||||
<div v-if="!isPodcastLibrary" class="flex items-center px-4 w-1/2">
|
||||
<div v-if="!isPodcastLibrary" class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.narrators" />
|
||||
<ui-multi-select ref="narratorsSelect" v-model="batchDetails.narrators" :disabled="!selectedBatchUsage.narrators" :label="$strings.LabelNarrators" :items="narratorItems" @newItem="newNarratorItem" @removedItem="removedNarratorItem" class="mb-4 ml-4" />
|
||||
<ui-multi-select ref="narratorsSelect" v-model="batchDetails.narrators" :disabled="!selectedBatchUsage.narrators" :label="$strings.LabelNarrators" :items="narratorItems" @newItem="newNarratorItem" @removedItem="removedNarratorItem" class="mb-5 ml-4" />
|
||||
</div>
|
||||
<div v-if="!isPodcastLibrary && !isMapAppend" class="flex items-center px-4 w-1/2">
|
||||
<div v-if="!isPodcastLibrary && !isMapAppend" class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.publisher" />
|
||||
<ui-text-input-with-label ref="publisherInput" v-model="batchDetails.publisher" :disabled="!selectedBatchUsage.publisher" :label="$strings.LabelPublisher" class="mb-4 ml-4" />
|
||||
<ui-text-input-with-label ref="publisherInput" v-model="batchDetails.publisher" :disabled="!selectedBatchUsage.publisher" :label="$strings.LabelPublisher" class="mb-5 ml-4" />
|
||||
</div>
|
||||
<div v-if="!isMapAppend" class="flex items-center px-4 w-1/2">
|
||||
<div v-if="!isMapAppend" class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.language" />
|
||||
<ui-text-input-with-label ref="languageInput" v-model="batchDetails.language" :disabled="!selectedBatchUsage.language" :label="$strings.LabelLanguage" class="mb-4 ml-4" />
|
||||
<ui-text-input-with-label ref="languageInput" v-model="batchDetails.language" :disabled="!selectedBatchUsage.language" :label="$strings.LabelLanguage" class="mb-5 ml-4" />
|
||||
</div>
|
||||
<div v-if="!isMapAppend" class="flex items-center px-4 w-1/2">
|
||||
<div v-if="!isMapAppend" class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.explicit" />
|
||||
<div class="ml-4">
|
||||
<ui-checkbox
|
||||
@@ -71,6 +71,20 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="!isPodcastLibrary && !isMapAppend" class="flex items-center px-4 h-18 w-1/2">
|
||||
<ui-checkbox v-model="selectedBatchUsage.abridged" />
|
||||
<div class="ml-4">
|
||||
<ui-checkbox
|
||||
v-model="batchDetails.abridged"
|
||||
:label="$strings.LabelAbridged"
|
||||
:disabled="!selectedBatchUsage.abridged"
|
||||
:checkbox-bg="!selectedBatchUsage.abridged ? 'bg' : 'primary'"
|
||||
:check-color="!selectedBatchUsage.abridged ? 'gray-600' : 'green-500'"
|
||||
border-color="gray-600"
|
||||
:label-class="!selectedBatchUsage.abridged ? 'pl-2 text-base text-gray-400 font-semibold' : 'pl-2 text-base font-semibold'"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-full flex items-center justify-end p-4">
|
||||
<ui-btn color="success" :disabled="!hasSelectedBatchUsage" :padding-x="8" small class="text-base" :loading="isProcessing" @click="mapBatchDetails">{{ $strings.ButtonApply }}</ui-btn>
|
||||
@@ -139,7 +153,8 @@ export default {
|
||||
narrators: [],
|
||||
publisher: null,
|
||||
language: null,
|
||||
explicit: false
|
||||
explicit: false,
|
||||
abridged: false
|
||||
},
|
||||
selectedBatchUsage: {
|
||||
subtitle: false,
|
||||
@@ -151,7 +166,8 @@ export default {
|
||||
narrators: false,
|
||||
publisher: false,
|
||||
language: false,
|
||||
explicit: false
|
||||
explicit: false,
|
||||
abridged: false
|
||||
},
|
||||
appendableKeys: ['authors', 'genres', 'tags', 'narrators', 'series'],
|
||||
openMapOptions: false
|
||||
|
||||
@@ -58,29 +58,53 @@
|
||||
|
||||
<ui-text-input-with-label ref="openidClientSecret" v-model="newAuthSettings.authOpenIDClientSecret" :disabled="savingSettings" :label="'Client Secret'" class="mb-2" />
|
||||
|
||||
<ui-dropdown v-if="openIdSigningAlgorithmsSupportedByIssuer.length" v-model="newAuthSettings.authOpenIDTokenSigningAlgorithm" :items="openIdSigningAlgorithmsSupportedByIssuer" :label="'Signing Algorithm'" :disabled="savingSettings" class="mb-2" />
|
||||
<ui-text-input-with-label v-else ref="openidTokenSigningAlgorithm" v-model="newAuthSettings.authOpenIDTokenSigningAlgorithm" :disabled="savingSettings" :label="'Signing Algorithm'" class="mb-2" />
|
||||
|
||||
<ui-multi-select ref="redirectUris" v-model="newAuthSettings.authOpenIDMobileRedirectURIs" :items="newAuthSettings.authOpenIDMobileRedirectURIs" :label="$strings.LabelMobileRedirectURIs" class="mb-2" :menuDisabled="true" :disabled="savingSettings" />
|
||||
<p class="pl-4 text-sm text-gray-300 mb-2" v-html="$strings.LabelMobileRedirectURIsDescription" />
|
||||
<p class="sm:pl-4 text-sm text-gray-300 mb-2" v-html="$strings.LabelMobileRedirectURIsDescription" />
|
||||
|
||||
<ui-text-input-with-label ref="buttonTextInput" v-model="newAuthSettings.authOpenIDButtonText" :disabled="savingSettings" :label="$strings.LabelButtonText" class="mb-2" />
|
||||
|
||||
<div class="flex items-center pt-1 mb-2">
|
||||
<div class="flex sm:items-center flex-col sm:flex-row pt-1 mb-2">
|
||||
<div class="w-44">
|
||||
<ui-dropdown v-model="newAuthSettings.authOpenIDMatchExistingBy" small :items="matchingExistingOptions" :label="$strings.LabelMatchExistingUsersBy" :disabled="savingSettings" />
|
||||
</div>
|
||||
<p class="pl-4 text-sm text-gray-300 mt-5">{{ $strings.LabelMatchExistingUsersByDescription }}</p>
|
||||
<p class="sm:pl-4 text-sm text-gray-300 mt-2 sm:mt-5">{{ $strings.LabelMatchExistingUsersByDescription }}</p>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center py-4 px-1">
|
||||
<div class="flex items-center py-4 px-1 w-full">
|
||||
<ui-toggle-switch labeledBy="auto-redirect-toggle" v-model="newAuthSettings.authOpenIDAutoLaunch" :disabled="savingSettings" />
|
||||
<p id="auto-redirect-toggle" class="pl-4 whitespace-nowrap">{{ $strings.LabelAutoLaunch }}</p>
|
||||
<p class="pl-4 text-sm text-gray-300" v-html="$strings.LabelAutoLaunchDescription" />
|
||||
</div>
|
||||
|
||||
<div class="flex items-center py-4 px-1">
|
||||
<div class="flex items-center py-4 px-1 w-full">
|
||||
<ui-toggle-switch labeledBy="auto-register-toggle" v-model="newAuthSettings.authOpenIDAutoRegister" :disabled="savingSettings" />
|
||||
<p id="auto-register-toggle" class="pl-4 whitespace-nowrap">{{ $strings.LabelAutoRegister }}</p>
|
||||
<p class="pl-4 text-sm text-gray-300">{{ $strings.LabelAutoRegisterDescription }}</p>
|
||||
</div>
|
||||
|
||||
<p class="pt-6 mb-4 px-1">{{ $strings.LabelOpenIDClaims }}</p>
|
||||
|
||||
<div class="flex flex-col sm:flex-row mb-4">
|
||||
<div class="w-44 min-w-44">
|
||||
<ui-text-input-with-label ref="openidGroupClaim" v-model="newAuthSettings.authOpenIDGroupClaim" :disabled="savingSettings" :placeholder="'groups'" :label="'Group Claim'" />
|
||||
</div>
|
||||
<p class="sm:pl-4 pt-2 sm:pt-0 text-sm text-gray-300" v-html="$strings.LabelOpenIDGroupClaimDescription"></p>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col sm:flex-row mb-4">
|
||||
<div class="w-44 min-w-44">
|
||||
<ui-text-input-with-label ref="openidAdvancedPermsClaim" v-model="newAuthSettings.authOpenIDAdvancedPermsClaim" :disabled="savingSettings" :placeholder="'abspermissions'" :label="'Advanced Permission Claim'" />
|
||||
</div>
|
||||
<div class="sm:pl-4 pt-2 sm:pt-0 text-sm text-gray-300">
|
||||
<p v-html="$strings.LabelOpenIDAdvancedPermsClaimDescription"></p>
|
||||
<pre class="text-pre-wrap mt-2"
|
||||
>{{ newAuthSettings.authOpenIDSamplePermissions }}
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</transition>
|
||||
</div>
|
||||
@@ -117,6 +141,7 @@ export default {
|
||||
enableOpenIDAuth: false,
|
||||
showCustomLoginMessage: false,
|
||||
savingSettings: false,
|
||||
openIdSigningAlgorithmsSupportedByIssuer: [],
|
||||
newAuthSettings: {}
|
||||
}
|
||||
},
|
||||
@@ -157,6 +182,22 @@ export default {
|
||||
this.newAuthSettings.authOpenIDIssuerURL = this.newAuthSettings.authOpenIDIssuerURL.replace('/.well-known/openid-configuration', '')
|
||||
}
|
||||
|
||||
const setSupportedSigningAlgorithms = (algorithms) => {
|
||||
if (!algorithms?.length || !Array.isArray(algorithms)) {
|
||||
console.warn('Invalid id_token_signing_alg_values_supported from openid-configuration', algorithms)
|
||||
this.openIdSigningAlgorithmsSupportedByIssuer = []
|
||||
return
|
||||
}
|
||||
this.openIdSigningAlgorithmsSupportedByIssuer = algorithms
|
||||
|
||||
// If a signing algorithm is already selected, then keep it, when it is still supported.
|
||||
// But if it is not supported, then select one of the supported ones.
|
||||
let currentAlgorithm = this.newAuthSettings.authOpenIDTokenSigningAlgorithm
|
||||
if (!algorithms.includes(currentAlgorithm)) {
|
||||
this.newAuthSettings.authOpenIDTokenSigningAlgorithm = algorithms[0]
|
||||
}
|
||||
}
|
||||
|
||||
this.$axios
|
||||
.$get(`/auth/openid/config?issuer=${issuerUrl}`)
|
||||
.then((data) => {
|
||||
@@ -166,6 +207,7 @@ export default {
|
||||
if (data.userinfo_endpoint) this.newAuthSettings.authOpenIDUserInfoURL = data.userinfo_endpoint
|
||||
if (data.end_session_endpoint) this.newAuthSettings.authOpenIDLogoutURL = data.end_session_endpoint
|
||||
if (data.jwks_uri) this.newAuthSettings.authOpenIDJwksURL = data.jwks_uri
|
||||
if (data.id_token_signing_alg_values_supported) setSupportedSigningAlgorithms(data.id_token_signing_alg_values_supported)
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Failed to receive data', error)
|
||||
@@ -203,6 +245,10 @@ export default {
|
||||
this.$toast.error('Client Secret required')
|
||||
isValid = false
|
||||
}
|
||||
if (!this.newAuthSettings.authOpenIDTokenSigningAlgorithm) {
|
||||
this.$toast.error('Signing Algorithm required')
|
||||
isValid = false
|
||||
}
|
||||
|
||||
function isValidRedirectURI(uri) {
|
||||
// Check for somestring://someother/string
|
||||
@@ -222,6 +268,22 @@ export default {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function isValidClaim(claim) {
|
||||
if (claim === '') return true
|
||||
|
||||
const pattern = new RegExp('^[a-zA-Z][a-zA-Z0-9_-]*$', 'i')
|
||||
return pattern.test(claim)
|
||||
}
|
||||
if (!isValidClaim(this.newAuthSettings.authOpenIDGroupClaim)) {
|
||||
this.$toast.error('Group Claim: Invalid claim name')
|
||||
isValid = false
|
||||
}
|
||||
if (!isValidClaim(this.newAuthSettings.authOpenIDAdvancedPermsClaim)) {
|
||||
this.$toast.error('Advanced Permission Claim: Invalid claim name')
|
||||
isValid = false
|
||||
}
|
||||
|
||||
return isValid
|
||||
},
|
||||
async saveSettings() {
|
||||
|
||||
@@ -64,8 +64,8 @@
|
||||
<td class="hidden md:table-cell w-26 min-w-26">
|
||||
<p class="text-xs">{{ getPlayMethodName(session.playMethod) }}</p>
|
||||
</td>
|
||||
<td class="hidden sm:table-cell w-32 min-w-32">
|
||||
<p class="text-xs" v-html="getDeviceInfoString(session.deviceInfo)" />
|
||||
<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 w-24 min-w-24 sm:w-32 sm:min-w-32">
|
||||
<p class="text-xs font-mono">{{ $elapsedPretty(session.timeListening) }}</p>
|
||||
@@ -127,8 +127,8 @@
|
||||
<td class="hidden md:table-cell">
|
||||
<p class="text-xs">{{ getPlayMethodName(session.playMethod) }}</p>
|
||||
</td>
|
||||
<td class="hidden sm:table-cell">
|
||||
<p class="text-xs" v-html="getDeviceInfoString(session.deviceInfo)" />
|
||||
<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">
|
||||
<p class="text-xs font-mono">{{ $elapsedPretty(session.timeListening) }}</p>
|
||||
@@ -394,6 +394,7 @@ export default {
|
||||
getDeviceInfoString(deviceInfo) {
|
||||
if (!deviceInfo) return ''
|
||||
var lines = []
|
||||
if (deviceInfo.clientName) lines.push(`${deviceInfo.clientName} ${deviceInfo.clientVersion || ''}`)
|
||||
if (deviceInfo.osName) lines.push(`${deviceInfo.osName} ${deviceInfo.osVersion}`)
|
||||
if (deviceInfo.browserName) lines.push(deviceInfo.browserName)
|
||||
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
<td class="hidden md:table-cell">
|
||||
<p class="text-xs">{{ getPlayMethodName(session.playMethod) }}</p>
|
||||
</td>
|
||||
<td class="hidden sm:table-cell">
|
||||
<p class="text-xs" v-html="getDeviceInfoString(session.deviceInfo)" />
|
||||
<td class="hidden sm:table-cell min-w-32 max-w-32">
|
||||
<p class="text-xs truncate" v-html="getDeviceInfoString(session.deviceInfo)" />
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<p class="text-xs font-mono">{{ $elapsedPretty(session.timeListening) }}</p>
|
||||
@@ -193,6 +193,7 @@ export default {
|
||||
getDeviceInfoString(deviceInfo) {
|
||||
if (!deviceInfo) return ''
|
||||
var lines = []
|
||||
if (deviceInfo.clientName) lines.push(`${deviceInfo.clientName} ${deviceInfo.clientVersion || ''}`)
|
||||
if (deviceInfo.osName) lines.push(`${deviceInfo.osName} ${deviceInfo.osVersion}`)
|
||||
if (deviceInfo.browserName) lines.push(deviceInfo.browserName)
|
||||
|
||||
|
||||
@@ -34,7 +34,10 @@
|
||||
|
||||
<p v-if="bookSubtitle" class="text-gray-200 text-xl md:text-2xl">{{ bookSubtitle }}</p>
|
||||
|
||||
<nuxt-link v-for="_series in seriesList" :key="_series.id" :to="`/library/${libraryId}/series/${_series.id}`" class="hover:underline font-sans text-gray-300 text-lg leading-7"> {{ _series.text }}</nuxt-link>
|
||||
<template v-for="(_series, index) in seriesList">
|
||||
<nuxt-link :key="_series.id" :to="`/library/${libraryId}/series/${_series.id}`" class="hover:underline font-sans text-gray-300 text-lg leading-7">{{ _series.text }}</nuxt-link
|
||||
><span :key="index" v-if="index < seriesList.length - 1">, </span>
|
||||
</template>
|
||||
|
||||
<template v-if="!isVideo">
|
||||
<p v-if="isPodcast" class="mb-2 mt-0.5 text-gray-200 text-lg md:text-xl">by {{ podcastAuthor || 'Unknown' }}</p>
|
||||
@@ -125,24 +128,18 @@
|
||||
</div>
|
||||
|
||||
<div class="my-4 w-full">
|
||||
<p ref="description" id="item-description" class="text-base text-gray-100 whitespace-pre-line mb-1" :class="{ 'show-full': showFullDescription }">{{ description }}</p>
|
||||
<p ref="description" id="item-description" dir="auto" class="text-base text-gray-100 whitespace-pre-line mb-1" :class="{ 'show-full': showFullDescription }">{{ description }}</p>
|
||||
<button v-if="isDescriptionClamped" class="py-0.5 flex items-center text-slate-300 hover:text-white" @click="showFullDescription = !showFullDescription">
|
||||
{{ showFullDescription ? 'Read less' : 'Read more' }} <span class="material-icons text-xl pl-1">{{ showFullDescription ? 'expand_less' : 'expand_more' }}</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div v-if="invalidAudioFiles.length" class="bg-error border-red-800 shadow-md p-4">
|
||||
<p class="text-sm mb-2">Invalid audio files</p>
|
||||
<tables-chapters-table v-if="chapters.length" :library-item="libraryItem" class="mt-6" />
|
||||
|
||||
<p v-for="audioFile in invalidAudioFiles" :key="audioFile.id" class="text-xs pl-2">- {{ audioFile.metadata.filename }} ({{ audioFile.error }})</p>
|
||||
</div>
|
||||
|
||||
<widgets-audiobook-data v-if="tracks.length" :library-item-id="libraryItemId" :is-file="isFile" :media="media" />
|
||||
<tables-tracks-table v-if="tracks.length" :title="$strings.LabelStatsAudioTracks" :tracks="tracksWithAudioFile" :is-file="isFile" :library-item-id="libraryItemId" class="mt-6" />
|
||||
|
||||
<tables-podcast-lazy-episodes-table v-if="isPodcast" :library-item="libraryItem" />
|
||||
|
||||
<tables-chapters-table v-if="chapters.length" :library-item="libraryItem" class="mt-6" />
|
||||
|
||||
<tables-ebook-files-table v-if="ebookFiles.length" :library-item="libraryItem" class="mt-6" />
|
||||
|
||||
<tables-library-files-table v-if="libraryFiles.length" :library-item="libraryItem" class="mt-6" />
|
||||
@@ -239,10 +236,6 @@ export default {
|
||||
isAbridged() {
|
||||
return !!this.mediaMetadata.abridged
|
||||
},
|
||||
invalidAudioFiles() {
|
||||
if (!this.isBook) return []
|
||||
return this.libraryItem.media.audioFiles.filter((af) => af.invalid)
|
||||
},
|
||||
showPlayButton() {
|
||||
if (this.isMissing || this.isInvalid) return false
|
||||
if (this.isMusic) return !!this.audioFile
|
||||
@@ -275,6 +268,12 @@ export default {
|
||||
tracks() {
|
||||
return this.media.tracks || []
|
||||
},
|
||||
tracksWithAudioFile() {
|
||||
return this.tracks.map((track) => {
|
||||
track.audioFile = this.media.audioFiles?.find((af) => af.metadata.path === track.metadata.path)
|
||||
return track
|
||||
})
|
||||
},
|
||||
podcastEpisodes() {
|
||||
return this.media.episodes || []
|
||||
},
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<app-book-shelf-toolbar page="authors" is-home :authors="authors" />
|
||||
<div id="bookshelf" class="w-full h-full p-8 overflow-y-auto">
|
||||
<div class="flex flex-wrap justify-center">
|
||||
<template v-for="author in authors">
|
||||
<template v-for="author in authorsSorted">
|
||||
<cards-author-card :key="author.id" :author="author" :width="160" :height="200" class="p-3" @edit="editAuthor" />
|
||||
</template>
|
||||
</div>
|
||||
@@ -44,6 +44,22 @@ export default {
|
||||
},
|
||||
selectedAuthor() {
|
||||
return this.$store.state.globals.selectedAuthor
|
||||
},
|
||||
authorSortBy() {
|
||||
return this.$store.getters['user/getUserSetting']('authorSortBy') || 'name'
|
||||
},
|
||||
authorSortDesc() {
|
||||
return !!this.$store.getters['user/getUserSetting']('authorSortDesc')
|
||||
},
|
||||
authorsSorted() {
|
||||
const sortProp = this.authorSortBy
|
||||
const bDesc = this.authorSortDesc ? -1 : 1
|
||||
return this.authors.sort((a, b) => {
|
||||
if (typeof a[sortProp] === 'number' && typeof b[sortProp] === 'number') {
|
||||
return a[sortProp] > b[sortProp] ? bDesc : -bDesc
|
||||
}
|
||||
return a[sortProp].localeCompare(b[sortProp], undefined, { sensitivity: 'base' }) * bDesc
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
<p v-if="!recentEpisodes.length && !processing" class="text-center text-xl">{{ $strings.MessageNoEpisodes }}</p>
|
||||
<template v-for="(episode, index) in episodesMapped">
|
||||
<div :key="episode.id" class="flex py-5 cursor-pointer relative" @click.stop="clickEpisode(episode)">
|
||||
<covers-preview-cover :src="$store.getters['globals/getLibraryItemCoverSrcById'](episode.libraryItemId)" :width="96" :book-cover-aspect-ratio="bookCoverAspectRatio" :show-resolution="false" class="hidden md:block" />
|
||||
<covers-preview-cover :src="$store.getters['globals/getLibraryItemCoverSrcById'](episode.libraryItemId, episode.updatedAt)" :width="96" :book-cover-aspect-ratio="bookCoverAspectRatio" :show-resolution="false" class="hidden md:block" />
|
||||
<div class="flex-grow pl-4 max-w-2xl">
|
||||
<!-- mobile -->
|
||||
<div class="flex md:hidden mb-2">
|
||||
<covers-preview-cover :src="$store.getters['globals/getLibraryItemCoverSrcById'](episode.libraryItemId)" :width="48" :book-cover-aspect-ratio="bookCoverAspectRatio" :show-resolution="false" class="md:hidden" />
|
||||
<covers-preview-cover :src="$store.getters['globals/getLibraryItemCoverSrcById'](episode.libraryItemId, episode.updatedAt)" :width="48" :book-cover-aspect-ratio="bookCoverAspectRatio" :show-resolution="false" class="md:hidden" />
|
||||
<div class="flex-grow px-2">
|
||||
<div class="flex items-center">
|
||||
<div class="flex" @click.stop>
|
||||
@@ -40,12 +40,12 @@
|
||||
<div v-if="episode.episode">{{ episode.episode }}</div>
|
||||
</div>
|
||||
|
||||
<div class="flex items-center mb-2">
|
||||
<div dir="auto" class="flex items-center mb-2">
|
||||
<div class="font-semibold text-sm md:text-base">{{ episode.title }}</div>
|
||||
<widgets-podcast-type-indicator :type="episode.episodeType" />
|
||||
</div>
|
||||
|
||||
<p class="text-sm text-gray-200 mb-4 line-clamp-4" v-html="episode.subtitle || episode.description" />
|
||||
<p dir="auto" class="text-sm text-gray-200 mb-4 line-clamp-4" v-html="episode.subtitle || episode.description" />
|
||||
|
||||
<div class="flex items-center">
|
||||
<button class="h-8 px-4 border border-white border-opacity-20 hover:bg-white hover:bg-opacity-10 rounded-full flex items-center justify-center cursor-pointer focus:outline-none" :class="episode.progress && episode.progress.isFinished ? 'text-white text-opacity-40' : ''" @click.stop="playClick(episode)">
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
<template>
|
||||
<div class="w-full h-screen bg-bg">
|
||||
<div class="w-full flex h-full items-center justify-center">
|
||||
<div id="page-wrapper" class="w-full h-screen overflow-y-auto">
|
||||
<div class="absolute z-0 top-0 left-0 px-6 py-3">
|
||||
<div class="flex items-center">
|
||||
<img src="~static/icon.svg" alt="Audiobookshelf Logo" class="w-10 min-w-10 h-10" />
|
||||
<h1 class="text-xl ml-4 hidden lg:block hover:underline">audiobookshelf</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative z-10 w-full flex h-full items-center justify-center">
|
||||
<div v-if="criticalError" class="w-full max-w-md rounded border border-error border-opacity-25 bg-error bg-opacity-10 p-4">
|
||||
<p class="text-center text-lg font-semibold">{{ $strings.MessageServerCouldNotBeReached }}</p>
|
||||
</div>
|
||||
@@ -10,9 +17,9 @@
|
||||
|
||||
<form @submit.prevent="submitServerSetup">
|
||||
<p class="text-lg font-semibold mb-2 pl-1 text-center">Create Root User</p>
|
||||
<ui-text-input-with-label v-model="newRoot.username" label="Username" :disabled="processing" class="w-full mb-3 text-sm" />
|
||||
<ui-text-input-with-label v-model="newRoot.password" label="Password" type="password" :disabled="processing" class="w-full mb-3 text-sm" />
|
||||
<ui-text-input-with-label v-model="confirmPassword" label="Confirm Password" type="password" :disabled="processing" class="w-full mb-3 text-sm" />
|
||||
<ui-text-input-with-label v-model.trim="newRoot.username" label="Username" :disabled="processing" class="w-full mb-3 text-sm" />
|
||||
<ui-text-input-with-label v-model.trim="newRoot.password" label="Password" type="password" :disabled="processing" class="w-full mb-3 text-sm" />
|
||||
<ui-text-input-with-label v-model.trim="confirmPassword" label="Confirm Password" type="password" :disabled="processing" class="w-full mb-3 text-sm" />
|
||||
|
||||
<p class="text-lg font-semibold mt-6 mb-2 pl-1 text-center">Directory Paths</p>
|
||||
<ui-text-input-with-label v-model="ConfigPath" label="Config Path" disabled class="w-full mb-3 text-sm" />
|
||||
@@ -23,32 +30,34 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div v-else-if="isInit" class="w-full max-w-md px-8 pb-8 pt-4 -mt-40">
|
||||
<p class="text-3xl text-white text-center mb-4">{{ $strings.HeaderLogin }}</p>
|
||||
<div v-else-if="isInit" class="w-full max-w-md px-8 pb-8 pt-4 lg:-mt-40">
|
||||
<div class="bg-bg rounded-md shadow-lg border border-white border-opacity-5 p-4">
|
||||
<p class="text-2xl font-semibold text-center text-white mb-4">{{ $strings.HeaderLogin }}</p>
|
||||
|
||||
<div class="w-full h-px bg-white bg-opacity-10 my-4" />
|
||||
<div class="w-full h-px bg-white bg-opacity-10 my-4" />
|
||||
|
||||
<p v-if="loginCustomMessage" class="py-2 default-style mb-2" v-html="loginCustomMessage"></p>
|
||||
<p v-if="loginCustomMessage" class="py-2 default-style mb-2" v-html="loginCustomMessage"></p>
|
||||
|
||||
<p v-if="error" class="text-error text-center py-2">{{ error }}</p>
|
||||
<p v-if="error" class="text-error text-center py-2">{{ error }}</p>
|
||||
|
||||
<form v-show="login_local" @submit.prevent="submitForm">
|
||||
<label class="text-xs text-gray-300 uppercase">{{ $strings.LabelUsername }}</label>
|
||||
<ui-text-input v-model="username" :disabled="processing" class="mb-3 w-full" />
|
||||
<form v-show="login_local" @submit.prevent="submitForm">
|
||||
<label class="text-xs text-gray-300 uppercase">{{ $strings.LabelUsername }}</label>
|
||||
<ui-text-input v-model.trim="username" :disabled="processing" class="mb-3 w-full" inputName="username" />
|
||||
|
||||
<label class="text-xs text-gray-300 uppercase">{{ $strings.LabelPassword }}</label>
|
||||
<ui-text-input v-model="password" type="password" :disabled="processing" class="w-full mb-3" />
|
||||
<div class="w-full flex justify-end py-3">
|
||||
<ui-btn type="submit" :disabled="processing" color="primary" class="leading-none">{{ processing ? 'Checking...' : $strings.ButtonSubmit }}</ui-btn>
|
||||
<label class="text-xs text-gray-300 uppercase">{{ $strings.LabelPassword }}</label>
|
||||
<ui-text-input v-model.trim="password" type="password" :disabled="processing" class="w-full mb-3" inputName="password" />
|
||||
<div class="w-full flex justify-end py-3">
|
||||
<ui-btn type="submit" :disabled="processing" color="primary" class="leading-none">{{ processing ? 'Checking...' : $strings.ButtonSubmit }}</ui-btn>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div v-if="login_local && login_openid" class="w-full h-px bg-white bg-opacity-10 my-4" />
|
||||
|
||||
<div class="w-full flex py-3">
|
||||
<a v-if="login_openid" :href="openidAuthUri" class="w-full abs-btn outline-none rounded-md shadow-md relative border border-gray-600 text-center bg-primary text-white px-8 py-2 leading-none">
|
||||
{{ openIDButtonText }}
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div v-if="login_local && login_openid" class="w-full h-px bg-white bg-opacity-10 my-4" />
|
||||
|
||||
<div class="w-full flex py-3">
|
||||
<a v-if="login_openid" :href="openidAuthUri" class="w-full abs-btn outline-none rounded-md shadow-md relative border border-gray-600 text-center bg-primary text-white px-8 py-2 leading-none">
|
||||
{{ openIDButtonText }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -281,4 +290,4 @@ export default {
|
||||
this.checkStatus()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
@@ -139,11 +139,30 @@ export default class LocalAudioPlayer extends EventEmitter {
|
||||
}
|
||||
|
||||
var hlsOptions = {
|
||||
startPosition: this.startTime || -1
|
||||
// No longer needed because token is put in a query string
|
||||
// xhrSetup: (xhr) => {
|
||||
// xhr.setRequestHeader('Authorization', `Bearer ${this.token}`)
|
||||
// }
|
||||
startPosition: this.startTime || -1,
|
||||
fragLoadPolicy: {
|
||||
default: {
|
||||
maxTimeToFirstByteMs: 10000,
|
||||
maxLoadTimeMs: 120000,
|
||||
timeoutRetry: {
|
||||
maxNumRetry: 4,
|
||||
retryDelayMs: 0,
|
||||
maxRetryDelayMs: 0,
|
||||
},
|
||||
errorRetry: {
|
||||
maxNumRetry: 8,
|
||||
retryDelayMs: 1000,
|
||||
maxRetryDelayMs: 8000,
|
||||
shouldRetry: (retryConfig, retryCount, isTimeout, httpStatus, retry) => {
|
||||
if (httpStatus?.code === 404 && retryConfig?.maxNumRetry > retryCount) {
|
||||
console.log(`[HLS] Server 404 for fragment retry ${retryCount} of ${retryConfig.maxNumRetry}`)
|
||||
return true
|
||||
}
|
||||
return retry
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
this.hlsInstance = new Hls(hlsOptions)
|
||||
|
||||
@@ -156,9 +175,15 @@ export default class LocalAudioPlayer extends EventEmitter {
|
||||
})
|
||||
|
||||
this.hlsInstance.on(Hls.Events.ERROR, (e, data) => {
|
||||
console.error('[HLS] Error', data.type, data.details, data)
|
||||
if (data.details === Hls.ErrorDetails.BUFFER_STALLED_ERROR) {
|
||||
console.error('[HLS] BUFFER STALLED ERROR')
|
||||
} else if (data.details === Hls.ErrorDetails.FRAG_LOAD_ERROR) {
|
||||
// Only show error if the fragment is not being retried
|
||||
if (data.errorAction?.action !== 5) {
|
||||
console.error('[HLS] FRAG LOAD ERROR', data)
|
||||
}
|
||||
} else {
|
||||
console.error('[HLS] Error', data.type, data.details, data)
|
||||
}
|
||||
})
|
||||
this.hlsInstance.on(Hls.Events.DESTROYING, () => {
|
||||
|
||||
@@ -5,22 +5,29 @@ import { supplant } from './utils'
|
||||
const defaultCode = 'en-us'
|
||||
|
||||
const languageCodeMap = {
|
||||
'bn': { label: 'বাংলা', dateFnsLocale: 'bn' },
|
||||
'cs': { label: 'Čeština', dateFnsLocale: 'cs' },
|
||||
'da': { label: 'Dansk', dateFnsLocale: 'da' },
|
||||
'de': { label: 'Deutsch', dateFnsLocale: 'de' },
|
||||
'en-us': { label: 'English', dateFnsLocale: 'enUS' },
|
||||
'es': { label: 'Español', dateFnsLocale: 'es' },
|
||||
'et': { label: 'Eesti', dateFnsLocale: 'et' },
|
||||
'fr': { label: 'Français', dateFnsLocale: 'fr' },
|
||||
'he': { label: 'עברית', dateFnsLocale: 'he' },
|
||||
'hr': { label: 'Hrvatski', dateFnsLocale: 'hr' },
|
||||
'it': { label: 'Italiano', dateFnsLocale: 'it' },
|
||||
'lt': { label: 'Lietuvių', dateFnsLocale: 'lt' },
|
||||
'hu': { label: 'Magyar', dateFnsLocale: 'hu' },
|
||||
'nl': { label: 'Nederlands', dateFnsLocale: 'nl' },
|
||||
'no': { label: 'Norsk', dateFnsLocale: 'no' },
|
||||
'pl': { label: 'Polski', dateFnsLocale: 'pl' },
|
||||
'pt-br': { label: 'Português (Brasil)', dateFnsLocale: 'ptBR' },
|
||||
'ru': { label: 'Русский', dateFnsLocale: 'ru' },
|
||||
'sv': { label: 'Svenska', dateFnsLocale: 'sv' },
|
||||
'uk': { label: 'Українська', dateFnsLocale: 'uk' },
|
||||
'vi-vn': { label: 'Tiếng Việt', dateFnsLocale: 'vi' },
|
||||
'zh-cn': { label: '简体中文 (Simplified Chinese)', dateFnsLocale: 'zhCN' },
|
||||
'zh-tw': { label: '正體中文 (Traditional Chinese)', dateFnsLocale: 'zhTW' }
|
||||
}
|
||||
Vue.prototype.$languageCodeOptions = Object.keys(languageCodeMap).map(code => {
|
||||
return {
|
||||
@@ -31,6 +38,7 @@ 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
|
||||
const podcastSearchRegionMap = {
|
||||
'ua': { label: 'Україна' },
|
||||
'us': { label: 'United States' },
|
||||
'cn': { label: '中国' }
|
||||
}
|
||||
@@ -42,14 +50,22 @@ Vue.prototype.$podcastSearchRegionOptions = Object.keys(podcastSearchRegionMap).
|
||||
})
|
||||
|
||||
Vue.prototype.$languageCodes = {
|
||||
default: defaultCode,
|
||||
current: defaultCode,
|
||||
local: null,
|
||||
server: null
|
||||
default: defaultCode, // en-us
|
||||
current: defaultCode, // Current language code in use
|
||||
local: null, // Language code set at user level
|
||||
server: null // Language code set at server level
|
||||
}
|
||||
|
||||
// Currently loaded strings (default enUS)
|
||||
Vue.prototype.$strings = { ...enUsStrings }
|
||||
|
||||
/**
|
||||
* Get string and substitute
|
||||
*
|
||||
* @param {string} key
|
||||
* @param {string[]} subs
|
||||
* @returns {string}
|
||||
*/
|
||||
Vue.prototype.$getString = (key, subs) => {
|
||||
if (!Vue.prototype.$strings[key]) return ''
|
||||
if (subs?.length && Array.isArray(subs)) {
|
||||
@@ -58,7 +74,11 @@ Vue.prototype.$getString = (key, subs) => {
|
||||
return Vue.prototype.$strings[key]
|
||||
}
|
||||
|
||||
var translations = {
|
||||
Vue.prototype.$formatNumber = (num) => {
|
||||
return Intl.NumberFormat(Vue.prototype.$languageCodes.current).format(num)
|
||||
}
|
||||
|
||||
const translations = {
|
||||
[defaultCode]: enUsStrings
|
||||
}
|
||||
|
||||
|
||||
2
client/static/robots.txt
Normal file
2
client/static/robots.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
User-Agent: *
|
||||
Disallow: /
|
||||
@@ -11,7 +11,9 @@ export const state = () => ({
|
||||
useChapterTrack: false,
|
||||
seriesSortBy: 'name',
|
||||
seriesSortDesc: false,
|
||||
seriesFilterBy: 'all'
|
||||
seriesFilterBy: 'all',
|
||||
authorSortBy: 'name',
|
||||
authorSortDesc: false
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
782
client/strings/bn.json
Normal file
782
client/strings/bn.json
Normal file
@@ -0,0 +1,782 @@
|
||||
{
|
||||
"ButtonAdd": "যোগ করুন",
|
||||
"ButtonAddChapters": "অধ্যায় যোগ করুন",
|
||||
"ButtonAddDevice": "ডিভাইস যোগ করুন",
|
||||
"ButtonAddLibrary": "লাইব্রেরি যোগ করুন",
|
||||
"ButtonAddPodcasts": "পডকাস্ট যোগ করুন",
|
||||
"ButtonAddUser": "ব্যবহারকারী যোগ করুন",
|
||||
"ButtonAddYourFirstLibrary": "আপনার প্রথম লাইব্রেরি যোগ করুন",
|
||||
"ButtonApply": "প্রয়োগ করুন",
|
||||
"ButtonApplyChapters": "অধ্যায় প্রয়োগ করুন",
|
||||
"ButtonAuthors": "লেখক",
|
||||
"ButtonBrowseForFolder": "ফোল্ডারের জন্য ব্রাউজ করুন",
|
||||
"ButtonCancel": "বাতিল করুন",
|
||||
"ButtonCancelEncode": "এনকোড বাতিল করুন",
|
||||
"ButtonChangeRootPassword": "রুট পাসওয়ার্ড পরিবর্তন করুন",
|
||||
"ButtonCheckAndDownloadNewEpisodes": "নতুন পর্বগুলি পরীক্ষা এবং ডাউনলোড করুন",
|
||||
"ButtonChooseAFolder": "একটি ফোল্ডার চয়ন করুন",
|
||||
"ButtonChooseFiles": "ফাইল চয়ন করুন",
|
||||
"ButtonClearFilter": "ফিল্টার পরিষ্কার করুন",
|
||||
"ButtonCloseFeed": "ফিড বন্ধ করুন",
|
||||
"ButtonCollections": "সংগ্রহ",
|
||||
"ButtonConfigureScanner": "স্ক্যানার কনফিগার করুন",
|
||||
"ButtonCreate": "তৈরি করুন",
|
||||
"ButtonCreateBackup": "ব্যাকআপ তৈরি করুন",
|
||||
"ButtonDelete": "মুছুন",
|
||||
"ButtonDownloadQueue": "সারি",
|
||||
"ButtonEdit": "সম্পাদনা করুন",
|
||||
"ButtonEditChapters": "অধ্যায় সম্পাদনা করুন",
|
||||
"ButtonEditPodcast": "পডকাস্ট সম্পাদনা করুন",
|
||||
"ButtonForceReScan": "জোরপূর্বক পুনরায় স্ক্যান করুন",
|
||||
"ButtonFullPath": "সম্পূর্ণ পথ",
|
||||
"ButtonHide": "লুকান",
|
||||
"ButtonHome": "নীড়",
|
||||
"ButtonIssues": "ইস্যু",
|
||||
"ButtonJumpBackward": "পিছনে লাফ দিন",
|
||||
"ButtonJumpForward": "সামনে লাফ দিন",
|
||||
"ButtonLatest": "সর্বশেষ",
|
||||
"ButtonLibrary": "লাইব্রেরি",
|
||||
"ButtonLogout": "লগআউট",
|
||||
"ButtonLookup": "সন্ধান",
|
||||
"ButtonManageTracks": "ট্র্যাকগুলি পরিচালনা করুন",
|
||||
"ButtonMapChapterTitles": "অধ্যায়ের শিরোনাম ম্যাপ করুন",
|
||||
"ButtonMatchAllAuthors": "সমস্ত লেখকের সাথে মিল করুন",
|
||||
"ButtonMatchBooks": "বইগুলো মিল করুন",
|
||||
"ButtonNevermind": "কিছু মনে করবেন না",
|
||||
"ButtonNext": "পরবর্তী",
|
||||
"ButtonNextChapter": "পরবর্তী অধ্যায়",
|
||||
"ButtonOk": "ঠিক আছে",
|
||||
"ButtonOpenFeed": "ফিড খুলুন",
|
||||
"ButtonOpenManager": "ম্যানেজার খুলুন",
|
||||
"ButtonPause": "বিরতি",
|
||||
"ButtonPlay": "বাজান",
|
||||
"ButtonPlaying": "বাজছে",
|
||||
"ButtonPlaylists": "প্লেলিস্ট",
|
||||
"ButtonPrevious": "পূর্ববর্তী",
|
||||
"ButtonPreviousChapter": "আগের অধ্যায়",
|
||||
"ButtonPurgeAllCache": "সমস্ত ক্যাশে পরিষ্কার করুন",
|
||||
"ButtonPurgeItemsCache": "আইটেম ক্যাশে পরিষ্কার করুন",
|
||||
"ButtonPurgeMediaProgress": "মিডিয়া ক্যাশে পরিষ্কার করুন",
|
||||
"ButtonQueueAddItem": "সারিতে যোগ করুন",
|
||||
"ButtonQueueRemoveItem": "সারি থেকে মুছে ফেলুন",
|
||||
"ButtonQuickMatch": "দ্রুত ম্যাচ",
|
||||
"ButtonRead": "পড়ুন",
|
||||
"ButtonRefresh": "রিফ্রেশ",
|
||||
"ButtonRemove": "মুছে ফেলুন",
|
||||
"ButtonRemoveAll": "সব মুছে ফেলুন",
|
||||
"ButtonRemoveAllLibraryItems": "সমস্ত লাইব্রেরি আইটেম মুছে ফেলুন",
|
||||
"ButtonRemoveFromContinueListening": "শোনা চালিয়ে যাওয়া থেকে মুছে ফেলুন",
|
||||
"ButtonRemoveFromContinueReading": "পঠন চালিয়ে যান থেকে মুছে ফেলুন",
|
||||
"ButtonRemoveSeriesFromContinueSeries": "কন্টিনিউ সিরিজ থেকে সিরিজ মুছে ফেলুন",
|
||||
"ButtonReScan": "পুনরায় স্ক্যান",
|
||||
"ButtonReset": "রিসেট",
|
||||
"ButtonResetToDefault": "ডিফল্টে পুনরায় সেট করুন",
|
||||
"ButtonRestore": "পুনরুদ্ধার করুন",
|
||||
"ButtonSave": "সংরক্ষণ করুন",
|
||||
"ButtonSaveAndClose": "সংরক্ষণ এবং বন্ধ করুন",
|
||||
"ButtonSaveTracklist": "ট্র্যাকলিস্ট সংরক্ষণ করুন",
|
||||
"ButtonScan": "স্ক্যান",
|
||||
"ButtonScanLibrary": "স্ক্যান লাইব্রেরি",
|
||||
"ButtonSearch": "অনুসন্ধান",
|
||||
"ButtonSelectFolderPath": "ফোল্ডারের পথ নির্বাচন করুন",
|
||||
"ButtonSeries": "সিরিজ",
|
||||
"ButtonSetChaptersFromTracks": "ট্র্যাক থেকে অধ্যায় সেট করুন",
|
||||
"ButtonShare": "শেয়ার করুন",
|
||||
"ButtonShiftTimes": "সময় শিফট করুন",
|
||||
"ButtonShow": "দেখান",
|
||||
"ButtonStartM4BEncode": "M4B এনকোড শুরু করুন",
|
||||
"ButtonStartMetadataEmbed": "মেটাডেটা এম্বেড শুরু করুন",
|
||||
"ButtonSubmit": "জমা দিন",
|
||||
"ButtonTest": "পরীক্ষা",
|
||||
"ButtonUpload": "আপলোড",
|
||||
"ButtonUploadBackup": "আপলোড ব্যাকআপ",
|
||||
"ButtonUploadCover": "কভার আপলোড করুন",
|
||||
"ButtonUploadOPMLFile": "OPML ফাইল আপলোড করুন",
|
||||
"ButtonUserDelete": "ব্যবহারকারী {0} মুছুন",
|
||||
"ButtonUserEdit": "ব্যবহারকারী {0} সম্পাদনা করুন",
|
||||
"ButtonViewAll": "সমস্ত দেখুন",
|
||||
"ButtonYes": "হ্যাঁ",
|
||||
"ErrorUploadFetchMetadataAPI": "মেটাডেটা আনতে ত্রুটি হচ্ছে",
|
||||
"ErrorUploadFetchMetadataNoResults": "মেটাডেটা আনা যায়নি - শিরোনাম এবং/অথবা লেখক আপডেট করার চেষ্টা করুন",
|
||||
"ErrorUploadLacksTitle": "একটি শিরোনাম থাকতে হবে",
|
||||
"HeaderAccount": "অ্যাকাউন্ট",
|
||||
"HeaderAdvanced": "অ্যাডভান্সড",
|
||||
"HeaderAppriseNotificationSettings": "বিজ্ঞপ্তি সেটিংস অবহিত করুন",
|
||||
"HeaderAudiobookTools": "অডিওবই ফাইল ম্যানেজমেন্ট টুলস",
|
||||
"HeaderAudioTracks": "অডিও ট্র্যাকস",
|
||||
"HeaderAuthentication": "প্রমাণীকরণ",
|
||||
"HeaderBackups": "ব্যাকআপ",
|
||||
"HeaderChangePassword": "পাসওয়ার্ড পরিবর্তন করুন",
|
||||
"HeaderChapters": "অধ্যায়",
|
||||
"HeaderChooseAFolder": "একটি ফোল্ডার চয়ন করুন",
|
||||
"HeaderCollection": "সংগ্রহ",
|
||||
"HeaderCollectionItems": "সংগ্রহ আইটেম",
|
||||
"HeaderCover": "কভার",
|
||||
"HeaderCurrentDownloads": "বর্তমান ডাউনলোডগুলি",
|
||||
"HeaderCustomMetadataProviders": "কাস্টম মেটাডেটা প্রদানকারী",
|
||||
"HeaderDetails": "বিস্তারিত",
|
||||
"HeaderDownloadQueue": "ডাউনলোড সারি",
|
||||
"HeaderEbookFiles": "ই-বই ফাইল",
|
||||
"HeaderEmail": "ইমেইল",
|
||||
"HeaderEmailSettings": "ইমেল সেটিংস",
|
||||
"HeaderEpisodes": "পর্ব",
|
||||
"HeaderEreaderDevices": "ই-রিডার ডিভাইস",
|
||||
"HeaderEreaderSettings": "ই-রিডার সেটিংস",
|
||||
"HeaderFiles": "ফাইল",
|
||||
"HeaderFindChapters": "অধ্যায় খুঁজুন",
|
||||
"HeaderIgnoredFiles": "উপেক্ষিত ফাইল",
|
||||
"HeaderItemFiles": "আইটেম ফাইল",
|
||||
"HeaderItemMetadataUtils": "আইটেম মেটাডেটা ইউটিলস",
|
||||
"HeaderLastListeningSession": "শেষ শোনার অধিবেশন",
|
||||
"HeaderLatestEpisodes": "সর্বশেষ পর্ব",
|
||||
"HeaderLibraries": "লাইব্রেরি",
|
||||
"HeaderLibraryFiles": "লাইব্রেরি ফাইল",
|
||||
"HeaderLibraryStats": "লাইব্রেরি পরিসংখ্যান",
|
||||
"HeaderListeningSessions": "শোনার সেশন",
|
||||
"HeaderListeningStats": "শোনার পরিসংখ্যান",
|
||||
"HeaderLogin": "লগইন",
|
||||
"HeaderLogs": "লগস",
|
||||
"HeaderManageGenres": "ঘরানাগুলো পরিচালনা করুন",
|
||||
"HeaderManageTags": "ট্যাগগুলো পরিচালনা করুন",
|
||||
"HeaderMapDetails": "মানচিত্রের বিবরণ",
|
||||
"HeaderMatch": "ম্যাচ",
|
||||
"HeaderMetadataOrderOfPrecedence": "মেটাডেটা অগ্রাধিকারের ক্রম",
|
||||
"HeaderMetadataToEmbed": "এম্বেড করার জন্য মেটাডেটা",
|
||||
"HeaderNewAccount": "নতুন অ্যাকাউন্ট",
|
||||
"HeaderNewLibrary": "নতুন লাইব্রেরি",
|
||||
"HeaderNotifications": "বিজ্ঞপ্তি",
|
||||
"HeaderOpenIDConnectAuthentication": "ওপেনআইডি সংযোগ প্রমাণীকরণ",
|
||||
"HeaderOpenRSSFeed": "আরএসএস ফিড খুলুন",
|
||||
"HeaderOtherFiles": "অন্যান্য ফাইল",
|
||||
"HeaderPasswordAuthentication": "পাসওয়ার্ড প্রমাণীকরণ",
|
||||
"HeaderPermissions": "অনুমতি",
|
||||
"HeaderPlayerQueue": "প্লেয়ার সারি",
|
||||
"HeaderPlaylist": "প্লেলিস্ট",
|
||||
"HeaderPlaylistItems": "প্লেলিস্ট আইটেম",
|
||||
"HeaderPodcastsToAdd": "যোগ করার জন্য পডকাস্ট",
|
||||
"HeaderPreviewCover": "কভার ্দেখুন",
|
||||
"HeaderRemoveEpisode": "পর্বটি সরান",
|
||||
"HeaderRemoveEpisodes": "{0}টি পর্ব সরান",
|
||||
"HeaderRSSFeedGeneral": "আরএসএস বিবরণ",
|
||||
"HeaderRSSFeedIsOpen": "আরএসএস ফিড খোলা আছে",
|
||||
"HeaderRSSFeeds": "আরএসএস ফিড",
|
||||
"HeaderSavedMediaProgress": "মিডিয়া সংরক্ষণের অগ্রগতি",
|
||||
"HeaderSchedule": "সময়সূচী",
|
||||
"HeaderScheduleLibraryScans": "স্বয়ংক্রিয় লাইব্রেরি স্ক্যানের সময়সূচী",
|
||||
"HeaderSession": "সেশন",
|
||||
"HeaderSetBackupSchedule": "ব্যাকআপ সময়সূচী সেট করুন",
|
||||
"HeaderSettings": "সেটিংস",
|
||||
"HeaderSettingsDisplay": "প্রদর্শন",
|
||||
"HeaderSettingsExperimental": "পরীক্ষামূলক ফিচার",
|
||||
"HeaderSettingsGeneral": "সাধারণ",
|
||||
"HeaderSettingsScanner": "স্ক্যানার",
|
||||
"HeaderSleepTimer": "স্লিপ টাইমার",
|
||||
"HeaderStatsLargestItems": "সবচেয়ে বড় আইটেম",
|
||||
"HeaderStatsLongestItems": "দীর্ঘতম আইটেম (ঘন্টা)",
|
||||
"HeaderStatsMinutesListeningChart": "মিনিট শ্রবণ (গত ৭ দিন)",
|
||||
"HeaderStatsRecentSessions": "সাম্প্রতিক সেশন",
|
||||
"HeaderStatsTop10Authors": "শীর্ষ ১০ জন লেখক",
|
||||
"HeaderStatsTop5Genres": "শীর্ষ ৫ টি ঘরানা",
|
||||
"HeaderTableOfContents": "বিষয়বস্তুর সারণী",
|
||||
"HeaderTools": "টুলস",
|
||||
"HeaderUpdateAccount": "অ্যাকাউন্ট আপডেট করুন",
|
||||
"HeaderUpdateAuthor": "লেখক আপডেট করুন",
|
||||
"HeaderUpdateDetails": "বিশদ আপডেট করুন",
|
||||
"HeaderUpdateLibrary": "লাইব্রেরি আপডেট করুন",
|
||||
"HeaderUsers": "ব্যবহারকারীরা",
|
||||
"HeaderYearReview": "বাৎসরিক পর্যালোচনা {0}",
|
||||
"HeaderYourStats": "আপনার পরিসংখ্যান",
|
||||
"LabelAbridged": "সংক্ষিপ্ত",
|
||||
"LabelAccountType": "অ্যাকাউন্টের প্রকার",
|
||||
"LabelAccountTypeAdmin": "প্রশাসন",
|
||||
"LabelAccountTypeGuest": "অতিথি",
|
||||
"LabelAccountTypeUser": "ব্যবহারকারী",
|
||||
"LabelActivity": "ক্রিয়াকলাপ",
|
||||
"LabelAdded": "যোগ করা হয়েছে",
|
||||
"LabelAddedAt": "এতে যোগ করা হয়েছে",
|
||||
"LabelAddToCollection": "সংগ্রহে যোগ করুন",
|
||||
"LabelAddToCollectionBatch": "সংগ্রহে {0}টি বই যোগ করুন",
|
||||
"LabelAddToPlaylist": "প্লেলিস্টে যোগ করুন",
|
||||
"LabelAddToPlaylistBatch": "প্লেলিস্টে {0}টি আইটেম যোগ করুন",
|
||||
"LabelAdminUsersOnly": "শুধু অ্যাডমিন ব্যবহারকারী",
|
||||
"LabelAll": "সব",
|
||||
"LabelAllUsers": "সমস্ত ব্যবহারকারী",
|
||||
"LabelAllUsersExcludingGuests": "অতিথি ব্যতীত সকল ব্যবহারকারী",
|
||||
"LabelAllUsersIncludingGuests": "অতিথি সহ সকল ব্যবহারকারী",
|
||||
"LabelAlreadyInYourLibrary": "ইতিমধ্যেই আপনার লাইব্রেরিতে রয়েছে",
|
||||
"LabelAppend": "সংযোজন",
|
||||
"LabelAuthor": "লেখক",
|
||||
"LabelAuthorFirstLast": "লেখক (প্রথম শেষ)",
|
||||
"LabelAuthorLastFirst": "লেখক (শেষ, প্রথম)",
|
||||
"LabelAuthors": "লেখকগণ",
|
||||
"LabelAutoDownloadEpisodes": "স্বয়ংক্রিয় ডাউনলোড পর্ব",
|
||||
"LabelAutoFetchMetadata": "স্বয়ংক্রিয় ফেচ মেটাডেটা",
|
||||
"LabelAutoFetchMetadataHelp": "আপলোডিং স্ট্রিমলাইন করার জন্য শিরোনাম, লেখক এবং সিরিজের জন্য মেটাডেটা খুঁজুন। আপলোড করার পরে অতিরিক্ত মেটাডেটা মিলতে হতে পারে।",
|
||||
"LabelAutoLaunch": "স্বয়ংক্রিয় আরম্ভ",
|
||||
"LabelAutoLaunchDescription": "লগইন পৃষ্ঠায় নেভিগেট করার সময় স্বয়ংক্রিয়ভাবে অনুমোদন প্রদানকারীর কাছে পুনঃনির্দেশ করুন (হস্তকৃত ওভাররাইড পথ <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "স্বয়ংক্রিয় নিবন্ধন",
|
||||
"LabelAutoRegisterDescription": "লগ ইন করার পর স্বয়ংক্রিয়ভাবে নতুন ব্যবহারকারী তৈরি করুন",
|
||||
"LabelBackToUser": "ব্যবহারকারীর কাছে ফিরে যান",
|
||||
"LabelBackupLocation": "ব্যাকআপ অবস্থান",
|
||||
"LabelBackupsEnableAutomaticBackups": "স্বয়ংক্রিয় ব্যাকআপ সক্ষম করুন",
|
||||
"LabelBackupsEnableAutomaticBackupsHelp": "ব্যাকআপগুলি /মেটাডাটা/ব্যাকআপে সংরক্ষিত",
|
||||
"LabelBackupsMaxBackupSize": "সর্বোচ্চ ব্যাকআপ আকার (GB-তে)",
|
||||
"LabelBackupsMaxBackupSizeHelp": "ভুল কনফিগারেশনের বিরুদ্ধে সুরক্ষা হিসেবে ব্যাকআপগুলি ব্যর্থ হবে যদি তারা কনফিগার করা আকার অতিক্রম করে।",
|
||||
"LabelBackupsNumberToKeep": "ব্যাকআপের সংখ্যা রাখুন",
|
||||
"LabelBackupsNumberToKeepHelp": "এক সময়ে শুধুমাত্র ১ টি ব্যাকআপ সরানো হবে তাই যদি আপনার কাছে ইতিমধ্যে এর চেয়ে বেশি ব্যাকআপ থাকে তাহলে আপনাকে ম্যানুয়ালি সেগুলি সরিয়ে ফেলতে হবে।",
|
||||
"LabelBitrate": "বিটরেট",
|
||||
"LabelBooks": "বইগুলো",
|
||||
"LabelButtonText": "ঘর পাঠ্য",
|
||||
"LabelChangePassword": "পাসওয়ার্ড পরিবর্তন করুন",
|
||||
"LabelChannels": "চ্যানেল",
|
||||
"LabelChapters": "অধ্যায়",
|
||||
"LabelChaptersFound": "অধ্যায় পাওয়া গেছে",
|
||||
"LabelChapterTitle": "অধ্যায়ের শিরোনাম",
|
||||
"LabelClickForMoreInfo": "আরো তথ্যের জন্য ক্লিক করুন",
|
||||
"LabelClosePlayer": "প্লেয়ার বন্ধ করুন",
|
||||
"LabelCodec": "কোডেক",
|
||||
"LabelCollapseSeries": "সিরিজ সঙ্কুচিত করুন",
|
||||
"LabelCollection": "সংগ্রহ",
|
||||
"LabelCollections": "সংগ্রহ",
|
||||
"LabelComplete": "সম্পূর্ণ",
|
||||
"LabelConfirmPassword": "পাসওয়ার্ড নিশ্চিত করুন",
|
||||
"LabelContinueListening": "শোনা চালিয়ে যান",
|
||||
"LabelContinueReading": "পড়া চালিয়ে যান",
|
||||
"LabelContinueSeries": "সিরিজ চালিয়ে যান",
|
||||
"LabelCover": "কভার",
|
||||
"LabelCoverImageURL": "ছবির কভারের URL",
|
||||
"LabelCreatedAt": "তৈরি করা হয়েছে",
|
||||
"LabelCronExpression": "Cron এক্সপ্রেশন",
|
||||
"LabelCurrent": "বর্তমান",
|
||||
"LabelCurrently": "বর্তমানে:",
|
||||
"LabelCustomCronExpression": "কাস্টম Cron এক্সপ্রেশন:",
|
||||
"LabelDatetime": "তারিখ সময়",
|
||||
"LabelDeleteFromFileSystemCheckbox": "ফাইল সিস্টেম থেকে মুছে ফেলুন (শুধু ডাটাবেস থেকে সরাতে টিক চিহ্ন মুক্ত করুন)",
|
||||
"LabelDescription": "বিবরণ",
|
||||
"LabelDeselectAll": "সমস্ত অনির্বাচিত করুন",
|
||||
"LabelDevice": "ডিভাইস",
|
||||
"LabelDeviceInfo": "ডিভাইস তথ্য",
|
||||
"LabelDeviceIsAvailableTo": "ডিভাইস এর জন্য উপলব্ধ...",
|
||||
"LabelDirectory": "ডিরেক্টরি",
|
||||
"LabelDiscFromFilename": "ফাইলের নাম থেকে ডিস্ক",
|
||||
"LabelDiscFromMetadata": "মেটাডেটা থেকে ডিস্ক",
|
||||
"LabelDiscover": "আবিষ্কার",
|
||||
"LabelDownload": "ডাউনলোড করুন",
|
||||
"LabelDownloadNEpisodes": "{0}টি পর্ব ডাউনলোড করুন",
|
||||
"LabelDuration": "সময়কাল",
|
||||
"LabelDurationFound": "সময়কাল পাওয়া গেছে:",
|
||||
"LabelEbook": "ই-বই",
|
||||
"LabelEbooks": "ই-বইগুলো",
|
||||
"LabelEdit": "সম্পাদনা করুন",
|
||||
"LabelEmail": "ইমেইল",
|
||||
"LabelEmailSettingsFromAddress": "ঠিকানা থেকে",
|
||||
"LabelEmailSettingsSecure": "নিরাপদ",
|
||||
"LabelEmailSettingsSecureHelp": "যদি সত্য হয় সার্ভারের সাথে সংযোগ করার সময় সংযোগটি TLS ব্যবহার করবে। মিথ্যা হলে TLS ব্যবহার করা হবে যদি সার্ভার STARTTLS এক্সটেনশন সমর্থন করে। বেশিরভাগ ক্ষেত্রে এই মানটিকে সত্য হিসাবে সেট করুন যদি আপনি পোর্ট 465-এর সাথে সংযোগ করছেন। পোর্ট 587 বা পোর্টের জন্য 25 এটি মিথ্যা রাখুন। (nodemailer.com/smtp/#authentication থেকে)",
|
||||
"LabelEmailSettingsTestAddress": "পরীক্ষার ঠিকানা",
|
||||
"LabelEmbeddedCover": "এম্বেডেড কভার",
|
||||
"LabelEnable": "সক্ষম করুন",
|
||||
"LabelEnd": "সমাপ্ত",
|
||||
"LabelEpisode": "পর্ব",
|
||||
"LabelEpisodeTitle": "পর্বের শিরোনাম",
|
||||
"LabelEpisodeType": "পর্বের ধরন",
|
||||
"LabelExample": "উদাহরণ",
|
||||
"LabelExplicit": "বিশদ",
|
||||
"LabelFeedURL": "ফিড ইউআরএল",
|
||||
"LabelFetchingMetadata": "মেটাডেটা আনা হচ্ছে",
|
||||
"LabelFile": "ফাইল",
|
||||
"LabelFileBirthtime": "ফাইল জন্মের সময়",
|
||||
"LabelFileModified": "ফাইল পরিবর্তিত",
|
||||
"LabelFilename": "ফাইলের নাম",
|
||||
"LabelFilterByUser": "ব্যবহারকারী দ্বারা ফিল্টারকৃত",
|
||||
"LabelFindEpisodes": "পর্বগুলো খুঁজুন",
|
||||
"LabelFinished": "সমাপ্ত",
|
||||
"LabelFolder": "ফোল্ডার",
|
||||
"LabelFolders": "ফোল্ডারগুলো",
|
||||
"LabelFontBold": "বোল্ড",
|
||||
"LabelFontFamily": "ফন্ট পরিবার",
|
||||
"LabelFontItalic": "ইটালিক",
|
||||
"LabelFontScale": "ফন্ট স্কেল",
|
||||
"LabelFontStrikethrough": "অবচ্ছেদন রেখা",
|
||||
"LabelFormat": "ফরম্যাট",
|
||||
"LabelGenre": "ঘরানা",
|
||||
"LabelGenres": "ঘরানাগুলো",
|
||||
"LabelHardDeleteFile": "জোরপূর্বক ফাইল মুছে ফেলুন",
|
||||
"LabelHasEbook": "ই-বই আছে",
|
||||
"LabelHasSupplementaryEbook": "পরিপূরক ই-বই আছে",
|
||||
"LabelHighestPriority": "সর্বোচ্চ অগ্রাধিকার",
|
||||
"LabelHost": "নিমন্ত্রণকর্তা",
|
||||
"LabelHour": "ঘন্টা",
|
||||
"LabelIcon": "আইকন",
|
||||
"LabelImageURLFromTheWeb": "ওয়েব থেকে ছবির ইউআরএল",
|
||||
"LabelIncludeInTracklist": "ট্র্যাকলিস্টে অন্তর্ভুক্ত করুন",
|
||||
"LabelIncomplete": "অসম্পূর্ণ",
|
||||
"LabelInProgress": "প্রগতিতে আছে",
|
||||
"LabelInterval": "বিরতি",
|
||||
"LabelIntervalCustomDailyWeekly": "কাস্টম দৈনিক/সাপ্তাহিক",
|
||||
"LabelIntervalEvery12Hours": "প্রতি ১২ ঘন্টায়",
|
||||
"LabelIntervalEvery15Minutes": "প্রতি ১৫ মিনিটে",
|
||||
"LabelIntervalEvery2Hours": "প্রতি ২ ঘন্টায়",
|
||||
"LabelIntervalEvery30Minutes": "প্রতি ৩০ মিনিটে",
|
||||
"LabelIntervalEvery6Hours": "প্রতি ৬ ঘন্টায়",
|
||||
"LabelIntervalEveryDay": "প্রতিদিন",
|
||||
"LabelIntervalEveryHour": "প্রতি ঘন্টা",
|
||||
"LabelInvert": "উল্টানো",
|
||||
"LabelItem": "আইটেম",
|
||||
"LabelLanguage": "ভাষা",
|
||||
"LabelLanguageDefaultServer": "সার্ভারের ডিফল্ট ভাষা",
|
||||
"LabelLastBookAdded": "শেষ বই যোগ করা হয়েছে",
|
||||
"LabelLastBookUpdated": "শেষ বই আপডেট করা হয়েছে",
|
||||
"LabelLastSeen": "শেষ দেখা",
|
||||
"LabelLastTime": "শেষ বার",
|
||||
"LabelLastUpdate": "শেষ আপডেট",
|
||||
"LabelLayout": "লেআউট",
|
||||
"LabelLayoutSinglePage": "একক পৃষ্ঠা",
|
||||
"LabelLayoutSplitPage": "বিভক্ত পৃষ্ঠা",
|
||||
"LabelLess": "কম",
|
||||
"LabelLibrariesAccessibleToUser": "ব্যবহারকারীর কাছে অ্যাক্সেসযোগ্য লাইব্রেরি",
|
||||
"LabelLibrary": "লাইব্রেরি",
|
||||
"LabelLibraryItem": "লাইব্রেরি আইটেম",
|
||||
"LabelLibraryName": "লাইব্রেরির নাম",
|
||||
"LabelLimit": "সীমা",
|
||||
"LabelLineSpacing": "লাইন স্পেসিং",
|
||||
"LabelListenAgain": "আবার শুনুন",
|
||||
"LabelLogLevelDebug": "ডিবাগ",
|
||||
"LabelLogLevelInfo": "তথ্য",
|
||||
"LabelLogLevelWarn": "সতর্ক",
|
||||
"LabelLookForNewEpisodesAfterDate": "এই তারিখের পরে নতুন পর্বগুলি সন্ধান করুন",
|
||||
"LabelLowestPriority": "সর্বনিম্ন অগ্রাধিকার",
|
||||
"LabelMatchExistingUsersBy": "বিদ্যমান ব্যবহারকারীদের দ্বারা মিলিত করুন",
|
||||
"LabelMatchExistingUsersByDescription": "বিদ্যমান ব্যবহারকারীদের সংযোগ করার জন্য ব্যবহৃত হয়। একবার সংযুক্ত হলে, ব্যবহারকারীদের আপনার SSO প্রদানকারীর থেকে একটি অনন্য আইডি দ্বারা মিলিত হবে",
|
||||
"LabelMediaPlayer": "মিডিয়া প্লেয়ার",
|
||||
"LabelMediaType": "মিডিয়ার ধরন",
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "উচ্চ অগ্রাধিকারের মেটাডেটার উৎসগুলো নিম্ন অগ্রাধিকারের মেটাডেটা উৎসগুলোকে ওভাররাইড করবে",
|
||||
"LabelMetadataProvider": "মেটাডেটা প্রদানকারী",
|
||||
"LabelMetaTag": "মেটা ট্যাগ",
|
||||
"LabelMetaTags": "মেটা ট্যাগগুলো",
|
||||
"LabelMinute": "মিনিট",
|
||||
"LabelMissing": "নিখোঁজ",
|
||||
"LabelMissingEbook": "কোনও ই-বই নেই",
|
||||
"LabelMissingSupplementaryEbook": "কোনও সম্পূরক ই-বই নেই",
|
||||
"LabelMobileRedirectURIs": "অনুমোদিত মোবাইল রিডাইরেক্ট URIs",
|
||||
"LabelMobileRedirectURIsDescription": "এটি মোবাইল অ্যাপের জন্য বৈধ পুনঃনির্দেশিত URI-এর একটি সাদা তালিকা। ডিফল্টটি হল <code>audiobookshelf://oauth</code>, যা আপনি তৃতীয় পক্ষের অ্যাপ ইন্টিগ্রেশনের জন্য অতিরিক্ত URI-এর সাথে সরাতে বা সম্পূরক করতে পারেন। একটি তারকাচিহ্ন (<code>*</code>) ব্যবহার করে একমাত্র এন্ট্রি যেকোন ইউআরআইকে অনুমতি দেয়।",
|
||||
"LabelMore": "আরো",
|
||||
"LabelMoreInfo": "আরো তথ্য",
|
||||
"LabelName": "নাম",
|
||||
"LabelNarrator": "কথক",
|
||||
"LabelNarrators": "কথক",
|
||||
"LabelNew": "নতুন",
|
||||
"LabelNewestAuthors": "নতুন লেখক",
|
||||
"LabelNewestEpisodes": "নতুনতম পর্ব",
|
||||
"LabelNewPassword": "নতুন পাসওয়ার্ড",
|
||||
"LabelNextBackupDate": "পরবর্তী ব্যাকআপ তারিখ",
|
||||
"LabelNextScheduledRun": "পরবর্তী নির্ধারিত দৌড়",
|
||||
"LabelNoEpisodesSelected": "কোন পর্ব নির্বাচন করা হয়নি",
|
||||
"LabelNotes": "নোটস",
|
||||
"LabelNotFinished": "সমাপ্ত হয়নি",
|
||||
"LabelNotificationAppriseURL": "অবহিত URL(গুলি)",
|
||||
"LabelNotificationAvailableVariables": "ব্যবহারযোগ্য ভেরিয়েবল",
|
||||
"LabelNotificationBodyTemplate": "বডি টেমপ্লেট",
|
||||
"LabelNotificationEvent": "ইভেন্ট বিজ্ঞপ্তি",
|
||||
"LabelNotificationsMaxFailedAttempts": "সর্বোচ্চ ব্যর্থ প্রচেষ্টা",
|
||||
"LabelNotificationsMaxFailedAttemptsHelp": "এটি বারবার পাঠাতে ব্যর্থ হলে বিজ্ঞপ্তি অক্ষম করা হবে",
|
||||
"LabelNotificationsMaxQueueSize": "বিজ্ঞপ্তি ইভেন্টের জন্য সর্বোচ্চ সারির আকার",
|
||||
"LabelNotificationsMaxQueueSizeHelp": "ইভেন্টগুলি প্রতি সেকেন্ডে ১ বার ইন্ধন করার মধ্যে সীমাবদ্ধ। সারি সর্বাধিক আকারে থাকলে ইভেন্টগুলি উপেক্ষা করা হবে। এটি বিজ্ঞপ্তি স্প্যামিং প্রতিরোধ করে।",
|
||||
"LabelNotificationTitleTemplate": "শিরোনাম টেমপ্লেট",
|
||||
"LabelNotStarted": "শুরু হয়নি",
|
||||
"LabelNumberOfBooks": "বইয়ের সংখ্যা",
|
||||
"LabelNumberOfEpisodes": "# টি পর্ব",
|
||||
"LabelOpenIDAdvancedPermsClaimDescription": "ওপেনআইডি দাবির নাম যাতে অ্যাপ্লিকেশনের মধ্যে ব্যবহারকারীর ক্রিয়াকলাপের জন্য উন্নত অনুমতি রয়েছে যা অ-প্রশাসক ভূমিকাগুলিতে প্রযোজ্য হবে (<b>যদি কনফিগার করা হয়</b>)। প্রতিক্রিয়া থেকে দাবিটি অনুপস্থিত থাকলে, অ্যাক্সেস করুন ABS-তে অস্বীকার করা হবে। যদি একটি একক বিকল্প অনুপস্থিত থাকে, তাহলে এটিকে <code>false</code> হিসাবে গণ্য করা হবে। নিশ্চিত করুন যে পরিচয় প্রদানকারীর দাবি প্রত্যাশিত কাঠামোর সাথে মেলে:",
|
||||
"LabelOpenIDClaims": "অ্যাডভান্সড গ্রুপ এবং পারমিশন অ্যাসাইনমেন্ট নিষ্ক্রিয় করতে নিম্নলিখিত বিকল্পগুলিকে খালি ছেড়ে দিন, তারপর স্বয়ংক্রিয়ভাবে 'ব্যবহারকারী' গ্রুপকে বরাদ্দ করা হবে।",
|
||||
"LabelOpenIDGroupClaimDescription": "ওপেনআইডি দাবির নাম যাতে ব্যবহারকারীর গোষ্ঠীর একটি তালিকা থাকে। সাধারণত <code>গ্রুপ</code> হিসাবে উল্লেখ করা হয়। <b>কনফিগার করা থাকলে</b>, অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে এর উপর ভিত্তি করে ব্যবহারকারীর গোষ্ঠীর সদস্যপদ নির্ধারণ করবে, শর্ত এই যে এই গোষ্ঠীগুলি কেস-অসংবেদনশীলভাবে দাবিতে 'অ্যাডমিন', 'ব্যবহারকারী' বা 'অতিথি' নাম দেওয়া হয়৷ দাবিতে একটি তালিকা থাকা উচিত এবং যদি একজন ব্যবহারকারী একাধিক গোষ্ঠীর অন্তর্গত হয় তবে অ্যাপ্লিকেশনটি বরাদ্দ করবে সর্বোচ্চ স্তরের অ্যাক্সেসের সাথে সঙ্গতিপূর্ণ ভূমিকা৷ যদি কোনও গোষ্ঠীর সাথে মেলে না, তবে অ্যাক্সেস অস্বীকার করা হবে।",
|
||||
"LabelOpenRSSFeed": "আরএসএস ফিড খুলুন",
|
||||
"LabelOverwrite": "পুনঃলিখিত",
|
||||
"LabelPassword": "পাসওয়ার্ড",
|
||||
"LabelPath": "পথ",
|
||||
"LabelPermissionsAccessAllLibraries": "সমস্ত লাইব্রেরি অ্যাক্সেস করতে পারবে",
|
||||
"LabelPermissionsAccessAllTags": "সমস্ত ট্যাগ অ্যাক্সেস করতে পারবে",
|
||||
"LabelPermissionsAccessExplicitContent": "স্পষ্ট বিষয়বস্তু অ্যাক্সেস করতে পারে",
|
||||
"LabelPermissionsDelete": "মুছে দিতে পারবে",
|
||||
"LabelPermissionsDownload": "ডাউনলোড করতে পারবে",
|
||||
"LabelPermissionsUpdate": "আপডেট করতে পারবে",
|
||||
"LabelPermissionsUpload": "আপলোড করতে পারবে",
|
||||
"LabelPersonalYearReview": "আপনার বছরের পর্যালোচনা ({0})",
|
||||
"LabelPhotoPathURL": "ছবি পথ/ইউআরএল",
|
||||
"LabelPlaylists": "প্লেলিস্ট",
|
||||
"LabelPlayMethod": "প্লে পদ্ধতি",
|
||||
"LabelPodcast": "পডকাস্ট",
|
||||
"LabelPodcasts": "পডকাস্টগুলো",
|
||||
"LabelPodcastSearchRegion": "পডকাস্ট অনুসন্ধান অঞ্চল",
|
||||
"LabelPodcastType": "পডকাস্টের ধরন",
|
||||
"LabelPort": "পোর্ট",
|
||||
"LabelPrefixesToIgnore": "উপেক্ষা করার উপসর্গ (কেস সংবেদনশীল)",
|
||||
"LabelPreventIndexing": "আইটিউনস এবং গুগল পডকাস্ট ডিরেক্টরি দ্বারা আপনার ফিডকে ইন্ডেক্স করা থেকে বিরত রাখুন",
|
||||
"LabelPrimaryEbook": "প্রাথমিক ই-বই",
|
||||
"LabelProgress": "প্রগতি",
|
||||
"LabelProvider": "প্রদানকারী",
|
||||
"LabelPubDate": "প্রকাশের তারিখ",
|
||||
"LabelPublisher": "প্রকাশক",
|
||||
"LabelPublishYear": "প্রকাশের বছর",
|
||||
"LabelRead": "পড়ুন",
|
||||
"LabelReadAgain": "আবার পড়ুন",
|
||||
"LabelReadEbookWithoutProgress": "প্রগতি না রেখে ই-বই পড়ুন",
|
||||
"LabelRecentlyAdded": "সম্প্রতি যোগ করা হয়েছে",
|
||||
"LabelRecentSeries": "সাম্প্রতিক সিরিজ",
|
||||
"LabelRecommended": "সুপারিশকৃত",
|
||||
"LabelRedo": "পুনরায় করুন",
|
||||
"LabelRegion": "অঞ্চল",
|
||||
"LabelReleaseDate": "উন্মোচনের তারিখ",
|
||||
"LabelRemoveCover": "কভার সরান",
|
||||
"LabelRowsPerPage": "প্রতি পৃষ্ঠায় সারি",
|
||||
"LabelRSSFeedCustomOwnerEmail": "কাস্টম মালিকের ইমেইল",
|
||||
"LabelRSSFeedCustomOwnerName": "কাস্টম মালিকের নাম",
|
||||
"LabelRSSFeedOpen": "আরএসএস ফিড খুলুন",
|
||||
"LabelRSSFeedPreventIndexing": "সূচীকরণ প্রতিরোধ করুন",
|
||||
"LabelRSSFeedSlug": "আরএসএস ফিড স্লাগ",
|
||||
"LabelRSSFeedURL": "আরএসএস ফিড ইউআরএল",
|
||||
"LabelSearchTerm": "অনুসন্ধান শব্দ",
|
||||
"LabelSearchTitle": "অনুসন্ধান শিরোনাম",
|
||||
"LabelSearchTitleOrASIN": "অনুসন্ধান শিরোনাম বা ASIN",
|
||||
"LabelSeason": "সেশন",
|
||||
"LabelSelectAllEpisodes": "সমস্ত পর্ব নির্বাচন করুন",
|
||||
"LabelSelectEpisodesShowing": "দেখানো {0}টি পর্ব নির্বাচন করুন",
|
||||
"LabelSelectUsers": "ব্যবহারকারী নির্বাচন করুন",
|
||||
"LabelSendEbookToDevice": "ই-বই পাঠান...",
|
||||
"LabelSequence": "ক্রম",
|
||||
"LabelSeries": "সিরিজ",
|
||||
"LabelSeriesName": "সিরিজের নাম",
|
||||
"LabelSeriesProgress": "সিরিজের অগ্রগতি",
|
||||
"LabelServerYearReview": "সার্ভারের বাৎসরিক পর্যালোচনা ({0})",
|
||||
"LabelSetEbookAsPrimary": "প্রাথমিক হিসাবে সেট করুন",
|
||||
"LabelSetEbookAsSupplementary": "পরিপূরক হিসেবে সেট করুন",
|
||||
"LabelSettingsAudiobooksOnly": "শুধুমাত্র অডিও বই",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "এই সেটিংটি সক্ষম করা ই-বই ফাইলগুলিকে উপেক্ষা করবে যদি না সেগুলি একটি অডিওবই ফোল্ডারের মধ্যে থাকে যে ক্ষেত্রে সেগুলিকে সম্পূরক ই-বই হিসাবে সেট করা হবে",
|
||||
"LabelSettingsBookshelfViewHelp": "কাঠের তাক সহ স্কুমরফিক ডিজাইন",
|
||||
"LabelSettingsChromecastSupport": "ক্রোমকাস্ট সমর্থন",
|
||||
"LabelSettingsDateFormat": "তারিখ বিন্যাস",
|
||||
"LabelSettingsDisableWatcher": "প্রহরী নিষ্ক্রিয় করুন",
|
||||
"LabelSettingsDisableWatcherForLibrary": "লাইব্রেরির জন্য ফোল্ডার প্রহরী নিষ্ক্রিয় করুন",
|
||||
"LabelSettingsDisableWatcherHelp": "ফাইলের পরিবর্তন শনাক্ত হলে স্বয়ংক্রিয়ভাবে আইটেম যোগ/আপডেট করা অক্ষম করবে। *সার্ভার পুনরায় চালু করতে হবে",
|
||||
"LabelSettingsEnableWatcher": "প্রহরী সক্ষম করুন",
|
||||
"LabelSettingsEnableWatcherForLibrary": "লাইব্রেরির জন্য ফোল্ডার প্রহরী সক্ষম করুন",
|
||||
"LabelSettingsEnableWatcherHelp": "ফাইলের পরিবর্তন শনাক্ত হলে আইটেমগুলির স্বয়ংক্রিয় যোগ/আপডেট সক্ষম করবে। *সার্ভার পুনরায় চালু করতে হবে",
|
||||
"LabelSettingsExperimentalFeatures": "পরীক্ষামূলক বৈশিষ্ট্য",
|
||||
"LabelSettingsExperimentalFeaturesHelp": "ফিচারের বৈশিষ্ট্য যা আপনার প্রতিক্রিয়া ব্যবহার করতে পারে এবং পরীক্ষায় সহায়তা করতে পারে। গিটহাব আলোচনা খুলতে ক্লিক করুন।",
|
||||
"LabelSettingsFindCovers": "কভার খুঁজুন",
|
||||
"LabelSettingsFindCoversHelp": "যদি আপনার অডিওবইয়ের ফোল্ডারের ভিতরে একটি এমবেডেড কভার বা কভার ইমেজ না থাকে, তাহলে স্ক্যানার একটি কভার খোঁজার চেষ্টা করবে৷<br>দ্রষ্টব্য: এটি স্ক্যানের সময় বাড়িয়ে দেবে",
|
||||
"LabelSettingsHideSingleBookSeries": "একক বই সিরিজ লুকান",
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "যে সিরিজগুলোতে একটি বই আছে সেগুলো সিরিজের পাতা এবং নীড় পেজের তাক থেকে লুকিয়ে রাখা হবে।",
|
||||
"LabelSettingsHomePageBookshelfView": "নীড় পেজে বুকশেলফ ভিউ ব্যবহার করুন",
|
||||
"LabelSettingsLibraryBookshelfView": "লাইব্রেরি বুকশেলফ ভিউ ব্যবহার করুন",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "কন্টিনিউ সিরিজে আগের বইগুলো এড়িয়ে যান",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "কন্টিনিউ সিরিজের হোম পেজ শেল্ফ প্রথম বইটি দেখায় যেটি সিরিজে শুরু হয়নি যেটিতে অন্তত একটি বই শেষ হয়েছে এবং কোনো বই চলছে না। এই সেটিংটি সক্ষম করা হলে তা শুরু না হওয়া প্রথম বইটির পরিবর্তে সবচেয়ে দূরের সম্পূর্ণ বই থেকে সিরিজ চালিয়ে যাবে। ",
|
||||
"LabelSettingsParseSubtitles": "সাবটাইটেল পার্স করুন",
|
||||
"LabelSettingsParseSubtitlesHelp": "অডিওবুক ফোল্ডারের নাম থেকে সাবটাইটেল বের করুন৷<br>সাবটাইটেল অবশ্যই \" - \"<br>অর্থাৎ \"বুকের শিরোনাম - এখানে একটি সাবটাইটেল\" এর সাবটাইটেল আছে \"এখানে একটি সাবটাইটেল\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "মিলিত মেটাডেটা পছন্দ করুন",
|
||||
"LabelSettingsPreferMatchedMetadataHelp": "দ্রুত ম্যাচ ব্যবহার করার সময় মিলে যাওয়া ডেটা আইটেমের বিবরণকে ওভাররাইড করবে। ডিফল্টরূপে দ্রুত ম্যাচ শুধুমাত্র অনুপস্থিত বিশদগুলি পূরণ করবে।",
|
||||
"LabelSettingsSkipMatchingBooksWithASIN": "এমন বইগুলি এড়িয়ে যান যেগুলির মধ্যে ইতিমধ্যে একটি ASIN আছে",
|
||||
"LabelSettingsSkipMatchingBooksWithISBN": "ইতিমধ্যে একটি ISBN আছে এমন মেলা বইগুলি এড়িয়ে যান",
|
||||
"LabelSettingsSortingIgnorePrefixes": "বাছাই করার সময় উপসর্গ উপেক্ষা করুন",
|
||||
"LabelSettingsSortingIgnorePrefixesHelp": "অর্থাৎ \"বইয়ের শিরোনাম\" বইয়ের শিরোনাম \"বইয়ের শিরোনাম, \" হিসাবে সাজানো হবে উপসর্গের জন্য",
|
||||
"LabelSettingsSquareBookCovers": "বর্গাকার বইয়ের কভার ব্যবহার করুন",
|
||||
"LabelSettingsSquareBookCoversHelp": "প্রমাণ ১.৬:১ বইয়ের কভারের চেয়ে বর্গাকার কভার ব্যবহার করতে পছন্দ করুন",
|
||||
"LabelSettingsStoreCoversWithItem": "আইটেম সহ কভার সংরক্ষণ",
|
||||
"LabelSettingsStoreCoversWithItemHelp": "ডিফল্টভাবে কভারগুলি /মেটাডাটা/আইটেমগুলিতে সংরক্ষণ করা হয়, এই সেটিংটি সক্ষম করলে আপনার লাইব্রেরি আইটেম ফোল্ডারে কভারগুলি সংরক্ষণ করা হবে৷ \"কভার\" নামে শুধুমাত্র একটি ফাইল রাখা হবে",
|
||||
"LabelSettingsStoreMetadataWithItem": "আইটেমের সাথে মেটাডেটা সংরক্ষণ করুন",
|
||||
"LabelSettingsStoreMetadataWithItemHelp": "ডিফল্টরূপে মেটাডেটা ফাইলগুলি /মেটাডাটা/আইটেমগুলি -এ সংরক্ষণ করা হয়, এই সেটিংটি সক্ষম করলে মেটাডেটা ফাইলগুলি আপনার লাইব্রেরি আইটেম ফোল্ডারে সংরক্ষণ করা হবে",
|
||||
"LabelSettingsTimeFormat": "সময় বিন্যাস",
|
||||
"LabelShowAll": "সব দেখান",
|
||||
"LabelSize": "আকার",
|
||||
"LabelSleepTimer": "স্লিপ টাইমার",
|
||||
"LabelSlug": "স্লাগ",
|
||||
"LabelStart": "শুরু",
|
||||
"LabelStarted": "শুরু হয়েছে",
|
||||
"LabelStartedAt": "এতে শুরু হয়েছে",
|
||||
"LabelStartTime": "শুরু করার সময়",
|
||||
"LabelStatsAudioTracks": "অডিও ট্র্যাক",
|
||||
"LabelStatsAuthors": "লেখক",
|
||||
"LabelStatsBestDay": "সেরা দিন",
|
||||
"LabelStatsDailyAverage": "দৈনিক গড়",
|
||||
"LabelStatsDays": "দিন",
|
||||
"LabelStatsDaysListened": "যেদিন শোনা হয়েছে",
|
||||
"LabelStatsHours": "ঘন্টা",
|
||||
"LabelStatsInARow": "এক সারিতে",
|
||||
"LabelStatsItemsFinished": "আইটেম সমাপ্ত",
|
||||
"LabelStatsItemsInLibrary": "লাইব্রেরির আইটেম",
|
||||
"LabelStatsMinutes": "মিনিট",
|
||||
"LabelStatsMinutesListening": "মিনিট শুনছেন",
|
||||
"LabelStatsOverallDays": "সামগ্রিক দিন",
|
||||
"LabelStatsOverallHours": "সামগ্রিক ঘন্টা",
|
||||
"LabelStatsWeekListening": "সপ্তাহ শোনা",
|
||||
"LabelSubtitle": "সাবটাইটেল",
|
||||
"LabelSupportedFileTypes": "সমর্থিত ফাইল প্রকার",
|
||||
"LabelTag": "ট্যাগ",
|
||||
"LabelTags": "ট্যাগগুলো",
|
||||
"LabelTagsAccessibleToUser": "ব্যবহারকারীর কাছে অ্যাক্সেসযোগ্য ট্যাগ",
|
||||
"LabelTagsNotAccessibleToUser": "ট্যাগগুলি ব্যবহারকারীর কাছে অ্যাক্সেসযোগ্য নয়",
|
||||
"LabelTasks": "কাজ চলছে",
|
||||
"LabelTextEditorBulletedList": "বুলেটেড তালিকা",
|
||||
"LabelTextEditorLink": "লিঙ্ক",
|
||||
"LabelTextEditorNumberedList": "সংখ্যাযুক্ত তালিকা",
|
||||
"LabelTextEditorUnlink": "বিচ্ছিন্ন",
|
||||
"LabelTheme": "থিম",
|
||||
"LabelThemeDark": "অন্ধকার",
|
||||
"LabelThemeLight": "আলো",
|
||||
"LabelTimeBase": "সময় বেস",
|
||||
"LabelTimeListened": "সময় শোনা হয়েছে",
|
||||
"LabelTimeListenedToday": "আজ শোনার সময়",
|
||||
"LabelTimeRemaining": "{0}টি অবশিষ্ট",
|
||||
"LabelTimeToShift": "সেকেন্ডে স্থানান্তরের সময়",
|
||||
"LabelTitle": "শিরোনাম",
|
||||
"LabelToolsEmbedMetadata": "মেটাডেটা এম্বেড করুন",
|
||||
"LabelToolsEmbedMetadataDescription": "কভার ইমেজ এবং অধ্যায় সহ অডিও ফাইলগুলিতে মেটাডেটা এম্বেড করুন।",
|
||||
"LabelToolsMakeM4b": "M4B অডিওবুক ফাইল তৈরি করুন",
|
||||
"LabelToolsMakeM4bDescription": "এমবেডেড মেটাডেটা, কভার ইমেজ এবং অধ্যায় সহ একটি .M4B অডিওবুক ফাইল তৈরি করুন।",
|
||||
"LabelToolsSplitM4b": "M4B কে MP3 তে বিভক্ত করুন",
|
||||
"LabelToolsSplitM4bDescription": "এমবেডেড মেটাডেটা, কভার ইমেজ এবং অধ্যায় সহ অধ্যায় দ্বারা একটি M4B বিভক্ত থেকে MP3 তৈরি করুন।",
|
||||
"LabelTotalDuration": "মোট সময়কাল",
|
||||
"LabelTotalTimeListened": "মোট সময় শোনা",
|
||||
"LabelTrackFromFilename": "ফাইলের নাম থেকে ট্র্যাক করুন",
|
||||
"LabelTrackFromMetadata": "মেটাডেটা থেকে ট্র্যাক করুন",
|
||||
"LabelTracks": "ট্র্যাকস",
|
||||
"LabelTracksMultiTrack": "মাল্টি-ট্র্যাক",
|
||||
"LabelTracksNone": "কোন ট্র্যাক নেই",
|
||||
"LabelTracksSingleTrack": "একক-ট্র্যাক",
|
||||
"LabelType": "টাইপ",
|
||||
"LabelUnabridged": "অসংলগ্ন",
|
||||
"LabelUndo": "পূর্বাবস্থা",
|
||||
"LabelUnknown": "অজানা",
|
||||
"LabelUpdateCover": "কভার আপডেট করুন",
|
||||
"LabelUpdateCoverHelp": "একটি মিল থাকা অবস্থায় নির্বাচিত বইগুলির বিদ্যমান কভারগুলি ওভাররাইট করার অনুমতি দিন",
|
||||
"LabelUpdatedAt": "আপডেট করা হয়েছে",
|
||||
"LabelUpdateDetails": "বিশদ আপডেট করুন",
|
||||
"LabelUpdateDetailsHelp": "একটি মিল থাকা অবস্থায় নির্বাচিত বইগুলির বিদ্যমান বিবরণ ওভাররাইট করার অনুমতি দিন",
|
||||
"LabelUploaderDragAndDrop": "ফাইল বা ফোল্ডার টেনে আনুন এবং ফেলে দিন",
|
||||
"LabelUploaderDropFiles": "ফাইলগুলো ফেলে দিন",
|
||||
"LabelUploaderItemFetchMetadataHelp": "স্বয়ংক্রিয়ভাবে শিরোনাম, লেখক এবং সিরিজ আনুন",
|
||||
"LabelUseChapterTrack": "অধ্যায় ট্র্যাক ব্যবহার করুন",
|
||||
"LabelUseFullTrack": "সম্পূর্ণ ট্র্যাক ব্যবহার করুন",
|
||||
"LabelUser": "ব্যবহারকারী",
|
||||
"LabelUsername": "ব্যবহারকারীর নাম",
|
||||
"LabelValue": "মান",
|
||||
"LabelVersion": "সংস্করণ",
|
||||
"LabelViewBookmarks": "বুকমার্ক দেখুন",
|
||||
"LabelViewChapters": "অধ্যায় দেখুন",
|
||||
"LabelViewQueue": "প্লেয়ার সারি দেখুন",
|
||||
"LabelVolume": "ভলিউম",
|
||||
"LabelWeekdaysToRun": "চলতে হবে সপ্তাহের দিন",
|
||||
"LabelYearReviewHide": "পর্যালোচনার বছর লুকান",
|
||||
"LabelYearReviewShow": "পর্যালোচনার বছর দেখুন",
|
||||
"LabelYourAudiobookDuration": "আপনার অডিওবুকের সময়কাল",
|
||||
"LabelYourBookmarks": "আপনার বুকমার্কস",
|
||||
"LabelYourPlaylists": "আপনার প্লেলিস্ট",
|
||||
"LabelYourProgress": "আপনার অগ্রগতি",
|
||||
"MessageAddToPlayerQueue": "প্লেয়ার সারিতে যোগ করুন",
|
||||
"MessageAppriseDescription": "এই বৈশিষ্ট্যটি ব্যবহার করার জন্য আপনাকে <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</-এর একটি উদাহরণ থাকতে হবে a> চলমান বা একটি এপিআই যা সেই একই অনুরোধগুলি পরিচালনা করবে৷ <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>-এ সংরক্ষিত ছবি। ব্যাকআপগুলি <strong> আপনার লাইব্রেরি ফোল্ডারে সঞ্চিত কোনো ফাইল >অন্তর্ভুক্ত করবেন না</strong>।",
|
||||
"MessageBatchQuickMatchDescription": "কুইক ম্যাচ নির্বাচিত আইটেমগুলির জন্য অনুপস্থিত কভার এবং মেটাডেটা যোগ করার চেষ্টা করবে। বিদ্যমান কভার এবং/অথবা মেটাডেটা ওভাররাইট করার জন্য দ্রুত ম্যাচকে অনুমতি দিতে নীচের বিকল্পগুলি সক্ষম করুন।",
|
||||
"MessageBookshelfNoCollections": "আপনি এখনও কোনো সংগ্রহ করেননি",
|
||||
"MessageBookshelfNoResultsForFilter": "ফিল্টার \"{0}: {1}\" এর জন্য কোন ফলাফল নেই",
|
||||
"MessageBookshelfNoRSSFeeds": "কোনও RSS ফিড খোলা নেই",
|
||||
"MessageBookshelfNoSeries": "আপনার কোনো সিরিজ নেই",
|
||||
"MessageChapterEndIsAfter": "অধ্যায়ের সমাপ্তি আপনার অডিওবুকের শেষে",
|
||||
"MessageChapterErrorFirstNotZero": "প্রথম অধ্যায় 0 এ শুরু হতে হবে",
|
||||
"MessageChapterErrorStartGteDuration": "অবৈধ শুরুর সময় অবশ্যই অডিওবুকের সময়কালের কম হতে হবে",
|
||||
"MessageChapterErrorStartLtPrev": "অবৈধ শুরুর সময় অবশ্যই আগের অধ্যায় শুরুর সময়ের চেয়ে বেশি বা সমান হতে হবে",
|
||||
"MessageChapterStartIsAfter": "আপনার অডিওবুক শেষ হওয়ার পরে অধ্যায় শুরু হয়",
|
||||
"MessageCheckingCron": "ক্রন পরীক্ষা করা হচ্ছে...",
|
||||
"MessageConfirmCloseFeed": "আপনি কি নিশ্চিত যে আপনি এই ফিডটি বন্ধ করতে চান?",
|
||||
"MessageConfirmDeleteBackup": "আপনি কি নিশ্চিত যে আপনি {0} এর ব্যাকআপ মুছে ফেলতে চান?",
|
||||
"MessageConfirmDeleteFile": "এটি আপনার ফাইল সিস্টেম থেকে ফাইলটি মুছে দেবে। আপনি কি নিশ্চিত?",
|
||||
"MessageConfirmDeleteLibrary": "আপনি কি নিশ্চিত যে আপনি স্থায়ীভাবে লাইব্রেরি \"{0}\" মুছে ফেলতে চান?",
|
||||
"MessageConfirmDeleteLibraryItem": "এটি ডাটাবেস এবং আপনার ফাইল সিস্টেম থেকে লাইব্রেরি আইটেমটি মুছে ফেলবে। আপনি কি নিশ্চিত?",
|
||||
"MessageConfirmDeleteLibraryItems": "এটি ডাটাবেস এবং আপনার ফাইল সিস্টেম থেকে {0}টি লাইব্রেরি আইটেম মুছে ফেলবে। আপনি কি নিশ্চিত?",
|
||||
"MessageConfirmDeleteSession": "আপনি কি নিশ্চিত আপনি এই অধিবেশন মুছে দিতে চান?",
|
||||
"MessageConfirmForceReScan": "আপনি কি নিশ্চিত যে আপনি জোর করে পুনরায় স্ক্যান করতে চান?",
|
||||
"MessageConfirmMarkAllEpisodesFinished": "আপনি কি নিশ্চিত যে আপনি সমস্ত পর্ব সমাপ্ত হিসাবে চিহ্নিত করতে চান?",
|
||||
"MessageConfirmMarkAllEpisodesNotFinished": "আপনি কি নিশ্চিত যে আপনি সমস্ত পর্বকে শেষ হয়নি বলে চিহ্নিত করতে চান?",
|
||||
"MessageConfirmMarkSeriesFinished": "আপনি কি নিশ্চিত যে আপনি এই সিরিজের সমস্ত বইকে সমাপ্ত হিসাবে চিহ্নিত করতে চান?",
|
||||
"MessageConfirmMarkSeriesNotFinished": "আপনি কি নিশ্চিত যে আপনি এই সিরিজের সমস্ত বইকে শেষ হয়নি বলে চিহ্নিত করতে চান?",
|
||||
"MessageConfirmQuickEmbed": "সতর্কতা! দ্রুত এম্বেড আপনার অডিও ফাইলের ব্যাকআপ করবে না। নিশ্চিত করুন যে আপনার অডিও ফাইলগুলির একটি ব্যাকআপ আছে। <br><br>আপনি কি চালিয়ে যেতে চান?",
|
||||
"MessageConfirmRemoveAllChapters": "আপনি কি নিশ্চিত যে আপনি সমস্ত অধ্যায় সরাতে চান?",
|
||||
"MessageConfirmRemoveAuthor": "আপনি কি নিশ্চিত যে আপনি লেখক \"{0}\" অপসারণ করতে চান?",
|
||||
"MessageConfirmRemoveCollection": "আপনি কি নিশ্চিত যে আপনি সংগ্রহ \"{0}\" সরাতে চান?",
|
||||
"MessageConfirmRemoveEpisode": "আপনি কি নিশ্চিত আপনি \"{0}\" পর্বটি সরাতে চান?",
|
||||
"MessageConfirmRemoveEpisodes": "আপনি কি নিশ্চিত যে আপনি {0}টি পর্ব সরাতে চান?",
|
||||
"MessageConfirmRemoveListeningSessions": "আপনি কি নিশ্চিত যে আপনি {0}টি শোনার সেশন সরাতে চান?",
|
||||
"MessageConfirmRemoveNarrator": "আপনি কি \"{0}\" বর্ণনাকারীকে সরানোর বিষয়ে নিশ্চিত?",
|
||||
"MessageConfirmRemovePlaylist": "আপনি কি নিশ্চিত যে আপনি আপনার প্লেলিস্ট \"{0}\" সরাতে চান?",
|
||||
"MessageConfirmRenameGenre": "আপনি কি নিশ্চিত যে আপনি সমস্ত আইটেমের জন্য \"{0}\" ধারার নাম পরিবর্তন করে \"{1}\" করতে চান?",
|
||||
"MessageConfirmRenameGenreMergeNote": "দ্রষ্টব্য: এই ধারাটি আগে থেকেই বিদ্যমান তাই সেগুলিকে একত্রিত করা হবে।",
|
||||
"MessageConfirmRenameGenreWarning": "সতর্কতা! একটি ভিন্ন কেসিং সহ একটি অনুরূপ ধারা ইতিমধ্যেই বিদ্যমান \"{0}\"।",
|
||||
"MessageConfirmRenameTag": "আপনি কি সব আইটেমের জন্য \"{0}\" ট্যাগের নাম পরিবর্তন করে \"{1}\" করার বিষয়ে নিশ্চিত?",
|
||||
"MessageConfirmRenameTagMergeNote": "দ্রষ্টব্য: এই ট্যাগটি আগে থেকেই বিদ্যমান তাই সেগুলিকে একত্র করা হবে।",
|
||||
"MessageConfirmRenameTagWarning": "সতর্কতা! একটি ভিন্ন কেসিং সহ একটি অনুরূপ ট্যাগ ইতিমধ্যেই বিদ্যমান \"{0}\"।",
|
||||
"MessageConfirmReScanLibraryItems": "আপনি কি নিশ্চিত যে আপনি {0}টি আইটেম পুনরায় স্ক্যান করতে চান?",
|
||||
"MessageConfirmSendEbookToDevice": "আপনি কি নিশ্চিত যে আপনি \"{2}\" ডিভাইসে {0} ইবুক \"{1}\" পাঠাতে চান?",
|
||||
"MessageDownloadingEpisode": "ডাউনলোডিং পর্ব",
|
||||
"MessageDragFilesIntoTrackOrder": "সঠিক ট্র্যাক অর্ডারে ফাইল টেনে আনুন",
|
||||
"MessageEmbedFinished": "এম্বেড করা শেষ!",
|
||||
"MessageEpisodesQueuedForDownload": "{0} পর্ব(গুলি) ডাউনলোডের জন্য সারিবদ্ধ",
|
||||
"MessageFeedURLWillBe": "ফিড URL হবে {0}",
|
||||
"MessageFetching": "আনয় হচ্ছে...",
|
||||
"MessageForceReScanDescription": "সকল ফাইল আবার নতুন স্ক্যানের মত স্ক্যান করবে। অডিও ফাইল ID3 ট্যাগ, OPF ফাইল, এবং টেক্সট ফাইলগুলি নতুন হিসাবে স্ক্যান করা হবে।",
|
||||
"MessageImportantNotice": "গুরুত্বপূর্ণ বিজ্ঞপ্তি!",
|
||||
"MessageInsertChapterBelow": "নীচে অধ্যায় ঢোকান",
|
||||
"MessageItemsSelected": "{0}টি আইটেম নির্বাচিত",
|
||||
"MessageItemsUpdated": "{0}টি আইটেম আপডেট করা হয়েছে",
|
||||
"MessageJoinUsOn": "আমাদের সাথে যোগ দিন",
|
||||
"MessageListeningSessionsInTheLastYear": "গত বছরে {0}টি শোনার সেশন",
|
||||
"MessageLoading": "লোড হচ্ছে...",
|
||||
"MessageLoadingFolders": "ফোল্ডার লোড হচ্ছে...",
|
||||
"MessageM4BFailed": "M4B ব্যর্থ!",
|
||||
"MessageM4BFinished": "M4B সমাপ্ত!",
|
||||
"MessageMapChapterTitles": "টাইমস্ট্যাম্প সামঞ্জস্য না করে আপনার বিদ্যমান অডিওবুক অধ্যায়গুলিতে অধ্যায়ের শিরোনাম ম্যাপ করুন",
|
||||
"MessageMarkAllEpisodesFinished": "সমস্ত পর্ব সমাপ্ত চিহ্নিত করুন",
|
||||
"MessageMarkAllEpisodesNotFinished": "সমস্ত পর্ব শেষ হয়নি চিহ্নিত করুন",
|
||||
"MessageMarkAsFinished": "সমাপ্ত হিসাবে চিহ্নিত করুন",
|
||||
"MessageMarkAsNotFinished": "সমাপ্ত হয়নি হিসাবে চিহ্নিত করুন",
|
||||
"MessageMatchBooksDescription": "নির্বাচিত অনুসন্ধান প্রদানকারীর একটি বইয়ের সাথে লাইব্রেরিতে বই মেলানোর চেষ্টা করবে এবং খালি বিবরণ এবং কভার আর্ট পূরণ করবে। বিস্তারিত ওভাররাইট করে না।",
|
||||
"MessageNoAudioTracks": "কোন অডিও ট্র্যাক নেই",
|
||||
"MessageNoAuthors": "কোন লেখক নেই",
|
||||
"MessageNoBackups": "কোন ব্যাকআপ নেই",
|
||||
"MessageNoBookmarks": "কোন বুকমার্ক নেই",
|
||||
"MessageNoChapters": "কোনও অধ্যায় নেই",
|
||||
"MessageNoCollections": "কোন সংগ্রহ নেই",
|
||||
"MessageNoCoversFound": "কোন কভার পাওয়া যায়নি",
|
||||
"MessageNoDescription": "কোন বর্ণনা নেই",
|
||||
"MessageNoDownloadsInProgress": "বর্তমানে কোনো ডাউনলোড চলছে না",
|
||||
"MessageNoDownloadsQueued": "কোনও ডাউনলোড সারি নেই",
|
||||
"MessageNoEpisodeMatchesFound": "কোন পর্বের মিল পাওয়া যায়নি",
|
||||
"MessageNoEpisodes": "কোন পর্ব নেই",
|
||||
"MessageNoFoldersAvailable": "কোন ফোল্ডার উপলব্ধ নেই",
|
||||
"MessageNoGenres": "কোন ধরন নেই",
|
||||
"MessageNoIssues": "কোন সমস্যা নেই",
|
||||
"MessageNoItems": "কোন আইটেম নেই",
|
||||
"MessageNoItemsFound": "কোন আইটেম পাওয়া যায়নি",
|
||||
"MessageNoListeningSessions": "কোনও শোনার সেশন নেই",
|
||||
"MessageNoLogs": "কোনও লগ নেই",
|
||||
"MessageNoMediaProgress": "মিডিয়া অগ্রগতি নেই",
|
||||
"MessageNoNotifications": "কোনো বিজ্ঞপ্তি নেই",
|
||||
"MessageNoPodcastsFound": "কোন পডকাস্ট পাওয়া যায়নি",
|
||||
"MessageNoResults": "কোন ফলাফল নেই",
|
||||
"MessageNoSearchResultsFor": "\"{0}\" এর জন্য কোন অনুসন্ধান ফলাফল নেই",
|
||||
"MessageNoSeries": "কোন সিরিজ নেই",
|
||||
"MessageNoTags": "কোন ট্যাগ নেই",
|
||||
"MessageNoTasksRunning": "কোন টাস্ক চলছে না",
|
||||
"MessageNotYetImplemented": "এখনও বাস্তবায়িত হয়নি",
|
||||
"MessageNoUpdateNecessary": "কোন আপডেটের প্রয়োজন নেই",
|
||||
"MessageNoUpdatesWereNecessary": "কোন আপডেটের প্রয়োজন ছিল না",
|
||||
"MessageNoUserPlaylists": "আপনার কোনো প্লেলিস্ট নেই",
|
||||
"MessageOr": "বা",
|
||||
"MessagePauseChapter": "পজ অধ্যায় প্লেব্যাক",
|
||||
"MessagePlayChapter": "অধ্যায়ের শুরুতে শুনুন",
|
||||
"MessagePlaylistCreateFromCollection": "সংগ্রহ থেকে প্লেলিস্ট তৈরি করুন",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "পডকাস্টের সাথে মিলের জন্য ব্যবহার করার জন্য কোন RSS ফিড ইউআরএল নেই",
|
||||
"MessageQuickMatchDescription": "খালি আইটেমের বিশদ বিবরণ এবং '{0}' থেকে প্রথম ম্যাচের ফলাফলের সাথে কভার করুন। সার্ভার সেটিং সক্ষম না থাকলে বিশদ ওভাররাইট করে না।",
|
||||
"MessageRemoveChapter": "অধ্যায় সরান",
|
||||
"MessageRemoveEpisodes": "{0}টি পর্ব(গুলি) সরান",
|
||||
"MessageRemoveFromPlayerQueue": "প্লেয়ার সারি থেকে সরান",
|
||||
"MessageRemoveUserWarning": "আপনি কি নিশ্চিত আপনি স্থায়ীভাবে ব্যবহারকারী \"{0}\" মুছে ফেলতে চান?",
|
||||
"MessageReportBugsAndContribute": "বাগ রিপোর্ট করুন, বৈশিষ্ট্যের অনুরোধ করুন এবং এতে অবদান রাখুন",
|
||||
"MessageResetChaptersConfirm": "আপনি কি নিশ্চিত যে আপনি অধ্যায়গুলি পুনরায় সেট করতে চান এবং আপনার করা পরিবর্তনগুলি পূর্বাবস্থায় ফেরাতে চান?",
|
||||
"MessageRestoreBackupConfirm": "আপনি কি নিশ্চিত যে আপনি তৈরি করা ব্যাকআপ পুনরুদ্ধার করতে চান",
|
||||
"MessageRestoreBackupWarning": "একটি ব্যাকআপ পুনরুদ্ধার করা হলে তা /config-এ অবস্থিত সমগ্র ডাটাবেস ওভাররাইট করবে এবং /metadata/items & /metadata/authors-এ থাকা ছবিগুলিকে কভার করবে৷<br /><br />ব্যাকআপগুলি আপনার লাইব্রেরি ফোল্ডারে কোনো ফাইল পরিবর্তন করে না৷ আপনি যদি আপনার লাইব্রেরি ফোল্ডারে কভার আর্ট এবং মেটাডেটা সংরক্ষণ করতে সার্ভার সেটিংস সক্ষম করে থাকেন তবে সেগুলি ব্যাক আপ বা ওভাররাইট করা হয় না৷<br /><br />আপনার সার্ভার ব্যবহারকারী সমস্ত ক্লায়েন্ট স্বয়ংক্রিয়ভাবে রিফ্রেশ হবে৷",
|
||||
"MessageSearchResultsFor": "এর জন্য অনুসন্ধান ফলাফল",
|
||||
"MessageSelected": "{0}টি নির্বাচিত",
|
||||
"MessageServerCouldNotBeReached": "সার্ভারে পৌঁছানো যায়নি",
|
||||
"MessageSetChaptersFromTracksDescription": "প্রতিটি অডিও ফাইলকে অধ্যায় হিসেবে ব্যবহার করে অধ্যায় সেট করুন এবং অডিও ফাইলের নাম হিসেবে অধ্যায়ের শিরোনাম করুন",
|
||||
"MessageStartPlaybackAtTime": "\"{0}\" এর জন্য {1} এ প্লেব্যাক শুরু করবেন?",
|
||||
"MessageThinking": "চিন্তা করছি...",
|
||||
"MessageUploaderItemFailed": "আপলোড করতে ব্যর্থ",
|
||||
"MessageUploaderItemSuccess": "সফলভাবে আপলোড হয়েছে!",
|
||||
"MessageUploading": "আপলোড হচ্ছে...",
|
||||
"MessageValidCronExpression": "বৈধ ক্রোন এক্সপ্রেশন",
|
||||
"MessageWatcherIsDisabledGlobally": "সার্ভার সেটিংসে বিশ্বব্যাপী প্রহরী অক্ষম করা হয়েছে",
|
||||
"MessageXLibraryIsEmpty": "{0} লাইব্রেরি খালি!",
|
||||
"MessageYourAudiobookDurationIsLonger": "আপনার অডিওবুকের সময়কাল পাওয়া সময়ের চেয়ে বেশি",
|
||||
"MessageYourAudiobookDurationIsShorter": "আপনার অডিওবুকের সময়কাল পাওয়া সময়ের চেয়ে কম",
|
||||
"NoteChangeRootPassword": "রুট ব্যবহারকারীই একমাত্র ব্যবহারকারী যার একটি খালি পাসওয়ার্ড থাকতে পারে",
|
||||
"NoteChapterEditorTimes": "দ্রষ্টব্য: প্রথম অধ্যায়ের শুরুর সময় অবশ্যই 0:00 এ থাকতে হবে এবং শেষ অধ্যায়ের শুরুর সময়টি এই অডিওবুকের সময়কাল অতিক্রম করতে পারবে না।",
|
||||
"NoteFolderPicker": "দ্রষ্টব্য: ইতিমধ্যে ম্যাপ করা ফোল্ডারগুলি দেখানো হবে না",
|
||||
"NoteRSSFeedPodcastAppsHttps": "সতর্কতা: বেশিরভাগ পডকাস্ট অ্যাপের জন্য প্রয়োজন হবে RSS ফিড URL যেটি HTTPS ব্যবহার করছে",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "সতর্কতা: আপনার 1 বা তার বেশি পর্বের একটি পাব তারিখ নেই। কিছু পডকাস্ট অ্যাপের এটি প্রয়োজন।",
|
||||
"NoteUploaderFoldersWithMediaFiles": "মিডিয়া ফাইল সহ ফোল্ডারগুলি আলাদা লাইব্রেরি আইটেম হিসাবে পরিচালনা করা হবে।",
|
||||
"NoteUploaderOnlyAudioFiles": "যদি শুধুমাত্র অডিও ফাইল আপলোড করা হয় তবে প্রতিটি অডিও ফাইল একটি পৃথক অডিওবুক হিসাবে পরিচালনা করা হবে।",
|
||||
"NoteUploaderUnsupportedFiles": "অসমর্থিত ফাইলগুলি উপেক্ষা করা হয়। একটি ফোল্ডার বেছে নেওয়া বা ফেলে দেওয়ার সময়, আইটেম ফোল্ডারে নেই এমন অন্যান্য ফাইলগুলি উপেক্ষা করা হয়।",
|
||||
"PlaceholderNewCollection": "নতুন সংগ্রহের নাম",
|
||||
"PlaceholderNewFolderPath": "নতুন ফোল্ডার পথ",
|
||||
"PlaceholderNewPlaylist": "নতুন প্লেলিস্টের নাম",
|
||||
"PlaceholderSearch": "অনুসন্ধান..",
|
||||
"PlaceholderSearchEpisode": "অনুসন্ধান পর্ব..",
|
||||
"ToastAccountUpdateFailed": "অ্যাকাউন্ট আপডেট করতে ব্যর্থ",
|
||||
"ToastAccountUpdateSuccess": "অ্যাকাউন্ট আপডেট করা হয়েছে",
|
||||
"ToastAuthorImageRemoveFailed": "ছবি সরাতে ব্যর্থ",
|
||||
"ToastAuthorImageRemoveSuccess": "লেখকের ছবি সরানো হয়েছে",
|
||||
"ToastAuthorUpdateFailed": "লেখক আপডেট করতে ব্যর্থ",
|
||||
"ToastAuthorUpdateMerged": "লেখক একত্রিত হয়েছে",
|
||||
"ToastAuthorUpdateSuccess": "লেখক আপডেট করেছেন",
|
||||
"ToastAuthorUpdateSuccessNoImageFound": "লেখক আপডেট করেছেন (কোন ছবি পাওয়া যায়নি)",
|
||||
"ToastBackupCreateFailed": "ব্যাকআপ তৈরি করতে ব্যর্থ",
|
||||
"ToastBackupCreateSuccess": "ব্যাকআপ তৈরি করা হয়েছে",
|
||||
"ToastBackupDeleteFailed": "ব্যাকআপ মুছে ফেলতে ব্যর্থ",
|
||||
"ToastBackupDeleteSuccess": "ব্যাকআপ মুছে ফেলা হয়েছে",
|
||||
"ToastBackupRestoreFailed": "ব্যাকআপ পুনরুদ্ধার করতে ব্যর্থ",
|
||||
"ToastBackupUploadFailed": "ব্যাকআপ আপলোড করতে ব্যর্থ",
|
||||
"ToastBackupUploadSuccess": "ব্যাকআপ আপলোড হয়েছে",
|
||||
"ToastBatchUpdateFailed": "ব্যাচ আপডেট ব্যর্থ হয়েছে",
|
||||
"ToastBatchUpdateSuccess": "ব্যাচ আপডেট সাফল্য",
|
||||
"ToastBookmarkCreateFailed": "বুকমার্ক তৈরি করতে ব্যর্থ",
|
||||
"ToastBookmarkCreateSuccess": "বুকমার্ক যোগ করা হয়েছে",
|
||||
"ToastBookmarkRemoveFailed": "বুকমার্ক সরাতে ব্যর্থ",
|
||||
"ToastBookmarkRemoveSuccess": "বুকমার্ক সরানো হয়েছে",
|
||||
"ToastBookmarkUpdateFailed": "বুকমার্ক আপডেট করতে ব্যর্থ",
|
||||
"ToastBookmarkUpdateSuccess": "বুকমার্ক আপডেট করা হয়েছে",
|
||||
"ToastChaptersHaveErrors": "অধ্যায়ে ত্রুটি আছে",
|
||||
"ToastChaptersMustHaveTitles": "অধ্যায়ের শিরোনাম থাকতে হবে",
|
||||
"ToastCollectionItemsRemoveFailed": "সংগ্রহ থেকে আইটেম(গুলি) সরাতে ব্যর্থ",
|
||||
"ToastCollectionItemsRemoveSuccess": "আইটেম(গুলি) সংগ্রহ থেকে সরানো হয়েছে",
|
||||
"ToastCollectionRemoveFailed": "সংগ্রহ সরাতে ব্যর্থ",
|
||||
"ToastCollectionRemoveSuccess": "সংগ্রহ সরানো হয়েছে",
|
||||
"ToastCollectionUpdateFailed": "সংগ্রহ আপডেট করতে ব্যর্থ",
|
||||
"ToastCollectionUpdateSuccess": "সংগ্রহ আপডেট করা হয়েছে",
|
||||
"ToastItemCoverUpdateFailed": "আইটেম কভার আপডেট করতে ব্যর্থ হয়েছে",
|
||||
"ToastItemCoverUpdateSuccess": "আইটেম কভার আপডেট করা হয়েছে",
|
||||
"ToastItemDetailsUpdateFailed": "আইটেমের বিবরণ আপডেট করতে ব্যর্থ",
|
||||
"ToastItemDetailsUpdateSuccess": "আইটেমের বিবরণ আপডেট করা হয়েছে",
|
||||
"ToastItemDetailsUpdateUnneeded": "আইটেমের বিবরণের জন্য কোন আপডেটের প্রয়োজন নেই",
|
||||
"ToastItemMarkedAsFinishedFailed": "সমাপ্ত হিসাবে চিহ্নিত করতে ব্যর্থ",
|
||||
"ToastItemMarkedAsFinishedSuccess": "আইটেম সমাপ্ত হিসাবে চিহ্নিত",
|
||||
"ToastItemMarkedAsNotFinishedFailed": "সমাপ্ত হয়নি হিসাবে চিহ্নিত করতে ব্যর্থ",
|
||||
"ToastItemMarkedAsNotFinishedSuccess": "আইটেম সমাপ্ত হয়নি বলে চিহ্নিত",
|
||||
"ToastLibraryCreateFailed": "লাইব্রেরি তৈরি করতে ব্যর্থ",
|
||||
"ToastLibraryCreateSuccess": "লাইব্রেরি \"{0}\" তৈরি করা হয়েছে",
|
||||
"ToastLibraryDeleteFailed": "লাইব্রেরি মুছে ফেলতে ব্যর্থ",
|
||||
"ToastLibraryDeleteSuccess": "লাইব্রেরি মুছে ফেলা হয়েছে",
|
||||
"ToastLibraryScanFailedToStart": "স্ক্যান শুরু করতে ব্যর্থ",
|
||||
"ToastLibraryScanStarted": "লাইব্রেরি স্ক্যান শুরু হয়েছে",
|
||||
"ToastLibraryUpdateFailed": "লাইব্রেরি আপডেট করতে ব্যর্থ",
|
||||
"ToastLibraryUpdateSuccess": "লাইব্রেরি \"{0}\" আপডেট করা হয়েছে",
|
||||
"ToastPlaylistCreateFailed": "প্লেলিস্ট তৈরি করতে ব্যর্থ",
|
||||
"ToastPlaylistCreateSuccess": "প্লেলিস্ট তৈরি করা হয়েছে",
|
||||
"ToastPlaylistRemoveFailed": "প্লেলিস্ট সরাতে ব্যর্থ",
|
||||
"ToastPlaylistRemoveSuccess": "প্লেলিস্ট সরানো হয়েছে",
|
||||
"ToastPlaylistUpdateFailed": "প্লেলিস্ট আপডেট করতে ব্যর্থ",
|
||||
"ToastPlaylistUpdateSuccess": "প্লেলিস্ট আপডেট করা হয়েছে",
|
||||
"ToastPodcastCreateFailed": "পডকাস্ট তৈরি করতে ব্যর্থ",
|
||||
"ToastPodcastCreateSuccess": "পডকাস্ট সফলভাবে তৈরি করা হয়েছে",
|
||||
"ToastRemoveItemFromCollectionFailed": "সংগ্রহ থেকে আইটেম সরাতে ব্যর্থ",
|
||||
"ToastRemoveItemFromCollectionSuccess": "সংগ্রহ থেকে আইটেম সরানো হয়েছে",
|
||||
"ToastRSSFeedCloseFailed": "RSS ফিড বন্ধ করতে ব্যর্থ",
|
||||
"ToastRSSFeedCloseSuccess": "RSS ফিড বন্ধ",
|
||||
"ToastSendEbookToDeviceFailed": "ডিভাইসে ইবুক পাঠাতে ব্যর্থ",
|
||||
"ToastSendEbookToDeviceSuccess": "ইবুক \"{0}\" ডিভাইসে পাঠানো হয়েছে",
|
||||
"ToastSeriesUpdateFailed": "সিরিজ আপডেট ব্যর্থ হয়েছে",
|
||||
"ToastSeriesUpdateSuccess": "সিরিজ আপডেট সাফল্য",
|
||||
"ToastSessionDeleteFailed": "সেশন মুছে ফেলতে ব্যর্থ",
|
||||
"ToastSessionDeleteSuccess": "সেশন মুছে ফেলা হয়েছে",
|
||||
"ToastSocketConnected": "সকেট সংযুক্ত",
|
||||
"ToastSocketDisconnected": "সকেট সংযোগ বিচ্ছিন্ন",
|
||||
"ToastSocketFailedToConnect": "সকেট সংযোগ করতে ব্যর্থ হয়েছে",
|
||||
"ToastUserDeleteFailed": "ব্যবহারকারী মুছতে ব্যর্থ",
|
||||
"ToastUserDeleteSuccess": "ব্যবহারকারী মুছে ফেলা হয়েছে"
|
||||
}
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Spárovat všechny autory",
|
||||
"ButtonMatchBooks": "Spárovat Knihy",
|
||||
"ButtonNevermind": "Nevadí",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Otevřít kanál",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Přehrát",
|
||||
"ButtonPlaying": "Hraje",
|
||||
"ButtonPlaylists": "Seznamy skladeb",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Vyčistit veškerou mezipaměť",
|
||||
"ButtonPurgeItemsCache": "Vyčistit mezipaměť položek",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Odstranit z fronty",
|
||||
"ButtonQuickMatch": "Rychlé přiřazení",
|
||||
"ButtonRead": "Číst",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Odstranit",
|
||||
"ButtonRemoveAll": "Odstranit vše",
|
||||
"ButtonRemoveAllLibraryItems": "Odstranit všechny položky knihovny",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Vybrat cestu ke složce",
|
||||
"ButtonSeries": "Série",
|
||||
"ButtonSetChaptersFromTracks": "Nastavit kapitoly ze stop",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Časy posunu",
|
||||
"ButtonShow": "Zobrazit",
|
||||
"ButtonStartM4BEncode": "Spustit kódování M4B",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Aktualizovat podrobnosti",
|
||||
"HeaderUpdateLibrary": "Aktualizovat knihovnu",
|
||||
"HeaderUsers": "Uživatelé",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Vaše statistiky",
|
||||
"LabelAbridged": "Zkráceno",
|
||||
"LabelAccountType": "Typ účtu",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Každých 6 hodin",
|
||||
"LabelIntervalEveryDay": "Každý den",
|
||||
"LabelIntervalEveryHour": "Každou hodinu",
|
||||
"LabelInvalidParts": "Neplatné části",
|
||||
"LabelInvert": "Invertovat",
|
||||
"LabelItem": "Položka",
|
||||
"LabelLanguage": "Jazyk",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Metaznačky",
|
||||
"LabelMinute": "Minuta",
|
||||
"LabelMissing": "Chybějící",
|
||||
"LabelMissingParts": "Chybějící díly",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Více",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Nezahájeno",
|
||||
"LabelNumberOfBooks": "Počet knih",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Otevřít RSS kanál",
|
||||
"LabelOverwrite": "Přepsat",
|
||||
"LabelPassword": "Heslo",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Může stahovat",
|
||||
"LabelPermissionsUpdate": "Může aktualizovat",
|
||||
"LabelPermissionsUpload": "Může nahrávat",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Cesta k fotografii/URL",
|
||||
"LabelPlaylists": "Seznamy skladeb",
|
||||
"LabelPlayMethod": "Metoda přehrávání",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Série",
|
||||
"LabelSeriesName": "Název série",
|
||||
"LabelSeriesProgress": "Průběh série",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Nastavit jako primární",
|
||||
"LabelSetEbookAsSupplementary": "Nastavit jako doplňkové",
|
||||
"LabelSettingsAudiobooksOnly": "Pouze audioknihy",
|
||||
@@ -457,6 +467,8 @@
|
||||
"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",
|
||||
"LabelSettingsLibraryBookshelfView": "Knihovna používá zobrazení police s knihami",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "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\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Preferovat spárovaná metadata",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Zobrazit frontu přehrávače",
|
||||
"LabelVolume": "Hlasitost",
|
||||
"LabelWeekdaysToRun": "Dny v týdnu ke spuštění",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Doba trvání vaší audioknihy",
|
||||
"LabelYourBookmarks": "Vaše záložky",
|
||||
"LabelYourPlaylists": "Vaše seznamy přehrávání",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Match alle forfattere",
|
||||
"ButtonMatchBooks": "Match bøger",
|
||||
"ButtonNevermind": "Glem det",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "OK",
|
||||
"ButtonOpenFeed": "Åbn feed",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Afspil",
|
||||
"ButtonPlaying": "Afspiller",
|
||||
"ButtonPlaylists": "Afspilningslister",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Ryd al cache",
|
||||
"ButtonPurgeItemsCache": "Ryd elementcache",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Fjern fra kø",
|
||||
"ButtonQuickMatch": "Hurtig Match",
|
||||
"ButtonRead": "Læs",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Fjern",
|
||||
"ButtonRemoveAll": "Fjern Alle",
|
||||
"ButtonRemoveAllLibraryItems": "Fjern Alle Bibliotekselementer",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Vælg Mappen Sti",
|
||||
"ButtonSeries": "Serie",
|
||||
"ButtonSetChaptersFromTracks": "Sæt kapitler fra spor",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Skift Tider",
|
||||
"ButtonShow": "Vis",
|
||||
"ButtonStartM4BEncode": "Start M4B Kode",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Opdater Detaljer",
|
||||
"HeaderUpdateLibrary": "Opdater Bibliotek",
|
||||
"HeaderUsers": "Brugere",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Dine Statistikker",
|
||||
"LabelAbridged": "Abridged",
|
||||
"LabelAccountType": "Kontotype",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Hver 6. time",
|
||||
"LabelIntervalEveryDay": "Hver dag",
|
||||
"LabelIntervalEveryHour": "Hver time",
|
||||
"LabelInvalidParts": "Ugyldige dele",
|
||||
"LabelInvert": "Inverter",
|
||||
"LabelItem": "Element",
|
||||
"LabelLanguage": "Sprog",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta-tags",
|
||||
"LabelMinute": "Minut",
|
||||
"LabelMissing": "Mangler",
|
||||
"LabelMissingParts": "Manglende dele",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Mere",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Ikke påbegyndt",
|
||||
"LabelNumberOfBooks": "Antal bøger",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Åbn RSS-feed",
|
||||
"LabelOverwrite": "Overskriv",
|
||||
"LabelPassword": "Kodeord",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Kan downloade",
|
||||
"LabelPermissionsUpdate": "Kan opdatere",
|
||||
"LabelPermissionsUpload": "Kan uploade",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Foto sti/URL",
|
||||
"LabelPlaylists": "Afspilningslister",
|
||||
"LabelPlayMethod": "Afspilningsmetode",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Serie",
|
||||
"LabelSeriesName": "Serienavn",
|
||||
"LabelSeriesProgress": "Seriefremskridt",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Indstil som primær",
|
||||
"LabelSetEbookAsSupplementary": "Indstil som supplerende",
|
||||
"LabelSettingsAudiobooksOnly": "Kun lydbøger",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Serier med en enkelt bog vil blive skjult fra serie-siden og hjemmesidehylder.",
|
||||
"LabelSettingsHomePageBookshelfView": "Brug bogreolvisning på startside",
|
||||
"LabelSettingsLibraryBookshelfView": "Brug bogreolvisning i biblioteket",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Fortolk undertekster",
|
||||
"LabelSettingsParseSubtitlesHelp": "Udtræk undertekster fra lydbogsmappenavne.<br>Undertitler skal adskilles af \" - \"<br>f.eks. \"Bogtitel - En undertitel her\" har undertitlen \"En undertitel her\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Foretræk matchede metadata",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Se afspilningskø",
|
||||
"LabelVolume": "Volumen",
|
||||
"LabelWeekdaysToRun": "Ugedage til kørsel",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Din lydbogsvarighed",
|
||||
"LabelYourBookmarks": "Dine bogmærker",
|
||||
"LabelYourPlaylists": "Dine spillelister",
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
"ButtonHide": "Ausblenden",
|
||||
"ButtonHome": "Startseite",
|
||||
"ButtonIssues": "Probleme",
|
||||
"ButtonJumpBackward": "Jump Backward",
|
||||
"ButtonJumpForward": "Jump Forward",
|
||||
"ButtonJumpBackward": "Zurück springen",
|
||||
"ButtonJumpForward": "Vorwärts springen",
|
||||
"ButtonLatest": "Neuste",
|
||||
"ButtonLibrary": "Bibliothek",
|
||||
"ButtonLogout": "Abmelden",
|
||||
@@ -43,7 +43,8 @@
|
||||
"ButtonMatchAllAuthors": "Online Metadaten-Abgleich (alle Autoren)",
|
||||
"ButtonMatchBooks": "Online Metadaten-Abgleich (alle Medien)",
|
||||
"ButtonNevermind": "Abbrechen",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonNext": "Vor",
|
||||
"ButtonNextChapter": "Nächstes Kapitel",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Feed öffnen",
|
||||
"ButtonOpenManager": "Manager öffnen",
|
||||
@@ -51,7 +52,8 @@
|
||||
"ButtonPlay": "Abspielen",
|
||||
"ButtonPlaying": "Spielt",
|
||||
"ButtonPlaylists": "Wiedergabelisten",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPrevious": "Zurück",
|
||||
"ButtonPreviousChapter": "Vorheriges Kapitel",
|
||||
"ButtonPurgeAllCache": "Cache leeren",
|
||||
"ButtonPurgeItemsCache": "Lösche Medien-Cache",
|
||||
"ButtonPurgeMediaProgress": "Lösche Hörfortschritte",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Aus der Warteschlange entfernen",
|
||||
"ButtonQuickMatch": "Schnellabgleich",
|
||||
"ButtonRead": "Lesen",
|
||||
"ButtonRefresh": "Neu Laden",
|
||||
"ButtonRemove": "Löschen",
|
||||
"ButtonRemoveAll": "Alles löschen",
|
||||
"ButtonRemoveAllLibraryItems": "Lösche alle Bibliothekseinträge",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Ordnerpfad auswählen",
|
||||
"ButtonSeries": "Serien",
|
||||
"ButtonSetChaptersFromTracks": "Kapitelerstellung aus Audiodateien",
|
||||
"ButtonShare": "Teilen",
|
||||
"ButtonShiftTimes": "Zeitverschiebung",
|
||||
"ButtonShow": "Anzeigen",
|
||||
"ButtonStartM4BEncode": "M4B-Kodierung starten",
|
||||
@@ -109,7 +113,7 @@
|
||||
"HeaderCollectionItems": "Sammlungseinträge",
|
||||
"HeaderCover": "Titelbild",
|
||||
"HeaderCurrentDownloads": "Aktuelle Downloads",
|
||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||
"HeaderCustomMetadataProviders": "Benutzerdefinierte Metadata Anbieter",
|
||||
"HeaderDetails": "Details",
|
||||
"HeaderDownloadQueue": "Download Warteschlange",
|
||||
"HeaderEbookFiles": "E-Book Dateien",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Details aktualisieren",
|
||||
"HeaderUpdateLibrary": "Bibliothek aktualisieren",
|
||||
"HeaderUsers": "Benutzer",
|
||||
"HeaderYearReview": "Jahr {0} in Übersicht",
|
||||
"HeaderYourStats": "Eigene Statistiken",
|
||||
"LabelAbridged": "Gekürzt",
|
||||
"LabelAccountType": "Kontoart",
|
||||
@@ -287,11 +292,11 @@
|
||||
"LabelFinished": "Beendet",
|
||||
"LabelFolder": "Ordner",
|
||||
"LabelFolders": "Verzeichnisse",
|
||||
"LabelFontBold": "Bold",
|
||||
"LabelFontBold": "Fett",
|
||||
"LabelFontFamily": "Schriftfamilie",
|
||||
"LabelFontItalic": "Italic",
|
||||
"LabelFontItalic": "Kursiv",
|
||||
"LabelFontScale": "Schriftgröße",
|
||||
"LabelFontStrikethrough": "Strikethrough",
|
||||
"LabelFontStrikethrough": "Durchgestrichen",
|
||||
"LabelFormat": "Format",
|
||||
"LabelGenre": "Kategorie",
|
||||
"LabelGenres": "Kategorien",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Alle 6 Stunden",
|
||||
"LabelIntervalEveryDay": "Jeden Tag",
|
||||
"LabelIntervalEveryHour": "Jede Stunde",
|
||||
"LabelInvalidParts": "Ungültige Teile",
|
||||
"LabelInvert": "Umkehren",
|
||||
"LabelItem": "Medium",
|
||||
"LabelLanguage": "Sprache",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta Tags",
|
||||
"LabelMinute": "Minute",
|
||||
"LabelMissing": "Fehlend",
|
||||
"LabelMissingParts": "Fehlende Teile",
|
||||
"LabelMissingEbook": "E-Book fehlt",
|
||||
"LabelMissingSupplementaryEbook": "Ergänzendes E-Book fehlt",
|
||||
"LabelMobileRedirectURIs": "Erlaubte Weiterleitungs-URIs für die mobile App",
|
||||
"LabelMobileRedirectURIsDescription": "Dies ist eine Whitelist gültiger Umleitungs-URIs für mobile Apps. Der Standardwert ist <code>audiobookshelf://oauth</code>, den du entfernen oder durch zusätzliche URIs für die Integration von Drittanbieter-Apps ergänzen kannst. Die Verwendung eines Sternchens (<code>*</code>) als alleiniger Eintrag erlaubt jede URI.",
|
||||
"LabelMore": "Mehr",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Nicht begonnen",
|
||||
"LabelNumberOfBooks": "Anzahl der Hörbücher",
|
||||
"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:",
|
||||
"LabelOpenIDClaims": "Lass die folgenden Optionen leer, um die erweiterte Zuweisung von Gruppen und Berechtigungen zu deaktivieren und automatisch die 'User'-Gruppe zuzuweisen.",
|
||||
"LabelOpenIDGroupClaimDescription": "Name des OpenID-Claims, der eine Liste der Benutzergruppen enthält. Wird häufig als <code>groups</code> bezeichnet. <b>Wenn konfiguriert</b>, wird die Anwendung automatisch Rollen basierend auf den Gruppenmitgliedschaften des Benutzers zuweisen, vorausgesetzt, dass diese Gruppen im Claim als 'admin', 'user' oder 'guest' benannt sind (Groß/Kleinschreibung ist irrelevant). Der Claim eine Liste sein, und wenn ein Benutzer mehreren Gruppen angehört, wird die Anwendung die Rolle zuordnen, die dem höchsten Zugriffslevel entspricht. Wenn keine Gruppe übereinstimmt, wird der Zugang verweigert.",
|
||||
"LabelOpenRSSFeed": "Öffne RSS-Feed",
|
||||
"LabelOverwrite": "Überschreiben",
|
||||
"LabelPassword": "Passwort",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Herunterladen",
|
||||
"LabelPermissionsUpdate": "Aktualisieren",
|
||||
"LabelPermissionsUpload": "Hochladen",
|
||||
"LabelPersonalYearReview": "Dein Jahr in Übersicht ({0})",
|
||||
"LabelPhotoPathURL": "Foto Pfad/URL",
|
||||
"LabelPlaylists": "Wiedergabelisten",
|
||||
"LabelPlayMethod": "Abspielmethode",
|
||||
@@ -413,7 +422,7 @@
|
||||
"LabelRecentlyAdded": "Kürzlich hinzugefügt",
|
||||
"LabelRecentSeries": "Aktuelle Serien",
|
||||
"LabelRecommended": "Empfohlen",
|
||||
"LabelRedo": "Redo",
|
||||
"LabelRedo": "Wiederholen",
|
||||
"LabelRegion": "Region",
|
||||
"LabelReleaseDate": "Veröffentlichungsdatum",
|
||||
"LabelRemoveCover": "Lösche Titelbild",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Serien",
|
||||
"LabelSeriesName": "Serienname",
|
||||
"LabelSeriesProgress": "Serienfortschritt",
|
||||
"LabelServerYearReview": "Server Jahr in Übersicht ({0})",
|
||||
"LabelSetEbookAsPrimary": "Als Hauptbuch setzen",
|
||||
"LabelSetEbookAsSupplementary": "Als Ergänzung setzen",
|
||||
"LabelSettingsAudiobooksOnly": "Nur Hörbücher",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Serien, die nur ein einzelnes Buch enthalten, werden auf der Startseite und in der Serienansicht ausgeblendet.",
|
||||
"LabelSettingsHomePageBookshelfView": "Startseite verwendet die Bücherregalansicht",
|
||||
"LabelSettingsLibraryBookshelfView": "Bibliothek verwendet die Bücherregalansicht",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Analysiere 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",
|
||||
@@ -502,10 +514,10 @@
|
||||
"LabelTagsAccessibleToUser": "Für Benutzer zugängliche Schlagwörter",
|
||||
"LabelTagsNotAccessibleToUser": "Für Benutzer nicht zugängliche Schlagwörter",
|
||||
"LabelTasks": "Laufende Aufgaben",
|
||||
"LabelTextEditorBulletedList": "Bulleted list",
|
||||
"LabelTextEditorBulletedList": "Aufzählungsliste",
|
||||
"LabelTextEditorLink": "Link",
|
||||
"LabelTextEditorNumberedList": "Numbered list",
|
||||
"LabelTextEditorUnlink": "Unlink",
|
||||
"LabelTextEditorNumberedList": "nummerierte Liste",
|
||||
"LabelTextEditorUnlink": "entkoppeln",
|
||||
"LabelTheme": "Theme",
|
||||
"LabelThemeDark": "Dunkel",
|
||||
"LabelThemeLight": "Hell",
|
||||
@@ -531,7 +543,7 @@
|
||||
"LabelTracksSingleTrack": "Einzeldatei",
|
||||
"LabelType": "Typ",
|
||||
"LabelUnabridged": "Ungekürzt",
|
||||
"LabelUndo": "Undo",
|
||||
"LabelUndo": "Rückgängig machen",
|
||||
"LabelUnknown": "Unbekannt",
|
||||
"LabelUpdateCover": "Titelbild aktualisieren",
|
||||
"LabelUpdateCoverHelp": "Erlaube das Überschreiben bestehender Titelbilder für die ausgewählten Hörbücher, wenn eine Übereinstimmung gefunden wird",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Player-Warteschlange anzeigen",
|
||||
"LabelVolume": "Lautstärke",
|
||||
"LabelWeekdaysToRun": "Wochentage für die Ausführung",
|
||||
"LabelYearReviewHide": "Verstecke Jahr in Übersicht",
|
||||
"LabelYearReviewShow": "Zeige Jahr in Übersicht",
|
||||
"LabelYourAudiobookDuration": "Laufzeit deines Mediums",
|
||||
"LabelYourBookmarks": "Lesezeichen",
|
||||
"LabelYourPlaylists": "Eigene Wiedergabelisten",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Match All Authors",
|
||||
"ButtonMatchBooks": "Match Books",
|
||||
"ButtonNevermind": "Nevermind",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Open Feed",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Play",
|
||||
"ButtonPlaying": "Playing",
|
||||
"ButtonPlaylists": "Playlists",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Purge All Cache",
|
||||
"ButtonPurgeItemsCache": "Purge Items Cache",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Remove from queue",
|
||||
"ButtonQuickMatch": "Quick Match",
|
||||
"ButtonRead": "Read",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Remove",
|
||||
"ButtonRemoveAll": "Remove All",
|
||||
"ButtonRemoveAllLibraryItems": "Remove All Library Items",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Select Folder Path",
|
||||
"ButtonSeries": "Series",
|
||||
"ButtonSetChaptersFromTracks": "Set chapters from tracks",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Shift Times",
|
||||
"ButtonShow": "Show",
|
||||
"ButtonStartM4BEncode": "Start M4B Encode",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Update Details",
|
||||
"HeaderUpdateLibrary": "Update Library",
|
||||
"HeaderUsers": "Users",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Your Stats",
|
||||
"LabelAbridged": "Abridged",
|
||||
"LabelAccountType": "Account Type",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Every 6 hours",
|
||||
"LabelIntervalEveryDay": "Every day",
|
||||
"LabelIntervalEveryHour": "Every hour",
|
||||
"LabelInvalidParts": "Invalid Parts",
|
||||
"LabelInvert": "Invert",
|
||||
"LabelItem": "Item",
|
||||
"LabelLanguage": "Language",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta Tags",
|
||||
"LabelMinute": "Minute",
|
||||
"LabelMissing": "Missing",
|
||||
"LabelMissingParts": "Missing Parts",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "More",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Not Started",
|
||||
"LabelNumberOfBooks": "Number of Books",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Open RSS Feed",
|
||||
"LabelOverwrite": "Overwrite",
|
||||
"LabelPassword": "Password",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Can Download",
|
||||
"LabelPermissionsUpdate": "Can Update",
|
||||
"LabelPermissionsUpload": "Can Upload",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Photo Path/URL",
|
||||
"LabelPlaylists": "Playlists",
|
||||
"LabelPlayMethod": "Play Method",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Series",
|
||||
"LabelSeriesName": "Series Name",
|
||||
"LabelSeriesProgress": "Series Progress",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Set as primary",
|
||||
"LabelSetEbookAsSupplementary": "Set as supplementary",
|
||||
"LabelSettingsAudiobooksOnly": "Audiobooks only",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
|
||||
"LabelSettingsHomePageBookshelfView": "Home page use bookshelf view",
|
||||
"LabelSettingsLibraryBookshelfView": "Library use bookshelf view",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Parse subtitles",
|
||||
"LabelSettingsParseSubtitlesHelp": "Extract subtitles from audiobook folder names.<br>Subtitle must be seperated by \" - \"<br>i.e. \"Book Title - A Subtitle Here\" has the subtitle \"A Subtitle Here\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Prefer matched metadata",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "View player queue",
|
||||
"LabelVolume": "Volume",
|
||||
"LabelWeekdaysToRun": "Weekdays to run",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Your audiobook duration",
|
||||
"LabelYourBookmarks": "Your Bookmarks",
|
||||
"LabelYourPlaylists": "Your Playlists",
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"ButtonAdd": "Agregar",
|
||||
"ButtonAddChapters": "Agregar Capitulo",
|
||||
"ButtonAddDevice": "Add Device",
|
||||
"ButtonAddLibrary": "Add Library",
|
||||
"ButtonAddDevice": "Agregar Dispositivo",
|
||||
"ButtonAddLibrary": "Crear Biblioteca",
|
||||
"ButtonAddPodcasts": "Agregar Podcasts",
|
||||
"ButtonAddUser": "Add User",
|
||||
"ButtonAddYourFirstLibrary": "Agrega tu Primera Biblioteca",
|
||||
"ButtonAddUser": "Crear Usuario",
|
||||
"ButtonAddYourFirstLibrary": "Crea tu Primera Biblioteca",
|
||||
"ButtonApply": "Aplicar",
|
||||
"ButtonApplyChapters": "Aplicar Capítulos",
|
||||
"ButtonAuthors": "Autores",
|
||||
@@ -32,8 +32,8 @@
|
||||
"ButtonHide": "Esconder",
|
||||
"ButtonHome": "Inicio",
|
||||
"ButtonIssues": "Problemas",
|
||||
"ButtonJumpBackward": "Jump Backward",
|
||||
"ButtonJumpForward": "Jump Forward",
|
||||
"ButtonJumpBackward": "Retroceder",
|
||||
"ButtonJumpForward": "Adelantar",
|
||||
"ButtonLatest": "Últimos",
|
||||
"ButtonLibrary": "Biblioteca",
|
||||
"ButtonLogout": "Cerrar Sesión",
|
||||
@@ -43,15 +43,17 @@
|
||||
"ButtonMatchAllAuthors": "Encontrar Todos los Autores",
|
||||
"ButtonMatchBooks": "Encontrar Libros",
|
||||
"ButtonNevermind": "Olvidar",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Siguiente Capítulo",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Abrir Fuente",
|
||||
"ButtonOpenManager": "Abrir Editor",
|
||||
"ButtonPause": "Pause",
|
||||
"ButtonPause": "Pausar",
|
||||
"ButtonPlay": "Reproducir",
|
||||
"ButtonPlaying": "Reproduciendo",
|
||||
"ButtonPlaylists": "Listas de Reproducción",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Capítulo Anterior",
|
||||
"ButtonPurgeAllCache": "Purgar Todo el Cache",
|
||||
"ButtonPurgeItemsCache": "Purgar Elementos de Cache",
|
||||
"ButtonPurgeMediaProgress": "Purgar Progreso de Multimedia",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Remover de la Fila",
|
||||
"ButtonQuickMatch": "Encontrar Rápido",
|
||||
"ButtonRead": "Leer",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Remover",
|
||||
"ButtonRemoveAll": "Remover Todos",
|
||||
"ButtonRemoveAllLibraryItems": "Remover Todos los Elementos de la Biblioteca",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Seleccionar Ruta de Carpeta",
|
||||
"ButtonSeries": "Series",
|
||||
"ButtonSetChaptersFromTracks": "Seleccionar Capítulos Según las Pistas",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Desplazar Tiempos",
|
||||
"ButtonShow": "Mostrar",
|
||||
"ButtonStartM4BEncode": "Iniciar Codificación M4B",
|
||||
@@ -92,15 +96,15 @@
|
||||
"ButtonUserEdit": "Editar Usuario {0}",
|
||||
"ButtonViewAll": "Ver Todos",
|
||||
"ButtonYes": "Aceptar",
|
||||
"ErrorUploadFetchMetadataAPI": "Error fetching metadata",
|
||||
"ErrorUploadFetchMetadataNoResults": "Could not fetch metadata - try updating title and/or author",
|
||||
"ErrorUploadLacksTitle": "Must have a title",
|
||||
"ErrorUploadFetchMetadataAPI": "Error obteniendo metadatos",
|
||||
"ErrorUploadFetchMetadataNoResults": "No se pudo obtener metadatos - Intenta actualizar el título y/o autor",
|
||||
"ErrorUploadLacksTitle": "Se debe tener título",
|
||||
"HeaderAccount": "Cuenta",
|
||||
"HeaderAdvanced": "Avanzado",
|
||||
"HeaderAppriseNotificationSettings": "Ajustes de Notificaciones de Apprise",
|
||||
"HeaderAudiobookTools": "Herramientas de Gestión de Archivos de Audiolibro",
|
||||
"HeaderAudioTracks": "Pistas de Audio",
|
||||
"HeaderAuthentication": "Authentication",
|
||||
"HeaderAuthentication": "Autenticación",
|
||||
"HeaderBackups": "Respaldos",
|
||||
"HeaderChangePassword": "Cambiar Contraseña",
|
||||
"HeaderChapters": "Capítulos",
|
||||
@@ -109,7 +113,7 @@
|
||||
"HeaderCollectionItems": "Elementos en la Colección",
|
||||
"HeaderCover": "Portada",
|
||||
"HeaderCurrentDownloads": "Descargando Actualmente",
|
||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||
"HeaderCustomMetadataProviders": "Proveedores de metadatos personalizados",
|
||||
"HeaderDetails": "Detalles",
|
||||
"HeaderDownloadQueue": "Lista de Descarga",
|
||||
"HeaderEbookFiles": "Archivos de Ebook",
|
||||
@@ -136,15 +140,15 @@
|
||||
"HeaderManageTags": "Administrar Etiquetas",
|
||||
"HeaderMapDetails": "Asignar Detalles",
|
||||
"HeaderMatch": "Encontrar",
|
||||
"HeaderMetadataOrderOfPrecedence": "Metadata order of precedence",
|
||||
"HeaderMetadataOrderOfPrecedence": "Orden de precedencia de metadatos",
|
||||
"HeaderMetadataToEmbed": "Metadatos para Insertar",
|
||||
"HeaderNewAccount": "Nueva Cuenta",
|
||||
"HeaderNewLibrary": "Nueva Biblioteca",
|
||||
"HeaderNotifications": "Notificaciones",
|
||||
"HeaderOpenIDConnectAuthentication": "OpenID Connect Authentication",
|
||||
"HeaderOpenIDConnectAuthentication": "Autenticación OpenID Connect",
|
||||
"HeaderOpenRSSFeed": "Abrir fuente RSS",
|
||||
"HeaderOtherFiles": "Otros Archivos",
|
||||
"HeaderPasswordAuthentication": "Password Authentication",
|
||||
"HeaderPasswordAuthentication": "Autenticación por contraseña",
|
||||
"HeaderPermissions": "Permisos",
|
||||
"HeaderPlayerQueue": "Fila del Reproductor",
|
||||
"HeaderPlaylist": "Lista de Reproducción",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Actualizar Detalles",
|
||||
"HeaderUpdateLibrary": "Actualizar Biblioteca",
|
||||
"HeaderUsers": "Usuarios",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Tus Estadísticas",
|
||||
"LabelAbridged": "Abreviado",
|
||||
"LabelAccountType": "Tipo de Cuenta",
|
||||
@@ -193,11 +198,11 @@
|
||||
"LabelAddToCollectionBatch": "Se Añadieron {0} Libros a la Colección",
|
||||
"LabelAddToPlaylist": "Añadido a la Lista de Reproducción",
|
||||
"LabelAddToPlaylistBatch": "Se Añadieron {0} Artículos a la Lista de Reproducción",
|
||||
"LabelAdminUsersOnly": "Admin users only",
|
||||
"LabelAdminUsersOnly": "Solamente usuarios administradores",
|
||||
"LabelAll": "Todos",
|
||||
"LabelAllUsers": "Todos los Usuarios",
|
||||
"LabelAllUsersExcludingGuests": "All users excluding guests",
|
||||
"LabelAllUsersIncludingGuests": "All users including guests",
|
||||
"LabelAllUsersExcludingGuests": "Todos los usuarios excepto invitados",
|
||||
"LabelAllUsersIncludingGuests": "Todos los usuarios e invitados",
|
||||
"LabelAlreadyInYourLibrary": "Ya en la Biblioteca",
|
||||
"LabelAppend": "Adjuntar",
|
||||
"LabelAuthor": "Autor",
|
||||
@@ -205,12 +210,12 @@
|
||||
"LabelAuthorLastFirst": "Autor (Apellido, Nombre)",
|
||||
"LabelAuthors": "Autores",
|
||||
"LabelAutoDownloadEpisodes": "Descargar Episodios Automáticamente",
|
||||
"LabelAutoFetchMetadata": "Auto Fetch Metadata",
|
||||
"LabelAutoFetchMetadataHelp": "Fetches metadata for title, author, and series to streamline uploading. Additional metadata may have to be matched after upload.",
|
||||
"LabelAutoLaunch": "Auto Launch",
|
||||
"LabelAutoLaunchDescription": "Redirect to the auth provider automatically when navigating to the login page (manual override path <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "Auto Register",
|
||||
"LabelAutoRegisterDescription": "Automatically create new users after logging in",
|
||||
"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.",
|
||||
"LabelAutoLaunch": "Lanzamiento automático",
|
||||
"LabelAutoLaunchDescription": "Redirigir al proveedor de autenticación automáticamente al navegar a la página de inicio de sesión (ruta de sobreescritura manual <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "Registro automático",
|
||||
"LabelAutoRegisterDescription": "Crear usuarios automáticamente tras iniciar sesión",
|
||||
"LabelBackToUser": "Regresar a Usuario",
|
||||
"LabelBackupLocation": "Ubicación del Respaldo",
|
||||
"LabelBackupsEnableAutomaticBackups": "Habilitar Respaldo Automático",
|
||||
@@ -221,13 +226,13 @@
|
||||
"LabelBackupsNumberToKeepHelp": "Solamente 1 respaldo se removerá a la vez. Si tiene mas respaldos guardados, debe removerlos manualmente.",
|
||||
"LabelBitrate": "Bitrate",
|
||||
"LabelBooks": "Libros",
|
||||
"LabelButtonText": "Button Text",
|
||||
"LabelButtonText": "Texto del botón",
|
||||
"LabelChangePassword": "Cambiar Contraseña",
|
||||
"LabelChannels": "Canales",
|
||||
"LabelChapters": "Capítulos",
|
||||
"LabelChaptersFound": "Capítulo Encontrado",
|
||||
"LabelChapterTitle": "Titulo del Capítulo",
|
||||
"LabelClickForMoreInfo": "Click for more info",
|
||||
"LabelClickForMoreInfo": "Click para más información",
|
||||
"LabelClosePlayer": "Cerrar Reproductor",
|
||||
"LabelCodec": "Codec",
|
||||
"LabelCollapseSeries": "Colapsar Serie",
|
||||
@@ -246,12 +251,12 @@
|
||||
"LabelCurrently": "En este momento:",
|
||||
"LabelCustomCronExpression": "Expresión de Cron Personalizada:",
|
||||
"LabelDatetime": "Hora y Fecha",
|
||||
"LabelDeleteFromFileSystemCheckbox": "Delete from file system (uncheck to only remove from database)",
|
||||
"LabelDeleteFromFileSystemCheckbox": "Eliminar archivos del sistema (desmarcar para eliminar sólo de la base de datos)",
|
||||
"LabelDescription": "Descripción",
|
||||
"LabelDeselectAll": "Deseleccionar Todos",
|
||||
"LabelDevice": "Dispositivo",
|
||||
"LabelDeviceInfo": "Información de Dispositivo",
|
||||
"LabelDeviceIsAvailableTo": "Device is available to...",
|
||||
"LabelDeviceIsAvailableTo": "El dispositivo está disponible para...",
|
||||
"LabelDirectory": "Directorio",
|
||||
"LabelDiscFromFilename": "Disco a partir del Nombre del Archivo",
|
||||
"LabelDiscFromMetadata": "Disco a partir de Metadata",
|
||||
@@ -277,7 +282,7 @@
|
||||
"LabelExample": "Ejemplo",
|
||||
"LabelExplicit": "Explicito",
|
||||
"LabelFeedURL": "Fuente de URL",
|
||||
"LabelFetchingMetadata": "Fetching Metadata",
|
||||
"LabelFetchingMetadata": "Obteniendo metadatos",
|
||||
"LabelFile": "Archivo",
|
||||
"LabelFileBirthtime": "Archivo Creado en",
|
||||
"LabelFileModified": "Archivo modificado",
|
||||
@@ -287,23 +292,23 @@
|
||||
"LabelFinished": "Terminado",
|
||||
"LabelFolder": "Carpeta",
|
||||
"LabelFolders": "Carpetas",
|
||||
"LabelFontBold": "Bold",
|
||||
"LabelFontBold": "Negrilla",
|
||||
"LabelFontFamily": "Familia tipográfica",
|
||||
"LabelFontItalic": "Italic",
|
||||
"LabelFontItalic": "Itálica",
|
||||
"LabelFontScale": "Tamaño de Fuente",
|
||||
"LabelFontStrikethrough": "Strikethrough",
|
||||
"LabelFontStrikethrough": "Tachado",
|
||||
"LabelFormat": "Formato",
|
||||
"LabelGenre": "Genero",
|
||||
"LabelGenres": "Géneros",
|
||||
"LabelHardDeleteFile": "Eliminar Definitivamente",
|
||||
"LabelHasEbook": "Tiene Ebook",
|
||||
"LabelHasSupplementaryEbook": "Tiene Ebook Suplementario",
|
||||
"LabelHighestPriority": "Highest priority",
|
||||
"LabelHighestPriority": "Mayor prioridad",
|
||||
"LabelHost": "Host",
|
||||
"LabelHour": "Hora",
|
||||
"LabelIcon": "Icono",
|
||||
"LabelImageURLFromTheWeb": "Image URL from the web",
|
||||
"LabelIncludeInTracklist": "Incluir en Tracklist",
|
||||
"LabelImageURLFromTheWeb": "URL de la imagen",
|
||||
"LabelIncludeInTracklist": "Incluir en la Tracklist",
|
||||
"LabelIncomplete": "Incompleto",
|
||||
"LabelInProgress": "En Proceso",
|
||||
"LabelInterval": "Intervalo",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Cada 6 Horas",
|
||||
"LabelIntervalEveryDay": "Cada Día",
|
||||
"LabelIntervalEveryHour": "Cada Hora",
|
||||
"LabelInvalidParts": "Partes Inválidas",
|
||||
"LabelInvert": "Invertir",
|
||||
"LabelItem": "Elemento",
|
||||
"LabelLanguage": "Lenguaje",
|
||||
@@ -340,20 +344,21 @@
|
||||
"LabelLogLevelInfo": "Información",
|
||||
"LabelLogLevelWarn": "Advertencia",
|
||||
"LabelLookForNewEpisodesAfterDate": "Buscar Nuevos Episodios a partir de esta Fecha",
|
||||
"LabelLowestPriority": "Lowest Priority",
|
||||
"LabelMatchExistingUsersBy": "Match existing users by",
|
||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||
"LabelLowestPriority": "Menor prioridad",
|
||||
"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",
|
||||
"LabelMediaPlayer": "Reproductor de Medios",
|
||||
"LabelMediaType": "Tipo de Multimedia",
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||
"LabelMetadataProvider": "Proveedor de Metadata",
|
||||
"LabelMetaTag": "Meta Tag",
|
||||
"LabelMetaTags": "Meta Tags",
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "Las fuentes de metadatos de mayor prioridad prevalecerán sobre las de menor prioridad",
|
||||
"LabelMetadataProvider": "Proveedor de Metadatos",
|
||||
"LabelMetaTag": "Metaetiqueta",
|
||||
"LabelMetaTags": "Metaetiquetas",
|
||||
"LabelMinute": "Minuto",
|
||||
"LabelMissing": "Ausente",
|
||||
"LabelMissingParts": "Partes Ausentes",
|
||||
"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.",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Más",
|
||||
"LabelMoreInfo": "Más Información",
|
||||
"LabelName": "Nombre",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Sin Iniciar",
|
||||
"LabelNumberOfBooks": "Numero de Libros",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Abrir Fuente RSS",
|
||||
"LabelOverwrite": "Sobrescribir",
|
||||
"LabelPassword": "Contraseña",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Puede Descargar",
|
||||
"LabelPermissionsUpdate": "Puede Actualizar",
|
||||
"LabelPermissionsUpload": "Puede Subir",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Ruta de Acceso/URL de Foto",
|
||||
"LabelPlaylists": "Lista de Reproducción",
|
||||
"LabelPlayMethod": "Método de Reproducción",
|
||||
@@ -413,11 +422,11 @@
|
||||
"LabelRecentlyAdded": "Agregado Recientemente",
|
||||
"LabelRecentSeries": "Series Recientes",
|
||||
"LabelRecommended": "Recomendados",
|
||||
"LabelRedo": "Redo",
|
||||
"LabelRedo": "Rehacer",
|
||||
"LabelRegion": "Región",
|
||||
"LabelReleaseDate": "Fecha de Estreno",
|
||||
"LabelRemoveCover": "Remover Portada",
|
||||
"LabelRowsPerPage": "Rows per page",
|
||||
"LabelRowsPerPage": "Filas por página",
|
||||
"LabelRSSFeedCustomOwnerEmail": "Email de dueño personalizado",
|
||||
"LabelRSSFeedCustomOwnerName": "Nombre de dueño personalizado",
|
||||
"LabelRSSFeedOpen": "Fuente RSS Abierta",
|
||||
@@ -430,12 +439,13 @@
|
||||
"LabelSeason": "Temporada",
|
||||
"LabelSelectAllEpisodes": "Seleccionar todos los episodios",
|
||||
"LabelSelectEpisodesShowing": "Seleccionar los {0} episodios visibles",
|
||||
"LabelSelectUsers": "Select users",
|
||||
"LabelSelectUsers": "Seleccionar usuarios",
|
||||
"LabelSendEbookToDevice": "Enviar Ebook a...",
|
||||
"LabelSequence": "Secuencia",
|
||||
"LabelSeries": "Series",
|
||||
"LabelSeriesName": "Nombre de la Serie",
|
||||
"LabelSeriesProgress": "Progreso de la Serie",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Establecer como primario",
|
||||
"LabelSetEbookAsSupplementary": "Establecer como suplementario",
|
||||
"LabelSettingsAudiobooksOnly": "Sólo Audiolibros",
|
||||
@@ -457,6 +467,8 @@
|
||||
"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",
|
||||
"LabelSettingsLibraryBookshelfView": "Usar la vista de librero en la biblioteca",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "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í\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Preferir metadatos encontrados",
|
||||
@@ -502,14 +514,14 @@
|
||||
"LabelTagsAccessibleToUser": "Etiquetas Accessibles al Usuario",
|
||||
"LabelTagsNotAccessibleToUser": "Etiquetas no Accesibles al Usuario",
|
||||
"LabelTasks": "Tareas Corriendo",
|
||||
"LabelTextEditorBulletedList": "Bulleted list",
|
||||
"LabelTextEditorLink": "Link",
|
||||
"LabelTextEditorNumberedList": "Numbered list",
|
||||
"LabelTextEditorUnlink": "Unlink",
|
||||
"LabelTextEditorBulletedList": "Lista con viñetas",
|
||||
"LabelTextEditorLink": "Enlazar",
|
||||
"LabelTextEditorNumberedList": "Lista numerada",
|
||||
"LabelTextEditorUnlink": "Desenlazar",
|
||||
"LabelTheme": "Tema",
|
||||
"LabelThemeDark": "Oscuro",
|
||||
"LabelThemeLight": "Claro",
|
||||
"LabelTimeBase": "Time Base",
|
||||
"LabelTimeBase": "Tiempo Base",
|
||||
"LabelTimeListened": "Tiempo Escuchando",
|
||||
"LabelTimeListenedToday": "Tiempo Escuchando Hoy",
|
||||
"LabelTimeRemaining": "{0} restante",
|
||||
@@ -531,7 +543,7 @@
|
||||
"LabelTracksSingleTrack": "Una pista",
|
||||
"LabelType": "Tipo",
|
||||
"LabelUnabridged": "No Abreviado",
|
||||
"LabelUndo": "Undo",
|
||||
"LabelUndo": "Deshacer",
|
||||
"LabelUnknown": "Desconocido",
|
||||
"LabelUpdateCover": "Actualizar Portada",
|
||||
"LabelUpdateCoverHelp": "Permitir sobrescribir las portadas existentes de los libros seleccionados cuando sean encontradas.",
|
||||
@@ -540,7 +552,7 @@
|
||||
"LabelUpdateDetailsHelp": "Permitir sobrescribir detalles existentes de los libros seleccionados cuando sean encontrados",
|
||||
"LabelUploaderDragAndDrop": "Arrastre y suelte archivos o carpetas",
|
||||
"LabelUploaderDropFiles": "Suelte los Archivos",
|
||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||
"LabelUploaderItemFetchMetadataHelp": "Buscar título, autor y series automáticamente",
|
||||
"LabelUseChapterTrack": "Usar pista por capitulo",
|
||||
"LabelUseFullTrack": "Usar pista completa",
|
||||
"LabelUser": "Usuario",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Ver Fila del Reproductor",
|
||||
"LabelVolume": "Volumen",
|
||||
"LabelWeekdaysToRun": "Correr en Días de la Semana",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Duración de tu Audiolibro",
|
||||
"LabelYourBookmarks": "Tus Marcadores",
|
||||
"LabelYourPlaylists": "Tus Listas",
|
||||
@@ -574,15 +588,15 @@
|
||||
"MessageConfirmDeleteBackup": "¿Está seguro de que desea eliminar el respaldo {0}?",
|
||||
"MessageConfirmDeleteFile": "Esto eliminará el archivo de su sistema de archivos. ¿Está seguro?",
|
||||
"MessageConfirmDeleteLibrary": "¿Está seguro de que desea eliminar permanentemente la biblioteca \"{0}\"?",
|
||||
"MessageConfirmDeleteLibraryItem": "This will delete the library item 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?",
|
||||
"MessageConfirmDeleteLibraryItem": "Esto removerá la librería de la base de datos y archivos en tu sistema. ¿Estás seguro?",
|
||||
"MessageConfirmDeleteLibraryItems": "Esto removerá {0} elemento(s) de la librería en base de datos y archivos en tu sistema. ¿Estás seguro?",
|
||||
"MessageConfirmDeleteSession": "¿Está seguro de que desea eliminar esta sesión?",
|
||||
"MessageConfirmForceReScan": "¿Está seguro de que desea forzar un re-escaneo?",
|
||||
"MessageConfirmMarkAllEpisodesFinished": "¿Está seguro de que desea marcar todos los episodios como terminados?",
|
||||
"MessageConfirmMarkAllEpisodesNotFinished": "¿Está seguro de que desea marcar todos los episodios como no 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?",
|
||||
"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": "¡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?",
|
||||
"MessageConfirmRemoveAllChapters": "¿Está seguro de que desea remover todos los capitulos?",
|
||||
"MessageConfirmRemoveAuthor": "¿Está seguro de que desea remover el autor \"{0}\"?",
|
||||
"MessageConfirmRemoveCollection": "¿Está seguro de que desea remover la colección \"{0}\"?",
|
||||
@@ -597,7 +611,7 @@
|
||||
"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.",
|
||||
"MessageConfirmRenameTagWarning": "Advertencia! Una etiqueta similar ya existe \"{0}\".",
|
||||
"MessageConfirmReScanLibraryItems": "Are you sure you want to re-scan {0} items?",
|
||||
"MessageConfirmReScanLibraryItems": "¿Estás seguro de querer re escanear {0} elemento(s)?",
|
||||
"MessageConfirmSendEbookToDevice": "¿Está seguro de que enviar {0} ebook(s) \"{1}\" al dispositivo \"{2}\"?",
|
||||
"MessageDownloadingEpisode": "Descargando Capitulo",
|
||||
"MessageDragFilesIntoTrackOrder": "Arrastra los archivos al orden correcto de las pistas.",
|
||||
@@ -668,7 +682,7 @@
|
||||
"MessageRestoreBackupConfirm": "¿Está seguro de que desea para restaurar del respaldo creado en",
|
||||
"MessageRestoreBackupWarning": "Restaurar sobrescribirá toda la base de datos localizada en /config y las imágenes de portadas en /metadata/items y /metadata/authors.<br /><br />El respaldo no modifica ningún archivo en las carpetas de su biblioteca. Si ha habilitado la opción del servidor para almacenar portadas y metadata en las carpetas de su biblioteca, esos archivos no se respaldan o sobrescriben.<br /><br />Todos los clientes que usen su servidor se actualizarán automáticamente.",
|
||||
"MessageSearchResultsFor": "Resultados de la búsqueda de",
|
||||
"MessageSelected": "{0} selected",
|
||||
"MessageSelected": "{0} seleccionado(s)",
|
||||
"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",
|
||||
"MessageStartPlaybackAtTime": "Iniciar reproducción para \"{0}\" en {1}?",
|
||||
|
||||
782
client/strings/et.json
Normal file
782
client/strings/et.json
Normal file
@@ -0,0 +1,782 @@
|
||||
{
|
||||
"ButtonAdd": "Lisa",
|
||||
"ButtonAddChapters": "Lisa peatükid",
|
||||
"ButtonAddDevice": "Lisa seade",
|
||||
"ButtonAddLibrary": "Lisa raamatukogu",
|
||||
"ButtonAddPodcasts": "Lisa podcastid",
|
||||
"ButtonAddUser": "Lisa kasutaja",
|
||||
"ButtonAddYourFirstLibrary": "Lisa oma esimene raamatukogu",
|
||||
"ButtonApply": "Rakenda",
|
||||
"ButtonApplyChapters": "Rakenda peatükid",
|
||||
"ButtonAuthors": "Autorid",
|
||||
"ButtonBrowseForFolder": "Sirvi kausta",
|
||||
"ButtonCancel": "Tühista",
|
||||
"ButtonCancelEncode": "Tühista kodeerimine",
|
||||
"ButtonChangeRootPassword": "Muuda põhiparooli",
|
||||
"ButtonCheckAndDownloadNewEpisodes": "Kontrolli ja laadi alla uued episoodid",
|
||||
"ButtonChooseAFolder": "Vali kaust",
|
||||
"ButtonChooseFiles": "Vali failid",
|
||||
"ButtonClearFilter": "Tühista filter",
|
||||
"ButtonCloseFeed": "Sulge voog",
|
||||
"ButtonCollections": "Kogud",
|
||||
"ButtonConfigureScanner": "Konfigureeri skanner",
|
||||
"ButtonCreate": "Loo",
|
||||
"ButtonCreateBackup": "Loo varundus",
|
||||
"ButtonDelete": "Kustuta",
|
||||
"ButtonDownloadQueue": "Järjekord",
|
||||
"ButtonEdit": "Muuda",
|
||||
"ButtonEditChapters": "Muuda peatükke",
|
||||
"ButtonEditPodcast": "Muuda podcasti",
|
||||
"ButtonForceReScan": "Sunnitud uuestiskaneerimine",
|
||||
"ButtonFullPath": "Täielik asukoht",
|
||||
"ButtonHide": "Peida",
|
||||
"ButtonHome": "Avaleht",
|
||||
"ButtonIssues": "Probleemid",
|
||||
"ButtonJumpBackward": "Hüppa tagasi",
|
||||
"ButtonJumpForward": "Hüppa edasi",
|
||||
"ButtonLatest": "Uusim",
|
||||
"ButtonLibrary": "Raamatukogu",
|
||||
"ButtonLogout": "Logi välja",
|
||||
"ButtonLookup": "Otsi",
|
||||
"ButtonManageTracks": "Halda lugusid",
|
||||
"ButtonMapChapterTitles": "Kaardista peatükkide pealkirjad",
|
||||
"ButtonMatchAllAuthors": "Sobita kõik autorid",
|
||||
"ButtonMatchBooks": "Sobita raamatud",
|
||||
"ButtonNevermind": "Pole tähtis",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Järgmine peatükk",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Ava voog",
|
||||
"ButtonOpenManager": "Ava haldur",
|
||||
"ButtonPause": "Peata",
|
||||
"ButtonPlay": "Mängi",
|
||||
"ButtonPlaying": "Mängib",
|
||||
"ButtonPlaylists": "Esitusloendid",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Eelmine peatükk",
|
||||
"ButtonPurgeAllCache": "Tühjenda kogu vahemälu",
|
||||
"ButtonPurgeItemsCache": "Tühjenda esemete vahemälu",
|
||||
"ButtonPurgeMediaProgress": "Tühjenda meedia edenemine",
|
||||
"ButtonQueueAddItem": "Lisa järjekorda",
|
||||
"ButtonQueueRemoveItem": "Eemalda järjekorrast",
|
||||
"ButtonQuickMatch": "Kiire sobitamine",
|
||||
"ButtonRead": "Loe",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Eemalda",
|
||||
"ButtonRemoveAll": "Eemalda kõik",
|
||||
"ButtonRemoveAllLibraryItems": "Eemalda kõik raamatukogu esemed",
|
||||
"ButtonRemoveFromContinueListening": "Eemalda jätkake kuulamisest",
|
||||
"ButtonRemoveFromContinueReading": "Eemalda jätkake lugemisest",
|
||||
"ButtonRemoveSeriesFromContinueSeries": "Eemalda seeria jätkamisest",
|
||||
"ButtonReScan": "Uuestiskaneeri",
|
||||
"ButtonReset": "Lähtesta",
|
||||
"ButtonResetToDefault": "Lähtesta vaikeseade",
|
||||
"ButtonRestore": "Taasta",
|
||||
"ButtonSave": "Salvesta",
|
||||
"ButtonSaveAndClose": "Salvesta ja sulge",
|
||||
"ButtonSaveTracklist": "Salvesta lugude loend",
|
||||
"ButtonScan": "Skanneeri",
|
||||
"ButtonScanLibrary": "Skanneeri raamatukogu",
|
||||
"ButtonSearch": "Otsi",
|
||||
"ButtonSelectFolderPath": "Vali kaustatee",
|
||||
"ButtonSeries": "Sarjad",
|
||||
"ButtonSetChaptersFromTracks": "Määra peatükid lugudest",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Nihke ajad",
|
||||
"ButtonShow": "Näita",
|
||||
"ButtonStartM4BEncode": "Alusta M4B kodeerimist",
|
||||
"ButtonStartMetadataEmbed": "Alusta metaandmete lisamist",
|
||||
"ButtonSubmit": "Esita",
|
||||
"ButtonTest": "Test",
|
||||
"ButtonUpload": "Lae üles",
|
||||
"ButtonUploadBackup": "Lae üles varundus",
|
||||
"ButtonUploadCover": "Lae üles ümbris",
|
||||
"ButtonUploadOPMLFile": "Lae üles OPML-fail",
|
||||
"ButtonUserDelete": "Kustuta kasutaja {0}",
|
||||
"ButtonUserEdit": "Muuda kasutajat {0}",
|
||||
"ButtonViewAll": "Vaata kõiki",
|
||||
"ButtonYes": "Jah",
|
||||
"ErrorUploadFetchMetadataAPI": "Viga metaandmete hankimisel",
|
||||
"ErrorUploadFetchMetadataNoResults": "Ei saanud metaandmeid hankida - proovi tiitlit ja/või autorit uuendada",
|
||||
"ErrorUploadLacksTitle": "Peab olema pealkiri",
|
||||
"HeaderAccount": "Konto",
|
||||
"HeaderAdvanced": "Täpsem",
|
||||
"HeaderAppriseNotificationSettings": "Apprise teavitamise seaded",
|
||||
"HeaderAudiobookTools": "Heliraamatu failihaldustööriistad",
|
||||
"HeaderAudioTracks": "Helirajad",
|
||||
"HeaderAuthentication": "Autentimine",
|
||||
"HeaderBackups": "Varukoopiad",
|
||||
"HeaderChangePassword": "Muuda parooli",
|
||||
"HeaderChapters": "Peatükid",
|
||||
"HeaderChooseAFolder": "Vali kaust",
|
||||
"HeaderCollection": "Kogu",
|
||||
"HeaderCollectionItems": "Kogu esemed",
|
||||
"HeaderCover": "Ümbris",
|
||||
"HeaderCurrentDownloads": "Praegused allalaadimised",
|
||||
"HeaderCustomMetadataProviders": "Kohandatud metaandmete pakkujad",
|
||||
"HeaderDetails": "Detailid",
|
||||
"HeaderDownloadQueue": "Allalaadimise järjekord",
|
||||
"HeaderEbookFiles": "E-raamatute failid",
|
||||
"HeaderEmail": "E-post",
|
||||
"HeaderEmailSettings": "E-posti seaded",
|
||||
"HeaderEpisodes": "Episoodid",
|
||||
"HeaderEreaderDevices": "E-lugerite seadmed",
|
||||
"HeaderEreaderSettings": "E-lugerite seadistused",
|
||||
"HeaderFiles": "Failid",
|
||||
"HeaderFindChapters": "Leia peatükid",
|
||||
"HeaderIgnoredFiles": "Ignoreeritud failid",
|
||||
"HeaderItemFiles": "Esemete failid",
|
||||
"HeaderItemMetadataUtils": "Eseme metaandmete tööriistad",
|
||||
"HeaderLastListeningSession": "Viimane kuulamissessioon",
|
||||
"HeaderLatestEpisodes": "Viimased episoodid",
|
||||
"HeaderLibraries": "Raamatukogud",
|
||||
"HeaderLibraryFiles": "Raamatukogu failid",
|
||||
"HeaderLibraryStats": "Raamatukogu statistika",
|
||||
"HeaderListeningSessions": "Kuulamissessioonid",
|
||||
"HeaderListeningStats": "Kuulamise statistika",
|
||||
"HeaderLogin": "Logi sisse",
|
||||
"HeaderLogs": "Logid",
|
||||
"HeaderManageGenres": "Halda žanre",
|
||||
"HeaderManageTags": "Halda silte",
|
||||
"HeaderMapDetails": "Kaardi detailid",
|
||||
"HeaderMatch": "Sobita",
|
||||
"HeaderMetadataOrderOfPrecedence": "Metaandmete eelnevusjärjestus",
|
||||
"HeaderMetadataToEmbed": "Manusta metaandmed",
|
||||
"HeaderNewAccount": "Uus konto",
|
||||
"HeaderNewLibrary": "Uus raamatukogu",
|
||||
"HeaderNotifications": "Teatised",
|
||||
"HeaderOpenIDConnectAuthentication": "OpenID Connect autentimine",
|
||||
"HeaderOpenRSSFeed": "Ava RSS-voog",
|
||||
"HeaderOtherFiles": "Muud failid",
|
||||
"HeaderPasswordAuthentication": "Parooli autentimine",
|
||||
"HeaderPermissions": "Õigused",
|
||||
"HeaderPlayerQueue": "Mängija järjekord",
|
||||
"HeaderPlaylist": "Mänguloend",
|
||||
"HeaderPlaylistItems": "Mänguloendi esemed",
|
||||
"HeaderPodcastsToAdd": "Lisatavad podcastid",
|
||||
"HeaderPreviewCover": "Eelvaate kaas",
|
||||
"HeaderRemoveEpisode": "Eemalda episood",
|
||||
"HeaderRemoveEpisodes": "Eemalda {0} episoodi",
|
||||
"HeaderRSSFeedGeneral": "RSS-i üksikasjad",
|
||||
"HeaderRSSFeedIsOpen": "RSS-voog on avatud",
|
||||
"HeaderRSSFeeds": "RSS-vooged",
|
||||
"HeaderSavedMediaProgress": "Salvestatud meedia edenemine",
|
||||
"HeaderSchedule": "Ajakava",
|
||||
"HeaderScheduleLibraryScans": "Ajasta automaatsed raamatukogu skaneerimised",
|
||||
"HeaderSession": "Sessioon",
|
||||
"HeaderSetBackupSchedule": "Määra varunduse ajakava",
|
||||
"HeaderSettings": "Seaded",
|
||||
"HeaderSettingsDisplay": "Kuva",
|
||||
"HeaderSettingsExperimental": "Katsetusfunktsioonid",
|
||||
"HeaderSettingsGeneral": "Üldised",
|
||||
"HeaderSettingsScanner": "Skanner",
|
||||
"HeaderSleepTimer": "Uinaku taimer",
|
||||
"HeaderStatsLargestItems": "Suurimad esemed",
|
||||
"HeaderStatsLongestItems": "Kõige pikemad esemed (tunnid)",
|
||||
"HeaderStatsMinutesListeningChart": "Kuulamise minutid (viimased 7 päeva)",
|
||||
"HeaderStatsRecentSessions": "Hiljutised sessioonid",
|
||||
"HeaderStatsTop10Authors": "Top 10 autorit",
|
||||
"HeaderStatsTop5Genres": "Top 5 žanrit",
|
||||
"HeaderTableOfContents": "Sisukord",
|
||||
"HeaderTools": "Tööriistad",
|
||||
"HeaderUpdateAccount": "Uuenda kontot",
|
||||
"HeaderUpdateAuthor": "Uuenda autorit",
|
||||
"HeaderUpdateDetails": "Uuenda detaile",
|
||||
"HeaderUpdateLibrary": "Uuenda raamatukogu",
|
||||
"HeaderUsers": "Kasutajad",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Sinu statistika",
|
||||
"LabelAbridged": "Kärbitud",
|
||||
"LabelAccountType": "Konto tüüp",
|
||||
"LabelAccountTypeAdmin": "Administraator",
|
||||
"LabelAccountTypeGuest": "Külaline",
|
||||
"LabelAccountTypeUser": "Kasutaja",
|
||||
"LabelActivity": "Tegevus",
|
||||
"LabelAdded": "Lisatud",
|
||||
"LabelAddedAt": "Lisatud",
|
||||
"LabelAddToCollection": "Lisa kogusse",
|
||||
"LabelAddToCollectionBatch": "Lisa {0} raamatut kogusse",
|
||||
"LabelAddToPlaylist": "Lisa mänguloendisse",
|
||||
"LabelAddToPlaylistBatch": "Lisa {0} eset mänguloendisse",
|
||||
"LabelAdminUsersOnly": "Ainult administraatorid",
|
||||
"LabelAll": "Kõik",
|
||||
"LabelAllUsers": "Kõik kasutajad",
|
||||
"LabelAllUsersExcludingGuests": "Kõik kasutajad, välja arvatud külalised",
|
||||
"LabelAllUsersIncludingGuests": "Kõik kasutajad, kaasa arvatud külalised",
|
||||
"LabelAlreadyInYourLibrary": "Juba teie raamatukogus",
|
||||
"LabelAppend": "Lisa",
|
||||
"LabelAuthor": "Autor",
|
||||
"LabelAuthorFirstLast": "Autor (Eesnimi Perekonnanimi)",
|
||||
"LabelAuthorLastFirst": "Autor (Perekonnanimi, Eesnimi)",
|
||||
"LabelAuthors": "Autorid",
|
||||
"LabelAutoDownloadEpisodes": "Automaatne episoodide allalaadimine",
|
||||
"LabelAutoFetchMetadata": "Automaatne metaandmete hankimine",
|
||||
"LabelAutoFetchMetadataHelp": "Toob tiitli, autori ja seeria metaandmed üleslaadimise hõlbustamiseks. Lisametaandmed võivad pärast üleslaadimist vajada vastavust.",
|
||||
"LabelAutoLaunch": "Automaatne käivitamine",
|
||||
"LabelAutoLaunchDescription": "Suunab automaatselt autentimist pakkuvale teenusele, kui navigeeritakse sisselogimislehele (käsitsi ülekirjutuse tee <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "Automaatne registreerimine",
|
||||
"LabelAutoRegisterDescription": "Loo uued kasutajad automaatselt sisselogimisel",
|
||||
"LabelBackToUser": "Tagasi kasutajale",
|
||||
"LabelBackupLocation": "Varukoopia asukoht",
|
||||
"LabelBackupsEnableAutomaticBackups": "Luba automaatsed varukoopiad",
|
||||
"LabelBackupsEnableAutomaticBackupsHelp": "Varukoopiad salvestatakse /metadata/backups kausta",
|
||||
"LabelBackupsMaxBackupSize": "Maksimaalne varukoopia suurus (GB-des)",
|
||||
"LabelBackupsMaxBackupSizeHelp": "Kaitsena valesti seadistamise vastu ebaõnnestuvad varukoopiad, kui need ületavad seadistatud suuruse.",
|
||||
"LabelBackupsNumberToKeep": "Varukoopiate arv, mida hoida",
|
||||
"LabelBackupsNumberToKeepHelp": "Ühel ajal eemaldatakse ainult 1 varukoopia, seega kui teil on juba rohkem varukoopiaid kui siin määratud, peaksite need käsitsi eemaldama.",
|
||||
"LabelBitrate": "Bittkiirus",
|
||||
"LabelBooks": "Raamatud",
|
||||
"LabelButtonText": "Nupu tekst",
|
||||
"LabelChangePassword": "Muuda parooli",
|
||||
"LabelChannels": "Kanalid",
|
||||
"LabelChapters": "Peatükid",
|
||||
"LabelChaptersFound": "peatükid leitud",
|
||||
"LabelChapterTitle": "Peatüki pealkiri",
|
||||
"LabelClickForMoreInfo": "Klõpsa lisateabe saamiseks",
|
||||
"LabelClosePlayer": "Sulge mängija",
|
||||
"LabelCodec": "Kodek",
|
||||
"LabelCollapseSeries": "Ahenda seeria",
|
||||
"LabelCollection": "Kogu",
|
||||
"LabelCollections": "Kogud",
|
||||
"LabelComplete": "Valmis",
|
||||
"LabelConfirmPassword": "Kinnita parool",
|
||||
"LabelContinueListening": "Jätka kuulamist",
|
||||
"LabelContinueReading": "Jätka lugemist",
|
||||
"LabelContinueSeries": "Jätka seeriat",
|
||||
"LabelCover": "Ümbris",
|
||||
"LabelCoverImageURL": "Ümbrise pildi URL",
|
||||
"LabelCreatedAt": "Loodud",
|
||||
"LabelCronExpression": "Croni valem",
|
||||
"LabelCurrent": "Praegune",
|
||||
"LabelCurrently": "Praegu:",
|
||||
"LabelCustomCronExpression": "Kohandatud Croni valem:",
|
||||
"LabelDatetime": "Kuupäev ja kellaaeg",
|
||||
"LabelDeleteFromFileSystemCheckbox": "Kustuta failisüsteemist (ärge märkige seda ära, et eemaldada ainult andmebaasist)",
|
||||
"LabelDescription": "Kirjeldus",
|
||||
"LabelDeselectAll": "Tühista kõigi valimine",
|
||||
"LabelDevice": "Seade",
|
||||
"LabelDeviceInfo": "Seadme info",
|
||||
"LabelDeviceIsAvailableTo": "Seade on saadaval kasutajale...",
|
||||
"LabelDirectory": "Kataloog",
|
||||
"LabelDiscFromFilename": "Ketas failinimest",
|
||||
"LabelDiscFromMetadata": "Ketas metaandmetest",
|
||||
"LabelDiscover": "Avasta",
|
||||
"LabelDownload": "Lae alla",
|
||||
"LabelDownloadNEpisodes": "Lae alla {0} episoodi",
|
||||
"LabelDuration": "Kestus",
|
||||
"LabelDurationFound": "Leitud kestus:",
|
||||
"LabelEbook": "E-raamat",
|
||||
"LabelEbooks": "E-raamatud",
|
||||
"LabelEdit": "Muuda",
|
||||
"LabelEmail": "E-post",
|
||||
"LabelEmailSettingsFromAddress": "Saatja aadress",
|
||||
"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)",
|
||||
"LabelEmailSettingsTestAddress": "Testi aadress",
|
||||
"LabelEmbeddedCover": "Manustatud kaas",
|
||||
"LabelEnable": "Luba",
|
||||
"LabelEnd": "Lõpp",
|
||||
"LabelEpisode": "Episood",
|
||||
"LabelEpisodeTitle": "Episoodi pealkiri",
|
||||
"LabelEpisodeType": "Episoodi tüüp",
|
||||
"LabelExample": "Näide",
|
||||
"LabelExplicit": "Vulgaarne",
|
||||
"LabelFeedURL": "Voogu URL",
|
||||
"LabelFetchingMetadata": "Metaandmete hankimine",
|
||||
"LabelFile": "Fail",
|
||||
"LabelFileBirthtime": "Faili sünniaeg",
|
||||
"LabelFileModified": "Faili muudetud",
|
||||
"LabelFilename": "Failinimi",
|
||||
"LabelFilterByUser": "Filtri alusel kasutaja järgi",
|
||||
"LabelFindEpisodes": "Otsi episoodid",
|
||||
"LabelFinished": "Lõpetatud",
|
||||
"LabelFolder": "Kaust",
|
||||
"LabelFolders": "Kataloogid",
|
||||
"LabelFontBold": "Paks",
|
||||
"LabelFontFamily": "Fondi pere",
|
||||
"LabelFontItalic": "Kaldkiri",
|
||||
"LabelFontScale": "Fondi suurus",
|
||||
"LabelFontStrikethrough": "Üle joonitud",
|
||||
"LabelFormat": "Vorming",
|
||||
"LabelGenre": "Žanr",
|
||||
"LabelGenres": "Žanrid",
|
||||
"LabelHardDeleteFile": "Faili lõplik kustutamine",
|
||||
"LabelHasEbook": "On e-raamat",
|
||||
"LabelHasSupplementaryEbook": "On täiendav e-raamat",
|
||||
"LabelHighestPriority": "Kõrgeim prioriteet",
|
||||
"LabelHost": "Host",
|
||||
"LabelHour": "Tund",
|
||||
"LabelIcon": "Ikoon",
|
||||
"LabelImageURLFromTheWeb": "Pildi URL veebist",
|
||||
"LabelIncludeInTracklist": "Kaasa jälgimisloendis",
|
||||
"LabelIncomplete": "Puudulik",
|
||||
"LabelInProgress": "Pooleli",
|
||||
"LabelInterval": "Intervall",
|
||||
"LabelIntervalCustomDailyWeekly": "Kohandatud päevane/nädalane",
|
||||
"LabelIntervalEvery12Hours": "Iga 12 tunni tagant",
|
||||
"LabelIntervalEvery15Minutes": "Iga 15 minuti tagant",
|
||||
"LabelIntervalEvery2Hours": "Iga 2 tunni tagant",
|
||||
"LabelIntervalEvery30Minutes": "Iga 30 minuti tagant",
|
||||
"LabelIntervalEvery6Hours": "Iga 6 tunni tagant",
|
||||
"LabelIntervalEveryDay": "Iga päev",
|
||||
"LabelIntervalEveryHour": "Iga tunni tagant",
|
||||
"LabelInvert": "Pööra ümber",
|
||||
"LabelItem": "Kirje",
|
||||
"LabelLanguage": "Keel",
|
||||
"LabelLanguageDefaultServer": "Vaikeserveri keel",
|
||||
"LabelLastBookAdded": "Viimati lisatud raamat",
|
||||
"LabelLastBookUpdated": "Viimati uuendatud raamat",
|
||||
"LabelLastSeen": "Viimati nähtud",
|
||||
"LabelLastTime": "Viimati aeg",
|
||||
"LabelLastUpdate": "Viimane uuendus",
|
||||
"LabelLayout": "Paigutus",
|
||||
"LabelLayoutSinglePage": "Üks lehekülg",
|
||||
"LabelLayoutSplitPage": "Jagatud lehekülg",
|
||||
"LabelLess": "Vähem",
|
||||
"LabelLibrariesAccessibleToUser": "Kasutajale ligipääsetavad raamatukogud",
|
||||
"LabelLibrary": "Raamatukogu",
|
||||
"LabelLibraryItem": "Raamatukogu kirje",
|
||||
"LabelLibraryName": "Raamatukogu nimi",
|
||||
"LabelLimit": "Piirang",
|
||||
"LabelLineSpacing": "Joonevahe",
|
||||
"LabelListenAgain": "Kuula uuesti",
|
||||
"LabelLogLevelDebug": "Silumine",
|
||||
"LabelLogLevelInfo": "Teave",
|
||||
"LabelLogLevelWarn": "Hoiatus",
|
||||
"LabelLookForNewEpisodesAfterDate": "Otsi uusi episoodid pärast seda kuupäeva",
|
||||
"LabelLowestPriority": "Madalaim prioriteet",
|
||||
"LabelMatchExistingUsersBy": "Sobita olemasolevad kasutajad",
|
||||
"LabelMatchExistingUsersByDescription": "Kasutatakse olemasolevate kasutajate ühendamiseks. Ühendatud kasutajaid sobitatakse teie SSO pakkuja unikaalse ID järgi.",
|
||||
"LabelMediaPlayer": "Meediapleier",
|
||||
"LabelMediaType": "Meedia tüüp",
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "Kõrgema prioriteediga metaandmete allikad võtavad üle madalama prioriteediga metaandmete allikad",
|
||||
"LabelMetadataProvider": "Metaandmete pakkuja",
|
||||
"LabelMetaTag": "Meta märge",
|
||||
"LabelMetaTags": "Meta märgendid",
|
||||
"LabelMinute": "Minut",
|
||||
"LabelMissing": "Puudub",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"LabelMobileRedirectURIs": "Lubatud mobiilile suunamise URI-d",
|
||||
"LabelMobileRedirectURIsDescription": "See on mobiilirakenduste jaoks kehtivate suunamise URI-de lubatud nimekiri. Vaikimisi on selleks <code>audiobookshelf://oauth</code>, mida saate eemaldada või täiendada täiendavate URI-dega kolmanda osapoole rakenduste integreerimiseks. Tärni (<code>*</code>) ainukese kirjena kasutamine võimaldab mis tahes URI-d.",
|
||||
"LabelMore": "Rohkem",
|
||||
"LabelMoreInfo": "Rohkem infot",
|
||||
"LabelName": "Nimi",
|
||||
"LabelNarrator": "Jutustaja",
|
||||
"LabelNarrators": "Jutustajad",
|
||||
"LabelNew": "Uus",
|
||||
"LabelNewestAuthors": "Uusimad autorid",
|
||||
"LabelNewestEpisodes": "Uusimad episoodid",
|
||||
"LabelNewPassword": "Uus parool",
|
||||
"LabelNextBackupDate": "Järgmine varukoopia kuupäev",
|
||||
"LabelNextScheduledRun": "Järgmine ajakava järgmine",
|
||||
"LabelNoEpisodesSelected": "Episoodid pole valitud",
|
||||
"LabelNotes": "Märkused",
|
||||
"LabelNotFinished": "Ei ole lõpetatud",
|
||||
"LabelNotificationAppriseURL": "Apprise URL-id",
|
||||
"LabelNotificationAvailableVariables": "Saadaolevad muutujad",
|
||||
"LabelNotificationBodyTemplate": "Keha mall",
|
||||
"LabelNotificationEvent": "Teavituse sündmus",
|
||||
"LabelNotificationsMaxFailedAttempts": "Maksimaalsed ebaõnnestunud katsed",
|
||||
"LabelNotificationsMaxFailedAttemptsHelp": "Teatised keelatakse, kui need ebaõnnestuvad nii palju kordi",
|
||||
"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.",
|
||||
"LabelNotificationTitleTemplate": "Pealkirja mall",
|
||||
"LabelNotStarted": "Pole alustatud",
|
||||
"LabelNumberOfBooks": "Raamatute 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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Ava RSS voog",
|
||||
"LabelOverwrite": "Kirjuta üle",
|
||||
"LabelPassword": "Parool",
|
||||
"LabelPath": "Asukoht",
|
||||
"LabelPermissionsAccessAllLibraries": "Saab ligi kõikidele raamatukogudele",
|
||||
"LabelPermissionsAccessAllTags": "Saab ligi kõikidele siltidele",
|
||||
"LabelPermissionsAccessExplicitContent": "Saab ligi vulgaarsele sisule",
|
||||
"LabelPermissionsDelete": "Saab kustutada",
|
||||
"LabelPermissionsDownload": "Saab alla laadida",
|
||||
"LabelPermissionsUpdate": "Saab uuendada",
|
||||
"LabelPermissionsUpload": "Saab üles laadida",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Foto tee/URL",
|
||||
"LabelPlaylists": "Mänguloendid",
|
||||
"LabelPlayMethod": "Esitusmeetod",
|
||||
"LabelPodcast": "Podcast",
|
||||
"LabelPodcasts": "Podcastid",
|
||||
"LabelPodcastSearchRegion": "Podcasti otsingu piirkond",
|
||||
"LabelPodcastType": "Podcasti tüüp",
|
||||
"LabelPort": "Port",
|
||||
"LabelPrefixesToIgnore": "Eiramiseks eesliited (tõstutundetu)",
|
||||
"LabelPreventIndexing": "Vältige oma voogu indekseerimist iTunes'i ja Google podcasti kataloogides",
|
||||
"LabelPrimaryEbook": "Esmane e-raamat",
|
||||
"LabelProgress": "Edenemine",
|
||||
"LabelProvider": "Pakkuja",
|
||||
"LabelPubDate": "Avaldamise kuupäev",
|
||||
"LabelPublisher": "Kirjastaja",
|
||||
"LabelPublishYear": "Aasta avaldamine",
|
||||
"LabelRead": "Lugenud",
|
||||
"LabelReadAgain": "Loe uuesti",
|
||||
"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",
|
||||
"LabelRSSFeedCustomOwnerName": "Kohandatud omaniku nimi",
|
||||
"LabelRSSFeedOpen": "Ava RSS voog",
|
||||
"LabelRSSFeedPreventIndexing": "Vältige indekseerimist",
|
||||
"LabelRSSFeedSlug": "RSS voog Slug",
|
||||
"LabelRSSFeedURL": "RSS voog URL",
|
||||
"LabelSearchTerm": "Otsingutermin",
|
||||
"LabelSearchTitle": "Otsi pealkirja",
|
||||
"LabelSearchTitleOrASIN": "Otsi pealkirja või ASIN-i",
|
||||
"LabelSeason": "Hooaeg",
|
||||
"LabelSelectAllEpisodes": "Vali kõik episoodid",
|
||||
"LabelSelectEpisodesShowing": "Valige {0} näidatavat episoodi",
|
||||
"LabelSelectUsers": "Valige kasutajad",
|
||||
"LabelSendEbookToDevice": "Saada e-raamat seadmele...",
|
||||
"LabelSequence": "Järjestus",
|
||||
"LabelSeries": "Seeria",
|
||||
"LabelSeriesName": "Seeria nimi",
|
||||
"LabelSeriesProgress": "Seeria edenemine",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Määra peamiseks",
|
||||
"LabelSetEbookAsSupplementary": "Määra täiendavaks",
|
||||
"LabelSettingsAudiobooksOnly": "Ainult heliraamatud",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "Selle seadistuse lubamine eirab e-raamatute faile, välja arvatud juhul, kui need on heliraamatu kaustas, kus need seatakse täiendavate e-raamatutena",
|
||||
"LabelSettingsBookshelfViewHelp": "Skeumorfne kujundus puidust riiulitega",
|
||||
"LabelSettingsChromecastSupport": "Chromecasti tugi",
|
||||
"LabelSettingsDateFormat": "Kuupäeva vorming",
|
||||
"LabelSettingsDisableWatcher": "Keela vaatamine",
|
||||
"LabelSettingsDisableWatcherForLibrary": "Keela kaustavaatamine raamatukogu jaoks",
|
||||
"LabelSettingsDisableWatcherHelp": "Keelab automaatse lisamise/uuendamise, kui failimuudatusi tuvastatakse. *Nõuab serveri taaskäivitamist",
|
||||
"LabelSettingsEnableWatcher": "Luba vaatamine",
|
||||
"LabelSettingsEnableWatcherForLibrary": "Luba kaustavaatamine raamatukogu jaoks",
|
||||
"LabelSettingsEnableWatcherHelp": "Lubab automaatset lisamist/uuendamist, kui tuvastatakse failimuudatused. *Nõuab serveri taaskäivitamist",
|
||||
"LabelSettingsExperimentalFeatures": "Eksperimentaalsed funktsioonid",
|
||||
"LabelSettingsExperimentalFeaturesHelp": "Arengus olevad funktsioonid, mis vajavad teie tagasisidet ja abi testimisel. Klõpsake GitHubi arutelu avamiseks.",
|
||||
"LabelSettingsFindCovers": "Leia ümbrised",
|
||||
"LabelSettingsFindCoversHelp": "Kui teie heliraamatul pole sisseehitatud ümbrist ega ümbrise pilti kaustas, proovib skanner leida ümbrist.<br>Märkus: see pikendab skaneerimisaega",
|
||||
"LabelSettingsHideSingleBookSeries": "Peida üksikute raamatute seeriad",
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Ühe raamatuga seeriaid peidetakse seeria lehelt ja avalehe riiulitelt.",
|
||||
"LabelSettingsHomePageBookshelfView": "Avaleht kasutage raamatukoguvaadet",
|
||||
"LabelSettingsLibraryBookshelfView": "Raamatukogu kasutamiseks kasutage raamatukoguvaadet",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Lugege subtiitreid",
|
||||
"LabelSettingsParseSubtitlesHelp": "Eraldage subtiitrid heliraamatu kaustade nimedest.<br>Subtiitrid peavad olema eraldatud \" - \".<br>Näiteks: \"Raamatu pealkiri - Siin on alapealkiri\" alapealkiri on \"Siin on alapealkiri\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Eelista sobitatud metaandmeid",
|
||||
"LabelSettingsPreferMatchedMetadataHelp": "Sobitatud andmed kirjutavad Kiir Sobitamise kasutamisel üle üksikasjad.",
|
||||
"LabelSettingsSkipMatchingBooksWithASIN": "Jätke ASIN-iga sobituvad raamatud vahele",
|
||||
"LabelSettingsSkipMatchingBooksWithISBN": "Jätke ISBN-iga sobituvad raamatud vahele",
|
||||
"LabelSettingsSortingIgnorePrefixes": "Ignoreeri eesliiteid sortimisel",
|
||||
"LabelSettingsSortingIgnorePrefixesHelp": "nt. eesliidet \"the\" kasutades raamatu pealkiri \"The Book Title\" sorteeritakse \"Book Title, The\"",
|
||||
"LabelSettingsSquareBookCovers": "Kasutage ruudukujulisi raamatu kaasi",
|
||||
"LabelSettingsSquareBookCoversHelp": "Eelistage ruudukujulisi kaasi tavaliste 1.6:1 raamatu ümbrise asemel",
|
||||
"LabelSettingsStoreCoversWithItem": "Salvesta kaaned üksusega",
|
||||
"LabelSettingsStoreCoversWithItemHelp": "Vaikimisi salvestatakse kaaned /metadata/items kausta. Selle seadistuse lubamine salvestab kaaned teie raamatukogu üksuse kausta. Hoitakse ainult ühte faili nimega \"kaas\"",
|
||||
"LabelSettingsStoreMetadataWithItem": "Salvesta metaandmed üksusega",
|
||||
"LabelSettingsStoreMetadataWithItemHelp": "Vaikimisi salvestatakse metaandmed /metadata/items kausta. Selle seadistuse lubamine salvestab metaandmed teie raamatukogu üksuse kaustadesse",
|
||||
"LabelSettingsTimeFormat": "Kellaaja vorming",
|
||||
"LabelShowAll": "Näita kõiki",
|
||||
"LabelSize": "Suurus",
|
||||
"LabelSleepTimer": "Uinaku taimer",
|
||||
"LabelSlug": "Slug",
|
||||
"LabelStart": "Alusta",
|
||||
"LabelStarted": "Alustatud",
|
||||
"LabelStartedAt": "Alustatud",
|
||||
"LabelStartTime": "Alustamise aeg",
|
||||
"LabelStatsAudioTracks": "Audiojäljed",
|
||||
"LabelStatsAuthors": "Autorid",
|
||||
"LabelStatsBestDay": "Parim päev",
|
||||
"LabelStatsDailyAverage": "Päevane keskmine",
|
||||
"LabelStatsDays": "Päevad",
|
||||
"LabelStatsDaysListened": "Kuulatud päevad",
|
||||
"LabelStatsHours": "Tunnid",
|
||||
"LabelStatsInARow": "järjest",
|
||||
"LabelStatsItemsFinished": "Lõpetatud üksused",
|
||||
"LabelStatsItemsInLibrary": "Üksused raamatukogus",
|
||||
"LabelStatsMinutes": "minutit",
|
||||
"LabelStatsMinutesListening": "Kuulamise minutid",
|
||||
"LabelStatsOverallDays": "Kokku päevad",
|
||||
"LabelStatsOverallHours": "Kokku tunnid",
|
||||
"LabelStatsWeekListening": "Nädala kuulamine",
|
||||
"LabelSubtitle": "Alapealkiri",
|
||||
"LabelSupportedFileTypes": "Toetatud failitüübid",
|
||||
"LabelTag": "Silt",
|
||||
"LabelTags": "Sildid",
|
||||
"LabelTagsAccessibleToUser": "Kasutajale kättesaadavad sildid",
|
||||
"LabelTagsNotAccessibleToUser": "Kasutajale mittekättesaadavad sildid",
|
||||
"LabelTasks": "Käimasolevad ülesanded",
|
||||
"LabelTextEditorBulletedList": "Punktloend",
|
||||
"LabelTextEditorLink": "Link",
|
||||
"LabelTextEditorNumberedList": "Numberloend",
|
||||
"LabelTextEditorUnlink": "Eemalda link",
|
||||
"LabelTheme": "Teema",
|
||||
"LabelThemeDark": "Tume",
|
||||
"LabelThemeLight": "Hele",
|
||||
"LabelTimeBase": "Aja alus",
|
||||
"LabelTimeListened": "Kuulatud aeg",
|
||||
"LabelTimeListenedToday": "Täna kuulatud aeg",
|
||||
"LabelTimeRemaining": "{0} jäänud",
|
||||
"LabelTimeToShift": "Nihutamiseks sekundites kuluv aeg",
|
||||
"LabelTitle": "Pealkiri",
|
||||
"LabelToolsEmbedMetadata": "Manusta metaandmed",
|
||||
"LabelToolsEmbedMetadataDescription": "Manusta metaandmed helifailidesse, sealhulgas kaanepilt ja peatükid.",
|
||||
"LabelToolsMakeM4b": "Loo M4B heliraamatu fail",
|
||||
"LabelToolsMakeM4bDescription": "Loo .M4B heliraamatu fail, kuhu on manustatud metaandmed, kaanepilt ja peatükid.",
|
||||
"LabelToolsSplitM4b": "Jaga M4B MP3-deks",
|
||||
"LabelToolsSplitM4bDescription": "Loo MP3-d M4B-st peatükkide kaupa, kus on manustatud metaandmed, kaanepilt ja peatükid.",
|
||||
"LabelTotalDuration": "Kogukestus",
|
||||
"LabelTotalTimeListened": "Kogu kuulatud aeg",
|
||||
"LabelTrackFromFilename": "Jälg nimest",
|
||||
"LabelTrackFromMetadata": "Jälg metaandmetest",
|
||||
"LabelTracks": "Jäljed",
|
||||
"LabelTracksMultiTrack": "Mitmejälg",
|
||||
"LabelTracksNone": "Ühtegi jälgimist",
|
||||
"LabelTracksSingleTrack": "Üksikjälg",
|
||||
"LabelType": "Tüüp",
|
||||
"LabelUnabridged": "Täismahus",
|
||||
"LabelUndo": "Võta tagasi",
|
||||
"LabelUnknown": "Tundmatu",
|
||||
"LabelUpdateCover": "Uuenda kaant",
|
||||
"LabelUpdateCoverHelp": "Luba üle kirjutamine olemasolevate kaante jaoks valitud raamatutele, kui leitakse sobivus",
|
||||
"LabelUpdatedAt": "Uuendatud",
|
||||
"LabelUpdateDetails": "Uuenda üksikasju",
|
||||
"LabelUpdateDetailsHelp": "Luba üle kirjutamine olemasolevate üksikasjade jaoks valitud raamatutele, kui leitakse sobivus",
|
||||
"LabelUploaderDragAndDrop": "Lohista ja aseta faile või kaustu",
|
||||
"LabelUploaderDropFiles": "Aseta failid",
|
||||
"LabelUploaderItemFetchMetadataHelp": "Hangi automaatselt pealkiri, autor ja seeria",
|
||||
"LabelUseChapterTrack": "Kasuta peatüki jälge",
|
||||
"LabelUseFullTrack": "Kasuta täielikku jälge",
|
||||
"LabelUser": "Kasutaja",
|
||||
"LabelUsername": "Kasutajanimi",
|
||||
"LabelValue": "Väärtus",
|
||||
"LabelVersion": "Versioon",
|
||||
"LabelViewBookmarks": "Vaata järjehoidjaid",
|
||||
"LabelViewChapters": "Vaata peatükke",
|
||||
"LabelViewQueue": "Vaata esitusjärjekorda",
|
||||
"LabelVolume": "Heli tugevus",
|
||||
"LabelWeekdaysToRun": "Päevad nädalas käivitamiseks",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Teie heliraamatu kestus",
|
||||
"LabelYourBookmarks": "Teie järjehoidjad",
|
||||
"LabelYourPlaylists": "Teie esitusloendid",
|
||||
"LabelYourProgress": "Teie edenemine",
|
||||
"MessageAddToPlayerQueue": "Lisa esitusjärjekorda",
|
||||
"MessageAppriseDescription": "Selle funktsiooni kasutamiseks peate käivitama <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> eksemplari või API, mis töötleb samu päringuid. <br />Apprise API URL peaks olema täielik URL-rada teatise saatmiseks, näiteks kui teie API eksemplar töötab aadressil <code>http://192.168.1.1:8337</code>, siis peaksite sisestama <code>http://192.168.1.1:8337/notify</code>.",
|
||||
"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.",
|
||||
"MessageBookshelfNoCollections": "Te pole veel ühtegi kogumit teinud",
|
||||
"MessageBookshelfNoResultsForFilter": "Filtrile \"{0}: {1}\" pole tulemusi",
|
||||
"MessageBookshelfNoRSSFeeds": "Ühtegi RSS-i voogu pole avatud",
|
||||
"MessageBookshelfNoSeries": "Teil pole ühtegi seeriat",
|
||||
"MessageChapterEndIsAfter": "Peatüki lõpp on pärast teie heliraamatu lõppu",
|
||||
"MessageChapterErrorFirstNotZero": "Esimene peatükk peab algama 0-st",
|
||||
"MessageChapterErrorStartGteDuration": "Vigane algusaeg peab olema väiksem kui heliraamatu kestus",
|
||||
"MessageChapterErrorStartLtPrev": "Vigane algusaeg peab olema suurem või võrdne eelneva peatüki algusajaga",
|
||||
"MessageChapterStartIsAfter": "Peatüki algus on pärast teie heliraamatu lõppu",
|
||||
"MessageCheckingCron": "Croni kontrollimine...",
|
||||
"MessageConfirmCloseFeed": "Olete kindel, et soovite selle voo sulgeda?",
|
||||
"MessageConfirmDeleteBackup": "Olete kindel, et soovite varukoopia kustutada {0} kohta?",
|
||||
"MessageConfirmDeleteFile": "See kustutab faili teie failisüsteemist. Olete kindel?",
|
||||
"MessageConfirmDeleteLibrary": "Olete kindel, et soovite raamatukogu \"{0}\" lõplikult kustutada?",
|
||||
"MessageConfirmDeleteLibraryItem": "See kustutab raamatukogu üksuse andmebaasist ja failisüsteemist. Olete kindel?",
|
||||
"MessageConfirmDeleteLibraryItems": "See kustutab {0} raamatukogu üksust andmebaasist ja failisüsteemist. Olete kindel?",
|
||||
"MessageConfirmDeleteSession": "Olete kindel, et soovite selle seansi kustutada?",
|
||||
"MessageConfirmForceReScan": "Olete kindel, et soovite jõuga uuesti skannida?",
|
||||
"MessageConfirmMarkAllEpisodesFinished": "Olete kindel, et soovite kõik episoodid lõpetatuks märkida?",
|
||||
"MessageConfirmMarkAllEpisodesNotFinished": "Olete kindel, et soovite kõik episoodid mitte 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?",
|
||||
"MessageConfirmQuickEmbed": "Hoiatus! Quick Embed ei tee varukoopiaid teie helifailidest. Veenduge, et teil oleks varukoopia oma helifailidest. <br><br>Kas soovite jätkata?",
|
||||
"MessageConfirmRemoveAllChapters": "Olete kindel, et soovite eemaldada kõik peatükid?",
|
||||
"MessageConfirmRemoveAuthor": "Olete kindel, et soovite autori \"{0}\" eemaldada?",
|
||||
"MessageConfirmRemoveCollection": "Olete kindel, et soovite kogumi \"{0}\" eemaldada?",
|
||||
"MessageConfirmRemoveEpisode": "Olete kindel, et soovite episoodi \"{0}\" eemaldada?",
|
||||
"MessageConfirmRemoveEpisodes": "Olete kindel, et soovite eemaldada {0} episoodi?",
|
||||
"MessageConfirmRemoveListeningSessions": "Olete kindel, et soovite eemaldada {0} kuulamise sessiooni?",
|
||||
"MessageConfirmRemoveNarrator": "Olete kindel, et soovite jutustaja \"{0}\" eemaldada?",
|
||||
"MessageConfirmRemovePlaylist": "Olete kindel, et soovite eemaldada oma esitusloendi \"{0}\"?",
|
||||
"MessageConfirmRenameGenre": "Olete kindel, et soovite žanri \"{0}\" ümber nimetada kujule \"{1}\" kõikidele üksustele?",
|
||||
"MessageConfirmRenameGenreMergeNote": "Märkus: See žanr on juba olemas, nii et need ühendatakse.",
|
||||
"MessageConfirmRenameGenreWarning": "Hoiatus! Sarnane žanr erineva puhvriga on juba olemas \"{0}\".",
|
||||
"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.",
|
||||
"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}\"?",
|
||||
"MessageDownloadingEpisode": "Episoodi allalaadimine",
|
||||
"MessageDragFilesIntoTrackOrder": "Lohistage failid õigesse järjekorda",
|
||||
"MessageEmbedFinished": "Manustamine lõpetatud!",
|
||||
"MessageEpisodesQueuedForDownload": "{0} Episood(i) on allalaadimiseks järjekorras",
|
||||
"MessageFeedURLWillBe": "Toite URL saab olema {0}",
|
||||
"MessageFetching": "Hangitakse...",
|
||||
"MessageForceReScanDescription": "skaneerib kõik failid uuesti nagu värsket skannimist. Heli faili ID3 silte, OPF faile ja tekstifaile skaneeritakse uuesti.",
|
||||
"MessageImportantNotice": "Oluline märkus!",
|
||||
"MessageInsertChapterBelow": "Sisesta peatükk allapoole",
|
||||
"MessageItemsSelected": "{0} Valitud üksust",
|
||||
"MessageItemsUpdated": "{0} Üksust on uuendatud",
|
||||
"MessageJoinUsOn": "Liitu meiega",
|
||||
"MessageListeningSessionsInTheLastYear": "Kuulamissessioone viimase aasta jooksul: {0}",
|
||||
"MessageLoading": "Laadimine...",
|
||||
"MessageLoadingFolders": "Kaustade laadimine...",
|
||||
"MessageM4BFailed": "M4B ebaõnnestus!",
|
||||
"MessageM4BFinished": "M4B lõpetatud!",
|
||||
"MessageMapChapterTitles": "Kaarda peatükkide pealkirjad olemasolevatele heliraamatu peatükkidele, ajatempe ei muudeta",
|
||||
"MessageMarkAllEpisodesFinished": "Märgi kõik episoodid lõpetatuks",
|
||||
"MessageMarkAllEpisodesNotFinished": "Märgi kõik episoodid mitte lõpetatuks",
|
||||
"MessageMarkAsFinished": "Märgi lõpetatuks",
|
||||
"MessageMarkAsNotFinished": "Märgi mitte lõpetatuks",
|
||||
"MessageMatchBooksDescription": "üritab raamatuid raamatukogus sobitada otsingupakkujast leitud raamatuga ning täita tühjad üksikasjad ja kaas. Ei üle kirjuta üksikasju.",
|
||||
"MessageNoAudioTracks": "Ühtegi helijälge pole",
|
||||
"MessageNoAuthors": "Ühtegi autori pole",
|
||||
"MessageNoBackups": "Ühtegi varukoopia pole",
|
||||
"MessageNoBookmarks": "Ühtegi järjehoidjat pole",
|
||||
"MessageNoChapters": "Ühtegi peatükki pole",
|
||||
"MessageNoCollections": "Ühtegi kogumit pole",
|
||||
"MessageNoCoversFound": "Ühtegi kaant pole leitud",
|
||||
"MessageNoDescription": "Kirjeldust pole",
|
||||
"MessageNoDownloadsInProgress": "Praegu allalaadimisi pole",
|
||||
"MessageNoDownloadsQueued": "Pole järjekorras allalaadimisi",
|
||||
"MessageNoEpisodeMatchesFound": "Ühtegi episoodi vastet pole leitud",
|
||||
"MessageNoEpisodes": "Ühtegi episoodi pole",
|
||||
"MessageNoFoldersAvailable": "Ühtegi kausta pole saadaval",
|
||||
"MessageNoGenres": "Ühtegi žanrit pole",
|
||||
"MessageNoIssues": "Ühtegi probleemi pole",
|
||||
"MessageNoItems": "Ühtegi üksust pole",
|
||||
"MessageNoItemsFound": "Ühtegi üksust pole leitud",
|
||||
"MessageNoListeningSessions": "Ühtegi kuulamissessiooni pole",
|
||||
"MessageNoLogs": "Ühtegi logi pole",
|
||||
"MessageNoMediaProgress": "Ühtegi meediaprogressi pole",
|
||||
"MessageNoNotifications": "Ühtegi teavitust pole",
|
||||
"MessageNoPodcastsFound": "Ühtegi podcasti pole leitud",
|
||||
"MessageNoResults": "Ühtegi tulemust pole",
|
||||
"MessageNoSearchResultsFor": "Otsingutulemusi pole märksõna kohta: \"{0}\"",
|
||||
"MessageNoSeries": "Ühtegi seeriat pole",
|
||||
"MessageNoTags": "Ühtegi silti pole",
|
||||
"MessageNoTasksRunning": "Ühtegi käimasolevat ülesannet pole",
|
||||
"MessageNotYetImplemented": "Pole veel ellu viidud",
|
||||
"MessageNoUpdateNecessary": "Ühtegi värskendust pole vaja",
|
||||
"MessageNoUpdatesWereNecessary": "Ühtegi värskendust polnud vaja",
|
||||
"MessageNoUserPlaylists": "Teil pole ühtegi esitusloendit",
|
||||
"MessageOr": "või",
|
||||
"MessagePauseChapter": "Peata peatüki esitamine",
|
||||
"MessagePlayChapter": "Kuula peatüki algust",
|
||||
"MessagePlaylistCreateFromCollection": "Loo esitusloend kogumist",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcastil pole sobitamiseks RSS-voogu",
|
||||
"MessageQuickMatchDescription": "täidab tühjad üksikasjad ja kaaned raamatukogus esimese otsingutulemusega rakendusest '{0}'. Ei üle kirjuta üksikasju, välja arvatud juhul, kui serveri sätetes on lubatud 'Eelista sobitatud metaandmeid'.",
|
||||
"MessageRemoveChapter": "Eemalda peatükk",
|
||||
"MessageRemoveEpisodes": "Eemalda {0} episood(i)",
|
||||
"MessageRemoveFromPlayerQueue": "Eemalda esitusjärjekorrast",
|
||||
"MessageRemoveUserWarning": "Olete kindel, et soovite kasutaja \"{0}\" lõplikult kustutada?",
|
||||
"MessageReportBugsAndContribute": "Raporteeri vigu, palu funktsioone ja aita kaasa",
|
||||
"MessageResetChaptersConfirm": "Olete kindel, et soovite peatükkide lähtestada ja tehtud muudatused tagasi võtta?",
|
||||
"MessageRestoreBackupConfirm": "Olete kindel, et soovite taastada varukoopia, mis loodi",
|
||||
"MessageRestoreBackupWarning": "Varukoopia taastamine kirjutab üle kogu /config ja /metadata/items & /metadata/authors kaustas oleva andmebaasi. <br /><br />Varukoopiad ei muuda teie raamatukogukaustades olevaid faile. Kui olete lubanud serveri sätetel salvestada kaane kunsti ja metaandmed teie raamatukogu kaustadesse, siis neid ei varundata ega kirjutata üle.<br /><br />Kõik teie serveri kasutavad kliendid värskendatakse automaatselt.",
|
||||
"MessageSearchResultsFor": "Otsingutulemused märksõnale",
|
||||
"MessageSelected": "{0} valitud",
|
||||
"MessageServerCouldNotBeReached": "Serveriga ei saanud ühendust luua",
|
||||
"MessageSetChaptersFromTracksDescription": "Määrake peatükid, kasutades iga helifaili peatükina ja peatüki pealkirjana helifaili nime",
|
||||
"MessageStartPlaybackAtTime": "Alustage \"{0}\" esitamist kell {1}?",
|
||||
"MessageThinking": "Mõtlen...",
|
||||
"MessageUploaderItemFailed": "Üleslaadimine ebaõnnestus",
|
||||
"MessageUploaderItemSuccess": "Edukalt üles laaditud!",
|
||||
"MessageUploading": "Üles laadimine...",
|
||||
"MessageValidCronExpression": "Kehtiv cron-väljend",
|
||||
"MessageWatcherIsDisabledGlobally": "Vaatleja on ülemaailmselt keelatud serveri sätetes",
|
||||
"MessageXLibraryIsEmpty": "{0} raamatukogu on tühi!",
|
||||
"MessageYourAudiobookDurationIsLonger": "Teie heliraamatu kestus on pikem kui leitud kestus",
|
||||
"MessageYourAudiobookDurationIsShorter": "Teie heliraamatu kestus on lühem kui leitud kestus",
|
||||
"NoteChangeRootPassword": "Root kasutajal võib olla ainus kasutaja, kellel võib olla tühi parool",
|
||||
"NoteChapterEditorTimes": "Märkus: Esimese peatüki algusaeg peab jääma 0:00 ja viimase peatüki algusaeg ei tohi ületada selle heliraamatu kestust.",
|
||||
"NoteFolderPicker": "Märkus: juba kaardistatud kaustu ei kuvata",
|
||||
"NoteRSSFeedPodcastAppsHttps": "Hoiatus: Enamik podcasti rakendusi nõuab, et RSS-voogu URL kasutaks HTTPS-i",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "Hoiatus: Üks või mitu teie episoodi ei sisalda publikatsioonikuupäeva. Mõned podcasti rakendused nõuavad seda.",
|
||||
"NoteUploaderFoldersWithMediaFiles": "Kaustu, kus on meediat, käsitletakse eraldi raamatukogu üksustena.",
|
||||
"NoteUploaderOnlyAudioFiles": "Kui laadite üles ainult helifaile, käsitletakse iga helifaili eraldi heliraamatuna.",
|
||||
"NoteUploaderUnsupportedFiles": "Toetamata failid jäetakse tähelepanuta. Kausta valimisel või lohistamisel jäetakse tähelepanuta muud failid, mis pole üksuse kaustas.",
|
||||
"PlaceholderNewCollection": "Uue kogumi nimi",
|
||||
"PlaceholderNewFolderPath": "Uus kausta tee",
|
||||
"PlaceholderNewPlaylist": "Uue esitusloendi nimi",
|
||||
"PlaceholderSearch": "Otsi...",
|
||||
"PlaceholderSearchEpisode": "Otsi episoodi...",
|
||||
"ToastAccountUpdateFailed": "Konto värskendamine ebaõnnestus",
|
||||
"ToastAccountUpdateSuccess": "Konto on värskendatud",
|
||||
"ToastAuthorImageRemoveFailed": "Pildi eemaldamine ebaõnnestus",
|
||||
"ToastAuthorImageRemoveSuccess": "Autori pilt on eemaldatud",
|
||||
"ToastAuthorUpdateFailed": "Autori värskendamine ebaõnnestus",
|
||||
"ToastAuthorUpdateMerged": "Autor liidetud",
|
||||
"ToastAuthorUpdateSuccess": "Autor värskendatud",
|
||||
"ToastAuthorUpdateSuccessNoImageFound": "Autor värskendatud (pilti ei leitud)",
|
||||
"ToastBackupCreateFailed": "Varukoopia loomine ebaõnnestus",
|
||||
"ToastBackupCreateSuccess": "Varukoopia loodud",
|
||||
"ToastBackupDeleteFailed": "Varukoopia kustutamine ebaõnnestus",
|
||||
"ToastBackupDeleteSuccess": "Varukoopia kustutatud",
|
||||
"ToastBackupRestoreFailed": "Varukoopia taastamine ebaõnnestus",
|
||||
"ToastBackupUploadFailed": "Varukoopia üles laadimine ebaõnnestus",
|
||||
"ToastBackupUploadSuccess": "Varukoopia üles laaditud",
|
||||
"ToastBatchUpdateFailed": "Partii värskendamine ebaõnnestus",
|
||||
"ToastBatchUpdateSuccess": "Partii värskendamine õnnestus",
|
||||
"ToastBookmarkCreateFailed": "Järjehoidja loomine ebaõnnestus",
|
||||
"ToastBookmarkCreateSuccess": "Järjehoidja lisatud",
|
||||
"ToastBookmarkRemoveFailed": "Järjehoidja eemaldamine ebaõnnestus",
|
||||
"ToastBookmarkRemoveSuccess": "Järjehoidja eemaldatud",
|
||||
"ToastBookmarkUpdateFailed": "Järjehoidja värskendamine ebaõnnestus",
|
||||
"ToastBookmarkUpdateSuccess": "Järjehoidja värskendatud",
|
||||
"ToastChaptersHaveErrors": "Peatükkidel on vigu",
|
||||
"ToastChaptersMustHaveTitles": "Peatükkidel peab olema pealkiri",
|
||||
"ToastCollectionItemsRemoveFailed": "Üksuse(te) eemaldamine kogumist ebaõnnestus",
|
||||
"ToastCollectionItemsRemoveSuccess": "Üksus(ed) eemaldatud kogumist",
|
||||
"ToastCollectionRemoveFailed": "Kogumi eemaldamine ebaõnnestus",
|
||||
"ToastCollectionRemoveSuccess": "Kogum eemaldatud",
|
||||
"ToastCollectionUpdateFailed": "Kogumi värskendamine ebaõnnestus",
|
||||
"ToastCollectionUpdateSuccess": "Kogum värskendatud",
|
||||
"ToastItemCoverUpdateFailed": "Üksuse kaane värskendamine ebaõnnestus",
|
||||
"ToastItemCoverUpdateSuccess": "Üksuse kaas värskendatud",
|
||||
"ToastItemDetailsUpdateFailed": "Üksuse üksikasjade värskendamine ebaõnnestus",
|
||||
"ToastItemDetailsUpdateSuccess": "Üksuse üksikasjad värskendatud",
|
||||
"ToastItemDetailsUpdateUnneeded": "Üksuse üksikasjade värskendamine pole vajalik",
|
||||
"ToastItemMarkedAsFinishedFailed": "Märgistamine kui lõpetatud ebaõnnestus",
|
||||
"ToastItemMarkedAsFinishedSuccess": "Üksus märgitud kui lõpetatud",
|
||||
"ToastItemMarkedAsNotFinishedFailed": "Märgistamine kui mitte lõpetatud ebaõnnestus",
|
||||
"ToastItemMarkedAsNotFinishedSuccess": "Üksus märgitud kui mitte lõpetatud",
|
||||
"ToastLibraryCreateFailed": "Raamatukogu loomine ebaõnnestus",
|
||||
"ToastLibraryCreateSuccess": "Raamatukogu \"{0}\" loodud",
|
||||
"ToastLibraryDeleteFailed": "Raamatukogu kustutamine ebaõnnestus",
|
||||
"ToastLibraryDeleteSuccess": "Raamatukogu kustutatud",
|
||||
"ToastLibraryScanFailedToStart": "Skanneerimine ei käivitunud",
|
||||
"ToastLibraryScanStarted": "Raamatukogu skaneerimine alustatud",
|
||||
"ToastLibraryUpdateFailed": "Raamatukogu värskendamine ebaõnnestus",
|
||||
"ToastLibraryUpdateSuccess": "Raamatukogu \"{0}\" värskendatud",
|
||||
"ToastPlaylistCreateFailed": "Esitusloendi loomine ebaõnnestus",
|
||||
"ToastPlaylistCreateSuccess": "Esitusloend loodud",
|
||||
"ToastPlaylistRemoveFailed": "Esitusloendi eemaldamine ebaõnnestus",
|
||||
"ToastPlaylistRemoveSuccess": "Esitusloend eemaldatud",
|
||||
"ToastPlaylistUpdateFailed": "Esitusloendi värskendamine ebaõnnestus",
|
||||
"ToastPlaylistUpdateSuccess": "Esitusloend värskendatud",
|
||||
"ToastPodcastCreateFailed": "Podcasti loomine ebaõnnestus",
|
||||
"ToastPodcastCreateSuccess": "Podcast loodud edukalt",
|
||||
"ToastRemoveItemFromCollectionFailed": "Üksuse eemaldamine kogumist ebaõnnestus",
|
||||
"ToastRemoveItemFromCollectionSuccess": "Üksus eemaldatud kogumist",
|
||||
"ToastRSSFeedCloseFailed": "RSS-voogu sulgemine ebaõnnestus",
|
||||
"ToastRSSFeedCloseSuccess": "RSS-voog suletud",
|
||||
"ToastSendEbookToDeviceFailed": "E-raamatu saatmine seadmesse ebaõnnestus",
|
||||
"ToastSendEbookToDeviceSuccess": "E-raamat saadetud seadmesse \"{0}\"",
|
||||
"ToastSeriesUpdateFailed": "Sarja värskendamine ebaõnnestus",
|
||||
"ToastSeriesUpdateSuccess": "Sarja värskendamine õnnestus",
|
||||
"ToastSessionDeleteFailed": "Seansi kustutamine ebaõnnestus",
|
||||
"ToastSessionDeleteSuccess": "Sessioon kustutatud",
|
||||
"ToastSocketConnected": "Pesa ühendatud",
|
||||
"ToastSocketDisconnected": "Pesa ühendus katkenud",
|
||||
"ToastSocketFailedToConnect": "Pesa ühendamine ebaõnnestus",
|
||||
"ToastUserDeleteFailed": "Kasutaja kustutamine ebaõnnestus",
|
||||
"ToastUserDeleteSuccess": "Kasutaja kustutatud"
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
"ButtonAddUser": "Ajouter un utilisateur",
|
||||
"ButtonAddYourFirstLibrary": "Ajouter votre première bibliothèque",
|
||||
"ButtonApply": "Appliquer",
|
||||
"ButtonApplyChapters": "Appliquer les chapitres",
|
||||
"ButtonApplyChapters": "Appliquer aux chapitres",
|
||||
"ButtonAuthors": "Auteurs",
|
||||
"ButtonBrowseForFolder": "Naviguer vers le répertoire",
|
||||
"ButtonCancel": "Annuler",
|
||||
@@ -32,8 +32,8 @@
|
||||
"ButtonHide": "Cacher",
|
||||
"ButtonHome": "Accueil",
|
||||
"ButtonIssues": "Parutions",
|
||||
"ButtonJumpBackward": "Jump Backward",
|
||||
"ButtonJumpForward": "Jump Forward",
|
||||
"ButtonJumpBackward": "Retour",
|
||||
"ButtonJumpForward": "Avancer",
|
||||
"ButtonLatest": "Dernière version",
|
||||
"ButtonLibrary": "Bibliothèque",
|
||||
"ButtonLogout": "Me déconnecter",
|
||||
@@ -43,7 +43,8 @@
|
||||
"ButtonMatchAllAuthors": "Chercher tous les auteurs",
|
||||
"ButtonMatchBooks": "Chercher les livres",
|
||||
"ButtonNevermind": "Non merci",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonNext": "Suivant",
|
||||
"ButtonNextChapter": "Chapitre suivant",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Ouvrir le flux",
|
||||
"ButtonOpenManager": "Ouvrir le gestionnaire",
|
||||
@@ -51,7 +52,8 @@
|
||||
"ButtonPlay": "Écouter",
|
||||
"ButtonPlaying": "En lecture",
|
||||
"ButtonPlaylists": "Listes de lecture",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPrevious": "Précédent",
|
||||
"ButtonPreviousChapter": "Chapitre précédent",
|
||||
"ButtonPurgeAllCache": "Purger le cache",
|
||||
"ButtonPurgeItemsCache": "Purger le cache des articles",
|
||||
"ButtonPurgeMediaProgress": "Purger la progression des médias",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Supprimer de la liste de lecture",
|
||||
"ButtonQuickMatch": "Recherche rapide",
|
||||
"ButtonRead": "Lire",
|
||||
"ButtonRefresh": "Rafraîchir",
|
||||
"ButtonRemove": "Supprimer",
|
||||
"ButtonRemoveAll": "Supprimer tout",
|
||||
"ButtonRemoveAllLibraryItems": "Supprimer tous les articles de la bibliothèque",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Sélectionner le chemin du dossier",
|
||||
"ButtonSeries": "Séries",
|
||||
"ButtonSetChaptersFromTracks": "Positionner les chapitres par rapports aux pistes",
|
||||
"ButtonShare": "Partager",
|
||||
"ButtonShiftTimes": "Décaler l’horodatage du livre",
|
||||
"ButtonShow": "Afficher",
|
||||
"ButtonStartM4BEncode": "Démarrer l’encodage M4B",
|
||||
@@ -88,7 +92,7 @@
|
||||
"ButtonUploadBackup": "Téléverser une sauvegarde",
|
||||
"ButtonUploadCover": "Téléverser une couverture",
|
||||
"ButtonUploadOPMLFile": "Téléverser un fichier OPML",
|
||||
"ButtonUserDelete": "Effacer l’utilisateur {0}",
|
||||
"ButtonUserDelete": "Supprimer l’utilisateur {0}",
|
||||
"ButtonUserEdit": "Modifier l’utilisateur {0}",
|
||||
"ButtonViewAll": "Afficher tout",
|
||||
"ButtonYes": "Oui",
|
||||
@@ -97,8 +101,8 @@
|
||||
"ErrorUploadLacksTitle": "Doit avoir un titre",
|
||||
"HeaderAccount": "Compte",
|
||||
"HeaderAdvanced": "Avancé",
|
||||
"HeaderAppriseNotificationSettings": "Configuration des Notifications Apprise",
|
||||
"HeaderAudiobookTools": "Outils de Gestion de Fichier Audiobook",
|
||||
"HeaderAppriseNotificationSettings": "Configuration des notifications Apprise",
|
||||
"HeaderAudiobookTools": "Outils de gestion de fichiers de livres audio",
|
||||
"HeaderAudioTracks": "Pistes audio",
|
||||
"HeaderAuthentication": "Authentication",
|
||||
"HeaderBackups": "Sauvegardes",
|
||||
@@ -109,7 +113,7 @@
|
||||
"HeaderCollectionItems": "Entrées de la collection",
|
||||
"HeaderCover": "Couverture",
|
||||
"HeaderCurrentDownloads": "Téléchargements en cours",
|
||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||
"HeaderCustomMetadataProviders": "Fournisseurs de métadonnées personnalisés",
|
||||
"HeaderDetails": "Détails",
|
||||
"HeaderDownloadQueue": "File d’attente de téléchargements",
|
||||
"HeaderEbookFiles": "Fichier des livres numériques",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Mettre à jour les détails",
|
||||
"HeaderUpdateLibrary": "Mettre à jour la bibliothèque",
|
||||
"HeaderUsers": "Utilisateurs",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Vos statistiques",
|
||||
"LabelAbridged": "Version courte",
|
||||
"LabelAccountType": "Type de compte",
|
||||
@@ -287,11 +292,11 @@
|
||||
"LabelFinished": "Terminé le",
|
||||
"LabelFolder": "Dossier",
|
||||
"LabelFolders": "Dossiers",
|
||||
"LabelFontBold": "Bold",
|
||||
"LabelFontBold": "Gras",
|
||||
"LabelFontFamily": "Polices de caractères",
|
||||
"LabelFontItalic": "Italic",
|
||||
"LabelFontItalic": "Italique",
|
||||
"LabelFontScale": "Taille de la police de caractère",
|
||||
"LabelFontStrikethrough": "Strikethrough",
|
||||
"LabelFontStrikethrough": "Barrer",
|
||||
"LabelFormat": "Format",
|
||||
"LabelGenre": "Genre",
|
||||
"LabelGenres": "Genres",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Toutes les 6 heures",
|
||||
"LabelIntervalEveryDay": "Tous les jours",
|
||||
"LabelIntervalEveryHour": "Toutes les heures",
|
||||
"LabelInvalidParts": "Parties invalides",
|
||||
"LabelInvert": "Inverser",
|
||||
"LabelItem": "Article",
|
||||
"LabelLanguage": "Langue",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Balises de métadonnée",
|
||||
"LabelMinute": "Minute",
|
||||
"LabelMissing": "Manquant",
|
||||
"LabelMissingParts": "Parties manquantes",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Plus",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Pas commencé",
|
||||
"LabelNumberOfBooks": "Nombre de livres",
|
||||
"LabelNumberOfEpisodes": "Nombre d’épisodes",
|
||||
"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.",
|
||||
"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": "Ouvrir le flux RSS",
|
||||
"LabelOverwrite": "Écraser",
|
||||
"LabelPassword": "Mot de passe",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Peut télécharger",
|
||||
"LabelPermissionsUpdate": "Peut mettre à jour",
|
||||
"LabelPermissionsUpload": "Peut téléverser",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Chemin / URL des photos",
|
||||
"LabelPlaylists": "Listes de lecture",
|
||||
"LabelPlayMethod": "Méthode d’écoute",
|
||||
@@ -413,7 +422,7 @@
|
||||
"LabelRecentlyAdded": "Derniers ajouts",
|
||||
"LabelRecentSeries": "Séries récentes",
|
||||
"LabelRecommended": "Recommandé",
|
||||
"LabelRedo": "Redo",
|
||||
"LabelRedo": "Refaire",
|
||||
"LabelRegion": "Région",
|
||||
"LabelReleaseDate": "Date de parution",
|
||||
"LabelRemoveCover": "Supprimer la couverture",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Séries",
|
||||
"LabelSeriesName": "Nom de la série",
|
||||
"LabelSeriesProgress": "Progression de séries",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Définir comme principale",
|
||||
"LabelSetEbookAsSupplementary": "Définir comme supplémentaire",
|
||||
"LabelSettingsAudiobooksOnly": "Livres audios seulement",
|
||||
@@ -457,6 +467,8 @@
|
||||
"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",
|
||||
"LabelSettingsLibraryBookshelfView": "La bibliothèque utilise la vue étagère",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "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 « - »<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",
|
||||
@@ -502,10 +514,10 @@
|
||||
"LabelTagsAccessibleToUser": "Étiquettes accessibles à l’utilisateur",
|
||||
"LabelTagsNotAccessibleToUser": "Étiquettes non accessibles à l’utilisateur",
|
||||
"LabelTasks": "Tâches en cours",
|
||||
"LabelTextEditorBulletedList": "Bulleted list",
|
||||
"LabelTextEditorLink": "Link",
|
||||
"LabelTextEditorNumberedList": "Numbered list",
|
||||
"LabelTextEditorUnlink": "Unlink",
|
||||
"LabelTextEditorBulletedList": "Liste à puces",
|
||||
"LabelTextEditorLink": "Lien",
|
||||
"LabelTextEditorNumberedList": "Liste numérotée",
|
||||
"LabelTextEditorUnlink": "Dissocier",
|
||||
"LabelTheme": "Thème",
|
||||
"LabelThemeDark": "Sombre",
|
||||
"LabelThemeLight": "Clair",
|
||||
@@ -531,7 +543,7 @@
|
||||
"LabelTracksSingleTrack": "Piste simple",
|
||||
"LabelType": "Type",
|
||||
"LabelUnabridged": "Version intégrale",
|
||||
"LabelUndo": "Undo",
|
||||
"LabelUndo": "Annuler",
|
||||
"LabelUnknown": "Inconnu",
|
||||
"LabelUpdateCover": "Mettre à jour la couverture",
|
||||
"LabelUpdateCoverHelp": "Autoriser la mise à jour de la couverture existante lorsqu’une correspondance est trouvée",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Afficher la liste de lecture",
|
||||
"LabelVolume": "Volume",
|
||||
"LabelWeekdaysToRun": "Jours de la semaine à exécuter",
|
||||
"LabelYearReviewHide": "Masquer le bilan de l’année",
|
||||
"LabelYearReviewShow": "Afficher le bilan de l’année",
|
||||
"LabelYourAudiobookDuration": "Durée de vos livres audios",
|
||||
"LabelYourBookmarks": "Vos signets",
|
||||
"LabelYourPlaylists": "Vos listes de lecture",
|
||||
@@ -683,7 +697,7 @@
|
||||
"MessageYourAudiobookDurationIsShorter": "La durée de votre livre audio est plus courte que la durée trouvée",
|
||||
"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.",
|
||||
"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.",
|
||||
"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.",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "બધા મેળ ખાતા લેખકો શોધો",
|
||||
"ButtonMatchBooks": "મેળ ખાતી પુસ્તકો શોધો",
|
||||
"ButtonNevermind": "કંઈ વાંધો નહીં",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "ઓકે",
|
||||
"ButtonOpenFeed": "ફીડ ખોલો",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "ચલાવો",
|
||||
"ButtonPlaying": "ચલાવી રહ્યું છે",
|
||||
"ButtonPlaylists": "પ્લેલિસ્ટ",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "બધો Cache કાઢી નાખો",
|
||||
"ButtonPurgeItemsCache": "વસ્તુઓનો Cache કાઢી નાખો",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "કતારથી કાઢી નાખો",
|
||||
"ButtonQuickMatch": "ઝડપી મેળ ખવડાવો",
|
||||
"ButtonRead": "વાંચો",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "કાઢી નાખો",
|
||||
"ButtonRemoveAll": "બધું કાઢી નાખો",
|
||||
"ButtonRemoveAllLibraryItems": "બધું પુસ્તકાલય વસ્તુઓ કાઢી નાખો",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "ફોલ્ડર પથ પસંદ કરો",
|
||||
"ButtonSeries": "સિરીઝ",
|
||||
"ButtonSetChaptersFromTracks": "ટ્રેક્સથી પ્રકરણો સેટ કરો",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "સમય શિફ્ટ કરો",
|
||||
"ButtonShow": "બતાવો",
|
||||
"ButtonStartM4BEncode": "M4B એન્કોડ શરૂ કરો",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Update Details",
|
||||
"HeaderUpdateLibrary": "Update Library",
|
||||
"HeaderUsers": "Users",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Your Stats",
|
||||
"LabelAbridged": "Abridged",
|
||||
"LabelAccountType": "Account Type",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Every 6 hours",
|
||||
"LabelIntervalEveryDay": "Every day",
|
||||
"LabelIntervalEveryHour": "Every hour",
|
||||
"LabelInvalidParts": "Invalid Parts",
|
||||
"LabelInvert": "Invert",
|
||||
"LabelItem": "Item",
|
||||
"LabelLanguage": "Language",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta Tags",
|
||||
"LabelMinute": "Minute",
|
||||
"LabelMissing": "Missing",
|
||||
"LabelMissingParts": "Missing Parts",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "More",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Not Started",
|
||||
"LabelNumberOfBooks": "Number of Books",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Open RSS Feed",
|
||||
"LabelOverwrite": "Overwrite",
|
||||
"LabelPassword": "Password",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Can Download",
|
||||
"LabelPermissionsUpdate": "Can Update",
|
||||
"LabelPermissionsUpload": "Can Upload",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Photo Path/URL",
|
||||
"LabelPlaylists": "Playlists",
|
||||
"LabelPlayMethod": "Play Method",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Series",
|
||||
"LabelSeriesName": "Series Name",
|
||||
"LabelSeriesProgress": "Series Progress",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Set as primary",
|
||||
"LabelSetEbookAsSupplementary": "Set as supplementary",
|
||||
"LabelSettingsAudiobooksOnly": "Audiobooks only",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
|
||||
"LabelSettingsHomePageBookshelfView": "Home page use bookshelf view",
|
||||
"LabelSettingsLibraryBookshelfView": "Library use bookshelf view",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Parse subtitles",
|
||||
"LabelSettingsParseSubtitlesHelp": "Extract subtitles from audiobook folder names.<br>Subtitle must be seperated by \" - \"<br>i.e. \"Book Title - A Subtitle Here\" has the subtitle \"A Subtitle Here\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Prefer matched metadata",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "View player queue",
|
||||
"LabelVolume": "Volume",
|
||||
"LabelWeekdaysToRun": "Weekdays to run",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Your audiobook duration",
|
||||
"LabelYourBookmarks": "Your Bookmarks",
|
||||
"LabelYourPlaylists": "Your Playlists",
|
||||
|
||||
782
client/strings/he.json
Normal file
782
client/strings/he.json
Normal file
@@ -0,0 +1,782 @@
|
||||
{
|
||||
"ButtonAdd": "הוסף",
|
||||
"ButtonAddChapters": "הוסף פרקים",
|
||||
"ButtonAddDevice": "הוסף התקן",
|
||||
"ButtonAddLibrary": "הוסף ספרייה",
|
||||
"ButtonAddPodcasts": "הוסף פודקאסטים",
|
||||
"ButtonAddUser": "הוסף משתמש",
|
||||
"ButtonAddYourFirstLibrary": "הוסף את הספרייה הראשונה שלך",
|
||||
"ButtonApply": "החל",
|
||||
"ButtonApplyChapters": "החל פרקים",
|
||||
"ButtonAuthors": "יוצרים",
|
||||
"ButtonBrowseForFolder": "עיין בתיקייה",
|
||||
"ButtonCancel": "בטל",
|
||||
"ButtonCancelEncode": "בטל קידוד",
|
||||
"ButtonChangeRootPassword": "שנה סיסמת root",
|
||||
"ButtonCheckAndDownloadNewEpisodes": "בדוק והורד פרקים חדשים",
|
||||
"ButtonChooseAFolder": "בחר תיקייה",
|
||||
"ButtonChooseFiles": "בחר קבצים",
|
||||
"ButtonClearFilter": "נקה סינון",
|
||||
"ButtonCloseFeed": "סגור פיד",
|
||||
"ButtonCollections": "אוספים",
|
||||
"ButtonConfigureScanner": "הגדר סורק",
|
||||
"ButtonCreate": "צור",
|
||||
"ButtonCreateBackup": "צור גיבוי",
|
||||
"ButtonDelete": "מחק",
|
||||
"ButtonDownloadQueue": "תור הורדה",
|
||||
"ButtonEdit": "ערוך",
|
||||
"ButtonEditChapters": "ערוך פרקים",
|
||||
"ButtonEditPodcast": "ערוך פודקאסט",
|
||||
"ButtonForceReScan": "סרוק מחדש בכוח",
|
||||
"ButtonFullPath": "נתיב מלא",
|
||||
"ButtonHide": "הסתר",
|
||||
"ButtonHome": "בית",
|
||||
"ButtonIssues": "תקלות",
|
||||
"ButtonJumpBackward": "דלג אחורה",
|
||||
"ButtonJumpForward": "דלג קדימה",
|
||||
"ButtonLatest": "חדש ביותר",
|
||||
"ButtonLibrary": "ספרייה",
|
||||
"ButtonLogout": "התנתק",
|
||||
"ButtonLookup": "חפש",
|
||||
"ButtonManageTracks": "נהל רצועות",
|
||||
"ButtonMapChapterTitles": "מפה כותרות פרקים",
|
||||
"ButtonMatchAllAuthors": "התאם את כל היוצרים",
|
||||
"ButtonMatchBooks": "התאם ספרים",
|
||||
"ButtonNevermind": "לא משנה",
|
||||
"ButtonNext": "הבא",
|
||||
"ButtonNextChapter": "פרק הבא",
|
||||
"ButtonOk": "אישור",
|
||||
"ButtonOpenFeed": "פתח פיד",
|
||||
"ButtonOpenManager": "פתח מנהל",
|
||||
"ButtonPause": "השהה",
|
||||
"ButtonPlay": "נגן",
|
||||
"ButtonPlaying": "מנגן",
|
||||
"ButtonPlaylists": "רשימות השמעה",
|
||||
"ButtonPrevious": "קודם",
|
||||
"ButtonPreviousChapter": "פרק קודם",
|
||||
"ButtonPurgeAllCache": "נקה את כל המטמון",
|
||||
"ButtonPurgeItemsCache": "נקה את מטמון הפריטים",
|
||||
"ButtonPurgeMediaProgress": "נקה את ההתקדמות במדיה",
|
||||
"ButtonQueueAddItem": "הוסף לתור",
|
||||
"ButtonQueueRemoveItem": "הסר מהתור",
|
||||
"ButtonQuickMatch": "התאמה מהירה",
|
||||
"ButtonRead": "קרא",
|
||||
"ButtonRefresh": "רענן",
|
||||
"ButtonRemove": "הסר",
|
||||
"ButtonRemoveAll": "הסר הכל",
|
||||
"ButtonRemoveAllLibraryItems": "הסר את כל פריטי הספרייה",
|
||||
"ButtonRemoveFromContinueListening": "הסר מ- המשך האזנה",
|
||||
"ButtonRemoveFromContinueReading": "הסר מ- המשך קריאה",
|
||||
"ButtonRemoveSeriesFromContinueSeries": "הסר סדרה מ- המשך סדרה",
|
||||
"ButtonReScan": "סרוק מחדש",
|
||||
"ButtonReset": "איפוס",
|
||||
"ButtonResetToDefault": "איפוס לברירת המחדל",
|
||||
"ButtonRestore": "שחזר",
|
||||
"ButtonSave": "שמור",
|
||||
"ButtonSaveAndClose": "שמור וסגור",
|
||||
"ButtonSaveTracklist": "שמור רשימת רצועות",
|
||||
"ButtonScan": "סרוק",
|
||||
"ButtonScanLibrary": "סרוק ספרייה",
|
||||
"ButtonSearch": "חפש",
|
||||
"ButtonSelectFolderPath": "בחר נתיב לתיקייה",
|
||||
"ButtonSeries": "סדרה",
|
||||
"ButtonSetChaptersFromTracks": "קבע פרקים לפי הרצועות",
|
||||
"ButtonShare": "שיתוף",
|
||||
"ButtonShiftTimes": "הזז זמנים",
|
||||
"ButtonShow": "הצג",
|
||||
"ButtonStartM4BEncode": "התחל קידוד M4B",
|
||||
"ButtonStartMetadataEmbed": "התחל הטמעת מטא-נתונים",
|
||||
"ButtonSubmit": "שלח",
|
||||
"ButtonTest": "בדיקה",
|
||||
"ButtonUpload": "העלה",
|
||||
"ButtonUploadBackup": "העלה גיבוי",
|
||||
"ButtonUploadCover": "העלה כריכה",
|
||||
"ButtonUploadOPMLFile": "העלה קובץ OPML",
|
||||
"ButtonUserDelete": "מחק משתמש {0}",
|
||||
"ButtonUserEdit": "ערוך משתמש {0}",
|
||||
"ButtonViewAll": "הצג הכול",
|
||||
"ButtonYes": "כן",
|
||||
"ErrorUploadFetchMetadataAPI": "שגיאה בשליפת מטא-נתונים",
|
||||
"ErrorUploadFetchMetadataNoResults": "לא ניתן לשלוף מטא-נתונים - נסה לעדכן כותרת ו/או יוצר",
|
||||
"ErrorUploadLacksTitle": "חובה לתת כותרת",
|
||||
"HeaderAccount": "חשבון",
|
||||
"HeaderAdvanced": "מתקדם",
|
||||
"HeaderAppriseNotificationSettings": "הגדרות התראות של Apprise",
|
||||
"HeaderAudiobookTools": "כלים לניהול קבצי ספרים קוליים",
|
||||
"HeaderAudioTracks": "רצועות קול",
|
||||
"HeaderAuthentication": "אימות",
|
||||
"HeaderBackups": "גיבויים",
|
||||
"HeaderChangePassword": "שנה סיסמה",
|
||||
"HeaderChapters": "פרקים",
|
||||
"HeaderChooseAFolder": "בחר תיקייה",
|
||||
"HeaderCollection": "אוסף",
|
||||
"HeaderCollectionItems": "פריטי אוסף",
|
||||
"HeaderCover": "כריכה",
|
||||
"HeaderCurrentDownloads": "הורדות נוכחיות",
|
||||
"HeaderCustomMetadataProviders": "ספקי מטא-נתונים מותאמים אישית",
|
||||
"HeaderDetails": "פרטים",
|
||||
"HeaderDownloadQueue": "תור הורדה",
|
||||
"HeaderEbookFiles": "קבצי ספר אלקטרוני",
|
||||
"HeaderEmail": "אימייל",
|
||||
"HeaderEmailSettings": "הגדרות אימייל",
|
||||
"HeaderEpisodes": "פרקים",
|
||||
"HeaderEreaderDevices": "התקני קריאה דיגיטליים",
|
||||
"HeaderEreaderSettings": "הגדרות התקני קריאה דיגיטליים",
|
||||
"HeaderFiles": "קבצים",
|
||||
"HeaderFindChapters": "מצא פרקים",
|
||||
"HeaderIgnoredFiles": "קבצים שנתעלמו",
|
||||
"HeaderItemFiles": "קבצי פריט",
|
||||
"HeaderItemMetadataUtils": "כלי מטא-נתונים",
|
||||
"HeaderLastListeningSession": "הפעלת האזנה אחרונה",
|
||||
"HeaderLatestEpisodes": "הפרקים העדכניים ביותר",
|
||||
"HeaderLibraries": "ספריות",
|
||||
"HeaderLibraryFiles": "קבצי ספרייה",
|
||||
"HeaderLibraryStats": "סטטיסטיקות ספרייה",
|
||||
"HeaderListeningSessions": "הפעלות האזנה",
|
||||
"HeaderListeningStats": "סטטיסטיקות האזנה",
|
||||
"HeaderLogin": "התחברות",
|
||||
"HeaderLogs": "לוגים",
|
||||
"HeaderManageGenres": "נהל ז'אנרים",
|
||||
"HeaderManageTags": "נהל תגיות",
|
||||
"HeaderMapDetails": "מפה פרטים",
|
||||
"HeaderMatch": "התאם",
|
||||
"HeaderMetadataOrderOfPrecedence": "סדר העדפת מטא-נתונים",
|
||||
"HeaderMetadataToEmbed": "מטא-נתונים להטמעה",
|
||||
"HeaderNewAccount": "חשבון חדש",
|
||||
"HeaderNewLibrary": "ספרייה חדשה",
|
||||
"HeaderNotifications": "התראות",
|
||||
"HeaderOpenIDConnectAuthentication": "אימות OpenID Connect",
|
||||
"HeaderOpenRSSFeed": "פתח ערוץ RSS",
|
||||
"HeaderOtherFiles": "קבצים אחרים",
|
||||
"HeaderPasswordAuthentication": "אימות סיסמה",
|
||||
"HeaderPermissions": "הרשאות",
|
||||
"HeaderPlayerQueue": "תור ניגון",
|
||||
"HeaderPlaylist": "רשימת השמעה",
|
||||
"HeaderPlaylistItems": "פריטי רשימת השמעה",
|
||||
"HeaderPodcastsToAdd": "פודקאסטים להוספה",
|
||||
"HeaderPreviewCover": "תצוגה מקדימה של כריכה",
|
||||
"HeaderRemoveEpisode": "הסר פרק",
|
||||
"HeaderRemoveEpisodes": "הסר {0} פרקים",
|
||||
"HeaderRSSFeedGeneral": "פרטי ערוץ RSS",
|
||||
"HeaderRSSFeedIsOpen": "ערוץ RSS פתוח",
|
||||
"HeaderRSSFeeds": "ערוצי RSS",
|
||||
"HeaderSavedMediaProgress": "התקדמות מדיה שמורה",
|
||||
"HeaderSchedule": "תיזמון",
|
||||
"HeaderScheduleLibraryScans": "קבע סריקות ספרייה אוטומטיות",
|
||||
"HeaderSession": "הפעלה",
|
||||
"HeaderSetBackupSchedule": "קבע לוח זמנים לגיבוי",
|
||||
"HeaderSettings": "הגדרות",
|
||||
"HeaderSettingsDisplay": "תצוגה",
|
||||
"HeaderSettingsExperimental": "תכונות ניסיוניות",
|
||||
"HeaderSettingsGeneral": "כללי",
|
||||
"HeaderSettingsScanner": "סורק",
|
||||
"HeaderSleepTimer": "טיימר שינה",
|
||||
"HeaderStatsLargestItems": "הפריטים הגדולים ביותר",
|
||||
"HeaderStatsLongestItems": "הפריטים הארוכים ביותר (בשעות)",
|
||||
"HeaderStatsMinutesListeningChart": "דקות האזנה (בימים האחרונים)",
|
||||
"HeaderStatsRecentSessions": "הפעלות אחרונות",
|
||||
"HeaderStatsTop10Authors": "10 היוצרים המובילים",
|
||||
"HeaderStatsTop5Genres": "הז'אנרים המובילים 5",
|
||||
"HeaderTableOfContents": "תוכן העניינים",
|
||||
"HeaderTools": "כלים",
|
||||
"HeaderUpdateAccount": "עדכן חשבון",
|
||||
"HeaderUpdateAuthor": "עדכן יוצר",
|
||||
"HeaderUpdateDetails": "עדכן פרטים",
|
||||
"HeaderUpdateLibrary": "עדכן ספרייה",
|
||||
"HeaderUsers": "משתמשים",
|
||||
"HeaderYearReview": "שנת {0} בסקירה",
|
||||
"HeaderYourStats": "הסטטיסטיקות שלך",
|
||||
"LabelAbridged": "מקוצר",
|
||||
"LabelAccountType": "סוג חשבון",
|
||||
"LabelAccountTypeAdmin": "מנהל",
|
||||
"LabelAccountTypeGuest": "אורח",
|
||||
"LabelAccountTypeUser": "משתמש",
|
||||
"LabelActivity": "פעילות",
|
||||
"LabelAdded": "נוסף",
|
||||
"LabelAddedAt": "נוסף בתאריך",
|
||||
"LabelAddToCollection": "הוסף לאוסף",
|
||||
"LabelAddToCollectionBatch": "הוסף {0} ספרים לאוסף",
|
||||
"LabelAddToPlaylist": "הוסף לרשימת השמעה",
|
||||
"LabelAddToPlaylistBatch": "הוסף {0} פריטים לרשימת השמעה",
|
||||
"LabelAdminUsersOnly": "רק מנהלים",
|
||||
"LabelAll": "הכל",
|
||||
"LabelAllUsers": "כל המשתמשים",
|
||||
"LabelAllUsersExcludingGuests": "כל המשתמשים, ללא אורחים",
|
||||
"LabelAllUsersIncludingGuests": "כל המשתמשים כולל אורחים",
|
||||
"LabelAlreadyInYourLibrary": "כבר קיים בספרייה שלך",
|
||||
"LabelAppend": "הוסף לסוף",
|
||||
"LabelAuthor": "יוצר",
|
||||
"LabelAuthorFirstLast": "יוצר (שם פרטי שם משפחה)",
|
||||
"LabelAuthorLastFirst": "יוצר (שם משפחה, שם פרטי)",
|
||||
"LabelAuthors": "יוצרים",
|
||||
"LabelAutoDownloadEpisodes": "הורד פרקים באופן אוטומטי",
|
||||
"LabelAutoFetchMetadata": "חפש והורד מטא-נתונים באופן אוטומטי",
|
||||
"LabelAutoFetchMetadataHelp": "מחפש ומוריד מטא-נתונים לשדות כותרת, יוצר וסדרה כדי לשפר את תהליך ההעלאה. ייתכן שיהיה צורך להתאים מטא-נתונים נוסף לאחר ההעלאה.",
|
||||
"LabelAutoLaunch": "הפעלה אוטומטית",
|
||||
"LabelAutoLaunchDescription": "הפניה אוטומטית לספק האימות כאשר מגיעים לדף ההתחברות (ניתן להפעיל ידנית בכתובת <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "הרשמה אוטומטית",
|
||||
"LabelAutoRegisterDescription": "יצירת משתמשים חדשים אוטומטית לאחר התחברות",
|
||||
"LabelBackToUser": "חזרה למשתמש",
|
||||
"LabelBackupLocation": "מיקום גיבוי",
|
||||
"LabelBackupsEnableAutomaticBackups": "הפעל גיבויים אוטומטיים",
|
||||
"LabelBackupsEnableAutomaticBackupsHelp": "גיבויים שמורים ב /metadata/backups",
|
||||
"LabelBackupsMaxBackupSize": "גודל הגיבוי המרבי (בג'יגה-בייט)",
|
||||
"LabelBackupsMaxBackupSizeHelp": "כהגנה על עצמך מפני תצורה שגויה, הגיבויים ייכשלו אם הם יעברו את הגודל שהוגדר.",
|
||||
"LabelBackupsNumberToKeep": "מספר הגיבויים לשמירה",
|
||||
"LabelBackupsNumberToKeepHelp": "רק גיבוי אחד יוסר בכל פעם, לכן אם יש לך כבר יותר מגיבוי אחד יש להסיר אותם באופן ידני.",
|
||||
"LabelBitrate": "קצב סיביות",
|
||||
"LabelBooks": "ספרים",
|
||||
"LabelButtonText": "טקסט לחצן",
|
||||
"LabelChangePassword": "שינוי סיסמה",
|
||||
"LabelChannels": "ערוצים",
|
||||
"LabelChapters": "פרקים",
|
||||
"LabelChaptersFound": "פרקים שנמצאו",
|
||||
"LabelChapterTitle": "כותרת הפרק",
|
||||
"LabelClickForMoreInfo": "לחץ למידע נוסף",
|
||||
"LabelClosePlayer": "סגור נגן",
|
||||
"LabelCodec": "Codec",
|
||||
"LabelCollapseSeries": "צמצום סדרה",
|
||||
"LabelCollection": "אוסף",
|
||||
"LabelCollections": "אוספים",
|
||||
"LabelComplete": "מלא",
|
||||
"LabelConfirmPassword": "אישור סיסמה",
|
||||
"LabelContinueListening": "המשך האזנה",
|
||||
"LabelContinueReading": "המשך קריאה",
|
||||
"LabelContinueSeries": "המשך סדרה",
|
||||
"LabelCover": "כריכה",
|
||||
"LabelCoverImageURL": "כתובת התמונה ברשת",
|
||||
"LabelCreatedAt": "נוצר בתאריך",
|
||||
"LabelCronExpression": "Cron Expression",
|
||||
"LabelCurrent": "נוכחי",
|
||||
"LabelCurrently": "כעת:",
|
||||
"LabelCustomCronExpression": "Custom Cron Expression:",
|
||||
"LabelDatetime": "Datetime",
|
||||
"LabelDeleteFromFileSystemCheckbox": "מחיקה מהמערכת הקבצים (הסר סימון למחיקה רק ממסד הנתונים)",
|
||||
"LabelDescription": "תיאור",
|
||||
"LabelDeselectAll": "הסר בחירת כל הפריטים",
|
||||
"LabelDevice": "התקן",
|
||||
"LabelDeviceInfo": "מידע על התקן",
|
||||
"LabelDeviceIsAvailableTo": "התקן זמין ל...",
|
||||
"LabelDirectory": "תיקייה",
|
||||
"LabelDiscFromFilename": "דיסק משם הקובץ",
|
||||
"LabelDiscFromMetadata": "דיסק מהמטא-נתונים",
|
||||
"LabelDiscover": "גלה",
|
||||
"LabelDownload": "הורד",
|
||||
"LabelDownloadNEpisodes": "הורד {0} פרקים",
|
||||
"LabelDuration": "משך",
|
||||
"LabelDurationFound": "משך נמצא:",
|
||||
"LabelEbook": "ספר אלקטרוני",
|
||||
"LabelEbooks": "ספרים אלקטרוניים",
|
||||
"LabelEdit": "עריכה",
|
||||
"LabelEmail": "דואר אלקטרוני",
|
||||
"LabelEmailSettingsFromAddress": "מאת",
|
||||
"LabelEmailSettingsSecure": "מאובטח",
|
||||
"LabelEmailSettingsSecureHelp": "אם מופעל, החיבור ישתמש ב-TLS בעת ההתחברות לשרת. אם לא, אז TLS יהיה בשימוש אם השרת תומך בהרחבת STARTTLS. ברוב המקרים מומלץ להפעיל את הגדרה זו אם אתה מתחבר לפורט 465. לפורט 587 או 25, השאר כבוי. (from nodemailer.com/smtp/#authentication)",
|
||||
"LabelEmailSettingsTestAddress": "כתובת לבדיקה",
|
||||
"LabelEmbeddedCover": "כריכה מוטמעת",
|
||||
"LabelEnable": "הפעל",
|
||||
"LabelEnd": "סיום",
|
||||
"LabelEpisode": "פרק",
|
||||
"LabelEpisodeTitle": "כותרת הפרק",
|
||||
"LabelEpisodeType": "סוג הפרק",
|
||||
"LabelExample": "דוגמה",
|
||||
"LabelExplicit": "בוטה",
|
||||
"LabelFeedURL": "כתובת ערוץ",
|
||||
"LabelFetchingMetadata": "מושך מטא-נתונים",
|
||||
"LabelFile": "קובץ",
|
||||
"LabelFileBirthtime": "זמן יצירת הקובץ",
|
||||
"LabelFileModified": "הקובץ שונה",
|
||||
"LabelFilename": "שם הקובץ",
|
||||
"LabelFilterByUser": "סינון לפי משתמש",
|
||||
"LabelFindEpisodes": "מצא פרקים",
|
||||
"LabelFinished": "הושלם",
|
||||
"LabelFolder": "תיקייה",
|
||||
"LabelFolders": "תיקיות",
|
||||
"LabelFontBold": "מודגש",
|
||||
"LabelFontFamily": "משפחת הפונטים",
|
||||
"LabelFontItalic": "נטוי",
|
||||
"LabelFontScale": "קנה מידה של הפונט",
|
||||
"LabelFontStrikethrough": "קו חוצה",
|
||||
"LabelFormat": "תבנית",
|
||||
"LabelGenre": "ז'אנר",
|
||||
"LabelGenres": "ז'אנרים",
|
||||
"LabelHardDeleteFile": "מחיקה חזקה של הקובץ",
|
||||
"LabelHasEbook": "ספר אלקטרוני קיים",
|
||||
"LabelHasSupplementaryEbook": "קיים ספר אלקטרוני נלווה",
|
||||
"LabelHighestPriority": "העדיפות הגבוהה ביותר",
|
||||
"LabelHost": "מארח",
|
||||
"LabelHour": "שעה",
|
||||
"LabelIcon": "סמל",
|
||||
"LabelImageURLFromTheWeb": "כתובת התמונה מהרשת",
|
||||
"LabelIncludeInTracklist": "כלול ברשימת השמעה",
|
||||
"LabelIncomplete": "לא הושלם",
|
||||
"LabelInProgress": "בתהליך",
|
||||
"LabelInterval": "מרווח",
|
||||
"LabelIntervalCustomDailyWeekly": "מותאם אישית יומי/שבועי",
|
||||
"LabelIntervalEvery12Hours": "כל 12 שעות",
|
||||
"LabelIntervalEvery15Minutes": "כל 15 דקות",
|
||||
"LabelIntervalEvery2Hours": "כל שעתיים",
|
||||
"LabelIntervalEvery30Minutes": "כל 30 דקות",
|
||||
"LabelIntervalEvery6Hours": "כל 6 שעות",
|
||||
"LabelIntervalEveryDay": "כל יום",
|
||||
"LabelIntervalEveryHour": "כל שעה",
|
||||
"LabelInvert": "הפוך",
|
||||
"LabelItem": "פריט",
|
||||
"LabelLanguage": "שפה",
|
||||
"LabelLanguageDefaultServer": "שפת ברירת המחדל של השרת",
|
||||
"LabelLastBookAdded": "הספר האחרון שנוסף",
|
||||
"LabelLastBookUpdated": "הספר האחרון שעודכן",
|
||||
"LabelLastSeen": "נראה לאחרונה",
|
||||
"LabelLastTime": "הזמן האחרון",
|
||||
"LabelLastUpdate": "עדכון אחרון",
|
||||
"LabelLayout": "פריסה",
|
||||
"LabelLayoutSinglePage": "דף בודד",
|
||||
"LabelLayoutSplitPage": "פיצול הדף",
|
||||
"LabelLess": "פחות",
|
||||
"LabelLibrariesAccessibleToUser": "ספריות נגישות למשתמש",
|
||||
"LabelLibrary": "ספרייה",
|
||||
"LabelLibraryItem": "פריט ספרייה",
|
||||
"LabelLibraryName": "שם הספרייה",
|
||||
"LabelLimit": "מגבלה",
|
||||
"LabelLineSpacing": "ריווח שורות",
|
||||
"LabelListenAgain": "האזן שוב",
|
||||
"LabelLogLevelDebug": "דיבוג",
|
||||
"LabelLogLevelInfo": "מידע",
|
||||
"LabelLogLevelWarn": "אזהרה",
|
||||
"LabelLookForNewEpisodesAfterDate": "חפש פרקים חדשים לאחר תאריך זה",
|
||||
"LabelLowestPriority": "העדיפות הנמוכה ביותר",
|
||||
"LabelMatchExistingUsersBy": "התאם משתמשים קיימים לפי",
|
||||
"LabelMatchExistingUsersByDescription": "משמש לחיבור משתמשים קיימים. לאחר החיבור, המשתמשים יותאמו לפי זיהוי ייחודי מספק ה-SSO שלך",
|
||||
"LabelMediaPlayer": "נגן מדיה",
|
||||
"LabelMediaType": "סוג מדיה",
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "מקורות המטא-נתונים עם עדיפות גבוהה יחליפו מקורות עם עדיפות נמוכה יותר",
|
||||
"LabelMetadataProvider": "ספק מטא-נתונים",
|
||||
"LabelMetaTag": "תג מטא",
|
||||
"LabelMetaTags": "תגי מטא",
|
||||
"LabelMinute": "דקה",
|
||||
"LabelMissing": "חסר",
|
||||
"LabelMissingEbook": "אין ספר אלקטרוני",
|
||||
"LabelMissingSupplementaryEbook": "אין ספר אלקטרוני נלווה",
|
||||
"LabelMobileRedirectURIs": "כתובות משדר ניידות מורשות",
|
||||
"LabelMobileRedirectURIsDescription": "זהו רשימה לבניה של כתובות ה-URI הנתמכות להפניות עבור אפליקציות ניידות. הברירת מחדל היא <code>audiobookshelf://oauth</code>, שניתן להסיר או להוסיף לה כתובות נוספות לאינטגרציה עם אפליקציות צד שלישי. שימוש בכוכבית (<code>*</code>) כקלט בודד מאפשר כל URI.",
|
||||
"LabelMore": "עוד",
|
||||
"LabelMoreInfo": "מידע נוסף",
|
||||
"LabelName": "שם",
|
||||
"LabelNarrator": "מספר",
|
||||
"LabelNarrators": "מספרים",
|
||||
"LabelNew": "חדש",
|
||||
"LabelNewestAuthors": "הסופרים החדשים ביותר",
|
||||
"LabelNewestEpisodes": "הפרקים החדשים ביותר",
|
||||
"LabelNewPassword": "סיסמה חדשה",
|
||||
"LabelNextBackupDate": "תאריך הגיבוי הבא",
|
||||
"LabelNextScheduledRun": "הרצה מתוזמנת הבאה",
|
||||
"LabelNoEpisodesSelected": "לא נבחרו פרקים",
|
||||
"LabelNotes": "הערות",
|
||||
"LabelNotFinished": "לא הושלם",
|
||||
"LabelNotificationAppriseURL": "כתובות Apprise",
|
||||
"LabelNotificationAvailableVariables": "משתנים זמינים",
|
||||
"LabelNotificationBodyTemplate": "תבנית גוף",
|
||||
"LabelNotificationEvent": "אירוע התראה",
|
||||
"LabelNotificationsMaxFailedAttempts": "מספר הניסיונות הנכשלים המרבי",
|
||||
"LabelNotificationsMaxFailedAttemptsHelp": "ההתראות מושבתות לאחר שהן נכשלות לשלוח מספר פעמים זה",
|
||||
"LabelNotificationsMaxQueueSize": "גודל התור המרבי לאירועי התראה",
|
||||
"LabelNotificationsMaxQueueSizeHelp": "האירועים מוגבלים לשליחה אחת לשנייה. האירועים יתעלמו אם התור מלא. הגדרה זו נועדה למנוע ספאם התראות.",
|
||||
"LabelNotificationTitleTemplate": "תבנית כותרת",
|
||||
"LabelNotStarted": "לא התחיל",
|
||||
"LabelNumberOfBooks": "מספר הספרים",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "פתח ערוץ RSS",
|
||||
"LabelOverwrite": "לשכפל",
|
||||
"LabelPassword": "סיסמה",
|
||||
"LabelPath": "נתיב",
|
||||
"LabelPermissionsAccessAllLibraries": "ניתן לגשת לכל הספריות",
|
||||
"LabelPermissionsAccessAllTags": "ניתן לגשת לכל התגיות",
|
||||
"LabelPermissionsAccessExplicitContent": "ניתן לגשת לתוכן בוטה",
|
||||
"LabelPermissionsDelete": "מותר למחוק",
|
||||
"LabelPermissionsDownload": "מותר להוריד",
|
||||
"LabelPermissionsUpdate": "מותר לעדכן",
|
||||
"LabelPermissionsUpload": "מותר להעלות",
|
||||
"LabelPersonalYearReview": "השנה שלך בסקירה ({0})",
|
||||
"LabelPhotoPathURL": "נתיב/URL לתמונה",
|
||||
"LabelPlaylists": "רשימות השמעה",
|
||||
"LabelPlayMethod": "שיטת הפעלה",
|
||||
"LabelPodcast": "פודקאסט",
|
||||
"LabelPodcasts": "פודקאסטים",
|
||||
"LabelPodcastSearchRegion": "אזור חיפוש פודקאסט",
|
||||
"LabelPodcastType": "סוג פודקאסט",
|
||||
"LabelPort": "פורט",
|
||||
"LabelPrefixesToIgnore": "קידומות להתעלמות (מתעלם מאותיות גדולות/קטנות)",
|
||||
"LabelPreventIndexing": "מנע רישום של הערוץ שלך על ידי ספריות אייטונס וגוגל פודקאסט",
|
||||
"LabelPrimaryEbook": "ספר אלקטרוני ראשי",
|
||||
"LabelProgress": "התקדמות",
|
||||
"LabelProvider": "ספק",
|
||||
"LabelPubDate": "תאריך פרסום",
|
||||
"LabelPublisher": "מוציא לאור",
|
||||
"LabelPublishYear": "שנת הפרסום",
|
||||
"LabelRead": "קריאה",
|
||||
"LabelReadAgain": "קרא שוב",
|
||||
"LabelReadEbookWithoutProgress": "קרא/י ספר אלקטרוני ללא שמירת התקדמות",
|
||||
"LabelRecentlyAdded": "נוסף לאחרונה",
|
||||
"LabelRecentSeries": "סדרות אחרונות",
|
||||
"LabelRecommended": "מומלץ",
|
||||
"LabelRedo": "עשה שוב",
|
||||
"LabelRegion": "אזור",
|
||||
"LabelReleaseDate": "תאריך הוצאה לאור",
|
||||
"LabelRemoveCover": "הסר כריכה",
|
||||
"LabelRowsPerPage": "שורות לעמוד",
|
||||
"LabelRSSFeedCustomOwnerEmail": "אימייל בעלים מותאם אישית",
|
||||
"LabelRSSFeedCustomOwnerName": "שם בעלים מותאם אישית",
|
||||
"LabelRSSFeedOpen": "פתח ערוץ RSS",
|
||||
"LabelRSSFeedPreventIndexing": "מנע רישום",
|
||||
"LabelRSSFeedSlug": "Slug של ערוץ ה-RSS",
|
||||
"LabelRSSFeedURL": "כתובת ערוץ ה-RSS",
|
||||
"LabelSearchTerm": "מונח חיפוש",
|
||||
"LabelSearchTitle": "כותרת חיפוש",
|
||||
"LabelSearchTitleOrASIN": "כותרת חיפוש או ASIN",
|
||||
"LabelSeason": "עונה",
|
||||
"LabelSelectAllEpisodes": "בחר את כל הפרקים",
|
||||
"LabelSelectEpisodesShowing": "בחר {0} פרקים המוצגים",
|
||||
"LabelSelectUsers": "בחר משתמשים",
|
||||
"LabelSendEbookToDevice": "שלח ספר אלקטרוני ל...",
|
||||
"LabelSequence": "רצף",
|
||||
"LabelSeries": "סדרה",
|
||||
"LabelSeriesName": "שם הסדרה",
|
||||
"LabelSeriesProgress": "התקדמות בסדרה",
|
||||
"LabelServerYearReview": "השנה בסקירה של השרת ({0})",
|
||||
"LabelSetEbookAsPrimary": "קבע כראשי",
|
||||
"LabelSetEbookAsSupplementary": "קבע כספר אלקטרוני נלווה",
|
||||
"LabelSettingsAudiobooksOnly": "רק ספרי קול",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "הפעלת ההגדרה הזו תתעלם מקבצי ספרים אלקטרוניים אלא אם כן הם נמצאים בתיקיית ספרי קול, שבמקרה זה יקבעו כספרים אלקטרוניים נלווים",
|
||||
"LabelSettingsBookshelfViewHelp": "עיצוב סקאומורפי עם מדפי עץ",
|
||||
"LabelSettingsChromecastSupport": "תמיכה ב-Chromecast",
|
||||
"LabelSettingsDateFormat": "פורמט תאריך",
|
||||
"LabelSettingsDisableWatcher": "השבת עוקב",
|
||||
"LabelSettingsDisableWatcherForLibrary": "השבת עוקב תיקייה עבור ספרייה",
|
||||
"LabelSettingsDisableWatcherHelp": "מבטל את הוספת/עדכון אוטומטי של פריטים כאשר שינויי קבצים זוהים. *דורש איתחול שרת",
|
||||
"LabelSettingsEnableWatcher": "הפעל עוקב",
|
||||
"LabelSettingsEnableWatcherForLibrary": "הפעל עוקב תיקייה עבור ספרייה",
|
||||
"LabelSettingsEnableWatcherHelp": "מאפשר הוספת/עדכון אוטומטי של פריטים כאשר שינויי קבצים זוהים. *דורש איתחול שרת",
|
||||
"LabelSettingsExperimentalFeatures": "תכונות ניסיוניות",
|
||||
"LabelSettingsExperimentalFeaturesHelp": "תכונות בפיתוח שדורשות משובך ובדיקה. לחץ לפתיחת דיון ב-GitHub.",
|
||||
"LabelSettingsFindCovers": "מצא כריכות",
|
||||
"LabelSettingsFindCoversHelp": "אם לספר הקולי שלך אין כריכה מוטמעת או תמונת כריכה בתיקייה, הסורק ינסה למצוא תמונת כריכה.<br>שים לב: זה יאריך את זמן הסריקה",
|
||||
"LabelSettingsHideSingleBookSeries": "הסתר סדרות עם ספר אחד",
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "סדרות הכוללות ספר אחד יוסתרו מדף הסדרות ומדף הבית.",
|
||||
"LabelSettingsHomePageBookshelfView": "השתמש בתצוגת מדף בדף הבית",
|
||||
"LabelSettingsLibraryBookshelfView": "השתמש בתצוגת מדף בספרייה",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "דלג על ספרים קודמים ב-המשך סדרה",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "מדף המשך סדרות מציג את הספר הראשון שלא הושמע בסדרה שיש בה לפחות ספר אחד שהושלם ואין ספרים שכבר באמצע שמיעה. הפעלת הגדרה זו תמשיך סדרות מהספר שהושלם הכי מתקדם בסדרה במקום מהספר הראשון שלא הושמע.",
|
||||
"LabelSettingsParseSubtitles": "פענח כתוביות",
|
||||
"LabelSettingsParseSubtitlesHelp": "העתק כותרת משנה משם תיקיית הספר.<br>כותרת המשנה חייבת להיות מופרדת עם התו ״-״<br>לדוגמא, כותרת המשנה לספר ״שם הספר - כותרת משנה״, היא ״כותרת משנה״",
|
||||
"LabelSettingsPreferMatchedMetadata": "העדף מטה-נתונים מותאמים",
|
||||
"LabelSettingsPreferMatchedMetadataHelp": "נתונים מותאמים יועדפו על פני פרטים שכבר מוטמעים בפריט כאשר התאמה מהירה בשימוש. כברירת מחדל, התאמה מהירה תמלא פרטים חסרים בלבד.",
|
||||
"LabelSettingsSkipMatchingBooksWithASIN": "דלג על ספרים שכבר יש להם ASIN",
|
||||
"LabelSettingsSkipMatchingBooksWithISBN": "דלג על ספרים שכבר יש להם ISBN",
|
||||
"LabelSettingsSortingIgnorePrefixes": "התעלם מקידומות במיון",
|
||||
"LabelSettingsSortingIgnorePrefixesHelp": "לדוגמא, לקידומת ״ה״ שם הספר, שם הספר ימוין בתור ״שם הספר״, ״ה״",
|
||||
"LabelSettingsSquareBookCovers": "השתמש בכריכות מרובעות לספרים",
|
||||
"LabelSettingsSquareBookCoversHelp": "השתמש בכריכות מרובעות על פני בכריכות סטנדרטיות ביחס 1.6:1",
|
||||
"LabelSettingsStoreCoversWithItem": "אחסן תמונת כריכה עם הפריט",
|
||||
"LabelSettingsStoreCoversWithItemHelp": "כברירת מחדל, צילומי כריכות נשמרים בתיקיית /metadata/items, לאחר הפעלת הגדרה זו צילומי כריכות יישמרו בתיקיית הספר, רק קובץ אחד בשם ״cover״ יישמר",
|
||||
"LabelSettingsStoreMetadataWithItem": "אחסן מטה-נתונים עם הפריט",
|
||||
"LabelSettingsStoreMetadataWithItemHelp": "כברירת מחדל, קבצי מטה-נתונים מאוחסנים ב- /metadata/items, הפעלת ההגדרה תאחסן קבצי מטה-נתונים בתיקיית פריט שלך בספרייה",
|
||||
"LabelSettingsTimeFormat": "פורמט זמן",
|
||||
"LabelShowAll": "הצג הכל",
|
||||
"LabelSize": "גודל",
|
||||
"LabelSleepTimer": "טיימר שינה",
|
||||
"LabelSlug": "Slug",
|
||||
"LabelStart": "התחלה",
|
||||
"LabelStarted": "התחיל",
|
||||
"LabelStartedAt": "התחיל ב",
|
||||
"LabelStartTime": "זמן התחלה",
|
||||
"LabelStatsAudioTracks": "רצועות שמע",
|
||||
"LabelStatsAuthors": "מחברים",
|
||||
"LabelStatsBestDay": "היום הטוב ביותר",
|
||||
"LabelStatsDailyAverage": "ממוצע יומי",
|
||||
"LabelStatsDays": "ימים",
|
||||
"LabelStatsDaysListened": "מספר ימים בהם נשמע ספר",
|
||||
"LabelStatsHours": "שעות",
|
||||
"LabelStatsInARow": "ברצף",
|
||||
"LabelStatsItemsFinished": "פריטים שסיימת",
|
||||
"LabelStatsItemsInLibrary": "פריטים בספרייה",
|
||||
"LabelStatsMinutes": "דקות",
|
||||
"LabelStatsMinutesListening": "דקות האזנה",
|
||||
"LabelStatsOverallDays": "ימים כולל",
|
||||
"LabelStatsOverallHours": "שעות כולל",
|
||||
"LabelStatsWeekListening": "האזנה שבועית",
|
||||
"LabelSubtitle": "כותרת משנה",
|
||||
"LabelSupportedFileTypes": "סוגי קבצים נתמכים",
|
||||
"LabelTag": "תג",
|
||||
"LabelTags": "תגיות",
|
||||
"LabelTagsAccessibleToUser": "תגיות נגישות למשתמש",
|
||||
"LabelTagsNotAccessibleToUser": "תגיות לא נגישות למשתמש",
|
||||
"LabelTasks": "משימות פעילות",
|
||||
"LabelTextEditorBulletedList": "רשימת נקודות",
|
||||
"LabelTextEditorLink": "קישור",
|
||||
"LabelTextEditorNumberedList": "רשימה ממוספרת",
|
||||
"LabelTextEditorUnlink": "ביטול קישור",
|
||||
"LabelTheme": "ערכת נושא",
|
||||
"LabelThemeDark": "כהה",
|
||||
"LabelThemeLight": "בהיר",
|
||||
"LabelTimeBase": "בסיס זמן",
|
||||
"LabelTimeListened": "זמן האזנה",
|
||||
"LabelTimeListenedToday": "זמן האזנה היום",
|
||||
"LabelTimeRemaining": "{0} נותרו",
|
||||
"LabelTimeToShift": "זמן להיסט בשניות",
|
||||
"LabelTitle": "כותרת",
|
||||
"LabelToolsEmbedMetadata": "הטמעת מטה-נתונים",
|
||||
"LabelToolsEmbedMetadataDescription": "הטמעת מטה-נתונים לקבצי שמע כולל תמונות כריכה ופרקים.",
|
||||
"LabelToolsMakeM4b": "יצירת קובץ אודיו M4B",
|
||||
"LabelToolsMakeM4bDescription": "יצירת קובץ אודיו .M4B עם מטה-נתונים מוטמעים, תמונת שער ופרקים.",
|
||||
"LabelToolsSplitM4b": "פיצול M4B ל-MP3",
|
||||
"LabelToolsSplitM4bDescription": "יצירת קבצי MP3 מ-M4B מפוצל לפי פרקים עם מטה-נתונים מוטמעים, תמונת שער ופרקים.",
|
||||
"LabelTotalDuration": "משך כולל",
|
||||
"LabelTotalTimeListened": "סך הזמן שהקשבת",
|
||||
"LabelTrackFromFilename": "רצועות משמות קבצים",
|
||||
"LabelTrackFromMetadata": "רצועות ממטה-נתונים",
|
||||
"LabelTracks": "רצועות",
|
||||
"LabelTracksMultiTrack": "רב-ערוצי",
|
||||
"LabelTracksNone": "אין ערוצים",
|
||||
"LabelTracksSingleTrack": "רצועה יחידה",
|
||||
"LabelType": "סוג",
|
||||
"LabelUnabridged": "לא מקוצר",
|
||||
"LabelUndo": "בטל",
|
||||
"LabelUnknown": "לא ידוע",
|
||||
"LabelUpdateCover": "עדכן כריכה",
|
||||
"LabelUpdateCoverHelp": "אפשר החלפה של כריכות קיימות עבור הספרים הנבחרים כאשר נמצאה התאמה",
|
||||
"LabelUpdatedAt": "עודכן ב-",
|
||||
"LabelUpdateDetails": "עדכון פרטים",
|
||||
"LabelUpdateDetailsHelp": "אפשר החלפה של פרטים קיימים עבור הספרים הנבחרים כאשר נמצאה התאמה",
|
||||
"LabelUploaderDragAndDrop": "גרור ושחרר קבצים או תיקיות",
|
||||
"LabelUploaderDropFiles": "שחרר קבצים",
|
||||
"LabelUploaderItemFetchMetadataHelp": "משיכת כותרת, סופר וסדרה באופן אוטומטי",
|
||||
"LabelUseChapterTrack": "השתמש ברצועות הפרקים",
|
||||
"LabelUseFullTrack": "השתמש ברצועה המלאה",
|
||||
"LabelUser": "משתמש",
|
||||
"LabelUsername": "שם משתמש",
|
||||
"LabelValue": "ערך",
|
||||
"LabelVersion": "גרסה",
|
||||
"LabelViewBookmarks": "הצג סימניות",
|
||||
"LabelViewChapters": "הצג פרקים",
|
||||
"LabelViewQueue": "הצג תור נגן",
|
||||
"LabelVolume": "עוצמת קול",
|
||||
"LabelWeekdaysToRun": "ימי השבוע להרצה",
|
||||
"LabelYearReviewHide": "הסתר שנת סקירה",
|
||||
"LabelYearReviewShow": "הצג שנת סקירה",
|
||||
"LabelYourAudiobookDuration": "משך הספר הקולי שלך",
|
||||
"LabelYourBookmarks": "הסימניות שלך",
|
||||
"LabelYourPlaylists": "הפלייליסטים שלך",
|
||||
"LabelYourProgress": "ההתקדמות שלך",
|
||||
"MessageAddToPlayerQueue": "הוסף לתור הנגן",
|
||||
"MessageAppriseDescription": "כדי להשתמש בתכונה זו יש לך להריץ מופע של <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">ממשק התכנית האפליקציה</a> או API שיטפל בבקשות אלו. <br /> כתובת URL של ממשק ה-Apprise API צריכה להיות הנתיב המלא לשליחת ההתראה, לדוגמה, אם המופע של ה-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>. גיבויים <strong>לא</strong> כוללים קבצים שמורים בתיקיות הספרייה שלך.",
|
||||
"MessageBatchQuickMatchDescription": "התאמה מהירה תנסה להוסיף כריכות ומטה-נתונים חסרים עבור הפריטים הנבחרים. הפעל את האפשרויות למטה כדי לאפשר להתאמה מהירה להחליף כריכות קיימות ו/או מטה-נתונים.",
|
||||
"MessageBookshelfNoCollections": "עדיין לא יצרת אוספים",
|
||||
"MessageBookshelfNoResultsForFilter": "אין תוצאות עבור סינון \"{0}: {1}\"",
|
||||
"MessageBookshelfNoRSSFeeds": "אין ערוצי RSS פתוחים",
|
||||
"MessageBookshelfNoSeries": "אין לך סדרות",
|
||||
"MessageChapterEndIsAfter": "זמן סיום הפרק אחרי סיום הספר הקולי שלך",
|
||||
"MessageChapterErrorFirstNotZero": "הפרק הראשון חייב להתחיל ב-0",
|
||||
"MessageChapterErrorStartGteDuration": "זמן התחלה לא תקין, חייב להיות פחות ממשך הספר הקולי",
|
||||
"MessageChapterErrorStartLtPrev": "זמן התחלה לא תקין, חייב להיות גדול או שווה לזמן ההתחלה של הפרק הקודם",
|
||||
"MessageChapterStartIsAfter": "התחלת הפרק אחרי סיום הספר הקולי שלך",
|
||||
"MessageCheckingCron": "בודק את תזמון העבודה...",
|
||||
"MessageConfirmCloseFeed": "האם אתה בטוח שאתה רוצה לסגור את הערוץ הזה?",
|
||||
"MessageConfirmDeleteBackup": "האם אתה בטוח שברצונך למחוק גיבוי עבור {0}?",
|
||||
"MessageConfirmDeleteFile": "הקובץ ימחק לצמיתות מהמערכת שלך. האם אתה בטוח?",
|
||||
"MessageConfirmDeleteLibrary": "האם אתה בטוח שברצונך למחוק לצמיתות את הספרייה \"{0}\"?",
|
||||
"MessageConfirmDeleteLibraryItem": "פריט הספרייה יימחק לצמיתות ממסד הנתונים ומהמערכת שלך. האם אתה בטוח?",
|
||||
"MessageConfirmDeleteLibraryItems": "פריטי הספרייה {0} יימחקו ממסד הנתונים ומהמערכת שלך. האם אתה בטוח?",
|
||||
"MessageConfirmDeleteSession": "האם אתה בטוח שאתה רוצה למחוק את ההפעלה הזו?",
|
||||
"MessageConfirmForceReScan": "האם אתה בטוח שאתה רוצה להכריח סריקה מחדש?",
|
||||
"MessageConfirmMarkAllEpisodesFinished": "האם אתה בטוח שברצונך לסמן את כל הפרקים כהסתיימו?",
|
||||
"MessageConfirmMarkAllEpisodesNotFinished": "האם אתה בטוח שברצונך לסמן את כל הפרקים כלא הסתיימו?",
|
||||
"MessageConfirmMarkSeriesFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כהסתיימו?",
|
||||
"MessageConfirmMarkSeriesNotFinished": "האם אתה בטוח שברצונך לסמן את כל הספרים בסדרה זו כלא הסתיימו?",
|
||||
"MessageConfirmQuickEmbed": "אזהרה! הטמעה מהירה לא תגבה גיבוי של קבצי האודיו שלך. וודא שיש לך גיבוי של קבצי האודיו שלך. <br><br>האם ברצונך להמשיך?",
|
||||
"MessageConfirmRemoveAllChapters": "האם אתה בטוח שברצונך להסיר את כל הפרקים?",
|
||||
"MessageConfirmRemoveAuthor": "האם אתה בטוח שברצונך להסיר את המחבר \"{0}\"?",
|
||||
"MessageConfirmRemoveCollection": "האם אתה בטוח שברצונך להסיר אוסף \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisode": "האם אתה בטוח שברצונך להסיר פרק \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisodes": "האם אתה בטוח שברצונך להסיר {0} פרקים?",
|
||||
"MessageConfirmRemoveListeningSessions": "האם אתה בטוח שברצונך להסיר {0} הפעלות האזנה?",
|
||||
"MessageConfirmRemoveNarrator": "האם אתה בטוח שברצונך להסיר מקריא \"{0}\"?",
|
||||
"MessageConfirmRemovePlaylist": "האם אתה בטוח שברצונך להסיר את רשימת ההשמעה שלך \"{0}\"?",
|
||||
"MessageConfirmRenameGenre": "האם אתה בטוח שברצונך לשנות את שם הז'אנר \"{0}\" ל \"{1}\" עבור כל הפריטים?",
|
||||
"MessageConfirmRenameGenreMergeNote": "הערה: ז'אנר זה כבר קיים ולכן הם יתמזגו.",
|
||||
"MessageConfirmRenameGenreWarning": "אזהרה! יש ז'אנר דומה עם רישום שונה שכבר קיים \"{0}\".",
|
||||
"MessageConfirmRenameTag": "האם אתה בטוח שברצונך לשנות את שם התג \"{0}\" ל \"{1}\" עבור כל הפריטים?",
|
||||
"MessageConfirmRenameTagMergeNote": "הערה: התג זה כבר קיים ולכן הם יתמזגו.",
|
||||
"MessageConfirmRenameTagWarning": "אזהרה! יש תג דומה עם רישום שונה שכבר קיים \"{0}\".",
|
||||
"MessageConfirmReScanLibraryItems": "האם אתה בטוח שברצונך לסרוק מחדש {0} פריטים?",
|
||||
"MessageConfirmSendEbookToDevice": "האם אתה בטוח שברצונך לשלוח {0} את הספר האלקטרוני \"{1}\" למכשיר \"{2}\"?",
|
||||
"MessageDownloadingEpisode": "מוריד פרק",
|
||||
"MessageDragFilesIntoTrackOrder": "גרור קבצים לסדר ההשמעה נכון",
|
||||
"MessageEmbedFinished": "ההטמעה הושלמה!",
|
||||
"MessageEpisodesQueuedForDownload": "{0} פרקים בתור להורדה",
|
||||
"MessageFeedURLWillBe": "כתובת URL של העדכון תהיה {0}",
|
||||
"MessageFetching": "מושך...",
|
||||
"MessageForceReScanDescription": "תבוצע סריקה מחדש כמו סריקה חדש מאפס, תגי ID3 של קבצי קול, קבצי OPF, וקבצי טקסט ייסרקו כחדשים.",
|
||||
"MessageImportantNotice": "הודעה חשובה!",
|
||||
"MessageInsertChapterBelow": "הוסף פרק מתחת",
|
||||
"MessageItemsSelected": "{0} פריטים נבחרו",
|
||||
"MessageItemsUpdated": "{0} פריטים עודכנו",
|
||||
"MessageJoinUsOn": "הצטרף אלינו ב-",
|
||||
"MessageListeningSessionsInTheLastYear": "{0} מפגשי האזנה בשנה האחרונה",
|
||||
"MessageLoading": "טוען...",
|
||||
"MessageLoadingFolders": "טוען תיקיות...",
|
||||
"MessageM4BFailed": "M4B נכשל!",
|
||||
"MessageM4BFinished": "M4B הושלם!",
|
||||
"MessageMapChapterTitles": "מפה שמות פרקים לפרקי הספר השמורים שלך ללא שינוי תגי זמן",
|
||||
"MessageMarkAllEpisodesFinished": "סמן את כל הפרקים כהסתיימו",
|
||||
"MessageMarkAllEpisodesNotFinished": "סמן את כל הפרקים כלא הסתיימו",
|
||||
"MessageMarkAsFinished": "סמן כהסתיים",
|
||||
"MessageMarkAsNotFinished": "סמן כלא הסתיים",
|
||||
"MessageMatchBooksDescription": "ינסה להתאים ספרים בספריית הספרים שלך עם ספר מספק החיפוש הנבחר וימלא פרטים ריקים ותמונות כריכה. לא יחליף פרטים קיימים.",
|
||||
"MessageNoAudioTracks": "אין רצועות שמע",
|
||||
"MessageNoAuthors": "אין סופרים",
|
||||
"MessageNoBackups": "אין גיבויים",
|
||||
"MessageNoBookmarks": "אין סימניות",
|
||||
"MessageNoChapters": "אין פרקים",
|
||||
"MessageNoCollections": "אין אוספים",
|
||||
"MessageNoCoversFound": "לא נמצאו כריכות",
|
||||
"MessageNoDescription": "אין תיאור",
|
||||
"MessageNoDownloadsInProgress": "אין הורדות פעילות כרגע",
|
||||
"MessageNoDownloadsQueued": "אין הורדות בתור",
|
||||
"MessageNoEpisodeMatchesFound": "לא נמצאו התאמות לפרק",
|
||||
"MessageNoEpisodes": "אין פרקים",
|
||||
"MessageNoFoldersAvailable": "אין תיקיות זמינות",
|
||||
"MessageNoGenres": "אין ז'אנרים",
|
||||
"MessageNoIssues": "אין תקלות",
|
||||
"MessageNoItems": "אין פריטים",
|
||||
"MessageNoItemsFound": "לא נמצאו פריטים",
|
||||
"MessageNoListeningSessions": "אין הפעלות האזנה",
|
||||
"MessageNoLogs": "אין לוגים",
|
||||
"MessageNoMediaProgress": "אין התקדמות במדיה",
|
||||
"MessageNoNotifications": "אין התראות",
|
||||
"MessageNoPodcastsFound": "לא נמצאו פודקאסטים",
|
||||
"MessageNoResults": "אין תוצאות",
|
||||
"MessageNoSearchResultsFor": "אין תוצאות חיפוש עבור \"{0}\"",
|
||||
"MessageNoSeries": "אין סדרות",
|
||||
"MessageNoTags": "אין תגיות",
|
||||
"MessageNoTasksRunning": "אין משימות פעילות",
|
||||
"MessageNotYetImplemented": "עדיין לא מיושם",
|
||||
"MessageNoUpdateNecessary": "לא נדרש עדכון",
|
||||
"MessageNoUpdatesWereNecessary": "לא היה צורך בעדכונים",
|
||||
"MessageNoUserPlaylists": "אין לך רשימות השמעה",
|
||||
"MessageOr": "או",
|
||||
"MessagePauseChapter": "השהה השמעת הפרק",
|
||||
"MessagePlayChapter": "הקשב לתחילת הפרק",
|
||||
"MessagePlaylistCreateFromCollection": "צור רשימת השמעה מאוסף",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "לפודקאסט אין כתובת URL של ערוץ RSS להתאמה",
|
||||
"MessageQuickMatchDescription": "ממלא פרטים ריקים וכריכות עם התוצאה הראשונה מ '{0}'. לא ימחק פרטים אלא אם הגדרת השרת 'העדף מטה-נתונים מותאמים' מופעלת.",
|
||||
"MessageRemoveChapter": "הסר פרק",
|
||||
"MessageRemoveEpisodes": "הסר {0} פרקים",
|
||||
"MessageRemoveFromPlayerQueue": "הסר מתור ההשמעה של הנגן",
|
||||
"MessageRemoveUserWarning": "האם אתה בטוח שברצונך למחוק לצמיתות את המשתמש \"{0}\"?",
|
||||
"MessageReportBugsAndContribute": "דווח על באגים, בקש תכונות חדשות, ותרום ב-",
|
||||
"MessageResetChaptersConfirm": "האם אתה בטוח שברצונך לאפס את הפרקים ולבטל את השינויים שביצעת?",
|
||||
"MessageRestoreBackupConfirm": "האם אתה בטוח שברצונך לשחזר את הגיבוי שנוצר ב",
|
||||
"MessageRestoreBackupWarning": "שחזור גיבוי ימחק את כל מסד הנתונים הנוכחי השוכן ב /config ואת תמונות הכריכה ב- /metadata/items & /metadata/authors.<br /><br />גיבויים אינם משנים קבצים בתיקיות הספרייה שלך. אם הגדרות השרת לאחסן תמונות כריכה ומטא-נתונים בתיקיות הספרייה שלך מופעלות אז אלה לא יגובו או ימחקו.<br /><br />כל האפליקציות המשתמשות בשרת שלך יתעדכנו באופן אוטומטי.",
|
||||
"MessageSearchResultsFor": "תוצאות חיפוש עבור",
|
||||
"MessageSelected": "{0} נבחרו",
|
||||
"MessageServerCouldNotBeReached": "לא ניתן להגיע אל השרת",
|
||||
"MessageSetChaptersFromTracksDescription": "קבע פרקים באמצעות כל קובץ שמע כפרק וכותרת פרק כשם הקובץ שמע",
|
||||
"MessageStartPlaybackAtTime": "להתחיל השמעה עבור \"{0}\" ב-{1}?",
|
||||
"MessageThinking": "חושב...",
|
||||
"MessageUploaderItemFailed": "העלאת הפריט נכשלה",
|
||||
"MessageUploaderItemSuccess": "העלאה הצליחה!",
|
||||
"MessageUploading": "מעלה...",
|
||||
"MessageValidCronExpression": "ביטוי Cron חוקי",
|
||||
"MessageWatcherIsDisabledGlobally": "עוקב מנוטרל באופן גלובלי בהגדרות השרת",
|
||||
"MessageXLibraryIsEmpty": "ספריית {0} ריקה!",
|
||||
"MessageYourAudiobookDurationIsLonger": "הזמן של הספר הקולי שלך ארוך יותר מהזמן שנמצא",
|
||||
"MessageYourAudiobookDurationIsShorter": "הזמן של הספר הקולי שלך קצר יותר מהזמן שנמצא",
|
||||
"NoteChangeRootPassword": "המשתמש root הוא המשתמש היחיד שיכולה להיות לו סיסמה ריקה",
|
||||
"NoteChapterEditorTimes": "הערה: זמן ההתחלה של הפרק הראשון חייב להישאר 0:00 וזמן ההתחלה של הפרק האחרון לא יכול לחרוג מהזמן של ספר השמע.",
|
||||
"NoteFolderPicker": "הערה: תיקיות שכבר מופו לא יוצגו",
|
||||
"NoteRSSFeedPodcastAppsHttps": "אזהרה: רוב יישומי הפודקאסט דורשים שכתובת ה-URL ערוץ ה-RSS תשתמש ב-HTTPS",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "אזהרה: פרק אחד או יותר לא מכילים תאריך פרסום. חלק מיישומי הפודקאסט דורשים זאת.",
|
||||
"NoteUploaderFoldersWithMediaFiles": "תיקיות עם קבצי מדיה יעובדו כפריטי ספריה נפרדים.",
|
||||
"NoteUploaderOnlyAudioFiles": "אם מועלים רק קבצי שמע, כל קובץ שמע יעובד כספר שמע נפרד.",
|
||||
"NoteUploaderUnsupportedFiles": "מתעלם מקבצים לא נתמכים. בעת בחירת תיקייה או גרירה לדף, מתעלם מקבצים אחרים שאינם בתיקיית פריט.",
|
||||
"PlaceholderNewCollection": "שם אוסף חדש",
|
||||
"PlaceholderNewFolderPath": "נתיב תיקייה חדשה",
|
||||
"PlaceholderNewPlaylist": "שם רשימת השמעה חדשה",
|
||||
"PlaceholderSearch": "חיפוש..",
|
||||
"PlaceholderSearchEpisode": "חיפוש פרק..",
|
||||
"ToastAccountUpdateFailed": "עדכון חשבון נכשל",
|
||||
"ToastAccountUpdateSuccess": "חשבון עודכן בהצלחה",
|
||||
"ToastAuthorImageRemoveFailed": "הסרת התמונה של המחבר נכשלה",
|
||||
"ToastAuthorImageRemoveSuccess": "תמונת המחבר הוסרה בהצלחה",
|
||||
"ToastAuthorUpdateFailed": "עדכון המחבר נכשל",
|
||||
"ToastAuthorUpdateMerged": "המחבר מוזג",
|
||||
"ToastAuthorUpdateSuccess": "המחבר עודכן בהצלחה",
|
||||
"ToastAuthorUpdateSuccessNoImageFound": "המחבר עודכן (תמונה לא נמצאה)",
|
||||
"ToastBackupCreateFailed": "יצירת גיבוי נכשלה",
|
||||
"ToastBackupCreateSuccess": "גיבוי נוצר בהצלחה",
|
||||
"ToastBackupDeleteFailed": "מחיקת הגיבוי נכשלה",
|
||||
"ToastBackupDeleteSuccess": "הגיבוי נמחק בהצלחה",
|
||||
"ToastBackupRestoreFailed": "שחזור הגיבוי נכשל",
|
||||
"ToastBackupUploadFailed": "העלאת הגיבוי נכשלה",
|
||||
"ToastBackupUploadSuccess": "הגיבוי הועלה בהצלחה",
|
||||
"ToastBatchUpdateFailed": "עדכון קבוצתי נכשל",
|
||||
"ToastBatchUpdateSuccess": "עדכון קבוצתי הצליח",
|
||||
"ToastBookmarkCreateFailed": "יצירת סימניה נכשלה",
|
||||
"ToastBookmarkCreateSuccess": "הסימניה נוספה בהצלחה",
|
||||
"ToastBookmarkRemoveFailed": "הסרת הסימניה נכשלה",
|
||||
"ToastBookmarkRemoveSuccess": "הסימניה הוסרה בהצלחה",
|
||||
"ToastBookmarkUpdateFailed": "עדכון הסימניה נכשל",
|
||||
"ToastBookmarkUpdateSuccess": "הסימניה עודכנה בהצלחה",
|
||||
"ToastChaptersHaveErrors": "פרקים מכילים שגיאות",
|
||||
"ToastChaptersMustHaveTitles": "פרקים חייבים לכלול כותרות",
|
||||
"ToastCollectionItemsRemoveFailed": "הסרת הפריט(ים) מהאוסף נכשלה",
|
||||
"ToastCollectionItemsRemoveSuccess": "הפריט(ים) הוסרו מהאוסף בהצלחה",
|
||||
"ToastCollectionRemoveFailed": "מחיקת האוסף נכשלה",
|
||||
"ToastCollectionRemoveSuccess": "האוסף הוסר בהצלחה",
|
||||
"ToastCollectionUpdateFailed": "עדכון האוסף נכשל",
|
||||
"ToastCollectionUpdateSuccess": "האוסף עודכן בהצלחה",
|
||||
"ToastItemCoverUpdateFailed": "עדכון כריכת הפריט נכשל",
|
||||
"ToastItemCoverUpdateSuccess": "כריכת הפריט עודכנה בהצלחה",
|
||||
"ToastItemDetailsUpdateFailed": "עדכון פרטי הפריט נכשל",
|
||||
"ToastItemDetailsUpdateSuccess": "פרטי הפריט עודכנו בהצלחה",
|
||||
"ToastItemDetailsUpdateUnneeded": "לא נדרשים עדכונים לפרטי הפריט",
|
||||
"ToastItemMarkedAsFinishedFailed": "סימון כפריט כהושלם נכשל",
|
||||
"ToastItemMarkedAsFinishedSuccess": "הפריט סומן כהושלם בהצלחה",
|
||||
"ToastItemMarkedAsNotFinishedFailed": "סימון כפריט שלא הושלם נכשל",
|
||||
"ToastItemMarkedAsNotFinishedSuccess": "הפריט סומן כלא הושלם בהצלחה",
|
||||
"ToastLibraryCreateFailed": "יצירת הספרייה נכשלה",
|
||||
"ToastLibraryCreateSuccess": "הספרייה \"{0}\" נוצרה בהצלחה",
|
||||
"ToastLibraryDeleteFailed": "מחיקת הספרייה נכשלה",
|
||||
"ToastLibraryDeleteSuccess": "הספרייה נמחקה בהצלחה",
|
||||
"ToastLibraryScanFailedToStart": "הפעלת הסריקה נכשלה",
|
||||
"ToastLibraryScanStarted": "הסריקה של הספרייה החלה",
|
||||
"ToastLibraryUpdateFailed": "עדכון הספרייה נכשל",
|
||||
"ToastLibraryUpdateSuccess": "הספרייה \"{0}\" עודכנה בהצלחה",
|
||||
"ToastPlaylistCreateFailed": "יצירת רשימת השמעה נכשלה",
|
||||
"ToastPlaylistCreateSuccess": "רשימת השמעה נוצרה בהצלחה",
|
||||
"ToastPlaylistRemoveFailed": "הסרת רשימת השמעה נכשלה",
|
||||
"ToastPlaylistRemoveSuccess": "רשימת השמעה הוסרה בהצלחה",
|
||||
"ToastPlaylistUpdateFailed": "עדכון רשימת השמעה נכשל",
|
||||
"ToastPlaylistUpdateSuccess": "רשימת השמעה עודכנה בהצלחה",
|
||||
"ToastPodcastCreateFailed": "יצירת הפודקאסט נכשלה",
|
||||
"ToastPodcastCreateSuccess": "הפודקאסט נוצר בהצלחה",
|
||||
"ToastRemoveItemFromCollectionFailed": "הסרת הפריט מהאוסף נכשלה",
|
||||
"ToastRemoveItemFromCollectionSuccess": "הפריט הוסר מהאוסף בהצלחה",
|
||||
"ToastRSSFeedCloseFailed": "סגירת ערוץ ה-RSS נכשלה",
|
||||
"ToastRSSFeedCloseSuccess": "ערוץ ה-RSS נסגר בהצלחה",
|
||||
"ToastSendEbookToDeviceFailed": "שליחת הספר אל המכשיר נכשלה",
|
||||
"ToastSendEbookToDeviceSuccess": "הספר נשלח אל המכשיר \"{0}\"",
|
||||
"ToastSeriesUpdateFailed": "עדכון הסדרה נכשל",
|
||||
"ToastSeriesUpdateSuccess": "הסדרה עודכנה בהצלחה",
|
||||
"ToastSessionDeleteFailed": "מחיקת הפעולה נכשלה",
|
||||
"ToastSessionDeleteSuccess": "הפעולה נמחקה בהצלחה",
|
||||
"ToastSocketConnected": "קצה תקשורת חובר",
|
||||
"ToastSocketDisconnected": "קצה תקשורת נותק",
|
||||
"ToastSocketFailedToConnect": "התחברות קצה התקשורת נכשלה",
|
||||
"ToastUserDeleteFailed": "מחיקת המשתמש נכשלה",
|
||||
"ToastUserDeleteSuccess": "המשתמש נמחק בהצלחה"
|
||||
}
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "सभी लेखकों को तलाश करें",
|
||||
"ButtonMatchBooks": "संबंधित पुस्तकों का मिलान करें",
|
||||
"ButtonNevermind": "कोई बात नहीं",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "ठीक है",
|
||||
"ButtonOpenFeed": "फ़ीड खोलें",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "चलाएँ",
|
||||
"ButtonPlaying": "चल रही है",
|
||||
"ButtonPlaylists": "प्लेलिस्ट्स",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "सभी Cache मिटाएं",
|
||||
"ButtonPurgeItemsCache": "आइटम Cache मिटाएं",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "कतार से हटाएं",
|
||||
"ButtonQuickMatch": "जल्दी से समानता की तलाश करें",
|
||||
"ButtonRead": "पढ़ लिया",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "हटाएं",
|
||||
"ButtonRemoveAll": "सभी हटाएं",
|
||||
"ButtonRemoveAllLibraryItems": "पुस्तकालय की सभी आइटम हटाएं",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "फ़ोल्डर का पथ चुनें",
|
||||
"ButtonSeries": "सीरीज",
|
||||
"ButtonSetChaptersFromTracks": "ट्रैक्स से अध्याय बनाएं",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "समय खिसकाए",
|
||||
"ButtonShow": "दिखाएं",
|
||||
"ButtonStartM4BEncode": "M4B एन्कोडिंग शुरू करें",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Update Details",
|
||||
"HeaderUpdateLibrary": "Update Library",
|
||||
"HeaderUsers": "Users",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Your Stats",
|
||||
"LabelAbridged": "Abridged",
|
||||
"LabelAccountType": "Account Type",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Every 6 hours",
|
||||
"LabelIntervalEveryDay": "Every day",
|
||||
"LabelIntervalEveryHour": "Every hour",
|
||||
"LabelInvalidParts": "Invalid Parts",
|
||||
"LabelInvert": "Invert",
|
||||
"LabelItem": "Item",
|
||||
"LabelLanguage": "Language",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta Tags",
|
||||
"LabelMinute": "Minute",
|
||||
"LabelMissing": "Missing",
|
||||
"LabelMissingParts": "Missing Parts",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "More",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Not Started",
|
||||
"LabelNumberOfBooks": "Number of Books",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Open RSS Feed",
|
||||
"LabelOverwrite": "Overwrite",
|
||||
"LabelPassword": "Password",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Can Download",
|
||||
"LabelPermissionsUpdate": "Can Update",
|
||||
"LabelPermissionsUpload": "Can Upload",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Photo Path/URL",
|
||||
"LabelPlaylists": "Playlists",
|
||||
"LabelPlayMethod": "Play Method",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Series",
|
||||
"LabelSeriesName": "Series Name",
|
||||
"LabelSeriesProgress": "Series Progress",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Set as primary",
|
||||
"LabelSetEbookAsSupplementary": "Set as supplementary",
|
||||
"LabelSettingsAudiobooksOnly": "Audiobooks only",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
|
||||
"LabelSettingsHomePageBookshelfView": "Home page use bookshelf view",
|
||||
"LabelSettingsLibraryBookshelfView": "Library use bookshelf view",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Parse subtitles",
|
||||
"LabelSettingsParseSubtitlesHelp": "Extract subtitles from audiobook folder names.<br>Subtitle must be seperated by \" - \"<br>i.e. \"Book Title - A Subtitle Here\" has the subtitle \"A Subtitle Here\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Prefer matched metadata",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "View player queue",
|
||||
"LabelVolume": "Volume",
|
||||
"LabelWeekdaysToRun": "Weekdays to run",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Your audiobook duration",
|
||||
"LabelYourBookmarks": "Your Bookmarks",
|
||||
"LabelYourPlaylists": "Your Playlists",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Matchaj sve autore",
|
||||
"ButtonMatchBooks": "Matchaj knjige",
|
||||
"ButtonNevermind": "Nije bitno",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Otvori feed",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Pokreni",
|
||||
"ButtonPlaying": "Playing",
|
||||
"ButtonPlaylists": "Playlists",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Isprazni sav cache",
|
||||
"ButtonPurgeItemsCache": "Isprazni Items Cache",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Remove from queue",
|
||||
"ButtonQuickMatch": "Brzi match",
|
||||
"ButtonRead": "Pročitaj",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Ukloni",
|
||||
"ButtonRemoveAll": "Ukloni sve",
|
||||
"ButtonRemoveAllLibraryItems": "Ukloni sve stvari iz biblioteke",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Odaberi putanju do folder",
|
||||
"ButtonSeries": "Serije",
|
||||
"ButtonSetChaptersFromTracks": "Set chapters from tracks",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Pomakni vremena",
|
||||
"ButtonShow": "Prikaži",
|
||||
"ButtonStartM4BEncode": "Pokreni M4B kodiranje",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Aktualiziraj detalje",
|
||||
"HeaderUpdateLibrary": "Aktualiziraj biblioteku",
|
||||
"HeaderUsers": "Korinici",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Tvoja statistika",
|
||||
"LabelAbridged": "Abridged",
|
||||
"LabelAccountType": "Vrsta korisničkog računa",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Every 6 hours",
|
||||
"LabelIntervalEveryDay": "Every day",
|
||||
"LabelIntervalEveryHour": "Every hour",
|
||||
"LabelInvalidParts": "Nevaljajuči dijelovi",
|
||||
"LabelInvert": "Invert",
|
||||
"LabelItem": "Stavka",
|
||||
"LabelLanguage": "Jezik",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta Tags",
|
||||
"LabelMinute": "Minuta",
|
||||
"LabelMissing": "Nedostaje",
|
||||
"LabelMissingParts": "Nedostajali dijelovi",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Više",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Not Started",
|
||||
"LabelNumberOfBooks": "Number of Books",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Otvori RSS Feed",
|
||||
"LabelOverwrite": "Overwrite",
|
||||
"LabelPassword": "Lozinka",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Smije preuzimati",
|
||||
"LabelPermissionsUpdate": "Smije aktualizirati",
|
||||
"LabelPermissionsUpload": "Smije uploadati",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Slika putanja/URL",
|
||||
"LabelPlaylists": "Playlists",
|
||||
"LabelPlayMethod": "Vrsta reprodukcije",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Serije",
|
||||
"LabelSeriesName": "Ime serije",
|
||||
"LabelSeriesProgress": "Series Progress",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Set as primary",
|
||||
"LabelSetEbookAsSupplementary": "Set as supplementary",
|
||||
"LabelSettingsAudiobooksOnly": "Audiobooks only",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
|
||||
"LabelSettingsHomePageBookshelfView": "Koristi bookshelf pogled za početnu stranicu",
|
||||
"LabelSettingsLibraryBookshelfView": "Koristi bookshelf pogled za biblioteku",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Parsaj podnapise",
|
||||
"LabelSettingsParseSubtitlesHelp": "Izvadi podnapise iz imena od audiobook foldera.<br>Podnapis mora biti odvojen sa \" - \"<br>npr. \"Ime knjige - Podnapis ovdje\" ima podnapis \"Podnapis ovdje\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Preferiraj matchane metapodatke",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "View player queue",
|
||||
"LabelVolume": "Volume",
|
||||
"LabelWeekdaysToRun": "Radnih dana da radi",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Tvoje trajanje audiobooka",
|
||||
"LabelYourBookmarks": "Tvoje knjižne oznake",
|
||||
"LabelYourPlaylists": "Your Playlists",
|
||||
|
||||
782
client/strings/hu.json
Normal file
782
client/strings/hu.json
Normal file
@@ -0,0 +1,782 @@
|
||||
{
|
||||
"ButtonAdd": "Hozzáadás",
|
||||
"ButtonAddChapters": "Fejezetek hozzáadása",
|
||||
"ButtonAddDevice": "Eszköz hozzáadása",
|
||||
"ButtonAddLibrary": "Könyvtár hozzáadása",
|
||||
"ButtonAddPodcasts": "Podcastok hozzáadása",
|
||||
"ButtonAddUser": "Felhasználó hozzáadása",
|
||||
"ButtonAddYourFirstLibrary": "Az első könyvtár hozzáadása",
|
||||
"ButtonApply": "Alkalmaz",
|
||||
"ButtonApplyChapters": "Fejezetek alkalmazása",
|
||||
"ButtonAuthors": "Szerzők",
|
||||
"ButtonBrowseForFolder": "Mappa keresése",
|
||||
"ButtonCancel": "Mégse",
|
||||
"ButtonCancelEncode": "Kódolás megszakítása",
|
||||
"ButtonChangeRootPassword": "Gyökérjelszó megváltoztatása",
|
||||
"ButtonCheckAndDownloadNewEpisodes": "Új epizódok ellenőrzése és letöltése",
|
||||
"ButtonChooseAFolder": "Válassz egy mappát",
|
||||
"ButtonChooseFiles": "Fájlok kiválasztása",
|
||||
"ButtonClearFilter": "Szűrő törlése",
|
||||
"ButtonCloseFeed": "Hírcsatorna bezárása",
|
||||
"ButtonCollections": "Gyűjtemény",
|
||||
"ButtonConfigureScanner": "Szkenner konfigurálása",
|
||||
"ButtonCreate": "Létrehozás",
|
||||
"ButtonCreateBackup": "Biztonsági másolat készítése",
|
||||
"ButtonDelete": "Törlés",
|
||||
"ButtonDownloadQueue": "Sor",
|
||||
"ButtonEdit": "Szerkesztés",
|
||||
"ButtonEditChapters": "Fejezetek szerkesztése",
|
||||
"ButtonEditPodcast": "Podcast szerkesztése",
|
||||
"ButtonForceReScan": "Újraszkennelés kényszerítése",
|
||||
"ButtonFullPath": "Teljes útvonal",
|
||||
"ButtonHide": "Elrejtés",
|
||||
"ButtonHome": "Kezdőlap",
|
||||
"ButtonIssues": "Problémák",
|
||||
"ButtonJumpBackward": "Ugrás vissza",
|
||||
"ButtonJumpForward": "Ugrás előre",
|
||||
"ButtonLatest": "Legújabb",
|
||||
"ButtonLibrary": "Könyvtár",
|
||||
"ButtonLogout": "Kijelentkezés",
|
||||
"ButtonLookup": "Keresés",
|
||||
"ButtonManageTracks": "Sávok kezelése",
|
||||
"ButtonMapChapterTitles": "Fejezetcímek hozzárendelése",
|
||||
"ButtonMatchAllAuthors": "Minden szerző egyeztetése",
|
||||
"ButtonMatchBooks": "Könyvek egyeztetése",
|
||||
"ButtonNevermind": "Mindegy",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Következő fejezet",
|
||||
"ButtonOk": "Oké",
|
||||
"ButtonOpenFeed": "Hírcsatorna megnyitása",
|
||||
"ButtonOpenManager": "Kezelő megnyitása",
|
||||
"ButtonPause": "Szünet",
|
||||
"ButtonPlay": "Lejátszás",
|
||||
"ButtonPlaying": "Lejátszás folyamatban",
|
||||
"ButtonPlaylists": "Lejátszási listák",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Előző fejezet",
|
||||
"ButtonPurgeAllCache": "Összes gyorsítótár 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",
|
||||
"ButtonQueueRemoveItem": "Eltávolítás a sorból",
|
||||
"ButtonQuickMatch": "Gyors egyeztetés",
|
||||
"ButtonRead": "Olvasás",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Eltávolítás",
|
||||
"ButtonRemoveAll": "Összes eltávolítása",
|
||||
"ButtonRemoveAllLibraryItems": "Összes könyvtárelem eltávolítása",
|
||||
"ButtonRemoveFromContinueListening": "Eltávolítás a Folytatás hallgatá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",
|
||||
"ButtonReScan": "Újraszkennelés",
|
||||
"ButtonReset": "Visszaállítás",
|
||||
"ButtonResetToDefault": "Alapértelmezésre állítás",
|
||||
"ButtonRestore": "Visszaállítás",
|
||||
"ButtonSave": "Mentés",
|
||||
"ButtonSaveAndClose": "Mentés és bezárás",
|
||||
"ButtonSaveTracklist": "Sávlista mentése",
|
||||
"ButtonScan": "Szkennelés",
|
||||
"ButtonScanLibrary": "Könyvtár szkennelése",
|
||||
"ButtonSearch": "Keresés",
|
||||
"ButtonSelectFolderPath": "Mappa útvonalának kiválasztása",
|
||||
"ButtonSeries": "Sorozatok",
|
||||
"ButtonSetChaptersFromTracks": "Fejezetek beállítása sávokból",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Idők eltolása",
|
||||
"ButtonShow": "Megjelenítés",
|
||||
"ButtonStartM4BEncode": "M4B kódolás indítása",
|
||||
"ButtonStartMetadataEmbed": "Metaadatok beágyazásának indítása",
|
||||
"ButtonSubmit": "Beküldés",
|
||||
"ButtonTest": "Teszt",
|
||||
"ButtonUpload": "Feltöltés",
|
||||
"ButtonUploadBackup": "Biztonsági másolat feltöltése",
|
||||
"ButtonUploadCover": "Borító feltöltése",
|
||||
"ButtonUploadOPMLFile": "OPML fájl feltöltése",
|
||||
"ButtonUserDelete": "Felhasználó törlése {0}",
|
||||
"ButtonUserEdit": "Felhasználó szerkesztése {0}",
|
||||
"ButtonViewAll": "Összes megtekintése",
|
||||
"ButtonYes": "Igen",
|
||||
"ErrorUploadFetchMetadataAPI": "Hiba a metaadatok lekérésekor",
|
||||
"ErrorUploadFetchMetadataNoResults": "Nem sikerült a metaadatok lekérése - próbálja meg frissíteni a címet és/vagy a szerzőt",
|
||||
"ErrorUploadLacksTitle": "Cím szükséges",
|
||||
"HeaderAccount": "Fiók",
|
||||
"HeaderAdvanced": "Haladó",
|
||||
"HeaderAppriseNotificationSettings": "Apprise értesítési beállítások",
|
||||
"HeaderAudiobookTools": "Hangoskönyv fájlkezelő eszközök",
|
||||
"HeaderAudioTracks": "Audiósávok",
|
||||
"HeaderAuthentication": "Hitelesítés",
|
||||
"HeaderBackups": "Biztonsági másolatok",
|
||||
"HeaderChangePassword": "Jelszó megváltoztatása",
|
||||
"HeaderChapters": "Fejezetek",
|
||||
"HeaderChooseAFolder": "Válasszon egy mappát",
|
||||
"HeaderCollection": "Gyűjtemény",
|
||||
"HeaderCollectionItems": "Gyűjtemény elemek",
|
||||
"HeaderCover": "Borító",
|
||||
"HeaderCurrentDownloads": "Jelenlegi letöltések",
|
||||
"HeaderCustomMetadataProviders": "Egyéni metaadat-szolgáltatók",
|
||||
"HeaderDetails": "Részletek",
|
||||
"HeaderDownloadQueue": "Letöltési sor",
|
||||
"HeaderEbookFiles": "E-könyv fájlok",
|
||||
"HeaderEmail": "E-mail",
|
||||
"HeaderEmailSettings": "E-mail beállítások",
|
||||
"HeaderEpisodes": "Epizódok",
|
||||
"HeaderEreaderDevices": "E-olvasó eszközök",
|
||||
"HeaderEreaderSettings": "E-olvasó beállítások",
|
||||
"HeaderFiles": "Fájlok",
|
||||
"HeaderFindChapters": "Fejezetek keresése",
|
||||
"HeaderIgnoredFiles": "Figyelmen kívül hagyott fájlok",
|
||||
"HeaderItemFiles": "Elemfájlok",
|
||||
"HeaderItemMetadataUtils": "Elem metaadat eszközök",
|
||||
"HeaderLastListeningSession": "Utolsó hallgatási munkamenet",
|
||||
"HeaderLatestEpisodes": "Legújabb epizódok",
|
||||
"HeaderLibraries": "Könyvtárak",
|
||||
"HeaderLibraryFiles": "Könyvtárfájlok",
|
||||
"HeaderLibraryStats": "Könyvtár statisztikák",
|
||||
"HeaderListeningSessions": "Hallgatási munkamenetek",
|
||||
"HeaderListeningStats": "Hallgatási statisztikák",
|
||||
"HeaderLogin": "Bejelentkezés",
|
||||
"HeaderLogs": "Naplók",
|
||||
"HeaderManageGenres": "Műfajok kezelése",
|
||||
"HeaderManageTags": "Címkék kezelése",
|
||||
"HeaderMapDetails": "Részletek hozzárendelése",
|
||||
"HeaderMatch": "Egyeztetés",
|
||||
"HeaderMetadataOrderOfPrecedence": "Metaadatok előnyben részesítési sorrendje",
|
||||
"HeaderMetadataToEmbed": "Beágyazandó metaadatok",
|
||||
"HeaderNewAccount": "Új fiók",
|
||||
"HeaderNewLibrary": "Új könyvtár",
|
||||
"HeaderNotifications": "Értesítések",
|
||||
"HeaderOpenIDConnectAuthentication": "OpenID Connect hitelesítés",
|
||||
"HeaderOpenRSSFeed": "RSS hírcsatorna megnyitása",
|
||||
"HeaderOtherFiles": "Egyéb fájlok",
|
||||
"HeaderPasswordAuthentication": "Jelszó hitelesítés",
|
||||
"HeaderPermissions": "Engedélyek",
|
||||
"HeaderPlayerQueue": "Lejátszó sor",
|
||||
"HeaderPlaylist": "Lejátszási lista",
|
||||
"HeaderPlaylistItems": "Lejátszási lista elemek",
|
||||
"HeaderPodcastsToAdd": "Hozzáadandó podcastok",
|
||||
"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",
|
||||
"HeaderRSSFeedIsOpen": "RSS hírcsatorna nyitva",
|
||||
"HeaderRSSFeeds": "RSS hírcsatornák",
|
||||
"HeaderSavedMediaProgress": "Mentett médialejátszási állapot",
|
||||
"HeaderSchedule": "Ütemezés",
|
||||
"HeaderScheduleLibraryScans": "Könyvtárak automatikus szkennelésének ütemezése",
|
||||
"HeaderSession": "Munkamenet",
|
||||
"HeaderSetBackupSchedule": "Biztonsági másolatok ütemezésének beállítása",
|
||||
"HeaderSettings": "Beállítások",
|
||||
"HeaderSettingsDisplay": "Kijelző",
|
||||
"HeaderSettingsExperimental": "Kísérleti funkciók",
|
||||
"HeaderSettingsGeneral": "Általános",
|
||||
"HeaderSettingsScanner": "Szkenner",
|
||||
"HeaderSleepTimer": "Alvásidőzítő",
|
||||
"HeaderStatsLargestItems": "Legnagyobb elemek",
|
||||
"HeaderStatsLongestItems": "Leghosszabb elemek (órákban)",
|
||||
"HeaderStatsMinutesListeningChart": "Hallgatási percek (az utolsó 7 napban)",
|
||||
"HeaderStatsRecentSessions": "Legutóbbi munkamenetek",
|
||||
"HeaderStatsTop10Authors": "Top 10 szerzők",
|
||||
"HeaderStatsTop5Genres": "Top 5 műfajok",
|
||||
"HeaderTableOfContents": "Tartalomjegyzék",
|
||||
"HeaderTools": "Eszközök",
|
||||
"HeaderUpdateAccount": "Fiók frissítése",
|
||||
"HeaderUpdateAuthor": "Szerző frissítése",
|
||||
"HeaderUpdateDetails": "Részletek frissítése",
|
||||
"HeaderUpdateLibrary": "Könyvtár frissítése",
|
||||
"HeaderUsers": "Felhasználók",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Saját statisztikák",
|
||||
"LabelAbridged": "Tömörített",
|
||||
"LabelAccountType": "Fióktípus",
|
||||
"LabelAccountTypeAdmin": "Admin",
|
||||
"LabelAccountTypeGuest": "Vendég",
|
||||
"LabelAccountTypeUser": "Felhasználó",
|
||||
"LabelActivity": "Tevékenység",
|
||||
"LabelAdded": "Hozzáadva",
|
||||
"LabelAddedAt": "Hozzáadás ideje",
|
||||
"LabelAddToCollection": "Hozzáadás 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",
|
||||
"LabelAddToPlaylistBatch": "{0} elem hozzáadása a lejátszási listához",
|
||||
"LabelAdminUsersOnly": "Csak admin felhasználók",
|
||||
"LabelAll": "Minden",
|
||||
"LabelAllUsers": "Minden felhasználó",
|
||||
"LabelAllUsersExcludingGuests": "Minden felhasználó, vendégek kivételével",
|
||||
"LabelAllUsersIncludingGuests": "Minden felhasználó, beleértve a vendégeket is",
|
||||
"LabelAlreadyInYourLibrary": "Már a könyvtárában van",
|
||||
"LabelAppend": "Hozzáfűzés",
|
||||
"LabelAuthor": "Szerző",
|
||||
"LabelAuthorFirstLast": "Szerző (Keresztnév Vezetéknév)",
|
||||
"LabelAuthorLastFirst": "Szerző (Vezetéknév, Keresztnév)",
|
||||
"LabelAuthors": "Szerzők",
|
||||
"LabelAutoDownloadEpisodes": "Epizódok automatikus letöltése",
|
||||
"LabelAutoFetchMetadata": "Metaadatok automatikus lekérése",
|
||||
"LabelAutoFetchMetadataHelp": "Cím, szerző és sorozat metaadatok automatikus lekérése a feltöltés megkönnyítése érdekében. További metaadatok egyeztetése szükséges lehet a feltöltés után.",
|
||||
"LabelAutoLaunch": "Automatikus indítás",
|
||||
"LabelAutoLaunchDescription": "Automatikus átirányítás az hitelesítő szolgáltatóhoz a bejelentkezési oldalra navigáláskor (kézi felülbírálás útvonala <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "Automatikus regisztráció",
|
||||
"LabelAutoRegisterDescription": "Új felhasználók automatikus létrehozása bejelentkezés után",
|
||||
"LabelBackToUser": "Vissza a felhasználóhoz",
|
||||
"LabelBackupLocation": "Biztonsági másolat helye",
|
||||
"LabelBackupsEnableAutomaticBackups": "Automatikus biztonsági másolatok engedélyezése",
|
||||
"LabelBackupsEnableAutomaticBackupsHelp": "Biztonsági másolatok mentése a /metadata/backups mappába",
|
||||
"LabelBackupsMaxBackupSize": "Maximális biztonsági másolat méret (GB-ban)",
|
||||
"LabelBackupsMaxBackupSizeHelp": "A rossz konfiguráció elleni védelem érdekében a biztonsági másolatok meghiúsulnak, ha meghaladják a beállított méretet.",
|
||||
"LabelBackupsNumberToKeep": "Megtartandó biztonsági másolatok száma",
|
||||
"LabelBackupsNumberToKeepHelp": "Egyszerre csak 1 biztonsági másolat kerül eltávolításra, tehát ha már több biztonsági másolat van, mint ez a szám, akkor manuálisan kell eltávolítani őket.",
|
||||
"LabelBitrate": "Bitráta",
|
||||
"LabelBooks": "Könyvek",
|
||||
"LabelButtonText": "Gomb szövege",
|
||||
"LabelChangePassword": "Jelszó megváltoztatása",
|
||||
"LabelChannels": "Csatornák",
|
||||
"LabelChapters": "Fejezetek",
|
||||
"LabelChaptersFound": "fejezet található",
|
||||
"LabelChapterTitle": "Fejezet címe",
|
||||
"LabelClickForMoreInfo": "További információkért kattintson",
|
||||
"LabelClosePlayer": "Lejátszó bezárása",
|
||||
"LabelCodec": "Kodek",
|
||||
"LabelCollapseSeries": "Sorozat összecsukása",
|
||||
"LabelCollection": "Gyűjtemény",
|
||||
"LabelCollections": "Gyűjtemények",
|
||||
"LabelComplete": "Teljes",
|
||||
"LabelConfirmPassword": "Jelszó megerősítése",
|
||||
"LabelContinueListening": "Hallgatás folytatása",
|
||||
"LabelContinueReading": "Olvasás folytatása",
|
||||
"LabelContinueSeries": "Sorozat folytatása",
|
||||
"LabelCover": "Borító",
|
||||
"LabelCoverImageURL": "Borítókép URL",
|
||||
"LabelCreatedAt": "Létrehozás ideje",
|
||||
"LabelCronExpression": "Cron kifejezés",
|
||||
"LabelCurrent": "Jelenlegi",
|
||||
"LabelCurrently": "Jelenleg:",
|
||||
"LabelCustomCronExpression": "Egyéni Cron kifejezés:",
|
||||
"LabelDatetime": "Dátumidő",
|
||||
"LabelDeleteFromFileSystemCheckbox": "Törlés a fájlrendszerről (ne jelölje be, ha csak az adatbázisból szeretné eltávolítani)",
|
||||
"LabelDescription": "Leírás",
|
||||
"LabelDeselectAll": "Minden kijelölés megszüntetése",
|
||||
"LabelDevice": "Eszköz",
|
||||
"LabelDeviceInfo": "Eszköz információ",
|
||||
"LabelDeviceIsAvailableTo": "Eszköz elérhető a következő számára...",
|
||||
"LabelDirectory": "Könyvtár",
|
||||
"LabelDiscFromFilename": "Lemez a fájlnévből",
|
||||
"LabelDiscFromMetadata": "Lemez a metaadatokból",
|
||||
"LabelDiscover": "Felfedezés",
|
||||
"LabelDownload": "Letöltés",
|
||||
"LabelDownloadNEpisodes": "{0} epizód letöltése",
|
||||
"LabelDuration": "Időtartam",
|
||||
"LabelDurationFound": "Megtalált időtartam:",
|
||||
"LabelEbook": "E-könyv",
|
||||
"LabelEbooks": "E-könyvek",
|
||||
"LabelEdit": "Szerkesztés",
|
||||
"LabelEmail": "E-mail",
|
||||
"LabelEmailSettingsFromAddress": "Feladó címe",
|
||||
"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)",
|
||||
"LabelEmailSettingsTestAddress": "Teszt cím",
|
||||
"LabelEmbeddedCover": "Beágyazott borító",
|
||||
"LabelEnable": "Engedélyezés",
|
||||
"LabelEnd": "Vége",
|
||||
"LabelEpisode": "Epizód",
|
||||
"LabelEpisodeTitle": "Epizód címe",
|
||||
"LabelEpisodeType": "Epizód típusa",
|
||||
"LabelExample": "Példa",
|
||||
"LabelExplicit": "Explicit",
|
||||
"LabelFeedURL": "Hírcsatorna URL",
|
||||
"LabelFetchingMetadata": "Metaadatok lekérése",
|
||||
"LabelFile": "Fájl",
|
||||
"LabelFileBirthtime": "Fájl létrehozásának ideje",
|
||||
"LabelFileModified": "Fájl módosításának ideje",
|
||||
"LabelFilename": "Fájlnév",
|
||||
"LabelFilterByUser": "Szűrés felhasználó szerint",
|
||||
"LabelFindEpisodes": "Epizódok keresése",
|
||||
"LabelFinished": "Befejezett",
|
||||
"LabelFolder": "Mappa",
|
||||
"LabelFolders": "Mappák",
|
||||
"LabelFontBold": "Félkövér",
|
||||
"LabelFontFamily": "Betűtípus család",
|
||||
"LabelFontItalic": "Dőlt",
|
||||
"LabelFontScale": "Betűméret skála",
|
||||
"LabelFontStrikethrough": "Áthúzott",
|
||||
"LabelFormat": "Formátum",
|
||||
"LabelGenre": "Műfaj",
|
||||
"LabelGenres": "Műfajok",
|
||||
"LabelHardDeleteFile": "Fájl végleges törlése",
|
||||
"LabelHasEbook": "Van e-könyve",
|
||||
"LabelHasSupplementaryEbook": "Van kiegészítő e-könyve",
|
||||
"LabelHighestPriority": "Legmagasabb prioritás",
|
||||
"LabelHost": "Hoszt",
|
||||
"LabelHour": "Óra",
|
||||
"LabelIcon": "Ikon",
|
||||
"LabelImageURLFromTheWeb": "Kép URL a weben",
|
||||
"LabelIncludeInTracklist": "Beleértve a sávlistába",
|
||||
"LabelIncomplete": "Befejezetlen",
|
||||
"LabelInProgress": "Folyamatban",
|
||||
"LabelInterval": "Intervallum",
|
||||
"LabelIntervalCustomDailyWeekly": "Egyéni napi/heti",
|
||||
"LabelIntervalEvery12Hours": "Minden 12 órában",
|
||||
"LabelIntervalEvery15Minutes": "Minden 15 percben",
|
||||
"LabelIntervalEvery2Hours": "Minden 2 órában",
|
||||
"LabelIntervalEvery30Minutes": "Minden 30 percben",
|
||||
"LabelIntervalEvery6Hours": "Minden 6 órában",
|
||||
"LabelIntervalEveryDay": "Minden nap",
|
||||
"LabelIntervalEveryHour": "Minden órában",
|
||||
"LabelInvert": "Megfordítás",
|
||||
"LabelItem": "Elem",
|
||||
"LabelLanguage": "Nyelv",
|
||||
"LabelLanguageDefaultServer": "Szerver alapértelmezett nyelve",
|
||||
"LabelLastBookAdded": "Utolsó hozzáadott könyv",
|
||||
"LabelLastBookUpdated": "Utolsó frissített könyv",
|
||||
"LabelLastSeen": "Utolsó látogatás",
|
||||
"LabelLastTime": "Utolsó alkalom",
|
||||
"LabelLastUpdate": "Utolsó frissítés",
|
||||
"LabelLayout": "Elrendezés",
|
||||
"LabelLayoutSinglePage": "Egyoldalas",
|
||||
"LabelLayoutSplitPage": "Kétoldalas",
|
||||
"LabelLess": "Kevesebb",
|
||||
"LabelLibrariesAccessibleToUser": "A felhasználó számára elérhető könyvtárak",
|
||||
"LabelLibrary": "Könyvtár",
|
||||
"LabelLibraryItem": "Könyvtári elem",
|
||||
"LabelLibraryName": "Könyvtár neve",
|
||||
"LabelLimit": "Korlát",
|
||||
"LabelLineSpacing": "Sorköz",
|
||||
"LabelListenAgain": "Újrahallgatás",
|
||||
"LabelLogLevelDebug": "Debug",
|
||||
"LabelLogLevelInfo": "Információ",
|
||||
"LabelLogLevelWarn": "Figyelmeztetés",
|
||||
"LabelLookForNewEpisodesAfterDate": "Új epizódok keresése ezen a dátum után",
|
||||
"LabelLowestPriority": "Legalacsonyabb prioritás",
|
||||
"LabelMatchExistingUsersBy": "Meglévő felhasználók egyeztetése",
|
||||
"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ó",
|
||||
"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",
|
||||
"LabelMetaTags": "Meta címkék",
|
||||
"LabelMinute": "Perc",
|
||||
"LabelMissing": "Hiányzó",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"LabelMobileRedirectURIs": "Engedélyezett mobil átirányítási URI-k",
|
||||
"LabelMobileRedirectURIsDescription": "Ez egy fehérlista az érvényes mobilalkalmazás-átirányítási URI-k számára. Az alapértelmezett <code>audiobookshelf://oauth</code>, amely eltávolítható vagy kiegészíthető további URI-kkal harmadik féltől származó alkalmazásintegráció érdekében. Ha az egyetlen bejegyzés egy csillag (<code>*</code>), akkor bármely URI engedélyezett.",
|
||||
"LabelMore": "Több",
|
||||
"LabelMoreInfo": "További információ",
|
||||
"LabelName": "Név",
|
||||
"LabelNarrator": "Előadó",
|
||||
"LabelNarrators": "Előadók",
|
||||
"LabelNew": "Új",
|
||||
"LabelNewestAuthors": "Legújabb szerzők",
|
||||
"LabelNewestEpisodes": "Legújabb epizódok",
|
||||
"LabelNewPassword": "Új jelszó",
|
||||
"LabelNextBackupDate": "Következő biztonsági másolat dátuma",
|
||||
"LabelNextScheduledRun": "Következő ütemezett futtatás",
|
||||
"LabelNoEpisodesSelected": "Nincsenek kiválasztott epizódok",
|
||||
"LabelNotes": "Megjegyzések",
|
||||
"LabelNotFinished": "Nem befejezett",
|
||||
"LabelNotificationAppriseURL": "Apprise URL(ek)",
|
||||
"LabelNotificationAvailableVariables": "Elérhető változók",
|
||||
"LabelNotificationBodyTemplate": "Törzs sablon",
|
||||
"LabelNotificationEvent": "Értesítési esemény",
|
||||
"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",
|
||||
"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.",
|
||||
"LabelNotificationTitleTemplate": "Cím sablon",
|
||||
"LabelNotStarted": "Nem indult el",
|
||||
"LabelNumberOfBooks": "Könyvek 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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "RSS hírcsatorna megnyitása",
|
||||
"LabelOverwrite": "Felülírás",
|
||||
"LabelPassword": "Jelszó",
|
||||
"LabelPath": "Útvonal",
|
||||
"LabelPermissionsAccessAllLibraries": "Hozzáférhet az összes könyvtárhoz",
|
||||
"LabelPermissionsAccessAllTags": "Hozzáférhet az összes címkéhez",
|
||||
"LabelPermissionsAccessExplicitContent": "Hozzáférhet explicit tartalomhoz",
|
||||
"LabelPermissionsDelete": "Törölhet",
|
||||
"LabelPermissionsDownload": "Letölthet",
|
||||
"LabelPermissionsUpdate": "Frissíthet",
|
||||
"LabelPermissionsUpload": "Feltölthet",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Fénykép útvonal/URL",
|
||||
"LabelPlaylists": "Lejátszási listák",
|
||||
"LabelPlayMethod": "Lejátszási módszer",
|
||||
"LabelPodcast": "Podcast",
|
||||
"LabelPodcasts": "Podcastok",
|
||||
"LabelPodcastSearchRegion": "Podcast keresési régió",
|
||||
"LabelPodcastType": "Podcast típus",
|
||||
"LabelPort": "Port",
|
||||
"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",
|
||||
"LabelPrimaryEbook": "Elsődleges e-könyv",
|
||||
"LabelProgress": "Haladás",
|
||||
"LabelProvider": "Szolgáltató",
|
||||
"LabelPubDate": "Kiadás dátuma",
|
||||
"LabelPublisher": "Kiadó",
|
||||
"LabelPublishYear": "Kiadás éve",
|
||||
"LabelRead": "Olvasás",
|
||||
"LabelReadAgain": "Újraolvasás",
|
||||
"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",
|
||||
"LabelRSSFeedCustomOwnerName": "Egyéni tulajdonos neve",
|
||||
"LabelRSSFeedOpen": "RSS hírcsatorna nyitva",
|
||||
"LabelRSSFeedPreventIndexing": "Indexelés megakadályozása",
|
||||
"LabelRSSFeedSlug": "RSS hírcsatorna slug",
|
||||
"LabelRSSFeedURL": "RSS hírcsatorna URL",
|
||||
"LabelSearchTerm": "Keresési kifejezés",
|
||||
"LabelSearchTitle": "Cím keresése",
|
||||
"LabelSearchTitleOrASIN": "Cím vagy ASIN keresése",
|
||||
"LabelSeason": "Évad",
|
||||
"LabelSelectAllEpisodes": "Összes epizód kiválasztása",
|
||||
"LabelSelectEpisodesShowing": "Kiválasztás {0} megjelenített epizód",
|
||||
"LabelSelectUsers": "Felhasználók kiválasztása",
|
||||
"LabelSendEbookToDevice": "E-könyv küldése...",
|
||||
"LabelSequence": "Sorozat",
|
||||
"LabelSeries": "Sorozat",
|
||||
"LabelSeriesName": "Sorozat neve",
|
||||
"LabelSeriesProgress": "Sorozat haladása",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Beállítás elsődlegesként",
|
||||
"LabelSetEbookAsSupplementary": "Beállítás kiegészítőként",
|
||||
"LabelSettingsAudiobooksOnly": "Csak hangoskönyvek",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "Ennek a beállításnak az engedélyezése figyelmen kívül hagyja az e-könyv fájlokat, kivéve, ha azok egy hangoskönyv mappában vannak, ebben az esetben kiegészítő e-könyvként lesznek beállítva",
|
||||
"LabelSettingsBookshelfViewHelp": "Skeuomorfikus dizájn fa polcokkal",
|
||||
"LabelSettingsChromecastSupport": "Chromecast támogatás",
|
||||
"LabelSettingsDateFormat": "Dátumformátum",
|
||||
"LabelSettingsDisableWatcher": "Figyelő letiltása",
|
||||
"LabelSettingsDisableWatcherForLibrary": "Mappafigyelő letiltása a könyvtárban",
|
||||
"LabelSettingsDisableWatcherHelp": "Letiltja az automatikus elem hozzáadás/frissítés funkciót, amikor fájlváltozásokat észlel. *Szerver újraindítása szükséges",
|
||||
"LabelSettingsEnableWatcher": "Figyelő engedélyezése",
|
||||
"LabelSettingsEnableWatcherForLibrary": "Mappafigyelő engedélyezése a könyvtárban",
|
||||
"LabelSettingsEnableWatcherHelp": "Engedélyezi az automatikus elem hozzáadás/frissítés funkciót, amikor fájlváltozásokat észlel. *Szerver újraindítása szükséges",
|
||||
"LabelSettingsExperimentalFeatures": "Kísérleti funkciók",
|
||||
"LabelSettingsExperimentalFeaturesHelp": "Fejlesztés alatt álló funkciók, amelyek visszajelzésre és tesztelésre szorulnak. Kattintson a github megbeszélés megnyitásához.",
|
||||
"LabelSettingsFindCovers": "Borítók keresése",
|
||||
"LabelSettingsFindCoversHelp": "Ha a hangoskönyvnek nincs beágyazott borítója vagy borítóképe a mappában, a szkenner megpróbálja megtalálni a borítót.<br>Megjegyzés: Ez meghosszabbítja a szkennelési időt",
|
||||
"LabelSettingsHideSingleBookSeries": "Egykönyves sorozatok elrejtése",
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "A csak egy könyvet tartalmazó sorozatok el lesznek rejtve a sorozatok oldalról és a kezdőlap polcairól.",
|
||||
"LabelSettingsHomePageBookshelfView": "Kezdőlap használja a könyvespolc nézetet",
|
||||
"LabelSettingsLibraryBookshelfView": "Könyvtár használja a könyvespolc nézetet",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Feliratok elemzése",
|
||||
"LabelSettingsParseSubtitlesHelp": "Feliratok kinyerése a hangoskönyv mappaneveiből.<br>A feliratnak el kell különülnie egy \" - \" jellel<br>például: \"Könyv címe - Egy felirat itt\" esetén a felirat \"Egy felirat itt\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Preferált egyeztetett metaadatok",
|
||||
"LabelSettingsPreferMatchedMetadataHelp": "Az egyeztetett adatok felülírják az elem részleteit a Gyors egyeztetés használatakor. Alapértelmezés szerint a Gyors egyeztetés csak a hiányzó részleteket tölti ki.",
|
||||
"LabelSettingsSkipMatchingBooksWithASIN": "Már ASIN-nel rendelkező könyvek egyeztetésének kihagyása",
|
||||
"LabelSettingsSkipMatchingBooksWithISBN": "Már ISBN-nel rendelkező könyvek egyeztetésének kihagyása",
|
||||
"LabelSettingsSortingIgnorePrefixes": "Előtagok figyelmen kívül hagyása rendezéskor",
|
||||
"LabelSettingsSortingIgnorePrefixesHelp": "például az \"a\" előtag esetén a \"A könyv címe\" könyv címe \"Könyv címe, A\" szerint rendeződik",
|
||||
"LabelSettingsSquareBookCovers": "Négyzet alakú könyvborítók használata",
|
||||
"LabelSettingsSquareBookCoversHelp": "Négyzet alakú borítók használata az 1,6:1 arányú standard könyvborítók helyett",
|
||||
"LabelSettingsStoreCoversWithItem": "Borítók tárolása az elemmel",
|
||||
"LabelSettingsStoreCoversWithItemHelp": "Alapértelmezés szerint a borítók a /metadata/items mappában vannak tárolva, ennek a beállításnak az engedélyezése a borítókat a könyvtári elem mappájában tárolja. Csak egy \"cover\" nevű fájl lesz megtartva",
|
||||
"LabelSettingsStoreMetadataWithItem": "Metaadatok tárolása az elemmel",
|
||||
"LabelSettingsStoreMetadataWithItemHelp": "Alapértelmezés szerint a metaadatfájlok a /metadata/items mappában vannak tárolva, ennek a beállításnak az engedélyezése a metaadatfájlokat a könyvtári elem mappáiban tárolja",
|
||||
"LabelSettingsTimeFormat": "Időformátum",
|
||||
"LabelShowAll": "Mindent mutat",
|
||||
"LabelSize": "Méret",
|
||||
"LabelSleepTimer": "Alvásidőzítő",
|
||||
"LabelSlug": "Rövid cím",
|
||||
"LabelStart": "Kezdés",
|
||||
"LabelStarted": "Elkezdődött",
|
||||
"LabelStartedAt": "Kezdés ideje",
|
||||
"LabelStartTime": "Kezdési idő",
|
||||
"LabelStatsAudioTracks": "Audiósávok",
|
||||
"LabelStatsAuthors": "Szerzők",
|
||||
"LabelStatsBestDay": "Legjobb nap",
|
||||
"LabelStatsDailyAverage": "Napi átlag",
|
||||
"LabelStatsDays": "Napok",
|
||||
"LabelStatsDaysListened": "Hallgatott napok",
|
||||
"LabelStatsHours": "Órák",
|
||||
"LabelStatsInARow": "egymás után",
|
||||
"LabelStatsItemsFinished": "Befejezett elemek",
|
||||
"LabelStatsItemsInLibrary": "Elemek a könyvtárban",
|
||||
"LabelStatsMinutes": "percek",
|
||||
"LabelStatsMinutesListening": "Hallgatási percek",
|
||||
"LabelStatsOverallDays": "Összes nap",
|
||||
"LabelStatsOverallHours": "Összes óra",
|
||||
"LabelStatsWeekListening": "Heti hallgatás",
|
||||
"LabelSubtitle": "Felirat",
|
||||
"LabelSupportedFileTypes": "Támogatott fájltípusok",
|
||||
"LabelTag": "Címke",
|
||||
"LabelTags": "Címkék",
|
||||
"LabelTagsAccessibleToUser": "A felhasználó számára elérhető címkék",
|
||||
"LabelTagsNotAccessibleToUser": "A felhasználó számára nem elérhető címkék",
|
||||
"LabelTasks": "Futó feladatok",
|
||||
"LabelTextEditorBulletedList": "Pontozott lista",
|
||||
"LabelTextEditorLink": "Link",
|
||||
"LabelTextEditorNumberedList": "Számozott lista",
|
||||
"LabelTextEditorUnlink": "Link eltávolítása",
|
||||
"LabelTheme": "Téma",
|
||||
"LabelThemeDark": "Sötét",
|
||||
"LabelThemeLight": "Világos",
|
||||
"LabelTimeBase": "Időalap",
|
||||
"LabelTimeListened": "Hallgatott idő",
|
||||
"LabelTimeListenedToday": "Ma hallgatott idő",
|
||||
"LabelTimeRemaining": "{0} maradt",
|
||||
"LabelTimeToShift": "Eltolás ideje másodpercben",
|
||||
"LabelTitle": "Cím",
|
||||
"LabelToolsEmbedMetadata": "Metaadatok beágyazása",
|
||||
"LabelToolsEmbedMetadataDescription": "Metaadatok beágyazása az audiofájlokba, beleértve a borítóképet és a fejezeteket.",
|
||||
"LabelToolsMakeM4b": "M4B Hangoskönyv fájl készítése",
|
||||
"LabelToolsMakeM4bDescription": ".M4B hangoskönyv fájl generálása beágyazott metaadatokkal, borítóképpel és fejezetekkel.",
|
||||
"LabelToolsSplitM4b": "M4B felosztása MP3-ra",
|
||||
"LabelToolsSplitM4bDescription": "MP3 fájlok létrehozása egy M4B-ből, fejezetenként felosztva, beágyazott metaadatokkal, borítóképpel és fejezetekkel.",
|
||||
"LabelTotalDuration": "Teljes időtartam",
|
||||
"LabelTotalTimeListened": "Teljes hallgatási idő",
|
||||
"LabelTrackFromFilename": "Sáv a fájlnévből",
|
||||
"LabelTrackFromMetadata": "Sáv a metaadatokból",
|
||||
"LabelTracks": "Sávok",
|
||||
"LabelTracksMultiTrack": "Többsávos",
|
||||
"LabelTracksNone": "Nincsenek sávok",
|
||||
"LabelTracksSingleTrack": "Egysávos",
|
||||
"LabelType": "Típus",
|
||||
"LabelUnabridged": "Nem tömörített",
|
||||
"LabelUndo": "Visszavonás",
|
||||
"LabelUnknown": "Ismeretlen",
|
||||
"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",
|
||||
"LabelUpdatedAt": "Frissítve",
|
||||
"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",
|
||||
"LabelUploaderDragAndDrop": "Fájlok vagy mappák húzása és elengedése",
|
||||
"LabelUploaderDropFiles": "Fájlok elengedése",
|
||||
"LabelUploaderItemFetchMetadataHelp": "Cím, szerző és sorozat automatikus lekérése",
|
||||
"LabelUseChapterTrack": "Fejezetsáv használata",
|
||||
"LabelUseFullTrack": "Teljes sáv használata",
|
||||
"LabelUser": "Felhasználó",
|
||||
"LabelUsername": "Felhasználónév",
|
||||
"LabelValue": "Érték",
|
||||
"LabelVersion": "Verzió",
|
||||
"LabelViewBookmarks": "Könyvjelzők megtekintése",
|
||||
"LabelViewChapters": "Fejezetek megtekintése",
|
||||
"LabelViewQueue": "Lejátszó sor megtekintése",
|
||||
"LabelVolume": "Hangerő",
|
||||
"LabelWeekdaysToRun": "Futás napjai",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Hangoskönyv időtartama",
|
||||
"LabelYourBookmarks": "Könyvjelzőid",
|
||||
"LabelYourPlaylists": "Lejátszási listáid",
|
||||
"LabelYourProgress": "Haladásod",
|
||||
"MessageAddToPlayerQueue": "Hozzáadás a lejátszó sorhoz",
|
||||
"MessageAppriseDescription": "Ennek a funkció használatához futtatnia kell egy <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> példányt vagy egy olyan API-t, amely kezeli ezeket a kéréseket. <br />Az Apprise API URL-nek a teljes URL útvonalat kell tartalmaznia az értesítés elküldéséhez, például, ha az API példánya a <code>http://192.168.1.1:8337</code> címen szolgáltatva, akkor <code>http://192.168.1.1:8337/notify</code> értéket kell megadnia.",
|
||||
"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.",
|
||||
"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",
|
||||
"MessageBookshelfNoSeries": "Nincsenek sorozatai",
|
||||
"MessageChapterEndIsAfter": "A fejezet vége a hangoskönyv végét követi",
|
||||
"MessageChapterErrorFirstNotZero": "Az első fejezetnek 0:00-kor kell kezdődnie",
|
||||
"MessageChapterErrorStartGteDuration": "Érvénytelen kezdési idő, kevesebbnek kell lennie, mint a hangoskönyv időtartama",
|
||||
"MessageChapterErrorStartLtPrev": "Érvénytelen kezdési idő, nagyobbnak kell lennie, mint az előző fejezet kezdési ideje",
|
||||
"MessageChapterStartIsAfter": "A fejezet kezdete a hangoskönyv végét követi",
|
||||
"MessageCheckingCron": "Cron ellenőrzése...",
|
||||
"MessageConfirmCloseFeed": "Biztosan be szeretné zárni ezt a hírcsatornát?",
|
||||
"MessageConfirmDeleteBackup": "Biztosan törölni szeretné a(z) {0} biztonsági másolatot?",
|
||||
"MessageConfirmDeleteFile": "Ez törölni fogja a fájlt a fájlrendszerből. Biztos benne?",
|
||||
"MessageConfirmDeleteLibrary": "Biztosan véglegesen törölni szeretné a(z) \"{0}\" könyvtárat?",
|
||||
"MessageConfirmDeleteLibraryItem": "Ez eltávolítja a könyvtári elemet az adatbázisból és a fájlrendszerből. Biztos benne?",
|
||||
"MessageConfirmDeleteLibraryItems": "Ez eltávolítja a(z) {0} könyvtári elemet az adatbázisból és a fájlrendszerből. Biztos benne?",
|
||||
"MessageConfirmDeleteSession": "Biztosan törölni szeretné ezt a munkamenetet?",
|
||||
"MessageConfirmForceReScan": "Biztosan kényszeríteni szeretné az újraszkennelést?",
|
||||
"MessageConfirmMarkAllEpisodesFinished": "Biztosan meg szeretné jelölni az összes epizódot befejezettnek?",
|
||||
"MessageConfirmMarkAllEpisodesNotFinished": "Biztosan meg szeretné jelölni az összes epizódot nem 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?",
|
||||
"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?",
|
||||
"MessageConfirmRemoveAllChapters": "Biztosan eltávolítja az összes fejezetet?",
|
||||
"MessageConfirmRemoveAuthor": "Biztosan eltávolítja a(z) \"{0}\" szerzőt?",
|
||||
"MessageConfirmRemoveCollection": "Biztosan eltávolítja a(z) \"{0}\" gyűjteményt?",
|
||||
"MessageConfirmRemoveEpisode": "Biztosan eltávolítja a(z) \"{0}\" epizódot?",
|
||||
"MessageConfirmRemoveEpisodes": "Biztosan eltávolítja a(z) {0} epizódot?",
|
||||
"MessageConfirmRemoveListeningSessions": "Biztosan eltávolítja a(z) {0} hallgatási munkamenetet?",
|
||||
"MessageConfirmRemoveNarrator": "Biztosan eltávolítja a(z) \"{0}\" előadót?",
|
||||
"MessageConfirmRemovePlaylist": "Biztosan eltávolítja a(z) \"{0}\" lejátszási listáját?",
|
||||
"MessageConfirmRenameGenre": "Biztosan át szeretné nevezni a(z) \"{0}\" műfajt \"{1}\"-re az összes elemnél?",
|
||||
"MessageConfirmRenameGenreMergeNote": "Megjegyzés: Ez a műfaj már létezik, így össze lesznek vonva.",
|
||||
"MessageConfirmRenameGenreWarning": "Figyelem! Egy hasonló, de eltérő nagybetűkkel rendelkező műfaj már létezik \"{0}\".",
|
||||
"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.",
|
||||
"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?",
|
||||
"MessageDownloadingEpisode": "Epizód letöltése",
|
||||
"MessageDragFilesIntoTrackOrder": "Húzza a fájlokat a helyes sávrendbe",
|
||||
"MessageEmbedFinished": "Beágyazás befejeződött!",
|
||||
"MessageEpisodesQueuedForDownload": "{0} Epizód letöltésre várakozik",
|
||||
"MessageFeedURLWillBe": "A hírcsatorna URL-je {0} lesz",
|
||||
"MessageFetching": "Lekérés...",
|
||||
"MessageForceReScanDescription": "minden fájlt újra szkennel, mint egy friss szkennelés. Az audiofájlok ID3 címkéi, OPF fájlok és szövegfájlok újként lesznek szkennelve.",
|
||||
"MessageImportantNotice": "Fontos közlemény!",
|
||||
"MessageInsertChapterBelow": "Fejezet beszúrása alulra",
|
||||
"MessageItemsSelected": "{0} kiválasztott elem",
|
||||
"MessageItemsUpdated": "{0} frissített elem",
|
||||
"MessageJoinUsOn": "Csatlakozzon hozzánk: ",
|
||||
"MessageListeningSessionsInTheLastYear": "{0} hallgatási munkamenet az elmúlt évben",
|
||||
"MessageLoading": "Betöltés...",
|
||||
"MessageLoadingFolders": "Mappák betöltése...",
|
||||
"MessageM4BFailed": "M4B sikertelen!",
|
||||
"MessageM4BFinished": "M4B befejeződött!",
|
||||
"MessageMapChapterTitles": "Fejezetcímek hozzárendelése a meglévő hangoskönyv fejezeteihez anélkül, hogy az időbélyegeket módosítaná",
|
||||
"MessageMarkAllEpisodesFinished": "Az összes epizód megjelölése befejezettnek",
|
||||
"MessageMarkAllEpisodesNotFinished": "Az összes epizód megjelölése nem befejezettnek",
|
||||
"MessageMarkAsFinished": "Megjelölés befejezettnek",
|
||||
"MessageMarkAsNotFinished": "Megjelölés nem befejezettnek",
|
||||
"MessageMatchBooksDescription": "megpróbálja egyeztetni a könyvtár könyveit egy kiválasztott keresési szolgáltató könyvével, és kitölti az üres részleteket és a borítót. Nem írja felül a részleteket.",
|
||||
"MessageNoAudioTracks": "Nincsenek audiósávok",
|
||||
"MessageNoAuthors": "Nincsenek szerzők",
|
||||
"MessageNoBackups": "Nincsenek biztonsági másolatok",
|
||||
"MessageNoBookmarks": "Nincsenek könyvjelzők",
|
||||
"MessageNoChapters": "Nincsenek fejezetek",
|
||||
"MessageNoCollections": "Nincsenek gyűjtemények",
|
||||
"MessageNoCoversFound": "Nem találhatóak borítók",
|
||||
"MessageNoDescription": "Nincs leírás",
|
||||
"MessageNoDownloadsInProgress": "Jelenleg nincsenek folyamatban lévő letöltések",
|
||||
"MessageNoDownloadsQueued": "Nincsenek várakozó letöltések",
|
||||
"MessageNoEpisodeMatchesFound": "Nincs találat az epizódokra",
|
||||
"MessageNoEpisodes": "Nincsenek epizódok",
|
||||
"MessageNoFoldersAvailable": "Nincsenek elérhető mappák",
|
||||
"MessageNoGenres": "Nincsenek műfajok",
|
||||
"MessageNoIssues": "Nincsenek problémák",
|
||||
"MessageNoItems": "Nincsenek elemek",
|
||||
"MessageNoItemsFound": "Nem találhatóak elemek",
|
||||
"MessageNoListeningSessions": "Nincsenek hallgatási munkamenetek",
|
||||
"MessageNoLogs": "Nincsenek naplók",
|
||||
"MessageNoMediaProgress": "Nincs előrehaladás a médialejátszásban",
|
||||
"MessageNoNotifications": "Nincsenek értesítések",
|
||||
"MessageNoPodcastsFound": "Nem találhatóak podcastok",
|
||||
"MessageNoResults": "Nincsenek eredmények",
|
||||
"MessageNoSearchResultsFor": "Nincs keresési eredmény erre: \"{0}\"",
|
||||
"MessageNoSeries": "Nincsenek sorozatok",
|
||||
"MessageNoTags": "Nincsenek címkék",
|
||||
"MessageNoTasksRunning": "Nincsenek futó feladatok",
|
||||
"MessageNotYetImplemented": "Még nem implementált",
|
||||
"MessageNoUpdateNecessary": "Nincs szükség frissítésre",
|
||||
"MessageNoUpdatesWereNecessary": "Nem volt szükség frissítésekre",
|
||||
"MessageNoUserPlaylists": "Nincsenek felhasználói lejátszási listák",
|
||||
"MessageOr": "vagy",
|
||||
"MessagePauseChapter": "Fejezet lejátszásának szüneteltetése",
|
||||
"MessagePlayChapter": "Fejezet elejének meghallgatása",
|
||||
"MessagePlaylistCreateFromCollection": "Lejátszási lista létrehozása gyűjteményből",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "A podcastnak nincs RSS hírcsatorna URL-je az egyeztetéshez",
|
||||
"MessageQuickMatchDescription": "Üres elem részletek és borító feltöltése az első találati eredménnyel a(z) '{0}'-ból. Nem írja felül a részleteket, kivéve, ha a 'Preferált egyeztetett metaadatok' szerverbeállítás engedélyezve van.",
|
||||
"MessageRemoveChapter": "Fejezet eltávolítása",
|
||||
"MessageRemoveEpisodes": "Epizód(ok) eltávolítása: {0}",
|
||||
"MessageRemoveFromPlayerQueue": "Eltávolítás a lejátszási sorból",
|
||||
"MessageRemoveUserWarning": "Biztosan véglegesen törölni szeretné a(z) \"{0}\" felhasználót?",
|
||||
"MessageReportBugsAndContribute": "Hibák jelentése, funkciók kérése és hozzájárulás itt:",
|
||||
"MessageResetChaptersConfirm": "Biztosan alaphelyzetbe szeretné állítani a fejezeteket és visszavonni a módosításokat?",
|
||||
"MessageRestoreBackupConfirm": "Biztosan vissza szeretné állítani a biztonsági másolatot, amely ekkor készült:",
|
||||
"MessageRestoreBackupWarning": "A biztonsági mentés visszaállítása felülírja az egész adatbázist, amely a /config mappában található, valamint a borítóképeket a /metadata/items és /metadata/authors mappákban.<br /><br />A biztonsági mentések nem módosítják a könyvtár mappáiban található fájlokat. Ha engedélyezte a szerverbeállításokat a borítóképek és a metaadatok könyvtármappákban való tárolására, akkor ezek nem kerülnek biztonsági mentésre vagy felülírásra.<br /><br />A szerver használó összes kliens automatikusan frissül.",
|
||||
"MessageSearchResultsFor": "Keresési eredmények",
|
||||
"MessageSelected": "{0} kiválasztva",
|
||||
"MessageServerCouldNotBeReached": "A szervert nem lehet elérni",
|
||||
"MessageSetChaptersFromTracksDescription": "Fejezetek beállítása minden egyes hangfájlt egy fejezetként használva, és a fejezet címét a hangfájl neveként",
|
||||
"MessageStartPlaybackAtTime": "\"{0}\" lejátszásának kezdése {1} -tól?",
|
||||
"MessageThinking": "Gondolkodás...",
|
||||
"MessageUploaderItemFailed": "A feltöltés sikertelen",
|
||||
"MessageUploaderItemSuccess": "Sikeresen feltöltve!",
|
||||
"MessageUploading": "Feltöltés...",
|
||||
"MessageValidCronExpression": "Érvényes cron kifejezés",
|
||||
"MessageWatcherIsDisabledGlobally": "A megfigyelő globálisan le van tiltva a szerver beállításokban",
|
||||
"MessageXLibraryIsEmpty": "{0} könyvtár üres!",
|
||||
"MessageYourAudiobookDurationIsLonger": "Az Ön hangoskönyvének hossza hosszabb, mint a talált időtartam",
|
||||
"MessageYourAudiobookDurationIsShorter": "Az Ön hangoskönyvének hossza rövidebb, mint a talált időtartam",
|
||||
"NoteChangeRootPassword": "A Root felhasználó az egyetlen felhasználó, akinek lehet üres jelszava",
|
||||
"NoteChapterEditorTimes": "Megjegyzés: Az első fejezet kezdőidejének 0:00 kell lennie, és az utolsó fejezet kezdőideje nem haladhatja meg a hangoskönyv időtartamát.",
|
||||
"NoteFolderPicker": "Megjegyzés: azok a mappák, amelyek már hozzá vannak rendelve, nem jelennek meg",
|
||||
"NoteRSSFeedPodcastAppsHttps": "Figyelem: A legtöbb podcast alkalmazás megköveteli, hogy az RSS feed URL HTTPS-t használjon",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "Figyelem: Az egy vagy több epizódnak nincs Közzétételi dátuma. Néhány podcast alkalmazás ezt megköveteli.",
|
||||
"NoteUploaderFoldersWithMediaFiles": "A médiafájlokat tartalmazó mappák külön könyvtári tételekként lesznek kezelve.",
|
||||
"NoteUploaderOnlyAudioFiles": "Ha csak hangfájlokat tölt fel, akkor minden egyes hangfájl külön hangoskönyvként lesz kezelve.",
|
||||
"NoteUploaderUnsupportedFiles": "A nem támogatott fájlok figyelmen kívül hagyásra kerülnek. Mappa kiválasztása vagy elengedésekor az elem mappáján kívüli egyéb fájlok figyelmen kívül lesznek hagyva.",
|
||||
"PlaceholderNewCollection": "Új gyűjtemény neve",
|
||||
"PlaceholderNewFolderPath": "Új mappa útvonala",
|
||||
"PlaceholderNewPlaylist": "Új lejátszási lista neve",
|
||||
"PlaceholderSearch": "Keresés..",
|
||||
"PlaceholderSearchEpisode": "Epizód keresése..",
|
||||
"ToastAccountUpdateFailed": "A fiók frissítése sikertelen",
|
||||
"ToastAccountUpdateSuccess": "Fiók frissítve",
|
||||
"ToastAuthorImageRemoveFailed": "A kép eltávolítása sikertelen",
|
||||
"ToastAuthorImageRemoveSuccess": "Szerző képe eltávolítva",
|
||||
"ToastAuthorUpdateFailed": "A szerző frissítése sikertelen",
|
||||
"ToastAuthorUpdateMerged": "Szerző összevonva",
|
||||
"ToastAuthorUpdateSuccess": "Szerző frissítve",
|
||||
"ToastAuthorUpdateSuccessNoImageFound": "Szerző frissítve (nem található kép)",
|
||||
"ToastBackupCreateFailed": "A biztonsági mentés létrehozása sikertelen",
|
||||
"ToastBackupCreateSuccess": "Biztonsági mentés létrehozva",
|
||||
"ToastBackupDeleteFailed": "A biztonsági mentés törlése sikertelen",
|
||||
"ToastBackupDeleteSuccess": "Biztonsági mentés törölve",
|
||||
"ToastBackupRestoreFailed": "A biztonsági mentés visszaállítása sikertelen",
|
||||
"ToastBackupUploadFailed": "A biztonsági mentés feltöltése sikertelen",
|
||||
"ToastBackupUploadSuccess": "Biztonsági mentés feltöltve",
|
||||
"ToastBatchUpdateFailed": "Kötegelt frissítés sikertelen",
|
||||
"ToastBatchUpdateSuccess": "Kötegelt frissítés sikeres",
|
||||
"ToastBookmarkCreateFailed": "Könyvjelző létrehozása sikertelen",
|
||||
"ToastBookmarkCreateSuccess": "Könyvjelző hozzáadva",
|
||||
"ToastBookmarkRemoveFailed": "Könyvjelző eltávolítása sikertelen",
|
||||
"ToastBookmarkRemoveSuccess": "Könyvjelző eltávolítva",
|
||||
"ToastBookmarkUpdateFailed": "Könyvjelző frissítése sikertelen",
|
||||
"ToastBookmarkUpdateSuccess": "Könyvjelző frissítve",
|
||||
"ToastChaptersHaveErrors": "A fejezetek hibákat tartalmaznak",
|
||||
"ToastChaptersMustHaveTitles": "A fejezeteknek címekkel kell rendelkezniük",
|
||||
"ToastCollectionItemsRemoveFailed": "Elem(ek) eltávolítása a gyűjteményből sikertelen",
|
||||
"ToastCollectionItemsRemoveSuccess": "Elem(ek) eltávolítva a gyűjteményből",
|
||||
"ToastCollectionRemoveFailed": "Gyűjtemény eltávolítása sikertelen",
|
||||
"ToastCollectionRemoveSuccess": "Gyűjtemény eltávolítva",
|
||||
"ToastCollectionUpdateFailed": "Gyűjtemény frissítése sikertelen",
|
||||
"ToastCollectionUpdateSuccess": "Gyűjtemény frissítve",
|
||||
"ToastItemCoverUpdateFailed": "Elem borítójának frissítése sikertelen",
|
||||
"ToastItemCoverUpdateSuccess": "Elem borítója frissítve",
|
||||
"ToastItemDetailsUpdateFailed": "Elem részleteinek frissítése sikertelen",
|
||||
"ToastItemDetailsUpdateSuccess": "Elem részletei frissítve",
|
||||
"ToastItemDetailsUpdateUnneeded": "Nincsenek szükséges frissítések a tétel részletein",
|
||||
"ToastItemMarkedAsFinishedFailed": "Megjelölés Befejezettként sikertelen",
|
||||
"ToastItemMarkedAsFinishedSuccess": "Elem megjelölve Befejezettként",
|
||||
"ToastItemMarkedAsNotFinishedFailed": "Nem sikerült Nem Befejezettként megjelölni az elemet",
|
||||
"ToastItemMarkedAsNotFinishedSuccess": "Elem megjelölve Nem Befejezettként",
|
||||
"ToastLibraryCreateFailed": "Könyvtár létrehozása sikertelen",
|
||||
"ToastLibraryCreateSuccess": "\"{0}\" könyvtár létrehozva",
|
||||
"ToastLibraryDeleteFailed": "Könyvtár törlése sikertelen",
|
||||
"ToastLibraryDeleteSuccess": "Könyvtár törölve",
|
||||
"ToastLibraryScanFailedToStart": "A beolvasás elindítása sikertelen",
|
||||
"ToastLibraryScanStarted": "Könyvtár beolvasása elindítva",
|
||||
"ToastLibraryUpdateFailed": "Könyvtár frissítése sikertelen",
|
||||
"ToastLibraryUpdateSuccess": "\"{0}\" könyvtár frissítve",
|
||||
"ToastPlaylistCreateFailed": "Lejátszási lista létrehozása sikertelen",
|
||||
"ToastPlaylistCreateSuccess": "Lejátszási lista létrehozva",
|
||||
"ToastPlaylistRemoveFailed": "Lejátszási lista eltávolítása sikertelen",
|
||||
"ToastPlaylistRemoveSuccess": "Lejátszási lista eltávolítva",
|
||||
"ToastPlaylistUpdateFailed": "Lejátszási lista frissítése sikertelen",
|
||||
"ToastPlaylistUpdateSuccess": "Lejátszási lista frissítve",
|
||||
"ToastPodcastCreateFailed": "Podcast létrehozása sikertelen",
|
||||
"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",
|
||||
"ToastRSSFeedCloseSuccess": "RSS feed bezárva",
|
||||
"ToastSendEbookToDeviceFailed": "E-könyv küldése az eszközre sikertelen",
|
||||
"ToastSendEbookToDeviceSuccess": "E-könyv elküldve az eszközre \"{0}\"",
|
||||
"ToastSeriesUpdateFailed": "Sorozat frissítése sikertelen",
|
||||
"ToastSeriesUpdateSuccess": "Sorozat frissítése sikeres",
|
||||
"ToastSessionDeleteFailed": "Munkamenet törlése sikertelen",
|
||||
"ToastSessionDeleteSuccess": "Munkamenet törölve",
|
||||
"ToastSocketConnected": "Socket csatlakoztatva",
|
||||
"ToastSocketDisconnected": "Socket lecsatlakoztatva",
|
||||
"ToastSocketFailedToConnect": "A Socket csatlakoztatása sikertelen",
|
||||
"ToastUserDeleteFailed": "Felhasználó törlése sikertelen",
|
||||
"ToastUserDeleteSuccess": "Felhasználó törölve"
|
||||
}
|
||||
@@ -32,8 +32,8 @@
|
||||
"ButtonHide": "Nascondi",
|
||||
"ButtonHome": "Home",
|
||||
"ButtonIssues": "Errori",
|
||||
"ButtonJumpBackward": "Jump Backward",
|
||||
"ButtonJumpForward": "Jump Forward",
|
||||
"ButtonJumpBackward": "Salta indietro",
|
||||
"ButtonJumpForward": "Salta Avanti",
|
||||
"ButtonLatest": "Ultimi",
|
||||
"ButtonLibrary": "Libreria",
|
||||
"ButtonLogout": "Disconnetti",
|
||||
@@ -43,15 +43,17 @@
|
||||
"ButtonMatchAllAuthors": "Aggiungi metadata agli Autori",
|
||||
"ButtonMatchBooks": "Aggiungi metadata della Libreria",
|
||||
"ButtonNevermind": "Nevermind",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonNext": "Prossimo",
|
||||
"ButtonNextChapter": "Prossimo Capitolo",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Apri Feed",
|
||||
"ButtonOpenManager": "Apri Manager",
|
||||
"ButtonPause": "Pause",
|
||||
"ButtonPause": "Pausa",
|
||||
"ButtonPlay": "Play",
|
||||
"ButtonPlaying": "In Riproduzione",
|
||||
"ButtonPlaylists": "Playlists",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPrevious": "Precendente",
|
||||
"ButtonPreviousChapter": "Capitolo Precendente",
|
||||
"ButtonPurgeAllCache": "Elimina tutta la Cache",
|
||||
"ButtonPurgeItemsCache": "Elimina la Cache selezionata",
|
||||
"ButtonPurgeMediaProgress": "Elimina info dei media ascoltati",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Rimuovi dalla Coda",
|
||||
"ButtonQuickMatch": "Controlla Metadata Auto",
|
||||
"ButtonRead": "Leggi",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Rimuovi",
|
||||
"ButtonRemoveAll": "Rimuovi Tutto",
|
||||
"ButtonRemoveAllLibraryItems": "Rimuovi tutto il contenuto della libreria",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Seleziona percorso cartella",
|
||||
"ButtonSeries": "Serie",
|
||||
"ButtonSetChaptersFromTracks": "Impostare i capitoli dalle tracce",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Ricerca veloce",
|
||||
"ButtonShow": "Mostra",
|
||||
"ButtonStartM4BEncode": "Inizia L'Encode del M4B",
|
||||
@@ -92,15 +96,15 @@
|
||||
"ButtonUserEdit": "Modifica Utente {0}",
|
||||
"ButtonViewAll": "Mostra Tutto",
|
||||
"ButtonYes": "Si",
|
||||
"ErrorUploadFetchMetadataAPI": "Error fetching metadata",
|
||||
"ErrorUploadFetchMetadataNoResults": "Could not fetch metadata - try updating title and/or author",
|
||||
"ErrorUploadLacksTitle": "Must have a title",
|
||||
"ErrorUploadFetchMetadataAPI": "Errore Recupero metadati",
|
||||
"ErrorUploadFetchMetadataNoResults": "Impossibile recuperare i metadati: prova a modificate il titolo e/o l'autore",
|
||||
"ErrorUploadLacksTitle": "Deve avere un titolo",
|
||||
"HeaderAccount": "Account",
|
||||
"HeaderAdvanced": "Avanzate",
|
||||
"HeaderAppriseNotificationSettings": "Apprendi le impostazioni di Notifica",
|
||||
"HeaderAudiobookTools": "Utilità Audiobook File Management",
|
||||
"HeaderAudioTracks": "Tracce Audio",
|
||||
"HeaderAuthentication": "Authentication",
|
||||
"HeaderAuthentication": "Authenticazione",
|
||||
"HeaderBackups": "Backup",
|
||||
"HeaderChangePassword": "Cambia Password",
|
||||
"HeaderChapters": "Capitoli",
|
||||
@@ -109,9 +113,9 @@
|
||||
"HeaderCollectionItems": "Elementi della Raccolta",
|
||||
"HeaderCover": "Cover",
|
||||
"HeaderCurrentDownloads": "Download Correnti",
|
||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||
"HeaderCustomMetadataProviders": " Metadata Providers Personalizzato",
|
||||
"HeaderDetails": "Dettagli",
|
||||
"HeaderDownloadQueue": "Download Queue",
|
||||
"HeaderDownloadQueue": "Download coda",
|
||||
"HeaderEbookFiles": "Ebook File",
|
||||
"HeaderEmail": "Email",
|
||||
"HeaderEmailSettings": "Email Settings",
|
||||
@@ -136,7 +140,7 @@
|
||||
"HeaderManageTags": "Gestisci Tags",
|
||||
"HeaderMapDetails": "Mappa Dettagli",
|
||||
"HeaderMatch": "Trova Corrispondenza",
|
||||
"HeaderMetadataOrderOfPrecedence": "Metadata order of precedence",
|
||||
"HeaderMetadataOrderOfPrecedence": "Priorità ordine Metadata",
|
||||
"HeaderMetadataToEmbed": "Metadata da incorporare",
|
||||
"HeaderNewAccount": "Nuovo Account",
|
||||
"HeaderNewLibrary": "Nuova Libreria",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Aggiorna Dettagli",
|
||||
"HeaderUpdateLibrary": "Aggiorna Libreria",
|
||||
"HeaderUsers": "Utenti",
|
||||
"HeaderYearReview": "Anno {0} in Sintesi",
|
||||
"HeaderYourStats": "Statistiche Personali",
|
||||
"LabelAbridged": "Abbreviato",
|
||||
"LabelAccountType": "Tipo di Account",
|
||||
@@ -205,12 +210,12 @@
|
||||
"LabelAuthorLastFirst": "Autori (Per Cognome)",
|
||||
"LabelAuthors": "Autori",
|
||||
"LabelAutoDownloadEpisodes": "Auto Download Episodi",
|
||||
"LabelAutoFetchMetadata": "Auto Fetch Metadata",
|
||||
"LabelAutoFetchMetadataHelp": "Fetches metadata for title, author, and series to streamline uploading. Additional metadata may have to be matched after upload.",
|
||||
"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.",
|
||||
"LabelAutoLaunch": "Auto Launch",
|
||||
"LabelAutoLaunchDescription": "Redirect to the auth provider automatically when navigating to the login page (manual override path <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "Auto Register",
|
||||
"LabelAutoRegisterDescription": "Automatically create new users after logging in",
|
||||
"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",
|
||||
"LabelAutoRegisterDescription": "Crea automaticamente nuovi utenti dopo aver effettuato l'accesso",
|
||||
"LabelBackToUser": "Torna a Utenti",
|
||||
"LabelBackupLocation": "Percorso del Backup",
|
||||
"LabelBackupsEnableAutomaticBackups": "Abilita backup Automatico",
|
||||
@@ -221,7 +226,7 @@
|
||||
"LabelBackupsNumberToKeepHelp": "Verrà rimosso solo 1 backup alla volta, quindi se hai più backup, dovrai rimuoverli manualmente.",
|
||||
"LabelBitrate": "Bitrate",
|
||||
"LabelBooks": "Libri",
|
||||
"LabelButtonText": "Button Text",
|
||||
"LabelButtonText": "Buttone Testo",
|
||||
"LabelChangePassword": "Cambia Password",
|
||||
"LabelChannels": "Canali",
|
||||
"LabelChapters": "Capitoli",
|
||||
@@ -277,7 +282,7 @@
|
||||
"LabelExample": "Esempio",
|
||||
"LabelExplicit": "Esplicito",
|
||||
"LabelFeedURL": "Feed URL",
|
||||
"LabelFetchingMetadata": "Fetching Metadata",
|
||||
"LabelFetchingMetadata": "Recupero dei metadati",
|
||||
"LabelFile": "File",
|
||||
"LabelFileBirthtime": "Data Creazione",
|
||||
"LabelFileModified": "Ultima modifica",
|
||||
@@ -298,7 +303,7 @@
|
||||
"LabelHardDeleteFile": "Elimina Definitivamente",
|
||||
"LabelHasEbook": "Un ebook",
|
||||
"LabelHasSupplementaryEbook": "Un ebook Supplementare",
|
||||
"LabelHighestPriority": "Highest priority",
|
||||
"LabelHighestPriority": "Priorità Massima",
|
||||
"LabelHost": "Host",
|
||||
"LabelHour": "Ora",
|
||||
"LabelIcon": "Icona",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Ogni 6 ore",
|
||||
"LabelIntervalEveryDay": "Ogni Giorno",
|
||||
"LabelIntervalEveryHour": "Ogni ora",
|
||||
"LabelInvalidParts": "Parti Invalide",
|
||||
"LabelInvert": "Inverti",
|
||||
"LabelItem": "Oggetti",
|
||||
"LabelLanguage": "Lingua",
|
||||
@@ -340,20 +344,21 @@
|
||||
"LabelLogLevelInfo": "Info",
|
||||
"LabelLogLevelWarn": "Allarme",
|
||||
"LabelLookForNewEpisodesAfterDate": "Cerca nuovi episodi dopo questa data",
|
||||
"LabelLowestPriority": "Lowest Priority",
|
||||
"LabelMatchExistingUsersBy": "Match existing users by",
|
||||
"LabelMatchExistingUsersByDescription": "Used for connecting existing users. Once connected, users will be matched by a unique id from your SSO provider",
|
||||
"LabelLowestPriority": "Priorità Minima",
|
||||
"LabelMatchExistingUsersBy": "Abbina gli utenti esistenti per",
|
||||
"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",
|
||||
"LabelMediaType": "Tipo Media",
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "Higher priority metadata sources will override lower priority metadata sources",
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "Le origini di metadati con priorità più alta sovrascriveranno le origini di metadati con priorità inferiore",
|
||||
"LabelMetadataProvider": "Metadata Provider",
|
||||
"LabelMetaTag": "Meta Tag",
|
||||
"LabelMetaTags": "Meta Tags",
|
||||
"LabelMinute": "Minuto",
|
||||
"LabelMissing": "Altro",
|
||||
"LabelMissingParts": "Parti rimantenti",
|
||||
"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.",
|
||||
"LabelMissingEbook": "Non ha ebook",
|
||||
"LabelMissingSupplementaryEbook": "Non ha ebook supplementare",
|
||||
"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.",
|
||||
"LabelMore": "Molto",
|
||||
"LabelMoreInfo": "Più Info",
|
||||
"LabelName": "Nome",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Non iniziato",
|
||||
"LabelNumberOfBooks": "Numero di libri",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Apri RSS Feed",
|
||||
"LabelOverwrite": "Sovrascrivi",
|
||||
"LabelPassword": "Password",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Può Scaricare",
|
||||
"LabelPermissionsUpdate": "Può Aggiornare",
|
||||
"LabelPermissionsUpload": "Può caricare",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "foto Path/URL",
|
||||
"LabelPlaylists": "Playlists",
|
||||
"LabelPlayMethod": "Metodo di riproduzione",
|
||||
@@ -413,7 +422,7 @@
|
||||
"LabelRecentlyAdded": "Aggiunti Recentemente",
|
||||
"LabelRecentSeries": "Serie Recenti",
|
||||
"LabelRecommended": "Raccomandati",
|
||||
"LabelRedo": "Redo",
|
||||
"LabelRedo": "Rifai",
|
||||
"LabelRegion": "Regione",
|
||||
"LabelReleaseDate": "Data Release",
|
||||
"LabelRemoveCover": "Rimuovi cover",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Serie",
|
||||
"LabelSeriesName": "Nome Serie",
|
||||
"LabelSeriesProgress": "Cominciato",
|
||||
"LabelServerYearReview": "Anno del server in sintesi({0})",
|
||||
"LabelSetEbookAsPrimary": "Immposta come Primario",
|
||||
"LabelSetEbookAsSupplementary": "Imposta come Suplementare",
|
||||
"LabelSettingsAudiobooksOnly": "Solo Audiolibri",
|
||||
@@ -457,6 +467,8 @@
|
||||
"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",
|
||||
"LabelSettingsLibraryBookshelfView": "Libreria con sfondo legno",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "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\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Preferisci i metadata trovati",
|
||||
@@ -475,7 +487,7 @@
|
||||
"LabelShowAll": "Mostra Tutto",
|
||||
"LabelSize": "Dimensione",
|
||||
"LabelSleepTimer": "Sleep timer",
|
||||
"LabelSlug": "Slug",
|
||||
"LabelSlug": "Lento",
|
||||
"LabelStart": "Inizo",
|
||||
"LabelStarted": "Iniziato",
|
||||
"LabelStartedAt": "Iniziato al",
|
||||
@@ -502,9 +514,9 @@
|
||||
"LabelTagsAccessibleToUser": "Tags permessi agli Utenti",
|
||||
"LabelTagsNotAccessibleToUser": "Tags non accessibile agli Utenti",
|
||||
"LabelTasks": "Processi in esecuzione",
|
||||
"LabelTextEditorBulletedList": "Bulleted list",
|
||||
"LabelTextEditorBulletedList": "Elenco puntato",
|
||||
"LabelTextEditorLink": "Link",
|
||||
"LabelTextEditorNumberedList": "Numbered list",
|
||||
"LabelTextEditorNumberedList": "Elenco Numerato",
|
||||
"LabelTextEditorUnlink": "Unlink",
|
||||
"LabelTheme": "Tema",
|
||||
"LabelThemeDark": "Scuro",
|
||||
@@ -527,7 +539,7 @@
|
||||
"LabelTrackFromMetadata": "Traccia da Metadata",
|
||||
"LabelTracks": "Traccia",
|
||||
"LabelTracksMultiTrack": "Multi-traccia",
|
||||
"LabelTracksNone": "No tracks",
|
||||
"LabelTracksNone": "Nessuna traccia",
|
||||
"LabelTracksSingleTrack": "Traccia-singola",
|
||||
"LabelType": "Tipo",
|
||||
"LabelUnabridged": "Integrale",
|
||||
@@ -540,7 +552,7 @@
|
||||
"LabelUpdateDetailsHelp": "Consenti la sovrascrittura dei dettagli esistenti per i libri selezionati quando viene individuata una corrispondenza",
|
||||
"LabelUploaderDragAndDrop": "Drag & drop file o Cartelle",
|
||||
"LabelUploaderDropFiles": "Elimina file",
|
||||
"LabelUploaderItemFetchMetadataHelp": "Automatically fetch title, author, and series",
|
||||
"LabelUploaderItemFetchMetadataHelp": "Recupera automaticamente titolo, autore e serie",
|
||||
"LabelUseChapterTrack": "Usa il Capitolo della Traccia",
|
||||
"LabelUseFullTrack": "Usa la traccia totale",
|
||||
"LabelUser": "Utente",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Visualizza coda",
|
||||
"LabelVolume": "Volume",
|
||||
"LabelWeekdaysToRun": "Giorni feriali da eseguire",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "La durata dell'audiolibro",
|
||||
"LabelYourBookmarks": "I tuoi Preferiti",
|
||||
"LabelYourPlaylists": "le tue Playlist",
|
||||
@@ -588,7 +602,7 @@
|
||||
"MessageConfirmRemoveCollection": "Sei sicuro di voler rimuovere la Raccolta \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisode": "Sei sicuro di voler rimuovere l'episodio \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisodes": "Sei sicuro di voler rimuovere {0} episodi?",
|
||||
"MessageConfirmRemoveListeningSessions": "Are you sure you want to remove {0} listening sessions?",
|
||||
"MessageConfirmRemoveListeningSessions": "Sei sicuro di voler rimuovere {0} sessioni di Ascolto?",
|
||||
"MessageConfirmRemoveNarrator": "Sei sicuro di voler rimuovere il narratore \"{0}\"?",
|
||||
"MessageConfirmRemovePlaylist": "Sei sicuro di voler rimuovere la tua playlist \"{0}\"?",
|
||||
"MessageConfirmRenameGenre": "Sei sicuro di voler rinominare il genere \"{0}\" in \"{1}\" per tutti gli oggetti?",
|
||||
@@ -668,7 +682,7 @@
|
||||
"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.",
|
||||
"MessageSearchResultsFor": "cerca risultati per",
|
||||
"MessageSelected": "{0} selected",
|
||||
"MessageSelected": "{0} selezionati",
|
||||
"MessageServerCouldNotBeReached": "Impossibile raggiungere il server",
|
||||
"MessageSetChaptersFromTracksDescription": "Impostare i capitoli utilizzando ciascun file audio come capitolo e il titolo del capitolo come nome del file audio",
|
||||
"MessageStartPlaybackAtTime": "Avvia la riproduzione per \"{0}\" a {1}?",
|
||||
@@ -757,7 +771,7 @@
|
||||
"ToastSendEbookToDeviceFailed": "Impossibile inviare l'ebook al dispositivo",
|
||||
"ToastSendEbookToDeviceSuccess": "Ebook inviato al dispositivo \"{0}\"",
|
||||
"ToastSeriesUpdateFailed": "Aggiornamento Serie Fallito",
|
||||
"ToastSeriesUpdateSuccess": "Serie Aggornate",
|
||||
"ToastSeriesUpdateSuccess": "Serie Aggiornate",
|
||||
"ToastSessionDeleteFailed": "Errore eliminazione sessione",
|
||||
"ToastSessionDeleteSuccess": "Sessione cancellata",
|
||||
"ToastSocketConnected": "Socket connesso",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Pritaikyti visus autorius",
|
||||
"ButtonMatchBooks": "Pritaikyti knygas",
|
||||
"ButtonNevermind": "Nesvarbu",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Atidaryti srautą",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Groti",
|
||||
"ButtonPlaying": "Grojama",
|
||||
"ButtonPlaylists": "Grojaraščiai",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Valyti visą saugyklą",
|
||||
"ButtonPurgeItemsCache": "Valyti elementų saugyklą",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Pašalinti iš eilės",
|
||||
"ButtonQuickMatch": "Greitas pritaikymas",
|
||||
"ButtonRead": "Skaityti",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Pašalinti",
|
||||
"ButtonRemoveAll": "Pašalinti viską",
|
||||
"ButtonRemoveAllLibraryItems": "Pašalinti visus bibliotekos elementus",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Pasirinkti aplanko kelią",
|
||||
"ButtonSeries": "Serijos",
|
||||
"ButtonSetChaptersFromTracks": "Nustatyti skyrius iš takelių",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Perstumti laikus",
|
||||
"ButtonShow": "Rodyti",
|
||||
"ButtonStartM4BEncode": "Pradėti M4B kodavimą",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Atnaujinti informaciją",
|
||||
"HeaderUpdateLibrary": "Atnaujinti biblioteką",
|
||||
"HeaderUsers": "Naudotojai",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Jūsų statistika",
|
||||
"LabelAbridged": "Santrauka",
|
||||
"LabelAccountType": "Paskyros tipas",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Kas 6 valandas",
|
||||
"LabelIntervalEveryDay": "Kasdien",
|
||||
"LabelIntervalEveryHour": "Kiekvieną valandą",
|
||||
"LabelInvalidParts": "Netinkamos dalys",
|
||||
"LabelInvert": "Apversti",
|
||||
"LabelItem": "Elementas",
|
||||
"LabelLanguage": "Kalba",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta žymos",
|
||||
"LabelMinute": "Minutė",
|
||||
"LabelMissing": "Trūksta",
|
||||
"LabelMissingParts": "Trūkstamos dalys",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Daugiau",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Nepasileista",
|
||||
"LabelNumberOfBooks": "Knygų 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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Atidaryti RSS srautą",
|
||||
"LabelOverwrite": "Perrašyti",
|
||||
"LabelPassword": "Slaptažodis",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Gali atsisiųsti",
|
||||
"LabelPermissionsUpdate": "Gali atnaujinti",
|
||||
"LabelPermissionsUpload": "Gali įkelti",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Nuotraukos kelias/URL",
|
||||
"LabelPlaylists": "Grojaraščiai",
|
||||
"LabelPlayMethod": "Grojimo metodas",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Serija",
|
||||
"LabelSeriesName": "Serijos pavadinimas",
|
||||
"LabelSeriesProgress": "Serijos progresas",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Nustatyti kaip pagrindinę",
|
||||
"LabelSetEbookAsSupplementary": "Nustatyti kaip papildomą",
|
||||
"LabelSettingsAudiobooksOnly": "Tik garso knygos",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Serijos, turinčios tik vieną knygą, bus paslėptos nuo serijų puslapio ir pagrindinio puslapio lentynų.",
|
||||
"LabelSettingsHomePageBookshelfView": "Naudoti pagrindinio puslapio knygų lentynų vaizdą",
|
||||
"LabelSettingsLibraryBookshelfView": "Naudoti bibliotekos knygų lentynų vaizdą",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Analizuoti subtitrus",
|
||||
"LabelSettingsParseSubtitlesHelp": "Išskleisti subtitrus iš audioknygos aplanko pavadinimų.<br>Subtitrai turi būti atskirti brūkšniu \"-\"<br>pavyzdžiui, \"Knygos pavadinimas - Čia yra subtitrai\" turi subtitrą \"Čia yra subtitrai\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Pirmenybė atitaikytiems metaduomenis",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Peržiūrėti grotuvo eilę",
|
||||
"LabelVolume": "Garsumas",
|
||||
"LabelWeekdaysToRun": "Dienos, kuriomis vykdyti",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Jūsų garso knygos trukmė",
|
||||
"LabelYourBookmarks": "Jūsų skirtukai",
|
||||
"LabelYourPlaylists": "Jūsų grojaraščiai",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Alle auteurs matchen",
|
||||
"ButtonMatchBooks": "Alle boeken matchen",
|
||||
"ButtonNevermind": "Laat maar",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Feed openen",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Afspelen",
|
||||
"ButtonPlaying": "Speelt",
|
||||
"ButtonPlaylists": "Afspeellijsten",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Volledige cache legen",
|
||||
"ButtonPurgeItemsCache": "Onderdelen-cache legen",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Uit wachtrij verwijderen",
|
||||
"ButtonQuickMatch": "Snelle match",
|
||||
"ButtonRead": "Lees",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Verwijder",
|
||||
"ButtonRemoveAll": "Alles verwijderen",
|
||||
"ButtonRemoveAllLibraryItems": "Verwijder volledige bibliotheekinhoud",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Maplocatie selecteren",
|
||||
"ButtonSeries": "Series",
|
||||
"ButtonSetChaptersFromTracks": "Maak hoofdstukken op basis van tracks",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Tijden verschuiven",
|
||||
"ButtonShow": "Toon",
|
||||
"ButtonStartM4BEncode": "Start M4B-encoding",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Details bijwerken",
|
||||
"HeaderUpdateLibrary": "Bibliotheek bijwerken",
|
||||
"HeaderUsers": "Gebruikers",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Je statistieken",
|
||||
"LabelAbridged": "Verkort",
|
||||
"LabelAccountType": "Accounttype",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Iedere 6 uur",
|
||||
"LabelIntervalEveryDay": "Iedere dag",
|
||||
"LabelIntervalEveryHour": "Ieder uur",
|
||||
"LabelInvalidParts": "Ongeldige delen",
|
||||
"LabelInvert": "Omdraaien",
|
||||
"LabelItem": "Onderdeel",
|
||||
"LabelLanguage": "Taal",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta-tags",
|
||||
"LabelMinute": "Minuut",
|
||||
"LabelMissing": "Ontbrekend",
|
||||
"LabelMissingParts": "Ontbrekende delen",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Meer",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Niet Gestart",
|
||||
"LabelNumberOfBooks": "Aantal Boeken",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Open RSS-feed",
|
||||
"LabelOverwrite": "Overschrijf",
|
||||
"LabelPassword": "Wachtwoord",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Kan downloaden",
|
||||
"LabelPermissionsUpdate": "Kan bijwerken",
|
||||
"LabelPermissionsUpload": "Kan uploaden",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Foto pad/URL",
|
||||
"LabelPlaylists": "Afspeellijsten",
|
||||
"LabelPlayMethod": "Afspeelwijze",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Serie",
|
||||
"LabelSeriesName": "Naam serie",
|
||||
"LabelSeriesProgress": "Voortgang serie",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Stel in als primair",
|
||||
"LabelSetEbookAsSupplementary": "Stel in als supplementair",
|
||||
"LabelSettingsAudiobooksOnly": "Alleen audiobooks",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Series die slechts een enkel boek bevatten worden verborgen op de seriespagina en de homepagina-planken.",
|
||||
"LabelSettingsHomePageBookshelfView": "Boekenplank-view voor homepagina",
|
||||
"LabelSettingsLibraryBookshelfView": "Boekenplank-view voor bibliotheek",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Parseer subtitel",
|
||||
"LabelSettingsParseSubtitlesHelp": "Haal subtitels uit mapnaam van audioboek.<br>Subtitel moet gescheiden zijn met \" - \"<br>b.v. \"Boektitel - Een Subtitel Hier\" heeft als subtitel \"Een Subtitel Hier\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Prefereer gematchte metadata",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Bekijk afspeelwachtrij",
|
||||
"LabelVolume": "Volume",
|
||||
"LabelWeekdaysToRun": "Weekdagen om te draaien",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Je audioboekduur",
|
||||
"LabelYourBookmarks": "Je boekwijzers",
|
||||
"LabelYourPlaylists": "Je afspeellijsten",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Søk opp alle forfattere",
|
||||
"ButtonMatchBooks": "Søk opp bøker",
|
||||
"ButtonNevermind": "Avbryt",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Åpne Feed",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Spill av",
|
||||
"ButtonPlaying": "Spiller av",
|
||||
"ButtonPlaylists": "Spilleliste",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Tøm alle mellomlager",
|
||||
"ButtonPurgeItemsCache": "Tøm mellomlager",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Fjern fra kø",
|
||||
"ButtonQuickMatch": "Kjapt søk",
|
||||
"ButtonRead": "Les",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Fjern",
|
||||
"ButtonRemoveAll": "Fjern alle",
|
||||
"ButtonRemoveAllLibraryItems": "Fjern alle bibliotekobjekter",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Velg mappe",
|
||||
"ButtonSeries": "Serier",
|
||||
"ButtonSetChaptersFromTracks": "Sett kapittel fra spor",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Forskyv tider",
|
||||
"ButtonShow": "Vis",
|
||||
"ButtonStartM4BEncode": "Start M4B Koding",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Oppdater detaljer",
|
||||
"HeaderUpdateLibrary": "Oppdater bibliotek",
|
||||
"HeaderUsers": "Brukere",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Din statistikk",
|
||||
"LabelAbridged": "Forkortet",
|
||||
"LabelAccountType": "Kontotype",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Hver 6. timer",
|
||||
"LabelIntervalEveryDay": "Hver dag",
|
||||
"LabelIntervalEveryHour": "Hver time",
|
||||
"LabelInvalidParts": "Ugyldige deler",
|
||||
"LabelInvert": "Inverter",
|
||||
"LabelItem": "Enhet",
|
||||
"LabelLanguage": "Språk",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta Tags",
|
||||
"LabelMinute": "Minutt",
|
||||
"LabelMissing": "Mangler",
|
||||
"LabelMissingParts": "Manglende deler",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Mer",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Ikke startet",
|
||||
"LabelNumberOfBooks": "Antall bøker",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Åpne RSS Feed",
|
||||
"LabelOverwrite": "Overskriv",
|
||||
"LabelPassword": "Passord",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Kan laste ned",
|
||||
"LabelPermissionsUpdate": "Kan oppdatere",
|
||||
"LabelPermissionsUpload": "Kan laste opp",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Bilde sti/URL",
|
||||
"LabelPlaylists": "Spilleliste",
|
||||
"LabelPlayMethod": "Avspillingsmetode",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Serier",
|
||||
"LabelSeriesName": "Serier Navn",
|
||||
"LabelSeriesProgress": "Serier fremgang",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Sett som primær",
|
||||
"LabelSetEbookAsSupplementary": "Sett som supplerende",
|
||||
"LabelSettingsAudiobooksOnly": "Kun lydbøker",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Serier som har kun en bok vil bli gjemt på serie- og hjemmeside hyllen.",
|
||||
"LabelSettingsHomePageBookshelfView": "Hjemmeside bruk bokhyllevisning",
|
||||
"LabelSettingsLibraryBookshelfView": "Bibliotek bruk bokhyllevisning",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Analyser undertekster",
|
||||
"LabelSettingsParseSubtitlesHelp": "Trekk ut undertekster fra lydbok mappenavn.<br>undertekster må være separert med \" - \"<br>f.eks. \"Boktittel - Undertekst her\" har Undertekst \"Undertekst her\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Foretrekk funnet metadata",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Vis spillerkø",
|
||||
"LabelVolume": "Volum",
|
||||
"LabelWeekdaysToRun": "Ukedager å kjøre",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Din lydbok lengde",
|
||||
"LabelYourBookmarks": "Dine bokmerker",
|
||||
"LabelYourPlaylists": "Dine spillelister",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Dopasuj wszystkich autorów",
|
||||
"ButtonMatchBooks": "Dopasuj książki",
|
||||
"ButtonNevermind": "Anuluj",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Otwórz feed",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Odtwarzaj",
|
||||
"ButtonPlaying": "Odtwarzane",
|
||||
"ButtonPlaylists": "Playlists",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Wyczyść dane tymczasowe",
|
||||
"ButtonPurgeItemsCache": "Wyczyść dane tymczasowe pozycji",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Usuń z kolejki",
|
||||
"ButtonQuickMatch": "Szybkie dopasowanie",
|
||||
"ButtonRead": "Czytaj",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Usuń",
|
||||
"ButtonRemoveAll": "Usuń wszystko",
|
||||
"ButtonRemoveAllLibraryItems": "Usuń wszystkie elementy z biblioteki",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Wybierz ścieżkę folderu",
|
||||
"ButtonSeries": "Seria",
|
||||
"ButtonSetChaptersFromTracks": "Set chapters from tracks",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Przesunięcie czasowe",
|
||||
"ButtonShow": "Pokaż",
|
||||
"ButtonStartM4BEncode": "Eksportuj jako plik M4B",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Zaktualizuj szczegóły",
|
||||
"HeaderUpdateLibrary": "Zaktualizuj bibliotekę",
|
||||
"HeaderUsers": "Użytkownicy",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Twoje statystyki",
|
||||
"LabelAbridged": "Abridged",
|
||||
"LabelAccountType": "Typ konta",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Co 6 godzin",
|
||||
"LabelIntervalEveryDay": "Każdego dnia",
|
||||
"LabelIntervalEveryHour": "Każdej godziny",
|
||||
"LabelInvalidParts": "Nieprawidłowe części",
|
||||
"LabelInvert": "Invert",
|
||||
"LabelItem": "Pozycja",
|
||||
"LabelLanguage": "Język",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Meta Tags",
|
||||
"LabelMinute": "Minuta",
|
||||
"LabelMissing": "Brakujący",
|
||||
"LabelMissingParts": "Brakujące cześci",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Więcej",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Nie rozpoęczto",
|
||||
"LabelNumberOfBooks": "Liczba książek",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Otwórz kanał RSS",
|
||||
"LabelOverwrite": "Overwrite",
|
||||
"LabelPassword": "Hasło",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Ma możliwość pobierania",
|
||||
"LabelPermissionsUpdate": "Ma możliwość aktualizowania",
|
||||
"LabelPermissionsUpload": "Ma możliwość dodawania",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Scieżka/URL do zdjęcia",
|
||||
"LabelPlaylists": "Playlists",
|
||||
"LabelPlayMethod": "Metoda odtwarzania",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Serie",
|
||||
"LabelSeriesName": "Nazwy serii",
|
||||
"LabelSeriesProgress": "Postęp w serii",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Set as primary",
|
||||
"LabelSetEbookAsSupplementary": "Set as supplementary",
|
||||
"LabelSettingsAudiobooksOnly": "Audiobooks only",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Series that have a single book will be hidden from the series page and home page shelves.",
|
||||
"LabelSettingsHomePageBookshelfView": "Widok półki z książkami na stronie głównej",
|
||||
"LabelSettingsLibraryBookshelfView": "Widok półki z książkami na stronie biblioteki",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Przetwarzaj podtytuły",
|
||||
"LabelSettingsParseSubtitlesHelp": "Opcja pozwala na pobranie podtytułu z nazwy folderu z audiobookiem. <br>Podtytuł musi być rozdzielony za pomocą separatora \" - \"<br>Przykład: \"Book Title - A Subtitle Here\" podtytuł \"A Subtitle Here\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Preferowanie dopasowanych metadanych",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Wyświetlaj kolejkę odtwarzania",
|
||||
"LabelVolume": "Głośność",
|
||||
"LabelWeekdaysToRun": "Dni tygodnia",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Czas trwania audiobooka",
|
||||
"LabelYourBookmarks": "Twoje zakładki",
|
||||
"LabelYourPlaylists": "Your Playlists",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Consultar Todos os Autores",
|
||||
"ButtonMatchBooks": "Consultar Livros",
|
||||
"ButtonNevermind": "Cancelar",
|
||||
"ButtonNext": "Próximo",
|
||||
"ButtonNextChapter": "Próximo Capítulo",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Abrir Feed",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Reproduzir",
|
||||
"ButtonPlaying": "Reproduzindo",
|
||||
"ButtonPlaylists": "Lista de Reprodução",
|
||||
"ButtonPrevious": "Anterior",
|
||||
"ButtonPreviousChapter": "Capítulo Anterior",
|
||||
"ButtonPurgeAllCache": "Apagar Todo o Cache",
|
||||
"ButtonPurgeItemsCache": "Apagar o Cache de Itens",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Remover da Lista",
|
||||
"ButtonQuickMatch": "Consulta rápida",
|
||||
"ButtonRead": "Ler",
|
||||
"ButtonRefresh": "Atualizar",
|
||||
"ButtonRemove": "Remover",
|
||||
"ButtonRemoveAll": "Remover Todos",
|
||||
"ButtonRemoveAllLibraryItems": "Remover Todos os Itens da Biblioteca",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Selecionar Caminho da Pasta",
|
||||
"ButtonSeries": "Séries",
|
||||
"ButtonSetChaptersFromTracks": "Definir Capítulos Segundo Faixas",
|
||||
"ButtonShare": "Compartilhar",
|
||||
"ButtonShiftTimes": "Deslocar tempos",
|
||||
"ButtonShow": "Exibir",
|
||||
"ButtonStartM4BEncode": "Iniciar Codificação M4B",
|
||||
@@ -106,7 +110,7 @@
|
||||
"HeaderChapters": "Capítulos",
|
||||
"HeaderChooseAFolder": "Escolha uma Pasta",
|
||||
"HeaderCollection": "Coleção",
|
||||
"HeaderCollectionItems": "Itends da Coleção",
|
||||
"HeaderCollectionItems": "Itens da Coleção",
|
||||
"HeaderCover": "Capas",
|
||||
"HeaderCurrentDownloads": "Downloads em andamento",
|
||||
"HeaderCustomMetadataProviders": "Fontes de Metadados Customizados",
|
||||
@@ -122,12 +126,12 @@
|
||||
"HeaderFindChapters": "Localizar Capítulos",
|
||||
"HeaderIgnoredFiles": "Arquivos Ignorados",
|
||||
"HeaderItemFiles": "Arquivos de Itens",
|
||||
"HeaderItemMetadataUtils": "Utilidades para Metadados de Itens",
|
||||
"HeaderItemMetadataUtils": "Utilidades para Metadados dos Itens",
|
||||
"HeaderLastListeningSession": "Última sessão",
|
||||
"HeaderLatestEpisodes": "Últimos episódios",
|
||||
"HeaderLibraries": "Bibliotecas",
|
||||
"HeaderLibraryFiles": "Arquivos da Biblioteca",
|
||||
"HeaderLibraryStats": "Estatisticas da Biblioteca",
|
||||
"HeaderLibraryStats": "Estatísticas da Biblioteca",
|
||||
"HeaderListeningSessions": "Sessões",
|
||||
"HeaderListeningStats": "Estatísticas",
|
||||
"HeaderLogin": "Login",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Atualizar Detalhes",
|
||||
"HeaderUpdateLibrary": "Atualizar Biblioteca",
|
||||
"HeaderUsers": "Usuários",
|
||||
"HeaderYearReview": "Retrospectiva de {0} ",
|
||||
"HeaderYourStats": "Suas Estatísticas",
|
||||
"LabelAbridged": "Versão Abreviada",
|
||||
"LabelAccountType": "Tipo de Conta",
|
||||
@@ -230,10 +235,10 @@
|
||||
"LabelClickForMoreInfo": "Clique para mais informações",
|
||||
"LabelClosePlayer": "Fechar Reprodutor",
|
||||
"LabelCodec": "Codec",
|
||||
"LabelCollapseSeries": "Fechar Séries",
|
||||
"LabelCollapseSeries": "Fechar Série",
|
||||
"LabelCollection": "Coleção",
|
||||
"LabelCollections": "Coleções",
|
||||
"LabelComplete": "Completo",
|
||||
"LabelComplete": "Concluído",
|
||||
"LabelConfirmPassword": "Confirmar Senha",
|
||||
"LabelContinueListening": "Continuar Escutando",
|
||||
"LabelContinueReading": "Continuar Lendo",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "A cada 6 horas",
|
||||
"LabelIntervalEveryDay": "Todo dia",
|
||||
"LabelIntervalEveryHour": "Toda hora",
|
||||
"LabelInvalidParts": "Partes Inválidas",
|
||||
"LabelInvert": "Inverter",
|
||||
"LabelItem": "Item",
|
||||
"LabelLanguage": "Idioma",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Etiquetas Meta",
|
||||
"LabelMinute": "Minuto",
|
||||
"LabelMissing": "Ausente",
|
||||
"LabelMissingParts": "Partes Ausentes",
|
||||
"LabelMissingEbook": "Ebook não existe",
|
||||
"LabelMissingSupplementaryEbook": "Ebook complementar não existe",
|
||||
"LabelMobileRedirectURIs": "URIs de redirecionamento móveis permitidas",
|
||||
"LabelMobileRedirectURIsDescription": "Essa é uma lista de permissionamento para URIs válidas para o redirecionamento de aplicativos móveis. A padrão é <code>audiobookshelf://oauth</code>, que pode ser removida ou acrescentada com novas URIs para integração com apps de terceiros. Usando um asterisco (<code>*</code>) como um item único dará permissão para qualquer URI.",
|
||||
"LabelMore": "Mais",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Não iniciado",
|
||||
"LabelNumberOfBooks": "Número de Livros",
|
||||
"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:",
|
||||
"LabelOpenIDClaims": "Deixe as opções a seguir em branco para desativar a atribuição de grupos e permissões avançadas; nesse caso, o grupo 'Usuário' será atribuído automaticamente.",
|
||||
"LabelOpenIDGroupClaimDescription": "Nome do claim OpenID contendo a lista de grupos do usuário, normalmente chamada de <code>groups</code>. <b>Se configurada</b>, a aplicação atribuirá automaticamente os perfis com base na participação do usuário nos grupos, contanto que os nomes desses grupos no claim, sem distinção entre maiúsculas e minúsculas, sejam 'admin', 'user' ou 'guest'. O claim deve conter uma lista e, se o usuário pertencer a múltiplos grupos, a aplicação atribuirá o perfil correspondendo ao maior nível de acesso. Se não houver correspondência a qualquer grupo, o acesso será negado.",
|
||||
"LabelOpenRSSFeed": "Abrir Feed RSS",
|
||||
"LabelOverwrite": "Sobrescrever",
|
||||
"LabelPassword": "Senha",
|
||||
@@ -391,12 +399,13 @@
|
||||
"LabelPermissionsDownload": "Pode Fazer Download",
|
||||
"LabelPermissionsUpdate": "Pode Atualizar",
|
||||
"LabelPermissionsUpload": "Pode Fazer Upload",
|
||||
"LabelPersonalYearReview": "Sua Retrospectiva Anual ({0})",
|
||||
"LabelPhotoPathURL": "Caminho/URL para Foto",
|
||||
"LabelPlaylists": "Listas de Reprodução",
|
||||
"LabelPlayMethod": "Método de Reprodução",
|
||||
"LabelPodcast": "Podcast",
|
||||
"LabelPodcasts": "Podcasts",
|
||||
"LabelPodcastSearchRegion": "Podcast search region",
|
||||
"LabelPodcastSearchRegion": "Região de busca do podcast",
|
||||
"LabelPodcastType": "Tipo de Podcast",
|
||||
"LabelPort": "Porta",
|
||||
"LabelPrefixesToIgnore": "Prefixos para Ignorar (sem distinção entre maiúsculas e minúsculas)",
|
||||
@@ -410,7 +419,7 @@
|
||||
"LabelRead": "Lido",
|
||||
"LabelReadAgain": "Ler novamente",
|
||||
"LabelReadEbookWithoutProgress": "Ler ebook sem armazenar progresso",
|
||||
"LabelRecentlyAdded": "Recentemente Acrescentado",
|
||||
"LabelRecentlyAdded": "Novidades",
|
||||
"LabelRecentSeries": "Séries Recentes",
|
||||
"LabelRecommended": "Recomendado",
|
||||
"LabelRedo": "Refazer",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Série",
|
||||
"LabelSeriesName": "Nome da Série",
|
||||
"LabelSeriesProgress": "Progresso da Série",
|
||||
"LabelServerYearReview": "Retrospectiva Anual do Servidor ({0})",
|
||||
"LabelSetEbookAsPrimary": "Definir como principal",
|
||||
"LabelSetEbookAsSupplementary": "Definir como complementar",
|
||||
"LabelSettingsAudiobooksOnly": "Apenas Audiobooks",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Séries com um só livro serão ocultadas na página de séries e na prateleira de séries na página principal.",
|
||||
"LabelSettingsHomePageBookshelfView": "Usar visão estante na página principal",
|
||||
"LabelSettingsLibraryBookshelfView": "Usar visão estante na página da biblioteca",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Pular livros anteriores em Continuar Série",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "A prateleira Continuar Série na página principal de exibe o primeiro livro não iniciado em uma série que tem pelo menos um livro concluído e nenhum livro em andamento. Ativar essa configuração irá continuar a série a partir do livro mais recentemente concluído ao invés do primeiro livro não iniciado.",
|
||||
"LabelSettingsParseSubtitles": "Analisar subtítulos",
|
||||
"LabelSettingsParseSubtitlesHelp": "Extrair subtítulos do nome da pasta do audiobook.<br>Subtítulo deve estar separado por \" - \"<br>ex: \"Título do Livro - Um Subtítulo Aqui\" tem o subtítulo \"Um Subtítulo Aqui\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Preferir metadados consultados",
|
||||
@@ -471,8 +483,8 @@
|
||||
"LabelSettingsStoreCoversWithItemHelp": "Por padrão as capas são armazenadas em /metadata/items. Ao ativar essa configuração as capas serão armazenadas na pasta do item na sua biblioteca. Apenas um arquivo chamado \"cover\" será mantido",
|
||||
"LabelSettingsStoreMetadataWithItem": "Armazenar metadados com o item",
|
||||
"LabelSettingsStoreMetadataWithItemHelp": "Por padrão os arquivos de metadados são armazenados em /metadata/items. Ao ativar essa configuração os arquivos de metadados serão armazenadas nas pastas dos itens na sua biblioteca",
|
||||
"LabelSettingsTimeFormat": "Formato do Tempo",
|
||||
"LabelShowAll": "Mostrar Todos",
|
||||
"LabelSettingsTimeFormat": "Formato da Tempo",
|
||||
"LabelShowAll": "Exibir Todos",
|
||||
"LabelSize": "Tamanho",
|
||||
"LabelSleepTimer": "Timer",
|
||||
"LabelSlug": "Slug",
|
||||
@@ -487,7 +499,7 @@
|
||||
"LabelStatsDays": "Dias",
|
||||
"LabelStatsDaysListened": "Dias Escutando",
|
||||
"LabelStatsHours": "Horas",
|
||||
"LabelStatsInARow": "seguidas",
|
||||
"LabelStatsInARow": "seguidos",
|
||||
"LabelStatsItemsFinished": "itens Concluídos",
|
||||
"LabelStatsItemsInLibrary": "itens na biblioteca",
|
||||
"LabelStatsMinutes": "minutos",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Ver fila do reprodutor",
|
||||
"LabelVolume": "Volume",
|
||||
"LabelWeekdaysToRun": "Dias da semana para executar",
|
||||
"LabelYearReviewHide": "Ocultar Retrospectiva Anual",
|
||||
"LabelYearReviewShow": "Exibir Retrospectiva Anual",
|
||||
"LabelYourAudiobookDuration": "Duração do seu audiobook",
|
||||
"LabelYourBookmarks": "Seus Marcadores",
|
||||
"LabelYourPlaylists": "Suas Listas de Reprodução",
|
||||
@@ -643,7 +657,7 @@
|
||||
"MessageNoLogs": "Sem Logs",
|
||||
"MessageNoMediaProgress": "Sem Progresso de Mídia",
|
||||
"MessageNoNotifications": "Sem Notificações",
|
||||
"MessageNoPodcastsFound": "Nenhum podcasts encontrado",
|
||||
"MessageNoPodcastsFound": "Nenhum podcast encontrado",
|
||||
"MessageNoResults": "Sem resultados",
|
||||
"MessageNoSearchResultsFor": "Sem resultados para \"{0}\"",
|
||||
"MessageNoSeries": "Sem Séries",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Найти всех авторов",
|
||||
"ButtonMatchBooks": "Найти книги",
|
||||
"ButtonNevermind": "Не важно",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Открыть канал",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Слушать",
|
||||
"ButtonPlaying": "Проигрывается",
|
||||
"ButtonPlaylists": "Плейлисты",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Очистить весь кэш",
|
||||
"ButtonPurgeItemsCache": "Очистить кэш элементов",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Удалить из очереди",
|
||||
"ButtonQuickMatch": "Быстрый поиск",
|
||||
"ButtonRead": "Читать",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Удалить",
|
||||
"ButtonRemoveAll": "Удалить всё",
|
||||
"ButtonRemoveAllLibraryItems": "Удалить все элементы библиотеки",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Выберите путь папки",
|
||||
"ButtonSeries": "Серии",
|
||||
"ButtonSetChaptersFromTracks": "Установить главы из треков",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Смещение",
|
||||
"ButtonShow": "Показать",
|
||||
"ButtonStartM4BEncode": "Начать кодирование M4B",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Обновить детали",
|
||||
"HeaderUpdateLibrary": "Обновить библиотеку",
|
||||
"HeaderUsers": "Пользователи",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Ваша статистика",
|
||||
"LabelAbridged": "Сокращенное издание",
|
||||
"LabelAccountType": "Тип учетной записи",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Каждые 6 часов",
|
||||
"LabelIntervalEveryDay": "Каждый день",
|
||||
"LabelIntervalEveryHour": "Каждый час",
|
||||
"LabelInvalidParts": "Неверные части",
|
||||
"LabelInvert": "Инвертировать",
|
||||
"LabelItem": "Элемент",
|
||||
"LabelLanguage": "Язык",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Мета теги",
|
||||
"LabelMinute": "Минуты",
|
||||
"LabelMissing": "Потеряно",
|
||||
"LabelMissingParts": "Потерянные части",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"LabelMobileRedirectURIs": "Разрешенные URI перенаправления с мобильных устройств",
|
||||
"LabelMobileRedirectURIsDescription": "Это белый список допустимых URI перенаправления для мобильных приложений. По умолчанию используется <code>audiobookshelf://oauth</code>, который можно удалить или дополнить дополнительными URI для интеграции со сторонними приложениями. Использование звездочки (<code>*</code>) в качестве единственной записи разрешает любой URI.",
|
||||
"LabelMore": "Еще",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Не запущено",
|
||||
"LabelNumberOfBooks": "Количество книг",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Открыть RSS-канал",
|
||||
"LabelOverwrite": "Перезаписать",
|
||||
"LabelPassword": "Пароль",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Может скачивать",
|
||||
"LabelPermissionsUpdate": "Может обновлять",
|
||||
"LabelPermissionsUpload": "Может закачивать",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Путь к фото/URL",
|
||||
"LabelPlaylists": "Плейлисты",
|
||||
"LabelPlayMethod": "Метод воспроизведения",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Серия",
|
||||
"LabelSeriesName": "Имя серии",
|
||||
"LabelSeriesProgress": "Прогресс серии",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Установить как основную",
|
||||
"LabelSetEbookAsSupplementary": "Установить как дополнительную",
|
||||
"LabelSettingsAudiobooksOnly": "Только аудиокниги",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Серии, в которых всего одна книга, будут скрыты со страницы серий и полок домашней страницы.",
|
||||
"LabelSettingsHomePageBookshelfView": "Вид книжной полки на Домашней странице",
|
||||
"LabelSettingsLibraryBookshelfView": "Вид книжной полки в Библиотеке",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Разбор подзаголовков",
|
||||
"LabelSettingsParseSubtitlesHelp": "Извлечение подзаголовков из имен папок аудиокниг.<br>Подзаголовок должны быть отделен \" - \"<br>например \"Название Книги - Тут Подзаголовок\" подзаголовок будет \"Тут Подзаголовок\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Предпочитать метаданные поиска",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Очередь воспроизведения",
|
||||
"LabelVolume": "Громкость",
|
||||
"LabelWeekdaysToRun": "Дни недели для запуска",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Продолжительность Вашей книги",
|
||||
"LabelYourBookmarks": "Ваши закладки",
|
||||
"LabelYourPlaylists": "Ваши плейлисты",
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"ButtonMatchAllAuthors": "Matcha alla författare",
|
||||
"ButtonMatchBooks": "Matcha böcker",
|
||||
"ButtonNevermind": "Glöm det",
|
||||
"ButtonNext": "Next",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonOk": "Okej",
|
||||
"ButtonOpenFeed": "Öppna flöde",
|
||||
@@ -51,6 +52,7 @@
|
||||
"ButtonPlay": "Spela",
|
||||
"ButtonPlaying": "Spelar",
|
||||
"ButtonPlaylists": "Spellistor",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPurgeAllCache": "Rensa all cache",
|
||||
"ButtonPurgeItemsCache": "Rensa föremåls-cache",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "Ta bort från kön",
|
||||
"ButtonQuickMatch": "Snabb matchning",
|
||||
"ButtonRead": "Läs",
|
||||
"ButtonRefresh": "Refresh",
|
||||
"ButtonRemove": "Ta bort",
|
||||
"ButtonRemoveAll": "Ta bort alla",
|
||||
"ButtonRemoveAllLibraryItems": "Ta bort alla biblioteksobjekt",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "Välj mappens sökväg",
|
||||
"ButtonSeries": "Serie",
|
||||
"ButtonSetChaptersFromTracks": "Ställ in kapitel från spår",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "Förskjut tider",
|
||||
"ButtonShow": "Visa",
|
||||
"ButtonStartM4BEncode": "Starta M4B-kodning",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "Uppdatera detaljer",
|
||||
"HeaderUpdateLibrary": "Uppdatera bibliotek",
|
||||
"HeaderUsers": "Användare",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "Dina statistik",
|
||||
"LabelAbridged": "Förkortad",
|
||||
"LabelAccountType": "Kontotyp",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "Var 6:e timme",
|
||||
"LabelIntervalEveryDay": "Varje dag",
|
||||
"LabelIntervalEveryHour": "Varje timme",
|
||||
"LabelInvalidParts": "Ogiltiga delar",
|
||||
"LabelInvert": "Invertera",
|
||||
"LabelItem": "Objekt",
|
||||
"LabelLanguage": "Språk",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "Metamärken",
|
||||
"LabelMinute": "Minut",
|
||||
"LabelMissing": "Saknad",
|
||||
"LabelMissingParts": "Saknade delar",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"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.",
|
||||
"LabelMore": "Mer",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "Inte påbörjad",
|
||||
"LabelNumberOfBooks": "Antal böcker",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Öppna RSS-flöde",
|
||||
"LabelOverwrite": "Skriv över",
|
||||
"LabelPassword": "Lösenord",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "Kan ladda ner",
|
||||
"LabelPermissionsUpdate": "Kan uppdatera",
|
||||
"LabelPermissionsUpload": "Kan ladda upp",
|
||||
"LabelPersonalYearReview": "Your Year in Review ({0})",
|
||||
"LabelPhotoPathURL": "Bildsökväg/URL",
|
||||
"LabelPlaylists": "Spellistor",
|
||||
"LabelPlayMethod": "Spelläge",
|
||||
@@ -436,6 +445,7 @@
|
||||
"LabelSeries": "Serie",
|
||||
"LabelSeriesName": "Serienamn",
|
||||
"LabelSeriesProgress": "Serieframsteg",
|
||||
"LabelServerYearReview": "Server Year in Review ({0})",
|
||||
"LabelSetEbookAsPrimary": "Ange som primär",
|
||||
"LabelSetEbookAsSupplementary": "Ange som kompletterande",
|
||||
"LabelSettingsAudiobooksOnly": "Endast ljudböcker",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Serier som har en enda bok kommer att döljas från seriesidan och hyllsidan på startsidan.",
|
||||
"LabelSettingsHomePageBookshelfView": "Startsida använd bokhyllvy",
|
||||
"LabelSettingsLibraryBookshelfView": "Bibliotek använd bokhyllvy",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Analysera undertexter",
|
||||
"LabelSettingsParseSubtitlesHelp": "Extrahera undertexter från mappnamn för ljudböcker.<br>Undertext måste vara åtskilda av \" - \"<br>t.ex. \"Boktitel - En undertitel här\" har undertiteln \"En undertitel här\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Föredra matchad metadata",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "Visa spellista",
|
||||
"LabelVolume": "Volym",
|
||||
"LabelWeekdaysToRun": "Vardagar att köra",
|
||||
"LabelYearReviewHide": "Hide Year in Review",
|
||||
"LabelYearReviewShow": "See Year in Review",
|
||||
"LabelYourAudiobookDuration": "Din ljudboks varaktighet",
|
||||
"LabelYourBookmarks": "Dina bokmärken",
|
||||
"LabelYourPlaylists": "Dina spellistor",
|
||||
|
||||
782
client/strings/uk.json
Normal file
782
client/strings/uk.json
Normal file
@@ -0,0 +1,782 @@
|
||||
{
|
||||
"ButtonAdd": "Додати",
|
||||
"ButtonAddChapters": "Додати глави",
|
||||
"ButtonAddDevice": "Додати пристрій",
|
||||
"ButtonAddLibrary": "Додати бібліотеку",
|
||||
"ButtonAddPodcasts": "Додати подкаст",
|
||||
"ButtonAddUser": "Додати користувача",
|
||||
"ButtonAddYourFirstLibrary": "Додайте вашу першу бібліотеку",
|
||||
"ButtonApply": "Застосувати",
|
||||
"ButtonApplyChapters": "Зберегти глави",
|
||||
"ButtonAuthors": "Автори",
|
||||
"ButtonBrowseForFolder": "Огляд тек",
|
||||
"ButtonCancel": "Скасувати",
|
||||
"ButtonCancelEncode": "Скасувати кодування",
|
||||
"ButtonChangeRootPassword": "Змінити кореневий пароль",
|
||||
"ButtonCheckAndDownloadNewEpisodes": "Перевірити та завантажити нові епізоди",
|
||||
"ButtonChooseAFolder": "Обрати теку",
|
||||
"ButtonChooseFiles": "Обрати файли",
|
||||
"ButtonClearFilter": "Очистити фільтр",
|
||||
"ButtonCloseFeed": "Закрити стрічку",
|
||||
"ButtonCollections": "Колекції",
|
||||
"ButtonConfigureScanner": "Налаштувати сканер",
|
||||
"ButtonCreate": "Створити",
|
||||
"ButtonCreateBackup": "Створити резервну копію",
|
||||
"ButtonDelete": "Видалити",
|
||||
"ButtonDownloadQueue": "Черга",
|
||||
"ButtonEdit": "Редагувати",
|
||||
"ButtonEditChapters": "Редагувати глави",
|
||||
"ButtonEditPodcast": "Редагувати подкаст",
|
||||
"ButtonForceReScan": "Примусово сканувати",
|
||||
"ButtonFullPath": "Повний шлях",
|
||||
"ButtonHide": "Приховати",
|
||||
"ButtonHome": "Головна",
|
||||
"ButtonIssues": "Проблеми",
|
||||
"ButtonJumpBackward": "Перейти назад",
|
||||
"ButtonJumpForward": "Перейти вперед",
|
||||
"ButtonLatest": "Останній",
|
||||
"ButtonLibrary": "Бібліотека",
|
||||
"ButtonLogout": "Вийти",
|
||||
"ButtonLookup": "Пошук",
|
||||
"ButtonManageTracks": "Керувати доріжками",
|
||||
"ButtonMapChapterTitles": "Призначити назви глав",
|
||||
"ButtonMatchAllAuthors": "Віднайти усіх авторів",
|
||||
"ButtonMatchBooks": "Віднайти книги",
|
||||
"ButtonNevermind": "Скасувати",
|
||||
"ButtonNext": "Наступний",
|
||||
"ButtonNextChapter": "Наступна глава",
|
||||
"ButtonOk": "Гаразд",
|
||||
"ButtonOpenFeed": "Відкрити стрічку",
|
||||
"ButtonOpenManager": "Відкрити менеджер",
|
||||
"ButtonPause": "Пауза",
|
||||
"ButtonPlay": "Грати",
|
||||
"ButtonPlaying": "Відтворюється",
|
||||
"ButtonPlaylists": "Списки відтворення",
|
||||
"ButtonPrevious": "Попередній",
|
||||
"ButtonPreviousChapter": "Попередня глава",
|
||||
"ButtonPurgeAllCache": "Очистити весь кеш",
|
||||
"ButtonPurgeItemsCache": "Очистити кеш елементів",
|
||||
"ButtonPurgeMediaProgress": "Очистити прогрес",
|
||||
"ButtonQueueAddItem": "Додати до черги",
|
||||
"ButtonQueueRemoveItem": "Вилучити з черги",
|
||||
"ButtonQuickMatch": "Швидкий пошук",
|
||||
"ButtonRead": "Читати",
|
||||
"ButtonRefresh": "Оновити",
|
||||
"ButtonRemove": "Видалити",
|
||||
"ButtonRemoveAll": "Видалити все",
|
||||
"ButtonRemoveAllLibraryItems": "Видалити всі елементи бібліотеки",
|
||||
"ButtonRemoveFromContinueListening": "Видалити з Продовжити слухати",
|
||||
"ButtonRemoveFromContinueReading": "Видалити з Продовжити читання",
|
||||
"ButtonRemoveSeriesFromContinueSeries": "Видалити серію з Продовжити серії",
|
||||
"ButtonReScan": "Пересканувати",
|
||||
"ButtonReset": "Скинути",
|
||||
"ButtonResetToDefault": "Скинути до стандартних",
|
||||
"ButtonRestore": "Відновити",
|
||||
"ButtonSave": "Зберегти",
|
||||
"ButtonSaveAndClose": "Зберегти та закрити",
|
||||
"ButtonSaveTracklist": "Зберегти порядок",
|
||||
"ButtonScan": "Сканувати",
|
||||
"ButtonScanLibrary": "Сканувати бібліотеку",
|
||||
"ButtonSearch": "Пошук",
|
||||
"ButtonSelectFolderPath": "Обрати шлях до теки",
|
||||
"ButtonSeries": "Серії",
|
||||
"ButtonSetChaptersFromTracks": "Встановити глави за доріжками",
|
||||
"ButtonShare": "Поширити",
|
||||
"ButtonShiftTimes": "Зсунути час",
|
||||
"ButtonShow": "Показати",
|
||||
"ButtonStartM4BEncode": "Почати кодування у M4B",
|
||||
"ButtonStartMetadataEmbed": "Почати вбудування метаданих",
|
||||
"ButtonSubmit": "Надіслати",
|
||||
"ButtonTest": "Перевірити",
|
||||
"ButtonUpload": "Завантажити",
|
||||
"ButtonUploadBackup": "Завантажити резервну копію",
|
||||
"ButtonUploadCover": "Завантажити обкладинку",
|
||||
"ButtonUploadOPMLFile": "Завантажити OPML-файл",
|
||||
"ButtonUserDelete": "Видалити користувача {0}",
|
||||
"ButtonUserEdit": "Редагувати користувача {0}",
|
||||
"ButtonViewAll": "Переглянути все",
|
||||
"ButtonYes": "Так",
|
||||
"ErrorUploadFetchMetadataAPI": "Помилка при отриманні метаданих",
|
||||
"ErrorUploadFetchMetadataNoResults": "Не вдалося отримати метадані — спробуйте оновити заголовок та/або автора",
|
||||
"ErrorUploadLacksTitle": "Назва обов'язкова",
|
||||
"HeaderAccount": "Профіль",
|
||||
"HeaderAdvanced": "Розширені",
|
||||
"HeaderAppriseNotificationSettings": "Налаштування сповіщень Apprise",
|
||||
"HeaderAudiobookTools": "Інструменти керування файлами книг",
|
||||
"HeaderAudioTracks": "Аудіодоріжки",
|
||||
"HeaderAuthentication": "Автентифікація",
|
||||
"HeaderBackups": "Резервні копії",
|
||||
"HeaderChangePassword": "Змінити пароль",
|
||||
"HeaderChapters": "Глави",
|
||||
"HeaderChooseAFolder": "Обрати теку",
|
||||
"HeaderCollection": "Колекція",
|
||||
"HeaderCollectionItems": "Елементи колекції",
|
||||
"HeaderCover": "Обкладинка",
|
||||
"HeaderCurrentDownloads": "Поточні завантаження",
|
||||
"HeaderCustomMetadataProviders": "Постачальники метаданих",
|
||||
"HeaderDetails": "Подробиці",
|
||||
"HeaderDownloadQueue": "Черга завантажень",
|
||||
"HeaderEbookFiles": "Файли електронних книг",
|
||||
"HeaderEmail": "Електронна пошта",
|
||||
"HeaderEmailSettings": "Налаштування електронної пошти",
|
||||
"HeaderEpisodes": "Епізоди",
|
||||
"HeaderEreaderDevices": "Пристрої для читання",
|
||||
"HeaderEreaderSettings": "Налаштування пристрою для читання",
|
||||
"HeaderFiles": "Файли",
|
||||
"HeaderFindChapters": "Пошук глав",
|
||||
"HeaderIgnoredFiles": "Ігноровані файли",
|
||||
"HeaderItemFiles": "Файли елементів",
|
||||
"HeaderItemMetadataUtils": "Інструменти для метаданих",
|
||||
"HeaderLastListeningSession": "Останній сеанс прослуховування",
|
||||
"HeaderLatestEpisodes": "Останні епізоди",
|
||||
"HeaderLibraries": "Бібліотеки",
|
||||
"HeaderLibraryFiles": "Файли бібліотеки",
|
||||
"HeaderLibraryStats": "Статистика бібліотеки",
|
||||
"HeaderListeningSessions": "Сеанси прослуховування",
|
||||
"HeaderListeningStats": "Статистика відтворення",
|
||||
"HeaderLogin": "Вхід",
|
||||
"HeaderLogs": "Журнал",
|
||||
"HeaderManageGenres": "Керувати жанрами",
|
||||
"HeaderManageTags": "Керувати мітками",
|
||||
"HeaderMapDetails": "Призначити подробиці",
|
||||
"HeaderMatch": "Пошук",
|
||||
"HeaderMetadataOrderOfPrecedence": "Порядок метаданих",
|
||||
"HeaderMetadataToEmbed": "Вбудувати метадані",
|
||||
"HeaderNewAccount": "Новий профіль",
|
||||
"HeaderNewLibrary": "Нова бібліотека",
|
||||
"HeaderNotifications": "Сповіщення",
|
||||
"HeaderOpenIDConnectAuthentication": "Автентифікація OpenID Connect",
|
||||
"HeaderOpenRSSFeed": "Відкрити RSS-канал",
|
||||
"HeaderOtherFiles": "Інші файли",
|
||||
"HeaderPasswordAuthentication": "Автентифікація за паролем",
|
||||
"HeaderPermissions": "Дозволи",
|
||||
"HeaderPlayerQueue": "Черга відтворення",
|
||||
"HeaderPlaylist": "Список відтворення",
|
||||
"HeaderPlaylistItems": "Елементи списку відтворення",
|
||||
"HeaderPodcastsToAdd": "Додати подкасти",
|
||||
"HeaderPreviewCover": "Попередній перегляд",
|
||||
"HeaderRemoveEpisode": "Видалити епізод",
|
||||
"HeaderRemoveEpisodes": "Видалити епізодів: {0}",
|
||||
"HeaderRSSFeedGeneral": "Подробиці RSS",
|
||||
"HeaderRSSFeedIsOpen": "RSS-канал відкрито",
|
||||
"HeaderRSSFeeds": "RSS-канали",
|
||||
"HeaderSavedMediaProgress": "Збережений прогрес медіа",
|
||||
"HeaderSchedule": "Розклад",
|
||||
"HeaderScheduleLibraryScans": "Розклад автосканування бібліотеки",
|
||||
"HeaderSession": "Сеанс",
|
||||
"HeaderSetBackupSchedule": "Встановити розклад резервного копіювання",
|
||||
"HeaderSettings": "Налаштування",
|
||||
"HeaderSettingsDisplay": "Відображення",
|
||||
"HeaderSettingsExperimental": "Експериментальні функції",
|
||||
"HeaderSettingsGeneral": "Основне",
|
||||
"HeaderSettingsScanner": "Сканер",
|
||||
"HeaderSleepTimer": "Таймер вимкнення",
|
||||
"HeaderStatsLargestItems": "Найбільші елементи",
|
||||
"HeaderStatsLongestItems": "Найдовші елементи (год)",
|
||||
"HeaderStatsMinutesListeningChart": "Хвилин прослухано (останні 7 днів)",
|
||||
"HeaderStatsRecentSessions": "Останні сеанси",
|
||||
"HeaderStatsTop10Authors": "10 улюблених авторів",
|
||||
"HeaderStatsTop5Genres": "5 улюблених жанрів",
|
||||
"HeaderTableOfContents": "Зміст",
|
||||
"HeaderTools": "Інструменти",
|
||||
"HeaderUpdateAccount": "Оновити профіль",
|
||||
"HeaderUpdateAuthor": "Оновити автора",
|
||||
"HeaderUpdateDetails": "Оновити подробиці",
|
||||
"HeaderUpdateLibrary": "Оновити бібліотеку",
|
||||
"HeaderUsers": "Користувачі",
|
||||
"HeaderYearReview": "Підсумки {0} року",
|
||||
"HeaderYourStats": "Ваша статистика",
|
||||
"LabelAbridged": "Скорочена",
|
||||
"LabelAccountType": "Тип профілю",
|
||||
"LabelAccountTypeAdmin": "Адміністратор",
|
||||
"LabelAccountTypeGuest": "Гість",
|
||||
"LabelAccountTypeUser": "Користувач",
|
||||
"LabelActivity": "Активність",
|
||||
"LabelAdded": "Додано",
|
||||
"LabelAddedAt": "Дата додавання",
|
||||
"LabelAddToCollection": "Додати у добірку",
|
||||
"LabelAddToCollectionBatch": "Додати книги до добірки: {0}",
|
||||
"LabelAddToPlaylist": "Додати до списку відтворення",
|
||||
"LabelAddToPlaylistBatch": "Додано елементів у список відтворення: {0}",
|
||||
"LabelAdminUsersOnly": "Тільки для адміністраторів",
|
||||
"LabelAll": "Усе",
|
||||
"LabelAllUsers": "Усі користувачі",
|
||||
"LabelAllUsersExcludingGuests": "Усі, крім гостей",
|
||||
"LabelAllUsersIncludingGuests": "Усі, включно з гостями",
|
||||
"LabelAlreadyInYourLibrary": "Вже у вашій бібліотеці",
|
||||
"LabelAppend": "Додати",
|
||||
"LabelAuthor": "Автор",
|
||||
"LabelAuthorFirstLast": "Автор (за ім'ям)",
|
||||
"LabelAuthorLastFirst": "Автор (за прізвищем)",
|
||||
"LabelAuthors": "Автори",
|
||||
"LabelAutoDownloadEpisodes": "Автозавантаження епізодів",
|
||||
"LabelAutoFetchMetadata": "Автозавантаження метаданих",
|
||||
"LabelAutoFetchMetadataHelp": "Отримує метадані про назву, автора та серію під час послідового завантаження. Після завантаження може знадобитися пошук додаткових метаданих.",
|
||||
"LabelAutoLaunch": "Автозапуск",
|
||||
"LabelAutoLaunchDescription": "Автоматично перенаправляти зі сторінки входу до сервісу автентифікації (ручний перезапис шляху <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "Автореєстрація",
|
||||
"LabelAutoRegisterDescription": "Автоматично створювати нових користувачів після входу",
|
||||
"LabelBackToUser": "Повернутися до користувача",
|
||||
"LabelBackupLocation": "Розташування резервних копій",
|
||||
"LabelBackupsEnableAutomaticBackups": "Автоматичне резервне копіювання",
|
||||
"LabelBackupsEnableAutomaticBackupsHelp": "Резервні копії збережено у /metadata/backups",
|
||||
"LabelBackupsMaxBackupSize": "Максимальний розмір резервної копії (у ГБ)",
|
||||
"LabelBackupsMaxBackupSizeHelp": "У якості захисту від неправильного налаштування, резервну копію не буде збережено, якщо її розмір перевищуватиме вказаний.",
|
||||
"LabelBackupsNumberToKeep": "Кількість резервних копій",
|
||||
"LabelBackupsNumberToKeepHelp": "Лиш 1 резервну копію буде видалено за раз, тож якщо їх багато, то вам варто видалити їх вручну.",
|
||||
"LabelBitrate": "Бітрейт",
|
||||
"LabelBooks": "Книги",
|
||||
"LabelButtonText": "Текст кнопки",
|
||||
"LabelChangePassword": "Змінити пароль",
|
||||
"LabelChannels": "Канали",
|
||||
"LabelChapters": "Глави",
|
||||
"LabelChaptersFound": "глав знайдено",
|
||||
"LabelChapterTitle": "Назва глави",
|
||||
"LabelClickForMoreInfo": "Натисніть, щоб дізнатися більше",
|
||||
"LabelClosePlayer": "Закрити програвач",
|
||||
"LabelCodec": "Кодек",
|
||||
"LabelCollapseSeries": "Згорнути серії",
|
||||
"LabelCollection": "Добірка",
|
||||
"LabelCollections": "Добірки",
|
||||
"LabelComplete": "Завершити",
|
||||
"LabelConfirmPassword": "Підтвердити пароль",
|
||||
"LabelContinueListening": "Слухати далі",
|
||||
"LabelContinueReading": "Читати далі",
|
||||
"LabelContinueSeries": "Продовжити серії",
|
||||
"LabelCover": "Обкладинка",
|
||||
"LabelCoverImageURL": "URL-адреса обкладинки",
|
||||
"LabelCreatedAt": "Дата створення",
|
||||
"LabelCronExpression": "Команда cron",
|
||||
"LabelCurrent": "Поточне",
|
||||
"LabelCurrently": "Поточний:",
|
||||
"LabelCustomCronExpression": "Спецільна команда cron:",
|
||||
"LabelDatetime": "Дата й час",
|
||||
"LabelDeleteFromFileSystemCheckbox": "Видалити з файлової системи (зніміть прапорець, щоб видалити лише з бази даних)",
|
||||
"LabelDescription": "Опис",
|
||||
"LabelDeselectAll": "Скасувати вибір",
|
||||
"LabelDevice": "Пристрій",
|
||||
"LabelDeviceInfo": "Про пристрій",
|
||||
"LabelDeviceIsAvailableTo": "Пристрій доступний для...",
|
||||
"LabelDirectory": "Каталог",
|
||||
"LabelDiscFromFilename": "Диск за назвою файлу",
|
||||
"LabelDiscFromMetadata": "Диск за метаданими",
|
||||
"LabelDiscover": "Огляд",
|
||||
"LabelDownload": "Завантажити",
|
||||
"LabelDownloadNEpisodes": "Завантажити епізодів: {0}",
|
||||
"LabelDuration": "Тривалість",
|
||||
"LabelDurationFound": "Виявлена тривалість:",
|
||||
"LabelEbook": "Електронна книга",
|
||||
"LabelEbooks": "Електронні книги",
|
||||
"LabelEdit": "Редагувати",
|
||||
"LabelEmail": "Електронна пошта",
|
||||
"LabelEmailSettingsFromAddress": "Адреса відправника",
|
||||
"LabelEmailSettingsSecure": "Безпечне",
|
||||
"LabelEmailSettingsSecureHelp": "Увімкніть, аби використовувати TLS при підключенні до сервера. Якщо вимкнути, то TLS буде використано, якщо сервер підтримує STARTTLS. Увімкніть, якщо ви підключаєтеся до порту 465. Вимкніть для портів 587 або 25. (з nodemailer.com/smtp/#authentication)",
|
||||
"LabelEmailSettingsTestAddress": "Тестова адреса",
|
||||
"LabelEmbeddedCover": "Вбудована обкладинка",
|
||||
"LabelEnable": "Увімкнути",
|
||||
"LabelEnd": "Кінець",
|
||||
"LabelEpisode": "Епізод",
|
||||
"LabelEpisodeTitle": "Назва епізоду",
|
||||
"LabelEpisodeType": "Тип епізоду",
|
||||
"LabelExample": "Приклад",
|
||||
"LabelExplicit": "Відверта",
|
||||
"LabelFeedURL": "Адреса стрічки",
|
||||
"LabelFetchingMetadata": "Отримання метаданих",
|
||||
"LabelFile": "Файл",
|
||||
"LabelFileBirthtime": "Дата створення",
|
||||
"LabelFileModified": "Дата змінення",
|
||||
"LabelFilename": "Ім'я файлу",
|
||||
"LabelFilterByUser": "Фільтрувати за користувачем",
|
||||
"LabelFindEpisodes": "Знайти епізоди",
|
||||
"LabelFinished": "Завершено",
|
||||
"LabelFolder": "Тека",
|
||||
"LabelFolders": "Теки",
|
||||
"LabelFontBold": "Жирний",
|
||||
"LabelFontFamily": "Гарнітура",
|
||||
"LabelFontItalic": "Курсив",
|
||||
"LabelFontScale": "Розмір шрифту",
|
||||
"LabelFontStrikethrough": "Закреслений",
|
||||
"LabelFormat": "Формат",
|
||||
"LabelGenre": "Жанр",
|
||||
"LabelGenres": "Жанри",
|
||||
"LabelHardDeleteFile": "Остаточно видалити файл",
|
||||
"LabelHasEbook": "Має електронну книгу",
|
||||
"LabelHasSupplementaryEbook": "Має додаткову електронну книгу",
|
||||
"LabelHighestPriority": "Найвищий пріоритет",
|
||||
"LabelHost": "Гост",
|
||||
"LabelHour": "Година",
|
||||
"LabelIcon": "Іконка",
|
||||
"LabelImageURLFromTheWeb": "URL зображення з мережі",
|
||||
"LabelIncludeInTracklist": "Включити у список",
|
||||
"LabelIncomplete": "Не завершено",
|
||||
"LabelInProgress": "У процесі",
|
||||
"LabelInterval": "Частота",
|
||||
"LabelIntervalCustomDailyWeekly": "Налаштувати щодня/щотижня",
|
||||
"LabelIntervalEvery12Hours": "Кожні 12 годин",
|
||||
"LabelIntervalEvery15Minutes": "Кожні 15 хвилин",
|
||||
"LabelIntervalEvery2Hours": "Кожні 2 години",
|
||||
"LabelIntervalEvery30Minutes": "Кожні 30 хвилин",
|
||||
"LabelIntervalEvery6Hours": "Кожні 6 годин",
|
||||
"LabelIntervalEveryDay": "Щодня",
|
||||
"LabelIntervalEveryHour": "Щогодини",
|
||||
"LabelInvert": "Інвертувати",
|
||||
"LabelItem": "Елемент",
|
||||
"LabelLanguage": "Мова",
|
||||
"LabelLanguageDefaultServer": "Типова мова сервера",
|
||||
"LabelLastBookAdded": "Останню книгу додано",
|
||||
"LabelLastBookUpdated": "Останню книгу оновлено",
|
||||
"LabelLastSeen": "Активність",
|
||||
"LabelLastTime": "Останній час",
|
||||
"LabelLastUpdate": "Останнє оновлення",
|
||||
"LabelLayout": "Вигляд",
|
||||
"LabelLayoutSinglePage": "Одна сторінка",
|
||||
"LabelLayoutSplitPage": "Розділити сторінку",
|
||||
"LabelLess": "Менше",
|
||||
"LabelLibrariesAccessibleToUser": "Бібліотеки, доступні користувачу",
|
||||
"LabelLibrary": "Бібліотека",
|
||||
"LabelLibraryItem": "Елемент бібліотеки",
|
||||
"LabelLibraryName": "Назва бібліотеки",
|
||||
"LabelLimit": "Обмеження",
|
||||
"LabelLineSpacing": "Відстань між рядками",
|
||||
"LabelListenAgain": "Слухати знову",
|
||||
"LabelLogLevelDebug": "Зневадження",
|
||||
"LabelLogLevelInfo": "Відомості",
|
||||
"LabelLogLevelWarn": "Увага",
|
||||
"LabelLookForNewEpisodesAfterDate": "Шукати нові епізоди після вказаної дати",
|
||||
"LabelLowestPriority": "Найнижчий пріоритет",
|
||||
"LabelMatchExistingUsersBy": "Шукати наявних користувачів за",
|
||||
"LabelMatchExistingUsersByDescription": "Використовується для підключення наявних користувачів. Після підключення користувач отримає унікальний id від вашого сервісу SSO",
|
||||
"LabelMediaPlayer": "Програвач медіа",
|
||||
"LabelMediaType": "Тип медіа",
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "Пріоритетніші джерела метаданих перезапишуть менш пріоритетні метадані",
|
||||
"LabelMetadataProvider": "Джерело метаданих",
|
||||
"LabelMetaTag": "Метатег",
|
||||
"LabelMetaTags": "Метатеги",
|
||||
"LabelMinute": "Хвилина",
|
||||
"LabelMissing": "Бракує",
|
||||
"LabelMissingEbook": "Без електронної книги",
|
||||
"LabelMissingSupplementaryEbook": "Без додаткової електронної книги",
|
||||
"LabelMobileRedirectURIs": "Дозволені адреси перенаправлення",
|
||||
"LabelMobileRedirectURIsDescription": "Це білий список наявних URI, що перенаправляють у мобільний додаток. За замовчуванням це <code>audiobookshelf://oauth</code>, який ви можете видалити або ж додати інші адреси для сторонніх інтеграцій. Використайте зірочку (<code>*</code>), аби дозволити будь-яке URI.",
|
||||
"LabelMore": "Більше",
|
||||
"LabelMoreInfo": "Докладніше",
|
||||
"LabelName": "Назва",
|
||||
"LabelNarrator": "Читець",
|
||||
"LabelNarrators": "Читці",
|
||||
"LabelNew": "Нове",
|
||||
"LabelNewestAuthors": "Нові автори",
|
||||
"LabelNewestEpisodes": "Нові епізоди",
|
||||
"LabelNewPassword": "Новий пароль",
|
||||
"LabelNextBackupDate": "Дата наступного резервного копіювання",
|
||||
"LabelNextScheduledRun": "Наступний запланований запуск",
|
||||
"LabelNoEpisodesSelected": "Не вибрано жодного епізоду",
|
||||
"LabelNotes": "Примітки",
|
||||
"LabelNotFinished": "Незавершені",
|
||||
"LabelNotificationAppriseURL": "URL Apprise",
|
||||
"LabelNotificationAvailableVariables": "Доступні змінні",
|
||||
"LabelNotificationBodyTemplate": "Шаблон сповіщення",
|
||||
"LabelNotificationEvent": "Сповіщення про події",
|
||||
"LabelNotificationsMaxFailedAttempts": "Ліміт невдалих спроб",
|
||||
"LabelNotificationsMaxFailedAttemptsHelp": "Сповіщення буде вимкнено після багатьох невдалих надсилань",
|
||||
"LabelNotificationsMaxQueueSize": "Ліміт розміру черги сповіщень",
|
||||
"LabelNotificationsMaxQueueSizeHelp": "Події обмежені до 1 на секунду. Події буде проігноровано, якщо ліміт черги досягнуто. Це запобігає спаму сповіщеннями.",
|
||||
"LabelNotificationTitleTemplate": "Шаблон заголовку",
|
||||
"LabelNotStarted": "Не розпочато",
|
||||
"LabelNumberOfBooks": "Кількість книг",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Відкрити RSS-канал",
|
||||
"LabelOverwrite": "Перезаписати",
|
||||
"LabelPassword": "Пароль",
|
||||
"LabelPath": "Шлях",
|
||||
"LabelPermissionsAccessAllLibraries": "Доступ до усіх бібліотек",
|
||||
"LabelPermissionsAccessAllTags": "Доступ до усіх міток",
|
||||
"LabelPermissionsAccessExplicitContent": "Доступ до відвертого вмісту",
|
||||
"LabelPermissionsDelete": "Може видаляти",
|
||||
"LabelPermissionsDownload": "Може завантажувати",
|
||||
"LabelPermissionsUpdate": "Може оновлювати",
|
||||
"LabelPermissionsUpload": "Може завантажувати",
|
||||
"LabelPersonalYearReview": "Ваші підсумки року ({0})",
|
||||
"LabelPhotoPathURL": "Шлях/URL фото",
|
||||
"LabelPlaylists": "Списки відтворення",
|
||||
"LabelPlayMethod": "Метод відтворення",
|
||||
"LabelPodcast": "Подкаст",
|
||||
"LabelPodcasts": "Подкасти",
|
||||
"LabelPodcastSearchRegion": "Регіон пошуку подкасту",
|
||||
"LabelPodcastType": "Тип подкасту",
|
||||
"LabelPort": "Порт",
|
||||
"LabelPrefixesToIgnore": "Ігнорувати префікси (з урахуванням регістру)",
|
||||
"LabelPreventIndexing": "Заборонити індексування вашого каналу каталогами подкастів iTunes та Google",
|
||||
"LabelPrimaryEbook": "Основна електронна книга",
|
||||
"LabelProgress": "Прогрес",
|
||||
"LabelProvider": "Джерело",
|
||||
"LabelPubDate": "Дата публікації",
|
||||
"LabelPublisher": "Видавець",
|
||||
"LabelPublishYear": "Рік публікації",
|
||||
"LabelRead": "Читати",
|
||||
"LabelReadAgain": "Читати знову",
|
||||
"LabelReadEbookWithoutProgress": "Читати книгу без збереження прогресу",
|
||||
"LabelRecentlyAdded": "Нещодавно додані",
|
||||
"LabelRecentSeries": "Останні серії",
|
||||
"LabelRecommended": "Рекомендовані",
|
||||
"LabelRedo": "Повторити",
|
||||
"LabelRegion": "Регіон",
|
||||
"LabelReleaseDate": "Дата публікації",
|
||||
"LabelRemoveCover": "Видалити обкладинку",
|
||||
"LabelRowsPerPage": "Рядків на сторінку",
|
||||
"LabelRSSFeedCustomOwnerEmail": "Користувацька електронна адреса власника",
|
||||
"LabelRSSFeedCustomOwnerName": "Користувацьке ім'я власника",
|
||||
"LabelRSSFeedOpen": "RSS-канал відкрито",
|
||||
"LabelRSSFeedPreventIndexing": "Запобігати індексації",
|
||||
"LabelRSSFeedSlug": "Назва RSS-каналу",
|
||||
"LabelRSSFeedURL": "Адреса RSS-каналу",
|
||||
"LabelSearchTerm": "Пошуковий запит",
|
||||
"LabelSearchTitle": "Пошук за назвою",
|
||||
"LabelSearchTitleOrASIN": "Пошук назви або ASIN",
|
||||
"LabelSeason": "Сезон",
|
||||
"LabelSelectAllEpisodes": "Вибрати всі серії",
|
||||
"LabelSelectEpisodesShowing": "Обрати показані епізоди: {0}",
|
||||
"LabelSelectUsers": "Вибрати користувачів",
|
||||
"LabelSendEbookToDevice": "Надіслати електронну книгу на...",
|
||||
"LabelSequence": "Послідовність",
|
||||
"LabelSeries": "Серії",
|
||||
"LabelSeriesName": "Назва серії",
|
||||
"LabelSeriesProgress": "Прогрес серії",
|
||||
"LabelServerYearReview": "Підсумки року сервера ({0})",
|
||||
"LabelSetEbookAsPrimary": "Зробити основною",
|
||||
"LabelSetEbookAsSupplementary": "Зробити додатковою",
|
||||
"LabelSettingsAudiobooksOnly": "Лише аудіокниги",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "Увімкніть цей параметр, щоб ігнорувати файли електронних книг, якщо вони не знаходяться у теці аудіокниги, тоді вони будуть встановлені як додаткові електронні книги",
|
||||
"LabelSettingsBookshelfViewHelp": "Імітує вигляд дерев'яних полиць",
|
||||
"LabelSettingsChromecastSupport": "Підтримка Chromecast",
|
||||
"LabelSettingsDateFormat": "Формат дати",
|
||||
"LabelSettingsDisableWatcher": "Вимкнути спостерігача",
|
||||
"LabelSettingsDisableWatcherForLibrary": "Вимкнути спостерігання тек бібліотеки",
|
||||
"LabelSettingsDisableWatcherHelp": "Вимикає автоматичне додавання/оновлення елементів, коли спостерігаються зміни файлів. *Потребує перезавантаження сервера",
|
||||
"LabelSettingsEnableWatcher": "Увімкнути спостерігача",
|
||||
"LabelSettingsEnableWatcherForLibrary": "Увімкнути спостерігання тек бібліотеки",
|
||||
"LabelSettingsEnableWatcherHelp": "Вмикає автоматичне додавання/оновлення елементів, коли спостерігаються зміни файлів. *Потребує перезавантаження сервера",
|
||||
"LabelSettingsExperimentalFeatures": "Експериментальні функції",
|
||||
"LabelSettingsExperimentalFeaturesHelp": "Функції в розробці, які потребують вашого відгуку та допомоги в тестуванні. Натисніть, щоб відкрити обговорення на Github.",
|
||||
"LabelSettingsFindCovers": "Пошук обкладинок",
|
||||
"LabelSettingsFindCoversHelp": "Якщо ваша аудіокнига не містить вбудованої обкладинки або зображення у теці, сканувальник спробує знайти обкладинку.<br>Примітка: Це збільшить час сканування",
|
||||
"LabelSettingsHideSingleBookSeries": "Сховати серії з однією книгою",
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Серії, що містять одну книгу, будуть приховані зі сторінки серій та полиць головної сторінки.",
|
||||
"LabelSettingsHomePageBookshelfView": "Полиці на головній сторінці",
|
||||
"LabelSettingsLibraryBookshelfView": "Показувати полиці у бібліотеці",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Пропускати попередні книги у Продовжити серії",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "Полиця Продовжити серії на головній сторінці показує найпершу непочату книгу з тих серій, у яких ви завершили хоча б одну книгу та не маєте книг у процесі. Якщо увімкнути це налаштування, то серії продовжуватимуться з останньої завершеної книги, а не з першої непочатої.",
|
||||
"LabelSettingsParseSubtitles": "Дістати підзаголовки",
|
||||
"LabelSettingsParseSubtitlesHelp": "Дістати підзаголовки з назв тек аудіокниг.<br>Підзаголовок мусить йти після \" - \"<br>Наприклад, \"Назва книги - Це підзаголовок\" має підзаголовок \"Це підзаголовок\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Надавати перевагу віднайденим метаданим",
|
||||
"LabelSettingsPreferMatchedMetadataHelp": "Подробиці буде перезаписано віднайденими даними Швидкого пошуку. Без цього Швидкий пошук заповнить лише подробиці, яких бракує.",
|
||||
"LabelSettingsSkipMatchingBooksWithASIN": "Не шукати книги, що мають ASIN",
|
||||
"LabelSettingsSkipMatchingBooksWithISBN": "Не шукати книги, що мають ISBN",
|
||||
"LabelSettingsSortingIgnorePrefixes": "Ігнорувати префікси при сортуванні",
|
||||
"LabelSettingsSortingIgnorePrefixesHelp": "Наприклад, для префіксу \"1.\" назва книги \"1. Назва книги\" буде визначена як \"Назва книги, 1.\"",
|
||||
"LabelSettingsSquareBookCovers": "Квадратні обкладинки",
|
||||
"LabelSettingsSquareBookCoversHelp": "Надавати перевагу квадратним обкладинкам замість формату 1,6:1",
|
||||
"LabelSettingsStoreCoversWithItem": "Зберігати обкладинки з елементом",
|
||||
"LabelSettingsStoreCoversWithItemHelp": "За замовчуванням обкладинки зберігаються у /metadata/items. Цей параметр увімкне збереження обкладинок у теці елемента бібліотеки. Буде збережено лише один файл \"cover\"",
|
||||
"LabelSettingsStoreMetadataWithItem": "Зберігати метадані з елементом",
|
||||
"LabelSettingsStoreMetadataWithItemHelp": "За замовчуванням файли метаданих зберігаються у /metadata/items. Цей параметр увімкне збереження метаданих у теці елемента бібліотеки",
|
||||
"LabelSettingsTimeFormat": "Формат часу",
|
||||
"LabelShowAll": "Показати все",
|
||||
"LabelSize": "Розмір",
|
||||
"LabelSleepTimer": "Таймер вимкнення",
|
||||
"LabelSlug": "Назва",
|
||||
"LabelStart": "Початок",
|
||||
"LabelStarted": "Почато",
|
||||
"LabelStartedAt": "Почато",
|
||||
"LabelStartTime": "Час початку",
|
||||
"LabelStatsAudioTracks": "Аудіодоріжки",
|
||||
"LabelStatsAuthors": "Автори",
|
||||
"LabelStatsBestDay": "Найкращий день",
|
||||
"LabelStatsDailyAverage": "В середньому за добу",
|
||||
"LabelStatsDays": "Днів",
|
||||
"LabelStatsDaysListened": "Днів прослухано",
|
||||
"LabelStatsHours": "Годин",
|
||||
"LabelStatsInARow": "поспіль",
|
||||
"LabelStatsItemsFinished": "Елементів завершено",
|
||||
"LabelStatsItemsInLibrary": "Елементів у бібліотеці",
|
||||
"LabelStatsMinutes": "хвилин",
|
||||
"LabelStatsMinutesListening": "Хвилин прослухано",
|
||||
"LabelStatsOverallDays": "Днів загалом",
|
||||
"LabelStatsOverallHours": "Годин загалом",
|
||||
"LabelStatsWeekListening": "Прослухано за тиждень",
|
||||
"LabelSubtitle": "Підзаголовок",
|
||||
"LabelSupportedFileTypes": "Підтримувані типи файлів",
|
||||
"LabelTag": "Мітка",
|
||||
"LabelTags": "Мітки",
|
||||
"LabelTagsAccessibleToUser": "Мітки, доступні користувачу",
|
||||
"LabelTagsNotAccessibleToUser": "Мітки, недоступні користувачу",
|
||||
"LabelTasks": "Запущені завдання",
|
||||
"LabelTextEditorBulletedList": "Маркований список",
|
||||
"LabelTextEditorLink": "Посилання",
|
||||
"LabelTextEditorNumberedList": "Нумерований список",
|
||||
"LabelTextEditorUnlink": "Прибрати посилання",
|
||||
"LabelTheme": "Тема",
|
||||
"LabelThemeDark": "Темна",
|
||||
"LabelThemeLight": "Світла",
|
||||
"LabelTimeBase": "Шкала часу",
|
||||
"LabelTimeListened": "Часу прослухано",
|
||||
"LabelTimeListenedToday": "Сьогодні прослухано",
|
||||
"LabelTimeRemaining": "Залишилося: {0}",
|
||||
"LabelTimeToShift": "На скільки секунд зсунути",
|
||||
"LabelTitle": "Назва",
|
||||
"LabelToolsEmbedMetadata": "Вбудувати метадані",
|
||||
"LabelToolsEmbedMetadataDescription": "Вбудувати метадані в аудіофайли, включно з обкладинками та главами",
|
||||
"LabelToolsMakeM4b": "Створити M4B-файл аудіокниги",
|
||||
"LabelToolsMakeM4bDescription": "Створити .M4B-аудіокнигу з вбудованими метаданими, обкладинкою та главами.",
|
||||
"LabelToolsSplitM4b": "Розділити M4B на MP3",
|
||||
"LabelToolsSplitM4bDescription": "Створення MP3 з розділеного за главами M4B з вбудованими метаданими, обкладинкою та главами.",
|
||||
"LabelTotalDuration": "Загальна тривалість",
|
||||
"LabelTotalTimeListened": "Усього прослухано",
|
||||
"LabelTrackFromFilename": "Доріжка за назвою файлу",
|
||||
"LabelTrackFromMetadata": "Доріжка за метаданими",
|
||||
"LabelTracks": "Доріжки",
|
||||
"LabelTracksMultiTrack": "Декілька доріжок",
|
||||
"LabelTracksNone": "Доріжки відсутні",
|
||||
"LabelTracksSingleTrack": "Одна доріжка",
|
||||
"LabelType": "Тип",
|
||||
"LabelUnabridged": "Повна",
|
||||
"LabelUndo": "Скасувати",
|
||||
"LabelUnknown": "Невідомо",
|
||||
"LabelUpdateCover": "Оновити обкладинку",
|
||||
"LabelUpdateCoverHelp": "Дозволити перезапис наявних обкладинок обраних книг після віднайдення",
|
||||
"LabelUpdatedAt": "Оновлення",
|
||||
"LabelUpdateDetails": "Оновити подробиці",
|
||||
"LabelUpdateDetailsHelp": "Дозволити перезапис наявних подробиць обраних книг після віднайдення",
|
||||
"LabelUploaderDragAndDrop": "Перетягніть файли або теки",
|
||||
"LabelUploaderDropFiles": "Перетягніть файли",
|
||||
"LabelUploaderItemFetchMetadataHelp": "Автоматично шукати назву, автора та серію",
|
||||
"LabelUseChapterTrack": "Прогрес глави",
|
||||
"LabelUseFullTrack": "Використовувати доріжку повністю",
|
||||
"LabelUser": "Користувач",
|
||||
"LabelUsername": "Ім’я користувача",
|
||||
"LabelValue": "Значення",
|
||||
"LabelVersion": "Версія",
|
||||
"LabelViewBookmarks": "Переглянути закладки",
|
||||
"LabelViewChapters": "Переглянути глави",
|
||||
"LabelViewQueue": "Переглянути чергу відтворення",
|
||||
"LabelVolume": "Гучність",
|
||||
"LabelWeekdaysToRun": "Виконувати у дні",
|
||||
"LabelYearReviewHide": "Сховати підсумки року",
|
||||
"LabelYearReviewShow": "Переглянути підсумки року",
|
||||
"LabelYourAudiobookDuration": "Тривалість вашої аудіокниги",
|
||||
"LabelYourBookmarks": "Ваші закладки",
|
||||
"LabelYourPlaylists": "Ваші списки відтворення",
|
||||
"LabelYourProgress": "Ваш прогрес",
|
||||
"MessageAddToPlayerQueue": "Додати до черги відтворення",
|
||||
"MessageAppriseDescription": "Щоб скористатися цією функцією, вам потрібно мати запущену <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> або API, що оброблятиме ті ж запити. <br />Аби надсилати сповіщення, URL-адреса API Apprise мусить бути повною, наприклад, якщо ваш 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>. Резервні копії <strong>не</strong> містять жодних файлів з тек бібліотеки.",
|
||||
"MessageBatchQuickMatchDescription": "Швидкий пошук спробує знайти відсутні обкладинки та метадані обраних елементів. Увімкніть налаштування нижче, аби дозволити заміну наявних обкладинок та/або метаданих під час швидкого пошуку.",
|
||||
"MessageBookshelfNoCollections": "Ви не створили жодної добірки",
|
||||
"MessageBookshelfNoResultsForFilter": "Немає результатів з фільтром \"{0}: {1}\"",
|
||||
"MessageBookshelfNoRSSFeeds": "Немає відкритих RSS-каналів",
|
||||
"MessageBookshelfNoSeries": "Серії відсутні",
|
||||
"MessageChapterEndIsAfter": "Кінець глави знаходиться після закінчення книги",
|
||||
"MessageChapterErrorFirstNotZero": "Перша глава мусить починатися з 0",
|
||||
"MessageChapterErrorStartGteDuration": "Час початку мусить бути меншим за тривалість аудіокниги",
|
||||
"MessageChapterErrorStartLtPrev": "Неприпустимий час початку, має бути більшим за час початку попередньої глави",
|
||||
"MessageChapterStartIsAfter": "Початок глави знаходиться після закінчення книги",
|
||||
"MessageCheckingCron": "Перевірка планувальника...",
|
||||
"MessageConfirmCloseFeed": "Ви дійсно бажаєте закрити цей канал?",
|
||||
"MessageConfirmDeleteBackup": "Ви дійсно бажаєте видалити резервну копію за {0}?",
|
||||
"MessageConfirmDeleteFile": "Файл буде видалено з вашої файлової системи. Ви впевнені?",
|
||||
"MessageConfirmDeleteLibrary": "Ви дійсно бажаєте назавжди видалити бібліотеку \"{0}\"?",
|
||||
"MessageConfirmDeleteLibraryItem": "Елемент бібліотеки буде видалено з бази даних та вашої файлової системи. Ви впевнені?",
|
||||
"MessageConfirmDeleteLibraryItems": "З бази даних та вашої файлової системи будуть видалені елементи бібліотеки: {0}. Ви впевнені?",
|
||||
"MessageConfirmDeleteSession": "Ви дійсно бажаєте видалити цей сеанс?",
|
||||
"MessageConfirmForceReScan": "Ви дійсно бажаєте примусово пересканувати?",
|
||||
"MessageConfirmMarkAllEpisodesFinished": "Ви дійсно бажаєте позначити усі епізоди завершеними?",
|
||||
"MessageConfirmMarkAllEpisodesNotFinished": "Ви дійсно бажаєте позначити усі епізоди незавершеними?",
|
||||
"MessageConfirmMarkSeriesFinished": "Ви дійсно бажаєте позначити усі книги серії завершеними?",
|
||||
"MessageConfirmMarkSeriesNotFinished": "Ви дійсно бажаєте позначити всі книги серії незавершеними?",
|
||||
"MessageConfirmQuickEmbed": "Увага! Швидке вбудування не створює резервних копій ваших аудіо. Переконайтеся, що маєте копію ваших файлів.<br><br>Продовжити?",
|
||||
"MessageConfirmRemoveAllChapters": "Ви дійсно бажаєте видалити усі глави?",
|
||||
"MessageConfirmRemoveAuthor": "Ви дійсно бажаєте видалити автора \"{0}\"?",
|
||||
"MessageConfirmRemoveCollection": "Ви дійсно бажаєте видалити добірку \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisode": "Ви дійсно бажаєте видалити епізод \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisodes": "Ви дійсно бажаєте видалити епізодів: {0}?",
|
||||
"MessageConfirmRemoveListeningSessions": "Ви дійсно бажаєте видалити сеанси прослуховування: {0}?",
|
||||
"MessageConfirmRemoveNarrator": "Ви дійсно бажаєте видалити читця \"{0}\"?",
|
||||
"MessageConfirmRemovePlaylist": "Ви дійсно бажаєте видалити список відтворення \"{0}\"?",
|
||||
"MessageConfirmRenameGenre": "Ви дійсно бажаєте замінити жанр \"{0}\" на \"{1}\" для усіх елементів?",
|
||||
"MessageConfirmRenameGenreMergeNote": "Примітка: такий жанр вже існує, тож їх буде об'єднано.",
|
||||
"MessageConfirmRenameGenreWarning": "Увага! Вже існує схожий жанр у іншому регістрі \"{0}\".",
|
||||
"MessageConfirmRenameTag": "Ви дійсно бажаєте замінити мітку \"{0}\" на \"{1}\" для усіх елементів?",
|
||||
"MessageConfirmRenameTagMergeNote": "Примітка: така мітка вже існує, тож їх буде об'єднано.",
|
||||
"MessageConfirmRenameTagWarning": "Увага! Вже існує схожа мітка у іншому регістрі \"{0}\".",
|
||||
"MessageConfirmReScanLibraryItems": "Ви дійсно бажаєте пересканувати елементи: {0}?",
|
||||
"MessageConfirmSendEbookToDevice": "Ви дійсно хочете відправити на пристрій \"{2}\" електроні книги: {0}, \"{1}\"?",
|
||||
"MessageDownloadingEpisode": "Завантаження епізоду",
|
||||
"MessageDragFilesIntoTrackOrder": "Перетягніть файли до правильного порядку",
|
||||
"MessageEmbedFinished": "Вбудовано!",
|
||||
"MessageEpisodesQueuedForDownload": "Епізодів у черзі завантаження: {0}",
|
||||
"MessageFeedURLWillBe": "URL-адреса каналу буде {0}",
|
||||
"MessageFetching": "Отримання...",
|
||||
"MessageForceReScanDescription": "Просканує усі файли заново, неначе вперше. ID3-мітки, файли OPF та текстові файли будуть проскановані як нові.",
|
||||
"MessageImportantNotice": "Важливе повідомлення!",
|
||||
"MessageInsertChapterBelow": "Введіть главу нижче",
|
||||
"MessageItemsSelected": "Обрано елементів: {0}",
|
||||
"MessageItemsUpdated": "Оновлено елементів: {0}",
|
||||
"MessageJoinUsOn": "Приєднуйтесь до",
|
||||
"MessageListeningSessionsInTheLastYear": "Сесій прослуховування минулого року: {0}",
|
||||
"MessageLoading": "Завантаження...",
|
||||
"MessageLoadingFolders": "Завантаження тек...",
|
||||
"MessageM4BFailed": "Помилка M4B!",
|
||||
"MessageM4BFinished": "M4B створено!",
|
||||
"MessageMapChapterTitles": "Встановіть назви глав вашої аудіокниги без визначення налаштувань тривалості",
|
||||
"MessageMarkAllEpisodesFinished": "Позначити всі епізоди завершеними",
|
||||
"MessageMarkAllEpisodesNotFinished": "Позначити всі епізоди незавершеними",
|
||||
"MessageMarkAsFinished": "Позначити завершеним",
|
||||
"MessageMarkAsNotFinished": "Позначити незавершеним",
|
||||
"MessageMatchBooksDescription": "Спробує віднайти книгу у вказаному джерелі пошуку та встановити подробиці та обкладинку, яких бракує. Не перезаписує подробиці.",
|
||||
"MessageNoAudioTracks": "Аудіодоріжки відсутні",
|
||||
"MessageNoAuthors": "Автори відсутні",
|
||||
"MessageNoBackups": "Резервні копії відсутні",
|
||||
"MessageNoBookmarks": "Немає закладок",
|
||||
"MessageNoChapters": "Глави відсутні",
|
||||
"MessageNoCollections": "Добірки відсутні",
|
||||
"MessageNoCoversFound": "Обкладинок не знайдено",
|
||||
"MessageNoDescription": "Без опису",
|
||||
"MessageNoDownloadsInProgress": "Немає активних завантажень",
|
||||
"MessageNoDownloadsQueued": "Немає завантажень у черзі",
|
||||
"MessageNoEpisodeMatchesFound": "Відповідних епізодів не знайдено",
|
||||
"MessageNoEpisodes": "Епізоди відсутні",
|
||||
"MessageNoFoldersAvailable": "Немає доступних тек",
|
||||
"MessageNoGenres": "Без жанру",
|
||||
"MessageNoIssues": "Немає проблем",
|
||||
"MessageNoItems": "Елементи відсутні",
|
||||
"MessageNoItemsFound": "Елементів не знайдено",
|
||||
"MessageNoListeningSessions": "Сеанси прослуховування відсутні",
|
||||
"MessageNoLogs": "Журнал порожній",
|
||||
"MessageNoMediaProgress": "Прогрес відсутній",
|
||||
"MessageNoNotifications": "Сповіщення відсутні",
|
||||
"MessageNoPodcastsFound": "Подкастів не знайдено",
|
||||
"MessageNoResults": "Немає результатів",
|
||||
"MessageNoSearchResultsFor": "Немає результатів пошуку для \"{0}\"",
|
||||
"MessageNoSeries": "Без серії",
|
||||
"MessageNoTags": "Без міток",
|
||||
"MessageNoTasksRunning": "Немає активних завдань",
|
||||
"MessageNotYetImplemented": "Ще не реалізовано",
|
||||
"MessageNoUpdateNecessary": "Оновлення не потрібно",
|
||||
"MessageNoUpdatesWereNecessary": "Оновлень не потрібно",
|
||||
"MessageNoUserPlaylists": "У вас немає списків відтворення",
|
||||
"MessageOr": "або",
|
||||
"MessagePauseChapter": "Призупинити відтворення глави",
|
||||
"MessagePlayChapter": "Слухати початок глави",
|
||||
"MessagePlaylistCreateFromCollection": "Створити список відтворення з добірки",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Подкаст не має RSS-каналу для пошуку",
|
||||
"MessageQuickMatchDescription": "Заповнити відсутні подробиці та обкладинку першим результатом пошуку '{0}'. Не перезаписує подробиці, якщо не увімкнено параметр \"Надавати перевагу віднайденим метаданим\".",
|
||||
"MessageRemoveChapter": "Видалити главу",
|
||||
"MessageRemoveEpisodes": "Видалити епізодів: {0}",
|
||||
"MessageRemoveFromPlayerQueue": "Вилучити з черги відтворення",
|
||||
"MessageRemoveUserWarning": "Ви дійсно бажаєте назавжди видалити користувача \"{0}\"?",
|
||||
"MessageReportBugsAndContribute": "Повідомляйте про помилки, пропонуйте функції та долучайтеся на",
|
||||
"MessageResetChaptersConfirm": "Ви дійсно бажаєте скинути глави та скасувати внесені зміни?",
|
||||
"MessageRestoreBackupConfirm": "Ви дійсно бажаєте відновити резервну копію від",
|
||||
"MessageRestoreBackupWarning": "Відновлення резервної копії перезапише всю базу даних, розташовану в /config, і зображення обкладинок в /metadata/items та /metadata/authors.<br /><br />Резервні копії не змінюють жодних файлів у теках бібліотеки. Якщо у налаштуваннях сервера увімкнено збереження обкладинок і метаданих у теках бібліотеки, вони не створюються під час резервного копіювання і не перезаписуються..<br /><br />Всі клієнти, що користуються вашим сервером, будуть автоматично оновлені.",
|
||||
"MessageSearchResultsFor": "Результати пошуку для",
|
||||
"MessageSelected": "Вибрано: {0}",
|
||||
"MessageServerCouldNotBeReached": "Не вдалося підключитися до сервера",
|
||||
"MessageSetChaptersFromTracksDescription": "Створити глави з аудіодоріжок, встановивши назви файлів за заголовки",
|
||||
"MessageStartPlaybackAtTime": "Почати відтворення \"{0}\" з {1}?",
|
||||
"MessageThinking": "Думаю…",
|
||||
"MessageUploaderItemFailed": "Не вдалося завантажити",
|
||||
"MessageUploaderItemSuccess": "Успішно завантажено!",
|
||||
"MessageUploading": "Завантаження...",
|
||||
"MessageValidCronExpression": "Допустима команда cron",
|
||||
"MessageWatcherIsDisabledGlobally": "Спостерігача вимкнено в налаштуваннях сервера",
|
||||
"MessageXLibraryIsEmpty": "Бібліотека {0} порожня!",
|
||||
"MessageYourAudiobookDurationIsLonger": "Тривалість вашої аудіокниги довша за віднайдену",
|
||||
"MessageYourAudiobookDurationIsShorter": "Тривалість вашої аудіокниги коротша за віднайдену",
|
||||
"NoteChangeRootPassword": "Кореневий користувач — єдиний, хто може мати порожній пароль",
|
||||
"NoteChapterEditorTimes": "Примітка: Перша глава мусить починатися з 0:00, а час початку останньої глави не може бути більшим за зазначену тривалість аудіокниги.",
|
||||
"NoteFolderPicker": "Примітка: вже обрані теки не буде показано",
|
||||
"NoteRSSFeedPodcastAppsHttps": "Попередження: Більшість додатків подкастів вимагатимуть використання протоколу HTTPS від RSS-каналу",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "Попередження: 1 або більше ваших епізодів не мають дати публікації. Деякі додатки подкастів вимагають це.",
|
||||
"NoteUploaderFoldersWithMediaFiles": "Теки з медіафайлами буде оброблено як окремі елементи бібліотеки.",
|
||||
"NoteUploaderOnlyAudioFiles": "Якщо завантажувати лише аудіофайли, то кожен файл буде оброблено як окрему книгу.",
|
||||
"NoteUploaderUnsupportedFiles": "Непідтримувані файли пропущено. Під час вибору або перетягування теки, файли, що знаходяться поза текою, пропускаються.",
|
||||
"PlaceholderNewCollection": "Нова назва добірки",
|
||||
"PlaceholderNewFolderPath": "Новий шлях до теки",
|
||||
"PlaceholderNewPlaylist": "Нова назва списку",
|
||||
"PlaceholderSearch": "Пошук...",
|
||||
"PlaceholderSearchEpisode": "Шукати епізод...",
|
||||
"ToastAccountUpdateFailed": "Не вдалося оновити профіль",
|
||||
"ToastAccountUpdateSuccess": "Профіль оновлено",
|
||||
"ToastAuthorImageRemoveFailed": "Не вдалося видалити зображення",
|
||||
"ToastAuthorImageRemoveSuccess": "Фото автора видалено",
|
||||
"ToastAuthorUpdateFailed": "Не вдалося оновити автора",
|
||||
"ToastAuthorUpdateMerged": "Автора об'єднано",
|
||||
"ToastAuthorUpdateSuccess": "Автора оновлено",
|
||||
"ToastAuthorUpdateSuccessNoImageFound": "Автора оновлено (фото не знайдено)",
|
||||
"ToastBackupCreateFailed": "Не вдалося створити резервну копію",
|
||||
"ToastBackupCreateSuccess": "Резервну копію створено",
|
||||
"ToastBackupDeleteFailed": "Не вдалося видалити резервну копію",
|
||||
"ToastBackupDeleteSuccess": "Резервну копію видалено",
|
||||
"ToastBackupRestoreFailed": "Не вдалося відновити резервну копію",
|
||||
"ToastBackupUploadFailed": "Не вдалося завантажити резервну копію",
|
||||
"ToastBackupUploadSuccess": "Резервну копію завантажено",
|
||||
"ToastBatchUpdateFailed": "Не вдалося оновити обрані",
|
||||
"ToastBatchUpdateSuccess": "Обрані успішно оновлено",
|
||||
"ToastBookmarkCreateFailed": "Не вдалося створити закладку",
|
||||
"ToastBookmarkCreateSuccess": "Закладку додано",
|
||||
"ToastBookmarkRemoveFailed": "Не вдалося видалити закладку",
|
||||
"ToastBookmarkRemoveSuccess": "Закладку видалено",
|
||||
"ToastBookmarkUpdateFailed": "Не вдалося оновити закладку",
|
||||
"ToastBookmarkUpdateSuccess": "Закладку оновлено",
|
||||
"ToastChaptersHaveErrors": "Глави містять помилки",
|
||||
"ToastChaptersMustHaveTitles": "Глави повинні мати назви",
|
||||
"ToastCollectionItemsRemoveFailed": "Не вдалося видалити елемент(и) з добірки",
|
||||
"ToastCollectionItemsRemoveSuccess": "Елемент(и) видалено з добірки",
|
||||
"ToastCollectionRemoveFailed": "Не вдалося видалити добірку",
|
||||
"ToastCollectionRemoveSuccess": "Добірку видалено",
|
||||
"ToastCollectionUpdateFailed": "Не вдалося оновити добірку",
|
||||
"ToastCollectionUpdateSuccess": "Добірку оновлено",
|
||||
"ToastItemCoverUpdateFailed": "Не вдалося оновити обкладинку",
|
||||
"ToastItemCoverUpdateSuccess": "Обкладинку елемента оновлено",
|
||||
"ToastItemDetailsUpdateFailed": "Не вдалося оновити подробиці елемента",
|
||||
"ToastItemDetailsUpdateSuccess": "Подробиці про елемент оновлено",
|
||||
"ToastItemDetailsUpdateUnneeded": "Оновлення подробиць непотрібне",
|
||||
"ToastItemMarkedAsFinishedFailed": "Не вдалося позначити як завершене",
|
||||
"ToastItemMarkedAsFinishedSuccess": "Елемент позначено як завершений",
|
||||
"ToastItemMarkedAsNotFinishedFailed": "Не вдалося позначити незавершеним",
|
||||
"ToastItemMarkedAsNotFinishedSuccess": "Елемент позначено незавершеним",
|
||||
"ToastLibraryCreateFailed": "Не вдалося створити бібліотеку",
|
||||
"ToastLibraryCreateSuccess": "Бібліотеку \"{0}\" створено",
|
||||
"ToastLibraryDeleteFailed": "Не вдалося видалити бібліотеку",
|
||||
"ToastLibraryDeleteSuccess": "Бібліотеку видалено",
|
||||
"ToastLibraryScanFailedToStart": "Не вдалося розпочати сканування",
|
||||
"ToastLibraryScanStarted": "Почалося сканування бібліотеки",
|
||||
"ToastLibraryUpdateFailed": "Не вдалося оновити бібліотеку",
|
||||
"ToastLibraryUpdateSuccess": "Бібліотеку \"{0}\" оновлено",
|
||||
"ToastPlaylistCreateFailed": "Не вдалося створити список",
|
||||
"ToastPlaylistCreateSuccess": "Список відтворення створено",
|
||||
"ToastPlaylistRemoveFailed": "Не вдалося видалити список",
|
||||
"ToastPlaylistRemoveSuccess": "Список відтворення видалено",
|
||||
"ToastPlaylistUpdateFailed": "Не вдалося оновити список",
|
||||
"ToastPlaylistUpdateSuccess": "Список відтворення оновлено",
|
||||
"ToastPodcastCreateFailed": "Не вдалося створити подкаст",
|
||||
"ToastPodcastCreateSuccess": "Подкаст успішно створено",
|
||||
"ToastRemoveItemFromCollectionFailed": "Не вдалося видалити елемент із добірки",
|
||||
"ToastRemoveItemFromCollectionSuccess": "Елемент видалено з добірки",
|
||||
"ToastRSSFeedCloseFailed": "Не вдалося закрити RSS-канал",
|
||||
"ToastRSSFeedCloseSuccess": "RSS-канал закрито",
|
||||
"ToastSendEbookToDeviceFailed": "Не вдалося надіслати електронну книгу на пристрій",
|
||||
"ToastSendEbookToDeviceSuccess": "Електронну книгу надіслано на пристрій \"{0}\"",
|
||||
"ToastSeriesUpdateFailed": "Не вдалося оновити серію",
|
||||
"ToastSeriesUpdateSuccess": "Серію успішно оновлено",
|
||||
"ToastSessionDeleteFailed": "Не вдалося видалити сесію",
|
||||
"ToastSessionDeleteSuccess": "Сесію видалено",
|
||||
"ToastSocketConnected": "Сокет під'єднано",
|
||||
"ToastSocketDisconnected": "Сокет від'єднано",
|
||||
"ToastSocketFailedToConnect": "Не вдалося під'єднатися до сокета",
|
||||
"ToastUserDeleteFailed": "Не вдалося видалити користувача",
|
||||
"ToastUserDeleteSuccess": "Користувача видалено"
|
||||
}
|
||||
782
client/strings/vi-vn.json
Normal file
782
client/strings/vi-vn.json
Normal file
@@ -0,0 +1,782 @@
|
||||
{
|
||||
"ButtonAdd": "Thêm",
|
||||
"ButtonAddChapters": "Thêm Chương",
|
||||
"ButtonAddDevice": "Thêm Thiết Bị",
|
||||
"ButtonAddLibrary": "Thêm Thư Viện",
|
||||
"ButtonAddPodcasts": "Thêm Podcasts",
|
||||
"ButtonAddUser": "Thêm Người Dùng",
|
||||
"ButtonAddYourFirstLibrary": "Thêm thư viện đầu tiên của bạn",
|
||||
"ButtonApply": "Áp Dụng",
|
||||
"ButtonApplyChapters": "Áp Dụng Chương",
|
||||
"ButtonAuthors": "Tác Giả",
|
||||
"ButtonBrowseForFolder": "Duyệt Thư Mục",
|
||||
"ButtonCancel": "Hủy",
|
||||
"ButtonCancelEncode": "Hủy Mã Hóa",
|
||||
"ButtonChangeRootPassword": "Thay Đổi Mật Khẩu Root",
|
||||
"ButtonCheckAndDownloadNewEpisodes": "Kiểm Tra và Tải Xuống Các Tập Phim Mới",
|
||||
"ButtonChooseAFolder": "Chọn một thư mục",
|
||||
"ButtonChooseFiles": "Chọn tập tin",
|
||||
"ButtonClearFilter": "Xóa Bộ Lọc",
|
||||
"ButtonCloseFeed": "Đóng Feed",
|
||||
"ButtonCollections": "Bộ Sưu Tập",
|
||||
"ButtonConfigureScanner": "Cấu Hình Bộ Quét",
|
||||
"ButtonCreate": "Tạo",
|
||||
"ButtonCreateBackup": "Tạo Bản Sao Lưu",
|
||||
"ButtonDelete": "Xóa",
|
||||
"ButtonDownloadQueue": "Hàng Chờ",
|
||||
"ButtonEdit": "Chỉnh Sửa",
|
||||
"ButtonEditChapters": "Chỉnh Sửa Chương",
|
||||
"ButtonEditPodcast": "Chỉnh Sửa Podcast",
|
||||
"ButtonForceReScan": "Force Re-Scan",
|
||||
"ButtonFullPath": "Đường Dẫn Đầy Đủ",
|
||||
"ButtonHide": "Ẩn",
|
||||
"ButtonHome": "Trang Chủ",
|
||||
"ButtonIssues": "Vấn Đề",
|
||||
"ButtonJumpBackward": "Bước Lùi",
|
||||
"ButtonJumpForward": "Bước Tiến",
|
||||
"ButtonLatest": "Mới Nhất",
|
||||
"ButtonLibrary": "Thư Viện",
|
||||
"ButtonLogout": "Đăng Xuất",
|
||||
"ButtonLookup": "Tra Cứu",
|
||||
"ButtonManageTracks": "Quản Lý Tracks",
|
||||
"ButtonMapChapterTitles": "Ánh Xạ Tiêu Đề Chương",
|
||||
"ButtonMatchAllAuthors": "Khớp Tất Cả Tác Giả",
|
||||
"ButtonMatchBooks": "Khớp Sách",
|
||||
"ButtonNevermind": "Không Sao",
|
||||
"ButtonNext": "Tiếp Theo",
|
||||
"ButtonNextChapter": "Chương Tiếp Theo",
|
||||
"ButtonOk": "Ok",
|
||||
"ButtonOpenFeed": "Mở Feed",
|
||||
"ButtonOpenManager": "Mở Quản Lý",
|
||||
"ButtonPause": "Tạm Dừng",
|
||||
"ButtonPlay": "Phát",
|
||||
"ButtonPlaying": "Đang Phát",
|
||||
"ButtonPlaylists": "Danh Sách Phát",
|
||||
"ButtonPrevious": "Trước",
|
||||
"ButtonPreviousChapter": "Chương Trước",
|
||||
"ButtonPurgeAllCache": "Xóa Sạch Tất Cả Bộ Nhớ Cache",
|
||||
"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",
|
||||
"ButtonQueueRemoveItem": "Xóa khỏi hàng đợi",
|
||||
"ButtonQuickMatch": "Khớp Nhanh",
|
||||
"ButtonRead": "Đọc",
|
||||
"ButtonRefresh": "Làm Mới",
|
||||
"ButtonRemove": "Xóa",
|
||||
"ButtonRemoveAll": "Xóa Tất Cả",
|
||||
"ButtonRemoveAllLibraryItems": "Xóa Tất Cả Các Mục Thư Viện",
|
||||
"ButtonRemoveFromContinueListening": "Xóa khỏi Tiếp Tục Nghe",
|
||||
"ButtonRemoveFromContinueReading": "Xóa khỏi Tiếp Tục Đọc",
|
||||
"ButtonRemoveSeriesFromContinueSeries": "Xóa Series khỏi Tiếp Tục Series",
|
||||
"ButtonReScan": "Quét Lại",
|
||||
"ButtonReset": "Đặt Lại",
|
||||
"ButtonResetToDefault": "Đặt Lại về Mặc Định",
|
||||
"ButtonRestore": "Khôi Phục",
|
||||
"ButtonSave": "Lưu",
|
||||
"ButtonSaveAndClose": "Lưu & Đóng",
|
||||
"ButtonSaveTracklist": "Lưu Danh Sách Track",
|
||||
"ButtonScan": "Quét",
|
||||
"ButtonScanLibrary": "Quét Thư Viện",
|
||||
"ButtonSearch": "Tìm Kiếm",
|
||||
"ButtonSelectFolderPath": "Chọn Đường Dẫn Thư Mục",
|
||||
"ButtonSeries": "Series",
|
||||
"ButtonSetChaptersFromTracks": "Đặt chương từ các track",
|
||||
"ButtonShare": "Chia Sẻ",
|
||||
"ButtonShiftTimes": "Dời Thời Gian",
|
||||
"ButtonShow": "Hiện",
|
||||
"ButtonStartM4BEncode": "Bắt đầu Mã Hóa M4B",
|
||||
"ButtonStartMetadataEmbed": "Bắt đầu Nhúng Dữ Liệu",
|
||||
"ButtonSubmit": "Gửi",
|
||||
"ButtonTest": "Kiểm Tra",
|
||||
"ButtonUpload": "Tải Lên",
|
||||
"ButtonUploadBackup": "Tải Lên Bản Sao Lưu",
|
||||
"ButtonUploadCover": "Tải Lên Bìa",
|
||||
"ButtonUploadOPMLFile": "Tải Lên Tệp OPML",
|
||||
"ButtonUserDelete": "Xóa người dùng {0}",
|
||||
"ButtonUserEdit": "Chỉnh Sửa người dùng {0}",
|
||||
"ButtonViewAll": "Xem Tất Cả",
|
||||
"ButtonYes": "Có",
|
||||
"ErrorUploadFetchMetadataAPI": "Lỗi khi lấy dữ liệu metadata",
|
||||
"ErrorUploadFetchMetadataNoResults": "Không thể lấy dữ liệu metadata - hãy thử cập nhật tiêu đề và/hoặc tác giả",
|
||||
"ErrorUploadLacksTitle": "Phải có một tiêu đề",
|
||||
"HeaderAccount": "Tài Khoản",
|
||||
"HeaderAdvanced": "Nâng Cao",
|
||||
"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",
|
||||
"HeaderAuthentication": "Xác Thực",
|
||||
"HeaderBackups": "Bản Sao Lưu",
|
||||
"HeaderChangePassword": "Thay Đổi Mật Khẩu",
|
||||
"HeaderChapters": "Chương",
|
||||
"HeaderChooseAFolder": "Chọn Một Thư Mục",
|
||||
"HeaderCollection": "Bộ Sưu Tập",
|
||||
"HeaderCollectionItems": "Các Mục Bộ Sưu Tập",
|
||||
"HeaderCover": "Bìa",
|
||||
"HeaderCurrentDownloads": "Tải Xuống Hiện Tại",
|
||||
"HeaderCustomMetadataProviders": "Các Nhà Cung Cấp Metadata Tùy Chỉnh",
|
||||
"HeaderDetails": "Chi Tiết",
|
||||
"HeaderDownloadQueue": "Hàng Đợi Tải Xuống",
|
||||
"HeaderEbookFiles": "Tệp Ebook",
|
||||
"HeaderEmail": "Email",
|
||||
"HeaderEmailSettings": "Cài Đặt Email",
|
||||
"HeaderEpisodes": "Tập Phim",
|
||||
"HeaderEreaderDevices": "Thiết Bị Đọc Sách",
|
||||
"HeaderEreaderSettings": "Cài Đặt Thiết Bị Đọc Sách",
|
||||
"HeaderFiles": "Tệp",
|
||||
"HeaderFindChapters": "Tìm Kiếm Chương",
|
||||
"HeaderIgnoredFiles": "Tệp Bị Bỏ Qua",
|
||||
"HeaderItemFiles": "Tệp Mục",
|
||||
"HeaderItemMetadataUtils": "Công Cụ Metadata Mục",
|
||||
"HeaderLastListeningSession": "Phiên Nghe Gần Nhất",
|
||||
"HeaderLatestEpisodes": "Tập Mới Nhất",
|
||||
"HeaderLibraries": "Thư Viện",
|
||||
"HeaderLibraryFiles": "Tệp Thư Viện",
|
||||
"HeaderLibraryStats": "Thống Kê Thư Viện",
|
||||
"HeaderListeningSessions": "Phiên Nghe",
|
||||
"HeaderListeningStats": "Thống Kê Nghe",
|
||||
"HeaderLogin": "Đăng Nhập",
|
||||
"HeaderLogs": "Nhật Ký",
|
||||
"HeaderManageGenres": "Quản Lý Thể Loại",
|
||||
"HeaderManageTags": "Quản Lý Thẻ",
|
||||
"HeaderMapDetails": "Bản Đồ Chi Tiết",
|
||||
"HeaderMatch": "Kết Hợp",
|
||||
"HeaderMetadataOrderOfPrecedence": "Thứ Tự Ưu Tiên Metadata",
|
||||
"HeaderMetadataToEmbed": "Metadata để nhúng",
|
||||
"HeaderNewAccount": "Tài Khoản Mới",
|
||||
"HeaderNewLibrary": "Thư Viện Mới",
|
||||
"HeaderNotifications": "Thông Báo",
|
||||
"HeaderOpenIDConnectAuthentication": "Xác Thực Mở ID Connect",
|
||||
"HeaderOpenRSSFeed": "Mở RSS Feed",
|
||||
"HeaderOtherFiles": "Các Tệp Khác",
|
||||
"HeaderPasswordAuthentication": "Xác Thực Mật Khẩu",
|
||||
"HeaderPermissions": "Quyền Hạn",
|
||||
"HeaderPlayerQueue": "Hàng Đợi Người Chơi",
|
||||
"HeaderPlaylist": "Danh Sách Phát",
|
||||
"HeaderPlaylistItems": "Các Mục Danh Sách Phát",
|
||||
"HeaderPodcastsToAdd": "Podcasts để Thêm",
|
||||
"HeaderPreviewCover": "Xem Trước Bìa",
|
||||
"HeaderRemoveEpisode": "Xóa Tập",
|
||||
"HeaderRemoveEpisodes": "Xóa {0} Tập",
|
||||
"HeaderRSSFeedGeneral": "Chi Tiết RSS",
|
||||
"HeaderRSSFeedIsOpen": "RSS Feed Đã Mở",
|
||||
"HeaderRSSFeeds": "RSS Feeds",
|
||||
"HeaderSavedMediaProgress": "Tiến Trình Phương Tiện Đã Lưu",
|
||||
"HeaderSchedule": "Lịch Trình",
|
||||
"HeaderScheduleLibraryScans": "Lên Lịch Quét Tự Động Thư Viện",
|
||||
"HeaderSession": "Phiên",
|
||||
"HeaderSetBackupSchedule": "Đặt Lịch Sao Lưu",
|
||||
"HeaderSettings": "Cài Đặt",
|
||||
"HeaderSettingsDisplay": "Hiển Thị",
|
||||
"HeaderSettingsExperimental": "Tính Năng Thử Nghiệm",
|
||||
"HeaderSettingsGeneral": "Chung",
|
||||
"HeaderSettingsScanner": "Máy Quét",
|
||||
"HeaderSleepTimer": "Hẹn Giờ Tắt",
|
||||
"HeaderStatsLargestItems": "Các Mục Lớn Nhất",
|
||||
"HeaderStatsLongestItems": "Các Mục Dài Nhất (giờ)",
|
||||
"HeaderStatsMinutesListeningChart": "Thống Kê Thời Gian Nghe (7 ngày gần nhất)",
|
||||
"HeaderStatsRecentSessions": "Các Phiên Gần Đây",
|
||||
"HeaderStatsTop10Authors": "10 Tác Giả Hàng Đầu",
|
||||
"HeaderStatsTop5Genres": "5 Thể Loại Hàng Đầu",
|
||||
"HeaderTableOfContents": "Mục Lục",
|
||||
"HeaderTools": "Công Cụ",
|
||||
"HeaderUpdateAccount": "Cập Nhật Tài Khoản",
|
||||
"HeaderUpdateAuthor": "Cập Nhật Tác Giả",
|
||||
"HeaderUpdateDetails": "Cập Nhật Chi Tiết",
|
||||
"HeaderUpdateLibrary": "Cập Nhật Thư Viện",
|
||||
"HeaderUsers": "Người Dùng",
|
||||
"HeaderYearReview": "Năm {0} trong Xem Xét",
|
||||
"HeaderYourStats": "Thống Kê Của Bạn",
|
||||
"LabelAbridged": "Rút Gọn",
|
||||
"LabelAccountType": "Loại Tài Khoản",
|
||||
"LabelAccountTypeAdmin": "Quản Trị Viên",
|
||||
"LabelAccountTypeGuest": "Khách",
|
||||
"LabelAccountTypeUser": "Người Dùng",
|
||||
"LabelActivity": "Hoạt Động",
|
||||
"LabelAdded": "Đã Thêm",
|
||||
"LabelAddedAt": "Đã Thêm Lúc",
|
||||
"LabelAddToCollection": "Thêm 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",
|
||||
"LabelAddToPlaylistBatch": "Add {0} Items to Playlist",
|
||||
"LabelAdminUsersOnly": "Admin users only",
|
||||
"LabelAll": "All",
|
||||
"LabelAllUsers": "All Users",
|
||||
"LabelAllUsersExcludingGuests": "All users excluding guests",
|
||||
"LabelAllUsersIncludingGuests": "All users including guests",
|
||||
"LabelAlreadyInYourLibrary": "Already in your library",
|
||||
"LabelAppend": "Append",
|
||||
"LabelAuthor": "Author",
|
||||
"LabelAuthorFirstLast": "Author (First Last)",
|
||||
"LabelAuthorLastFirst": "Author (Last, First)",
|
||||
"LabelAuthors": "Authors",
|
||||
"LabelAutoDownloadEpisodes": "Auto Download Episodes",
|
||||
"LabelAutoFetchMetadata": "Auto Fetch Metadata",
|
||||
"LabelAutoFetchMetadataHelp": "Fetches metadata for title, author, and series to streamline uploading. Additional metadata may have to be matched after upload.",
|
||||
"LabelAutoLaunch": "Auto Launch",
|
||||
"LabelAutoLaunchDescription": "Redirect to the auth provider automatically when navigating to the login page (manual override path <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "Auto Register",
|
||||
"LabelAutoRegisterDescription": "Automatically create new users after logging in",
|
||||
"LabelBackToUser": "Back to User",
|
||||
"LabelBackupLocation": "Backup Location",
|
||||
"LabelBackupsEnableAutomaticBackups": "Enable automatic backups",
|
||||
"LabelBackupsEnableAutomaticBackupsHelp": "Backups saved in /metadata/backups",
|
||||
"LabelBackupsMaxBackupSize": "Maximum backup size (in GB)",
|
||||
"LabelBackupsMaxBackupSizeHelp": "As a safeguard against misconfiguration, backups will fail if they exceed the configured size.",
|
||||
"LabelBackupsNumberToKeep": "Number of backups to keep",
|
||||
"LabelBackupsNumberToKeepHelp": "Only 1 backup will be removed at a time so if you already have more backups than this you should manually remove them.",
|
||||
"LabelBitrate": "Bitrate",
|
||||
"LabelBooks": "Sách",
|
||||
"LabelButtonText": "Nút Văn Bản",
|
||||
"LabelChangePassword": "Đổi Mật Khẩu",
|
||||
"LabelChannels": "Kênh",
|
||||
"LabelChapters": "Chương",
|
||||
"LabelChaptersFound": "chương được tìm thấy",
|
||||
"LabelChapterTitle": "Tiêu đề Chương",
|
||||
"LabelClickForMoreInfo": "Nhấn để biết thêm thông tin",
|
||||
"LabelClosePlayer": "Đóng trình phát",
|
||||
"LabelCodec": "Mã hóa",
|
||||
"LabelCollapseSeries": "Thu gọn Series",
|
||||
"LabelCollection": "Bộ Sưu Tập",
|
||||
"LabelCollections": "Các Bộ Sưu Tập",
|
||||
"LabelComplete": "Hoàn Thành",
|
||||
"LabelConfirmPassword": "Xác Nhận Mật Khẩu",
|
||||
"LabelContinueListening": "Tiếp Tục Nghe",
|
||||
"LabelContinueReading": "Tiếp Tục Đọc",
|
||||
"LabelContinueSeries": "Tiếp Tục Series",
|
||||
"LabelCover": "Bìa",
|
||||
"LabelCoverImageURL": "URL Ảnh Bìa",
|
||||
"LabelCreatedAt": "Được Tạo Lúc",
|
||||
"LabelCronExpression": "Biểu Thức Cron",
|
||||
"LabelCurrent": "Hiện tại",
|
||||
"LabelCurrently": "Hiện tại:",
|
||||
"LabelCustomCronExpression": "Biểu Thức Cron Tùy Chỉnh:",
|
||||
"LabelDatetime": "Ngày giờ",
|
||||
"LabelDeleteFromFileSystemCheckbox": "Xóa khỏi hệ thống tệp (bỏ chọn để chỉ xóa khỏi cơ sở dữ liệu)",
|
||||
"LabelDescription": "Mô Tả",
|
||||
"LabelDeselectAll": "Bỏ Chọn Tất Cả",
|
||||
"LabelDevice": "Thiết Bị",
|
||||
"LabelDeviceInfo": "Thông Tin Thiết Bị",
|
||||
"LabelDeviceIsAvailableTo": "Thiết Bị Đã Sẵn Sàng Cho...",
|
||||
"LabelDirectory": "Thư Mục",
|
||||
"LabelDiscFromFilename": "Đĩa từ Tên Tệp",
|
||||
"LabelDiscFromMetadata": "Đĩa từ Metadata",
|
||||
"LabelDiscover": "Khám Phá",
|
||||
"LabelDownload": "Tải Xuống",
|
||||
"LabelDownloadNEpisodes": "Tải Xuống {0} Tập",
|
||||
"LabelDuration": "Thời Lượng",
|
||||
"LabelDurationFound": "Thời lượng được tìm thấy:",
|
||||
"LabelEbook": "Ebook",
|
||||
"LabelEbooks": "Các Ebook",
|
||||
"LabelEdit": "Chỉnh Sửa",
|
||||
"LabelEmail": "Email",
|
||||
"LabelEmailSettingsFromAddress": "Địa chỉ Gửi 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)",
|
||||
"LabelEmailSettingsTestAddress": "Địa Chỉ Kiểm Tra",
|
||||
"LabelEmbeddedCover": "Bìa Nội",
|
||||
"LabelEnable": "Bật",
|
||||
"LabelEnd": "Kết Thúc",
|
||||
"LabelEpisode": "Tập",
|
||||
"LabelEpisodeTitle": "Tiêu Đề Tập",
|
||||
"LabelEpisodeType": "Loại Tập",
|
||||
"LabelExample": "Ví Dụ",
|
||||
"LabelExplicit": "Rõ Ràng",
|
||||
"LabelFeedURL": "URL Feed",
|
||||
"LabelFetchingMetadata": "Đang Lấy Metadata",
|
||||
"LabelFile": "Tệp",
|
||||
"LabelFileBirthtime": "Thời Gian Tạo Tệp",
|
||||
"LabelFileModified": "Sửa Đổi Tệp",
|
||||
"LabelFilename": "Tên Tệp",
|
||||
"LabelFilterByUser": "Lọc theo Người Dùng",
|
||||
"LabelFindEpisodes": "Tìm Tập",
|
||||
"LabelFinished": "Hoàn Thành",
|
||||
"LabelFolder": "Thư Mục",
|
||||
"LabelFolders": "Các Thư Mục",
|
||||
"LabelFontBold": "Đậm",
|
||||
"LabelFontFamily": "Gia đình font",
|
||||
"LabelFontItalic": "Nghiêng",
|
||||
"LabelFontScale": "Tỷ lệ font",
|
||||
"LabelFontStrikethrough": "Gạch ngang",
|
||||
"LabelFormat": "Định dạng",
|
||||
"LabelGenre": "Thể loại",
|
||||
"LabelGenres": "Các thể loại",
|
||||
"LabelHardDeleteFile": "Xóa tập tin vĩnh viễn",
|
||||
"LabelHasEbook": "Có ebook",
|
||||
"LabelHasSupplementaryEbook": "Có ebook bổ sung",
|
||||
"LabelHighestPriority": "Ưu tiên cao nhất",
|
||||
"LabelHost": "Máy chủ",
|
||||
"LabelHour": "Giờ",
|
||||
"LabelIcon": "Biểu tượng",
|
||||
"LabelImageURLFromTheWeb": "URL hình ảnh từ web",
|
||||
"LabelIncludeInTracklist": "Bao gồm trong danh sách phát",
|
||||
"LabelIncomplete": "Chưa hoàn thành",
|
||||
"LabelInProgress": "Đang tiến hành",
|
||||
"LabelInterval": "Khoảng cách",
|
||||
"LabelIntervalCustomDailyWeekly": "Tuỳ chỉnh hàng ngày/hàng tuần",
|
||||
"LabelIntervalEvery12Hours": "Mỗi 12 giờ",
|
||||
"LabelIntervalEvery15Minutes": "Mỗi 15 phút",
|
||||
"LabelIntervalEvery2Hours": "Mỗi 2 giờ",
|
||||
"LabelIntervalEvery30Minutes": "Mỗi 30 phút",
|
||||
"LabelIntervalEvery6Hours": "Mỗi 6 giờ",
|
||||
"LabelIntervalEveryDay": "Mỗi ngày",
|
||||
"LabelIntervalEveryHour": "Mỗi giờ",
|
||||
"LabelInvert": "Nghịch đảo",
|
||||
"LabelItem": "Mục",
|
||||
"LabelLanguage": "Ngôn ngữ",
|
||||
"LabelLanguageDefaultServer": "Ngôn ngữ Máy chủ mặc định",
|
||||
"LabelLastBookAdded": "Sách mới nhất được thêm",
|
||||
"LabelLastBookUpdated": "Sách mới nhất được cập nhật",
|
||||
"LabelLastSeen": "Lần cuối nhìn thấy",
|
||||
"LabelLastTime": "Lần cuối",
|
||||
"LabelLastUpdate": "Cập nhật cuối cùng",
|
||||
"LabelLayout": "Bố cục",
|
||||
"LabelLayoutSinglePage": "Một trang",
|
||||
"LabelLayoutSplitPage": "Chia trang",
|
||||
"LabelLess": "Ít hơn",
|
||||
"LabelLibrariesAccessibleToUser": "Thư viện có thể truy cập cho người dùng",
|
||||
"LabelLibrary": "Thư viện",
|
||||
"LabelLibraryItem": "Mục thư viện",
|
||||
"LabelLibraryName": "Tên thư viện",
|
||||
"LabelLimit": "Giới hạn",
|
||||
"LabelLineSpacing": "Khoảng cách dòng",
|
||||
"LabelListenAgain": "Nghe lại",
|
||||
"LabelLogLevelDebug": "Gỡ lỗi",
|
||||
"LabelLogLevelInfo": "Thông tin",
|
||||
"LabelLogLevelWarn": "Cảnh báo",
|
||||
"LabelLookForNewEpisodesAfterDate": "Tìm tập mới sau ngày này",
|
||||
"LabelLowestPriority": "Ưu tiên thấp nhất",
|
||||
"LabelMatchExistingUsersBy": "Kết hợp người dùng hiện có theo",
|
||||
"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",
|
||||
"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",
|
||||
"LabelMetaTags": "Các thẻ Meta",
|
||||
"LabelMinute": "Phút",
|
||||
"LabelMissing": "Thiếu",
|
||||
"LabelMissingEbook": "Không có ebook",
|
||||
"LabelMissingSupplementaryEbook": "Không có ebook bổ sung",
|
||||
"LabelMobileRedirectURIs": "URI chuyển hướng di động được cho phép",
|
||||
"LabelMobileRedirectURIsDescription": "Đây là danh sách trắng các URI chuyển hướng hợp lệ cho ứng dụng di động. Mặc định là <code>audiobookshelf://oauth</code>, bạn có thể loại bỏ hoặc bổ sung thêm các URI cho tích hợp ứng dụng bên thứ ba. Sử dụng dấu hoa thị (<code>*</code>) như một mục duy nhất cho phép bất kỳ URI nào.",
|
||||
"LabelMore": "Thêm",
|
||||
"LabelMoreInfo": "Thông tin thêm",
|
||||
"LabelName": "Tên",
|
||||
"LabelNarrator": "Người kể",
|
||||
"LabelNarrators": "Các người kể",
|
||||
"LabelNew": "Mới",
|
||||
"LabelNewestAuthors": "Nhà văn 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",
|
||||
"LabelNextScheduledRun": "Chạy tiếp theo theo lịch trình",
|
||||
"LabelNoEpisodesSelected": "Không có tập nào được chọn",
|
||||
"LabelNotes": "Ghi chú",
|
||||
"LabelNotFinished": "Chưa hoàn thành",
|
||||
"LabelNotificationAppriseURL": "URL(s) thông báo",
|
||||
"LabelNotificationAvailableVariables": "Biến có sẵn",
|
||||
"LabelNotificationBodyTemplate": "Mẫu Nội dung",
|
||||
"LabelNotificationEvent": "Sự kiện Thông báo",
|
||||
"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",
|
||||
"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.",
|
||||
"LabelNotificationTitleTemplate": "Mẫu Tiêu đề",
|
||||
"LabelNotStarted": "Chưa bắt đầu",
|
||||
"LabelNumberOfBooks": "Số lượng Sách",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "Mở RSS Feed",
|
||||
"LabelOverwrite": "Ghi đè",
|
||||
"LabelPassword": "Mật khẩu",
|
||||
"LabelPath": "Đường dẫn",
|
||||
"LabelPermissionsAccessAllLibraries": "Có Thể Truy Cập Tất Cả Thư Viện",
|
||||
"LabelPermissionsAccessAllTags": "Có Thể Truy Cập Tất Cả Thẻ",
|
||||
"LabelPermissionsAccessExplicitContent": "Có Thể Truy Cập Nội Dung Rõ Ràng",
|
||||
"LabelPermissionsDelete": "Có Thể Xóa",
|
||||
"LabelPermissionsDownload": "Có Thể Tải Xuống",
|
||||
"LabelPermissionsUpdate": "Có Thể Cập Nhật",
|
||||
"LabelPermissionsUpload": "Có Thể Tải Lên",
|
||||
"LabelPersonalYearReview": "Năm của Bạn trong Bài Đánh Giá ({0})",
|
||||
"LabelPhotoPathURL": "Đường dẫn/URL ảnh",
|
||||
"LabelPlaylists": "Danh sách phát",
|
||||
"LabelPlayMethod": "Phương pháp phát",
|
||||
"LabelPodcast": "Podcast",
|
||||
"LabelPodcasts": "Các podcast",
|
||||
"LabelPodcastSearchRegion": "Vùng tìm kiếm podcast",
|
||||
"LabelPodcastType": "Loại Podcast",
|
||||
"LabelPort": "Cổ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",
|
||||
"LabelPrimaryEbook": "Ebook chính",
|
||||
"LabelProgress": "Tiến độ",
|
||||
"LabelProvider": "Nhà cung cấp",
|
||||
"LabelPubDate": "Ngày Xuất bản",
|
||||
"LabelPublisher": "Nhà xuất bản",
|
||||
"LabelPublishYear": "Năm Xuất bản",
|
||||
"LabelRead": "Đọc",
|
||||
"LabelReadAgain": "Đọc lại",
|
||||
"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",
|
||||
"LabelRSSFeedCustomOwnerName": "Tên chủ sở hữu tùy chỉnh",
|
||||
"LabelRSSFeedOpen": "Mở RSS Feed",
|
||||
"LabelRSSFeedPreventIndexing": "Ngăn chặn Chỉ mục RSS Feed",
|
||||
"LabelRSSFeedSlug": "Slug RSS Feed",
|
||||
"LabelRSSFeedURL": "URL RSS Feed",
|
||||
"LabelSearchTerm": "Thuật ngữ tìm kiếm",
|
||||
"LabelSearchTitle": "Tìm kiếm Tiêu đề",
|
||||
"LabelSearchTitleOrASIN": "Tìm kiếm Tiêu đề hoặc ASIN",
|
||||
"LabelSeason": "Mùa",
|
||||
"LabelSelectAllEpisodes": "Chọn tất cả các tập",
|
||||
"LabelSelectEpisodesShowing": "Chọn {0} tập đang hiển thị",
|
||||
"LabelSelectUsers": "Chọn người dùng",
|
||||
"LabelSendEbookToDevice": "Gửi Ebook tới...",
|
||||
"LabelSequence": "Trình tự",
|
||||
"LabelSeries": "Loạt",
|
||||
"LabelSeriesName": "Tên loạt",
|
||||
"LabelSeriesProgress": "Tiến độ loạt",
|
||||
"LabelServerYearReview": "Năm của Máy chủ trong Bài Đánh Giá ({0})",
|
||||
"LabelSetEbookAsPrimary": "Đặt làm chính",
|
||||
"LabelSetEbookAsSupplementary": "Đặt là bổ sung",
|
||||
"LabelSettingsAudiobooksOnly": "Chỉ sách nói",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "Bật cài đặt này sẽ bỏ qua các tập tin ebook trừ khi chúng ở trong một thư mục sách nói, trong trường hợp đó chúng sẽ được đặt làm ebook bổ sung",
|
||||
"LabelSettingsBookshelfViewHelp": "Thiết kế giả lập với kệ gỗ",
|
||||
"LabelSettingsChromecastSupport": "Hỗ trợ Chromecast",
|
||||
"LabelSettingsDateFormat": "Định dạng Ngày",
|
||||
"LabelSettingsDisableWatcher": "Tắt Watcher",
|
||||
"LabelSettingsDisableWatcherForLibrary": "Tắt watcher thư mục cho thư viện",
|
||||
"LabelSettingsDisableWatcherHelp": "Tắt chức năng tự động thêm/cập nhật các mục khi phát hiện thay đổi tập tin. *Yêu cầu khởi động lại máy chủ",
|
||||
"LabelSettingsEnableWatcher": "Bật Watcher",
|
||||
"LabelSettingsEnableWatcherForLibrary": "Bật watcher thư mục cho thư viện",
|
||||
"LabelSettingsEnableWatcherHelp": "Bật chức năng tự động thêm/cập nhật các mục khi phát hiện thay đổi tập tin. *Yêu cầu khởi động lại máy chủ",
|
||||
"LabelSettingsExperimentalFeatures": "Tính năng thử nghiệm",
|
||||
"LabelSettingsExperimentalFeaturesHelp": "Các tính năng đang phát triển có thể cần phản hồi của bạn và sự giúp đỡ trong thử nghiệm. Nhấp để mở thảo luận trên github.",
|
||||
"LabelSettingsFindCovers": "Tìm ảnh bìa",
|
||||
"LabelSettingsFindCoversHelp": "Nếu sách nói của bạn không có ảnh bìa nhúng hoặc ảnh bìa trong thư mục, trình quét sẽ cố gắng tìm ảnh bìa.<br>Lưu ý: Điều này sẽ kéo dài thời gian quét",
|
||||
"LabelSettingsHideSingleBookSeries": "Ẩn loạt sách đơn lẻ",
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "Các loạt sách chỉ có một cuốn sách sẽ được ẩn khỏi trang loạt sách và kệ trang chủ.",
|
||||
"LabelSettingsHomePageBookshelfView": "Trang chủ sử dụng chế độ xem kệ sách",
|
||||
"LabelSettingsLibraryBookshelfView": "Thư viện sử dụng chế độ xem kệ sách",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "Phân tích phụ đề",
|
||||
"LabelSettingsParseSubtitlesHelp": "Trích xuất phụ đề từ tên thư mục sách nói.<br>Phụ đề phải được tách bằng \" - \"<br>i.e. \"Book Title - A Subtitle Here\" có phụ đề \"A Subtitle Here\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "Ưu tiên siêu dữ liệu phù hợp",
|
||||
"LabelSettingsPreferMatchedMetadataHelp": "Dữ liệu phù hợp sẽ ghi đè lên chi tiết mục khi sử dụng Kết hợp Nhanh. Theo mặc định, Kết hợp Nhanh chỉ điền vào các chi tiết bị thiếu.",
|
||||
"LabelSettingsSkipMatchingBooksWithASIN": "Bỏ qua sách khớp có ASIN",
|
||||
"LabelSettingsSkipMatchingBooksWithISBN": "Bỏ qua sách khớp có ISBN",
|
||||
"LabelSettingsSortingIgnorePrefixes": "Bỏ qua tiền tố khi sắp xếp",
|
||||
"LabelSettingsSortingIgnorePrefixesHelp": "ví dụ. với tiền tố \"the\" tiêu đề sách \"The Book Title\" sẽ được sắp xếp như \"Book Title, The\"",
|
||||
"LabelSettingsSquareBookCovers": "Sử dụng ảnh bìa vuông",
|
||||
"LabelSettingsSquareBookCoversHelp": "Ưu tiên sử dụng ảnh bìa vuông hơn ảnh bìa tiêu chuẩn 1.6:1",
|
||||
"LabelSettingsStoreCoversWithItem": "Lưu trữ ảnh bìa với mục",
|
||||
"LabelSettingsStoreCoversWithItemHelp": "Theo mặc định, ảnh bìa được lưu trữ trong /metadata/items, bật cài đặt này sẽ lưu trữ ảnh bìa trong thư mục mục của thư viện bạn. Chỉ một tệp có tên là \"cover\" sẽ được giữ lại",
|
||||
"LabelSettingsStoreMetadataWithItem": "Lưu trữ siêu dữ liệu với mục",
|
||||
"LabelSettingsStoreMetadataWithItemHelp": "Theo mặc định, các tệp siêu dữ liệu được lưu trữ trong /metadata/items, bật cài đặt này sẽ lưu trữ các tệp siêu dữ liệu trong các thư mục mục của thư viện bạn",
|
||||
"LabelSettingsTimeFormat": "Định dạng Thời gian",
|
||||
"LabelShowAll": "Hiển thị Tất cả",
|
||||
"LabelSize": "Kích thước",
|
||||
"LabelSleepTimer": "Hẹn giờ tắt",
|
||||
"LabelSlug": "Slug",
|
||||
"LabelStart": "Bắt đầu",
|
||||
"LabelStarted": "Đã bắt đầu",
|
||||
"LabelStartedAt": "Bắt đầu vào",
|
||||
"LabelStartTime": "Thời gian bắt đầu",
|
||||
"LabelStatsAudioTracks": "Audio Tracks",
|
||||
"LabelStatsAuthors": "Tác giả",
|
||||
"LabelStatsBestDay": "Ngày tốt nhất",
|
||||
"LabelStatsDailyAverage": "Trung bình hàng ngày",
|
||||
"LabelStatsDays": "Ngày",
|
||||
"LabelStatsDaysListened": "Ngày đã nghe",
|
||||
"LabelStatsHours": "Giờ",
|
||||
"LabelStatsInARow": "liên tiếp",
|
||||
"LabelStatsItemsFinished": "Mục đã hoàn thành",
|
||||
"LabelStatsItemsInLibrary": "Mục trong thư viện",
|
||||
"LabelStatsMinutes": "phút",
|
||||
"LabelStatsMinutesListening": "Phút Nghe",
|
||||
"LabelStatsOverallDays": "Tổng số ngày",
|
||||
"LabelStatsOverallHours": "Tổng số giờ",
|
||||
"LabelStatsWeekListening": "Tuần nghe",
|
||||
"LabelSubtitle": "Phụ đề",
|
||||
"LabelSupportedFileTypes": "Loại tệp được hỗ trợ",
|
||||
"LabelTag": "Thẻ",
|
||||
"LabelTags": "Thẻ",
|
||||
"LabelTagsAccessibleToUser": "Thẻ Có Thể Truy Cập Cho Người Dùng",
|
||||
"LabelTagsNotAccessibleToUser": "Thẻ Không Thể Truy Cập Cho Người Dùng",
|
||||
"LabelTasks": "Nhiệm vụ Đang chạy",
|
||||
"LabelTextEditorBulletedList": "Danh sách có dấu đầu dòng",
|
||||
"LabelTextEditorLink": "Liên kết",
|
||||
"LabelTextEditorNumberedList": "Danh sách đánh số",
|
||||
"LabelTextEditorUnlink": "Gỡ liên kết",
|
||||
"LabelTheme": "Chủ đề",
|
||||
"LabelThemeDark": "Tối",
|
||||
"LabelThemeLight": "Sáng",
|
||||
"LabelTimeBase": "Thời gian cơ bản",
|
||||
"LabelTimeListened": "Thời gian đã nghe",
|
||||
"LabelTimeListenedToday": "Thời gian đã nghe hôm nay",
|
||||
"LabelTimeRemaining": "{0} còn lại",
|
||||
"LabelTimeToShift": "Thời gian dời chuyển theo giây",
|
||||
"LabelTitle": "Tiêu đề",
|
||||
"LabelToolsEmbedMetadata": "Nhúng siêu dữ liệu",
|
||||
"LabelToolsEmbedMetadataDescription": "Nhúng siêu dữ liệu vào tệp âm thanh bao gồm ảnh bìa và chương.",
|
||||
"LabelToolsMakeM4b": "Tạo Tệp Audiobook M4B",
|
||||
"LabelToolsMakeM4bDescription": "Tạo tệp audiobook .M4B với siêu dữ liệu nhúng, ảnh bìa và chương.",
|
||||
"LabelToolsSplitM4b": "Chia M4B thành MP3",
|
||||
"LabelToolsSplitM4bDescription": "Tạo MP3 từ M4B được chia theo chương với siêu dữ liệu nhúng, ảnh bìa và chương.",
|
||||
"LabelTotalDuration": "Tổng thời lượng",
|
||||
"LabelTotalTimeListened": "Tổng thời gian đã nghe",
|
||||
"LabelTrackFromFilename": "Từ tên tệp",
|
||||
"LabelTrackFromMetadata": "Từ siêu dữ liệu",
|
||||
"LabelTracks": "Bài hát",
|
||||
"LabelTracksMultiTrack": "Nhiều track",
|
||||
"LabelTracksNone": "Không có track",
|
||||
"LabelTracksSingleTrack": "Một track",
|
||||
"LabelType": "Loại",
|
||||
"LabelUnabridged": "Không rút gọn",
|
||||
"LabelUndo": "Hoàn tác",
|
||||
"LabelUnknown": "Không xác định",
|
||||
"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",
|
||||
"LabelUpdatedAt": "Cập nhật lúc",
|
||||
"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",
|
||||
"LabelUploaderDragAndDrop": "Kéo và thả tệp hoặc thư mục",
|
||||
"LabelUploaderDropFiles": "Thả tệp",
|
||||
"LabelUploaderItemFetchMetadataHelp": "Tự động lấy tiêu đề, tác giả và loạt",
|
||||
"LabelUseChapterTrack": "Sử dụng track chương",
|
||||
"LabelUseFullTrack": "Sử dụng toàn bộ track",
|
||||
"LabelUser": "Người dùng",
|
||||
"LabelUsername": "Tên người dùng",
|
||||
"LabelValue": "Giá trị",
|
||||
"LabelVersion": "Phiên bản",
|
||||
"LabelViewBookmarks": "Xem các đánh dấu",
|
||||
"LabelViewChapters": "Xem các chương",
|
||||
"LabelViewQueue": "Xem hàng đợi phát",
|
||||
"LabelVolume": "Âm lượng",
|
||||
"LabelWeekdaysToRun": "Ngày trong tuần để chạy",
|
||||
"LabelYearReviewHide": "Ẩn Năm trong Bài Đánh Giá",
|
||||
"LabelYearReviewShow": "Xem Năm trong Bài Đánh Giá",
|
||||
"LabelYourAudiobookDuration": "Thời lượng sách nói của bạn",
|
||||
"LabelYourBookmarks": "Đánh dấu của bạn",
|
||||
"LabelYourPlaylists": "Danh sách phát của bạn",
|
||||
"LabelYourProgress": "Tiến trình của bạn",
|
||||
"MessageAddToPlayerQueue": "Thêm vào hàng đợi phát",
|
||||
"MessageAppriseDescription": "Để sử dụng tính năng này, bạn cần có một phiên bản của <a href=\"https://github.com/caronc/apprise-api\" target=\"_blank\">Apprise API</a> đang chạy hoặc một api sẽ xử lý các yêu cầu tương tự. <br /> Địa chỉ URL của Apprise API nên là đường dẫn URL đầy đủ để gửi thông báo, ví dụ, nếu phiên bản API của bạn được phục vụ tại <code>http://192.168.1.1:8337</code> thì bạn sẽ đặt <code>http://192.168.1.1:8337/notify</code>.",
|
||||
"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.",
|
||||
"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ở",
|
||||
"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",
|
||||
"MessageChapterErrorFirstNotZero": "Chương đầu tiên phải bắt đầu từ 0",
|
||||
"MessageChapterErrorStartGteDuration": "Thời gian bắt đầu không hợp lệ phải nhỏ hơn thời lượng sách nói",
|
||||
"MessageChapterErrorStartLtPrev": "Thời gian bắt đầu không hợp lệ phải lớn hơn hoặc bằng thời gian bắt đầu của chương trước",
|
||||
"MessageChapterStartIsAfter": "Bắt đầu chương sau khi kết thúc sách nói của bạn",
|
||||
"MessageCheckingCron": "Kiểm tra cron...",
|
||||
"MessageConfirmCloseFeed": "Bạn có chắc chắn muốn đóng nguồn cung cấp này không?",
|
||||
"MessageConfirmDeleteBackup": "Bạn có chắc chắn muốn xóa bản sao lưu cho {0} không?",
|
||||
"MessageConfirmDeleteFile": "Điều này sẽ xóa tệp khỏi hệ thống tệp của bạn. Bạn có chắc chắn không?",
|
||||
"MessageConfirmDeleteLibrary": "Bạn có chắc chắn muốn xóa vĩnh viễn thư viện \"{0}\" không?",
|
||||
"MessageConfirmDeleteLibraryItem": "Điều này sẽ xóa mục thư viện khỏi cơ sở dữ liệu và hệ thống tệp của bạn. Bạn có chắc chắn không?",
|
||||
"MessageConfirmDeleteLibraryItems": "Điều này sẽ xóa {0} mục thư viện khỏi cơ sở dữ liệu và hệ thống tệp của bạn. Bạn có chắc chắn không?",
|
||||
"MessageConfirmDeleteSession": "Bạn có chắc chắn muốn xóa phiên này không?",
|
||||
"MessageConfirmForceReScan": "Bạn có chắc chắn muốn buộc quét lại không?",
|
||||
"MessageConfirmMarkAllEpisodesFinished": "Bạn có chắc chắn muốn đánh dấu tất cả các tập phim đã kết thúc không?",
|
||||
"MessageConfirmMarkAllEpisodesNotFinished": "Bạn có chắc chắn muốn đánh dấu tất cả các tập phim chưa 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?",
|
||||
"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?",
|
||||
"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?",
|
||||
"MessageConfirmRemoveCollection": "Bạn có chắc chắn muốn xóa bộ sưu tập \"{0}\" không?",
|
||||
"MessageConfirmRemoveEpisode": "Bạn có chắc chắn muốn xóa tập phim \"{0}\" không?",
|
||||
"MessageConfirmRemoveEpisodes": "Bạn có chắc chắn muốn xóa {0} tập phim không?",
|
||||
"MessageConfirmRemoveListeningSessions": "Bạn có chắc chắn muốn xóa {0} phiên nghe không?",
|
||||
"MessageConfirmRemoveNarrator": "Bạn có chắc chắn muốn xóa người kể chuyện \"{0}\" không?",
|
||||
"MessageConfirmRemovePlaylist": "Bạn có chắc chắn muốn xóa danh sách phát của bạn \"{0}\" không?",
|
||||
"MessageConfirmRenameGenre": "Bạn có chắc chắn muốn đổi tên thể loại \"{0}\" thành \"{1}\" cho tất cả các mục không?",
|
||||
"MessageConfirmRenameGenreMergeNote": "Lưu ý: Thể loại này đã tồn tại nên chúng sẽ được hợp nhất.",
|
||||
"MessageConfirmRenameGenreWarning": "Cảnh báo! Một thể loại tương tự với kiểu chữ khác đã tồn tại \"{0}\".",
|
||||
"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.",
|
||||
"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?",
|
||||
"MessageDownloadingEpisode": "Đang tải tập phim",
|
||||
"MessageDragFilesIntoTrackOrder": "Kéo tệp vào thứ tự track đúng",
|
||||
"MessageEmbedFinished": "Nhúng Hoàn thành!",
|
||||
"MessageEpisodesQueuedForDownload": "{0} Tập(s) đã được thêm vào hàng đợi để tải xuống",
|
||||
"MessageFeedURLWillBe": "URL nguồn cấp sẽ là {0}",
|
||||
"MessageFetching": "Đang tìm...",
|
||||
"MessageForceReScanDescription": "sẽ quét lại tất cả các tệp như một quét mới. Các thẻ ID3 của tệp âm thanh, tệp OPF và tệp văn bản sẽ được quét làm mới.",
|
||||
"MessageImportantNotice": "Thông báo quan trọng!",
|
||||
"MessageInsertChapterBelow": "Chèn chương dưới đây",
|
||||
"MessageItemsSelected": "{0} Mục Đã Chọn",
|
||||
"MessageItemsUpdated": "{0} Mục Đã Cập Nhật",
|
||||
"MessageJoinUsOn": "Tham gia cùng chúng tôi trên",
|
||||
"MessageListeningSessionsInTheLastYear": "{0} phiên nghe trong năm qua",
|
||||
"MessageLoading": "Đang tải...",
|
||||
"MessageLoadingFolders": "Đang tải các thư mục...",
|
||||
"MessageM4BFailed": "M4B thất bại!",
|
||||
"MessageM4BFinished": "M4B Hoàn thành!",
|
||||
"MessageMapChapterTitles": "Ánh xạ tiêu đề chương với các chương hiện có của sách audio của bạn mà không điều chỉnh thời gian",
|
||||
"MessageMarkAllEpisodesFinished": "Đánh dấu tất cả các tập phim đã kết thúc",
|
||||
"MessageMarkAllEpisodesNotFinished": "Đánh dấu tất cả các tập phim chưa kết thúc",
|
||||
"MessageMarkAsFinished": "Đánh dấu là Đã Kết Thúc",
|
||||
"MessageMarkAsNotFinished": "Đánh dấu là Chưa Kết Thúc",
|
||||
"MessageMatchBooksDescription": "sẽ cố gắng kết hợp các sách trong thư viện với một cuốn sách từ nhà cung cấp tìm kiếm được chọn và điền vào các chi tiết trống và ảnh bìa. Không ghi đè các chi tiết.",
|
||||
"MessageNoAudioTracks": "Không có track âm thanh",
|
||||
"MessageNoAuthors": "Không có Tác giả",
|
||||
"MessageNoBackups": "Không có Bản sao lưu",
|
||||
"MessageNoBookmarks": "Không có Đánh dấu",
|
||||
"MessageNoChapters": "Không có Chương",
|
||||
"MessageNoCollections": "Không có Bộ sưu tập",
|
||||
"MessageNoCoversFound": "Không tìm thấy Ảnh bìa",
|
||||
"MessageNoDescription": "Không có mô tả",
|
||||
"MessageNoDownloadsInProgress": "Không có tải xuống đang tiến hành",
|
||||
"MessageNoDownloadsQueued": "Không có tải xuống được xếp hàng",
|
||||
"MessageNoEpisodeMatchesFound": "Không tìm thấy tập phim nào phù hợp",
|
||||
"MessageNoEpisodes": "Không có Tập phim",
|
||||
"MessageNoFoldersAvailable": "Không có Thư mục nào có sẵn",
|
||||
"MessageNoGenres": "Không có Thể loại",
|
||||
"MessageNoIssues": "Không có Vấn đề",
|
||||
"MessageNoItems": "Không có Mục",
|
||||
"MessageNoItemsFound": "Không tìm thấy mục nào",
|
||||
"MessageNoListeningSessions": "Không có Phiên Nghe",
|
||||
"MessageNoLogs": "Không có Log",
|
||||
"MessageNoMediaProgress": "Không có Tiến độ Phương tiện",
|
||||
"MessageNoNotifications": "Không có Thông báo",
|
||||
"MessageNoPodcastsFound": "Không tìm thấy podcast nào",
|
||||
"MessageNoResults": "Không có Kết quả",
|
||||
"MessageNoSearchResultsFor": "Không có kết quả tìm kiếm cho \"{0}\"",
|
||||
"MessageNoSeries": "Không có Bộ",
|
||||
"MessageNoTags": "Không có Thẻ",
|
||||
"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",
|
||||
"MessageNoUpdatesWereNecessary": "Không cần cập nhật",
|
||||
"MessageNoUserPlaylists": "Bạn chưa có danh sách phát",
|
||||
"MessageOr": "hoặc",
|
||||
"MessagePauseChapter": "Tạm dừng phát chương",
|
||||
"MessagePlayChapter": "Nghe từ đầu chương",
|
||||
"MessagePlaylistCreateFromCollection": "Tạo danh sách phát từ bộ sưu tập",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "Podcast không có RSS feed để sử dụng cho việc kết hợp",
|
||||
"MessageQuickMatchDescription": "Điền chi tiết mục trống và ảnh bìa với kết quả phù hợp đầu tiên từ '{0}'. Không ghi đè chi tiết trừ khi cài đặt máy chủ 'Ưu tiên dữ liệu phù hợp' được bật.",
|
||||
"MessageRemoveChapter": "Xóa chương",
|
||||
"MessageRemoveEpisodes": "Xóa {0} tập",
|
||||
"MessageRemoveFromPlayerQueue": "Xóa khỏi hàng đợi phát",
|
||||
"MessageRemoveUserWarning": "Bạn có chắc chắn muốn xóa người dùng \"{0}\" một cách vĩnh viễn không?",
|
||||
"MessageReportBugsAndContribute": "Báo cáo lỗi, yêu cầu tính năng và đóng góp tại",
|
||||
"MessageResetChaptersConfirm": "Bạn có chắc chắn muốn đặt lại các chương và hủy những thay đổi bạn đã thực hiện không?",
|
||||
"MessageRestoreBackupConfirm": "Bạn có chắc chắn muốn khôi phục bản sao lưu được tạo vào",
|
||||
"MessageRestoreBackupWarning": "Việc khôi phục bản sao lưu sẽ ghi đè lên toàn bộ cơ sở dữ liệu được đặt tại /config và ảnh bìa trong /metadata/items & /metadata/authors.<br /><br />Bản sao lưu không sửa đổi bất kỳ tệp nào trong các thư mục thư viện của bạn. Nếu bạn đã bật các cài đặt máy chủ để lưu ảnh bìa và dữ liệu phần mềm trong các thư mục thư viện của mình thì chúng sẽ không được sao lưu hoặc ghi đè.<br /><br />Tất cả các máy khách sử dụng máy chủ của bạn sẽ được làm mới tự động.",
|
||||
"MessageSearchResultsFor": "Kết quả tìm kiếm cho",
|
||||
"MessageSelected": "{0} đã được chọn",
|
||||
"MessageServerCouldNotBeReached": "Không thể kết nối đến máy chủ",
|
||||
"MessageSetChaptersFromTracksDescription": "Đặt chương sử dụng mỗi tệp âm thanh là một chương và tiêu đề chương là tên tệp âm thanh",
|
||||
"MessageStartPlaybackAtTime": "Bắt đầu phát \"{0}\" tại thời điểm {1}?",
|
||||
"MessageThinking": "Đang suy nghĩ...",
|
||||
"MessageUploaderItemFailed": "Không thể tải lên",
|
||||
"MessageUploaderItemSuccess": "Tải lên thành công!",
|
||||
"MessageUploading": "Đang tải lên...",
|
||||
"MessageValidCronExpression": "Biểu thức cron hợp lệ",
|
||||
"MessageWatcherIsDisabledGlobally": "Watcher đã bị vô hiệu hóa toàn cầu trong cài đặt máy chủ",
|
||||
"MessageXLibraryIsEmpty": "Thư viện {0} rỗng!",
|
||||
"MessageYourAudiobookDurationIsLonger": "Thời lượng sách nói của bạn dài hơn so với thời lượng tìm thấy",
|
||||
"MessageYourAudiobookDurationIsShorter": "Thời lượng sách nói của bạn ngắn hơn so với thời lượng tìm thấy",
|
||||
"NoteChangeRootPassword": "Người dùng Root là người dùng duy nhất có thể có mật khẩu trống",
|
||||
"NoteChapterEditorTimes": "Lưu ý: Thời gian bắt đầu của chương đầu tiên phải ở 0:00 và thời gian bắt đầu của chương cuối cùng không thể vượt quá thời lượng của sách nói này.",
|
||||
"NoteFolderPicker": "Lưu ý: các thư mục đã được ánh xạ trước đó sẽ không được hiển thị",
|
||||
"NoteRSSFeedPodcastAppsHttps": "Cảnh báo: Hầu hết các ứng dụng podcast sẽ yêu cầu URL của RSS feed sử dụng HTTPS",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "Cảnh báo: 1 hoặc nhiều tập của bạn không có Pub Date. Một số ứng dụng podcast yêu cầu điều này.",
|
||||
"NoteUploaderFoldersWithMediaFiles": "Các thư mục có tệp phương tiện sẽ được xử lý như các mục thư viện riêng biệt.",
|
||||
"NoteUploaderOnlyAudioFiles": "Nếu chỉ tải lên các tệp âm thanh thì mỗi tệp âm thanh sẽ được xử lý như một cuốn sách nói riêng biệt.",
|
||||
"NoteUploaderUnsupportedFiles": "Các tệp không được hỗ trợ sẽ bị bỏ qua. Khi chọn hoặc thả một thư mục, các tệp khác không có trong thư mục mục sẽ bị bỏ qua.",
|
||||
"PlaceholderNewCollection": "Tên bộ sưu tập mới",
|
||||
"PlaceholderNewFolderPath": "Đường dẫn thư mục mới",
|
||||
"PlaceholderNewPlaylist": "Tên danh sách phát mới",
|
||||
"PlaceholderSearch": "Tìm kiếm..",
|
||||
"PlaceholderSearchEpisode": "Tìm kiếm tập..",
|
||||
"ToastAccountUpdateFailed": "Cập nhật tài khoản thất bại",
|
||||
"ToastAccountUpdateSuccess": "Tài khoản đã được cập nhật",
|
||||
"ToastAuthorImageRemoveFailed": "Không thể xóa ảnh tác giả",
|
||||
"ToastAuthorImageRemoveSuccess": "Ảnh tác giả đã được xóa",
|
||||
"ToastAuthorUpdateFailed": "Cập nhật tác giả thất bại",
|
||||
"ToastAuthorUpdateMerged": "Tác giả đã được hợp nhất",
|
||||
"ToastAuthorUpdateSuccess": "Cập nhật tác giả thành công",
|
||||
"ToastAuthorUpdateSuccessNoImageFound": "Cập nhật tác giả thành công (không tìm thấy ảnh)",
|
||||
"ToastBackupCreateFailed": "Tạo bản sao lưu thất bại",
|
||||
"ToastBackupCreateSuccess": "Bản sao lưu được tạo",
|
||||
"ToastBackupDeleteFailed": "Xóa bản sao lưu thất bại",
|
||||
"ToastBackupDeleteSuccess": "Bản sao lưu đã được xóa",
|
||||
"ToastBackupRestoreFailed": "Khôi phục bản sao lưu thất bại",
|
||||
"ToastBackupUploadFailed": "Tải lên bản sao lưu thất bại",
|
||||
"ToastBackupUploadSuccess": "Bản sao lưu đã được tải lên",
|
||||
"ToastBatchUpdateFailed": "Cập nhật nhóm thất bại",
|
||||
"ToastBatchUpdateSuccess": "Cập nhật nhóm thành công",
|
||||
"ToastBookmarkCreateFailed": "Tạo đánh dấu thất bại",
|
||||
"ToastBookmarkCreateSuccess": "Đã thêm đánh dấu",
|
||||
"ToastBookmarkRemoveFailed": "Xóa đánh dấu thất bại",
|
||||
"ToastBookmarkRemoveSuccess": "Đánh dấu đã được xóa",
|
||||
"ToastBookmarkUpdateFailed": "Cập nhật đánh dấu thất bại",
|
||||
"ToastBookmarkUpdateSuccess": "Đánh dấu đã được cập nhật",
|
||||
"ToastChaptersHaveErrors": "Các chương có lỗi",
|
||||
"ToastChaptersMustHaveTitles": "Các chương phải có tiêu đề",
|
||||
"ToastCollectionItemsRemoveFailed": "Xóa mục từ bộ sưu tập thất bại",
|
||||
"ToastCollectionItemsRemoveSuccess": "Mục đã được xóa khỏi bộ sưu tập",
|
||||
"ToastCollectionRemoveFailed": "Xóa bộ sưu tập thất bại",
|
||||
"ToastCollectionRemoveSuccess": "Bộ sưu tập đã được xóa",
|
||||
"ToastCollectionUpdateFailed": "Cập nhật bộ sưu tập thất bại",
|
||||
"ToastCollectionUpdateSuccess": "Bộ sưu tập đã được cập nhật",
|
||||
"ToastItemCoverUpdateFailed": "Cập nhật ảnh bìa mục thất bại",
|
||||
"ToastItemCoverUpdateSuccess": "Ảnh bìa mục đã được cập nhật",
|
||||
"ToastItemDetailsUpdateFailed": "Cập nhật chi tiết mục thất bại",
|
||||
"ToastItemDetailsUpdateSuccess": "Chi tiết mục đã được cập nhật",
|
||||
"ToastItemDetailsUpdateUnneeded": "Không cần cập nhật chi tiết mục",
|
||||
"ToastItemMarkedAsFinishedFailed": "Đánh dấu mục là Hoàn thành thất bại",
|
||||
"ToastItemMarkedAsFinishedSuccess": "Mục đã được đánh dấu là Hoàn thành",
|
||||
"ToastItemMarkedAsNotFinishedFailed": "Đánh dấu mục là Chưa hoàn thành thất bại",
|
||||
"ToastItemMarkedAsNotFinishedSuccess": "Mục đã được đánh dấu là Chưa hoàn thành",
|
||||
"ToastLibraryCreateFailed": "Tạo thư viện thất bại",
|
||||
"ToastLibraryCreateSuccess": "Thư viện \"{0}\" đã được tạo",
|
||||
"ToastLibraryDeleteFailed": "Xóa thư viện thất bại",
|
||||
"ToastLibraryDeleteSuccess": "Thư viện đã được xóa",
|
||||
"ToastLibraryScanFailedToStart": "Không thể bắt đầu quét thư viện",
|
||||
"ToastLibraryScanStarted": "Quét thư viện đã được bắt đầu",
|
||||
"ToastLibraryUpdateFailed": "Cập nhật thư viện thất bại",
|
||||
"ToastLibraryUpdateSuccess": "Thư viện \"{0}\" đã được cập nhật",
|
||||
"ToastPlaylistCreateFailed": "Tạo danh sách phát thất bại",
|
||||
"ToastPlaylistCreateSuccess": "Danh sách phát đã được tạo",
|
||||
"ToastPlaylistRemoveFailed": "Xóa danh sách phát thất bại",
|
||||
"ToastPlaylistRemoveSuccess": "Danh sách phát đã được xóa",
|
||||
"ToastPlaylistUpdateFailed": "Cập nhật danh sách phát thất bại",
|
||||
"ToastPlaylistUpdateSuccess": "Danh sách phát đã được cập nhật",
|
||||
"ToastPodcastCreateFailed": "Tạo podcast thất bại",
|
||||
"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",
|
||||
"ToastRSSFeedCloseSuccess": "Nguồn cấp RSS đã được đóng",
|
||||
"ToastSendEbookToDeviceFailed": "Gửi ebook đến thiết bị thất bại",
|
||||
"ToastSendEbookToDeviceSuccess": "Ebook đã được gửi đến thiết bị \"{0}\"",
|
||||
"ToastSeriesUpdateFailed": "Cập nhật loạt truyện thất bại",
|
||||
"ToastSeriesUpdateSuccess": "Cập nhật loạt truyện thành công",
|
||||
"ToastSessionDeleteFailed": "Xóa phiên thất bại",
|
||||
"ToastSessionDeleteSuccess": "Phiên đã được xóa",
|
||||
"ToastSocketConnected": "Kết nối socket",
|
||||
"ToastSocketDisconnected": "Ngắt kết nối socket",
|
||||
"ToastSocketFailedToConnect": "Không thể kết nối socket",
|
||||
"ToastUserDeleteFailed": "Xóa người dùng thất bại",
|
||||
"ToastUserDeleteSuccess": "Người dùng đã được xóa"
|
||||
}
|
||||
@@ -32,8 +32,8 @@
|
||||
"ButtonHide": "隐藏",
|
||||
"ButtonHome": "首页",
|
||||
"ButtonIssues": "问题",
|
||||
"ButtonJumpBackward": "Jump Backward",
|
||||
"ButtonJumpForward": "Jump Forward",
|
||||
"ButtonJumpBackward": "向后跳转",
|
||||
"ButtonJumpForward": "向前跳转",
|
||||
"ButtonLatest": "最新",
|
||||
"ButtonLibrary": "媒体库",
|
||||
"ButtonLogout": "注销",
|
||||
@@ -43,7 +43,8 @@
|
||||
"ButtonMatchAllAuthors": "匹配所有作者",
|
||||
"ButtonMatchBooks": "匹配图书",
|
||||
"ButtonNevermind": "没有关系",
|
||||
"ButtonNextChapter": "Next Chapter",
|
||||
"ButtonNext": "下一个",
|
||||
"ButtonNextChapter": "下一章节",
|
||||
"ButtonOk": "确定",
|
||||
"ButtonOpenFeed": "打开源",
|
||||
"ButtonOpenManager": "打开管理器",
|
||||
@@ -51,7 +52,8 @@
|
||||
"ButtonPlay": "播放",
|
||||
"ButtonPlaying": "正在播放",
|
||||
"ButtonPlaylists": "播放列表",
|
||||
"ButtonPreviousChapter": "Previous Chapter",
|
||||
"ButtonPrevious": "上一个",
|
||||
"ButtonPreviousChapter": "上一章节",
|
||||
"ButtonPurgeAllCache": "清理所有缓存",
|
||||
"ButtonPurgeItemsCache": "清理项目缓存",
|
||||
"ButtonPurgeMediaProgress": "清理媒体进度",
|
||||
@@ -59,6 +61,7 @@
|
||||
"ButtonQueueRemoveItem": "从队列中移除",
|
||||
"ButtonQuickMatch": "快速匹配",
|
||||
"ButtonRead": "读取",
|
||||
"ButtonRefresh": "刷新",
|
||||
"ButtonRemove": "移除",
|
||||
"ButtonRemoveAll": "移除所有",
|
||||
"ButtonRemoveAllLibraryItems": "移除所有媒体库项目",
|
||||
@@ -78,6 +81,7 @@
|
||||
"ButtonSelectFolderPath": "选择文件夹路径",
|
||||
"ButtonSeries": "系列",
|
||||
"ButtonSetChaptersFromTracks": "将音轨设置为章节",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "快速调整时间",
|
||||
"ButtonShow": "显示",
|
||||
"ButtonStartM4BEncode": "开始 M4B 编码",
|
||||
@@ -109,7 +113,7 @@
|
||||
"HeaderCollectionItems": "收藏项目",
|
||||
"HeaderCover": "封面",
|
||||
"HeaderCurrentDownloads": "当前下载",
|
||||
"HeaderCustomMetadataProviders": "Custom Metadata Providers",
|
||||
"HeaderCustomMetadataProviders": "自定义元数据提供者",
|
||||
"HeaderDetails": "详情",
|
||||
"HeaderDownloadQueue": "下载队列",
|
||||
"HeaderEbookFiles": "电子书文件",
|
||||
@@ -180,6 +184,7 @@
|
||||
"HeaderUpdateDetails": "更新详情",
|
||||
"HeaderUpdateLibrary": "更新媒体库",
|
||||
"HeaderUsers": "用户",
|
||||
"HeaderYearReview": "{0} 年回顾",
|
||||
"HeaderYourStats": "你的统计数据",
|
||||
"LabelAbridged": "概要",
|
||||
"LabelAccountType": "帐户类型",
|
||||
@@ -289,9 +294,9 @@
|
||||
"LabelFolders": "文件夹",
|
||||
"LabelFontBold": "Bold",
|
||||
"LabelFontFamily": "字体系列",
|
||||
"LabelFontItalic": "Italic",
|
||||
"LabelFontItalic": "斜体",
|
||||
"LabelFontScale": "字体比例",
|
||||
"LabelFontStrikethrough": "Strikethrough",
|
||||
"LabelFontStrikethrough": "删除线",
|
||||
"LabelFormat": "编码格式",
|
||||
"LabelGenre": "流派",
|
||||
"LabelGenres": "流派",
|
||||
@@ -315,7 +320,6 @@
|
||||
"LabelIntervalEvery6Hours": "每 6 小时",
|
||||
"LabelIntervalEveryDay": "每天",
|
||||
"LabelIntervalEveryHour": "每小时",
|
||||
"LabelInvalidParts": "无效部件",
|
||||
"LabelInvert": "倒转",
|
||||
"LabelItem": "项目",
|
||||
"LabelLanguage": "语言",
|
||||
@@ -351,7 +355,8 @@
|
||||
"LabelMetaTags": "元标签",
|
||||
"LabelMinute": "分钟",
|
||||
"LabelMissing": "丢失",
|
||||
"LabelMissingParts": "丢失的部分",
|
||||
"LabelMissingEbook": "没有电子书",
|
||||
"LabelMissingSupplementaryEbook": "没有补充电子书",
|
||||
"LabelMobileRedirectURIs": "允许移动应用重定向 URI",
|
||||
"LabelMobileRedirectURIsDescription": "这是移动应用程序的有效重定向 URI 白名单. 默认值为 <code>audiobookshelf://oauth</code>,您可以删除它或添加其他 URI 以进行第三方应用集成. 使用星号 (<code>*</code>) 作为唯一条目允许任何 URI.",
|
||||
"LabelMore": "更多",
|
||||
@@ -380,6 +385,9 @@
|
||||
"LabelNotStarted": "未开始",
|
||||
"LabelNumberOfBooks": "图书数量",
|
||||
"LabelNumberOfEpisodes": "# 集",
|
||||
"LabelOpenIDAdvancedPermsClaimDescription": "OpenID 声明的名称, 该声明包含应用程序内用户操作的高级权限, 该权限将应用于非管理员角色(<b>如果已配置</b>). 如果响应中缺少声明, 获取 ABS 的权限将被拒绝. 如果缺少单个选项, 它将被视为 <code>禁用</code>. 确保身份提供者的声明与预期结构匹配:",
|
||||
"LabelOpenIDClaims": "将以下选项留空以禁用高级组和权限分配, 然后自动分配 'User' 组.",
|
||||
"LabelOpenIDGroupClaimDescription": "OpenID 声明的名称, 该声明包含用户组的列表. 通常称为<code>组</code><b>如果已配置</b>, 应用程序将根据用户的组成员身份自动分配角色, 前提是这些组在声明中以不区分大小写的方式命名为 'Admin', 'User' 或 'Guest'. 声明应包含一个列表, 如果用户属于多个组, 则应用程序将分配与最高访问级别相对应的角色. 如果没有组匹配, 访问将被拒绝.",
|
||||
"LabelOpenRSSFeed": "打开 RSS 源",
|
||||
"LabelOverwrite": "覆盖",
|
||||
"LabelPassword": "密码",
|
||||
@@ -391,6 +399,7 @@
|
||||
"LabelPermissionsDownload": "可以下载",
|
||||
"LabelPermissionsUpdate": "可以更新",
|
||||
"LabelPermissionsUpload": "可以上传",
|
||||
"LabelPersonalYearReview": "你的年度回顾 ({0})",
|
||||
"LabelPhotoPathURL": "图片路径或 URL",
|
||||
"LabelPlaylists": "播放列表",
|
||||
"LabelPlayMethod": "播放方法",
|
||||
@@ -417,7 +426,7 @@
|
||||
"LabelRegion": "区域",
|
||||
"LabelReleaseDate": "发布日期",
|
||||
"LabelRemoveCover": "移除封面",
|
||||
"LabelRowsPerPage": "Rows per page",
|
||||
"LabelRowsPerPage": "每页行数",
|
||||
"LabelRSSFeedCustomOwnerEmail": "自定义所有者电子邮件",
|
||||
"LabelRSSFeedCustomOwnerName": "自定义所有者名称",
|
||||
"LabelRSSFeedOpen": "打开 RSS 源",
|
||||
@@ -430,12 +439,13 @@
|
||||
"LabelSeason": "季",
|
||||
"LabelSelectAllEpisodes": "选择所有剧集",
|
||||
"LabelSelectEpisodesShowing": "选择正在播放的 {0} 剧集",
|
||||
"LabelSelectUsers": "Select users",
|
||||
"LabelSelectUsers": "选择用户",
|
||||
"LabelSendEbookToDevice": "发送电子书到...",
|
||||
"LabelSequence": "序列",
|
||||
"LabelSeries": "系列",
|
||||
"LabelSeriesName": "系列名称",
|
||||
"LabelSeriesProgress": "系列进度",
|
||||
"LabelServerYearReview": "服务器年度回顾 ({0})",
|
||||
"LabelSetEbookAsPrimary": "设置为主",
|
||||
"LabelSetEbookAsSupplementary": "设置为补充",
|
||||
"LabelSettingsAudiobooksOnly": "只有有声读物",
|
||||
@@ -457,6 +467,8 @@
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "只有一本书的系列将从系列页面和主页书架中隐藏.",
|
||||
"LabelSettingsHomePageBookshelfView": "首页使用书架视图",
|
||||
"LabelSettingsLibraryBookshelfView": "媒体库使用书架视图",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "跳过继续系列中的早期书籍",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeriesHelp": "继续系列主页书架显示系列中未开始的第一本书, 该系列至少有一本书已完成且没有正在进行的书. 启用此设置将从最远完成的书开始系列, 而不是从第一本书开始.",
|
||||
"LabelSettingsParseSubtitles": "解析副标题",
|
||||
"LabelSettingsParseSubtitlesHelp": "从有声读物文件夹中提取副标题.<br>副标题必须用 \" - \" 分隔.<br>例: \"书名 - 这里是副标题\" 则显示副标题 \"这里是副标题\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "首选匹配的元数据",
|
||||
@@ -502,10 +514,10 @@
|
||||
"LabelTagsAccessibleToUser": "用户可访问的标签",
|
||||
"LabelTagsNotAccessibleToUser": "用户无法访问标签",
|
||||
"LabelTasks": "正在运行的任务",
|
||||
"LabelTextEditorBulletedList": "Bulleted list",
|
||||
"LabelTextEditorLink": "Link",
|
||||
"LabelTextEditorNumberedList": "Numbered list",
|
||||
"LabelTextEditorUnlink": "Unlink",
|
||||
"LabelTextEditorBulletedList": "项目符号列表",
|
||||
"LabelTextEditorLink": "链接",
|
||||
"LabelTextEditorNumberedList": "编号列表",
|
||||
"LabelTextEditorUnlink": "取消链接",
|
||||
"LabelTheme": "主题",
|
||||
"LabelThemeDark": "黑暗",
|
||||
"LabelThemeLight": "明亮",
|
||||
@@ -552,6 +564,8 @@
|
||||
"LabelViewQueue": "查看播放列表",
|
||||
"LabelVolume": "音量",
|
||||
"LabelWeekdaysToRun": "工作日运行",
|
||||
"LabelYearReviewHide": "隐藏年度回顾",
|
||||
"LabelYearReviewShow": "查看年度回顾",
|
||||
"LabelYourAudiobookDuration": "你的有声读物持续时间",
|
||||
"LabelYourBookmarks": "你的书签",
|
||||
"LabelYourPlaylists": "你的播放列表",
|
||||
@@ -588,7 +602,7 @@
|
||||
"MessageConfirmRemoveCollection": "你确定要移除收藏 \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisode": "你确定要移除剧集 \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisodes": "你确定要移除 {0} 剧集?",
|
||||
"MessageConfirmRemoveListeningSessions": "Are you sure you want to remove {0} listening sessions?",
|
||||
"MessageConfirmRemoveListeningSessions": "你确定要移除 {0} 收听会话吗?",
|
||||
"MessageConfirmRemoveNarrator": "你确定要删除演播者 \"{0}\"?",
|
||||
"MessageConfirmRemovePlaylist": "你确定要移除播放列表 \"{0}\"?",
|
||||
"MessageConfirmRenameGenre": "你确定要将所有项目流派 \"{0}\" 重命名到 \"{1}\"?",
|
||||
|
||||
782
client/strings/zh-tw.json
Normal file
782
client/strings/zh-tw.json
Normal file
@@ -0,0 +1,782 @@
|
||||
{
|
||||
"ButtonAdd": "增加",
|
||||
"ButtonAddChapters": "新增章節",
|
||||
"ButtonAddDevice": "新增設備",
|
||||
"ButtonAddLibrary": "新增庫",
|
||||
"ButtonAddPodcasts": "新增播客",
|
||||
"ButtonAddUser": "新增使用者",
|
||||
"ButtonAddYourFirstLibrary": "新增第一個媒體庫",
|
||||
"ButtonApply": "應用",
|
||||
"ButtonApplyChapters": "應用到章節",
|
||||
"ButtonAuthors": "作者",
|
||||
"ButtonBrowseForFolder": "瀏覽資料夾",
|
||||
"ButtonCancel": "取消",
|
||||
"ButtonCancelEncode": "取消編碼",
|
||||
"ButtonChangeRootPassword": "更改 Root 密碼",
|
||||
"ButtonCheckAndDownloadNewEpisodes": "檢查並下載新劇集",
|
||||
"ButtonChooseAFolder": "選擇資料夾",
|
||||
"ButtonChooseFiles": "選擇檔案",
|
||||
"ButtonClearFilter": "清除過濾器",
|
||||
"ButtonCloseFeed": "關閉源",
|
||||
"ButtonCollections": "收藏",
|
||||
"ButtonConfigureScanner": "配置掃描",
|
||||
"ButtonCreate": "創建",
|
||||
"ButtonCreateBackup": "創建備份",
|
||||
"ButtonDelete": "刪除",
|
||||
"ButtonDownloadQueue": "下載佇列",
|
||||
"ButtonEdit": "編輯",
|
||||
"ButtonEditChapters": "編輯章節",
|
||||
"ButtonEditPodcast": "編輯播客",
|
||||
"ButtonForceReScan": "強制重新掃描",
|
||||
"ButtonFullPath": "完整路徑",
|
||||
"ButtonHide": "隱藏",
|
||||
"ButtonHome": "首頁",
|
||||
"ButtonIssues": "問題",
|
||||
"ButtonJumpBackward": "Jump Backward",
|
||||
"ButtonJumpForward": "Jump Forward",
|
||||
"ButtonLatest": "最新",
|
||||
"ButtonLibrary": "媒體庫",
|
||||
"ButtonLogout": "登出",
|
||||
"ButtonLookup": "查找",
|
||||
"ButtonManageTracks": "管理音軌",
|
||||
"ButtonMapChapterTitles": "章節標題結構",
|
||||
"ButtonMatchAllAuthors": "匹配所有作者",
|
||||
"ButtonMatchBooks": "匹配圖書",
|
||||
"ButtonNevermind": "沒關係",
|
||||
"ButtonNext": "下個",
|
||||
"ButtonNextChapter": "下個章節",
|
||||
"ButtonOk": "確定",
|
||||
"ButtonOpenFeed": "打開源",
|
||||
"ButtonOpenManager": "打開管理器",
|
||||
"ButtonPause": "暫停",
|
||||
"ButtonPlay": "播放",
|
||||
"ButtonPlaying": "正在播放",
|
||||
"ButtonPlaylists": "播放列表",
|
||||
"ButtonPrevious": "Previous",
|
||||
"ButtonPreviousChapter": "過去的章節",
|
||||
"ButtonPurgeAllCache": "清理所有快取",
|
||||
"ButtonPurgeItemsCache": "清理項目快取",
|
||||
"ButtonPurgeMediaProgress": "清理媒體進度",
|
||||
"ButtonQueueAddItem": "新增到佇列",
|
||||
"ButtonQueueRemoveItem": "從佇列中移除",
|
||||
"ButtonQuickMatch": "快速匹配",
|
||||
"ButtonRead": "讀取",
|
||||
"ButtonRefresh": "重整",
|
||||
"ButtonRemove": "移除",
|
||||
"ButtonRemoveAll": "移除所有",
|
||||
"ButtonRemoveAllLibraryItems": "移除所有媒體庫項目",
|
||||
"ButtonRemoveFromContinueListening": "從繼續收聽中刪除",
|
||||
"ButtonRemoveFromContinueReading": "從繼續閱讀中刪除",
|
||||
"ButtonRemoveSeriesFromContinueSeries": "從繼續收聽系列中刪除",
|
||||
"ButtonReScan": "重新掃描",
|
||||
"ButtonReset": "重置",
|
||||
"ButtonResetToDefault": "重置為預設",
|
||||
"ButtonRestore": "恢復",
|
||||
"ButtonSave": "保存",
|
||||
"ButtonSaveAndClose": "保存並關閉",
|
||||
"ButtonSaveTracklist": "保存音軌列表",
|
||||
"ButtonScan": "掃描",
|
||||
"ButtonScanLibrary": "掃描庫",
|
||||
"ButtonSearch": "查找",
|
||||
"ButtonSelectFolderPath": "選擇資料夾路徑",
|
||||
"ButtonSeries": "系列",
|
||||
"ButtonSetChaptersFromTracks": "將音軌設定為章節",
|
||||
"ButtonShare": "Share",
|
||||
"ButtonShiftTimes": "快速調整時間",
|
||||
"ButtonShow": "顯示",
|
||||
"ButtonStartM4BEncode": "開始 M4B 編碼",
|
||||
"ButtonStartMetadataEmbed": "開始嵌入元數據",
|
||||
"ButtonSubmit": "提交",
|
||||
"ButtonTest": "測試",
|
||||
"ButtonUpload": "上傳",
|
||||
"ButtonUploadBackup": "上傳備份",
|
||||
"ButtonUploadCover": "上傳封面",
|
||||
"ButtonUploadOPMLFile": "上傳 OPML 檔",
|
||||
"ButtonUserDelete": "刪除使用者 {0}",
|
||||
"ButtonUserEdit": "編輯使用者 {0}",
|
||||
"ButtonViewAll": "查看全部",
|
||||
"ButtonYes": "確定",
|
||||
"ErrorUploadFetchMetadataAPI": "獲取元數據時出錯",
|
||||
"ErrorUploadFetchMetadataNoResults": "無法獲取元數據 - 嘗試更新標題和/或作者",
|
||||
"ErrorUploadLacksTitle": "必須有標題",
|
||||
"HeaderAccount": "帳號",
|
||||
"HeaderAdvanced": "高級",
|
||||
"HeaderAppriseNotificationSettings": "測試通知設定",
|
||||
"HeaderAudiobookTools": "有聲書檔案管理工具",
|
||||
"HeaderAudioTracks": "音軌",
|
||||
"HeaderAuthentication": "身份驗證",
|
||||
"HeaderBackups": "備份",
|
||||
"HeaderChangePassword": "更改密碼",
|
||||
"HeaderChapters": "章節",
|
||||
"HeaderChooseAFolder": "選擇資料夾",
|
||||
"HeaderCollection": "收藏",
|
||||
"HeaderCollectionItems": "收藏項目",
|
||||
"HeaderCover": "封面",
|
||||
"HeaderCurrentDownloads": "當前下載",
|
||||
"HeaderCustomMetadataProviders": "自訂 Metadata 提供者",
|
||||
"HeaderDetails": "詳情",
|
||||
"HeaderDownloadQueue": "下載佇列",
|
||||
"HeaderEbookFiles": "電子書檔",
|
||||
"HeaderEmail": "郵箱",
|
||||
"HeaderEmailSettings": "郵箱設定",
|
||||
"HeaderEpisodes": "劇集",
|
||||
"HeaderEreaderDevices": "Ereader 設備",
|
||||
"HeaderEreaderSettings": "Ereader 設定",
|
||||
"HeaderFiles": "檔案",
|
||||
"HeaderFindChapters": "查找章節",
|
||||
"HeaderIgnoredFiles": "忽略的檔案",
|
||||
"HeaderItemFiles": "項目檔案",
|
||||
"HeaderItemMetadataUtils": "項目元數據管理",
|
||||
"HeaderLastListeningSession": "最後一次收聽會話",
|
||||
"HeaderLatestEpisodes": "最新劇集",
|
||||
"HeaderLibraries": "媒體庫",
|
||||
"HeaderLibraryFiles": "媒體庫檔案",
|
||||
"HeaderLibraryStats": "媒體庫統計數據",
|
||||
"HeaderListeningSessions": "收聽會話",
|
||||
"HeaderListeningStats": "收聽統計數據",
|
||||
"HeaderLogin": "登入",
|
||||
"HeaderLogs": "日誌",
|
||||
"HeaderManageGenres": "管理流派",
|
||||
"HeaderManageTags": "管理標籤",
|
||||
"HeaderMapDetails": "編輯詳情",
|
||||
"HeaderMatch": "匹配",
|
||||
"HeaderMetadataOrderOfPrecedence": "元數據優先級",
|
||||
"HeaderMetadataToEmbed": "嵌入元數據",
|
||||
"HeaderNewAccount": "新建帳號",
|
||||
"HeaderNewLibrary": "新建媒體庫",
|
||||
"HeaderNotifications": "通知",
|
||||
"HeaderOpenIDConnectAuthentication": "OpenID 連接身份驗證",
|
||||
"HeaderOpenRSSFeed": "打開 RSS 源",
|
||||
"HeaderOtherFiles": "其他檔案",
|
||||
"HeaderPasswordAuthentication": "密碼認證",
|
||||
"HeaderPermissions": "權限",
|
||||
"HeaderPlayerQueue": "播放佇列",
|
||||
"HeaderPlaylist": "播放列表",
|
||||
"HeaderPlaylistItems": "播放列表項目",
|
||||
"HeaderPodcastsToAdd": "要新增的播客",
|
||||
"HeaderPreviewCover": "預覽封面",
|
||||
"HeaderRemoveEpisode": "移除劇集",
|
||||
"HeaderRemoveEpisodes": "移除 {0} 劇集",
|
||||
"HeaderRSSFeedGeneral": "RSS 詳細信息",
|
||||
"HeaderRSSFeedIsOpen": "RSS 源已打開",
|
||||
"HeaderRSSFeeds": "RSS 訂閱",
|
||||
"HeaderSavedMediaProgress": "保存媒體進度",
|
||||
"HeaderSchedule": "計劃任務",
|
||||
"HeaderScheduleLibraryScans": "自動掃描媒體庫",
|
||||
"HeaderSession": "會話",
|
||||
"HeaderSetBackupSchedule": "設定備份計劃任務",
|
||||
"HeaderSettings": "設定",
|
||||
"HeaderSettingsDisplay": "顯示",
|
||||
"HeaderSettingsExperimental": "實驗功能",
|
||||
"HeaderSettingsGeneral": "通用",
|
||||
"HeaderSettingsScanner": "掃描",
|
||||
"HeaderSleepTimer": "睡眠計時",
|
||||
"HeaderStatsLargestItems": "最大的項目",
|
||||
"HeaderStatsLongestItems": "項目時長(小時)",
|
||||
"HeaderStatsMinutesListeningChart": "收聽分鐘數(最近7天)",
|
||||
"HeaderStatsRecentSessions": "歷史會話",
|
||||
"HeaderStatsTop10Authors": "前 10 位作者",
|
||||
"HeaderStatsTop5Genres": "前 5 種流派",
|
||||
"HeaderTableOfContents": "目錄",
|
||||
"HeaderTools": "工具",
|
||||
"HeaderUpdateAccount": "更新帳號",
|
||||
"HeaderUpdateAuthor": "更新作者",
|
||||
"HeaderUpdateDetails": "更新詳情",
|
||||
"HeaderUpdateLibrary": "更新媒體庫",
|
||||
"HeaderUsers": "使用者",
|
||||
"HeaderYearReview": "Year {0} in Review",
|
||||
"HeaderYourStats": "你的統計數據",
|
||||
"LabelAbridged": "概要",
|
||||
"LabelAccountType": "帳號類型",
|
||||
"LabelAccountTypeAdmin": "管理員",
|
||||
"LabelAccountTypeGuest": "來賓",
|
||||
"LabelAccountTypeUser": "使用者",
|
||||
"LabelActivity": "活動",
|
||||
"LabelAdded": "新增",
|
||||
"LabelAddedAt": "新增於",
|
||||
"LabelAddToCollection": "新增到收藏",
|
||||
"LabelAddToCollectionBatch": "批量新增 {0} 個媒體到收藏",
|
||||
"LabelAddToPlaylist": "新增到播放列表",
|
||||
"LabelAddToPlaylistBatch": "新增 {0} 個項目到播放列表",
|
||||
"LabelAdminUsersOnly": "僅限管理員使用者",
|
||||
"LabelAll": "全部",
|
||||
"LabelAllUsers": "所有使用者",
|
||||
"LabelAllUsersExcludingGuests": "除訪客外的所有使用者",
|
||||
"LabelAllUsersIncludingGuests": "包括訪客的所有使用者",
|
||||
"LabelAlreadyInYourLibrary": "已存在你的庫中",
|
||||
"LabelAppend": "附加",
|
||||
"LabelAuthor": "作者",
|
||||
"LabelAuthorFirstLast": "作者 (姓 名)",
|
||||
"LabelAuthorLastFirst": "作者 (名, 姓)",
|
||||
"LabelAuthors": "作者",
|
||||
"LabelAutoDownloadEpisodes": "自動下載劇集",
|
||||
"LabelAutoFetchMetadata": "自動獲取元數據",
|
||||
"LabelAutoFetchMetadataHelp": "獲取標題, 作者和系列的元數據以簡化上傳. 上傳後可能需要匹配其他元數據.",
|
||||
"LabelAutoLaunch": "自動啟動",
|
||||
"LabelAutoLaunchDescription": "導航到登入頁面時自動重定向到身份驗證提供程序 (手動覆蓋路徑 <code>/login?autoLaunch=0</code>)",
|
||||
"LabelAutoRegister": "自動註冊",
|
||||
"LabelAutoRegisterDescription": "登入後自動創建新使用者",
|
||||
"LabelBackToUser": "返回到使用者",
|
||||
"LabelBackupLocation": "備份位置",
|
||||
"LabelBackupsEnableAutomaticBackups": "啟用自動備份",
|
||||
"LabelBackupsEnableAutomaticBackupsHelp": "備份保存到 /metadata/backups",
|
||||
"LabelBackupsMaxBackupSize": "最大備份大小 (GB)",
|
||||
"LabelBackupsMaxBackupSizeHelp": "為了防止錯誤配置, 如果備份超過配置的大小, 備份將失敗.",
|
||||
"LabelBackupsNumberToKeep": "要保留的備份個數",
|
||||
"LabelBackupsNumberToKeepHelp": "一次只能刪除一個備份, 因此如果你已經有超過此數量的備份, 則應手動刪除它們.",
|
||||
"LabelBitrate": "位元率",
|
||||
"LabelBooks": "圖書",
|
||||
"LabelButtonText": "按鈕文本",
|
||||
"LabelChangePassword": "修改密碼",
|
||||
"LabelChannels": "聲道",
|
||||
"LabelChapters": "章節",
|
||||
"LabelChaptersFound": "找到的章節",
|
||||
"LabelChapterTitle": "章節標題",
|
||||
"LabelClickForMoreInfo": "點擊了解更多資訊",
|
||||
"LabelClosePlayer": "關閉播放器",
|
||||
"LabelCodec": "編解碼",
|
||||
"LabelCollapseSeries": "折疊系列",
|
||||
"LabelCollection": "收藏",
|
||||
"LabelCollections": "收藏",
|
||||
"LabelComplete": "已完成",
|
||||
"LabelConfirmPassword": "確認密碼",
|
||||
"LabelContinueListening": "繼續收聽",
|
||||
"LabelContinueReading": "繼續閱讀",
|
||||
"LabelContinueSeries": "繼續收聽系列",
|
||||
"LabelCover": "封面",
|
||||
"LabelCoverImageURL": "封面圖像 URL",
|
||||
"LabelCreatedAt": "創建時間",
|
||||
"LabelCronExpression": "計劃任務表達式",
|
||||
"LabelCurrent": "當前",
|
||||
"LabelCurrently": "當前:",
|
||||
"LabelCustomCronExpression": "自定義計劃任務表達式:",
|
||||
"LabelDatetime": "日期時間",
|
||||
"LabelDeleteFromFileSystemCheckbox": "從檔案系統刪除 (取消選中僅從資料庫中刪除)",
|
||||
"LabelDescription": "描述",
|
||||
"LabelDeselectAll": "全部取消選擇",
|
||||
"LabelDevice": "設備",
|
||||
"LabelDeviceInfo": "設備資訊",
|
||||
"LabelDeviceIsAvailableTo": "設備可用於...",
|
||||
"LabelDirectory": "目錄",
|
||||
"LabelDiscFromFilename": "從檔名獲取光碟",
|
||||
"LabelDiscFromMetadata": "從元數據獲取光碟",
|
||||
"LabelDiscover": "發現",
|
||||
"LabelDownload": "下載",
|
||||
"LabelDownloadNEpisodes": "下載 {0} 集",
|
||||
"LabelDuration": "持續時間",
|
||||
"LabelDurationFound": "找到持續時間:",
|
||||
"LabelEbook": "電子書",
|
||||
"LabelEbooks": "電子書",
|
||||
"LabelEdit": "編輯",
|
||||
"LabelEmail": "郵箱",
|
||||
"LabelEmailSettingsFromAddress": "發件人位址",
|
||||
"LabelEmailSettingsSecure": "安全",
|
||||
"LabelEmailSettingsSecureHelp": "如果選是, 則連接將在連接到伺服器時使用TLS. 如果選否, 則若伺服器支援STARTTLS擴展, 則使用TLS. 在大多數情況下, 如果連接到465埠, 請將該值設定為是. 對於587或25埠, 請保持為否. (來自nodemailer.com/smtp/#authentication)",
|
||||
"LabelEmailSettingsTestAddress": "測試位址",
|
||||
"LabelEmbeddedCover": "嵌入封面",
|
||||
"LabelEnable": "啟用",
|
||||
"LabelEnd": "結束",
|
||||
"LabelEpisode": "劇集",
|
||||
"LabelEpisodeTitle": "劇集標題",
|
||||
"LabelEpisodeType": "劇集類型",
|
||||
"LabelExample": "示例",
|
||||
"LabelExplicit": "信息準確",
|
||||
"LabelFeedURL": "源 URL",
|
||||
"LabelFetchingMetadata": "正在獲取元數據",
|
||||
"LabelFile": "檔案",
|
||||
"LabelFileBirthtime": "檔案創建時間",
|
||||
"LabelFileModified": "檔案修改時間",
|
||||
"LabelFilename": "檔名",
|
||||
"LabelFilterByUser": "按使用者篩選",
|
||||
"LabelFindEpisodes": "查找劇集",
|
||||
"LabelFinished": "已聽完",
|
||||
"LabelFolder": "資料夾",
|
||||
"LabelFolders": "資料夾",
|
||||
"LabelFontBold": "Bold",
|
||||
"LabelFontFamily": "字體系列",
|
||||
"LabelFontItalic": "斜體",
|
||||
"LabelFontScale": "字體比例",
|
||||
"LabelFontStrikethrough": "刪除線",
|
||||
"LabelFormat": "編碼格式",
|
||||
"LabelGenre": "流派",
|
||||
"LabelGenres": "流派",
|
||||
"LabelHardDeleteFile": "完全刪除檔案",
|
||||
"LabelHasEbook": "有電子書",
|
||||
"LabelHasSupplementaryEbook": "有補充電子書",
|
||||
"LabelHighestPriority": "最高優先級",
|
||||
"LabelHost": "主機",
|
||||
"LabelHour": "小時",
|
||||
"LabelIcon": "圖標",
|
||||
"LabelImageURLFromTheWeb": "來自 Web 圖像的 URL",
|
||||
"LabelIncludeInTracklist": "包含在音軌列表中",
|
||||
"LabelIncomplete": "未聽完",
|
||||
"LabelInProgress": "正在聽",
|
||||
"LabelInterval": "間隔",
|
||||
"LabelIntervalCustomDailyWeekly": "自定義 每天 / 每周",
|
||||
"LabelIntervalEvery12Hours": "每 12 小時",
|
||||
"LabelIntervalEvery15Minutes": "每 15 分鐘",
|
||||
"LabelIntervalEvery2Hours": "每 2 小時",
|
||||
"LabelIntervalEvery30Minutes": "每 30 分鐘",
|
||||
"LabelIntervalEvery6Hours": "每 6 小時",
|
||||
"LabelIntervalEveryDay": "每天",
|
||||
"LabelIntervalEveryHour": "每小時",
|
||||
"LabelInvert": "倒轉",
|
||||
"LabelItem": "項目",
|
||||
"LabelLanguage": "語言",
|
||||
"LabelLanguageDefaultServer": "預設伺服器語言",
|
||||
"LabelLastBookAdded": "最後新增的書",
|
||||
"LabelLastBookUpdated": "最後更新的書",
|
||||
"LabelLastSeen": "上次查看時間",
|
||||
"LabelLastTime": "最近一次",
|
||||
"LabelLastUpdate": "最近更新",
|
||||
"LabelLayout": "布局",
|
||||
"LabelLayoutSinglePage": "單頁",
|
||||
"LabelLayoutSplitPage": "分頁",
|
||||
"LabelLess": "較少",
|
||||
"LabelLibrariesAccessibleToUser": "使用者可存取的媒體庫",
|
||||
"LabelLibrary": "媒體庫",
|
||||
"LabelLibraryItem": "媒體庫項目",
|
||||
"LabelLibraryName": "媒體庫名稱",
|
||||
"LabelLimit": "限制",
|
||||
"LabelLineSpacing": "行間距",
|
||||
"LabelListenAgain": "再次收聽",
|
||||
"LabelLogLevelDebug": "調試",
|
||||
"LabelLogLevelInfo": "信息",
|
||||
"LabelLogLevelWarn": "警告",
|
||||
"LabelLookForNewEpisodesAfterDate": "在此日期後查找新劇集",
|
||||
"LabelLowestPriority": "最低優先級",
|
||||
"LabelMatchExistingUsersBy": "匹配現有使用者",
|
||||
"LabelMatchExistingUsersByDescription": "用於連接現有使用者. 連接後, 使用者將通過SSO提供商提供的唯一 id 進行匹配",
|
||||
"LabelMediaPlayer": "媒體播放器",
|
||||
"LabelMediaType": "媒體類型",
|
||||
"LabelMetadataOrderOfPrecedenceDescription": "較高優先級的元數據源將覆蓋較低優先級的元數據源",
|
||||
"LabelMetadataProvider": "元數據提供者",
|
||||
"LabelMetaTag": "元數據標籤",
|
||||
"LabelMetaTags": "元標籤",
|
||||
"LabelMinute": "分鐘",
|
||||
"LabelMissing": "丟失",
|
||||
"LabelMissingEbook": "Has no ebook",
|
||||
"LabelMissingSupplementaryEbook": "Has no supplementary ebook",
|
||||
"LabelMobileRedirectURIs": "允許移動應用重定向 URI",
|
||||
"LabelMobileRedirectURIsDescription": "這是移動應用程序的有效重定向 URI 白名單. 預設值為 <code>audiobookshelf://oauth</code>,您可以刪除它或加入其他 URI 以進行第三方應用集成. 使用星號 (<code>*</code>) 作為唯一條目允許任何 URI.",
|
||||
"LabelMore": "更多",
|
||||
"LabelMoreInfo": "更多..",
|
||||
"LabelName": "名稱",
|
||||
"LabelNarrator": "講述者",
|
||||
"LabelNarrators": "講述者",
|
||||
"LabelNew": "新建",
|
||||
"LabelNewestAuthors": "最新作者",
|
||||
"LabelNewestEpisodes": "最新劇集",
|
||||
"LabelNewPassword": "新密碼",
|
||||
"LabelNextBackupDate": "下次備份日期",
|
||||
"LabelNextScheduledRun": "下次任務運行",
|
||||
"LabelNoEpisodesSelected": "未選擇任何劇集",
|
||||
"LabelNotes": "注釋",
|
||||
"LabelNotFinished": "未聽完",
|
||||
"LabelNotificationAppriseURL": "通知 URL(s)",
|
||||
"LabelNotificationAvailableVariables": "可用變量",
|
||||
"LabelNotificationBodyTemplate": "正文模板",
|
||||
"LabelNotificationEvent": "通知事件",
|
||||
"LabelNotificationsMaxFailedAttempts": "最大失敗嘗試次數",
|
||||
"LabelNotificationsMaxFailedAttemptsHelp": "如果多次發送失敗,通知將被禁用",
|
||||
"LabelNotificationsMaxQueueSize": "通知事件的最大佇列大小",
|
||||
"LabelNotificationsMaxQueueSizeHelp": "通知事件被限制為每秒觸發 1 個. 如果佇列處於最大大小, 則將忽略事件. 這可以防止通知垃圾郵件.",
|
||||
"LabelNotificationTitleTemplate": "標題模板",
|
||||
"LabelNotStarted": "未開始",
|
||||
"LabelNumberOfBooks": "圖書數量",
|
||||
"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:",
|
||||
"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.",
|
||||
"LabelOpenRSSFeed": "打開 RSS 源",
|
||||
"LabelOverwrite": "覆蓋",
|
||||
"LabelPassword": "密碼",
|
||||
"LabelPath": "路徑",
|
||||
"LabelPermissionsAccessAllLibraries": "可以存取所有媒體庫",
|
||||
"LabelPermissionsAccessAllTags": "可以存取所有標籤",
|
||||
"LabelPermissionsAccessExplicitContent": "可以存取顯式內容",
|
||||
"LabelPermissionsDelete": "可以刪除",
|
||||
"LabelPermissionsDownload": "可以下載",
|
||||
"LabelPermissionsUpdate": "可以更新",
|
||||
"LabelPermissionsUpload": "可以上傳",
|
||||
"LabelPersonalYearReview": "你的年度回顧 ({0})",
|
||||
"LabelPhotoPathURL": "圖片路徑或 URL",
|
||||
"LabelPlaylists": "播放列表",
|
||||
"LabelPlayMethod": "播放方法",
|
||||
"LabelPodcast": "播客",
|
||||
"LabelPodcasts": "播客",
|
||||
"LabelPodcastSearchRegion": "播客搜尋地區",
|
||||
"LabelPodcastType": "播客類型",
|
||||
"LabelPort": "埠",
|
||||
"LabelPrefixesToIgnore": "忽略的前綴 (不區分大小寫)",
|
||||
"LabelPreventIndexing": "防止 iTunes 和 Google 播客目錄對你的源進行索引",
|
||||
"LabelPrimaryEbook": "主電子書",
|
||||
"LabelProgress": "進度",
|
||||
"LabelProvider": "供應商",
|
||||
"LabelPubDate": "出版日期",
|
||||
"LabelPublisher": "出版商",
|
||||
"LabelPublishYear": "發布年份",
|
||||
"LabelRead": "閱讀",
|
||||
"LabelReadAgain": "再次閱讀",
|
||||
"LabelReadEbookWithoutProgress": "閱讀電子書而不保存進度",
|
||||
"LabelRecentlyAdded": "最近新增",
|
||||
"LabelRecentSeries": "最近新增系列",
|
||||
"LabelRecommended": "推薦內容",
|
||||
"LabelRedo": "重做",
|
||||
"LabelRegion": "區域",
|
||||
"LabelReleaseDate": "發布日期",
|
||||
"LabelRemoveCover": "移除封面",
|
||||
"LabelRowsPerPage": "每頁行數",
|
||||
"LabelRSSFeedCustomOwnerEmail": "自定義所有者電子郵件",
|
||||
"LabelRSSFeedCustomOwnerName": "自定義所有者名稱",
|
||||
"LabelRSSFeedOpen": "打開 RSS 源",
|
||||
"LabelRSSFeedPreventIndexing": "防止索引",
|
||||
"LabelRSSFeedSlug": "RSS 源段",
|
||||
"LabelRSSFeedURL": "RSS 源 URL",
|
||||
"LabelSearchTerm": "搜尋項",
|
||||
"LabelSearchTitle": "搜尋標題",
|
||||
"LabelSearchTitleOrASIN": "搜尋標題或 ASIN",
|
||||
"LabelSeason": "季",
|
||||
"LabelSelectAllEpisodes": "選擇所有劇集",
|
||||
"LabelSelectEpisodesShowing": "選擇正在播放的 {0} 劇集",
|
||||
"LabelSelectUsers": "Select users",
|
||||
"LabelSendEbookToDevice": "發送電子書到...",
|
||||
"LabelSequence": "序列",
|
||||
"LabelSeries": "系列",
|
||||
"LabelSeriesName": "系列名稱",
|
||||
"LabelSeriesProgress": "系列進度",
|
||||
"LabelServerYearReview": "伺服器年度回顧 ({0})",
|
||||
"LabelSetEbookAsPrimary": "設定為主",
|
||||
"LabelSetEbookAsSupplementary": "設定為補充",
|
||||
"LabelSettingsAudiobooksOnly": "僅有聲書",
|
||||
"LabelSettingsAudiobooksOnlyHelp": "啟用此設定將忽略電子書檔, 除非它們位於有聲書資料夾中, 在這種情況下, 它們將被設定為補充電子書",
|
||||
"LabelSettingsBookshelfViewHelp": "帶有木架子的擬物化設計",
|
||||
"LabelSettingsChromecastSupport": "Chromecast 支援",
|
||||
"LabelSettingsDateFormat": "日期格式",
|
||||
"LabelSettingsDisableWatcher": "禁用監視程序",
|
||||
"LabelSettingsDisableWatcherForLibrary": "禁用媒體庫的資料夾監視程序",
|
||||
"LabelSettingsDisableWatcherHelp": "檢測到檔案更改時禁用自動新增和更新項目. *需要重啟伺服器",
|
||||
"LabelSettingsEnableWatcher": "啟用監視程序",
|
||||
"LabelSettingsEnableWatcherForLibrary": "為庫啟用資料夾監視程序",
|
||||
"LabelSettingsEnableWatcherHelp": "當檢測到檔案更改時, 啟用項目的自動新增/更新. *需要重新啟動伺服器",
|
||||
"LabelSettingsExperimentalFeatures": "實驗功能",
|
||||
"LabelSettingsExperimentalFeaturesHelp": "開發中的功能需要你的反饋並幫助測試. 點擊打開 github 討論.",
|
||||
"LabelSettingsFindCovers": "查找封面",
|
||||
"LabelSettingsFindCoversHelp": "如果你的有聲書在資料夾中沒有嵌入封面或封面圖像, 掃描將嘗試查找封面.<br>注意: 這將延長掃描時間",
|
||||
"LabelSettingsHideSingleBookSeries": "隱藏單書系列",
|
||||
"LabelSettingsHideSingleBookSeriesHelp": "只有一本書的系列將從系列頁面和主頁書架中隱藏.",
|
||||
"LabelSettingsHomePageBookshelfView": "首頁使用書架視圖",
|
||||
"LabelSettingsLibraryBookshelfView": "媒體庫使用書架視圖",
|
||||
"LabelSettingsOnlyShowLaterBooksInContinueSeries": "Skip earlier books in Continue Series",
|
||||
"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": "解析副標題",
|
||||
"LabelSettingsParseSubtitlesHelp": "從有聲書資料夾中提取副標題.<br>副標題必須用 \" - \" 分隔.<br>例: \"書名 - 這裡是副標題\" 則顯示副標題 \"這裡是副標題\"",
|
||||
"LabelSettingsPreferMatchedMetadata": "首選匹配的元數據",
|
||||
"LabelSettingsPreferMatchedMetadataHelp": "使用快速匹配時, 匹配的數據將覆蓋項目詳細信息. 預設情況下, 快速匹配將只填充缺少的詳細信息.",
|
||||
"LabelSettingsSkipMatchingBooksWithASIN": "跳過匹配已有 ASIN 的圖書",
|
||||
"LabelSettingsSkipMatchingBooksWithISBN": "跳過匹配已有 ISBN 的圖書",
|
||||
"LabelSettingsSortingIgnorePrefixes": "排序時忽略前綴",
|
||||
"LabelSettingsSortingIgnorePrefixesHelp": "例如: 前綴為 \"The\" 的圖書標題 \"The Book Title\" 將按 \"Book Title, The\" 進行排序",
|
||||
"LabelSettingsSquareBookCovers": "使用者方形圖書封面",
|
||||
"LabelSettingsSquareBookCoversHelp": "比起標準的 1.6:1 圖書封面,更喜歡使用方形封面",
|
||||
"LabelSettingsStoreCoversWithItem": "存儲項目封面",
|
||||
"LabelSettingsStoreCoversWithItemHelp": "預設情況下封面存儲在/metadata/items資料夾中, 啟用此設定將存儲封面在你媒體項目資料夾中. 只保留一個名為 \"cover\" 的檔案",
|
||||
"LabelSettingsStoreMetadataWithItem": "存儲項目元數據",
|
||||
"LabelSettingsStoreMetadataWithItemHelp": "預設情況下元數據檔案存儲在/metadata/items資料夾中, 啟用此設定將存儲元數據在你媒體項目資料夾中",
|
||||
"LabelSettingsTimeFormat": "時間格式",
|
||||
"LabelShowAll": "全部顯示",
|
||||
"LabelSize": "檔案大小",
|
||||
"LabelSleepTimer": "睡眠定時",
|
||||
"LabelSlug": "Slug",
|
||||
"LabelStart": "開始",
|
||||
"LabelStarted": "開始於",
|
||||
"LabelStartedAt": "從這開始",
|
||||
"LabelStartTime": "開始時間",
|
||||
"LabelStatsAudioTracks": "音軌",
|
||||
"LabelStatsAuthors": "作者",
|
||||
"LabelStatsBestDay": "最好的一天",
|
||||
"LabelStatsDailyAverage": "每日平均值",
|
||||
"LabelStatsDays": "天",
|
||||
"LabelStatsDaysListened": "收聽天數",
|
||||
"LabelStatsHours": "小時",
|
||||
"LabelStatsInARow": "在一行",
|
||||
"LabelStatsItemsFinished": "已完成的項目",
|
||||
"LabelStatsItemsInLibrary": "媒體庫中的項目",
|
||||
"LabelStatsMinutes": "分鐘",
|
||||
"LabelStatsMinutesListening": "收聽分鐘數",
|
||||
"LabelStatsOverallDays": "總計天數",
|
||||
"LabelStatsOverallHours": "總計小時",
|
||||
"LabelStatsWeekListening": "每周收聽",
|
||||
"LabelSubtitle": "副標題",
|
||||
"LabelSupportedFileTypes": "支援的檔案類型",
|
||||
"LabelTag": "標籤",
|
||||
"LabelTags": "標籤",
|
||||
"LabelTagsAccessibleToUser": "使用者可存取的標籤",
|
||||
"LabelTagsNotAccessibleToUser": "使用者無法存取標籤",
|
||||
"LabelTasks": "正在運行的任務",
|
||||
"LabelTextEditorBulletedList": "項目符號列表",
|
||||
"LabelTextEditorLink": "Link",
|
||||
"LabelTextEditorNumberedList": "編號列表",
|
||||
"LabelTextEditorUnlink": "取消連結",
|
||||
"LabelTheme": "主題",
|
||||
"LabelThemeDark": "黑暗",
|
||||
"LabelThemeLight": "明亮",
|
||||
"LabelTimeBase": "時間基準",
|
||||
"LabelTimeListened": "收聽時間",
|
||||
"LabelTimeListenedToday": "今日收聽的時間",
|
||||
"LabelTimeRemaining": "剩餘 {0}",
|
||||
"LabelTimeToShift": "快速調整時間以秒為單位",
|
||||
"LabelTitle": "標題",
|
||||
"LabelToolsEmbedMetadata": "嵌入元數據",
|
||||
"LabelToolsEmbedMetadataDescription": "將元數據嵌入音頻檔案, 包括封面圖像和章節.",
|
||||
"LabelToolsMakeM4b": "制作 M4B 有聲書檔案",
|
||||
"LabelToolsMakeM4bDescription": "生成帶有嵌入元數據, 封面圖像和章節的 .M4B 有聲書檔.",
|
||||
"LabelToolsSplitM4b": "將 M4B 檔拆分為 MP3 檔",
|
||||
"LabelToolsSplitM4bDescription": "從 M4B 檔創建 MP3 檔, 按章節分割, 並嵌入元數據, 封面圖像和章節.",
|
||||
"LabelTotalDuration": "總持續時間",
|
||||
"LabelTotalTimeListened": "總收聽時間",
|
||||
"LabelTrackFromFilename": "從檔案名獲取音軌",
|
||||
"LabelTrackFromMetadata": "從源數據獲取音軌",
|
||||
"LabelTracks": "音軌",
|
||||
"LabelTracksMultiTrack": "多軌",
|
||||
"LabelTracksNone": "沒有音軌",
|
||||
"LabelTracksSingleTrack": "單軌",
|
||||
"LabelType": "類型",
|
||||
"LabelUnabridged": "未刪節",
|
||||
"LabelUndo": "Undo",
|
||||
"LabelUnknown": "未知",
|
||||
"LabelUpdateCover": "更新封面",
|
||||
"LabelUpdateCoverHelp": "找到匹配項時允許覆蓋所選書籍存在的封面",
|
||||
"LabelUpdatedAt": "更新時間",
|
||||
"LabelUpdateDetails": "更新詳細信息",
|
||||
"LabelUpdateDetailsHelp": "找到匹配項時允許覆蓋所選書籍存在的詳細信息",
|
||||
"LabelUploaderDragAndDrop": "拖放檔案或資料夾",
|
||||
"LabelUploaderDropFiles": "刪除檔案",
|
||||
"LabelUploaderItemFetchMetadataHelp": "自動獲取標題, 作者和系列",
|
||||
"LabelUseChapterTrack": "使用章節音軌",
|
||||
"LabelUseFullTrack": "使用完整音軌",
|
||||
"LabelUser": "使用者",
|
||||
"LabelUsername": "使用者名",
|
||||
"LabelValue": "值",
|
||||
"LabelVersion": "版本",
|
||||
"LabelViewBookmarks": "查看書籤",
|
||||
"LabelViewChapters": "查看章節",
|
||||
"LabelViewQueue": "查看播放列表",
|
||||
"LabelVolume": "音量",
|
||||
"LabelWeekdaysToRun": "工作日運行",
|
||||
"LabelYearReviewHide": "隱藏年度回顧",
|
||||
"LabelYearReviewShow": "顯示年度回顧",
|
||||
"LabelYourAudiobookDuration": "你的有聲書持續時間",
|
||||
"LabelYourBookmarks": "你的書籤",
|
||||
"LabelYourPlaylists": "你的播放列表",
|
||||
"LabelYourProgress": "你的進度",
|
||||
"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>.",
|
||||
"MessageBackupsDescription": "備份包括使用者, 使用者進度, 媒體庫項目詳細信息, 伺服器設定和圖像, 存儲在 <code>/metadata/items</code> & <code>/metadata/authors</code>. 備份不包括存儲在您的媒體庫資料夾中的任何檔案.",
|
||||
"MessageBatchQuickMatchDescription": "快速匹配將嘗試為所選項目新增缺少的封面和元數據. 啟用以下選項以允許快速匹配覆蓋現有封面和或元數據.",
|
||||
"MessageBookshelfNoCollections": "你尚未進行任何收藏",
|
||||
"MessageBookshelfNoResultsForFilter": "過濾器無結果 \"{0}: {1}\"",
|
||||
"MessageBookshelfNoRSSFeeds": "沒有打開的 RSS 源",
|
||||
"MessageBookshelfNoSeries": "你沒有系列",
|
||||
"MessageChapterEndIsAfter": "章節結束是在有聲書結束之後",
|
||||
"MessageChapterErrorFirstNotZero": "第一章節必須從 0 開始",
|
||||
"MessageChapterErrorStartGteDuration": "無效的開始時間, 必須小於有聲書持續時間",
|
||||
"MessageChapterErrorStartLtPrev": "無效的開始時間, 必須大於或等於上一章節的開始時間",
|
||||
"MessageChapterStartIsAfter": "章節開始是在有聲書結束之後",
|
||||
"MessageCheckingCron": "檢查計劃任務...",
|
||||
"MessageConfirmCloseFeed": "你確定要關閉此訂閱源嗎?",
|
||||
"MessageConfirmDeleteBackup": "你確定要刪除備份 {0}?",
|
||||
"MessageConfirmDeleteFile": "這將從檔案系統中刪除該檔案. 你確定嗎?",
|
||||
"MessageConfirmDeleteLibrary": "你確定要永久刪除媒體庫 \"{0}\"?",
|
||||
"MessageConfirmDeleteLibraryItem": "這將從資料庫和檔案系統中刪除庫項目. 你確定嗎?",
|
||||
"MessageConfirmDeleteLibraryItems": "這將從資料庫和檔案系統中刪除 {0} 個庫項目. 你確定嗎?",
|
||||
"MessageConfirmDeleteSession": "你確定要刪除此會話嗎?",
|
||||
"MessageConfirmForceReScan": "你確定要強制重新掃描嗎?",
|
||||
"MessageConfirmMarkAllEpisodesFinished": "你確定要將所有劇集都標記為已完成嗎?",
|
||||
"MessageConfirmMarkAllEpisodesNotFinished": "你確定要將所有劇集都標記為未完成嗎?",
|
||||
"MessageConfirmMarkSeriesFinished": "你確定要將此系列中的所有書籍都標記為已聽完嗎?",
|
||||
"MessageConfirmMarkSeriesNotFinished": "你確定要將此系列中的所有書籍都標記為未聽完嗎?",
|
||||
"MessageConfirmQuickEmbed": "警告! 快速嵌入不會備份你的音頻檔案. 確保你有音頻檔案的備份. <br><br>你是否想繼續嗎?",
|
||||
"MessageConfirmRemoveAllChapters": "你確定要移除所有章節嗎?",
|
||||
"MessageConfirmRemoveAuthor": "你確定要刪除作者 \"{0}\"?",
|
||||
"MessageConfirmRemoveCollection": "你確定要移除收藏 \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisode": "你確定要移除劇集 \"{0}\"?",
|
||||
"MessageConfirmRemoveEpisodes": "你確定要移除 {0} 劇集?",
|
||||
"MessageConfirmRemoveListeningSessions": "你確定要移除 {0} 收聽會話嗎?",
|
||||
"MessageConfirmRemoveNarrator": "你確定要刪除演播者 \"{0}\"?",
|
||||
"MessageConfirmRemovePlaylist": "你確定要移除播放列表 \"{0}\"?",
|
||||
"MessageConfirmRenameGenre": "你確定要將所有項目流派 \"{0}\" 重命名到 \"{1}\"?",
|
||||
"MessageConfirmRenameGenreMergeNote": "注意: 該流派已經存在, 因此它們將被合併.",
|
||||
"MessageConfirmRenameGenreWarning": "警告! 已經存在有大小寫不同的類似流派 \"{0}\".",
|
||||
"MessageConfirmRenameTag": "你確定要將所有項目標籤 \"{0}\" 重命名到 \"{1}\"?",
|
||||
"MessageConfirmRenameTagMergeNote": "注意: 該標籤已經存在, 因此它們將被合併.",
|
||||
"MessageConfirmRenameTagWarning": "警告! 已經存在有大小寫不同的類似標籤 \"{0}\".",
|
||||
"MessageConfirmReScanLibraryItems": "你確定要重新掃描 {0} 個項目嗎?",
|
||||
"MessageConfirmSendEbookToDevice": "你確定要發送 {0} 電子書 \"{1}\" 到設備 \"{2}\"?",
|
||||
"MessageDownloadingEpisode": "正在下載劇集",
|
||||
"MessageDragFilesIntoTrackOrder": "將檔案拖動到正確的音軌順序",
|
||||
"MessageEmbedFinished": "嵌入完成!",
|
||||
"MessageEpisodesQueuedForDownload": "{0} 個劇集排隊等待下載",
|
||||
"MessageFeedURLWillBe": "源 URL 將改為 {0}",
|
||||
"MessageFetching": "正在獲取...",
|
||||
"MessageForceReScanDescription": "將像重新掃描一樣再次掃描所有檔案. 音頻檔 ID3 標籤, OPF 檔和文本檔將被掃描為新檔案.",
|
||||
"MessageImportantNotice": "重要通知!",
|
||||
"MessageInsertChapterBelow": "在下面插入章節",
|
||||
"MessageItemsSelected": "已選定 {0} 個項目",
|
||||
"MessageItemsUpdated": "已更新 {0} 個項目",
|
||||
"MessageJoinUsOn": "加入我們",
|
||||
"MessageListeningSessionsInTheLastYear": "去年收聽 {0} 個會話",
|
||||
"MessageLoading": "讀取...",
|
||||
"MessageLoadingFolders": "讀取資料夾...",
|
||||
"MessageM4BFailed": "M4B 失敗!",
|
||||
"MessageM4BFinished": "M4B 完成!",
|
||||
"MessageMapChapterTitles": "將章節標題映射到現有的有聲書章節, 無需調整時間戳",
|
||||
"MessageMarkAllEpisodesFinished": "標記所有劇集為已完成",
|
||||
"MessageMarkAllEpisodesNotFinished": "標記所有劇集為未完成",
|
||||
"MessageMarkAsFinished": "標記為已聽完",
|
||||
"MessageMarkAsNotFinished": "標記為未聽完",
|
||||
"MessageMatchBooksDescription": "嘗試將媒體庫中的圖書與所選搜尋提供商的圖書進行匹配, 並填寫空白的詳細信息和封面. 不覆蓋詳細信息.",
|
||||
"MessageNoAudioTracks": "沒有音軌",
|
||||
"MessageNoAuthors": "沒有作者",
|
||||
"MessageNoBackups": "沒有備份",
|
||||
"MessageNoBookmarks": "沒有書籤",
|
||||
"MessageNoChapters": "沒有章節",
|
||||
"MessageNoCollections": "沒有收藏",
|
||||
"MessageNoCoversFound": "沒有找到封面",
|
||||
"MessageNoDescription": "沒有描述",
|
||||
"MessageNoDownloadsInProgress": "當前沒有正在進行的下載",
|
||||
"MessageNoDownloadsQueued": "下載佇列無任務",
|
||||
"MessageNoEpisodeMatchesFound": "沒有找到任何劇集匹配項",
|
||||
"MessageNoEpisodes": "沒有劇集",
|
||||
"MessageNoFoldersAvailable": "沒有可用資料夾",
|
||||
"MessageNoGenres": "無流派",
|
||||
"MessageNoIssues": "無問題",
|
||||
"MessageNoItems": "無項目",
|
||||
"MessageNoItemsFound": "未找到任何項目",
|
||||
"MessageNoListeningSessions": "無收聽會話",
|
||||
"MessageNoLogs": "無日誌",
|
||||
"MessageNoMediaProgress": "無媒體進度",
|
||||
"MessageNoNotifications": "無通知",
|
||||
"MessageNoPodcastsFound": "未找到播客",
|
||||
"MessageNoResults": "無結果",
|
||||
"MessageNoSearchResultsFor": "沒有搜尋到結果 \"{0}\"",
|
||||
"MessageNoSeries": "無系列",
|
||||
"MessageNoTags": "無標籤",
|
||||
"MessageNoTasksRunning": "沒有正在運行的任務",
|
||||
"MessageNotYetImplemented": "尚未實施",
|
||||
"MessageNoUpdateNecessary": "無需更新",
|
||||
"MessageNoUpdatesWereNecessary": "無需更新",
|
||||
"MessageNoUserPlaylists": "你沒有播放列表",
|
||||
"MessageOr": "或",
|
||||
"MessagePauseChapter": "暫停章節播放",
|
||||
"MessagePlayChapter": "開始章節播放",
|
||||
"MessagePlaylistCreateFromCollection": "從收藏中創建播放列表",
|
||||
"MessagePodcastHasNoRSSFeedForMatching": "播客沒有可用於匹配 RSS 源的 url",
|
||||
"MessageQuickMatchDescription": "使用來自 '{0}' 的第一個匹配結果填充空白詳細信息和封面. 除非啟用 '首選匹配元數據' 伺服器設定, 否則不會覆蓋詳細信息.",
|
||||
"MessageRemoveChapter": "移除章節",
|
||||
"MessageRemoveEpisodes": "移除 {0} 劇集",
|
||||
"MessageRemoveFromPlayerQueue": "從播放佇列中移除",
|
||||
"MessageRemoveUserWarning": "是否確實要永久刪除使用者 \"{0}\"?",
|
||||
"MessageReportBugsAndContribute": "報告錯誤、請求功能和貢獻在",
|
||||
"MessageResetChaptersConfirm": "你確定要重置章節並撤消你所做的更改嗎?",
|
||||
"MessageRestoreBackupConfirm": "你確定要恢復創建的這個備份",
|
||||
"MessageRestoreBackupWarning": "恢復備份將覆蓋位於 /config 的整個資料庫並覆蓋 /metadata/items & /metadata/authors 中的圖像.<br /><br />備份不會修改媒體庫資料夾中的任何檔案. 如果您已啟用伺服器設定將封面和元數據存儲在庫資料夾中,則不會備份或覆蓋這些內容.<br /><br />將自動刷新使用伺服器的所有客戶端.",
|
||||
"MessageSearchResultsFor": "搜尋結果",
|
||||
"MessageSelected": "{0} 被選取",
|
||||
"MessageServerCouldNotBeReached": "無法連接伺服器",
|
||||
"MessageSetChaptersFromTracksDescription": "把每個音頻檔設定為章節並將章節標題設定為音頻檔名",
|
||||
"MessageStartPlaybackAtTime": "開始播放 \"{0}\" 在 {1}?",
|
||||
"MessageThinking": "正在查找...",
|
||||
"MessageUploaderItemFailed": "上傳失敗",
|
||||
"MessageUploaderItemSuccess": "上傳成功!",
|
||||
"MessageUploading": "正在上傳...",
|
||||
"MessageValidCronExpression": "有效的計劃任務表達式",
|
||||
"MessageWatcherIsDisabledGlobally": "在伺服器設定中禁用全域監視程序",
|
||||
"MessageXLibraryIsEmpty": "{0} 庫為空!",
|
||||
"MessageYourAudiobookDurationIsLonger": "您的有聲書持續時間比找到的持續時間長",
|
||||
"MessageYourAudiobookDurationIsShorter": "您的有聲書持續時間比找到的持續時間短",
|
||||
"NoteChangeRootPassword": "Root 是唯一可以擁有空密碼的使用者",
|
||||
"NoteChapterEditorTimes": "注意: 第一章開始時間必須保持在 0:00, 最後一章開始時間不能超過有聲書持續時間.",
|
||||
"NoteFolderPicker": "注意: 將不顯示已映射的資料夾",
|
||||
"NoteRSSFeedPodcastAppsHttps": "警告: 大多數播客應用程序都需要 RSS 源 URL 使用 HTTPS",
|
||||
"NoteRSSFeedPodcastAppsPubDate": "警告: 您的一集或多集沒有發布日期. 一些播客應用程序要求這樣做.",
|
||||
"NoteUploaderFoldersWithMediaFiles": "包含媒體檔案的資料夾將作為單獨的媒體庫項目處理.",
|
||||
"NoteUploaderOnlyAudioFiles": "如果只上傳音頻檔, 則每個音頻檔將作為單獨的有聲書處理.",
|
||||
"NoteUploaderUnsupportedFiles": "不支援的檔案將被忽略. 選擇或刪除資料夾時, 將忽略不在項目資料夾中的其他檔案.",
|
||||
"PlaceholderNewCollection": "輸入收藏夾名稱",
|
||||
"PlaceholderNewFolderPath": "輸入資料夾路徑",
|
||||
"PlaceholderNewPlaylist": "輸入播放列表名稱",
|
||||
"PlaceholderSearch": "查找..",
|
||||
"PlaceholderSearchEpisode": "搜尋劇集..",
|
||||
"ToastAccountUpdateFailed": "帳號更新失敗",
|
||||
"ToastAccountUpdateSuccess": "帳號已更新",
|
||||
"ToastAuthorImageRemoveFailed": "作者圖像刪除失敗",
|
||||
"ToastAuthorImageRemoveSuccess": "作者圖像已刪除",
|
||||
"ToastAuthorUpdateFailed": "作者更新失敗",
|
||||
"ToastAuthorUpdateMerged": "作者已合併",
|
||||
"ToastAuthorUpdateSuccess": "作者已更新",
|
||||
"ToastAuthorUpdateSuccessNoImageFound": "作者已更新 (未找到圖像)",
|
||||
"ToastBackupCreateFailed": "備份創建失敗",
|
||||
"ToastBackupCreateSuccess": "備份已創建",
|
||||
"ToastBackupDeleteFailed": "備份刪除失敗",
|
||||
"ToastBackupDeleteSuccess": "備份已刪除",
|
||||
"ToastBackupRestoreFailed": "備份還原失敗",
|
||||
"ToastBackupUploadFailed": "上傳備份失敗",
|
||||
"ToastBackupUploadSuccess": "備份已上傳",
|
||||
"ToastBatchUpdateFailed": "批量更新失敗",
|
||||
"ToastBatchUpdateSuccess": "批量更新成功",
|
||||
"ToastBookmarkCreateFailed": "創建書籤失敗",
|
||||
"ToastBookmarkCreateSuccess": "書籤已新增",
|
||||
"ToastBookmarkRemoveFailed": "書籤刪除失敗",
|
||||
"ToastBookmarkRemoveSuccess": "書籤已刪除",
|
||||
"ToastBookmarkUpdateFailed": "書籤更新失敗",
|
||||
"ToastBookmarkUpdateSuccess": "書籤已更新",
|
||||
"ToastChaptersHaveErrors": "章節有錯誤",
|
||||
"ToastChaptersMustHaveTitles": "章節必須有標題",
|
||||
"ToastCollectionItemsRemoveFailed": "從收藏夾移除項目失敗",
|
||||
"ToastCollectionItemsRemoveSuccess": "項目從收藏夾移除",
|
||||
"ToastCollectionRemoveFailed": "刪除收藏夾失敗",
|
||||
"ToastCollectionRemoveSuccess": "收藏夾已刪除",
|
||||
"ToastCollectionUpdateFailed": "更新收藏夾失敗",
|
||||
"ToastCollectionUpdateSuccess": "收藏夾已更新",
|
||||
"ToastItemCoverUpdateFailed": "更新項目封面失敗",
|
||||
"ToastItemCoverUpdateSuccess": "項目封面已更新",
|
||||
"ToastItemDetailsUpdateFailed": "更新項目詳細信息失敗",
|
||||
"ToastItemDetailsUpdateSuccess": "項目詳細信息已更新",
|
||||
"ToastItemDetailsUpdateUnneeded": "項目詳細信息無需更新",
|
||||
"ToastItemMarkedAsFinishedFailed": "標記為聽完失敗",
|
||||
"ToastItemMarkedAsFinishedSuccess": "標記為聽完的項目",
|
||||
"ToastItemMarkedAsNotFinishedFailed": "標記為未聽完失敗",
|
||||
"ToastItemMarkedAsNotFinishedSuccess": "標記為未聽完的項目",
|
||||
"ToastLibraryCreateFailed": "創建媒體庫失敗",
|
||||
"ToastLibraryCreateSuccess": "媒體庫 \"{0}\" 創建成功",
|
||||
"ToastLibraryDeleteFailed": "刪除媒體庫失敗",
|
||||
"ToastLibraryDeleteSuccess": "媒體庫已刪除",
|
||||
"ToastLibraryScanFailedToStart": "無法啟動掃描",
|
||||
"ToastLibraryScanStarted": "媒體庫掃描已啟動",
|
||||
"ToastLibraryUpdateFailed": "更新圖書庫失敗",
|
||||
"ToastLibraryUpdateSuccess": "媒體庫 \"{0}\" 已更新",
|
||||
"ToastPlaylistCreateFailed": "創建播放列表失敗",
|
||||
"ToastPlaylistCreateSuccess": "已成功創建播放列表",
|
||||
"ToastPlaylistRemoveFailed": "刪除播放列表失敗",
|
||||
"ToastPlaylistRemoveSuccess": "播放列表已刪除",
|
||||
"ToastPlaylistUpdateFailed": "更新播放列表失敗",
|
||||
"ToastPlaylistUpdateSuccess": "播放列表已更新",
|
||||
"ToastPodcastCreateFailed": "創建播客失敗",
|
||||
"ToastPodcastCreateSuccess": "已成功創建播客",
|
||||
"ToastRemoveItemFromCollectionFailed": "從收藏中刪除項目失敗",
|
||||
"ToastRemoveItemFromCollectionSuccess": "項目已從收藏中刪除",
|
||||
"ToastRSSFeedCloseFailed": "關閉 RSS 源失敗",
|
||||
"ToastRSSFeedCloseSuccess": "RSS 源已關閉",
|
||||
"ToastSendEbookToDeviceFailed": "發送電子書到設備失敗",
|
||||
"ToastSendEbookToDeviceSuccess": "電子書已經發送到設備 \"{0}\"",
|
||||
"ToastSeriesUpdateFailed": "更新系列失敗",
|
||||
"ToastSeriesUpdateSuccess": "系列已更新",
|
||||
"ToastSessionDeleteFailed": "刪除會話失敗",
|
||||
"ToastSessionDeleteSuccess": "會話已刪除",
|
||||
"ToastSocketConnected": "網路已連接",
|
||||
"ToastSocketDisconnected": "網路已斷開",
|
||||
"ToastSocketFailedToConnect": "網路連接失敗",
|
||||
"ToastUserDeleteFailed": "刪除使用者失敗",
|
||||
"ToastUserDeleteSuccess": "使用者已刪除"
|
||||
}
|
||||
@@ -86,7 +86,8 @@ module.exports = {
|
||||
fontSize: {
|
||||
xxs: '0.625rem',
|
||||
'1.5xl': '1.375rem',
|
||||
'2.5xl': '1.6875rem'
|
||||
'2.5xl': '1.6875rem',
|
||||
'4.5xl': '2.625rem'
|
||||
},
|
||||
zIndex: {
|
||||
'50': 50,
|
||||
|
||||
30
docs/README.md
Normal file
30
docs/README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# OpenAPI specification
|
||||
|
||||
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 linted and bundled by the [`vacuum` tool](https://quobix.com/vacuum/).
|
||||
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/).
|
||||
|
||||
### 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.
|
||||
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`.
|
||||
|
||||
### Viewing report
|
||||
To generate an HTML report, you can use `vacuum html-report [file]` to generate `report.html` and view the report in your browser.
|
||||
|
||||
### Putting it all together
|
||||
The full command that I run to bundle the spec and generate the report is:
|
||||
|
||||
```
|
||||
vacuum bundle root.yaml openapi.yaml && \
|
||||
yq -p yaml -o json openapi.yaml > openapi.json && \
|
||||
vacuum html-report openapi.json
|
||||
```
|
||||
139
docs/controllers/AuthorController.yaml
Normal file
139
docs/controllers/AuthorController.yaml
Normal file
@@ -0,0 +1,139 @@
|
||||
components:
|
||||
schemas:
|
||||
authorUpdated:
|
||||
description: Whether the author was updated without errors. Will not exist if author was merged.
|
||||
type: boolean
|
||||
nullable: true
|
||||
parameters:
|
||||
authorId:
|
||||
name: id
|
||||
in: path
|
||||
description: Author ID
|
||||
required: true
|
||||
schema:
|
||||
$ref: '../objects/entities/Author.yaml#/components/schemas/authorId'
|
||||
authorInclude:
|
||||
name: include
|
||||
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
|
||||
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:
|
||||
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'
|
||||
asin:
|
||||
name: asin
|
||||
in: query
|
||||
description: The Audible Identifier (ASIN).
|
||||
required: false
|
||||
schema:
|
||||
$ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin'
|
||||
authorSearchName:
|
||||
name: q
|
||||
in: query
|
||||
description: The name of the author to use for searching.
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
example: Terry Goodkind
|
||||
authorName:
|
||||
name: name
|
||||
in: query
|
||||
description: The new name of the author.
|
||||
required: false
|
||||
schema:
|
||||
$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:
|
||||
name: url
|
||||
in: query
|
||||
description: The URL of the image to add to the server
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
format: uri
|
||||
example: https://images-na.ssl-images-amazon.com/images/I/51NoQTm33OL.__01_SX120_CR0,0,120,120__.jpg
|
||||
imageWidth:
|
||||
name: width
|
||||
in: query
|
||||
description: The requested width of image in pixels.
|
||||
schema:
|
||||
type: integer
|
||||
default: 400
|
||||
example: 400
|
||||
example: 400
|
||||
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.
|
||||
schema:
|
||||
type: integer
|
||||
nullable: true
|
||||
default: null
|
||||
example: 600
|
||||
examples:
|
||||
scaleHeight:
|
||||
summary: Scale height with width
|
||||
value: null
|
||||
fixedHeight:
|
||||
summary: Force height of image
|
||||
value: 600
|
||||
imageFormat:
|
||||
name: format
|
||||
in: query
|
||||
description: The requested output format.
|
||||
schema:
|
||||
type: string
|
||||
default: jpeg
|
||||
example: webp
|
||||
imageRaw:
|
||||
name: raw
|
||||
in: query
|
||||
description: Return the raw image without scaling if true.
|
||||
schema:
|
||||
type: boolean
|
||||
default: false
|
||||
responses:
|
||||
author404:
|
||||
description: Author not found.
|
||||
content:
|
||||
text/html:
|
||||
schema:
|
||||
type: string
|
||||
example: Not found
|
||||
tags:
|
||||
- name: Authors
|
||||
description: Author endpoints
|
||||
21
docs/objects/Folder.yaml
Normal file
21
docs/objects/Folder.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
components:
|
||||
schemas:
|
||||
folderId:
|
||||
type: string
|
||||
description: The ID of the folder.
|
||||
format: uuid
|
||||
example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
|
||||
folder:
|
||||
type: object
|
||||
description: Folder used in library
|
||||
properties:
|
||||
id:
|
||||
$ref: '#/components/schemas/folderId'
|
||||
fullPath:
|
||||
description: The path on the server for the folder. (Read Only)
|
||||
type: string
|
||||
example: /podcasts
|
||||
libraryId:
|
||||
$ref: './Library.yaml#/components/schemas/libraryId'
|
||||
addedAt:
|
||||
$ref: '../schemas.yaml#/components/schemas/addedAt'
|
||||
12
docs/objects/Library.yaml
Normal file
12
docs/objects/Library.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
components:
|
||||
schemas:
|
||||
oldLibraryId:
|
||||
type: string
|
||||
description: The ID of the libraries created on server version 2.2.23 and before.
|
||||
format: "lib_[a-z0-9]{18}"
|
||||
example: lib_o78uaoeuh78h6aoeif
|
||||
libraryId:
|
||||
type: string
|
||||
description: The ID of the library.
|
||||
format: uuid
|
||||
example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
|
||||
66
docs/objects/LibraryItem.yaml
Normal file
66
docs/objects/LibraryItem.yaml
Normal file
@@ -0,0 +1,66 @@
|
||||
components:
|
||||
schemas:
|
||||
oldLibraryItemId:
|
||||
description: The ID of library items on server version 2.2.23 and before.
|
||||
type: string
|
||||
nullable: true
|
||||
format: "li_[a-z0-9]{18}"
|
||||
example: li_o78uaoeuh78h6aoeif
|
||||
libraryItemId:
|
||||
type: string
|
||||
description: The ID of library items after 2.3.0.
|
||||
format: uuid
|
||||
example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
|
||||
libraryItemBase:
|
||||
type: object
|
||||
description: Base library item schema
|
||||
properties:
|
||||
id:
|
||||
$ref: '#/components/schemas/libraryItemId'
|
||||
oldLibraryItemId:
|
||||
$ref: '#/components/schemas/oldLibraryItemId'
|
||||
ino:
|
||||
$ref: '../schemas.yaml#/components/schemas/inode'
|
||||
libraryId:
|
||||
$ref: './Library.yaml#/components/schemas/libraryId'
|
||||
folderId:
|
||||
$ref: './Folder.yaml#/components/schemas/folderId'
|
||||
path:
|
||||
description: The path of the library item on the server.
|
||||
type: string
|
||||
relPath:
|
||||
description: The path, relative to the library folder, of the library item.
|
||||
type: string
|
||||
isFile:
|
||||
description: Whether the library item is a single file in the root of the library folder.
|
||||
type: boolean
|
||||
mtimeMs:
|
||||
description: The time (in ms since POSIX epoch) when the library item was last modified on disk.
|
||||
type: integer
|
||||
ctimeMs:
|
||||
description: The time (in ms since POSIX epoch) when the library item status was changed on disk.
|
||||
type: integer
|
||||
birthtimeMs:
|
||||
description: The time (in ms since POSIX epoch) when the library item was created on disk. Will be 0 if unknown.
|
||||
type: integer
|
||||
addedAt:
|
||||
$ref: '../schemas.yaml#/components/schemas/addedAt'
|
||||
updatedAt:
|
||||
$ref: '../schemas.yaml#/components/schemas/updatedAt'
|
||||
isMissing:
|
||||
description: Whether the library item was scanned and no longer exists.
|
||||
type: boolean
|
||||
isInvalid:
|
||||
description: Whether the library item was scanned and no longer has media files.
|
||||
type: boolean
|
||||
mediaType:
|
||||
$ref: './mediaTypes/media.yaml#/components/schemas/mediaType'
|
||||
libraryItemMinified:
|
||||
type: object
|
||||
description: A single item on the server, like a book or podcast. Minified media format.
|
||||
allOf:
|
||||
- $ref : '#/components/schemas/libraryItemBase'
|
||||
- type: object
|
||||
properties:
|
||||
media:
|
||||
$ref: './mediaTypes/media.yaml#/components/schemas/mediaMinified'
|
||||
104
docs/objects/entities/Author.yaml
Normal file
104
docs/objects/entities/Author.yaml
Normal file
@@ -0,0 +1,104 @@
|
||||
components:
|
||||
schemas:
|
||||
authorId:
|
||||
type: string
|
||||
description: The ID of the author.
|
||||
format: uuid
|
||||
example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
|
||||
authorAsin:
|
||||
type: string
|
||||
description: The Audible identifier (ASIN) of the author. Will be null if unknown. Not the Amazon identifier.
|
||||
nullable: true
|
||||
example: B000APZOQA
|
||||
authorName:
|
||||
description: The name of the author.
|
||||
type: string
|
||||
example: Terry Goodkind
|
||||
authorSeries:
|
||||
type: object
|
||||
description: Series and the included library items that an author has written.
|
||||
properties:
|
||||
id:
|
||||
$ref: './Series.yaml#/components/schemas/seriesId'
|
||||
name:
|
||||
$ref: './Series.yaml#/components/schemas/seriesName'
|
||||
items:
|
||||
description: The items in the series. Each library item's media's metadata will have a `series` attribute, a `Series Sequence`, which is the matching series.
|
||||
type: array
|
||||
items:
|
||||
ref: '../LibraryItem.yaml#/components/schemas/libraryItemMinified'
|
||||
author:
|
||||
description: An author object which includes a description and image path.
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
$ref: '#/components/schemas/authorId'
|
||||
asin:
|
||||
$ref: '#/components/schemas/authorAsin'
|
||||
name:
|
||||
$ref: '#/components/schemas/authorName'
|
||||
description:
|
||||
description: A description of the author. Will be null if there is none.
|
||||
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. Terry Goodkind's
|
||||
brilliant books are character-driven stories, with a focus on the complexity of the human psyche. Goodkind
|
||||
has an uncanny grasp for crafting compelling stories about people like you and me, trapped in terrifying
|
||||
situations.
|
||||
imagePath:
|
||||
description: The absolute path for the author image located in the `metadata/` directory. Will be null if there is no image.
|
||||
type: string
|
||||
nullable: true
|
||||
example: /metadata/authors/aut_bxxbyjiptmgb56yzoz.jpg
|
||||
addedAt:
|
||||
$ref: '../../schemas.yaml#/components/schemas/addedAt'
|
||||
updatedAt:
|
||||
$ref: '../../schemas.yaml#/components/schemas/updatedAt'
|
||||
authorWithItems:
|
||||
type: object
|
||||
description: The author schema with an array of items they are associated with.
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/author'
|
||||
- type: object
|
||||
properties:
|
||||
libraryItems:
|
||||
description: The items associated with the author
|
||||
type: string
|
||||
type: array
|
||||
items:
|
||||
$ref: '../LibraryItem.yaml#/components/schemas/libraryItemMinified'
|
||||
authorWithSeries:
|
||||
type: object
|
||||
description: The author schema with an array of items and series they are associated with.
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/authorWithItems'
|
||||
- type: object
|
||||
properties:
|
||||
series:
|
||||
description: The series associated with the author
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/authorSeries'
|
||||
authorMinified:
|
||||
type: object
|
||||
description: Minified author object which only contains the author name and ID.
|
||||
properties:
|
||||
id:
|
||||
$ref: '#/components/schemas/authorId'
|
||||
name:
|
||||
$ref: '#/components/schemas/authorName'
|
||||
authorExpanded:
|
||||
type: object
|
||||
description: The author schema with the total number of books in the library.
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/author'
|
||||
- type: object
|
||||
properties:
|
||||
numBooks:
|
||||
description: The number of books associated with the author in the library.
|
||||
type: integer
|
||||
example: 1
|
||||
11
docs/objects/entities/Series.yaml
Normal file
11
docs/objects/entities/Series.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
components:
|
||||
schemas:
|
||||
seriesId:
|
||||
type: string
|
||||
description: The ID of the series.
|
||||
format: uuid
|
||||
example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
|
||||
seriesName:
|
||||
description: The name of the series.
|
||||
type: string
|
||||
example: Sword of Truth
|
||||
94
docs/objects/files/AudioFile.yaml
Normal file
94
docs/objects/files/AudioFile.yaml
Normal file
@@ -0,0 +1,94 @@
|
||||
components:
|
||||
schemas:
|
||||
audioFile:
|
||||
type: object
|
||||
description: An audio file for a book. Includes audio metadata and track numbers.
|
||||
properties:
|
||||
index:
|
||||
description: The index of the audio file.
|
||||
type: integer
|
||||
example: 1
|
||||
ino:
|
||||
$ref: '../../schemas.yaml#/components/schemas/inode'
|
||||
metadata:
|
||||
$ref: '../metadata/FileMetadata.yaml#/components/schemas/fileMetadata'
|
||||
addedAt:
|
||||
$ref: '../../schemas.yaml#/components/schemas/addedAt'
|
||||
updatedAt:
|
||||
$ref: '../../schemas.yaml#/components/schemas/updatedAt'
|
||||
trackNumFromMeta:
|
||||
description: The track number of the audio file as pulled from the file's metadata. Will be null if unknown.
|
||||
type: integer
|
||||
nullable: true
|
||||
example: 1
|
||||
discNumFromMeta:
|
||||
description: The disc number of the audio file as pulled from the file's metadata. Will be null if unknown.
|
||||
type: string
|
||||
nullable: true
|
||||
trackNumFromFilename:
|
||||
description: The track number of the audio file as determined from the file's name. Will be null if unknown.
|
||||
type: integer
|
||||
nullable: true
|
||||
example: 1
|
||||
discNumFromFilename:
|
||||
description: The disc number of the audio file as determined from the file's name. Will be null if unknown.
|
||||
type: string
|
||||
nullable: true
|
||||
manuallyVerified:
|
||||
description: Whether the audio file has been manually verified by a user.
|
||||
type: boolean
|
||||
invalid:
|
||||
description: Whether the audio file is missing from the server.
|
||||
type: boolean
|
||||
exclude:
|
||||
description: Whether the audio file has been marked for exclusion.
|
||||
type: boolean
|
||||
error:
|
||||
description: Any error with the audio file. Will be null if there is none.
|
||||
type: string
|
||||
nullable: true
|
||||
format:
|
||||
description: The format of the audio file.
|
||||
type: string
|
||||
example: MP2/3 (MPEG audio layer 2/3)
|
||||
duration:
|
||||
$ref: '#/components/schemas/durationSec'
|
||||
bitRate:
|
||||
description: The bit rate (in bit/s) of the audio file.
|
||||
type: integer
|
||||
example: 64000
|
||||
language:
|
||||
description: The language of the audio file.
|
||||
type: string
|
||||
nullable: true
|
||||
codec:
|
||||
description: The codec of the audio file.
|
||||
type: string
|
||||
example: mp3
|
||||
timeBase:
|
||||
description: The time base of the audio file.
|
||||
type: string
|
||||
example: 1/14112000
|
||||
channels:
|
||||
description: The number of channels the audio file has.
|
||||
type: integer
|
||||
example: 2
|
||||
channelLayout:
|
||||
description: The layout of the audio file's channels.
|
||||
type: string
|
||||
example: stereo
|
||||
chapters:
|
||||
description: If the audio file is part of an audiobook, the chapters the file contains.
|
||||
type: array
|
||||
items:
|
||||
$ref: '../metadata/BookMetadata.yaml#/components/schemas/bookChapter'
|
||||
embeddedCoverArt:
|
||||
description: The type of embedded cover art in the audio file. Will be null if none exists.
|
||||
type: string
|
||||
nullable: true
|
||||
metaTags:
|
||||
$ref: '../metadata/AudioMetaTags.yaml#/components/schemas/audioMetaTags'
|
||||
mimeType:
|
||||
description: The MIME type of the audio file.
|
||||
type: string
|
||||
example: audio/mpeg
|
||||
70
docs/objects/mediaTypes/Book.yaml
Normal file
70
docs/objects/mediaTypes/Book.yaml
Normal file
@@ -0,0 +1,70 @@
|
||||
components:
|
||||
schemas:
|
||||
bookCoverPath:
|
||||
description: The absolute path on the server of the cover file. Will be null if there is no cover.
|
||||
type: string
|
||||
nullable: true
|
||||
example: /audiobooks/Terry Goodkind/Sword of Truth/Wizards First Rule/cover.jpg
|
||||
bookBase:
|
||||
type: object
|
||||
description: Base book schema
|
||||
properties:
|
||||
libraryItemId:
|
||||
$ref: '../LibraryItem.yaml#/components/schemas/libraryItemId'
|
||||
coverPath:
|
||||
$ref: '#/components/schemas/bookCoverPath'
|
||||
tags:
|
||||
$ref: '../../schemas.yaml#/components/schemas/tags'
|
||||
audioFiles:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/audioFile'
|
||||
chapters:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/bookChapter'
|
||||
missingParts:
|
||||
description: Any parts missing from the book by track index.
|
||||
type: array
|
||||
items:
|
||||
type: integer
|
||||
ebookFile:
|
||||
$ref: '#/components/schemas/ebookFile'
|
||||
bookMinified:
|
||||
type: object
|
||||
description: Minified book schema. Does not depend on `bookBase` because there's pretty much no overlap.
|
||||
properties:
|
||||
metadata:
|
||||
$ref: '../metadata/BookMetadata.yaml#/components/schemas/bookMetadataMinified'
|
||||
coverPath:
|
||||
$ref: '#/components/schemas/bookCoverPath'
|
||||
tags:
|
||||
$ref: '../../schemas.yaml#/components/schemas/tags'
|
||||
numTracks:
|
||||
description: The number of tracks the book's audio files have.
|
||||
type: integer
|
||||
example: 1
|
||||
numAudioFiles:
|
||||
description: The number of audio files the book has.
|
||||
type: integer
|
||||
example: 1
|
||||
numChapters:
|
||||
description: The number of chapters the book has.
|
||||
type: integer
|
||||
example: 1
|
||||
numMissingParts:
|
||||
description: The total number of missing parts the book has.
|
||||
type: integer
|
||||
example: 0
|
||||
numInvalidAudioFiles:
|
||||
description: The number of invalid audio files the book has.
|
||||
type: integer
|
||||
example: 0
|
||||
duration:
|
||||
$ref: '../../schemas.yaml#/components/schemas/durationSec'
|
||||
size:
|
||||
$ref: '../../schemas.yaml#/components/schemas/size'
|
||||
ebookFormat:
|
||||
description: The format of ebook of the book. Will be null if the book is an audiobook.
|
||||
type: string
|
||||
nullable: true
|
||||
10
docs/objects/mediaTypes/media.yaml
Normal file
10
docs/objects/mediaTypes/media.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
components:
|
||||
schemas:
|
||||
mediaType:
|
||||
type: string
|
||||
description: The type of media, will be book or podcast.
|
||||
enum: [book, podcast]
|
||||
mediaMinified:
|
||||
description: The minified media of the library item.
|
||||
oneOf:
|
||||
- $ref: './Book.yaml#/components/schemas/bookMinified'
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user