Compare commits
326 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3f99acf473 | |||
| 0cd37ce8ec | |||
| ee04878580 | |||
| e987049f20 | |||
| 122552287a | |||
| d318e6d341 | |||
| d96b282cae | |||
| f2ab01199f | |||
| 04b22431f4 | |||
| 31fce705ab | |||
| a28fab0ff3 | |||
| 0a1d4788ee | |||
| fafb9d4f56 | |||
| 4fdc38caee | |||
| 799cdb44d3 | |||
| 372892199f | |||
| d16184fb25 | |||
| b8564f6d41 | |||
| d474e60c51 | |||
| dfdac28f53 | |||
| 16b713bc85 | |||
| 81cd0722b1 | |||
| 1526f9b8d6 | |||
| 5b4da3bc29 | |||
| d78ea440cc | |||
| 1595805b83 | |||
| 00fa45f15d | |||
| ab05be30c0 | |||
| 3d407e5f24 | |||
| 60776b5f02 | |||
| 8699b1ffea | |||
| 16ac536f93 | |||
| f51d3d5711 | |||
| 17a4a14a4e | |||
| ecda918b46 | |||
| 93834788b5 | |||
| 66e7b44d75 | |||
| 8825fc1e84 | |||
| ac0cc19c04 | |||
| de29465b1f | |||
| 31a201ca32 | |||
| 3644ea2969 | |||
| e46c61e026 | |||
| 3873218e94 | |||
| b4a61cbd6e | |||
| accc6e53f0 | |||
| adf48decc4 | |||
| 49ff928414 | |||
| 71efd4a6d7 | |||
| 01e4907295 | |||
| 6a47e99680 | |||
| 078d8068e0 | |||
| 58ae76ce2a | |||
| bc6cd5b014 | |||
| 17deac8d65 | |||
| 7dbf8dd9fe | |||
| 27ab9f89c9 | |||
| 602808c742 | |||
| c1051956ad | |||
| 6d2c084355 | |||
| 6e3f0f2253 | |||
| d3d3688d60 | |||
| 49c28299af | |||
| 0bb6fea3db | |||
| 7027084394 | |||
| 7c4cbaad9a | |||
| e603048a80 | |||
| 9e08157517 | |||
| d4c2b1e914 | |||
| 65dd67ec96 | |||
| 76259309af | |||
| 3e5a9db279 | |||
| c155bbdb37 | |||
| ecbc03f052 | |||
| 6ef9efc8bf | |||
| 513e9e822d | |||
| dbc215c44f | |||
| 43c5cf4275 | |||
| 41f1f376bc | |||
| cad7fef454 | |||
| 93791aea15 | |||
| 884dcde289 | |||
| 21f993a951 | |||
| 4784228831 | |||
| c6e3e0c07e | |||
| 30685e7252 | |||
| 12a398a65c | |||
| 71360e37de | |||
| f99b8ea9ee | |||
| 2854b928f6 | |||
| 14e1f1d003 | |||
| 85c490bd06 | |||
| 96d78f8bda | |||
| 5f65aebe63 | |||
| cd96da9cd5 | |||
| 674b66b682 | |||
| 934851456b | |||
| afca396654 | |||
| b62f62671d | |||
| eb8913479b | |||
| 4918b412b2 | |||
| a78f5803a5 | |||
| 0d1799cbf7 | |||
| 438db40d0e | |||
| aca5e1fe87 | |||
| 8aaf24ff87 | |||
| 75dbea1ab7 | |||
| 61616dd2b9 | |||
| ceef7964af | |||
| ec12e89653 | |||
| 386ca41a5d | |||
| a8fd5a4f46 | |||
| 4590383a97 | |||
| 405208cf92 | |||
| f19c37276a | |||
| 3269034bfb | |||
| e5f99af43b | |||
| 2866ca9537 | |||
| a377eae2f4 | |||
| dbd8ce2380 | |||
| 0741351318 | |||
| ab9e02adfc | |||
| 12ff690619 | |||
| 5039012fcb | |||
| 75af57a7b3 | |||
| 9027eee99f | |||
| 50fe373f1e | |||
| 2c546867a8 | |||
| 9dad934a40 | |||
| 34dbb4c794 | |||
| 7472af66ef | |||
| f293fb287d | |||
| 7656e84c20 | |||
| c524e8d3b7 | |||
| 7f13ce491b | |||
| 6c16aabce0 | |||
| f5240b1766 | |||
| cc5a95d725 | |||
| 8ba63988d8 | |||
| 289f307a52 | |||
| 91ac36c835 | |||
| 503e4b2bac | |||
| c39ddc3b45 | |||
| 1163c4ad5e | |||
| e497734c07 | |||
| 77fef33cbf | |||
| 81189db1e1 | |||
| 054a3d005e | |||
| dfbff64430 | |||
| 2b4046a82e | |||
| 9eb879fc37 | |||
| 9e63ee2735 | |||
| 9950e51d45 | |||
| 70fdd4bdc3 | |||
| e855f7dd01 | |||
| 123842dfda | |||
| 1338513f82 | |||
| c9c88dd82d | |||
| 02a5395453 | |||
| 7ba2f6b827 | |||
| f1b5dc8ef3 | |||
| 78875572e9 | |||
| f487560ec5 | |||
| f752090c78 | |||
| 96f5b2b82a | |||
| 80292ae579 | |||
| 1d156ac506 | |||
| dc5586f859 | |||
| 1a9f36ce9e | |||
| 203c8a6588 | |||
| 2e6cf8d869 | |||
| b1827dd352 | |||
| 0d2dddddbc | |||
| 1d8e1957ba | |||
| dc957cb3cc | |||
| c314fa0bf3 | |||
| c5ebfac647 | |||
| 4adea11a93 | |||
| e6f49b9f1f | |||
| 9cde569c7d | |||
| 91e7c7434c | |||
| ffef5dfdee | |||
| 409dd69fcb | |||
| 064cf5103a | |||
| 7e3a613a93 | |||
| e7c49f6d67 | |||
| 022b83ab32 | |||
| 551d705ee1 | |||
| 83f73c7fa9 | |||
| cc8cb4f4f1 | |||
| 496eab7d09 | |||
| 5197c967c2 | |||
| 74b615dba7 | |||
| b67ee797cb | |||
| 4228084810 | |||
| b514c7972d | |||
| 83d9042a47 | |||
| a28c403093 | |||
| 2927fa5ff7 | |||
| f39a7f8d6f | |||
| 397610d8ab | |||
| fb170bb7c4 | |||
| d93f6e8720 | |||
| 668de93829 | |||
| 7cecd859ae | |||
| fea2966f62 | |||
| 6efa308e85 | |||
| 82b50a60bc | |||
| f52c4f7900 | |||
| 2fb621993d | |||
| cf663de2fc | |||
| 65c215fa9c | |||
| 8af972c20b | |||
| 027e4046a2 | |||
| 4c256348fc | |||
| 6e3275c05c | |||
| 3518a3f3b6 | |||
| 2b6b0cb38b | |||
| f56a836ffd | |||
| 2d963a9d23 | |||
| 4423b06807 | |||
| 1f9223b476 | |||
| b4ecf5d257 | |||
| 0dd13cbab1 | |||
| 48e50430fe | |||
| ac5611fdca | |||
| 50c3dbc0a0 | |||
| ddd840d2df | |||
| c0c9878fad | |||
| c4fc8a8aef | |||
| 0620b096db | |||
| f998491beb | |||
| 55a6ea4fca | |||
| 72fc5beb98 | |||
| a45b607fe7 | |||
| adfdf04240 | |||
| faa7281993 | |||
| 2d0f4e7881 | |||
| ce9183ffd6 | |||
| 3a5508653b | |||
| 7e4e28037c | |||
| d2d8ea8249 | |||
| ba835bec3e | |||
| 9850874dfd | |||
| 51a8285ba2 | |||
| e12150d026 | |||
| 54bc241984 | |||
| a698f83c45 | |||
| 854e7cc67e | |||
| c3920cbcc0 | |||
| 6a68cebc93 | |||
| ba474205c8 | |||
| dffe5bfffb | |||
| 7615c0d2ba | |||
| 216353837c | |||
| 7f180b2c50 | |||
| ce46e0f351 | |||
| 0999b93b47 | |||
| 63c21cf7c2 | |||
| 72ab1dc8a0 | |||
| 131e1ec11d | |||
| 4d60f5b8d9 | |||
| 6962a05c96 | |||
| 25ee57da1c | |||
| 37e41c9c8e | |||
| 69b6821deb | |||
| 8e6078515a | |||
| 73868dbcbf | |||
| 49ae774d48 | |||
| 5b3e2da95b | |||
| 1a5e513526 | |||
| ad83e95a46 | |||
| bdd5c78d39 | |||
| 6a0c2213a5 | |||
| 99515591f1 | |||
| b8228844df | |||
| 7613bc32c2 | |||
| 4d81dc49fa | |||
| 8c65775310 | |||
| 74c9d0ca6f | |||
| 871bb9da3a | |||
| 8ae1fb4fdb | |||
| 1a39182d80 | |||
| a1a837298f | |||
| 74b0e38f7e | |||
| c1f48b21a4 | |||
| a496c04701 | |||
| 590a7c7dfa | |||
| 796629b4e6 | |||
| ced3b491ff | |||
| 78aebd7c5d | |||
| 9532601efe | |||
| bd34a729b3 | |||
| 23990b581b | |||
| f786da52bb | |||
| ee145d6f65 | |||
| c310ad65ef | |||
| 26284e2412 | |||
| 6e4cd6912b | |||
| 974313c30b | |||
| 8ed586e2f3 | |||
| f016d2cdf4 | |||
| c79e041777 | |||
| a50984d2cb | |||
| 819945dcba | |||
| 9f81bff020 | |||
| b45594515e | |||
| 3a5d701195 | |||
| 34e037725c | |||
| b4fd7b6a66 | |||
| 81af324260 | |||
| a5541745c3 | |||
| 39d691d528 | |||
| 0c1537e5ef | |||
| 3405f853e3 | |||
| 8b0b53029c | |||
| f6012d3b03 | |||
| f4072c183b | |||
| 9a4a8eb742 | |||
| dbfb547af9 | |||
| 0492b867aa | |||
| b7cbb3055a | |||
| c3c18e22ea | |||
| 9318d00a5b | |||
| a5940a9124 | |||
| 9a8986834e |
@@ -0,0 +1,189 @@
|
||||
# Alpha builds published to Cloudflare R2 with date versioning (e.g. 1.0.0-alpha-20260205).
|
||||
# Required repo secrets: R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY (from R2 API token in Cloudflare dashboard).
|
||||
name: Publish Alpha
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: 'Semantic version number (e.g., 1.0.0) - alpha suffix will be added automatically'
|
||||
required: false
|
||||
type: string
|
||||
schedule:
|
||||
# Run at 3:00 AM PST daily (11:00 UTC; PST = UTC-8)
|
||||
- cron: '0 11 * * *'
|
||||
|
||||
jobs:
|
||||
check-new-commits:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
has_new_commits: ${{ steps.manual.outputs.has_new_commits || steps.check.outputs['has-new-commits'] }}
|
||||
steps:
|
||||
- name: Set has new commits (manual trigger)
|
||||
id: manual
|
||||
if: github.event_name == 'workflow_dispatch'
|
||||
run: echo "has_new_commits=true" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Check for new commits (24 hr interval)
|
||||
id: check
|
||||
if: github.event_name != 'workflow_dispatch'
|
||||
uses: adriangl/check-new-commits-action@v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
seconds: 86400
|
||||
|
||||
prepare:
|
||||
needs: check-new-commits
|
||||
if: needs.check-new-commits.outputs.has_new_commits == 'true'
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
version: ${{ steps.version.outputs.version }}
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node and PNPM
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Set date-based alpha version
|
||||
id: version
|
||||
shell: pwsh
|
||||
run: |
|
||||
$inputVersion = "${{ github.event.inputs.version }}"
|
||||
Write-Host "Input version: $inputVersion"
|
||||
|
||||
if ($inputVersion -eq "" -or $inputVersion -eq "null") {
|
||||
# No input version provided (scheduled run or manual without input), auto-increment patch version
|
||||
Write-Host "No version provided, auto-incrementing patch version..."
|
||||
|
||||
$currentVersion = (Get-Content package.json | ConvertFrom-Json).version
|
||||
Write-Host "Current version: $currentVersion"
|
||||
|
||||
$cleanVersion = $currentVersion -replace '-.*$', ''
|
||||
$versionParts = $cleanVersion.Split('.')
|
||||
if ($versionParts.Length -ne 3) {
|
||||
Write-Error "Current version format is invalid: $cleanVersion"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$major = [int]$versionParts[0]
|
||||
$minor = [int]$versionParts[1]
|
||||
$patch = [int]$versionParts[2]
|
||||
$newPatch = $patch + 1
|
||||
$inputVersion = "$major.$minor.$newPatch"
|
||||
Write-Host "Auto-generated version: $inputVersion"
|
||||
} else {
|
||||
# Validate semantic version format (major.minor.patch)
|
||||
$versionPattern = '^\d+\.\d+\.\d+$'
|
||||
if ($inputVersion -notmatch $versionPattern) {
|
||||
Write-Error "Invalid version format. Expected semantic version (e.g., 1.0.0), got: $inputVersion"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
# Date in YYYYMMDD (PST / America/Los_Angeles)
|
||||
$pst = [TimeZoneInfo]::FindSystemTimeZoneById('America/Los_Angeles')
|
||||
$dateInPst = [TimeZoneInfo]::ConvertTimeFromUtc([DateTime]::UtcNow, $pst)
|
||||
$dateStr = $dateInPst.ToString("yyyyMMdd")
|
||||
$alphaVersion = "$inputVersion-alpha-$dateStr"
|
||||
Write-Host "Alpha version: $alphaVersion"
|
||||
|
||||
# Update package.json
|
||||
$packageJson = Get-Content package.json | ConvertFrom-Json
|
||||
$packageJson.version = $alphaVersion
|
||||
$packageJson | ConvertTo-Json -Depth 10 | Set-Content package.json
|
||||
|
||||
echo "version=$alphaVersion" >> $env:GITHUB_OUTPUT
|
||||
|
||||
cleanup:
|
||||
needs: prepare
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
||||
R2_ENDPOINT_URL: ${{ secrets.R2_ENDPOINT_URL }}
|
||||
steps:
|
||||
- name: Delete all objects in R2 bucket
|
||||
run: |
|
||||
aws s3 rm s3://feishin-nightly --recursive --endpoint-url $R2_ENDPOINT_URL
|
||||
|
||||
publish:
|
||||
needs: [prepare, cleanup]
|
||||
runs-on: ${{ matrix.os }}
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest, macos-latest, ubuntu-latest]
|
||||
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node and PNPM
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Set version from prepare job
|
||||
shell: pwsh
|
||||
run: |
|
||||
$version = "${{ needs.prepare.outputs.version }}"
|
||||
Write-Host "Setting version: $version"
|
||||
$packageJson = Get-Content package.json | ConvertFrom-Json
|
||||
$packageJson.version = $version
|
||||
$packageJson | ConvertTo-Json -Depth 10 | Set-Content package.json
|
||||
|
||||
- name: Build and Publish to R2 (Windows)
|
||||
if: matrix.os == 'windows-latest'
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
retry_on: error
|
||||
command: |
|
||||
pnpm run publish:win:alpha
|
||||
on_retry_command: pnpm cache delete
|
||||
|
||||
- name: Build and Publish to R2 (macOS)
|
||||
if: matrix.os == 'macos-latest'
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
retry_on: error
|
||||
command: |
|
||||
pnpm run publish:mac:alpha
|
||||
on_retry_command: pnpm cache delete
|
||||
|
||||
- name: Build and Publish to R2 (Linux)
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
retry_on: error
|
||||
command: |
|
||||
pnpm run publish:linux:alpha
|
||||
on_retry_command: pnpm cache delete
|
||||
|
||||
- name: Build and Publish to R2 (Linux ARM64)
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
retry_on: error
|
||||
command: |
|
||||
pnpm run publish:linux-arm64:alpha
|
||||
on_retry_command: pnpm cache delete
|
||||
@@ -15,12 +15,12 @@ jobs:
|
||||
version: ${{ steps.version.outputs.version }}
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node and PNPM
|
||||
uses: pnpm/action-setup@v4.1.0
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -119,12 +119,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node and PNPM
|
||||
uses: pnpm/action-setup@v4.1.0
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -146,7 +146,7 @@ jobs:
|
||||
if: matrix.os == 'windows-latest'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -159,7 +159,7 @@ jobs:
|
||||
if: matrix.os == 'macos-latest'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -172,7 +172,7 @@ jobs:
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -185,7 +185,7 @@ jobs:
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -199,7 +199,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Edit release with commits and title
|
||||
shell: pwsh
|
||||
@@ -346,7 +346,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Delete existing prereleases
|
||||
shell: pwsh
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
- name: Log in to the Container registry
|
||||
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
|
||||
with:
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
packages: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
- name: Log in to the Container registry
|
||||
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
|
||||
with:
|
||||
|
||||
@@ -12,12 +12,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node and PNPM
|
||||
uses: pnpm/action-setup@v4.1.0
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- name: Build and Publish releases
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
- name: Build and Publish releases (arm64)
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
|
||||
@@ -12,12 +12,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node and PNPM
|
||||
uses: pnpm/action-setup@v4.1.0
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- name: Build and Publish releases
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
name: Publish (PR)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
branches:
|
||||
- development
|
||||
paths:
|
||||
- 'src/**'
|
||||
- 'electron-builder*.yml'
|
||||
|
||||
jobs:
|
||||
wait-for-lint:
|
||||
if: github.event_name == 'pull_request'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Wait for Test workflow to complete
|
||||
@@ -22,6 +25,7 @@ jobs:
|
||||
|
||||
publish:
|
||||
needs: wait-for-lint
|
||||
if: always() && (needs.wait-for-lint.result == 'success' || needs.wait-for-lint.result == 'skipped')
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
@@ -30,19 +34,19 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node and PNPM
|
||||
uses: pnpm/action-setup@v4.1.0
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Build for Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -52,7 +56,7 @@ jobs:
|
||||
|
||||
- name: Build for Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -62,7 +66,7 @@ jobs:
|
||||
|
||||
- name: Build for MacOS
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -88,21 +92,21 @@ jobs:
|
||||
|
||||
- name: Upload Windows Binaries
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: windows-binaries
|
||||
path: dist/windows-binaries.zip
|
||||
|
||||
- name: Upload Linux Binaries
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: linux-binaries
|
||||
path: dist/linux-binaries.zip
|
||||
|
||||
- name: Upload MacOS Binaries
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: macos-binaries
|
||||
path: dist/macos-binaries.zip
|
||||
|
||||
@@ -12,12 +12,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node and PNPM
|
||||
uses: pnpm/action-setup@v4.1.0
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- name: Build and Publish releases
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
|
||||
@@ -16,6 +16,5 @@ jobs:
|
||||
- uses: vedantmgoyal9/winget-releaser@main
|
||||
with:
|
||||
identifier: jeffvli.Feishin
|
||||
installers-regex: 'Feishin-*-win-x64\.exe'
|
||||
installers-regex: 'Feishin-*-win-(x64|arm64)\.exe'
|
||||
token: ${{ secrets.WINGET_ACC_TOKEN }}
|
||||
|
||||
|
||||
@@ -12,12 +12,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout git repo
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node and PNPM
|
||||
uses: pnpm/action-setup@v4.1.0
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
if: matrix.os == 'windows-latest'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
if: matrix.os == 'macos-latest'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -65,7 +65,7 @@ jobs:
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
|
||||
@@ -8,12 +8,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Install Node.js and PNPM
|
||||
uses: pnpm/action-setup@v4.1.0
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
version: 10
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# --- Builder stage
|
||||
FROM node:23-alpine as builder
|
||||
FROM node:23-alpine AS builder
|
||||
WORKDIR /app
|
||||
|
||||
# Copy package.json first to cache node_modules
|
||||
@@ -14,13 +14,13 @@ COPY . .
|
||||
RUN pnpm run build:web
|
||||
|
||||
# --- Production stage
|
||||
FROM nginx:alpine-slim
|
||||
FROM nginxinc/nginx-unprivileged:alpine-slim
|
||||
|
||||
COPY --chown=nginx:nginx --from=builder /app/out/web /usr/share/nginx/html
|
||||
COPY ./settings.js.template /etc/nginx/templates/settings.js.template
|
||||
COPY ng.conf.template /etc/nginx/templates/default.conf.template
|
||||
COPY --chown=nginx:nginx ./settings.js.template /etc/nginx/templates/settings.js.template
|
||||
COPY --chown=nginx:nginx ng.conf.template /etc/nginx/templates/default.conf.template
|
||||
|
||||
ENV SERVER_LOCK=false SERVER_NAME="" SERVER_TYPE="" SERVER_URL=""
|
||||
ENV SERVER_LOCK=false SERVER_NAME="" SERVER_TYPE="" SERVER_URL="" REMOTE_URL=""
|
||||
ENV LEGACY_AUTHENTICATION="" ANALYTICS_DISABLED="" PUBLIC_PATH="/"
|
||||
|
||||
EXPOSE 9180
|
||||
|
||||
@@ -114,6 +114,7 @@ services:
|
||||
- SERVER_LOCK=true # When true AND name/type/url are set, only username/password can be toggled
|
||||
- SERVER_TYPE=jellyfin # the allowed types are: jellyfin, navidrome, subsonic. These values are case insensitive
|
||||
- SERVER_URL= # http://address:port or https://address:port
|
||||
- REMOTE_URL= # http://address or https://address
|
||||
- LEGACY_AUTHENTICATION=false # When SERVER_LOCK is true, sets the legacy (plaintext) authentication flag for Subsonic/OpenSubsonic servers
|
||||
- ANALYTICS_DISABLED=true # Set to true to disable Umami analytics tracking
|
||||
ports:
|
||||
@@ -134,7 +135,11 @@ services:
|
||||
|
||||
4. _Optional_ - To hard code the server url, pass the following environment variables: `SERVER_NAME`, `SERVER_TYPE` (one of `jellyfin` or `navidrome` or `subsonic`), `SERVER_URL`. To prevent users from changing these settings, pass `SERVER_LOCK=true`. This can only be set if all three of the previous values are set. When `SERVER_LOCK=true`, you can also set `LEGACY_AUTHENTICATION=true` or `LEGACY_AUTHENTICATION=false` to configure the legacy authentication flag for the server (only applicable for Subsonic/OpenSubsonic servers).
|
||||
|
||||
5. _Optional_ - To disable Umami analytics tracking in the Docker/web version, set the environment variable `ANALYTICS_DISABLED=true`. When enabled, the analytics script will not be loaded and all tracking will be disabled.
|
||||
5. _Optional_ - If your server uses a separate public-facing URL than what integrating applications use internally to communicate with your server, such as a separate Navidrome `ShareURL`, set `REMOTE_URL` to said public-facing URL.
|
||||
|
||||
6. _Optional_ - To disable Umami analytics tracking in the Docker/web version, set the environment variable `ANALYTICS_DISABLED=true`. When enabled, the analytics script will not be loaded and all tracking will be disabled.
|
||||
|
||||
7. _Optional_ - App settings (theme, language, sidebar options, etc.) can be overridden with environment variables on first run. The variables use the `FS_` prefix (e.g. `FS_GENERAL_THEME=defaultDark`, `FS_GENERAL_LANGUAGE=de`). See [the settings environment variable documentation](docs/ENV_SETTINGS.md) for the full list.
|
||||
|
||||
## FAQ
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 651 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 277 B |
|
After Width: | Height: | Size: 447 B |
|
Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 422 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 32 KiB |
@@ -8,6 +8,7 @@ services:
|
||||
- SERVER_LOCK=false # When true AND name/type/url are set, only username/password can be toggled
|
||||
- SERVER_TYPE=jellyfin # the allowed types are: jellyfin, navidrome, subsonic. These values are case insensitive
|
||||
- SERVER_URL=http://localhost:8096 # http://address:port or https://address:port
|
||||
# - REMOTE_URL=http://share.localhost # Used for compatibility with external functionality, such as custom sharing URLs on Navidrome
|
||||
- LEGACY_AUTHENTICATION=false # When SERVER_LOCK is true, sets the legacyauth flag for server authentication (true or false)
|
||||
- ANALYTICS_DISABLED=false # Set to true to disable Umami analytics tracking
|
||||
ports:
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
# Environment variables for settings (web / Docker)
|
||||
|
||||
These variables override app settings **on first run** when no persisted settings exist. They are injected via `settings.js` (from `settings.js.template`) and only apply to the **web** build.
|
||||
|
||||
**Format:** All values are strings; booleans use `true`/`false`, numbers are numeric strings. Leave unset or empty to use the default.
|
||||
|
||||
---
|
||||
|
||||
## General
|
||||
|
||||
| Setting | Default | Env variable | Available values / Description |
|
||||
|-------------|---------|--------------|--------------------------------|
|
||||
| `general.accent` | `rgb(53, 116, 252)` | `FS_GENERAL_ACCENT` | CSS `rgb(r, g, b)` string (e.g. `rgb(53, 116, 252)`). Invalid values are ignored. |
|
||||
| `general.albumBackground` | `false` | `FS_GENERAL_ALBUM_BACKGROUND` | `true` / `false` — Show album background image. |
|
||||
| `general.albumBackgroundBlur` | `3` | `FS_GENERAL_ALBUM_BACKGROUND_BLUR` | Blur amount for album background (number). |
|
||||
| `general.artistBackground` | `true` | `FS_GENERAL_ARTIST_BACKGROUND` | `true` / `false` — Show artist background image. |
|
||||
| `general.artistBackgroundBlur` | `3` | `FS_GENERAL_ARTIST_BACKGROUND_BLUR` | Blur amount for artist background (number). |
|
||||
| `general.blurExplicitImages` | `false` | `FS_GENERAL_BLUR_EXPLICIT_IMAGES` | `true` / `false` — Blur explicit images. |
|
||||
| `general.combinedLyricsAndVisualizer` | `false` | `FS_GENERAL_COMBINED_LYRICS_AND_VISUALIZER` | `true` / `false` — Combine lyrics and visualizer panel. |
|
||||
| `general.enableGridMultiSelect` | `false` | `FS_GENERAL_ENABLE_GRID_MULTI_SELECT` | `true` / `false` — Enable multi-select in grid views. |
|
||||
| `general.externalLinks` | `true` | `FS_GENERAL_EXTERNAL_LINKS` | `true` / `false` — Show external links in UI. |
|
||||
| `general.followCurrentSong` | `true` | `FS_GENERAL_FOLLOW_CURRENT_SONG` | `true` / `false` — Follow current song in list. |
|
||||
| `general.followSystemTheme` | `false` | `FS_GENERAL_FOLLOW_SYSTEM_THEME` | `true` / `false` — Use OS light/dark preference. |
|
||||
| `general.homeFeature` | `true` | `FS_GENERAL_HOME_FEATURE` | `true` / `false` — Show home featured carousel. |
|
||||
| `general.homeFeatureStyle` | `single` | `FS_GENERAL_HOME_FEATURE_STYLE` | `multiple` / `single` — Home featured carousel style. |
|
||||
| `general.language` | `en` | `FS_GENERAL_LANGUAGE` | UI language code (e.g. `en`, `de`, `fr`). |
|
||||
| `general.theme` | `defaultDark` | `FS_GENERAL_THEME` | One of: `ayuDark`, `ayuLight`, `catppuccinLatte`, `catppuccinMocha`, `defaultDark`, `defaultLight`, `dracula`, `githubDark`, `githubLight`, `glassyDark`, `gruvboxDark`, `gruvboxLight`, `highContrastDark`, `highContrastLight`, `materialDark`, `materialLight`, `monokai`, `nightOwl`, `nord`, `oneDark`, `rosePine`, `rosePineDawn`, `rosePineMoon`, `shadesOfPurple`, `solarizedDark`, `solarizedLight`, `tokyoNight`, `vscodeDarkPlus`, `vscodeLightPlus`. |
|
||||
| `general.themeDark` | `defaultDark` | `FS_GENERAL_THEME_DARK` | Same as theme (used when system is dark). |
|
||||
| `general.themeLight` | `defaultLight` | `FS_GENERAL_THEME_LIGHT` | Same as theme (used when system is light). |
|
||||
| `general.lastfmApiKey` | *(empty)* | `FS_GENERAL_LASTFM_API_KEY` | Last.fm API key. |
|
||||
| `general.lastFM` | `true` | `FS_GENERAL_LAST_FM` | `true` / `false` — Enable Last.fm. |
|
||||
| `general.musicBrainz` | `true` | `FS_GENERAL_MUSIC_BRAINZ` | `true` / `false` — MusicBrainz links. |
|
||||
| `general.nativeAspectRatio` | `false` | `FS_GENERAL_NATIVE_ASPECT_RATIO` | `true` / `false` — Use native cover art aspect ratio. |
|
||||
| `general.pathReplace` | *(empty)* | `FS_GENERAL_PATH_REPLACE` | Path pattern to replace (e.g. server path in Docker). |
|
||||
| `general.pathReplaceWith` | *(empty)* | `FS_GENERAL_PATH_REPLACE_WITH` | Replacement path. |
|
||||
| `general.playerbarOpenDrawer` | `false` | `FS_GENERAL_PLAYERBAR_OPEN_DRAWER` | `true` / `false` — Open queue/lyrics as drawer from player bar. |
|
||||
| `general.primaryShade` | `6` | `FS_GENERAL_PRIMARY_SHADE` | Mantine primary shade 0–9 (number). |
|
||||
| `general.resume` | `true` | `FS_GENERAL_RESUME` | `true` / `false` — Resume playback on load. |
|
||||
| `general.showLyricsInSidebar` | `true` | `FS_GENERAL_SHOW_LYRICS_IN_SIDEBAR` | `true` / `false` — Show lyrics in sidebar. |
|
||||
| `general.showRatings` | `true` | `FS_GENERAL_SHOW_RATINGS` | `true` / `false` — Show star ratings. |
|
||||
| `general.showVisualizerInSidebar` | `true` | `FS_GENERAL_SHOW_VISUALIZER_IN_SIDEBAR` | `true` / `false` — Show visualizer in sidebar. |
|
||||
| `general.sidebarCollapsedNavigation` | `true` | `FS_GENERAL_SIDEBAR_COLLAPSED_NAVIGATION` | `true` / `false` — Start with collapsed sidebar nav. |
|
||||
| `general.sidebarCollapseShared` | `false` | `FS_GENERAL_SIDEBAR_COLLAPSE_SHARED` | `true` / `false` — Share sidebar collapse state. |
|
||||
| `general.sidebarPlaylistList` | `true` | `FS_GENERAL_SIDEBAR_PLAYLIST_LIST` | `true` / `false` — Show playlist list in sidebar. |
|
||||
| `general.sidebarPlaylistSorting` | `false` | `FS_GENERAL_SIDEBAR_PLAYLIST_SORTING` | `true` / `false` — Enable playlist sorting in sidebar. |
|
||||
| `general.sideQueueType` | `sideQueue` | `FS_GENERAL_SIDE_QUEUE_TYPE` | `sideDrawerQueue` / `sideQueue` — Side play queue style. |
|
||||
| `general.useThemeAccentColor` | `false` | `FS_GENERAL_USE_THEME_ACCENT_COLOR` | `true` / `false` — Use theme’s accent color instead of custom. |
|
||||
| `general.useThemePrimaryShade` | `true` | `FS_GENERAL_USE_THEME_PRIMARY_SHADE` | `true` / `false` — Use theme’s primary shade. |
|
||||
| `general.zoomFactor` | `100` | `FS_GENERAL_ZOOM_FACTOR` | UI zoom percentage (number). |
|
||||
|
||||
---
|
||||
|
||||
## Playback
|
||||
|
||||
| Setting path | Default | Env variable | Available values / Description |
|
||||
|-------------|---------|--------------|--------------------------------|
|
||||
| `playback.mediaSession` | `false` | `FS_PLAYBACK_MEDIA_SESSION` | `true` / `false` — Media Session API (e.g. browser/media keys). |
|
||||
| `playback.webAudio` | `true` | `FS_PLAYBACK_WEB_AUDIO` | `true` / `false` — Use Web Audio for playback. |
|
||||
| `playback.audioFadeOnStatusChange` | `true` | `FS_PLAYBACK_AUDIO_FADE_ON_STATUS_CHANGE` | `true` / `false` — Fade on play/pause. |
|
||||
| `playback.preservePitch` | `true` | `FS_PLAYBACK_PRESERVE_PITCH` | `true` / `false` — Preserve pitch when changing speed. |
|
||||
| `playback.scrobble.enabled` | `true` | `FS_PLAYBACK_SCROBBLE_ENABLED` | `true` / `false` — Enable scrobbling. |
|
||||
| `playback.scrobble.notify` | `false` | `FS_PLAYBACK_SCROBBLE_NOTIFY` | `true` / `false` — Scrobble notifications. |
|
||||
| `playback.scrobble.scrobbleAtDuration` | `240` | `FS_PLAYBACK_SCROBBLE_AT_DURATION` | Seconds of playback before scrobble. |
|
||||
| `playback.scrobble.scrobbleAtPercentage` | `75` | `FS_PLAYBACK_SCROBBLE_AT_PERCENTAGE` | Percentage of track before scrobble. |
|
||||
| `playback.transcode.enabled` | `false` | `FS_PLAYBACK_TRANSCODE_ENABLED` | `true` / `false` — Enable transcoding. |
|
||||
|
||||
---
|
||||
|
||||
## Discord
|
||||
|
||||
| Setting path | Default | Env variable | Available values / Description |
|
||||
|-------------|---------|--------------|--------------------------------|
|
||||
| `discord.enabled` | `false` | `FS_DISCORD_ENABLED` | `true` / `false` — Discord rich presence. |
|
||||
| `discord.clientId` | *(built-in)* | `FS_DISCORD_CLIENT_ID` | Custom Discord application ID. |
|
||||
| `discord.displayType` | `feishin` | `FS_DISCORD_DISPLAY_TYPE` | `artist` / `feishin` / `song`. |
|
||||
| `discord.linkType` | `none` | `FS_DISCORD_LINK_TYPE` | `last_fm` / `musicbrainz` / `musicbrainz_last_fm` / `none`. |
|
||||
| `discord.showAsListening` | `false` | `FS_DISCORD_SHOW_AS_LISTENING` | `true` / `false`. |
|
||||
| `discord.showPaused` | `true` | `FS_DISCORD_SHOW_PAUSED` | `true` / `false` — Show paused state. |
|
||||
| `discord.showServerImage` | `false` | `FS_DISCORD_SHOW_SERVER_IMAGE` | `true` / `false`. |
|
||||
| `discord.showStateIcon` | `true` | `FS_DISCORD_SHOW_STATE_ICON` | `true` / `false`. |
|
||||
|
||||
---
|
||||
|
||||
## Lyrics
|
||||
|
||||
| Setting path | Default | Env variable | Available values / Description |
|
||||
|-------------|---------|--------------|--------------------------------|
|
||||
| `lyrics.fetch` | `true` | `FS_LYRICS_FETCH` | `true` / `false` — Fetch lyrics. |
|
||||
| `lyrics.follow` | `true` | `FS_LYRICS_FOLLOW` | `true` / `false` — Follow current line. |
|
||||
| `lyrics.delayMs` | `0` | `FS_LYRICS_DELAY_MS` | Sync delay in milliseconds. |
|
||||
| `lyrics.preferLocalLyrics` | `true` | `FS_LYRICS_PREFER_LOCAL` | `true` / `false` — Prefer local lyric files. |
|
||||
| `lyrics.showMatch` | `true` | `FS_LYRICS_SHOW_MATCH` | `true` / `false`. |
|
||||
| `lyrics.showProvider` | `true` | `FS_LYRICS_SHOW_PROVIDER` | `true` / `false`. |
|
||||
| `lyrics.enableAutoTranslation` | `false` | `FS_LYRICS_ENABLE_AUTO_TRANSLATION` | `true` / `false`. |
|
||||
| `lyrics.translationApiKey` | *(empty)* | `FS_LYRICS_TRANSLATION_API_KEY` | API key for lyric translation. |
|
||||
| `lyrics.translationTargetLanguage` | `en` | `FS_LYRICS_TRANSLATION_TARGET_LANGUAGE` | Target language code. |
|
||||
| `lyrics.alignment` | `center` | `FS_LYRICS_ALIGNMENT` | `center` / `left` / `right`. |
|
||||
|
||||
---
|
||||
|
||||
## Auto DJ
|
||||
|
||||
| Setting path | Default | Env variable | Available values / Description |
|
||||
|-------------|---------|--------------|--------------------------------|
|
||||
| `autoDJ.enabled` | `false` | `FS_AUTO_DJ_ENABLED` | `true` / `false`. |
|
||||
| `autoDJ.itemCount` | `5` | `FS_AUTO_DJ_ITEM_COUNT` | Number of items to add. |
|
||||
| `autoDJ.timing` | `1` | `FS_AUTO_DJ_TIMING` | Timing value (number). |
|
||||
|
||||
---
|
||||
|
||||
## CSS
|
||||
|
||||
| Setting path | Default | Env variable | Available values / Description |
|
||||
|-------------|---------|--------------|--------------------------------|
|
||||
| `css.content` | *(empty)* | `FS_CSS_CONTENT` | Custom CSS string (sanitized like in-app custom CSS). Set `FS_CSS_ENABLED=true` to apply. |
|
||||
| `css.enabled` | `false` | `FS_CSS_ENABLED` | `true` / `false` — Enable custom CSS. |
|
||||
|
||||
---
|
||||
|
||||
## Font
|
||||
|
||||
| Setting path | Default | Env variable | Available values / Description |
|
||||
|-------------|---------|--------------|--------------------------------|
|
||||
| `font.type` | `builtIn` | `FS_FONT_TYPE` | `builtIn` / `system` / `custom`. |
|
||||
| `font.builtIn` | `Inter` | `FS_FONT_BUILT_IN` | Built-in font name. |
|
||||
| `font.system` | *(empty)* | `FS_FONT_SYSTEM` | System font name (when type is `system`). |
|
||||
@@ -0,0 +1,72 @@
|
||||
appId: org.jeffvli.feishin
|
||||
productName: Feishin
|
||||
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
|
||||
electronVersion: 39.4.0
|
||||
directories:
|
||||
buildResources: assets
|
||||
files:
|
||||
- 'out/**/*'
|
||||
- 'package.json'
|
||||
extraResources:
|
||||
- assets/**
|
||||
asarUnpack:
|
||||
- resources/**
|
||||
win:
|
||||
target:
|
||||
- target: zip
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
- target: nsis
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
icon: assets/icons/icon.ico
|
||||
|
||||
nsis:
|
||||
allowToChangeInstallationDirectory: true
|
||||
oneClick: false
|
||||
shortcutName: ${productName}
|
||||
uninstallDisplayName: ${productName}
|
||||
createDesktopShortcut: always
|
||||
|
||||
mac:
|
||||
target:
|
||||
- target: dmg
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
- target: zip
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
icon: assets/icons/icon.icns
|
||||
type: distribution
|
||||
hardenedRuntime: false
|
||||
identity: "-"
|
||||
gatekeeperAssess: false
|
||||
notarize: false
|
||||
|
||||
|
||||
dmg:
|
||||
contents: [{ x: 130, y: 220 }, { x: 410, y: 220, type: link, path: /Applications }]
|
||||
|
||||
linux:
|
||||
target:
|
||||
- AppImage
|
||||
- deb
|
||||
- tar.xz
|
||||
category: AudioVideo;Audio;Player
|
||||
icon: assets/icons/icon.png
|
||||
artifactName: ${productName}-${os}-${arch}.${ext}
|
||||
|
||||
toolsets:
|
||||
appimage: "1.0.2"
|
||||
|
||||
npmRebuild: false
|
||||
|
||||
publish:
|
||||
provider: s3
|
||||
bucket: feishin-nightly
|
||||
channel: alpha
|
||||
endpoint: https://065f090c64de2dc707dd70ac72db9669.r2.cloudflarestorage.com
|
||||
@@ -1,7 +1,7 @@
|
||||
appId: org.jeffvli.feishin
|
||||
productName: Feishin
|
||||
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
|
||||
electronVersion: 39.2.7
|
||||
electronVersion: 39.4.0
|
||||
directories:
|
||||
buildResources: assets
|
||||
files:
|
||||
@@ -13,9 +13,15 @@ asarUnpack:
|
||||
- resources/**
|
||||
win:
|
||||
target:
|
||||
- zip
|
||||
- nsis
|
||||
icon: assets/icons/icon.png
|
||||
- target: zip
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
- target: nsis
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
icon: assets/icons/icon.ico
|
||||
|
||||
nsis:
|
||||
allowToChangeInstallationDirectory: true
|
||||
@@ -26,15 +32,18 @@ nsis:
|
||||
|
||||
mac:
|
||||
target:
|
||||
target: default
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
- target: dmg
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
- target: zip
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
icon: assets/icons/icon.icns
|
||||
type: distribution
|
||||
hardenedRuntime: true
|
||||
entitlements: assets/entitlements.mac.plist
|
||||
entitlementsInherit: assets/entitlements.mac.plist
|
||||
hardenedRuntime: false
|
||||
identity: "-"
|
||||
gatekeeperAssess: false
|
||||
notarize: false
|
||||
|
||||
@@ -50,6 +59,9 @@ linux:
|
||||
icon: assets/icons/icon.png
|
||||
artifactName: ${productName}-${os}-${arch}.${ext}
|
||||
|
||||
toolsets:
|
||||
appimage: "1.0.2"
|
||||
|
||||
npmRebuild: false
|
||||
publish:
|
||||
provider: github
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
appId: org.jeffvli.feishin
|
||||
productName: Feishin
|
||||
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
|
||||
electronVersion: 39.2.7
|
||||
electronVersion: 39.4.0
|
||||
directories:
|
||||
buildResources: assets
|
||||
files:
|
||||
@@ -13,8 +13,14 @@ asarUnpack:
|
||||
- resources/**
|
||||
win:
|
||||
target:
|
||||
- zip
|
||||
- nsis
|
||||
- target: zip
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
- target: nsis
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
icon: assets/icons/icon.ico
|
||||
|
||||
nsis:
|
||||
@@ -26,15 +32,18 @@ nsis:
|
||||
|
||||
mac:
|
||||
target:
|
||||
target: default
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
- target: dmg
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
- target: zip
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
icon: assets/icons/icon.icns
|
||||
type: distribution
|
||||
hardenedRuntime: true
|
||||
entitlements: assets/entitlements.mac.plist
|
||||
entitlementsInherit: assets/entitlements.mac.plist
|
||||
hardenedRuntime: false
|
||||
identity: "-"
|
||||
gatekeeperAssess: false
|
||||
notarize: false
|
||||
|
||||
@@ -50,7 +59,11 @@ linux:
|
||||
icon: assets/icons/icon.png
|
||||
artifactName: ${productName}-${os}-${arch}.${ext}
|
||||
|
||||
toolsets:
|
||||
appimage: "1.0.2"
|
||||
|
||||
npmRebuild: false
|
||||
afterAllArtifactBuild: scripts/after-all-artifact-build.mjs
|
||||
publish:
|
||||
provider: github
|
||||
owner: jeffvli
|
||||
|
||||
|
Before Width: | Height: | Size: 118 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 101 KiB |
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="512"
|
||||
height="512"
|
||||
viewBox="0 0 512 512"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xml:space="preserve"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs1"><linearGradient
|
||||
id="linearGradient1"><stop
|
||||
style="stop-color:#dfdfdf;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop1" /><stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2" /></linearGradient><filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter249"
|
||||
x="-0.61395349"
|
||||
y="-0.61395349"
|
||||
width="2.227907"
|
||||
height="2.5069767"><feFlood
|
||||
result="flood"
|
||||
in="SourceGraphic"
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
id="feFlood247" /><feGaussianBlur
|
||||
result="blur"
|
||||
in="SourceGraphic"
|
||||
stdDeviation="1.000000"
|
||||
id="feGaussianBlur247" /><feOffset
|
||||
result="offset"
|
||||
in="blur"
|
||||
dx="0.000000"
|
||||
dy="2"
|
||||
id="feOffset247" /><feComposite
|
||||
result="comp1"
|
||||
operator="in"
|
||||
in="flood"
|
||||
in2="offset"
|
||||
id="feComposite248" /><feComposite
|
||||
result="fbSourceGraphic"
|
||||
operator="over"
|
||||
in="SourceGraphic"
|
||||
id="feComposite249"
|
||||
in2="comp1" /><feColorMatrix
|
||||
result="fbSourceGraphicAlpha"
|
||||
in="fbSourceGraphic"
|
||||
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||
id="feColorMatrix122" /><feFlood
|
||||
id="feFlood122"
|
||||
result="flood"
|
||||
in="fbSourceGraphic"
|
||||
flood-opacity="0.196078"
|
||||
flood-color="rgb(0,0,0)" /><feGaussianBlur
|
||||
id="feGaussianBlur122"
|
||||
result="blur"
|
||||
in="fbSourceGraphic"
|
||||
stdDeviation="10.000000" /><feOffset
|
||||
id="feOffset122"
|
||||
result="offset"
|
||||
in="blur"
|
||||
dx="0.000000"
|
||||
dy="10.000000" /><feComposite
|
||||
id="feComposite122"
|
||||
result="comp1"
|
||||
operator="in"
|
||||
in="flood"
|
||||
in2="offset" /><feComposite
|
||||
id="feComposite123"
|
||||
result="comp2"
|
||||
operator="over"
|
||||
in="fbSourceGraphic"
|
||||
in2="comp1" /></filter><linearGradient
|
||||
xlink:href="#linearGradient1"
|
||||
id="linearGradient2"
|
||||
x1="256"
|
||||
y1="0"
|
||||
x2="256"
|
||||
y2="512"
|
||||
gradientUnits="userSpaceOnUse" /></defs><g
|
||||
id="layer1"
|
||||
style="display:inline"><circle
|
||||
style="display:inline;fill:url(#linearGradient2);stroke-width:25;stroke-linecap:round;stroke-linejoin:round;paint-order:markers fill stroke"
|
||||
id="background"
|
||||
cx="256"
|
||||
cy="256"
|
||||
r="256" /><circle
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19597;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke;filter:url(#filter249)"
|
||||
id="dot"
|
||||
cx="256"
|
||||
cy="240.31155"
|
||||
r="21.5" /><path
|
||||
id="bottom"
|
||||
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter249)"
|
||||
d="M 220.84961,277.95117 183.5,315.59961 219.5,351.69922 239.5,332 c 0,0 5.85615,-6.19922 16.5,-6.19922 10.64385,0 16.5,6.19922 16.5,6.19922 l 20,19.69922 36,-36.09961 -37.34961,-37.64844 A 51.5,51.5 0 0 1 256,291.8125 51.5,51.5 0 0 1 220.84961,277.95117 Z" /><path
|
||||
id="main"
|
||||
style="display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;paint-order:markers fill stroke;filter:url(#filter249)"
|
||||
d="m 256,145.40039 c -7.11895,0 -13.56326,2.88552 -18.22852,7.55078 L 66.96875,323.46875 C 62.354158,328.08334 59.5,334.45837 59.5,341.5 c 0,14.08326 11.416739,25.5 25.5,25.5 7.04163,0 13.41666,-2.85416 18.03125,-7.46875 L 206.92578,255.93359 A 51.5,51.5 0 0 1 204.5,240.3125 a 51.5,51.5 0 0 1 51.5,-51.5 51.5,51.5 0 0 1 51.5,51.5 51.5,51.5 0 0 1 -2.42578,15.62109 L 408.96875,359.53125 C 413.58334,364.14585 419.95837,367 427,367 c 14.08326,0 25.5,-11.41674 25.5,-25.5 0,-7.04163 -2.85415,-13.41666 -7.46875,-18.03125 L 274.22852,152.95117 C 269.56326,148.2859 263.11895,145.40039 256,145.40039 Z" /></g></svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -1,5 +1,6 @@
|
||||
server {
|
||||
listen 9180;
|
||||
listen [::]:9180;
|
||||
sendfile on;
|
||||
default_type application/octet-stream;
|
||||
|
||||
@@ -19,9 +20,11 @@ server {
|
||||
|
||||
location ${PUBLIC_PATH}settings.js {
|
||||
alias /etc/nginx/conf.d/settings.js;
|
||||
add_header Cache-Control "no-store";
|
||||
}
|
||||
|
||||
location ${PUBLIC_PATH}/settings.js {
|
||||
alias /etc/nginx/conf.d/settings.js;
|
||||
add_header Cache-Control "no-store";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "feishin",
|
||||
"version": "1.3.0",
|
||||
"version": "1.9.0",
|
||||
"description": "A modern self-hosted music player.",
|
||||
"keywords": [
|
||||
"subsonic",
|
||||
@@ -30,7 +30,7 @@
|
||||
"dev:watch": "electron-vite dev --watch",
|
||||
"i18next": "i18next -c src/i18n/i18next-parser.config.js",
|
||||
"postinstall": "electron-builder install-app-deps",
|
||||
"lint": "pnpm run lint-code && pnpm run lint-styles",
|
||||
"lint": "pnpm run typecheck && pnpm run lint-code && pnpm run lint-styles",
|
||||
"lint-code": "eslint --max-warnings=0 --cache .",
|
||||
"lint-code:fix": "eslint --cache --fix .",
|
||||
"lint-styles": "stylelint --max-warnings=0 'src/**/*.{css,scss}'",
|
||||
@@ -44,14 +44,22 @@
|
||||
"package:mac": "pnpm run build && electron-builder --mac",
|
||||
"package:mac:pr": "pnpm run build && electron-builder --mac --publish never",
|
||||
"package:win": "pnpm run build && electron-builder --win",
|
||||
"package:win-arm64:pr": "pnpm run build && electron-builder --win --arm64 --publish never",
|
||||
"package:win:pr": "pnpm run build && electron-builder --win --publish never",
|
||||
"publish:linux": "pnpm run build && electron-builder --publish always --linux",
|
||||
"publish:linux-arm64": "pnpm run build && electron-builder --publish always --linux --arm64",
|
||||
"publish:linux-arm64:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --linux --arm64",
|
||||
"publish:linux-arm64:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --linux --arm64",
|
||||
"publish:linux:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --linux",
|
||||
"publish:linux:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --linux",
|
||||
"publish:mac": "pnpm run build && electron-builder --publish always --mac",
|
||||
"publish:mac:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --mac",
|
||||
"publish:mac:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --mac",
|
||||
"publish:win": "pnpm run build && electron-builder --publish always --win",
|
||||
"publish:win-arm64": "pnpm run build && electron-builder --publish always --win --arm64",
|
||||
"publish:win-arm64:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --win --arm64",
|
||||
"publish:win-arm64:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --win --arm64",
|
||||
"publish:win:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --win",
|
||||
"publish:win:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --win",
|
||||
"start": "electron-vite preview",
|
||||
"typecheck": "pnpm run typecheck:node && pnpm run typecheck:web",
|
||||
@@ -81,7 +89,7 @@
|
||||
"@wavesurfer/react": "^1.0.11",
|
||||
"@xhayper/discord-rpc": "^1.3.0",
|
||||
"audiomotion-analyzer": "^4.5.1",
|
||||
"axios": "^1.13.2",
|
||||
"axios": "^1.13.5",
|
||||
"butterchurn": "^3.0.0-beta.5",
|
||||
"butterchurn-presets": "^3.0.0-beta.4",
|
||||
"cheerio": "^1.1.2",
|
||||
@@ -95,7 +103,7 @@
|
||||
"electron-store": "^8.2.0",
|
||||
"electron-updater": "^6.6.2",
|
||||
"fast-average-color": "^9.5.0",
|
||||
"fast-xml-parser": "^5.3.2",
|
||||
"fast-xml-parser": "^5.3.6",
|
||||
"format-duration": "^3.0.2",
|
||||
"fuse.js": "^7.1.0",
|
||||
"i18next": "^25.6.2",
|
||||
@@ -103,7 +111,7 @@
|
||||
"idb-keyval": "^6.2.2",
|
||||
"immer": "^10.2.0",
|
||||
"is-electron": "^2.2.2",
|
||||
"lodash": "^4.17.21",
|
||||
"lodash": "^4.17.23",
|
||||
"md5": "^2.3.0",
|
||||
"motion": "^12.23.24",
|
||||
"mpris-service": "^2.1.2",
|
||||
@@ -112,17 +120,15 @@
|
||||
"nuqs": "^2.7.1",
|
||||
"overlayscrollbars": "^2.11.1",
|
||||
"overlayscrollbars-react": "^0.5.6",
|
||||
"qs": "^6.14.1",
|
||||
"qs": "^6.14.2",
|
||||
"react": "^19.1.0",
|
||||
"react-call": "^1.8.1",
|
||||
"react-dom": "^19.1.0",
|
||||
"react-error-boundary": "^5.0.0",
|
||||
"react-i18next": "^16.3.3",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-image": "^4.1.0",
|
||||
"react-loading-skeleton": "^3.5.0",
|
||||
"react-player": "^2.16.0",
|
||||
"react-router": "^7.9.6",
|
||||
"react-router": "^7.13.1",
|
||||
"react-split-pane": "^3.0.4",
|
||||
"react-virtualized-auto-sizer": "^1.0.26",
|
||||
"react-window": "1.8.11",
|
||||
@@ -150,8 +156,8 @@
|
||||
"@vitejs/plugin-react": "^5.1.1",
|
||||
"concurrently": "^9.2.1",
|
||||
"cross-env": "^10.1.0",
|
||||
"electron": "^39.2.7",
|
||||
"electron-builder": "^26.0.12",
|
||||
"electron": "^39.4.0",
|
||||
"electron-builder": "^26.8.2",
|
||||
"electron-devtools-installer": "^4.0.0",
|
||||
"electron-vite": "^4.0.1",
|
||||
"eslint": "^9.24.0",
|
||||
|
||||
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 32 KiB |
@@ -0,0 +1,45 @@
|
||||
import { execSync } from 'child_process';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
/**
|
||||
* Electron-builder afterAllArtifactBuild hook
|
||||
* Runs the app stream update script only for Linux builds
|
||||
* Returns the metainfo file path to be included in published artifacts
|
||||
*/
|
||||
|
||||
// This is not a typescript file, and is called by electron-builder, so we cannot use typescript features here.
|
||||
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
||||
export default async function afterAllArtifactBuild(buildResult) {
|
||||
// Check if this build includes Linux as a target
|
||||
const isLinux = Array.from(buildResult.platformToTargets.keys()).some(
|
||||
(platform) => platform.name === 'linux',
|
||||
);
|
||||
|
||||
if (isLinux) {
|
||||
const updateScriptPath = path.join(__dirname, 'update-app-stream.mjs');
|
||||
const projectRoot = path.resolve(__dirname, '..');
|
||||
const metainfoFile = path.resolve(projectRoot, 'org.jeffvli.feishin.metainfo.xml');
|
||||
|
||||
console.log('Running app stream update for Linux build...');
|
||||
|
||||
try {
|
||||
execSync(`node ${updateScriptPath} --replace-if-version-missing`, {
|
||||
cwd: projectRoot,
|
||||
stdio: 'inherit',
|
||||
});
|
||||
|
||||
// Return the metainfo file to be included in published artifacts
|
||||
return [metainfoFile];
|
||||
} catch (error) {
|
||||
console.error('Failed to update app stream:', error.message);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
// Return empty array if not a Linux build
|
||||
return [];
|
||||
}
|
||||
@@ -3,30 +3,51 @@ import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
if (args.length > 3) {
|
||||
console.error('Usage: node update-app-stream.js [package-file] [date] [metainfo-file]');
|
||||
|
||||
// Parse flags and positional arguments
|
||||
const flags = args.filter((arg) => arg.startsWith('--'));
|
||||
const positionalArgs = args.filter((arg) => !arg.startsWith('--'));
|
||||
const replaceIfVersionMissing = flags.includes('--replace-if-version-missing');
|
||||
|
||||
if (positionalArgs.length > 3) {
|
||||
console.error(
|
||||
'Usage: node update-app-stream.js [package-file] [date] [metainfo-file] [--replace-if-version-missing]',
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const packageFile = args[0] || path.resolve(process.cwd(), 'package.json');
|
||||
const packageFile = positionalArgs[0] || path.resolve(process.cwd(), 'package.json');
|
||||
|
||||
const packageContent = fs.readFileSync(packageFile, 'utf8');
|
||||
const packageJson = JSON.parse(packageContent);
|
||||
const version = packageJson.version;
|
||||
|
||||
const time = Math.floor((Date.parse(args[1]) || Date.now()) / 1000);
|
||||
const metainfoFile = args[2] || path.resolve(process.cwd(), 'org.jeffvli.feishin.metainfo.xml');
|
||||
const time = Math.floor((Date.parse(positionalArgs[1]) || Date.now()) / 1000);
|
||||
const metainfoFile =
|
||||
positionalArgs[2] || path.resolve(process.cwd(), 'org.jeffvli.feishin.metainfo.xml');
|
||||
|
||||
const parser = new XMLParser({ ignoreAttributes: false });
|
||||
const metainfoContent = fs.readFileSync(metainfoFile, 'utf8');
|
||||
const metainfo = parser.parse(metainfoContent);
|
||||
|
||||
if (!metainfo.component.releases.release.find((release) => release['@_version'] === version)) {
|
||||
metainfo.component.releases.release.unshift({
|
||||
'@_date': new Date(time * 1000).toISOString().split('T')[0],
|
||||
'@_type': version.includes('-') ? 'development' : 'stable',
|
||||
'@_version': version,
|
||||
});
|
||||
const newRelease = {
|
||||
'@_date': new Date(time * 1000).toISOString().split('T')[0],
|
||||
'@_type': version.includes('-') ? 'development' : 'stable',
|
||||
'@_version': version,
|
||||
};
|
||||
|
||||
if (replaceIfVersionMissing) {
|
||||
// Replace all releases with only the current version
|
||||
metainfo.component.releases.release = [newRelease];
|
||||
} else {
|
||||
// Default behavior: add new release if it doesn't exist
|
||||
const releaseExists =
|
||||
metainfo.component.releases.release.findIndex(
|
||||
(release) => release['@_version'] === version,
|
||||
) !== -1;
|
||||
if (!releaseExists) {
|
||||
metainfo.component.releases.release.unshift(newRelease);
|
||||
}
|
||||
}
|
||||
|
||||
const builder = new XMLBuilder({ format: true, ignoreAttributes: false, indentBy: ' ' });
|
||||
|
||||
@@ -1 +1,87 @@
|
||||
"use strict";window.SERVER_URL="${SERVER_URL}";window.SERVER_NAME="${SERVER_NAME}";window.SERVER_TYPE="${SERVER_TYPE}";window.SERVER_LOCK="${SERVER_LOCK}";window.LEGACY_AUTHENTICATION="${LEGACY_AUTHENTICATION}";window.ANALYTICS_DISABLED="${ANALYTICS_DISABLED}";
|
||||
"use strict";
|
||||
|
||||
window.SERVER_URL = "${SERVER_URL}";
|
||||
window.REMOTE_URL = "${REMOTE_URL}";
|
||||
window.SERVER_NAME = "${SERVER_NAME}";
|
||||
window.SERVER_TYPE = "${SERVER_TYPE}";
|
||||
window.SERVER_LOCK = "${SERVER_LOCK}";
|
||||
window.LEGACY_AUTHENTICATION = "${LEGACY_AUTHENTICATION}";
|
||||
window.ANALYTICS_DISABLED = "${ANALYTICS_DISABLED}";
|
||||
|
||||
window.FS_GENERAL_ACCENT = "${FS_GENERAL_ACCENT}";
|
||||
window.FS_GENERAL_ALBUM_BACKGROUND = "${FS_GENERAL_ALBUM_BACKGROUND}";
|
||||
window.FS_GENERAL_ALBUM_BACKGROUND_BLUR = "${FS_GENERAL_ALBUM_BACKGROUND_BLUR}";
|
||||
window.FS_GENERAL_ARTIST_BACKGROUND = "${FS_GENERAL_ARTIST_BACKGROUND}";
|
||||
window.FS_GENERAL_ARTIST_BACKGROUND_BLUR = "${FS_GENERAL_ARTIST_BACKGROUND_BLUR}";
|
||||
window.FS_GENERAL_BLUR_EXPLICIT_IMAGES = "${FS_GENERAL_BLUR_EXPLICIT_IMAGES}";
|
||||
window.FS_GENERAL_COMBINED_LYRICS_AND_VISUALIZER = "${FS_GENERAL_COMBINED_LYRICS_AND_VISUALIZER}";
|
||||
window.FS_GENERAL_ENABLE_GRID_MULTI_SELECT = "${FS_GENERAL_ENABLE_GRID_MULTI_SELECT}";
|
||||
window.FS_GENERAL_EXTERNAL_LINKS = "${FS_GENERAL_EXTERNAL_LINKS}";
|
||||
window.FS_GENERAL_FOLLOW_CURRENT_SONG = "${FS_GENERAL_FOLLOW_CURRENT_SONG}";
|
||||
window.FS_GENERAL_FOLLOW_SYSTEM_THEME = "${FS_GENERAL_FOLLOW_SYSTEM_THEME}";
|
||||
window.FS_GENERAL_HOME_FEATURE = "${FS_GENERAL_HOME_FEATURE}";
|
||||
window.FS_GENERAL_HOME_FEATURE_STYLE = "${FS_GENERAL_HOME_FEATURE_STYLE}";
|
||||
window.FS_GENERAL_LANGUAGE = "${FS_GENERAL_LANGUAGE}";
|
||||
window.FS_GENERAL_LAST_FM = "${FS_GENERAL_LAST_FM}";
|
||||
window.FS_GENERAL_LASTFM_API_KEY = "${FS_GENERAL_LASTFM_API_KEY}";
|
||||
window.FS_GENERAL_MUSIC_BRAINZ = "${FS_GENERAL_MUSIC_BRAINZ}";
|
||||
window.FS_GENERAL_NATIVE_ASPECT_RATIO = "${FS_GENERAL_NATIVE_ASPECT_RATIO}";
|
||||
window.FS_GENERAL_PATH_REPLACE = "${FS_GENERAL_PATH_REPLACE}";
|
||||
window.FS_GENERAL_PATH_REPLACE_WITH = "${FS_GENERAL_PATH_REPLACE_WITH}";
|
||||
window.FS_GENERAL_PLAYERBAR_OPEN_DRAWER = "${FS_GENERAL_PLAYERBAR_OPEN_DRAWER}";
|
||||
window.FS_GENERAL_PRIMARY_SHADE = "${FS_GENERAL_PRIMARY_SHADE}";
|
||||
window.FS_GENERAL_RESUME = "${FS_GENERAL_RESUME}";
|
||||
window.FS_GENERAL_SHOW_LYRICS_IN_SIDEBAR = "${FS_GENERAL_SHOW_LYRICS_IN_SIDEBAR}";
|
||||
window.FS_GENERAL_SHOW_RATINGS = "${FS_GENERAL_SHOW_RATINGS}";
|
||||
window.FS_GENERAL_SHOW_VISUALIZER_IN_SIDEBAR = "${FS_GENERAL_SHOW_VISUALIZER_IN_SIDEBAR}";
|
||||
window.FS_GENERAL_SIDEBAR_COLLAPSED_NAVIGATION = "${FS_GENERAL_SIDEBAR_COLLAPSED_NAVIGATION}";
|
||||
window.FS_GENERAL_SIDEBAR_COLLAPSE_SHARED = "${FS_GENERAL_SIDEBAR_COLLAPSE_SHARED}";
|
||||
window.FS_GENERAL_SIDEBAR_PLAYLIST_LIST = "${FS_GENERAL_SIDEBAR_PLAYLIST_LIST}";
|
||||
window.FS_GENERAL_SIDEBAR_PLAYLIST_SORTING = "${FS_GENERAL_SIDEBAR_PLAYLIST_SORTING}";
|
||||
window.FS_GENERAL_SIDE_QUEUE_TYPE = "${FS_GENERAL_SIDE_QUEUE_TYPE}";
|
||||
window.FS_GENERAL_THEME = "${FS_GENERAL_THEME}";
|
||||
window.FS_GENERAL_THEME_DARK = "${FS_GENERAL_THEME_DARK}";
|
||||
window.FS_GENERAL_THEME_LIGHT = "${FS_GENERAL_THEME_LIGHT}";
|
||||
window.FS_GENERAL_USE_THEME_ACCENT_COLOR = "${FS_GENERAL_USE_THEME_ACCENT_COLOR}";
|
||||
window.FS_GENERAL_USE_THEME_PRIMARY_SHADE = "${FS_GENERAL_USE_THEME_PRIMARY_SHADE}";
|
||||
window.FS_GENERAL_ZOOM_FACTOR = "${FS_GENERAL_ZOOM_FACTOR}";
|
||||
|
||||
window.FS_PLAYBACK_MEDIA_SESSION = "${FS_PLAYBACK_MEDIA_SESSION}";
|
||||
window.FS_PLAYBACK_WEB_AUDIO = "${FS_PLAYBACK_WEB_AUDIO}";
|
||||
window.FS_PLAYBACK_AUDIO_FADE_ON_STATUS_CHANGE = "${FS_PLAYBACK_AUDIO_FADE_ON_STATUS_CHANGE}";
|
||||
window.FS_PLAYBACK_PRESERVE_PITCH = "${FS_PLAYBACK_PRESERVE_PITCH}";
|
||||
window.FS_PLAYBACK_SCROBBLE_ENABLED = "${FS_PLAYBACK_SCROBBLE_ENABLED}";
|
||||
window.FS_PLAYBACK_SCROBBLE_NOTIFY = "${FS_PLAYBACK_SCROBBLE_NOTIFY}";
|
||||
window.FS_PLAYBACK_SCROBBLE_AT_DURATION = "${FS_PLAYBACK_SCROBBLE_AT_DURATION}";
|
||||
window.FS_PLAYBACK_SCROBBLE_AT_PERCENTAGE = "${FS_PLAYBACK_SCROBBLE_AT_PERCENTAGE}";
|
||||
window.FS_PLAYBACK_TRANSCODE_ENABLED = "${FS_PLAYBACK_TRANSCODE_ENABLED}";
|
||||
|
||||
window.FS_DISCORD_ENABLED = "${FS_DISCORD_ENABLED}";
|
||||
window.FS_DISCORD_CLIENT_ID = "${FS_DISCORD_CLIENT_ID}";
|
||||
window.FS_DISCORD_DISPLAY_TYPE = "${FS_DISCORD_DISPLAY_TYPE}";
|
||||
window.FS_DISCORD_LINK_TYPE = "${FS_DISCORD_LINK_TYPE}";
|
||||
window.FS_DISCORD_SHOW_AS_LISTENING = "${FS_DISCORD_SHOW_AS_LISTENING}";
|
||||
window.FS_DISCORD_SHOW_PAUSED = "${FS_DISCORD_SHOW_PAUSED}";
|
||||
window.FS_DISCORD_SHOW_SERVER_IMAGE = "${FS_DISCORD_SHOW_SERVER_IMAGE}";
|
||||
window.FS_DISCORD_SHOW_STATE_ICON = "${FS_DISCORD_SHOW_STATE_ICON}";
|
||||
|
||||
window.FS_LYRICS_FETCH = "${FS_LYRICS_FETCH}";
|
||||
window.FS_LYRICS_FOLLOW = "${FS_LYRICS_FOLLOW}";
|
||||
window.FS_LYRICS_DELAY_MS = "${FS_LYRICS_DELAY_MS}";
|
||||
window.FS_LYRICS_PREFER_LOCAL = "${FS_LYRICS_PREFER_LOCAL}";
|
||||
window.FS_LYRICS_SHOW_MATCH = "${FS_LYRICS_SHOW_MATCH}";
|
||||
window.FS_LYRICS_SHOW_PROVIDER = "${FS_LYRICS_SHOW_PROVIDER}";
|
||||
window.FS_LYRICS_ENABLE_AUTO_TRANSLATION = "${FS_LYRICS_ENABLE_AUTO_TRANSLATION}";
|
||||
window.FS_LYRICS_TRANSLATION_API_KEY = "${FS_LYRICS_TRANSLATION_API_KEY}";
|
||||
window.FS_LYRICS_TRANSLATION_TARGET_LANGUAGE = "${FS_LYRICS_TRANSLATION_TARGET_LANGUAGE}";
|
||||
window.FS_LYRICS_ALIGNMENT = "${FS_LYRICS_ALIGNMENT}";
|
||||
|
||||
window.FS_AUTO_DJ_ENABLED = "${FS_AUTO_DJ_ENABLED}";
|
||||
window.FS_AUTO_DJ_ITEM_COUNT = "${FS_AUTO_DJ_ITEM_COUNT}";
|
||||
window.FS_AUTO_DJ_TIMING = "${FS_AUTO_DJ_TIMING}";
|
||||
|
||||
window.FS_CSS_CONTENT = "${FS_CSS_CONTENT}";
|
||||
window.FS_CSS_ENABLED = "${FS_CSS_ENABLED}";
|
||||
window.FS_FONT_TYPE = "${FS_FONT_TYPE}";
|
||||
window.FS_FONT_BUILT_IN = "${FS_FONT_BUILT_IN}";
|
||||
window.FS_FONT_SYSTEM = "${FS_FONT_SYSTEM}";
|
||||
|
||||
@@ -1,27 +1,33 @@
|
||||
{
|
||||
"action": {
|
||||
"addToFavorites": "إضافة الى $t(entity.favorite_other)",
|
||||
"addToPlaylist": "إضافة الى $t(entity.playlist_one)",
|
||||
"addToFavorites": "إضافة الى $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "إضافة الى $t(entity.playlist, {\"count\": 1})",
|
||||
"clearQueue": "مسح قائمة الإنتظار",
|
||||
"createPlaylist": "إنشاء $t(entity.playlist_one)",
|
||||
"deletePlaylist": "حذف $t(entity.playlist_one)",
|
||||
"createPlaylist": "إنشاء $t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "حذف $t(entity.playlist, {\"count\": 1})",
|
||||
"deselectAll": "إلغاء تحديد الكل",
|
||||
"editPlaylist": "تعديل $t(entity.playlist_one)",
|
||||
"editPlaylist": "تعديل $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "اذهب الى صفحة",
|
||||
"moveToNext": "الذهاب الى التالي",
|
||||
"moveToBottom": "الذهاب الى الأسفل",
|
||||
"moveToTop": "الذهاب الى الأعلى",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "حذف من $t(entity.favorite_other)",
|
||||
"removeFromPlaylist": "حذف من $t(entity.playlist_one)",
|
||||
"removeFromFavorites": "حذف من $t(entity.favorite, {\"count\": 2})",
|
||||
"removeFromPlaylist": "حذف من $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "حذف من قائمة الإنتظار",
|
||||
"setRating": "تحديد التقييم",
|
||||
"toggleSmartPlaylistEditor": "تشغيل / إطفاء وضع التعديل لـ $t(entity.smartPlaylist)",
|
||||
"viewPlaylists": "إظهار $t(entity.playlist_other)",
|
||||
"viewPlaylists": "إظهار $t(entity.playlist, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "فتح في Last.fm",
|
||||
"musicbrainz": "فتح في MusicBrainz"
|
||||
}
|
||||
},
|
||||
"addOrRemoveFromSelection": "إضافة أو إزالة من الإختيارات",
|
||||
"selectRangeOfItems": "اختر مجموعة من العناصر",
|
||||
"goToCurrent": "الانتقال إلى العنصر الحالي",
|
||||
"createRadioStation": "يخلق $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "يمسح $t(entity.radioStation, {\"count\": 1})",
|
||||
"selectAll": "تحديد الكل"
|
||||
},
|
||||
"common": {
|
||||
"action_zero": "عملية",
|
||||
@@ -59,7 +65,7 @@
|
||||
"configure": "تعديل",
|
||||
"confirm": "تأكيد",
|
||||
"create": "إنشاء",
|
||||
"currentSong": "$t(entity.track_one) الحالي",
|
||||
"currentSong": "$t(entity.track, {\"count\": 1}) الحالي",
|
||||
"decrease": "تنقيص",
|
||||
"delete": "حذف",
|
||||
"descending": "تنازلي",
|
||||
@@ -102,7 +108,7 @@
|
||||
"path": "المسار",
|
||||
"playerMustBePaused": "يجب إيقاف المشغل",
|
||||
"preview": "معاينة",
|
||||
"previousSong": "$t(entity.track_one) السابق",
|
||||
"previousSong": "$t(entity.track, {\"count\": 1}) السابق",
|
||||
"quit": "خروج",
|
||||
"random": "عشوائي",
|
||||
"rating": "التقييم",
|
||||
@@ -117,7 +123,12 @@
|
||||
"saveAndReplace": "حفظ واستبدال",
|
||||
"saveAs": "حفظ بإسم",
|
||||
"search": "بحث",
|
||||
"setting": "إعداد",
|
||||
"setting_zero": "إعداد",
|
||||
"setting_one": "",
|
||||
"setting_two": "",
|
||||
"setting_few": "",
|
||||
"setting_many": "",
|
||||
"setting_other": "",
|
||||
"share": "نشر",
|
||||
"size": "حجم",
|
||||
"sortOrder": "الترتيب",
|
||||
|
||||
@@ -2,24 +2,25 @@
|
||||
"page": {
|
||||
"sidebar": {
|
||||
"myLibrary": "La meva llibreria",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"nowPlaying": "ara sona",
|
||||
"shared": "$t(entity.playlist_other) compartida",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"nowPlaying": "s'està reproduint",
|
||||
"shared": "$t(entity.playlist, {\"count\": 2}) compartides",
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})",
|
||||
"collections": "col·leccions"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"relatedArtists": "$t(entity.artist_other) similars",
|
||||
"viewAllTracks": "veure totes les $t(entity.track_other)",
|
||||
"relatedArtists": "$t(entity.artist, {\"count\": 2}) similars",
|
||||
"viewAllTracks": "mostra totes les $t(entity.track, {\"count\": 2})",
|
||||
"about": "Sobre {{artist}}",
|
||||
"appearsOn": "apareix a",
|
||||
"recentReleases": "Llançaments recents",
|
||||
@@ -28,24 +29,28 @@
|
||||
"topSongsFrom": "les millors cançons de {{title}}",
|
||||
"viewAll": "mostra-ho tot",
|
||||
"groupingTypeAll": "tots els tipus de llançaments",
|
||||
"groupingTypePrimary": "tipus principals de llançament"
|
||||
"groupingTypePrimary": "tipus principals de llançament",
|
||||
"favoriteSongs": "Cançons preferides",
|
||||
"topSongsCommunity": "comunitat",
|
||||
"topSongsPersonal": "personal",
|
||||
"favoriteSongsFrom": "cançons preferides de {{title}}"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "més d'aquest $t(entity.artist_one)",
|
||||
"moreFromArtist": "més d'aquest $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "més de {{item}}",
|
||||
"released": "publicat"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "àlbums de {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"appMenu": {
|
||||
"quit": "$t(common.quit)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"goBack": "torna enrere",
|
||||
"goForward": "avança",
|
||||
"collapseSidebar": "replega la barra lateral",
|
||||
@@ -84,15 +89,15 @@
|
||||
"showDetails": "informació",
|
||||
"numberSelected": "{{count}} seleccionat",
|
||||
"shareItem": "comparteix l'element",
|
||||
"goToAlbumArtist": "Ves a $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "ves a $t(entity.album_one)",
|
||||
"goToAlbumArtist": "Ves a $t(entity.albumArtist, {\"count\": 1})",
|
||||
"goToAlbum": "ves a $t(entity.album, {\"count\": 1})",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "ves a"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showAlbums": "mostra $t(entity.album_other) $t(entity.genre_one)",
|
||||
"showTracks": "mostra $t(entity.track_other) $t(entity.genre_one)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showAlbums": "mostra $t(entity.album, {\"count\": 2}) de $t(entity.genre, {\"count\": 1})",
|
||||
"showTracks": "mostra $t(entity.track, {\"count\": 2}) de $t(entity.genre, {\"count\": 1})"
|
||||
},
|
||||
"home": {
|
||||
"title": "$t(common.home)",
|
||||
@@ -101,15 +106,15 @@
|
||||
"mostPlayed": "els més reproduïts",
|
||||
"recentlyPlayed": "reproduït recentment",
|
||||
"recentlyReleased": "estrenat fa poc",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "pistes de {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
|
||||
"genreTracks": "$t(entity.track, {\"count\": 2}) \"{{genre}}\""
|
||||
},
|
||||
"manageServers": {
|
||||
"username": "nom d'usuari",
|
||||
@@ -184,13 +189,26 @@
|
||||
"reorder": "el reordenament només s'activa quan s'ordena per id"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "emissores de ràdio"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(en pausa) ",
|
||||
"privateMode": "(mode privat)"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "sobreescriu existents",
|
||||
"saveAsCollection": "desa com a col·lecció"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "commits des de {{stable}}",
|
||||
"noNewCommits": "no hi ha hagut commits en aquest període",
|
||||
"noStableReleaseToCompare": "no hi ha actualitzacions disponibles amb les quals comparar"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
@@ -262,9 +280,9 @@
|
||||
"action_other": "accions",
|
||||
"newVersion": "s'ha instal·lat una nova versió ({{version}})",
|
||||
"viewReleaseNotes": "veure les notes de la versió",
|
||||
"currentSong": "$t(entity.track_one) actual",
|
||||
"currentSong": "$t(entity.track, {\"count\": 1}) actual",
|
||||
"limit": "límit",
|
||||
"previousSong": "$t(entity.track_one) anterior",
|
||||
"previousSong": "$t(entity.track, {\"count\": 1}) anterior",
|
||||
"trackNumber": "pista",
|
||||
"albumGain": "guany de l'àlbum",
|
||||
"albumPeak": "pic de l'àlbum",
|
||||
@@ -288,7 +306,9 @@
|
||||
"playerMustBePaused": "cal pausar el reproductor",
|
||||
"restartRequired": "cal reiniciar",
|
||||
"sampleRate": "freqüència de mostreig",
|
||||
"setting": "configuració",
|
||||
"setting_one": "configuració",
|
||||
"setting_many": "configuracions",
|
||||
"setting_other": "configuracions",
|
||||
"trackGain": "guany de pista",
|
||||
"trackPeak": "pic de pista",
|
||||
"gap": "espera",
|
||||
@@ -314,7 +334,9 @@
|
||||
"example": "exemple",
|
||||
"mood": "estat d'ànim",
|
||||
"filter_single": "senzill",
|
||||
"filter_multiple": "multi"
|
||||
"filter_multiple": "multi",
|
||||
"rename": "reanomena",
|
||||
"newVersionAvailable": "hi ha una nova versió disponible"
|
||||
},
|
||||
"entity": {
|
||||
"album_one": "àlbum",
|
||||
@@ -341,7 +363,7 @@
|
||||
"playlistWithCount_one": "{{count}} llista de reproducció",
|
||||
"playlistWithCount_many": "{{count}} llistes de reproducció",
|
||||
"playlistWithCount_other": "{{count}} llistes de reproducció",
|
||||
"smartPlaylist": "$t(entity.playlist_one) intel·ligent",
|
||||
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) intel·ligent",
|
||||
"play_one": "{{count}} reproducció",
|
||||
"play_many": "{{count}} reproduccions",
|
||||
"play_other": "{{count}} reproduccions",
|
||||
@@ -378,34 +400,34 @@
|
||||
},
|
||||
"form": {
|
||||
"addToPlaylist": {
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"title": "afegir a una $t(entity.playlist_one)",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"title": "afegir a una $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "salta't els duplicats",
|
||||
"success": "s'ha afegit $t(entity.trackWithCount, {\"count\": {{message}} }) a $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"create": "crea $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "cerca $t(entity.playlist_other) o escriu per crear-ne una de nova"
|
||||
"create": "crea $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "cerca $t(entity.playlist, {\"count\": 2}) o escriu per crear-ne una de nova"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"success": "$t(entity.playlist_one) s'ha creat amb èxit",
|
||||
"title": "crear una $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) s'ha creat amb èxit",
|
||||
"title": "crea una $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "públic"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"success": "$t(entity.playlist_one) s'ha eliminat amb èxit",
|
||||
"title": "elimina la $t(entity.playlist_one)",
|
||||
"input_confirm": "escriviu el nom de la $t(entity.playlist_one) per confirmar"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) s'ha eliminat amb èxit",
|
||||
"title": "elimina la $t(entity.playlist, {\"count\": 1})",
|
||||
"input_confirm": "escriviu el nom de la $t(entity.playlist, {\"count\": 1}) per confirmar"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"success": "$t(entity.playlist_one) s'ha actualitzat amb èxit",
|
||||
"title": "editar la $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) s'ha actualitzat amb èxit",
|
||||
"title": "editar la $t(entity.playlist, {\"count\": 1})",
|
||||
"publicJellyfinNote": "Per algun motiu, Jellyfin no exposa si una llista de reproducció és pública o no. Si voleu que es mantingui pública, seleccioneu la següent entrada",
|
||||
"editNote": "es recomana no editar manualment les llistes de reproducció grans. segur que accepteu el risc de perdre dades si sobreescriviu la llista de reproducció existent?"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "cerca de lletres"
|
||||
},
|
||||
@@ -433,7 +455,9 @@
|
||||
"setExpiration": "estableix expiració",
|
||||
"success": "s'ha copiat l'enllaç de compartició al porta-retalls (o feu clic aquí per obrir-lo)",
|
||||
"expireInvalid": "la data d'expiració ha de ser al futur",
|
||||
"createFailed": "no s'ha pogut crear el recurs compartit (està habilitat, l'ús compartit?)"
|
||||
"createFailed": "no s'ha pogut crear el recurs compartit (està habilitat, l'ús compartit?)",
|
||||
"copyToClipboard": "Copiar al porta-retalls: Ctrl+C, Enter",
|
||||
"successMustClick": "Compartició creada correctament. Feu clic aquí per obrir-la."
|
||||
},
|
||||
"updateServer": {
|
||||
"success": "s'ha actualitzat el servidor amb èxit",
|
||||
@@ -459,7 +483,7 @@
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "reprodueix a l'atzar",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "quantes cançons?",
|
||||
"input_minYear": "de l'any",
|
||||
"input_maxYear": "fins a l'any",
|
||||
@@ -485,14 +509,14 @@
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"addToFavorites": "afegeix a $t(entity.favorite_other)",
|
||||
"addToPlaylist": "afegeix a $t(entity.playlist_one)",
|
||||
"createPlaylist": "crea $t(entity.playlist_one)",
|
||||
"deletePlaylist": "elimina la $t(entity.playlist_one)",
|
||||
"editPlaylist": "edita la $t(entity.playlist_one)",
|
||||
"addToFavorites": "afegeix a $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "afegeix a $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "crea $t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "elimina la $t(entity.playlist, {\"count\": 1})",
|
||||
"editPlaylist": "edita $t(entity.playlist, {\"count\": 1})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "elimina dels $t(entity.favorite_other)",
|
||||
"removeFromPlaylist": "elimina de $t(entity.playlist_one)",
|
||||
"removeFromFavorites": "elimina dels $t(entity.favorite, {\"count\": 2})",
|
||||
"removeFromPlaylist": "elimina de $t(entity.playlist, {\"count\": 1})",
|
||||
"clearQueue": "buida la cua",
|
||||
"removeFromQueue": "treure de la cua",
|
||||
"goToPage": "anar a la pàgina",
|
||||
@@ -501,7 +525,7 @@
|
||||
"musicbrainz": "Obrir a MusicBrainz"
|
||||
},
|
||||
"deselectAll": "deselecciona-ho tot",
|
||||
"viewPlaylists": "veure$t(entity.playlist_other)",
|
||||
"viewPlaylists": "veure $t(entity.playlist, {\"count\": 2})",
|
||||
"moveToNext": "passar al següent",
|
||||
"moveToBottom": "anar al final",
|
||||
"moveToTop": "anar al principi",
|
||||
@@ -517,12 +541,13 @@
|
||||
"shuffleAll": "mescla-ho tot",
|
||||
"shuffleSelected": "mescla els seleccionats",
|
||||
"viewMore": "mostra'n més",
|
||||
"createRadioStation": "crea $t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "elimina $t(entity.radioStation_one)",
|
||||
"createRadioStation": "crea $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "elimina $t(entity.radioStation, {\"count\": 1})",
|
||||
"addOrRemoveFromSelection": "afegeix o elimina de la selecció",
|
||||
"selectRangeOfItems": "selecciona un interval d'elements",
|
||||
"selectAll": "selecciona-ho tot",
|
||||
"openApplicationDirectory": "obre el directori de l'aplicació"
|
||||
"openApplicationDirectory": "obre el directori de l'aplicació",
|
||||
"goToCurrent": "anar a l'element actual"
|
||||
},
|
||||
"setting": {
|
||||
"language_description": "estableix l'idioma de l'aplicació ($t(common.restartRequired))",
|
||||
@@ -530,15 +555,14 @@
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"playButtonBehavior_optionPlay": "$t(player.play)",
|
||||
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"font": "tipus de lletra",
|
||||
"fontType": "selecció de tipus de lletra",
|
||||
"fontType_optionBuiltIn": "tipus de lletra integrats",
|
||||
"fontType_optionCustom": "tipus de lletra personalitzats",
|
||||
"fontType_optionSystem": "tipus de lletra del sistema",
|
||||
"disableAutomaticUpdates": "desactivar les actualitzacions automàtiques",
|
||||
"disableLibraryUpdateOnStartup": "desactiva la comprovació de noves versions a l'inici",
|
||||
"homeConfiguration": "configuració de la pàgina d'inici",
|
||||
"sidebarConfiguration": "configuració de la barra lateral",
|
||||
@@ -548,7 +572,7 @@
|
||||
"sidePlayQueueStyle_optionAttached": "unida",
|
||||
"sidePlayQueueStyle_optionDetached": "separada",
|
||||
"audioDevice": "dispositiu d'àudio",
|
||||
"audioDevice_description": "seleccioneu el dispositiu d'àudio que voleu utilitzar per a la reproducció (només pel reproductor web)",
|
||||
"audioDevice_description": "seleccioneu el dispositiu d'àudio que voleu utilitzar per a la reproducció",
|
||||
"audioPlayer": "reproductor d'àudio",
|
||||
"audioPlayer_description": "seleccioneu el reproductor d'àudio que voleu utilitzar per a la reproducció",
|
||||
"sidebarConfiguration_description": "selecciona els elements i l'ordre en què apareixen a la barra lateral",
|
||||
@@ -594,9 +618,9 @@
|
||||
"customFontPath_description": "estableix la ruta a una font personalitzada per utilitzar-la a l'aplicació",
|
||||
"discordApplicationId": "id d'aplicació de {{discord}}",
|
||||
"discordApplicationId_description": "l'id d'aplicació per l'estat d'activitat de {{discord}} (per defecte, {{defaultId}})",
|
||||
"discordPausedStatus": "mosta l'estat d'activitat quan està en pausa",
|
||||
"discordPausedStatus": "mostra l'estat d'activitat quan està en pausa",
|
||||
"discordPausedStatus_description": "si està activat, l'estat es mostrarà quan el reproductor estigui pausat",
|
||||
"discordIdleStatus": "mosta l'estat d'activitat en inactivitat",
|
||||
"discordIdleStatus": "mosta l'estat d'activitat quan està inactiu",
|
||||
"discordIdleStatus_description": "si està activat, s'actualitzarà l'estat mentre el reproductor estigui inactiu",
|
||||
"discordListening": "mosta l'estat com escoltant",
|
||||
"discordListening_description": "mosta l'estat com escoltant en comptes de jugant",
|
||||
@@ -662,7 +686,7 @@
|
||||
"lyricFetch": "extreu la lletra d'internet",
|
||||
"lyricFetch_description": "extreu la lletra de diverses fonts d'internet",
|
||||
"lyricFetchProvider": "proveïdors de lletres",
|
||||
"lyricFetchProvider_description": "selecciona els proveïdors de lletres. l'ordre en què apareixen és l'ordre en què es consultaran",
|
||||
"lyricFetchProvider_description": "selecciona els proveïdors de lletres",
|
||||
"lyricOffset": "desfasament de la lletra (ms)",
|
||||
"lyricOffset_description": "desplaça la lletra els mil·lisegons especificats",
|
||||
"minimizeToTray": "minimitza a la safata",
|
||||
@@ -768,7 +792,7 @@
|
||||
"releaseChannel_optionLatest": "última versió",
|
||||
"releaseChannel_optionBeta": "beta",
|
||||
"releaseChannel": "canal de versions",
|
||||
"releaseChannel_description": "tria entre versions estables i versions beta per les actualitzacions automàtiques",
|
||||
"releaseChannel_description": "trieu entre versions estables i beta o alfa (diàries) per les actualitzacions automàtiques",
|
||||
"mediaSession": "activa Media Session",
|
||||
"mediaSession_description": "activa la integració amb Media Session per mostrar els controls multimèdia i les metadades a l'indicador de volum del sistema i la pantalla de bloqueig",
|
||||
"crossfadeStyle": "estil de fosa encadenada",
|
||||
@@ -856,17 +880,47 @@
|
||||
"pathReplace": "substitució de la ruta de l'arxiu",
|
||||
"pathReplace_description": "substitueix la ruta d'arxiu predeterminada del servidor",
|
||||
"pathReplace_optionRemovePrefix": "elimina el prefix",
|
||||
"pathReplace_optionAddPrefix": "afegeix prefix"
|
||||
"pathReplace_optionAddPrefix": "afegeix prefix",
|
||||
"homeFeatureStyle_description": "controla l'estil del carrusel de destacats de l'inici",
|
||||
"homeFeatureStyle": "estil del carrusel de destacats de l'inici",
|
||||
"homeFeatureStyle_optionMultiple": "múltiple",
|
||||
"homeFeatureStyle_optionSingle": "simple",
|
||||
"enableGridMultiSelect": "activa la selecció múltiple de quadrícula",
|
||||
"enableGridMultiSelect_description": "quan està activada, podeu seleccionar més d'un element en la vista de quadrícula; si feu clic en la imatge d'un element de la quadrícula, accedireu a la pàgina de l'element",
|
||||
"sidebarPlaylistSorting_description": "permet ordenar manualment les llistes de reproducció a la barra lateral arrossegant amb el ratolí en comptes de seguir l'ordre predeterminat del servidor",
|
||||
"sidebarPlaylistSorting": "ordenació de llistes de reproducció de la barra lateral",
|
||||
"sidebarPlaylistListFilterRegex_description": "amaga les llistes de reproducció de la barra lateral que coincideixin amb aquesta expressió regular",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "ex. ^Mescla diària.*",
|
||||
"sidebarPlaylistListFilterRegex": "regex pel filtre de llistes",
|
||||
"analyticsEnable": "envia analítiques basades en l'ús",
|
||||
"analyticsEnable_description": "s'envien dades d'ús anonimitzades al desenvolupar per ajudar a millorar l'aplicació",
|
||||
"automaticUpdates": "actualitzacions automàtiques",
|
||||
"automaticUpdates_description": "cerca i instal·la actualitzacions automàticament",
|
||||
"releaseChannel_optionAlpha": "alfa (diària)",
|
||||
"blurExplicitImages": "desenfoca imatges explícites",
|
||||
"blurExplicitImages_description": "les caràtules d'àlbums i cançons marcades com a explícites quedaran desenfocades",
|
||||
"discordStateIcon": "mostra la icona de reproducció",
|
||||
"discordStateIcon_description": "mostra una petita icona de reproducció a l'estat d'activitat. l'icona de pausa es mostra quan \"mostra l'estat d'activitat quan està en pausa\" està activat",
|
||||
"autosave": "desa automàticament la cua de reproducció",
|
||||
"autosave_description": "activa el desament automàtic de la cua de reproducció al teu servidor. això només és possible quan s'utilitza Navidrome/Subsonic i no es pot tenir una cua de reproducció mixta.",
|
||||
"autosaveCount": "freqüència de desament de cua de reproducció automàtica",
|
||||
"autosaveCount_description": "quants canvis de pista abans que es desi la cua. 1 (mínim) significa cada canvi de cançó",
|
||||
"useThemePrimaryShade": "utilitza l'ombra primària del tema",
|
||||
"useThemePrimaryShade_description": "utilitza el to primari definit al tema seleccionat per a les variants de color primari",
|
||||
"primaryShade": "ombra primària",
|
||||
"primaryShade_description": "substitueix el to primari (0–9) utilitzat per a botons, enllaços i altres elements de color primari",
|
||||
"playerItemConfiguration_description": "configurar quins elements es mostren i en quin ordre al reproductor de pantalla completa",
|
||||
"playerItemConfiguration": "configuració d'elements del jugador"
|
||||
},
|
||||
"table": {
|
||||
"column": {
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"codec": "$t(common.codec)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"releaseYear": "any",
|
||||
"playCount": "reproduccions",
|
||||
"releaseDate": "data de llançament",
|
||||
@@ -918,27 +972,28 @@
|
||||
"alternateRowColors": "colors de fila alternants",
|
||||
"horizontalBorders": "vores de fila",
|
||||
"rowHoverHighlight": "ressalta en passar el cursor per la fila",
|
||||
"verticalBorders": "vores de columna"
|
||||
"verticalBorders": "vores de columna",
|
||||
"showHeader": "mostra l'encapçalament"
|
||||
},
|
||||
"label": {
|
||||
"actions": "$t(common.action_other)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"codec": "$t(common.codec)",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"rating": "$t(common.rating)",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(common.title)",
|
||||
"year": "$t(common.year)",
|
||||
"playCount": "compte de reproduccions",
|
||||
@@ -949,18 +1004,20 @@
|
||||
"lastPlayed": "última reproducció",
|
||||
"rowIndex": "índex de files",
|
||||
"titleCombined": "$t(common.title) (combinat)",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"genreBadge": "$t(entity.genre_one) (insígnies)",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (insígnies)",
|
||||
"image": "imatge",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"composer": "compositor",
|
||||
"titleArtist": "$t(common.title) (artista)"
|
||||
"titleArtist": "$t(common.title) (artista)",
|
||||
"albumGroup": "grup d'àlbums"
|
||||
},
|
||||
"view": {
|
||||
"table": "taula",
|
||||
"grid": "quadrícula",
|
||||
"list": "llista"
|
||||
"list": "llista",
|
||||
"detail": "detall"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -968,17 +1025,17 @@
|
||||
"fromYear": "des de l'any",
|
||||
"releaseYear": "any de llançament",
|
||||
"toYear": "fins a l'any",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biografia",
|
||||
"bitrate": "taxa de bits",
|
||||
"bpm": "bpm",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"comment": "comentari",
|
||||
"disc": "disc",
|
||||
"duration": "durada",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"id": "identificador",
|
||||
"name": "nom",
|
||||
"note": "nota",
|
||||
@@ -997,7 +1054,7 @@
|
||||
"recentlyAdded": "afegit recentment",
|
||||
"recentlyPlayed": "reproduït recentment",
|
||||
"recentlyUpdated": "actualitzat recentment",
|
||||
"albumCount": "nombre de $t(entity.album_other)",
|
||||
"albumCount": "nombre de $t(entity.album, {\"count\": 2})",
|
||||
"favorited": "preferits",
|
||||
"isCompilation": "és una compilació",
|
||||
"isFavorited": "és un preferit",
|
||||
@@ -1007,7 +1064,10 @@
|
||||
"lastPlayed": "última reproducció",
|
||||
"path": "ruta",
|
||||
"songCount": "nombre de cançons",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"sortName": "ordena per nom",
|
||||
"matchAnd": "i",
|
||||
"matchOr": "o"
|
||||
},
|
||||
"player": {
|
||||
"muted": "silenciat",
|
||||
@@ -1048,7 +1108,17 @@
|
||||
"restoreQueueFromServer": "restaura la cua del servidor",
|
||||
"saveQueueToServer": "desa la cua al servidor",
|
||||
"artistRadio": "ràdio de l'artista",
|
||||
"trackRadio": "ràdio de la pista"
|
||||
"trackRadio": "ràdio de la pista",
|
||||
"sleepTimer": "temporitzador d'adormir",
|
||||
"sleepTimer_endOfSong": "final de la cançó actual",
|
||||
"sleepTimer_minutes": "{{count}} min",
|
||||
"sleepTimer_hours": "{{count}} h",
|
||||
"sleepTimer_custom": "personalitzat",
|
||||
"sleepTimer_off": "apagat",
|
||||
"sleepTimer_timeRemaining": "queden {{time}}",
|
||||
"sleepTimer_setCustom": "configura el temporitzador",
|
||||
"sleepTimer_cancel": "cancel·la el temporitzador",
|
||||
"albumRadio": "ràdio d'àlbums"
|
||||
},
|
||||
"error": {
|
||||
"credentialsRequired": "credencials requerides",
|
||||
@@ -1079,11 +1149,14 @@
|
||||
"saveQueueFailed": "error en desar la cua",
|
||||
"settingsSyncError": "hi ha discrepàncies entre la configuració del renderitzador i el procés principal. reinicieu l'aplicació per aplicar els canvis",
|
||||
"noNetwork": "servidor no disponible",
|
||||
"noNetworkDescription": "no s'ha pogut connectar amb el servidor"
|
||||
"noNetworkDescription": "no s'ha pogut connectar amb el servidor",
|
||||
"invalidJson": "JSON invàlid",
|
||||
"serverLockSingleServer": "només es permet un servidor quan el servidor està bloquejat",
|
||||
"playbackPausedDueToError": "la reproducció s'ha pausat a causa d'un error"
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "emissió",
|
||||
"ep": "EP",
|
||||
"other": "altres",
|
||||
|
||||
@@ -38,7 +38,17 @@
|
||||
"restoreQueueFromServer": "obnovit frontu ze serveru",
|
||||
"saveQueueToServer": "uložit frontu na server",
|
||||
"artistRadio": "rádio umělce",
|
||||
"trackRadio": "rádio skladby"
|
||||
"trackRadio": "rádio skladby",
|
||||
"sleepTimer": "časovač spánku",
|
||||
"sleepTimer_endOfSong": "konec aktuální skladby",
|
||||
"sleepTimer_minutes": "{{count}} min.",
|
||||
"sleepTimer_hours": "{{count}} hod.",
|
||||
"sleepTimer_custom": "vlastní",
|
||||
"sleepTimer_off": "vypnuto",
|
||||
"sleepTimer_timeRemaining": "zbývá {{time}}",
|
||||
"sleepTimer_setCustom": "nastavit časovač",
|
||||
"sleepTimer_cancel": "zrušit časovač",
|
||||
"albumRadio": "rádio alba"
|
||||
},
|
||||
"setting": {
|
||||
"crossfadeStyle_description": "vyberte způsob prolnutí u přehrávače zvuku",
|
||||
@@ -46,7 +56,7 @@
|
||||
"hotkey_skipBackward": "přeskočení zpět",
|
||||
"replayGainMode_description": "úprava zesílení hlasitosti podle hodnot {{ReplayGain}} uložených v metadatech souborů",
|
||||
"volumeWheelStep_description": "počet procent, o které má být hlasitost posunuta při přejetí kolečkem myši na posuvníku hlasitosti",
|
||||
"audioDevice_description": "vyberte zvukové zařízení k přehrávání (pouze webový přehrávač)",
|
||||
"audioDevice_description": "vyberte zvukové zařízení k přehrávání",
|
||||
"theme_description": "nastavení motivu použitého v aplikaci",
|
||||
"hotkey_playbackPause": "pozastavení",
|
||||
"replayGainFallback": "fallback {{ReplayGain}}",
|
||||
@@ -98,11 +108,10 @@
|
||||
"hotkey_globalSearch": "globální vyhledávání",
|
||||
"gaplessAudio_description": "nastavení přehrávače mpv pro přehrávání bez mezer",
|
||||
"remoteUsername_description": "nastavení uživatelského jména pro server vzdáleného ovládání. pokud je jméno i heslo prázdné, bude autentifikace zakázána",
|
||||
"disableAutomaticUpdates": "vypnout automatické aktualizace",
|
||||
"exitToTray_description": "ukončit aplikaci do systémové lišty",
|
||||
"followLyric_description": "přesouvat texty s aktuální pozicí přehrávání",
|
||||
"hotkey_favoritePreviousSong": "oblíbit $t(common.previousSong)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"lyricOffset": "odsazení textů (ms)",
|
||||
"discordUpdateInterval_description": "čas v sekundách mezi každou aktualizací (minimálně 15 sekund)",
|
||||
"fontType_optionCustom": "vlastní písmo",
|
||||
@@ -114,7 +123,7 @@
|
||||
"playbackStyle_optionCrossFade": "křížové prolnutí",
|
||||
"hotkey_rate3": "hodnocení 3 hvězdami",
|
||||
"font": "písmo",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"themeLight_description": "nastavit použití světlého motivu v aplikaci",
|
||||
"hotkey_toggleFullScreenPlayer": "přepnutí přehrávače na celou obrazovku",
|
||||
"hotkey_localSearch": "vyhledávání na stránce",
|
||||
@@ -164,7 +173,7 @@
|
||||
"useSystemTheme_description": "následovat systémovou předvolbu světlého nebo tmavého motivu",
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"lyricFetch_description": "načtení textů z různých internetových zdrojů",
|
||||
"lyricFetchProvider_description": "vyberte poskytovatele textů. pořadí poskytovatelů je pořadí, ve kterém budou načítány",
|
||||
"lyricFetchProvider_description": "vyberte poskytovatele textů",
|
||||
"globalMediaHotkeys_description": "zapnout nebo vypnout použití vašich systémových zkratek médií pro ovládání přehrávače",
|
||||
"customFontPath": "vlastní cesta k písmům",
|
||||
"followLyric": "zobrazit aktuální texty",
|
||||
@@ -221,11 +230,11 @@
|
||||
"discordListening_description": "zobrazit stav jako „Poslouchá“ namísto „Hraje“",
|
||||
"contextMenu": "nastavení kontextové nabídky (kliknutí pravým)",
|
||||
"contextMenu_description": "umožňuje skrýt položky, které se zobrazí v nabídce po kliknutí pravým tlačítkem myši na položku. položky, které nejsou zaškrtnuté, se skryjí",
|
||||
"customCssEnable": "povolit vlastní CSS",
|
||||
"customCssEnable_description": "umožnit psaní vlastního CSS",
|
||||
"customCssNotice": "Varování: i když provádíme určitou sanitizaci (zakázáním url() a content:), může používání CSS stále představovat riziko změnami rozhraní",
|
||||
"customCss_description": "vlastní CSS obsah. Upozornění: vlastnosti content a vzdálené url jsou zakázané. Níže je zobrazen náhled vašeho obsahu. Další pole, která jste nenastavili, jsou přítomna z důvodu sanitizace",
|
||||
"customCss": "vlastní CSS",
|
||||
"customCssEnable": "povolit vlastní css",
|
||||
"customCssEnable_description": "umožnit psaní vlastního css",
|
||||
"customCssNotice": "Varování: i když provádíme určitou sanitizaci (zakázáním url() a content:), může používání css stále představovat riziko změnami rozhraní",
|
||||
"customCss_description": "vlastní css obsah. Upozornění: vlastnosti content a vzdálené url jsou zakázané. Níže je zobrazen náhled vašeho obsahu. Další pole, která jste nenastavili, jsou přítomna z důvodu sanitizace",
|
||||
"customCss": "vlastní css",
|
||||
"webAudio": "použít webový zvuk",
|
||||
"webAudio_description": "použít webový zvuk. tím povolíte pokročilé funkce jako replaygain. zakažte, pokud se objeví problémy",
|
||||
"transcode_description": "zapnout překódování do různých formátů",
|
||||
@@ -262,7 +271,7 @@
|
||||
"neteaseTranslation_description": "Pokud je povoleno, načte a zobrazí přeložené texty ze služby NetEase, pokud jsou dostupné",
|
||||
"preferLocalLyrics": "preferovat místní texty",
|
||||
"preferLocalLyrics_description": "preferovat místní texty před vzdálenými, pokud jsou dostupné",
|
||||
"discordPausedStatus": "zobrazit rich presence při pozastavení",
|
||||
"discordPausedStatus": "zobrazit stav při pozastavení",
|
||||
"discordPausedStatus_description": "pokud je povoleno, bude při pozastavení přehrávače zobrazen stav",
|
||||
"preservePitch": "zachovat výšku",
|
||||
"preservePitch_description": "zachová výšku při úpravě rychlosti přehrávání",
|
||||
@@ -284,7 +293,7 @@
|
||||
"releaseChannel_optionLatest": "nejnovější",
|
||||
"releaseChannel_optionBeta": "beta",
|
||||
"releaseChannel": "kanál vydání",
|
||||
"releaseChannel_description": "vyberte si mezi stabilními vydáními nebo beta vydáními pro automatické aktualizace",
|
||||
"releaseChannel_description": "vyberte si mezi stabilními, beta nebo alpha (nočními) vydáními pro automatické aktualizace",
|
||||
"mediaSession": "povolit relaci médií",
|
||||
"mediaSession_description": "povolí integraci do služby Media Session, což zobrazí ovládání a metadata médií v překrytí systémové hlasitosti a na zamykací obrazovce",
|
||||
"exportImportSettings_control_description": "exportovat a importovat nastavení pomocí souboru JSON",
|
||||
@@ -372,26 +381,56 @@
|
||||
"pathReplace": "nahrazení cesty k souborům",
|
||||
"pathReplace_description": "nahradit výchozí cestu k souborům vašeho serveru",
|
||||
"pathReplace_optionRemovePrefix": "odstranit předponu",
|
||||
"pathReplace_optionAddPrefix": "přidat předponu"
|
||||
"pathReplace_optionAddPrefix": "přidat předponu",
|
||||
"homeFeatureStyle_description": "ovládá styl doporučených skladeb na domovské stránce",
|
||||
"homeFeatureStyle": "styl doporučených na domovské stránce",
|
||||
"homeFeatureStyle_optionMultiple": "několik",
|
||||
"homeFeatureStyle_optionSingle": "jeden",
|
||||
"enableGridMultiSelect": "povolit vícenásobný výběr v mřížce",
|
||||
"enableGridMultiSelect_description": "pokud je povoleno, umožňuje vybrat několik položek v zobrazení mřížky. pokud je zakázáno, kliknutím na obrázek položky mřížky přejdete na stránku položky",
|
||||
"sidebarPlaylistSorting_description": "umožňuje ruční řazení seznamů skladeb v postranní liště pomocí přetažení namísto výchozího pořadí serveru",
|
||||
"sidebarPlaylistSorting": "řazení seznamů skladeb v postranní liště",
|
||||
"blurExplicitImages": "rozostřit explicitní obrázky",
|
||||
"blurExplicitImages_description": "obaly alb a skladeb označené jako explicitní budou rozostřeny",
|
||||
"sidebarPlaylistListFilterRegex_description": "v postranní liště skrýt seznamy skladeb, které odpovídají tomuto regulárnímu výrazu",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "např. ^Denní mix.*",
|
||||
"sidebarPlaylistListFilterRegex": "regulární výraz filtru seznamů skladeb",
|
||||
"releaseChannel_optionAlpha": "alpha (noční)",
|
||||
"analyticsEnable": "Posílat analytiku založenou na využití",
|
||||
"analyticsEnable_description": "Anonymizovaná data o používání jsou odesílána vývojáři za účelem zlepšení aplikace",
|
||||
"automaticUpdates": "Automatické aktualizace",
|
||||
"automaticUpdates_description": "Kontrolovat a automaticky instalovat aktualizace",
|
||||
"discordStateIcon": "zobrazit ikonu přehrávání",
|
||||
"discordStateIcon_description": "zobrazit malou ikonu přehrávání ve stavu na Discordu. ikona pozastavení bude zobrazena vždy, když je povolena možnost „Zobrazit stav při pozastavení“",
|
||||
"useThemePrimaryShade": "použít primární odstín motivu",
|
||||
"useThemePrimaryShade_description": "použít primární odstín definovaný ve zvoleném motivu pro primární varianty barev",
|
||||
"primaryShade": "primární odstín",
|
||||
"primaryShade_description": "přepsat primární odstín (0–9) používaný pro tlačítka, odkazy a další prvky obarvené primární barvou",
|
||||
"playerItemConfiguration_description": "nastavit, které položky budou zobrazeny a v jakém pořadí, v celoobrazovkovém přehrávači",
|
||||
"playerItemConfiguration": "nastavení položek přehrávače",
|
||||
"autosave": "automaticky ukládat frontu přehrávání",
|
||||
"autosave_description": "zapnout automatické ukládání fronty přehrávání na server. toto je možné pouze při použití Navidrome/Subsonic a není možné mít kombinovanou frontu přehrávání.",
|
||||
"autosaveCount": "četnost automatického ukládání fronty přehrávání",
|
||||
"autosaveCount_description": "kolik změn skladeb se může provést před uložením fronty. 1 (minimum) znamená při každé změně skladby"
|
||||
},
|
||||
"action": {
|
||||
"editPlaylist": "upravit $t(entity.playlist_one)",
|
||||
"editPlaylist": "upravit $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "přejít na stránku",
|
||||
"moveToTop": "přesunout nahoru",
|
||||
"clearQueue": "vymazat frontu",
|
||||
"addToFavorites": "přidat do $t(entity.favorite_other)",
|
||||
"addToPlaylist": "přidat do $t(entity.playlist_one)",
|
||||
"createPlaylist": "vytvořit $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "odebrat z $t(entity.playlist_one)",
|
||||
"viewPlaylists": "zobrazit $t(entity.playlist_other)",
|
||||
"addToFavorites": "přidat do $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "přidat do $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "vytvořit $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "odebrat z $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "zobrazit $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "odstranit $t(entity.playlist_one)",
|
||||
"deletePlaylist": "odstranit $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "odebrat z fronty",
|
||||
"deselectAll": "zrušit výběr všeho",
|
||||
"moveToBottom": "přesunout dolů",
|
||||
"setRating": "nastavit hodnocení",
|
||||
"toggleSmartPlaylistEditor": "přepnout editor $t(entity.smartPlaylist)",
|
||||
"removeFromFavorites": "odebrat z $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "odebrat z $t(entity.favorite, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "Otevřít v Last.fm",
|
||||
"musicbrainz": "Otevřít v MusicBrainz"
|
||||
@@ -407,12 +446,13 @@
|
||||
"moveDown": "posunout dolů",
|
||||
"holdToMoveToTop": "podržte pro přesunutí nahoru",
|
||||
"holdToMoveToBottom": "podržte pro přesunutí dolů",
|
||||
"createRadioStation": "vytvořit $t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "odstranit $t(entity.radioStation_one)",
|
||||
"createRadioStation": "vytvořit $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "odstranit $t(entity.radioStation, {\"count\": 1})",
|
||||
"openApplicationDirectory": "otevřít adresář aplikace",
|
||||
"addOrRemoveFromSelection": "přidat nebo odebrat z výběru",
|
||||
"selectRangeOfItems": "vyberte rozsah položek",
|
||||
"selectAll": "vybrat vše"
|
||||
"selectAll": "vybrat vše",
|
||||
"goToCurrent": "přejít na aktuální položku"
|
||||
},
|
||||
"common": {
|
||||
"backward": "zpátky",
|
||||
@@ -427,7 +467,7 @@
|
||||
"left": "vlevo",
|
||||
"save": "uložit",
|
||||
"right": "vpravo",
|
||||
"currentSong": "aktuální $t(entity.track_one)",
|
||||
"currentSong": "aktuální $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "sbalit",
|
||||
"trackNumber": "stopa",
|
||||
"descending": "sestupně",
|
||||
@@ -457,7 +497,9 @@
|
||||
"delete": "odstranit",
|
||||
"cancel": "zrušit",
|
||||
"forceRestartRequired": "restartujte pro použití změn… zavřete oznámení pro restartování",
|
||||
"setting": "nastavení",
|
||||
"setting_one": "nastavení",
|
||||
"setting_few": "nastavení",
|
||||
"setting_other": "nastavení",
|
||||
"version": "verze",
|
||||
"title": "název",
|
||||
"filter_one": "filtr",
|
||||
@@ -484,7 +526,7 @@
|
||||
"none": "žádný",
|
||||
"menu": "nabídka",
|
||||
"restartRequired": "vyžadován restart",
|
||||
"previousSong": "předchozí $t(entity.track_one)",
|
||||
"previousSong": "předchozí $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "nebyly nalezeny žádné výsledky",
|
||||
"quit": "ukončit",
|
||||
"expand": "rozbalit",
|
||||
@@ -535,14 +577,17 @@
|
||||
"mood": "nálada",
|
||||
"example": "příklad",
|
||||
"filter_single": "jeden",
|
||||
"filter_multiple": "několik"
|
||||
"filter_multiple": "několik",
|
||||
"rename": "přejmenovat",
|
||||
"newVersionAvailable": "je dostupná nová verze"
|
||||
},
|
||||
"table": {
|
||||
"config": {
|
||||
"view": {
|
||||
"table": "tabulka",
|
||||
"list": "seznam",
|
||||
"grid": "mřížka"
|
||||
"grid": "mřížka",
|
||||
"detail": "podrobnosti"
|
||||
},
|
||||
"general": {
|
||||
"displayType": "typ zobrazení",
|
||||
@@ -573,7 +618,8 @@
|
||||
"alternateRowColors": "střídat barvy řádků",
|
||||
"horizontalBorders": "okraje řádků",
|
||||
"rowHoverHighlight": "zvýraznění řádku při přejetí myší",
|
||||
"verticalBorders": "okraje sloupců"
|
||||
"verticalBorders": "okraje sloupců",
|
||||
"showHeader": "zobrazit záhlaví"
|
||||
},
|
||||
"label": {
|
||||
"releaseDate": "datum vydání",
|
||||
@@ -587,30 +633,31 @@
|
||||
"trackNumber": "číslo stopy",
|
||||
"rowIndex": "index řádku",
|
||||
"rating": "$t(common.rating)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"note": "$t(common.note)",
|
||||
"biography": "$t(common.biography)",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"playCount": "počet přehrání",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"discNumber": "číslo disku",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"year": "$t(common.year)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"codec": "$t(common.codec)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"genreBadge": "$t(entity.genre_one) (značky)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (značky)",
|
||||
"image": "obrázek",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"composer": "skladatel",
|
||||
"titleArtist": "$t(common.title) (umělec)"
|
||||
"titleArtist": "$t(common.title) (umělec)",
|
||||
"albumGroup": "skupina alb"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -619,7 +666,7 @@
|
||||
"rating": "hodnocení",
|
||||
"favorite": "oblíbené",
|
||||
"playCount": "přehrání",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"releaseYear": "rok",
|
||||
"lastPlayed": "naposledy přehráno",
|
||||
"biography": "biografie",
|
||||
@@ -628,14 +675,14 @@
|
||||
"title": "název",
|
||||
"bpm": "bpm",
|
||||
"dateAdded": "datum přidání",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"trackNumber": "skladba",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"albumArtist": "umělec alba",
|
||||
"path": "cesta",
|
||||
"discNumber": "disk",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"size": "$t(common.size)",
|
||||
"codec": "$t(common.codec)",
|
||||
"owner": "majitel",
|
||||
@@ -672,14 +719,17 @@
|
||||
"saveQueueFailed": "nepodařilo se uložit frontu",
|
||||
"settingsSyncError": "byly zjištěny nesrovnalosti mezi nastavením v rendereru a hlavním procesem. restartujte aplikaci, aby se změny projevily",
|
||||
"noNetwork": "server je nedostupný",
|
||||
"noNetworkDescription": "k tomuto serveru se nepodařilo připojit"
|
||||
"noNetworkDescription": "k tomuto serveru se nepodařilo připojit",
|
||||
"invalidJson": "neplatný JSON",
|
||||
"serverLockSingleServer": "při uzamčení serveru je povolen pouze jeden server",
|
||||
"playbackPausedDueToError": "přehrávání bylo pozastaveno z důvodu chyby"
|
||||
},
|
||||
"filter": {
|
||||
"mostPlayed": "nejvíce přehráváno",
|
||||
"comment": "komentář",
|
||||
"playCount": "počet přehrání",
|
||||
"recentlyUpdated": "nedávno upraveno",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"isCompilation": "je kompilace",
|
||||
"recentlyPlayed": "nedávno přehráno",
|
||||
"isRated": "je hodnoceno",
|
||||
@@ -688,17 +738,17 @@
|
||||
"rating": "hodnocení",
|
||||
"search": "hledat",
|
||||
"bitrate": "datový tok",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"recentlyAdded": "nedávno přidáno",
|
||||
"note": "poznámka",
|
||||
"name": "název",
|
||||
"dateAdded": "datum přidání",
|
||||
"releaseDate": "datum vydání",
|
||||
"albumCount": "počet $t(entity.album_other)",
|
||||
"albumCount": "počet $t(entity.album, {\"count\": 2})",
|
||||
"communityRating": "komunitní hodnocení",
|
||||
"path": "cesta",
|
||||
"favorited": "oblíbené",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "je nedávno přehráno",
|
||||
"isFavorited": "je oblíbené",
|
||||
"bpm": "bpm",
|
||||
@@ -707,7 +757,7 @@
|
||||
"disc": "disk",
|
||||
"biography": "biografie",
|
||||
"songCount": "počet skladeb",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"duration": "trvání",
|
||||
"isPublic": "je veřejné",
|
||||
"random": "náhodně",
|
||||
@@ -715,27 +765,31 @@
|
||||
"toYear": "do roku",
|
||||
"fromYear": "z roku",
|
||||
"criticRating": "hodnocení kritiků",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"trackNumber": "skladba",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"sortName": "název v řazení",
|
||||
"matchAnd": "a",
|
||||
"matchOr": "nebo"
|
||||
},
|
||||
"page": {
|
||||
"sidebar": {
|
||||
"nowPlaying": "právě hraje",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"shared": "$t(entity.playlist_other) sdíleny",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"shared": "$t(entity.playlist, {\"count\": 2}) sdíleny",
|
||||
"myLibrary": "moje knihovna",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})",
|
||||
"collections": "sbírky"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"config": {
|
||||
@@ -763,7 +817,7 @@
|
||||
"appMenu": {
|
||||
"selectServer": "vybrat server",
|
||||
"version": "verze {{version}}",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"manageServers": "správce serverů",
|
||||
"expandSidebar": "rozbalit postranní panel",
|
||||
"collapseSidebar": "sbalit postranní panel",
|
||||
@@ -801,8 +855,8 @@
|
||||
"download": "stáhnout",
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"goToAlbum": "přejít na $t(entity.album_one)",
|
||||
"goToAlbumArtist": "přejít na $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "přejít na $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "přejít na $t(entity.albumArtist, {\"count\": 1})",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "přejít na"
|
||||
},
|
||||
@@ -813,10 +867,10 @@
|
||||
"explore": "procházet z vaší knihovny",
|
||||
"recentlyPlayed": "nedávno přehráno",
|
||||
"recentlyReleased": "nedávno vydáno",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "více od tohoto $t(entity.artist_one)",
|
||||
"moreFromArtist": "více od tohoto $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "více od {{item}}",
|
||||
"released": "vydáno"
|
||||
},
|
||||
@@ -846,17 +900,17 @@
|
||||
"lyricsDisplay": "zobrazení textů"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showTracks": "zobrazit $t(entity.track_other) s žánrem $t(entity.genre_one)",
|
||||
"showAlbums": "zobrazit $t(entity.album_other) s žánrem $t(entity.genre_one)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showTracks": "zobrazit $t(entity.track, {\"count\": 2}) s žánrem $t(entity.genre, {\"count\": 1})",
|
||||
"showAlbums": "zobrazit $t(entity.album, {\"count\": 2}) s žánrem $t(entity.genre, {\"count\": 1})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "skladby od umělce {{artist}}",
|
||||
"genreTracks": "$t(entity.track_other) s žánrem „{{genre}}“"
|
||||
"genreTracks": "$t(entity.track, {\"count\": 2}) s žánrem „{{genre}}“"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -867,12 +921,12 @@
|
||||
"title": "příkazy"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "alba od umělce {{artist}}",
|
||||
"genreAlbums": "$t(entity.album_other) s žánrem „{{genre}}“"
|
||||
"genreAlbums": "$t(entity.album, {\"count\": 2}) s žánrem „{{genre}}“"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"recentReleases": "nedávno vydáno",
|
||||
@@ -881,11 +935,15 @@
|
||||
"appearsOn": "také v",
|
||||
"topSongs": "nejlepší skladby",
|
||||
"topSongsFrom": "nejlepší skladby od umělce {{title}}",
|
||||
"relatedArtists": "podobní $t(entity.artist_other)",
|
||||
"viewAllTracks": "zobrazit všechny $t(entity.track_other)",
|
||||
"relatedArtists": "podobní $t(entity.artist, {\"count\": 2})",
|
||||
"viewAllTracks": "zobrazit všechny $t(entity.track, {\"count\": 2})",
|
||||
"viewAll": "zobrazit vše",
|
||||
"groupingTypeAll": "všechny typy vydání",
|
||||
"groupingTypePrimary": "primární typy vydání"
|
||||
"groupingTypePrimary": "primární typy vydání",
|
||||
"favoriteSongs": "oblíbené skladby",
|
||||
"topSongsCommunity": "komunita",
|
||||
"topSongsPersonal": "osobní",
|
||||
"favoriteSongsFrom": "oblíbené skladby od umělce {{title}}"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copiedPath": "cesta úspěšně zkopírována",
|
||||
@@ -904,27 +962,40 @@
|
||||
"title": "správa serverů"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "stanice rádia"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(Pozastaveno) ",
|
||||
"privateMode": "(Soukromý režim)"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "nahradit existující",
|
||||
"saveAsCollection": "uložit jako sbírku"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "revize od {{stable}}",
|
||||
"noNewCommits": "žádné nové revize v tomto období",
|
||||
"noStableReleaseToCompare": "není dostupné žádné stabilní vydání k porovnání"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "odstranit $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) úspěšně odstraněn",
|
||||
"input_confirm": "pro potvrzení zadejte název $t(entity.playlist_one)u"
|
||||
"title": "odstranit $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) úspěšně odstraněn",
|
||||
"input_confirm": "pro potvrzení zadejte název $t(entity.playlist, {\"count\": 1})u"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "vytvořit $t(entity.playlist_one)",
|
||||
"title": "vytvořit $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "veřejné",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) úspěšně vytvořen",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) úspěšně vytvořen",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addServer": {
|
||||
@@ -936,8 +1007,8 @@
|
||||
"input_name": "název serveru",
|
||||
"success": "server úspěšně přidán",
|
||||
"input_savePassword": "uložit heslo",
|
||||
"ignoreSsl": "ignorovat SSL $t(common.restartRequired)",
|
||||
"ignoreCors": "ignorovat CORS $t(common.restartRequired)",
|
||||
"ignoreSsl": "ignorovat ssl $t(common.restartRequired)",
|
||||
"ignoreCors": "ignorovat cors $t(common.restartRequired)",
|
||||
"error_savePassword": "při ukládání hesla se vyskytla chyba",
|
||||
"input_preferInstantMix": "preferovat instantní mix",
|
||||
"input_preferInstantMixDescription": "pro získání podobných skladeb použít pouze instantní mix. užitečné, pokud máte doplňky, které upravují toto chování",
|
||||
@@ -947,11 +1018,11 @@
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "přidáno $t(entity.trackWithCount, {\"count\": {{message}} }) do $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "přidat do $t(entity.playlist_one)",
|
||||
"title": "přidat do $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "přeskočit duplicity",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "vytvořit $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "vyhledejte $t(entity.playlist_other) nebo pište pro vytvoření nového"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "vytvořit $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "vyhledejte $t(entity.playlist, {\"count\": 2}) nebo pište pro vytvoření nového"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "upravit server",
|
||||
@@ -968,12 +1039,12 @@
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"title": "Hledat texty"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "upravit $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) úspěšně aktualizován",
|
||||
"title": "upravit $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) úspěšně aktualizován",
|
||||
"publicJellyfinNote": "Jellyfin z nějakého důvodu neukazuje, zda je seznam skladeb veřejný, nebo ne. Pokud si přejete, aby zůstal veřejný, zvolte prosím následující vstup",
|
||||
"editNote": "ruční úpravy velkých seznamů skladeb nejsou doporučeny. opravdu přijímáte riziko ztráty dat, které může vzniknout přepsáním existujícího seznamu skladeb?"
|
||||
},
|
||||
@@ -983,7 +1054,9 @@
|
||||
"description": "popis",
|
||||
"expireInvalid": "čas vypršení musí být v budoucnosti",
|
||||
"setExpiration": "nastavit vypršení",
|
||||
"createFailed": "nepodařilo se vytvořit sdílení (je sdílení povoleno?)"
|
||||
"createFailed": "nepodařilo se vytvořit sdílení (je sdílení povoleno?)",
|
||||
"copyToClipboard": "Zkopírovat do schránky: Ctrl+C, Enter",
|
||||
"successMustClick": "sdílení úspěšně vytvořeno. klikněte sem pro otevření"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "soukromý režim povolen, stav přehrávání je nyní skryt před externími integracemi",
|
||||
@@ -996,7 +1069,7 @@
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "přehrát náhodně",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "kolik skladeb?",
|
||||
"input_minYear": "od roku",
|
||||
"input_maxYear": "do roku",
|
||||
@@ -1058,7 +1131,7 @@
|
||||
"folder_one": "složka",
|
||||
"folder_few": "složky",
|
||||
"folder_other": "složky",
|
||||
"smartPlaylist": "chytrý $t(entity.playlist_one)",
|
||||
"smartPlaylist": "chytrý $t(entity.playlist, {\"count\": 1})",
|
||||
"album_one": "album",
|
||||
"album_few": "alba",
|
||||
"album_other": "alba",
|
||||
@@ -1088,7 +1161,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "vysílání",
|
||||
"ep": "ep",
|
||||
"other": "jiné",
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"action": {
|
||||
"editPlaylist": "$t(entity.playlist_one) bearbeiten",
|
||||
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) bearbeiten",
|
||||
"clearQueue": "Wiedergabeliste leeren",
|
||||
"addToFavorites": "Zu $t(entity.favorite_other) hinzufügen",
|
||||
"addToPlaylist": "Zu $t(entity.playlist_one) hinzufügen",
|
||||
"createPlaylist": "$t(entity.playlist_one) erstellen",
|
||||
"deletePlaylist": "$t(entity.playlist_one) löschen",
|
||||
"addToFavorites": "Zu $t(entity.favorite, {\"count\": 2}) hinzufügen",
|
||||
"addToPlaylist": "Zu $t(entity.playlist, {\"count\": 1}) hinzufügen",
|
||||
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) erstellen",
|
||||
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) löschen",
|
||||
"deselectAll": "Alle abwählen",
|
||||
"goToPage": "Zu Seite gehen",
|
||||
"moveToTop": "Als erstes",
|
||||
"moveToBottom": "Als letztes",
|
||||
"removeFromPlaylist": "Aus $t(entity.playlist_one) entfernen",
|
||||
"viewPlaylists": "$t(entity.playlist_other) anzeigen",
|
||||
"removeFromPlaylist": "Aus $t(entity.playlist, {\"count\": 1}) entfernen",
|
||||
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) anzeigen",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromQueue": "Aus Wiedergabeliste entfernen",
|
||||
"setRating": "Bewerten",
|
||||
"toggleSmartPlaylistEditor": "Editor für $t(entity.smartPlaylist) ein-/ausblenden",
|
||||
"removeFromFavorites": "Aus $t(entity.favorite_other) entfernen",
|
||||
"removeFromFavorites": "Aus $t(entity.favorite, {\"count\": 2}) entfernen",
|
||||
"openIn": {
|
||||
"lastfm": "Auf Last.fm öffnen",
|
||||
"musicbrainz": "Auf MusicBrainz öffnen"
|
||||
@@ -30,10 +30,15 @@
|
||||
"viewMore": "Mehr zeigen",
|
||||
"moveUp": "Nach oben bewegen",
|
||||
"moveDown": "Nach unten bewegen",
|
||||
"createRadioStation": "$t(entity.radioStation_one) erstellen",
|
||||
"deleteRadioStation": "$t(entity.radioStation_one) löschen",
|
||||
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) erstellen",
|
||||
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) löschen",
|
||||
"selectAll": "alle auswählen",
|
||||
"openApplicationDirectory": "Anwendungsverzeichnis öffnen"
|
||||
"openApplicationDirectory": "Anwendungsverzeichnis öffnen",
|
||||
"addOrRemoveFromSelection": "Zur Auswahl hinzufügen oder entfernen",
|
||||
"selectRangeOfItems": "Wählen sie eine Reihe von Elementen",
|
||||
"holdToMoveToTop": "Halten um nach oben zu bewegen",
|
||||
"holdToMoveToBottom": "Halten um nach unten zu bewegen",
|
||||
"goToCurrent": "Zu aktuellem Eintrag wechseln"
|
||||
},
|
||||
"common": {
|
||||
"backward": "zurück",
|
||||
@@ -48,7 +53,7 @@
|
||||
"left": "Linksbündig",
|
||||
"save": "Speichern",
|
||||
"right": "Rechtsbündig",
|
||||
"currentSong": "Aktueller $t(entity.track_one)",
|
||||
"currentSong": "Aktueller $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "Verkleinern",
|
||||
"trackNumber": "Track",
|
||||
"descending": "absteigend",
|
||||
@@ -104,7 +109,7 @@
|
||||
"none": "keine",
|
||||
"menu": "Menü",
|
||||
"restartRequired": "(Neustart benötigt)",
|
||||
"previousSong": "vorheriger $t(entity.track_one)",
|
||||
"previousSong": "vorheriger $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "Die Abfrage brachte keine Ergebnisse",
|
||||
"quit": "verlassen",
|
||||
"expand": "Vergrößern",
|
||||
@@ -151,7 +156,13 @@
|
||||
"releaseType": "Veröffentlichungsformat",
|
||||
"view": "Betrachten",
|
||||
"countSelected": "{{count}} ausgewählt",
|
||||
"mood": "Stimmung"
|
||||
"mood": "Stimmung",
|
||||
"example": "Beispiel",
|
||||
"rename": "Umbenennen",
|
||||
"filter_single": "einzeln",
|
||||
"filter_multiple": "mehrfach",
|
||||
"retry": "Wiederholen",
|
||||
"newVersionAvailable": "Eine neue Version ist verfügbar"
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "Starten Sie den Server neu, um den neuen Port anzuwenden",
|
||||
@@ -181,7 +192,11 @@
|
||||
"saveQueueFailed": "Wiedergabeliste konnte nicht gespeichert werden",
|
||||
"multipleServerSaveQueueError": "die Wiedergabeliste enthält einen oder mehrere Titel, die nicht vom aktuellen Server stammen. dies wird nicht unterstützt",
|
||||
"noNetwork": "Server nicht verfügbar",
|
||||
"noNetworkDescription": "Verbindung zum Server konnte nicht hergestellt werden"
|
||||
"noNetworkDescription": "Verbindung zum Server konnte nicht hergestellt werden",
|
||||
"invalidJson": "JSON ungültig",
|
||||
"serverLockSingleServer": "Nur ein Server ist erlaubt, wenn der Server gesperrt ist",
|
||||
"settingsSyncError": "Es wurden Unstimmigkeiten zwischen den Einstellungen im Renderer und dem Hauptprozess gefunden. Starte die Anwendung neu, um die Änderungen zu übernehmen",
|
||||
"playbackPausedDueToError": "Die Wiedergabe wurde aufgrund eines Fehlers pausiert"
|
||||
},
|
||||
"filter": {
|
||||
"mostPlayed": "Meistgespielt",
|
||||
@@ -200,11 +215,11 @@
|
||||
"name": "Name",
|
||||
"dateAdded": "Datum hinzugefügt",
|
||||
"releaseDate": "Veröffentlichungsdatum",
|
||||
"albumCount": "$t(entity.album_other) Anzahl",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) Anzahl",
|
||||
"communityRating": "Community-Wertung",
|
||||
"path": "Pfad",
|
||||
"favorited": "favorisiert",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "wurde kürzlich gespielt",
|
||||
"isFavorited": "wird favorisiert",
|
||||
"bpm": "bpm",
|
||||
@@ -220,25 +235,27 @@
|
||||
"toYear": "bis Jahr",
|
||||
"fromYear": "ab Jahr",
|
||||
"criticRating": "Kritikerbewertung",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"trackNumber": "Track",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"owner": "$t(common.owner)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"matchAnd": "und",
|
||||
"matchOr": "oder"
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "$t(entity.playlist_one) löschen",
|
||||
"success": "$t(entity.playlist_one) erfolgreich gelöscht",
|
||||
"input_confirm": "Geben Sie zur Bestätigung den Namen von $t(entity.playlist_one) ein"
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) löschen",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) erfolgreich gelöscht",
|
||||
"input_confirm": "Geben Sie zur Bestätigung den Namen von $t(entity.playlist, {\"count\": 1}) ein"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "$t(entity.playlist_one) erstellen",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) erstellen",
|
||||
"input_public": "öffentlich",
|
||||
"success": "$t(entity.playlist_one) erfolgreich erstellt",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) erfolgreich erstellt",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
@@ -255,15 +272,18 @@
|
||||
"ignoreCors": "CORS ignorieren $t(common.restartRequired)",
|
||||
"error_savePassword": "Beim Speichern des Passworts ist ein Fehler aufgetreten",
|
||||
"input_preferInstantMix": "Instant-Mix bevorzugen",
|
||||
"input_preferInstantMixDescription": "nur Instant-Mix verwenden, um ähnliche Songs zu erhalten. Nützlich bei Verwendung von Plugins, die in dieses Verhalten eingreifen"
|
||||
"input_preferInstantMixDescription": "nur Instant-Mix verwenden, um ähnliche Songs zu erhalten. Nützlich bei Verwendung von Plugins, die in dieses Verhalten eingreifen",
|
||||
"input_preferRemoteUrl": "öffentliche URL bevorzugen",
|
||||
"input_remoteUrl": "Öffentliche URL",
|
||||
"input_remoteUrlPlaceholder": "Optional: öffentliche URL für externe Funktionen"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) zu $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) hinzugefügt",
|
||||
"title": "Zu $t(entity.playlist_one) hinzufügen",
|
||||
"title": "Zu $t(entity.playlist, {\"count\": 1}) hinzufügen",
|
||||
"input_skipDuplicates": "Duplikate überspringen",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "$t(entity.playlist_one) {{playlist}} erstellen",
|
||||
"searchOrCreate": "Nach $t(entity.playlist_other) suchen oder Namen eingeben, um eine neue zu erstellen"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} erstellen",
|
||||
"searchOrCreate": "Nach $t(entity.playlist, {\"count\": 2}) suchen oder Namen eingeben, um eine neue zu erstellen"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "Server aktualisieren",
|
||||
@@ -279,15 +299,15 @@
|
||||
"resetToDefault": "auf Standard zurücksetzen"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "Bearbeite $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) erfolgreich aktualisiert",
|
||||
"publicJellyfinNote": "Jellyfin legt aus irgendwelchen Gründen nicht offen ob eine Playlist öffentlich ist oder nicht. Wenn du möchtest, dass sie öffentlich bleibt, wähle bitte diese Option aus",
|
||||
"title": "Bearbeite $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) erfolgreich aktualisiert",
|
||||
"publicJellyfinNote": "Jellyfin legt aus irgendwelchen Gründen nicht offen ob eine Wiedergabeliste öffentlich ist oder nicht. Wenn du möchtest, dass sie öffentlich bleibt, wähle bitte diese Option aus",
|
||||
"editNote": "Manuelles Bearbeiten wird für große Wiedergabelisten nicht empfohlen. Bist Du sicher, dass Du die aktuelle Wiedergabeliste unter dem Risiko von Datenverlust überschrieben möchtest?"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"title": "Songtext Suche",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)"
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})"
|
||||
},
|
||||
"shareItem": {
|
||||
"description": "Beschreibung",
|
||||
@@ -295,7 +315,9 @@
|
||||
"expireInvalid": "Ablaufdatum muss in der Zukunft liegen",
|
||||
"allowDownloading": "Herunterladen zulassen",
|
||||
"success": "Link in die Zwischenablage kopiert (oder hier klicken, um zu öffnen)",
|
||||
"createFailed": "fehler beim Teilen (Ist Teilen aktiviert?)"
|
||||
"createFailed": "fehler beim Teilen (Ist Teilen aktiviert?)",
|
||||
"copyToClipboard": "In Zwischenablage kopieren: Strg+C, Enter",
|
||||
"successMustClick": "Freigabe erfolgreich erstellt. Hier klicken um diese zu öffnen"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "Privatmodus aktiviert, Wiedergabe-Status wird externen Quellen nicht preisgegeben",
|
||||
@@ -308,7 +330,7 @@
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "Zufallswiedergabe",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "Wie viele Songs?",
|
||||
"input_minYear": "ab Jahr",
|
||||
"input_maxYear": "bis Jahr",
|
||||
@@ -328,7 +350,9 @@
|
||||
"input_streamUrl": "Stream URL"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"input_offset": "$t(setting.lyricOffset)"
|
||||
"input_offset": "$t(setting.lyricOffset)",
|
||||
"export": "Songtexte exportieren",
|
||||
"input_synced": "Synchronisierte Songtexte exportieren"
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
@@ -362,7 +386,7 @@
|
||||
"genreWithCount_other": "{{count}} Genres",
|
||||
"trackWithCount_one": "{{count}} Track",
|
||||
"trackWithCount_other": "{{count}} Tracks",
|
||||
"smartPlaylist": "Intelligente $t(entity.playlist_one)",
|
||||
"smartPlaylist": "Intelligente $t(entity.playlist, {\"count\": 1})",
|
||||
"play_one": "{{count}} Wiedergabe",
|
||||
"play_other": "{{count}} Wiedergaben",
|
||||
"song_one": "Lied",
|
||||
@@ -377,7 +401,8 @@
|
||||
"view": {
|
||||
"table": "Tabelle",
|
||||
"grid": "Raster",
|
||||
"list": "Liste"
|
||||
"list": "Liste",
|
||||
"detail": "Detail"
|
||||
},
|
||||
"general": {
|
||||
"tableColumns": "Tabellenspalten",
|
||||
@@ -396,7 +421,20 @@
|
||||
"size_large": "groß",
|
||||
"pagination": "Seitenzahlen",
|
||||
"pagination_itemsPerPage": "Elemente pro Seite",
|
||||
"pagination_infinite": "unendlich"
|
||||
"pagination_infinite": "unendlich",
|
||||
"moveUp": "Nach oben bewegen",
|
||||
"moveDown": "Nach unten bewegen",
|
||||
"pinToLeft": "links anheften",
|
||||
"pinToRight": "rechts anheften",
|
||||
"itemGap": "Item Abstand (px)",
|
||||
"itemSize": "Item Größe (px)",
|
||||
"itemsPerRow": "Items pro Zeile",
|
||||
"pagination_paginate": "paginiert",
|
||||
"alternateRowColors": "Zeilenfarben abwechseln",
|
||||
"horizontalBorders": "Zeilenbegrenzungen",
|
||||
"rowHoverHighlight": "Zeilenhervorhebungen beim hovern",
|
||||
"showHeader": "Spaltenüberschrift anzeigen",
|
||||
"verticalBorders": "Spaltenbegrenzungen"
|
||||
},
|
||||
"label": {
|
||||
"dateAdded": "Hinzugefügt am",
|
||||
@@ -405,12 +443,12 @@
|
||||
"trackNumber": "Tracknummer",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"size": "$t(common.size)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
"titleCombined": "$t(common.title) (kombiniert)",
|
||||
@@ -425,13 +463,15 @@
|
||||
"year": "$t(common.year)",
|
||||
"discNumber": "disk-Nummer",
|
||||
"playCount": "Wiedergaben",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"codec": "$t(common.codec)",
|
||||
"image": "Bild",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"genreBadge": "$t(entity.genre_one) (Abzeichen)"
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (Abzeichen)",
|
||||
"composer": "Komponist",
|
||||
"titleArtist": "$t(common.title) (Interpret)"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -447,15 +487,15 @@
|
||||
"favorite": "Favorit",
|
||||
"lastPlayed": "zuletzt gespielt",
|
||||
"rating": "Bewertung",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"comment": "Kommentar",
|
||||
"dateAdded": "hinzugefügt am",
|
||||
"playCount": "Abgespielt",
|
||||
"discNumber": "Disk",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"trackNumber": "titel",
|
||||
"size": "$t(common.size)",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
@@ -497,7 +537,7 @@
|
||||
"openBrowserDevtools": "Browser-Entwicklungswerkzeuge öffnen",
|
||||
"goBack": "Gehe zurück",
|
||||
"goForward": "Gehe vorwärts",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"quit": "$t(common.quit)",
|
||||
"privateModeOff": "Privatmodus deaktivieren",
|
||||
"privateModeOn": "Privatmodus aktivieren",
|
||||
@@ -513,10 +553,10 @@
|
||||
"recentlyPlayed": "Kürzlich gespielt",
|
||||
"title": "$t(common.home)",
|
||||
"recentlyReleased": "kürzlich veröffentlicht",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "mehr von diesem $t(entity.artist_one)",
|
||||
"moreFromArtist": "mehr von diesem $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "Mehr von {{item}}",
|
||||
"released": "erschienen"
|
||||
},
|
||||
@@ -551,27 +591,28 @@
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"shareItem": "teilen",
|
||||
"showDetails": "Informationen",
|
||||
"goToAlbum": "zu $t(entity.album_one) gehen",
|
||||
"goToAlbumArtist": "zu $t(entity.albumArtist_one) gehen",
|
||||
"goToAlbum": "zu $t(entity.album, {\"count\": 1}) gehen",
|
||||
"goToAlbumArtist": "zu $t(entity.albumArtist, {\"count\": 1}) gehen",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "Gehe zu"
|
||||
},
|
||||
"sidebar": {
|
||||
"nowPlaying": "läuft gerade",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"shared": "$t(entity.playlist_other) geteilt",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"shared": "$t(entity.playlist, {\"count\": 2}) geteilt",
|
||||
"myLibrary": "meine bibliothek",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})",
|
||||
"collections": "Sammlungen"
|
||||
},
|
||||
"setting": {
|
||||
"playbackTab": "Wiedergabe",
|
||||
@@ -595,41 +636,46 @@
|
||||
"transcoding": "Transcoding",
|
||||
"logger": "Logger",
|
||||
"playerFilters": "Player-Filter",
|
||||
"remote": "Fernsteuerung"
|
||||
"remote": "Fernsteuerung",
|
||||
"lyricsDisplay": "Songtexte Anzeige"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showTracks": "$t(entity.genre_one) $t(entity.track_other) anzeigen",
|
||||
"showAlbums": "$t(entity.genre_one) $t(entity.album_other) anzeigen"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showTracks": "$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2}) anzeigen",
|
||||
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) anzeigen"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "Tracks von {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "Alben von {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"about": "Über {{artist}}",
|
||||
"appearsOn": "erscheint auf",
|
||||
"recentReleases": "Kürzliche Veröffentlichungen",
|
||||
"viewDiscography": "Diskographie ansehen",
|
||||
"viewAllTracks": "Alle $t(entity.track_other) ansehen",
|
||||
"viewAllTracks": "Alle $t(entity.track, {\"count\": 2}) ansehen",
|
||||
"topSongsFrom": "Toplieder von {{title}}",
|
||||
"viewAll": "Alles ansehen",
|
||||
"topSongs": "Toplieder",
|
||||
"relatedArtists": "ähnliche $t(entity.artist_other)",
|
||||
"relatedArtists": "ähnliche $t(entity.artist, {\"count\": 2})",
|
||||
"groupingTypeAll": "alle Veröffentlichungsformate",
|
||||
"groupingTypePrimary": "primäre Veröffentlichungsformate"
|
||||
"groupingTypePrimary": "primäre Veröffentlichungsformate",
|
||||
"favoriteSongs": "Lieblingssongs",
|
||||
"favoriteSongsFrom": "Liebslingssongs von {{title}}",
|
||||
"topSongsCommunity": "Community",
|
||||
"topSongsPersonal": "Persönlich"
|
||||
},
|
||||
"manageServers": {
|
||||
"title": "Servers verwalten",
|
||||
@@ -645,16 +691,28 @@
|
||||
"openFile": "Track im Dateiexplorer anzeigen"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"playlist": {
|
||||
"reorder": "Neuanordnung nur bei Sortierung nach ID möglich"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "Radiosender"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(Pausiert) ",
|
||||
"privateMode": "(Privater Modus)"
|
||||
},
|
||||
"collections": {
|
||||
"saveAsCollection": "Als Sammlung speichern",
|
||||
"overrideExisting": "Bestehende überschreiben"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "Commits seit {{stable}}",
|
||||
"noStableReleaseToCompare": "Kein stable Relase zum vergleichen verfügbar"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
@@ -681,7 +739,7 @@
|
||||
"queue_moveToBottom": "Ausgewählte nach oben verschieben",
|
||||
"shuffle_off": "Zufallswiedergabe deaktiviert",
|
||||
"stop": "stopp",
|
||||
"toggleFullscreenPlayer": "vollbildmodus",
|
||||
"toggleFullscreenPlayer": "Vollbildmodus",
|
||||
"skip_back": "zurückspulen",
|
||||
"pause": "Pause",
|
||||
"unfavorite": "Aus Favoriten entfernen",
|
||||
@@ -693,7 +751,20 @@
|
||||
"addNextShuffled": "als Nächstes (zufällige Wiedergabe)",
|
||||
"holdToShuffle": "Halten für Zufallswiedergabe",
|
||||
"restoreQueueFromServer": "Wiedergabeliste von Server wiederherstellen",
|
||||
"saveQueueToServer": "Wiedergabeliste auf Server speichern"
|
||||
"saveQueueToServer": "Wiedergabeliste auf Server speichern",
|
||||
"lyrics": "Songtexte",
|
||||
"artistRadio": "Künstler Radio",
|
||||
"sleepTimer_endOfSong": "Ende des aktuellen Liedes",
|
||||
"sleepTimer_off": "aus",
|
||||
"sleepTimer_timeRemaining": "{{time}} verbleibend",
|
||||
"sleepTimer_cancel": "Timer abbrechen",
|
||||
"sleepTimer_setCustom": "Timer stellen",
|
||||
"sleepTimer": "Sleep Timer",
|
||||
"sleepTimer_custom": "Benutzerdefiniert",
|
||||
"sleepTimer_hours": "{{count}} std",
|
||||
"sleepTimer_minutes": "{{count}} min",
|
||||
"trackRadio": "Song Radio",
|
||||
"albumRadio": "Album Radio"
|
||||
},
|
||||
"setting": {
|
||||
"audioDevice_description": "wählen Sie das Audiogerät aus, das für die Wiedergabe verwendet werden soll (nur Webplayer)",
|
||||
@@ -709,7 +780,6 @@
|
||||
"disableLibraryUpdateOnStartup": "beim Start nicht nach neuen Versionen suchen",
|
||||
"discordApplicationId_description": "die Application-ID für {{discord}} Rich Presence (Standard: {{defaultId}})",
|
||||
"audioPlayer_description": "Wählen Sie den Audioplayer aus, der für die Wiedergabe verwendet werden soll",
|
||||
"disableAutomaticUpdates": "Automatische Updates deaktivieren",
|
||||
"crossfadeDuration_description": "Legt die Dauer der Überblendung fest",
|
||||
"customFontPath": "Benutzerdefinierter Pfad für Schriftarten",
|
||||
"crossfadeDuration": "Dauer der Überblendung",
|
||||
@@ -757,7 +827,7 @@
|
||||
"gaplessAudio_description": "Legt die lückenlose Audioeinstellung für MPV fest",
|
||||
"remoteUsername_description": "Legt den Benutzernamen für den Fernsteuerungsserver fest. Wenn sowohl Benutzername als auch Passwort leer sind, wird die Authentifizierung deaktiviert",
|
||||
"hotkey_favoritePreviousSong": "Favorit $t(common.previousSong)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"lyricOffset": "Zeitversatz des Songtextes (ms)",
|
||||
"themeDark_description": "Legt das Erscheinungsbild für den dunklen Modus fest",
|
||||
"remotePassword": "Passwort des Fernsteuerungsservers",
|
||||
@@ -765,7 +835,7 @@
|
||||
"language_description": "Legt die Sprache für die Anwendung fest $t(common.restartRequired)",
|
||||
"playbackStyle_optionCrossFade": "Überblendung",
|
||||
"hotkey_rate3": "Bewertung 3 Sterne",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"themeLight_description": "Legt das Erscheinungsbild für den hellen Modus fest",
|
||||
"hotkey_toggleFullScreenPlayer": "Vollbildmodus umschalten",
|
||||
"hotkey_localSearch": "Suche auf Seite",
|
||||
@@ -790,7 +860,8 @@
|
||||
"fontType_description": "Die integrierte Schriftart wählt eine der von feishin bereitgestellten Schriftarten aus. Mit der Systemschriftart können Sie jede von Ihrem Betriebssystem bereitgestellte Schriftart auswählen. Benutzerdefiniert erlaubt es eine eigene Schriftart bereitzustellen",
|
||||
"playButtonBehavior": "Verhalten der Wiedergabetaste",
|
||||
"volumeWheelStep": "Lautstärkeänderung mit Mausrad",
|
||||
"sidebarPlaylistList_description": "Ein- oder Ausblenden der Playlisten-Liste in der Seitenleiste",
|
||||
"sidebarPlaylistList_description": "Ein- oder Ausblenden der Wiedergabelisten in der Seitenleiste",
|
||||
"sidebarPlaylistSorting_description": "sortiere Wiedergabelisten in der Seitenleiste per Drag & Drop anstelle der standardmäßigen Serverreihenfolge",
|
||||
"sidePlayQueueStyle_description": "legt den Stil der Wiedergabeliste in der Seitenleiste fest",
|
||||
"replayGainMode": "{{ReplayGain}} Modus",
|
||||
"playbackStyle_optionNormal": "Normal",
|
||||
@@ -805,7 +876,7 @@
|
||||
"useSystemTheme_description": "Folgt dem hellen oder dunklen Erscheinungsbild des Systems",
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"lyricFetch_description": "Songtexte aus verschiedenen Internetquellen abrufen",
|
||||
"lyricFetchProvider_description": "Wählen Sie die Anbieter aus, von denen Sie Liedtexte abrufen möchten. Die Reihenfolge der Anbieter ist die Reihenfolge, in der sie abgefragt werden",
|
||||
"lyricFetchProvider_description": "Wähle den Anbieter zum Abrufen von Songtexten aus",
|
||||
"globalMediaHotkeys_description": "aktivieren oder deaktivieren Sie die Verwendung der Medien-Kurzbefehle Ihres Systems zur Steuerung der Wiedergabe",
|
||||
"hotkey_zoomOut": "Herauszoomen",
|
||||
"hotkey_unfavoriteCurrentSong": "$t(common.currentSong) aus Favoriten entfernen",
|
||||
@@ -814,9 +885,10 @@
|
||||
"remoteUsername": "Benutzername des Fernsteuerungsserver",
|
||||
"hotkey_browserBack": "Browser zurück",
|
||||
"showSkipButton": "Schaltflächen zum Überspringen anzeigen",
|
||||
"sidebarPlaylistList": "Seitenleiste Playlisten-Liste",
|
||||
"sidebarPlaylistList": "Wiedergabelisten in Seitenleiste",
|
||||
"sidebarPlaylistSorting": "Wiedergabelisten-Sortierung in der Seitenleiste",
|
||||
"minimizeToTray": "Zur Taskleiste minimieren",
|
||||
"skipPlaylistPage": "Playlisten-Seite überspringen",
|
||||
"skipPlaylistPage": "Wiedergabeliste-Seite überspringen",
|
||||
"themeDark": "Erscheinungsbild (dunkel)",
|
||||
"sidebarCollapsedNavigation": "Navigation in der Seitenleiste (komprimiert)",
|
||||
"gaplessAudio_optionWeak": "schwach (empfohlen)",
|
||||
@@ -843,7 +915,7 @@
|
||||
"sidePlayQueueStyle_optionDetached": "lösgelöst",
|
||||
"windowBarStyle_description": "Legt das Erscheinungsbild des Fensterrahmens fest",
|
||||
"hotkey_toggleCurrentSongFavorite": "$t(common.currentSong) zu Favoriten hinzufügen",
|
||||
"clearQueryCache_description": "\"Weiches\" Zurücksetzen. Dies wird Playlisten, Musik-Metadaten und gespeicherte Liedtexte zurücksetzen, Zugangsinformationen und zwischengespeicherte Bilder werden behalten",
|
||||
"clearQueryCache_description": "\"Weiches\" Zurücksetzen. Dies wird Wiedergabelisten, Musik-Metadaten und gespeicherte Songtexte zurücksetzen, Zugangsinformationen und zwischengespeicherte Bilder werden behalten",
|
||||
"discordRichPresence_description": "Aktiviert den Wiedergabestatus in {{discord}} Rich Presence. Angezeigte Bilder sind: {{icon}}, {{playing}}, und {{paused}}",
|
||||
"clearCache": "Browser-Zwischenspeicher löschen",
|
||||
"clearQueryCache": "feishins Zwischenspeicher leeren",
|
||||
@@ -860,7 +932,7 @@
|
||||
"discordListening_description": "Status als hört zu statt als spielt anzeigen",
|
||||
"lastfm": "zeige last.fm links",
|
||||
"lastfm_description": "zeige links zu Last.fm auf dem Künstler/Album-Seiten",
|
||||
"musicbrainz": "Zeig MusicBrainz links",
|
||||
"musicbrainz": "Zeige MusicBrainz links",
|
||||
"customCssEnable": "benutzerdefiniertes CSS aktivieren",
|
||||
"albumBackground_description": "fügt ein Hintergrundbild für die Albumseiten hinzu, welche das Albumcover zeigen",
|
||||
"albumBackgroundBlur": "Größe der Album-Bildunschärfe",
|
||||
@@ -972,7 +1044,71 @@
|
||||
"translationTargetLanguage_description": "die gewünschte Sprache der Übersetzung",
|
||||
"translationTargetLanguage": "Zielsprache der Übersetzung",
|
||||
"queryBuilderCustomFields": "benutzerdefiniertes Feld",
|
||||
"queryBuilderCustomFields_inputTag": "Tag"
|
||||
"queryBuilderCustomFields_inputTag": "Tag",
|
||||
"homeFeatureStyle_optionMultiple": "mehrere",
|
||||
"imageResolution": "Bildauflösung",
|
||||
"imageResolution_optionTable": "Tabelle",
|
||||
"imageResolution_optionSidebar": "Seitenleiste",
|
||||
"preservePitch": "Tonhöhe erhalten",
|
||||
"analyticsEnable": "Nutzungsbasierte Analyse senden",
|
||||
"automaticUpdates": "Automatische Updates",
|
||||
"automaticUpdates_description": "Updates automatisch suchen und installieren",
|
||||
"releaseChannel_optionAlpha": "Alpha (nightly)",
|
||||
"useThemeAccentColor": "Akzentfarbe des Themas nutzen",
|
||||
"analyticsEnable_description": "Anonymisierte Nutzungsdaten werden an den Entwickler gesendet, um die Anwendung zu verbessern",
|
||||
"artistReleaseTypeConfiguration_description": "Konfigurieren, welche Release-Typen und in welcher Reihenfolge diese auf der Album-Künstlerseite angezeigt werden",
|
||||
"homeConfiguration_description": "Konfigurieren, welche Elemente und in welcher Reihenfolge diese auf der Startseite angezeigt werden",
|
||||
"passwordStore_description": "Verwendeter Passwort/Geheimnis Speicher. Sollten Probleme beim Speichern von Passwörtern auftreten, wähle eine andere Methode",
|
||||
"passwordStore": "Passwort/Geheimnis Speicher",
|
||||
"audioFadeOnStatusChange_description": "ermöglicht Ein- und Ausblenden, wenn sich der Wiedergabe-/Pause-Status ändert",
|
||||
"audioFadeOnStatusChange": "Audio Ein-/Ausblenden bei Statusveränderung",
|
||||
"showRatings_description": "Aktiviere die Anzeige einer Bewertung in Sternen",
|
||||
"showRatings": "Zeige Sternebewertungen",
|
||||
"blurExplicitImages": "Explizite Bilder unkenntlich machen",
|
||||
"blurExplicitImages_description": "Album- und Song-Cover, die als explizit gekennzeichnet sind, werden unscharf dargestellt",
|
||||
"enableGridMultiSelect": "Raster-Mehrfachauswahl aktivieren",
|
||||
"enableGridMultiSelect_description": "Wenn aktiviert, können in Rasteransichten mehrere Elemente ausgewählt werden. Wenn deaktiviert, führt ein Klick auf Rasterelement-Bilder zur Artikelseite",
|
||||
"playerbarOpenDrawer_description": "Ermöglicht das Anklicken der Playerleiste, um den Vollbild-Player zu öffnen",
|
||||
"playerbarOpenDrawer": "Playerleiste Vollbild-Umschalter",
|
||||
"playerbarSlider": "Playerleiste-Schieberegler",
|
||||
"playerbarSlider_description": "Die Wellenform Darstellung wird nicht empfohlen, wenn eine langsame oder tarifierte Internetverbindung genutzt wird",
|
||||
"playerbarSliderType_optionSlider": "Schieberegler",
|
||||
"playerbarSliderType_optionWaveform": "Wellenform",
|
||||
"playerbarWaveformAlign": "Wellenform ausrichten",
|
||||
"playerbarWaveformBarWidth": "Breite der Wellenform Leiste",
|
||||
"playerbarWaveformGap": "Wellenform Lücke",
|
||||
"playerbarWaveformRadius": "Wellenform Radius",
|
||||
"artistRadioCount": "Interpreten/Song Radio Länge",
|
||||
"artistRadioCount_description": "legt die Anzahl der Songs fest, die beim Interpreten-Radio und Song-Radio abgerufen werden",
|
||||
"sidebarPlaylistListFilterRegex_description": "versteckt Wiedergabelisten in der Seitenleiste, die diesem regulären Ausdruck entsprechen",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "z.B. ^Täglicher Mix.*",
|
||||
"sidebarPlaylistListFilterRegex": "Wiedergabelisten Regex-Filter",
|
||||
"showVisualizerInSidebar_description": "Ein Panel wird zur Player-Seitenleiste hinzugefügt, das den Visualizer anzeigt",
|
||||
"showVisualizerInSidebar": "Visualizer in Seitenleiste anzeigen",
|
||||
"combinedLyricsAndVisualizer_description": "Songtexte und Visualizer im selben Panel anzeigen",
|
||||
"combinedLyricsAndVisualizer": "Songtexte und Visualizer geimeinsam in der Seitenleiste anzeigen",
|
||||
"mpvExtraParameters_description": "zusätzliche Argumente die an mpv übergeben werden sollen",
|
||||
"mpvExtraParameters_help": "Eins pro Zeile",
|
||||
"pathReplace": "Dateipfad-Ersetzung",
|
||||
"pathReplace_description": "Ersetze den Standard Dateipfad des Servers",
|
||||
"pathReplace_optionRemovePrefix": "Präfix entfernen",
|
||||
"pathReplace_optionAddPrefix": "Präfix hinzufügen",
|
||||
"imageResolution_description": "Die Auflösung für die in der App verwendeten Bilder. Bei einem Wert von 0 wird die originale Bildauflösung verwendet",
|
||||
"preservePitch_description": "Behält beim Anpassen der Wiedergabegeschwindigkeit die Tonhöhe bei",
|
||||
"preventSleepOnPlayback_description": "Verhindert das Abschalten des Displays während der Musikwiedergabe",
|
||||
"preventSleepOnPlayback": "Verhindert den Energiesparmodus während der Musikwiedergabe",
|
||||
"trayEnabled_description": "Tray-Symbol anzeigen/verbergen. Bei Deaktivierung werden auch Minimieren/Beenden zum Tray deaktiviert",
|
||||
"queryBuilder": "Abfrage-Editor",
|
||||
"queryBuilderCustomFields_inputLabel": "Label",
|
||||
"queryBuilderCustomFields_description": "Füge benutzerdefinierte Felder für den Abfrage-Editor hinzu",
|
||||
"autosave": "Automatisch aktuelle Wiedergabeliste speichern",
|
||||
"autosave_description": "Aktiviere die automatische Speicherung der aktuellen Wiedergabe auf dem Server. Diese Funktion ist nur bei Navidrome/Subsonic Servern verfügbar und es darf sich nicht um eine gemischte Wiedergabeliste handeln.",
|
||||
"autosaveCount": "Häufigkeit der automatischen Speicherung bei Wiedergabelisten",
|
||||
"autosaveCount_description": "Wieviele Lieder gespielt werden, bevor die Wiedergabeliste gespeichert wird. 1 (Minimum) bedeutet die Speicherung nach jedem gespielten Lied",
|
||||
"useThemeAccentColor_description": "Verwendet die Primärfarbe des gewählten Themas anstatt einer ausgewählten Akzentfarbe",
|
||||
"useThemePrimaryShade": "Primärschatten des Themas nutzen",
|
||||
"useThemePrimaryShade_description": "Verwendet den Primärschatten des ausgewählten Themas als primäre Farbvarianten",
|
||||
"primaryShade": "Primärschatten"
|
||||
},
|
||||
"dragDropZone": {
|
||||
"error_oneFileOnly": "Bitte wähle nur 1 Datei",
|
||||
@@ -1006,7 +1142,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "Broadcast",
|
||||
"ep": "EP",
|
||||
"other": "andere",
|
||||
@@ -1032,5 +1168,107 @@
|
||||
"secondShort": "Sek",
|
||||
"hourShort": "Std",
|
||||
"dayShort": "Tag"
|
||||
},
|
||||
"visualizer": {
|
||||
"options": {
|
||||
"weightingFilter": {
|
||||
"z": "Z",
|
||||
"d": "D",
|
||||
"c": "C",
|
||||
"none": "Keine",
|
||||
"a": "A",
|
||||
"b": "B"
|
||||
},
|
||||
"frequencyScale": {
|
||||
"linear": "Lineare Skala",
|
||||
"log": "Log Skala",
|
||||
"mel": "Mel Skala",
|
||||
"bark": "Bark-Skala",
|
||||
"none": "Keine"
|
||||
},
|
||||
"gradient": {
|
||||
"classic": "Klassisch",
|
||||
"prism": "Prisma",
|
||||
"rainbow": "Regenbogen",
|
||||
"steelblue": "Stahlblau",
|
||||
"orangered": "Orange-Rot"
|
||||
},
|
||||
"channelLayout": {
|
||||
"dualHorizontal": "Dual-Horizontal",
|
||||
"dualVertical": "Dual-Vertikal"
|
||||
}
|
||||
},
|
||||
"minimumFrequency": "Mindestfrequenz",
|
||||
"minimumDecibels": "Minimale Dezibel",
|
||||
"visualizerType": "Visualizer Art",
|
||||
"cyclePresets": "Vorlagen durchrotieren",
|
||||
"cycleTime": "Abspieldauer je Vorlage (Sekunden)",
|
||||
"includeAllPresets": "Alle Vorlagen verwenden",
|
||||
"ignoredPresets": "Ignorierte Vorlagen",
|
||||
"selectedPresets": "Ausgewählte Vorlagen",
|
||||
"randomizeNextPreset": "Nächste Vorlage zufällig wählen",
|
||||
"blendTime": "Übergangsdauer",
|
||||
"presets": "Vorlage",
|
||||
"selectPreset": "Vorlage auswählen",
|
||||
"applyPreset": "Vorlage anwenden",
|
||||
"saveAsPreset": "Als Vorlage speichern",
|
||||
"updatePreset": "Vorlage aktualisieren",
|
||||
"copyConfiguration": "Konfiguration kopieren",
|
||||
"pasteConfiguration": "Konfiguration einfügen",
|
||||
"pasteConfigurationPlaceholder": "JSON Konfiguration hier einfügen...",
|
||||
"pasteFromClipboard": "Aus Zwischenablage einfügen",
|
||||
"applyConfiguration": "Konfiguration anwenden",
|
||||
"configCopied": "Konfiguration in Zwischenablage kopiert",
|
||||
"configCopyFailed": "Konfiguration konnte nicht kopiert werden",
|
||||
"configPasted": "Konfiguration erfolgreich angewandt",
|
||||
"configPasteFailed": "Konfiguration konnte nicht angewandt werden. Bitte Format überprüfen.",
|
||||
"configPasteReadFailed": "Zwischenablage konnte nicht ausgelesen werden",
|
||||
"presetName": "Vorlagen Name",
|
||||
"presetNamePlaceholder": "Name der Vorlage eingeben",
|
||||
"general": "Allgemein",
|
||||
"mode": "Modus",
|
||||
"mode1To8": "Modus 1 - 8",
|
||||
"mode10": "Modus 10",
|
||||
"lineWidth": "Linienbreite",
|
||||
"channelLayout": "Kanallayout",
|
||||
"maxFPS": "Max FPS",
|
||||
"opacity": "Deckkraft",
|
||||
"customGradients": "Benutzerdefinierte Gradienten",
|
||||
"addCustomGradient": "Benutzerdefinierten Gradienten hinzufügen",
|
||||
"gradientName": "Gradientenname",
|
||||
"gradientNamePlaceholder": "Gradientenname",
|
||||
"vertical": "Vertikal",
|
||||
"horizontal": "Horizontal",
|
||||
"addColor": "Farbe hinzufügen",
|
||||
"position": "Position",
|
||||
"level": "Ebene",
|
||||
"remove": "Entfernen",
|
||||
"pasteGradient": "Gradient einfügen",
|
||||
"pasteGradientPlaceholder": "Gradient JSON hier einfügen...",
|
||||
"custom": "Benutzerdefiniert",
|
||||
"builtIn": "Eingebaut",
|
||||
"colors": "Farben",
|
||||
"colorMode": "Farbmodus",
|
||||
"gradient": "Gradienten",
|
||||
"gradientLeft": "Gradienten links",
|
||||
"gradientRight": "Gradienten rechts",
|
||||
"fft": "FFT",
|
||||
"fftSize": "FFT Größe",
|
||||
"smoothing": "Glätten",
|
||||
"frequencyRangeAndScaling": "Frequenzbereich und Skalierung",
|
||||
"maximumFrequency": "Maximale Frequenz",
|
||||
"sensitivity": "Empfindlichkeit",
|
||||
"weightingFilter": "Gewichtungsfilter",
|
||||
"maximumDecibels": "Maximale Dezibel",
|
||||
"linearAmplitude": "Lineare Amplitude",
|
||||
"linearBoost": "Linearer Boost",
|
||||
"radialSpectrum": "Radiales Spektrum",
|
||||
"radial": "Radial",
|
||||
"radialInvert": "Radial invertiert",
|
||||
"radius": "Radius",
|
||||
"miscellaneousSettings": "Verschiedenes Einstellungen",
|
||||
"ansiBands": "ANSI Bänder",
|
||||
"lowResolution": "Niedrige Auflösung",
|
||||
"showFPS": "FPS anzeigen"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
{
|
||||
"action": {
|
||||
"addToFavorites": "add to $t(entity.favorite_other)",
|
||||
"addToPlaylist": "add to $t(entity.playlist_one)",
|
||||
"addToFavorites": "add to $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "add to $t(entity.playlist, {\"count\": 1})",
|
||||
"addOrRemoveFromSelection": "add or remove from selection",
|
||||
"selectRangeOfItems": "select a range of items",
|
||||
"clearQueue": "clear queue",
|
||||
"createPlaylist": "create $t(entity.playlist_one)",
|
||||
"createRadioStation": "create $t(entity.radioStation_one)",
|
||||
"deletePlaylist": "delete $t(entity.playlist_one)",
|
||||
"deleteRadioStation": "delete $t(entity.radioStation_one)",
|
||||
"goToCurrent": "go to current item",
|
||||
"createPlaylist": "create $t(entity.playlist, {\"count\": 1})",
|
||||
"createRadioStation": "create $t(entity.radioStation, {\"count\": 1})",
|
||||
"deletePlaylist": "delete $t(entity.playlist, {\"count\": 1})",
|
||||
"deleteRadioStation": "delete $t(entity.radioStation, {\"count\": 1})",
|
||||
"selectAll": "select all",
|
||||
"deselectAll": "deselect all",
|
||||
"downloadStarted": "started download of {{count}} items",
|
||||
"editPlaylist": "edit $t(entity.playlist_one)",
|
||||
"editPlaylist": "edit $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "go to page",
|
||||
"moveToNext": "move to next",
|
||||
"moveToBottom": "move to bottom",
|
||||
@@ -26,17 +27,18 @@
|
||||
"shuffleAll": "shuffle all",
|
||||
"shuffleSelected": "shuffle selected",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "remove from $t(entity.favorite_other)",
|
||||
"removeFromPlaylist": "remove from $t(entity.playlist_one)",
|
||||
"removeFromFavorites": "remove from $t(entity.favorite, {\"count\": 2})",
|
||||
"removeFromPlaylist": "remove from $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "remove from queue",
|
||||
"setRating": "set rating",
|
||||
"toggleSmartPlaylistEditor": "toggle $t(entity.smartPlaylist) editor",
|
||||
"viewPlaylists": "view $t(entity.playlist_other)",
|
||||
"viewPlaylists": "view $t(entity.playlist, {\"count\": 2})",
|
||||
"viewMore": "view more",
|
||||
"openApplicationDirectory": "open application directory",
|
||||
"openIn": {
|
||||
"lastfm": "Open in Last.fm",
|
||||
"musicbrainz": "Open in MusicBrainz"
|
||||
"musicbrainz": "Open in MusicBrainz",
|
||||
"spotify": "Open in Spotify"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
@@ -69,7 +71,7 @@
|
||||
"configure": "configure",
|
||||
"confirm": "confirm",
|
||||
"create": "create",
|
||||
"currentSong": "current $t(entity.track_one)",
|
||||
"currentSong": "current $t(entity.track, {\"count\": 1})",
|
||||
"decrease": "decrease",
|
||||
"delete": "delete",
|
||||
"descending": "descending",
|
||||
@@ -117,7 +119,7 @@
|
||||
"path": "path",
|
||||
"playerMustBePaused": "player must be paused",
|
||||
"preview": "preview",
|
||||
"previousSong": "previous $t(entity.track_one)",
|
||||
"previousSong": "previous $t(entity.track, {\"count\": 1})",
|
||||
"private": "private",
|
||||
"public": "public",
|
||||
"quit": "quit",
|
||||
@@ -128,6 +130,7 @@
|
||||
"releaseType": "release type",
|
||||
"refresh": "refresh",
|
||||
"reload": "reload",
|
||||
"rename": "rename",
|
||||
"reset": "reset",
|
||||
"resetToDefault": "reset to default",
|
||||
"restartRequired": "restart required",
|
||||
@@ -137,7 +140,6 @@
|
||||
"saveAndReplace": "save and replace",
|
||||
"saveAs": "save as",
|
||||
"search": "search",
|
||||
"setting": "setting",
|
||||
"setting_one": "setting",
|
||||
"setting_other": "settings",
|
||||
"slower": "slower",
|
||||
@@ -159,7 +161,8 @@
|
||||
"clean": "clean",
|
||||
"gridRows": "grid rows",
|
||||
"tableColumns": "table columns",
|
||||
"itemsMore": "{{count}} more"
|
||||
"itemsMore": "{{count}} more",
|
||||
"newVersionAvailable": "a new version is available"
|
||||
},
|
||||
"entity": {
|
||||
"album_one": "album",
|
||||
@@ -194,7 +197,7 @@
|
||||
"play_other": "{{count}} plays",
|
||||
"playlistWithCount_one": "{{count}} playlist",
|
||||
"playlistWithCount_other": "{{count}} playlists",
|
||||
"smartPlaylist": "smart $t(entity.playlist_one)",
|
||||
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
|
||||
"track_one": "track",
|
||||
"track_other": "tracks",
|
||||
"song_one": "song",
|
||||
@@ -211,6 +214,7 @@
|
||||
"credentialsRequired": "credentials required",
|
||||
"endpointNotImplementedError": "endpoint {{endpoint}} is not implemented for {{serverType}}",
|
||||
"genericError": "an error occurred",
|
||||
"invalidJson": "invalid JSON",
|
||||
"invalidServer": "invalid server",
|
||||
"localFontAccessDenied": "access denied to local fonts",
|
||||
"loginRateError": "too many login attempts, please try again in a few seconds",
|
||||
@@ -222,11 +226,13 @@
|
||||
"notificationDenied": "permissions for notifications were denied. this setting has no effect",
|
||||
"openError": "could not open file",
|
||||
"playbackError": "an error occurred when trying to play the media",
|
||||
"playbackPausedDueToError": "playback was paused due to an error",
|
||||
"remoteDisableError": "an error occurred when trying to $t(common.disable) the remote server",
|
||||
"remoteEnableError": "an error occurred when trying to $t(common.enable) the remote server",
|
||||
"remotePortError": "an error occurred when trying to set the remote server port",
|
||||
"remotePortWarning": "restart the server to apply the new port",
|
||||
"saveQueueFailed": "failed to save queue",
|
||||
"serverLockSingleServer": "only one server is allowed when server is locked",
|
||||
"serverNotSelectedError": "no server selected",
|
||||
"serverRequired": "server required",
|
||||
"sessionExpiredError": "your session has expired",
|
||||
@@ -234,14 +240,16 @@
|
||||
"settingsSyncError": "discrepancies were found between the settings in the renderer and the main process. restart the application to apply the changes"
|
||||
},
|
||||
"filter": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumCount": "$t(entity.album_other) count",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"matchAnd": "and",
|
||||
"matchOr": "or",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) count",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biography",
|
||||
"bitrate": "bitrate",
|
||||
"bpm": "bpm",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"comment": "comment",
|
||||
"communityRating": "community rating",
|
||||
"criticRating": "critic rating",
|
||||
@@ -250,7 +258,7 @@
|
||||
"duration": "duration",
|
||||
"favorited": "favorited",
|
||||
"fromYear": "from year",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"id": "id",
|
||||
"isCompilation": "is compilation",
|
||||
"isFavorited": "is favorited",
|
||||
@@ -273,6 +281,7 @@
|
||||
"releaseYear": "release year",
|
||||
"search": "search",
|
||||
"songCount": "song count",
|
||||
"sortName": "sort name",
|
||||
"title": "title",
|
||||
"toYear": "to year",
|
||||
"trackNumber": "track",
|
||||
@@ -329,20 +338,20 @@
|
||||
"description": "This action will add all items in the current filtered view"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"create": "create $t(entity.playlist_one) {{playlist}}",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "create $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "skip duplicates",
|
||||
"searchOrCreate": "search $t(entity.playlist_other) or type to create a new one",
|
||||
"searchOrCreate": "search $t(entity.playlist, {\"count\": 2}) or type to create a new one",
|
||||
"success": "added $t(entity.trackWithCount, {\"count\": {{message}} }) to $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "add to $t(entity.playlist_one)"
|
||||
"title": "add to $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "public",
|
||||
"success": "$t(entity.playlist_one) created successfully",
|
||||
"title": "create $t(entity.playlist_one)"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) created successfully",
|
||||
"title": "create $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"success": "radio station created successfully",
|
||||
@@ -352,15 +361,15 @@
|
||||
"input_streamUrl": "stream url"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "type the name of the $t(entity.playlist_one) to confirm",
|
||||
"success": "$t(entity.playlist_one) deleted successfully",
|
||||
"title": "delete $t(entity.playlist_one)"
|
||||
"input_confirm": "type the name of the $t(entity.playlist, {\"count\": 1}) to confirm",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) deleted successfully",
|
||||
"title": "delete $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"publicJellyfinNote": "Jellyfin for some reason does not expose whether a playlist is public or not. If you wish for this to remain public, please have the following input selected",
|
||||
"editNote": "manual edits are not recommended for large playlists. are you sure you accept the risk of data loss incurred by overwriting the existing playlist?",
|
||||
"success": "$t(entity.playlist_one) updated successfully",
|
||||
"title": "edit $t(entity.playlist_one)"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) updated successfully",
|
||||
"title": "edit $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "export lyrics",
|
||||
@@ -368,7 +377,7 @@
|
||||
"input_offset": "$t(setting.lyricOffset)"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "lyric search"
|
||||
},
|
||||
@@ -386,15 +395,17 @@
|
||||
},
|
||||
"shareItem": {
|
||||
"allowDownloading": "allow downloading",
|
||||
"copyToClipboard": "Copy to clipboard: Ctrl+C, Enter",
|
||||
"description": "description",
|
||||
"setExpiration": "set expiration",
|
||||
"success": "share link copied to clipboard (or click here to open)",
|
||||
"successMustClick": "share created successfully. click here to open",
|
||||
"expireInvalid": "expiration must be in the future",
|
||||
"createFailed": "failed to create share (is sharing enabled?)"
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "play random",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "how many songs?",
|
||||
"input_minYear": "from year",
|
||||
"input_maxYear": "to year",
|
||||
@@ -417,34 +428,47 @@
|
||||
"albumArtistDetail": {
|
||||
"about": "About {{artist}}",
|
||||
"appearsOn": "appears on",
|
||||
"favoriteSongs": "favorite songs",
|
||||
"groupingTypeAll": "all release types",
|
||||
"groupingTypePrimary": "primary release types",
|
||||
"recentReleases": "recent releases",
|
||||
"viewDiscography": "view discography",
|
||||
"relatedArtists": "related $t(entity.artist_other)",
|
||||
"relatedArtists": "related $t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "top songs",
|
||||
"topSongsCommunity": "community",
|
||||
"topSongsFrom": "top songs from {{title}}",
|
||||
"topSongsPersonal": "personal",
|
||||
"favoriteSongsFrom": "favorite songs from {{title}}",
|
||||
"viewAll": "view all",
|
||||
"viewAllTracks": "view all $t(entity.track_other)"
|
||||
"viewAllTracks": "view all $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "more from this $t(entity.artist_one)",
|
||||
"moreFromArtist": "more from this $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "more from {{item}}",
|
||||
"released": "released"
|
||||
},
|
||||
"albumList": {
|
||||
"artistAlbums": "albums by {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
|
||||
"title": "$t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "radio stations"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "commits since {{stable}}",
|
||||
"noNewCommits": "no new commits in this range",
|
||||
"noStableReleaseToCompare": "no stable release available to compare with"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(Paused) ",
|
||||
"privateMode": "(Private mode)"
|
||||
},
|
||||
"appMenu": {
|
||||
"collapseSidebar": "collapse sidebar",
|
||||
@@ -461,7 +485,7 @@
|
||||
"selectMusicFolder": "select music folder",
|
||||
"noMusicFolder": "no music folder selected",
|
||||
"multipleMusicFolders": "{{count}} music folders selected",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"version": "version {{version}}"
|
||||
},
|
||||
"manageServers": {
|
||||
@@ -496,8 +520,8 @@
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"shareItem": "share item",
|
||||
"goTo": "go to",
|
||||
"goToAlbum": "go to $t(entity.album_one)",
|
||||
"goToAlbumArtist": "go to $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "go to $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "go to $t(entity.albumArtist, {\"count\": 1})",
|
||||
"showDetails": "get info"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
@@ -524,12 +548,12 @@
|
||||
"noLyrics": "no lyrics found"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "show $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "show $t(entity.genre_one) $t(entity.track_other)",
|
||||
"title": "$t(entity.genre_other)"
|
||||
"showAlbums": "show $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "show $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -541,7 +565,7 @@
|
||||
},
|
||||
"home": {
|
||||
"explore": "explore from your library",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"mostPlayed": "most played",
|
||||
"newlyAdded": "newly added releases",
|
||||
"recentlyPlayed": "recently played",
|
||||
@@ -557,7 +581,11 @@
|
||||
"reorder": "reordering only enabled when sorting by id"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "override existing",
|
||||
"saveAsCollection": "save as collection"
|
||||
},
|
||||
"setting": {
|
||||
"advanced": "advanced",
|
||||
@@ -585,26 +613,27 @@
|
||||
"playerFilters": "player filters"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"collections": "collections",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"radio": "$t(entity.radioStation_other)",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})",
|
||||
"myLibrary": "my library",
|
||||
"nowPlaying": "now playing",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "shared $t(entity.playlist_other)",
|
||||
"tracks": "$t(entity.track_other)"
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "shared $t(entity.playlist, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "tracks by {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
@@ -612,6 +641,7 @@
|
||||
"addNext": "next",
|
||||
"addLastShuffled": "last (shuffled)",
|
||||
"addNextShuffled": "next (shuffled)",
|
||||
"albumRadio": "album radio",
|
||||
"artistRadio": "artist radio",
|
||||
"holdToShuffle": "hold to shuffle",
|
||||
"favorite": "favorite",
|
||||
@@ -648,7 +678,16 @@
|
||||
"trackRadio": "track radio",
|
||||
"unfavorite": "unfavorite",
|
||||
"pause": "pause",
|
||||
"viewQueue": "view queue"
|
||||
"viewQueue": "view queue",
|
||||
"sleepTimer": "sleep timer",
|
||||
"sleepTimer_endOfSong": "end of current song",
|
||||
"sleepTimer_minutes": "{{count}} min",
|
||||
"sleepTimer_hours": "{{count}} hr",
|
||||
"sleepTimer_custom": "custom",
|
||||
"sleepTimer_off": "off",
|
||||
"sleepTimer_timeRemaining": "{{time}} remaining",
|
||||
"sleepTimer_setCustom": "set timer",
|
||||
"sleepTimer_cancel": "cancel timer"
|
||||
},
|
||||
"queryBuilder": {
|
||||
"standardTags": "standard tags",
|
||||
@@ -656,7 +695,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "broadcast",
|
||||
"ep": "ep",
|
||||
"other": "other",
|
||||
@@ -684,16 +723,26 @@
|
||||
"autoDJ_itemCount_description": "the number of items attempted to be added to the queue when auto DJ is enabled",
|
||||
"autoDJ_timing": "timing",
|
||||
"autoDJ_timing_description": "the number of songs remaining in the queue before auto DJ is triggered",
|
||||
"autosave": "automatically save play queue",
|
||||
"autosave_description": "enable automatically saving the play queue to your server. this is only possible when using Navidrome/Subsonic, and you cannot have a mixed play queue.",
|
||||
"autosaveCount": "automatic play queue save frequency",
|
||||
"autosaveCount_description": "how many track changes before the queue is saved. 1 (minimum) means every song change",
|
||||
"accentColor_description": "sets the accent color for the application",
|
||||
"accentColor": "accent color",
|
||||
"useThemeAccentColor": "use theme accent color",
|
||||
"useThemeAccentColor_description": "use the primary color defined in the selected theme instead of the custom accent color",
|
||||
"useThemePrimaryShade": "use theme primary shade",
|
||||
"useThemePrimaryShade_description": "use the primary shade defined in the selected theme for primary color variants",
|
||||
"primaryShade": "primary shade",
|
||||
"primaryShade_description": "override the primary shade (0–9) used for buttons, links, and other primary-colored elements",
|
||||
"albumBackground_description": "adds a background image for album pages containing the album art",
|
||||
"albumBackground": "album background image",
|
||||
"albumBackgroundBlur_description": "adjusts the amount of blur applied to the album background image",
|
||||
"albumBackgroundBlur": "album background image blur size",
|
||||
"analyticsDisable": "Opt-out of usage based analytics",
|
||||
"analyticsDisable_description": "Anonymized usage data is sent to the developer to help improve the application",
|
||||
"analyticsEnable": "Send usage-based analytics",
|
||||
"analyticsEnable_description": "Anonymized usage data is sent to the developer to help improve the application",
|
||||
"applicationHotkeys_description": "configure application hotkeys. toggle the checkbox to set as a global hotkey (desktop only)",
|
||||
"applicationHotkeys": "application hotkeys",
|
||||
"artistBackground": "artist background image",
|
||||
@@ -704,7 +753,7 @@
|
||||
"artistConfiguration_description": "configure what items are shown, and in what order, on the album artist page",
|
||||
"artistReleaseTypeConfiguration": "artist release type configuration",
|
||||
"artistReleaseTypeConfiguration_description": "configure what release types are shown, and in what order, on the album artist page",
|
||||
"audioDevice_description": "select the audio device to use for playback (web player only)",
|
||||
"audioDevice_description": "select the audio device to use for playback",
|
||||
"audioDevice": "audio device",
|
||||
"audioExclusiveMode_description": "enable exclusive output mode. In this mode, the system is usually locked out, and only mpv will be able to output audio",
|
||||
"audioExclusiveMode": "audio exclusive mode",
|
||||
@@ -730,11 +779,13 @@
|
||||
"customCssNotice": "Warning: while there is some sanitization (disallowing url() and content:), using custom css can still pose risks by changing the interface",
|
||||
"customFontPath_description": "sets the path to the custom font to use for the application",
|
||||
"customFontPath": "custom font path",
|
||||
"disableAutomaticUpdates": "disable automatic updates",
|
||||
"automaticUpdates": "Automatic updates",
|
||||
"automaticUpdates_description": "Check for and install updates automatically",
|
||||
"releaseChannel_optionAlpha": "alpha (nightly)",
|
||||
"releaseChannel_optionBeta": "beta",
|
||||
"releaseChannel_optionLatest": "latest",
|
||||
"releaseChannel": "release channel",
|
||||
"releaseChannel_description": "choose between stable releases or beta releases for automatic updates",
|
||||
"releaseChannel_description": "choose between stable, beta, or alpha (nightly) releases for automatic updates",
|
||||
"disableLibraryUpdateOnStartup": "disable checking for new versions on startup",
|
||||
"discordApplicationId_description": "the application id for {{discord}} rich presence (defaults to {{defaultId}})",
|
||||
"discordApplicationId": "{{discord}} application id",
|
||||
@@ -756,6 +807,8 @@
|
||||
"discordRichPresence_description": "enable playback status in {{discord}} rich presence. Image keys are: {{icon}}, {{playing}}, and {{paused}}",
|
||||
"discordServeImage": "serve {{discord}} images from server",
|
||||
"discordServeImage_description": "share cover art for {{discord}} rich presence from server itself, only available for Jellyfin and Navidrome. {{discord}} uses a bot to fetch images, so your server must be reachable from the public internet",
|
||||
"discordStateIcon": "show playing icon",
|
||||
"discordStateIcon_description": "show a small playing icon in the rich presence status. the paused icon is always shown when \"Show rich presence when paused\" is enabled",
|
||||
"discordUpdateInterval": "{{discord}} rich presence update interval",
|
||||
"discordUpdateInterval_description": "the time in seconds between each update (minimum 15 seconds)",
|
||||
"enableAutoTranslation_description": "enable translation automatically when lyrics are loaded",
|
||||
@@ -796,6 +849,10 @@
|
||||
"homeConfiguration": "home page configuration",
|
||||
"homeFeature_description": "controls whether to show the large featured carousel on the home page",
|
||||
"homeFeature": "home featured carousel",
|
||||
"homeFeatureStyle_description": "controls the style of the home featured carousel",
|
||||
"homeFeatureStyle": "home featured carousel style",
|
||||
"homeFeatureStyle_optionMultiple": "multiple",
|
||||
"homeFeatureStyle_optionSingle": "single",
|
||||
"hotkey_browserBack": "browser back",
|
||||
"hotkey_browserForward": "browser forward",
|
||||
"hotkey_favoriteCurrentSong": "favorite $t(common.currentSong)",
|
||||
@@ -868,6 +925,10 @@
|
||||
"mpvExtraParameters_help": "one per line",
|
||||
"musicbrainz_description": "show links to MusicBrainz on artist/album pages, where MusicBrainz ID exists",
|
||||
"musicbrainz": "show MusicBrainz links",
|
||||
"spotify_description": "show links to Spotify on artist/album pages",
|
||||
"spotify": "show Spotify links",
|
||||
"nativeSpotify_description": "open in the Spotify app instead of your browser",
|
||||
"nativeSpotify": "use Spotify app",
|
||||
"neteaseTranslation_description": "When enabled, fetches and displays translated lyrics from NetEase if available",
|
||||
"neteaseTranslation": "Enable NetEase translations",
|
||||
"notify": "enable song notifications",
|
||||
@@ -918,6 +979,10 @@
|
||||
"showLyricsInSidebar": "show lyrics in player sidebar",
|
||||
"showRatings_description": "controls if the star ratings feature shows up in the interface",
|
||||
"showRatings": "show star ratings",
|
||||
"blurExplicitImages": "blur explicit images",
|
||||
"blurExplicitImages_description": "album and song artwork tagged as explicit will be blurred",
|
||||
"enableGridMultiSelect": "enable grid multi-select",
|
||||
"enableGridMultiSelect_description": "when enabled, allows selecting multiple items in grid views. when disabled, clicking grid item images will navigate to the item page",
|
||||
"showVisualizerInSidebar_description": "a panel will be added to the player sidebar that displays the visualizer",
|
||||
"showVisualizerInSidebar": "show visualizer in player sidebar",
|
||||
"combinedLyricsAndVisualizer_description": "combine lyrics and visualizer into the same panel",
|
||||
@@ -939,9 +1004,9 @@
|
||||
"replayGainFallback_description": "gain in db to apply if the file has no {{ReplayGain}} tags",
|
||||
"replayGainFallback": "{{ReplayGain}} fallback",
|
||||
"replayGainMode_description": "adjust volume gain according to {{ReplayGain}} values stored in the file metadata",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"replayGainMode": "{{ReplayGain}} mode",
|
||||
"replayGainPreamp_description": "adjust the preamp gain applied to the {{ReplayGain}} values",
|
||||
"replayGainPreamp": "{{ReplayGain}} preamp (dB)",
|
||||
@@ -959,8 +1024,15 @@
|
||||
"sidebarCollapsedNavigation": "sidebar (collapsed) navigation",
|
||||
"sidebarConfiguration_description": "select the items and order in which they appear in the sidebar",
|
||||
"sidebarConfiguration": "sidebar configuration",
|
||||
"playerItemConfiguration_description": "configure what items are shown, and in what order, on the fullscreen player",
|
||||
"playerItemConfiguration": "player item configuration",
|
||||
"sidebarPlaylistList_description": "show or hide the playlist list in the sidebar",
|
||||
"sidebarPlaylistList": "sidebar playlist list",
|
||||
"sidebarPlaylistSorting_description": "allows manual playlist sorting in the sidebar using drag and drop instead of the default server order",
|
||||
"sidebarPlaylistSorting": "sidebar playlist sorting",
|
||||
"sidebarPlaylistListFilterRegex_description": "hide playlists in the sidebar that match this regular expression",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "e.g. ^Daily Mix.*",
|
||||
"sidebarPlaylistListFilterRegex": "playlist filter regex",
|
||||
"sidePlayQueueStyle_description": "sets the style of the side play queue",
|
||||
"sidePlayQueueStyle_optionAttached": "attached",
|
||||
"sidePlayQueueStyle_optionDetached": "detached",
|
||||
@@ -1015,19 +1087,19 @@
|
||||
"column": {
|
||||
"album": "album",
|
||||
"albumArtist": "album artist",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biography",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"bitrate": "bitrate",
|
||||
"bpm": "bpm",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"codec": "$t(common.codec)",
|
||||
"comment": "comment",
|
||||
"dateAdded": "date added",
|
||||
"discNumber": "disc",
|
||||
"favorite": "favorite",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "last played",
|
||||
"path": "path",
|
||||
"playCount": "plays",
|
||||
@@ -1036,7 +1108,7 @@
|
||||
"releaseYear": "year",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "title",
|
||||
"trackNumber": "track",
|
||||
"owner": "owner"
|
||||
@@ -1071,27 +1143,29 @@
|
||||
"alternateRowColors": "alternate row colors",
|
||||
"horizontalBorders": "row borders",
|
||||
"rowHoverHighlight": "row hover highlight",
|
||||
"showHeader": "show header",
|
||||
"verticalBorders": "column borders"
|
||||
},
|
||||
"label": {
|
||||
"actions": "$t(common.action_other)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumGroup": "album group",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"codec": "$t(common.codec)",
|
||||
"composer": "composer",
|
||||
"dateAdded": "date added",
|
||||
"discNumber": "disc number",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genreBadge": "$t(entity.genre_one) (badges)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
|
||||
"image": "image",
|
||||
"lastPlayed": "last played",
|
||||
"note": "$t(common.note)",
|
||||
@@ -1103,7 +1177,7 @@
|
||||
"rowIndex": "row index",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(common.title)",
|
||||
"titleArtist": "$t(common.title) (artist)",
|
||||
"titleCombined": "$t(common.title) (combined)",
|
||||
@@ -1111,6 +1185,7 @@
|
||||
"year": "$t(common.year)"
|
||||
},
|
||||
"view": {
|
||||
"detail": "detail",
|
||||
"grid": "grid",
|
||||
"list": "list",
|
||||
"table": "table"
|
||||
|
||||
@@ -32,20 +32,30 @@
|
||||
"playSimilarSongs": "Reproducir canciones similares",
|
||||
"viewQueue": "ver cola",
|
||||
"addLastShuffled": "Al final (mezclado)",
|
||||
"addNextShuffled": "Al siguiente (mezclado)",
|
||||
"addNextShuffled": "Siguiente (mezclado)",
|
||||
"holdToShuffle": "Mantener para mezclar",
|
||||
"lyrics": "Letras",
|
||||
"restoreQueueFromServer": "Restaurar cola del servidor",
|
||||
"saveQueueToServer": "Guardar cola en el servidor",
|
||||
"artistRadio": "Radio de artista",
|
||||
"trackRadio": "Radio de pista"
|
||||
"trackRadio": "Radio de pista",
|
||||
"sleepTimer_minutes": "{{count}} min",
|
||||
"sleepTimer_hours": "{{count}} h",
|
||||
"sleepTimer_custom": "Personalizado",
|
||||
"sleepTimer_setCustom": "Configurar temporizador",
|
||||
"sleepTimer_cancel": "Cancelar temporizador",
|
||||
"sleepTimer_timeRemaining": "{{time}} restante",
|
||||
"sleepTimer_off": "Apagado",
|
||||
"sleepTimer_endOfSong": "Fin de la canción actual",
|
||||
"sleepTimer": "Temporizador de apagado",
|
||||
"albumRadio": "Radio del álbum"
|
||||
},
|
||||
"setting": {
|
||||
"crossfadeStyle_description": "selecciona el estilo de crossfade a usar por el reproductor de audio",
|
||||
"remotePort_description": "establece el puerto para el control remoto del servidor",
|
||||
"hotkey_skipBackward": "retroceder",
|
||||
"replayGainMode_description": "ajusta el volumen de ganancia acorde a los valores de {{ReplayGain}} almacenados en los metadatos del archivo",
|
||||
"audioDevice_description": "selecciona el dispositivo de audio a usar durante la reproducción (solo reproductor web)",
|
||||
"audioDevice_description": "selecciona el dispositivo de audio a usar durante la reproducción",
|
||||
"theme_description": "establece el tema a usar por la aplicación",
|
||||
"hotkey_playbackPause": "pausa",
|
||||
"replayGainFallback": "{{ReplayGain}} alternativa",
|
||||
@@ -95,11 +105,10 @@
|
||||
"hotkey_globalSearch": "búsqueda global",
|
||||
"gaplessAudio_description": "establece la configuración de audio sin pausas para mpv",
|
||||
"remoteUsername_description": "establece el nombre de usuario para el control remoto del servidor. si el usuario y la contraseña están vacíos, la autenticación será deshabilitada",
|
||||
"disableAutomaticUpdates": "desactiva las actualizaciones automáticas",
|
||||
"exitToTray_description": "sale de la aplicación a la bandeja del sistema",
|
||||
"followLyric_description": "desplaza la letra a la posición de reproducción actual",
|
||||
"hotkey_favoritePreviousSong": "$t(common.previousSong) favorita",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"lyricOffset": "desfase de letra (ms)",
|
||||
"discordUpdateInterval_description": "el tiempo en segundos entre cada actualización (mínimo 15 segundos)",
|
||||
"fontType_optionCustom": "fuente personalizada",
|
||||
@@ -111,7 +120,7 @@
|
||||
"playbackStyle_optionCrossFade": "crossfade",
|
||||
"hotkey_rate3": "calificar con 3 estrellas",
|
||||
"font": "fuente",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"themeLight_description": "establece el tema claro a usar por la aplicación",
|
||||
"hotkey_toggleFullScreenPlayer": "cambia el reproductor a pantalla completa",
|
||||
"hotkey_localSearch": "búsqueda en la página",
|
||||
@@ -155,12 +164,12 @@
|
||||
"useSystemTheme_description": "sigue la preferencia clara u oscura definida por el sistema",
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"lyricFetch_description": "busca letras en varias fuentes de Internet",
|
||||
"lyricFetchProvider_description": "selecciona los proveedores para buscar letras. el orden de los proveedores es el orden en el que se consultarán",
|
||||
"lyricFetchProvider_description": "Selecciona los proveedores para buscar letras",
|
||||
"globalMediaHotkeys_description": "activa o desactiva el uso de las teclas de acceso rápidas del sistema a medios para controlar la reproducción",
|
||||
"customFontPath": "ruta de fuente personalizada",
|
||||
"followLyric": "seguir la letra actual",
|
||||
"crossfadeDuration": "duración del crossfade",
|
||||
"discordIdleStatus": "mostrar el estado inactivo en el estado de actividad",
|
||||
"discordIdleStatus": "mostrar estado inactivo en el estado de actividad",
|
||||
"sidePlayQueueStyle_optionDetached": "separada",
|
||||
"audioPlayer": "reproductor de audio",
|
||||
"hotkey_zoomOut": "reducir",
|
||||
@@ -283,7 +292,7 @@
|
||||
"releaseChannel_optionLatest": "Última versión",
|
||||
"releaseChannel_optionBeta": "Beta",
|
||||
"releaseChannel": "Canal de lanzamiento",
|
||||
"releaseChannel_description": "Elige entre lanzamientos estables o beta para las actualizaciones automáticas",
|
||||
"releaseChannel_description": "Elige entre lanzamientos estables, beta, o alpha (nightly) para las actualizaciones automáticas",
|
||||
"artistBackground_description": "Añade una imagen de fondo para las páginas de artista que contienen el arte del artista",
|
||||
"mediaSession": "Activar sesión de medios",
|
||||
"mediaSession_description": "Activa la integración de la sesión de medios, mostrando los controles de medios y los metadatos en la superposición del volumen del sistema y en la pantalla de bloqueo",
|
||||
@@ -319,8 +328,8 @@
|
||||
"playerbarWaveformRadius": "Radio de la forma de onda",
|
||||
"showLyricsInSidebar_description": "Se añadirá un panel a la cola de reproducción acoplada que muestra las letras",
|
||||
"showLyricsInSidebar": "Mostrar letras en la barra lateral del reproductor",
|
||||
"showVisualizerInSidebar_description": "Se añadirá un panel a la barra lateral de reproducción que muestra el visualizador",
|
||||
"showVisualizerInSidebar": "Mostrar visualizador en la barra lateral de reproducción",
|
||||
"showVisualizerInSidebar_description": "Se añadirá un panel a la barra lateral del reproductor que muestra el visualizador",
|
||||
"showVisualizerInSidebar": "Mostrar visualizador en la barra lateral del reproductor",
|
||||
"queryBuilder": "Generador de consultas",
|
||||
"queryBuilderCustomFields_inputTag": "Etiqueta",
|
||||
"queryBuilderCustomFields": "Campos personalizados",
|
||||
@@ -372,26 +381,56 @@
|
||||
"pathReplace_description": "Reemplaza la ruta de archivo predeterminada de tu servidor",
|
||||
"pathReplace": "Reemplazo de la ruta de archivo",
|
||||
"pathReplace_optionRemovePrefix": "Eliminar prefijo",
|
||||
"pathReplace_optionAddPrefix": "Añadir prefijo"
|
||||
"pathReplace_optionAddPrefix": "Añadir prefijo",
|
||||
"homeFeatureStyle": "Estilo del carrusel de destacados del inicio",
|
||||
"homeFeatureStyle_description": "Controla el estilo del carrusel de destacados del inicio",
|
||||
"homeFeatureStyle_optionMultiple": "Múltiple",
|
||||
"homeFeatureStyle_optionSingle": "Simple",
|
||||
"enableGridMultiSelect": "Activar selección múltiple de rejilla",
|
||||
"enableGridMultiSelect_description": "Cuando está activo, permite seleccionar múltiples elementos en las vistas de rejilla. Cuando está desactivado, hacer clic en las imágenes de los elementos de la rejilla navegará a la página del elemento",
|
||||
"sidebarPlaylistSorting": "Ordenación de la lista de reproducción de la barra lateral",
|
||||
"sidebarPlaylistSorting_description": "Permite la ordenación manual de la lista de reproducción en la barra lateral usando arrastrar y soltar en lugar del orden predeterminado del servidor",
|
||||
"sidebarPlaylistListFilterRegex": "Expresión regular de filtrado de listas de reproducción",
|
||||
"sidebarPlaylistListFilterRegex_description": "Esconde las listas de reproducción en la barra lateral que coincidan con esta expresión regular",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "p. ej. ^Mezcla diaria.*",
|
||||
"blurExplicitImages": "Desenfocar imágenes explícitas",
|
||||
"blurExplicitImages_description": "El álbum y la carátula de la canción etiquetados como explícitos serán desenfocados",
|
||||
"releaseChannel_optionAlpha": "Alpha (nightly)",
|
||||
"analyticsEnable": "Enviar analíticas basadas en el uso",
|
||||
"analyticsEnable_description": "Se envían datos de uso anonimizados al desarrollador para ayudar a mejorar la aplicación",
|
||||
"automaticUpdates": "Actualizaciones automáticas",
|
||||
"automaticUpdates_description": "Busca e instala actualizaciones automáticamente",
|
||||
"discordStateIcon": "Mostrar icono de reproducción",
|
||||
"discordStateIcon_description": "Muestra un icono pequeño de reproducción en el estado de actividad. El icono de pausa se muestra siempre cuando \"Mostrar estado de actividad cuando esté en pausa\" esté activado",
|
||||
"playerItemConfiguration": "Configuración de elementos del reproductor",
|
||||
"playerItemConfiguration_description": "Configura qué elementos se muestran, y en qué orden, en el reproductor a pantalla completa",
|
||||
"primaryShade": "Tono principal",
|
||||
"useThemePrimaryShade": "Usar tono principal del tema",
|
||||
"useThemePrimaryShade_description": "Usa el tono principal definido en el tema seleccionado para las variantes de color primario",
|
||||
"primaryShade_description": "Sobreescribe el tono principal (0-9) usado para los botones, enlaces, y otros elementos de colores primarios",
|
||||
"autosave": "Guardar automáticamente la cola de reproducción",
|
||||
"autosaveCount": "Frecuencia de guardado automática de la cola de reproducción",
|
||||
"autosave_description": "Permite guardar automáticamente la cola de reproducción en tu servidor. Esto solo es posible cuando se usa Navidrome/Subsonic, y no puedes tener una cola de reproducción mezclada.",
|
||||
"autosaveCount_description": "Cuántas pistas cambian antes de que la cola sea guardada. 1 (mínimo) quiere decir que todas las canciones cambian"
|
||||
},
|
||||
"action": {
|
||||
"editPlaylist": "editar $t(entity.playlist_one)",
|
||||
"editPlaylist": "editar $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "ir a la página",
|
||||
"moveToTop": "mover al principio",
|
||||
"clearQueue": "limpiar cola",
|
||||
"addToFavorites": "añadir a $t(entity.favorite_other)",
|
||||
"addToPlaylist": "añadir a $t(entity.playlist_one)",
|
||||
"createPlaylist": "crear $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "eliminar de $t(entity.playlist_one)",
|
||||
"viewPlaylists": "ver $t(entity.playlist_other)",
|
||||
"addToFavorites": "añadir a $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "añadir a $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "crear $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "eliminar de $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "ver $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "eliminar $t(entity.playlist_one)",
|
||||
"deletePlaylist": "eliminar $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "eliminar de la cola",
|
||||
"deselectAll": "desmarcar todo",
|
||||
"moveToBottom": "mover al final",
|
||||
"setRating": "establecer calificación",
|
||||
"toggleSmartPlaylistEditor": "cambiar editor $t(entity.smartPlaylist)",
|
||||
"removeFromFavorites": "eliminar de $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "eliminar de $t(entity.favorite, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "Abrir en Last.fm",
|
||||
"musicbrainz": "Abrir en MusicBrainz"
|
||||
@@ -407,18 +446,19 @@
|
||||
"holdToMoveToTop": "Mantener pulsado para desplazar hacia arriba",
|
||||
"moveUp": "Desplazar hacia arriba",
|
||||
"moveDown": "Desplazar hacia abajo",
|
||||
"createRadioStation": "Crear $t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "Borrar $t(entity.radioStation_one)",
|
||||
"createRadioStation": "Crear $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "Borrar $t(entity.radioStation, {\"count\": 1})",
|
||||
"openApplicationDirectory": "Abrir directorio de la aplicación",
|
||||
"addOrRemoveFromSelection": "Añadir o quitar de la selección",
|
||||
"selectRangeOfItems": "Seleccionar un intervalo de elementos",
|
||||
"selectAll": "Seleccionar todo"
|
||||
"selectAll": "Seleccionar todo",
|
||||
"goToCurrent": "Ir al elemento actual"
|
||||
},
|
||||
"common": {
|
||||
"backward": "hacia atrás",
|
||||
"increase": "aumentar",
|
||||
"rating": "calificación",
|
||||
"bpm": "lpm",
|
||||
"bpm": "bpm",
|
||||
"refresh": "actualizar",
|
||||
"unknown": "desconocido",
|
||||
"areYouSure": "seguro?",
|
||||
@@ -427,10 +467,10 @@
|
||||
"left": "izquierda",
|
||||
"save": "guardar",
|
||||
"right": "derecha",
|
||||
"currentSong": "$t(entity.track_one) actual",
|
||||
"currentSong": "$t(entity.track, {\"count\": 1}) actual",
|
||||
"collapse": "contraer",
|
||||
"trackNumber": "pista",
|
||||
"descending": "descendiente",
|
||||
"descending": "descendente",
|
||||
"add": "añadir",
|
||||
"ascending": "ascendente",
|
||||
"dismiss": "descartar",
|
||||
@@ -456,7 +496,9 @@
|
||||
"delete": "eliminar",
|
||||
"cancel": "cancelar",
|
||||
"forceRestartRequired": "reiniciar para aplicar cambios... cerrar la notificación para reiniciar",
|
||||
"setting": "configuración",
|
||||
"setting_one": "configuración",
|
||||
"setting_many": "configuración",
|
||||
"setting_other": "configuración",
|
||||
"version": "versión",
|
||||
"title": "título",
|
||||
"filters": "filtros",
|
||||
@@ -474,7 +516,7 @@
|
||||
"none": "ninguno",
|
||||
"menu": "menú",
|
||||
"restartRequired": "reinicio requerido",
|
||||
"previousSong": "anterior $t(entity.track_one)",
|
||||
"previousSong": "$t(entity.track, {\"count\": 1}) anterior",
|
||||
"noResultsFromQuery": "la petición no devolvió resultados",
|
||||
"quit": "salir",
|
||||
"expand": "expandir",
|
||||
@@ -535,7 +577,9 @@
|
||||
"mood": "Estado de ánimo",
|
||||
"example": "Ejemplo",
|
||||
"filter_single": "simple",
|
||||
"filter_multiple": "multi"
|
||||
"filter_multiple": "multi",
|
||||
"rename": "Renombrar",
|
||||
"newVersionAvailable": "Una nueva versión está disponible"
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "reiniciar el servidor para aplicar el nuevo puerto",
|
||||
@@ -566,13 +610,16 @@
|
||||
"multipleServerSaveQueueError": "La cola de reproducción tiene una o más canciones que no son del servidor actual. Esto no está soportado",
|
||||
"settingsSyncError": "Se encontraron discrepancias entre las opciones del renderizador y el proceso principal. Reinicia la aplicación para aplicar los cambios",
|
||||
"noNetwork": "Servidor no disponible",
|
||||
"noNetworkDescription": "No se pudo conectar a este servidor"
|
||||
"noNetworkDescription": "No se pudo conectar a este servidor",
|
||||
"invalidJson": "JSON inválido",
|
||||
"serverLockSingleServer": "Solo se permite un servidor cuando el servidor está bloqueado",
|
||||
"playbackPausedDueToError": "La reproducción fue pausada debido a un error"
|
||||
},
|
||||
"filter": {
|
||||
"mostPlayed": "más reproducido",
|
||||
"mostPlayed": "más reproducidos",
|
||||
"isCompilation": "es una compilación",
|
||||
"recentlyPlayed": "recientemente reproducido",
|
||||
"isRated": "es clasificado",
|
||||
"isRated": "Está calificado",
|
||||
"title": "título",
|
||||
"rating": "calificación",
|
||||
"search": "buscar",
|
||||
@@ -585,14 +632,14 @@
|
||||
"communityRating": "calificación de la comunidad",
|
||||
"path": "ruta",
|
||||
"favorited": "favoritos",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "reproducido recientemente",
|
||||
"isFavorited": "es favorito",
|
||||
"bpm": "lpm",
|
||||
"bpm": "bpm",
|
||||
"releaseYear": "año de lanzamiento",
|
||||
"disc": "disco",
|
||||
"biography": "biografía",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"duration": "duración",
|
||||
"random": "aleatorio",
|
||||
"lastPlayed": "última reproducción",
|
||||
@@ -603,38 +650,42 @@
|
||||
"comment": "comentarios",
|
||||
"playCount": "número de reproducciones",
|
||||
"recentlyUpdated": "actualizado recientemente",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"owner": "$t(common.owner)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"id": "id",
|
||||
"songCount": "número de canción",
|
||||
"songCount": "número de canciones",
|
||||
"isPublic": "es público",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumCount": "Contar $t(entity.album_other)",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumCount": "Número de $t(entity.album, {\"count\": 2})",
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"sortName": "Ordenar por nombre",
|
||||
"matchAnd": "y",
|
||||
"matchOr": "o"
|
||||
},
|
||||
"page": {
|
||||
"sidebar": {
|
||||
"nowPlaying": "reproduciendo",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"shared": "compartido $t(entity.playlist_other)",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"shared": "compartido $t(entity.playlist, {\"count\": 2})",
|
||||
"myLibrary": "Mi biblioteca",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})",
|
||||
"collections": "Colecciones"
|
||||
},
|
||||
"appMenu": {
|
||||
"selectServer": "seleccionar servidor",
|
||||
"version": "versión {{version}}",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"manageServers": "gestionar servidores",
|
||||
"expandSidebar": "ampliar barra lateral",
|
||||
"collapseSidebar": "contraer barra lateral",
|
||||
@@ -672,8 +723,8 @@
|
||||
"download": "descargar",
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"goToAlbum": "Ir a $t(entity.album_one)",
|
||||
"goToAlbumArtist": "Ir a $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "Ir a $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "Ir a $t(entity.albumArtist, {\"count\": 1})",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "Ir a"
|
||||
},
|
||||
@@ -684,7 +735,7 @@
|
||||
"explore": "explora desde tu biblioteca",
|
||||
"recentlyPlayed": "reproducidos recientemente",
|
||||
"recentlyReleased": "Lanzado recientemente",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"upNext": "siguiente",
|
||||
@@ -710,7 +761,7 @@
|
||||
"noLyrics": "sin letras"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "más de este $t(entity.artist_one)",
|
||||
"moreFromArtist": "más de este $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "más de {{item}}",
|
||||
"released": "publicado el"
|
||||
},
|
||||
@@ -740,16 +791,16 @@
|
||||
"lyricsDisplay": "Mostrar letras"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showAlbums": "Mostrar $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "Mostrar $t(entity.genre_one) $t(entity.track_other)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showAlbums": "Mostrar $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "Mostrar $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "Pistas de {{artist}}"
|
||||
},
|
||||
"globalSearch": {
|
||||
@@ -761,16 +812,16 @@
|
||||
"title": "comandos"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "Álbumes de {{artist}}"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"viewAllTracks": "ver todas las $t(entity.track_other)",
|
||||
"relatedArtists": "$t(entity.artist_other) similares",
|
||||
"viewAllTracks": "ver todas las $t(entity.track, {\"count\": 2})",
|
||||
"relatedArtists": "$t(entity.artist, {\"count\": 2}) similares",
|
||||
"topSongs": "mejores canciones",
|
||||
"topSongsFrom": "las mejores canciones de {{title}}",
|
||||
"viewAll": "Ver todo",
|
||||
@@ -779,7 +830,11 @@
|
||||
"about": "Sobre {{artist}}",
|
||||
"appearsOn": "Aparece en",
|
||||
"groupingTypeAll": "Todos los tipos de lanzamiento",
|
||||
"groupingTypePrimary": "Tipos de lanzamiento principales"
|
||||
"groupingTypePrimary": "Tipos de lanzamiento principales",
|
||||
"favoriteSongs": "Canciones favoritas",
|
||||
"favoriteSongsFrom": "Canciones favoritas de {{title}}",
|
||||
"topSongsPersonal": "Personal",
|
||||
"topSongsCommunity": "Comunidad"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copiedPath": "Ruta copiada correctamente",
|
||||
@@ -798,27 +853,40 @@
|
||||
"url": "URL"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "Estaciones de radio"
|
||||
},
|
||||
"windowBar": {
|
||||
"privateMode": "(Modo privado)",
|
||||
"paused": "(Pausado) "
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "Sobreescribir existente",
|
||||
"saveAsCollection": "Guardar como colección"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "Actualizaciones desde {{stable}}",
|
||||
"noNewCommits": "Ninguna nueva actualización en este rango",
|
||||
"noStableReleaseToCompare": "Ningún lanzamiento estable disponible con el que comparar"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "eliminar $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) eliminado correctamente",
|
||||
"input_confirm": "escribe el nombre de $t(entity.playlist_one) para confirmar"
|
||||
"title": "eliminar $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) eliminado correctamente",
|
||||
"input_confirm": "escribe el nombre de $t(entity.playlist, {\"count\": 1}) para confirmar"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "crear $t(entity.playlist_one)",
|
||||
"title": "crear $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "público",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) creado correctamente",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) creado correctamente",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addServer": {
|
||||
@@ -830,8 +898,8 @@
|
||||
"input_name": "nombre del servidor",
|
||||
"success": "servidor añadido correctamente",
|
||||
"input_savePassword": "guardar contraseña",
|
||||
"ignoreSsl": "ignorar ssl ($t(common.restartRequired))",
|
||||
"ignoreCors": "ignorar cors ($t(common.restartRequired))",
|
||||
"ignoreSsl": "Ignorar SSL ($t(common.restartRequired))",
|
||||
"ignoreCors": "Ignorar CORS ($t(common.restartRequired))",
|
||||
"error_savePassword": "un error ocurrió cuando se intentó guardar la contraseña",
|
||||
"input_preferInstantMix": "Preferir mix instantáneo",
|
||||
"input_preferInstantMixDescription": "Usa solo el mix instantáneo para obtener canciones similares. Útil si tienes complementos que modifican este comportamiento",
|
||||
@@ -841,11 +909,11 @@
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "añadido $t(entity.trackWithCount, {\"count\": {{message}} }) a $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "añadir a $t(entity.playlist_one)",
|
||||
"title": "añadir a $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "saltar duplicados",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "Crear $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "Buscar $t(entity.playlist_other) o tipo para crear uno nuevo"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "Crear $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "Buscar $t(entity.playlist, {\"count\": 2}) o escribir para crear uno nuevo"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "actualizar servidor",
|
||||
@@ -853,12 +921,12 @@
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"title": "buscar letras"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "editar $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) actualizada correctamente",
|
||||
"title": "editar $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) actualizada correctamente",
|
||||
"publicJellyfinNote": "Jellyfin por alguna razón no expone si una lista de reproducción es pública o no. Si deseas que ésta siga siendo pública, por favor ten seleccionada la siguiente entrada",
|
||||
"editNote": "No se recomiendan las ediciones manuales para grandes listas de reproducción. ¿Seguro que aceptas el riesgo de pérdida de información incurrido por sobrescribir la lista de reproducción existente?"
|
||||
},
|
||||
@@ -877,7 +945,9 @@
|
||||
"description": "Descripción",
|
||||
"setExpiration": "Establecer expiración",
|
||||
"success": "Enlace de compartición copiado al portapapeles (o pulsa aquí para abrir)",
|
||||
"expireInvalid": "La expiración debe ser en el futuro"
|
||||
"expireInvalid": "La expiración debe ser en el futuro",
|
||||
"copyToClipboard": "Copiar al portapapeles: Ctrl+C, Enter",
|
||||
"successMustClick": "Compartir creado correctamente. Haz clic aquí para abrir"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "Modo privado activado, el estado de reproducción ahora está oculto de integraciones externas",
|
||||
@@ -890,7 +960,7 @@
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "Reproducir aleatorio",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "¿Cuántas canciones?",
|
||||
"input_minYear": "Del año",
|
||||
"input_maxYear": "Hasta el año",
|
||||
@@ -922,23 +992,23 @@
|
||||
"album": "álbum",
|
||||
"favorite": "favorito",
|
||||
"playCount": "reproducciones",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"releaseYear": "año",
|
||||
"lastPlayed": "última reproducción",
|
||||
"biography": "biografía",
|
||||
"releaseDate": "fecha de lanzamiento",
|
||||
"bitrate": "tasa de bits",
|
||||
"title": "título",
|
||||
"bpm": "lpm",
|
||||
"bpm": "bpm",
|
||||
"dateAdded": "fecha de adición",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"trackNumber": "pista",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"albumArtist": "artista del álbum",
|
||||
"path": "ruta",
|
||||
"discNumber": "disco",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"size": "$t(common.size)",
|
||||
"codec": "$t(common.codec)",
|
||||
"owner": "Propietario",
|
||||
@@ -951,13 +1021,13 @@
|
||||
"dateAdded": "fecha de adición",
|
||||
"bpm": "$t(common.bpm)",
|
||||
"lastPlayed": "última reproducción",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"discNumber": "número de disco",
|
||||
"releaseDate": "fecha de lanzamiento",
|
||||
"title": "$t(common.title)",
|
||||
@@ -970,18 +1040,19 @@
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"playCount": "número de reproducciones",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"year": "$t(common.year)",
|
||||
"codec": "$t(common.codec)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"genreBadge": "$t(entity.genre_one) (insignias)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (insignias)",
|
||||
"image": "Imagen",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"titleArtist": "$t(common.title) (artista)",
|
||||
"composer": "Compositor"
|
||||
"composer": "Compositor",
|
||||
"albumGroup": "Grupo del álbum"
|
||||
},
|
||||
"general": {
|
||||
"gap": "$t(common.gap)",
|
||||
@@ -994,8 +1065,8 @@
|
||||
"followCurrentSong": "seguir la canción actual",
|
||||
"advancedSettings": "Opciones avanzadas",
|
||||
"autosize": "Autodimensionar",
|
||||
"moveUp": "Ascender",
|
||||
"moveDown": "Descender",
|
||||
"moveUp": "Subir",
|
||||
"moveDown": "Bajar",
|
||||
"pinToLeft": "Anclar a la izquierda",
|
||||
"pinToRight": "Anclar a la derecha",
|
||||
"alignLeft": "Alinear a la izquierda",
|
||||
@@ -1012,17 +1083,19 @@
|
||||
"alternateRowColors": "Colores de fila alternativos",
|
||||
"horizontalBorders": "Bordes de fila",
|
||||
"verticalBorders": "Bordes de columna",
|
||||
"rowHoverHighlight": "Resaltar al pasar el cursor por la fila"
|
||||
"rowHoverHighlight": "Resaltar al pasar el cursor por la fila",
|
||||
"showHeader": "Mostrar cabecera"
|
||||
},
|
||||
"view": {
|
||||
"table": "tabla",
|
||||
"list": "Lista",
|
||||
"grid": "Cuadrícula"
|
||||
"grid": "Cuadrícula",
|
||||
"detail": "Detalle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"smartPlaylist": "$t(entity.playlist_one) inteligente",
|
||||
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) inteligente",
|
||||
"genre_one": "género",
|
||||
"genre_many": "géneros",
|
||||
"genre_other": "géneros",
|
||||
@@ -1088,7 +1161,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "Emisión",
|
||||
"ep": "EP",
|
||||
"other": "Otro",
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
{
|
||||
"action": {
|
||||
"deselectAll": "deshautatu dena",
|
||||
"editPlaylist": "editatu $t(entity.playlist_one)",
|
||||
"editPlaylist": "editatu $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "joan orrira",
|
||||
"moveToNext": "mugitu hurrengora",
|
||||
"moveToBottom": "mugitu behera",
|
||||
"moveToTop": "mugitu gora",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "kendu gogokoetatik",
|
||||
"removeFromPlaylist": "kendu $t(entity.playlist_one)-(e)tik",
|
||||
"removeFromPlaylist": "kendu $t(entity.playlist, {\"count\": 1})-(e)tik",
|
||||
"removeFromQueue": "kendu ilaratik",
|
||||
"setRating": "ezarri balorazioa",
|
||||
"toggleSmartPlaylistEditor": "txandakatu $t(entity.smartPlaylist) editorea",
|
||||
"viewPlaylists": "ikusi $t(entity.playlist_other)",
|
||||
"viewPlaylists": "ikusi $t(entity.playlist, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "Ireki Last.fm-n",
|
||||
"musicbrainz": "Ireki MusicBrainz-en"
|
||||
},
|
||||
"clearQueue": "garbitu ilara",
|
||||
"createPlaylist": "sortu $t(entity.playlist_one)",
|
||||
"deletePlaylist": "ezabatu $t(entity.playlist_one)",
|
||||
"createPlaylist": "sortu $t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "ezabatu $t(entity.playlist, {\"count\": 1})",
|
||||
"addToFavorites": "gehitu gogokoetara",
|
||||
"addToPlaylist": "gehitu $t(entity.playlist_one)ra",
|
||||
"createRadioStation": "sortu $t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "ezabatu $t(entity.radioStation_one)",
|
||||
"addToPlaylist": "gehitu $t(entity.playlist, {\"count\": 1})ra",
|
||||
"createRadioStation": "sortu $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "ezabatu $t(entity.radioStation, {\"count\": 1})",
|
||||
"viewMore": "ikusi gehiago",
|
||||
"shuffle": "nahastu",
|
||||
"selectAll": "aukeratu guztiak",
|
||||
@@ -31,7 +31,9 @@
|
||||
"addOrRemoveFromSelection": "gehitu edo kendu hautapenetik",
|
||||
"selectRangeOfItems": "aukeratu elementu sorta bat",
|
||||
"shuffleAll": "nahastu dena",
|
||||
"shuffleSelected": "nahastu aukeratutak"
|
||||
"shuffleSelected": "nahastu aukeratutak",
|
||||
"moveItems": "elementuak mugitu",
|
||||
"openApplicationDirectory": "ireki aplikazioaren direktorioa"
|
||||
},
|
||||
"common": {
|
||||
"add": "gehitu",
|
||||
@@ -48,7 +50,7 @@
|
||||
"configure": "konfiguratu",
|
||||
"confirm": "berretsi",
|
||||
"create": "sortu",
|
||||
"currentSong": "uneko $t(entity.track_one)",
|
||||
"currentSong": "uneko $t(entity.track, {\"count\": 1})",
|
||||
"decrease": "gutxitu",
|
||||
"delete": "ezabatu",
|
||||
"descending": "beheranzkoa",
|
||||
@@ -65,7 +67,8 @@
|
||||
"filter_other": "iragazkiak",
|
||||
"filters": "iragazkiak",
|
||||
"forceRestartRequired": "berreabiarazi aldaketak aplikatzeko... itxi notifikazioa berreabiarazteko",
|
||||
"setting": "ezarpenak",
|
||||
"setting_one": "ezarpenak",
|
||||
"setting_other": "",
|
||||
"share": "partekatu",
|
||||
"action_one": "ekintza",
|
||||
"action_other": "ekintzak",
|
||||
@@ -101,7 +104,7 @@
|
||||
"path": "bidea",
|
||||
"playerMustBePaused": "erreproduzitzailea pausatuta egon behar da",
|
||||
"preview": "aurrebista",
|
||||
"previousSong": "aurreko $t(entity.track_one)",
|
||||
"previousSong": "aurreko $t(entity.track, {\"count\": 1})",
|
||||
"quit": "irten",
|
||||
"random": "ausazkoa",
|
||||
"rating": "balorazioa",
|
||||
@@ -146,7 +149,8 @@
|
||||
"sort": "ordenatu",
|
||||
"recordLabel": "diskoetxea",
|
||||
"example": "adibidea",
|
||||
"tableColumns": "taulako zutabeak"
|
||||
"tableColumns": "taulako zutabeak",
|
||||
"doNotShowAgain": "ez erakutsi hau berriro"
|
||||
},
|
||||
"player": {
|
||||
"repeat": "errepikatu",
|
||||
@@ -184,7 +188,9 @@
|
||||
"restoreQueueFromServer": "berrezarri ilara zerbitzaritik",
|
||||
"saveQueueToServer": "gorde ilara zerbitzarira",
|
||||
"addLastShuffled": "azkena (ausaz)",
|
||||
"addNextShuffled": "hurrengoa (ausaz)"
|
||||
"addNextShuffled": "hurrengoa (ausaz)",
|
||||
"artistRadio": "artista irratia",
|
||||
"trackRadio": "pista irratia"
|
||||
},
|
||||
"table": {
|
||||
"config": {
|
||||
@@ -215,9 +221,9 @@
|
||||
},
|
||||
"label": {
|
||||
"actions": "$t(common.action_other)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
@@ -225,13 +231,13 @@
|
||||
"codec": "$t(common.codec)",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"rating": "$t(common.rating)",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(common.title)",
|
||||
"year": "$t(common.year)",
|
||||
"titleCombined": "$t(common.title) (batuta)",
|
||||
@@ -240,7 +246,7 @@
|
||||
"lastPlayed": "azken aldiz entzunda",
|
||||
"discNumber": "disko zenbakia",
|
||||
"dateAdded": "gehitze data",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"image": "irudia",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)"
|
||||
@@ -248,20 +254,20 @@
|
||||
},
|
||||
"column": {
|
||||
"album": "albuma",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biografia",
|
||||
"bitrate": "bit-emaria",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"codec": "$t(common.codec)",
|
||||
"discNumber": "diskoa",
|
||||
"favorite": "gogokoa",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"path": "bidea",
|
||||
"rating": "balorazioa",
|
||||
"releaseYear": "urtea",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "tituloa",
|
||||
"trackNumber": "pista",
|
||||
"bpm": "bpm",
|
||||
@@ -305,7 +311,7 @@
|
||||
"play_other": "{{count}} erreprodukzio",
|
||||
"playlistWithCount_one": "erreprodukzio-zerrenda {{count}}",
|
||||
"playlistWithCount_other": "{{count}} erreprodukzio-zerrenda",
|
||||
"smartPlaylist": "$t(entity.playlist_one) adimentsua",
|
||||
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) adimentsua",
|
||||
"track_one": "pista",
|
||||
"track_other": "pistak",
|
||||
"song_one": "abestia",
|
||||
@@ -344,7 +350,8 @@
|
||||
"systemFontError": "errore bat gertatu da sistemaren letra-tipoak lortzen saiatzean",
|
||||
"noNetwork": "zerbitzaria ez dago erabilgarri",
|
||||
"noNetworkDescription": "ezin izan da zerbitzari honetara konektatu",
|
||||
"saveQueueFailed": "huts egin du ilara gordetzean"
|
||||
"saveQueueFailed": "huts egin du ilara gordetzean",
|
||||
"multipleServerSaveQueueError": "erreprodukzio-ilarak zerbitzarikoak ez diren abesti bat edo gehiago ditu. hau ez da onartzen"
|
||||
},
|
||||
"filter": {
|
||||
"disc": "diskoa",
|
||||
@@ -358,19 +365,19 @@
|
||||
"random": "ausazkoa",
|
||||
"rating": "balorazioa",
|
||||
"trackNumber": "pista",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biografia",
|
||||
"bitrate": "bit-emaria",
|
||||
"bpm": "bpm-ak",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"comment": "iruzkina",
|
||||
"favorited": "gogoko gisa markatua",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"search": "bilatu",
|
||||
"title": "tituloa",
|
||||
"albumCount": "$t(entity.album_other) kopurua",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) kopurua",
|
||||
"communityRating": "komunitatearen balorazioa",
|
||||
"criticRating": "kritikarien balorazioa",
|
||||
"dateAdded": "gehitutako data",
|
||||
@@ -397,9 +404,9 @@
|
||||
"playbackStyle_optionNormal": "normala",
|
||||
"playButtonBehavior_optionPlay": "$t(player.play)",
|
||||
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"font": "letra-tipoa",
|
||||
"hotkey_playbackStop": "gelditu",
|
||||
"buttonSize_description": "erreproduzitzailearen barrako botoien tamaina",
|
||||
@@ -412,7 +419,6 @@
|
||||
"customCss": "css pertsonalizatua",
|
||||
"customFontPath": "letra-tipo pertsonalizatuaren bidea",
|
||||
"customFontPath_description": "aplikazioan erabiliko den letra-tipo pertsonalizatuaren bidea ezartzen du",
|
||||
"disableAutomaticUpdates": "desgaitu eguneratze automatikoak",
|
||||
"discordApplicationId": "{{discord}} aplikazioaren IDa",
|
||||
"followLyric": "jarraitu uneko letra",
|
||||
"font_description": "aplikazioan erabiliko den letra-tipoa ezartzen du",
|
||||
@@ -635,7 +641,41 @@
|
||||
"transcodeBitrate": "transkodetzeko bit-emaria",
|
||||
"transcodeFormat_description": "transkodetzeko formatua hautatzen du. utzi hutsik zerbitzariak erabaki dezan",
|
||||
"transcodeFormat": "transkodetzeko formatua",
|
||||
"queryBuilderCustomFields_inputLabel": "etiketa"
|
||||
"queryBuilderCustomFields_inputLabel": "etiketa",
|
||||
"autoDJ": "DJ automatikoa",
|
||||
"autoDJ_description": "automatikoki gehitu antzeko abestiak ilaran",
|
||||
"autoDJ_itemCount_description": "DJ automatikoa gaituta dagoenean ilaran gehitzen saiatu diren elementuen kopurua",
|
||||
"autoDJ_timing_description": "DJ automatikoa aktibatu aurretik ilaran geratzen diren abestien kopurua",
|
||||
"analyticsDisable": "Erabileran oinarritutako analisiei uko egin",
|
||||
"analyticsDisable_description": "Erabilera-datu anonimoak garatzaileari bidaltzen zaizkio aplikazioa hobetzen laguntzeko",
|
||||
"contextMenu_description": "elementu batean eskuineko botoiarekin klik egitean menuan agertzen diren elementuak ezkutatzeko aukera ematen dizu. hautatuta ez dauden elementuak ezkutatuta egongo dira",
|
||||
"enableAutoTranslation_description": "Gaitu itzulpena automatikoki letra kargatzen denean",
|
||||
"exportImportSettings_control_description": "JSON bidez ezarpenak esportatu eta inportatu",
|
||||
"exportImportSettings_destructiveWarning": "Ezarpenak inportatzea arriskutsua da, mesedez, berrikusi goikoa beheko \"inportatu\" klikatu aurretik!",
|
||||
"exportImportSettings_importSuccess": "ezarpenak behar bezala inportatu dira!",
|
||||
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" okerra da - {{reason}}",
|
||||
"hotkey_listPlayDefault": "zerrenda erreproduzitu",
|
||||
"hotkey_listPlayLast": "zerrenda erreproduzitu amaieran",
|
||||
"hotkey_listPlayNow": "zerrenda erreproduzitu orain",
|
||||
"logLevel": "erregistro maila",
|
||||
"logLevel_description": "Bistaratzeko erregistroen gutxieneko maila ezartzen du. Debug-ek erregistro guztiak erakusten ditu, «erroreak» erroreak bakarrik erakusten ditu",
|
||||
"logLevel_optionDebug": "arazketa",
|
||||
"playerFilters_description": "saltatu abestiak ilaran gehitzea irizpide hauen arabera",
|
||||
"artistRadioCount_description": "artista eta abestien irratian bilatu beharreko abesti kopurua ezartzen du",
|
||||
"artistRadioCount": "artista/abesti irratiko kopurua",
|
||||
"imageResolution_optionItemCard": "elementu txartela",
|
||||
"imageResolution_optionHeader": "goiburua",
|
||||
"imageResolution_optionFullScreenPlayer": "pantaila osoko erreproduzitzailea",
|
||||
"showVisualizerInSidebar": "erakutsi bistaratzailea erreproduzitzailearen alboko barran",
|
||||
"combinedLyricsAndVisualizer_description": "konbinatu letrak eta bistaratzailea panel berean",
|
||||
"combinedLyricsAndVisualizer": "konbinatu letrak eta bistaratzailea erreproduzitzailearen alboko barran",
|
||||
"preventSleepOnPlayback_description": "saihestu pantaila lotan jartzea musika erreproduzitzen ari den bitartean",
|
||||
"remotePassword_description": "urruneko kontrol zerbitzariaren pasahitza ezartzen du. Kredentzial hauek modu ez-seguruan transferitzen dira lehenespenez, beraz, axola ez zaizun pasahitz bakarra erabili beharko zenuke",
|
||||
"remotePassword": "urruneko kontrol zerbitzariaren pasahitza",
|
||||
"remotePort_description": "urruneko kontrol zerbitzariaren portua ezartzen du",
|
||||
"remotePort": "urruneko kontrol zerbitzariaren ataka",
|
||||
"remoteUsername_description": "urruneko kontrol zerbitzariaren erabiltzaile-izena ezartzen du. Erabiltzaile-izena eta pasahitza hutsik badaude, autentifikazioa desgaituta egongo da",
|
||||
"remoteUsername": "urruneko kontrol zerbitzariaren erabiltzaile-izena"
|
||||
},
|
||||
"form": {
|
||||
"addServer": {
|
||||
@@ -655,23 +695,23 @@
|
||||
"input_remoteUrl": "URL publikoa"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) gehitu da $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })-ra",
|
||||
"input_skipDuplicates": "saltatu bikoiztuak",
|
||||
"title": "gehitu $t(entity.playlist_one)-(a)ri",
|
||||
"create": "sortu $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "bilatu $t(entity.playlist_other) edo idatzi berri bat sortzeko"
|
||||
"title": "gehitu $t(entity.playlist, {\"count\": 1})-(a)ri",
|
||||
"create": "sortu $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "bilatu $t(entity.playlist, {\"count\": 2}) edo idatzi berri bat sortzeko"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "publikoa",
|
||||
"title": "$t(entity.playlist_one) sortu",
|
||||
"success": "$t(entity.playlist_one) behar bezala sortu da"
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) sortu",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) behar bezala sortu da"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "letra bilatu"
|
||||
},
|
||||
@@ -684,13 +724,13 @@
|
||||
"createFailed": "partekatzea sortzeak huts egin du (partekatzea gaituta al dago?)"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"success": "$t(entity.playlist_one) behar bezala ezabatu da",
|
||||
"title": "$t(entity.playlist_one) ezabatu",
|
||||
"input_confirm": "idatzi $t(entity.playlist_one)-(a)ren izena berresteko"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) behar bezala ezabatu da",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) ezabatu",
|
||||
"input_confirm": "idatzi $t(entity.playlist, {\"count\": 1})-(a)ren izena berresteko"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"success": "$t(entity.playlist_one) behar bezala eguneratu da",
|
||||
"title": "$t(entity.playlist_one) editatu",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) behar bezala eguneratu da",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) editatu",
|
||||
"publicJellyfinNote": "Arrazoiren batengatik, Jellyfin ez du erakusten erreprodukzio-zerrendak publikoak diren edo ez. Hau publiko izaten jarraitzea nahi baduzu, hautatu sarrera hau",
|
||||
"editNote": "ez da gomendatzen eskuzko edizioak egitea erreprodukzio-zerrenda handietarako. ziur zaude onartzen duzula lehendik dagoen erreprodukzio-zerrenda gainidazteagatik datuak galtzeko arriskua?"
|
||||
},
|
||||
@@ -725,7 +765,7 @@
|
||||
"input_offset": "$t(setting.lyricOffset)"
|
||||
},
|
||||
"shuffleAll": {
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"title": "ausaz erreproduzitu",
|
||||
"input_limit": "zenbat abesti?",
|
||||
"input_played_optionAll": "pista guztiak",
|
||||
@@ -738,21 +778,21 @@
|
||||
},
|
||||
"page": {
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"released": "argitaratuta",
|
||||
"moreFromArtist": "$t(entity.artist_one) honetatik gehiago",
|
||||
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) honetatik gehiago",
|
||||
"moreFromGeneric": "{{item}}-(e)tik gehiago"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "{{artist}}-(a)ren albumak"
|
||||
},
|
||||
"appMenu": {
|
||||
"quit": "$t(common.quit)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"collapseSidebar": "tolestu alboko barra",
|
||||
"expandSidebar": "zabaldu alboko barra",
|
||||
"goBack": "atzera",
|
||||
@@ -798,7 +838,7 @@
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"numberSelected": "{{count}} hautatuta",
|
||||
"shareItem": "partekatu elementua",
|
||||
"goToAlbum": "joan $t(entity.album_one)-(e)ra",
|
||||
"goToAlbum": "joan $t(entity.album, {\"count\": 1})-(e)ra",
|
||||
"goToAlbumArtist": "joan albumera",
|
||||
"showDetails": "informazioa lortu",
|
||||
"moveItems": "$t(action.moveItems)"
|
||||
@@ -827,9 +867,9 @@
|
||||
"noLyrics": "ez da letrarik aurkitu"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showAlbums": "erakutsi $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "erakutsi $t(entity.genre_one) $t(entity.track_other)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showAlbums": "erakutsi $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "erakutsi $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"title": "komandoak",
|
||||
@@ -846,10 +886,10 @@
|
||||
"recentlyPlayed": "azken aldian entzundakoak",
|
||||
"recentlyReleased": "azken aldian argitaratutak",
|
||||
"explore": "arakatu zure liburutegitik",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"advanced": "aurreratua",
|
||||
@@ -874,34 +914,34 @@
|
||||
"lyricsDisplay": "erakutsi letrak"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"myLibrary": "nire liburutegia",
|
||||
"nowPlaying": "orain erreproduzitzen",
|
||||
"shared": "partekatutako $t(entity.playlist_other)",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"shared": "partekatutako $t(entity.playlist, {\"count\": 2})",
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "{{artist}}-(r)en abestiak"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"about": "{{artist}}-(r)i buruz",
|
||||
"relatedArtists": "erlazionatutako $t(entity.artist_other)",
|
||||
"relatedArtists": "erlazionatutako $t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "abesti nagusiak",
|
||||
"topSongsFrom": "{{title}}-(a)ren abesti nagusiak",
|
||||
"viewAll": "ikusi guztiak",
|
||||
"viewAllTracks": "ikusi $t(entity.track_other) guztiak",
|
||||
"viewAllTracks": "ikusi $t(entity.track, {\"count\": 2}) guztiak",
|
||||
"appearsOn": "agertzen da hemen",
|
||||
"recentReleases": "azken argitalpenak",
|
||||
"viewDiscography": "ikusi diskografia",
|
||||
@@ -917,10 +957,10 @@
|
||||
"reorder": "berrantolaketa IDaren arabera ordenatzean bakarrik gaituta dago"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "irrati-kateak"
|
||||
@@ -928,7 +968,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"other": "bestelakoa",
|
||||
"ep": "ep"
|
||||
},
|
||||
@@ -936,7 +976,8 @@
|
||||
"compilation": "konpilazioa",
|
||||
"audiobook": "audioliburua",
|
||||
"interview": "elkarrizketa",
|
||||
"remix": "nahasketa"
|
||||
"remix": "nahasketa",
|
||||
"djMix": "dj nahasketa"
|
||||
}
|
||||
},
|
||||
"datetime": {
|
||||
@@ -946,7 +987,8 @@
|
||||
"dayShort": "d"
|
||||
},
|
||||
"queryBuilder": {
|
||||
"customTags": "etiketa pertsonalizatutak"
|
||||
"customTags": "etiketa pertsonalizatutak",
|
||||
"standardTags": "etiketa estandarrak"
|
||||
},
|
||||
"filterOperator": {
|
||||
"is": "da",
|
||||
@@ -984,7 +1026,8 @@
|
||||
"gradient": {
|
||||
"classic": "Klasikoa",
|
||||
"prism": "Prisma",
|
||||
"rainbow": "Ostadarra"
|
||||
"rainbow": "Ostadarra",
|
||||
"orangered": "Laranja-gorria"
|
||||
},
|
||||
"weightingFilter": {
|
||||
"none": "Bat ere ez",
|
||||
@@ -993,6 +1036,24 @@
|
||||
"c": "C",
|
||||
"d": "D",
|
||||
"z": "Z"
|
||||
},
|
||||
"mode": {
|
||||
"0": "[0] Maiztasun Diskretuak",
|
||||
"1": "[1] 1/24 oktaba / 240 banda",
|
||||
"2": "[2] 1/12 oktaba / 120 banda",
|
||||
"3": "[3] 1/8 oktaba / 80 banda",
|
||||
"4": "[4] 1/6ko oktaba / 60 banda",
|
||||
"5": "[5] 1/4 oktaba / 40 banda",
|
||||
"6": "[6] 1/3 oktaba / 30 banda",
|
||||
"7": "[7] Oktaba erdi / 20 banda",
|
||||
"8": "[8] Oktaba osoa / 10 banda",
|
||||
"10": "[10] Lerroa / Azalera grafikoa"
|
||||
},
|
||||
"frequencyScale": {
|
||||
"none": "Bat ere ez",
|
||||
"linear": "Eskala Lineala",
|
||||
"bark": "Bark Eskala",
|
||||
"mel": "Mel Eskala"
|
||||
}
|
||||
},
|
||||
"opacity": "Opakotasuna",
|
||||
@@ -1009,6 +1070,33 @@
|
||||
"configCopyFailed": "Konfigurazioa kopiatzeak huts egin du",
|
||||
"configPasted": "Konfigurazioa behar bezala aplikatu da",
|
||||
"configPasteFailed": "Konfigurazioa aplikatzeak huts egin du. Mesedez, egiaztatu formatua.",
|
||||
"configPasteReadFailed": "Arbelatik irakurtzeak huts egin du"
|
||||
"configPasteReadFailed": "Arbelatik irakurtzeak huts egin du",
|
||||
"colorMode": "Kolore Modua",
|
||||
"fftSize": "FFT tamaina",
|
||||
"frequencyRangeAndScaling": "Maiztasun-tartea eta eskalatzea",
|
||||
"showScaleY": "Erakutsi Y Eskala",
|
||||
"pasteGradientPlaceholder": "Itsatsi JSON gradientea hemen...",
|
||||
"pasteGradient": "Itsatsi Gradientea",
|
||||
"addColor": "Gehitu Kolorea",
|
||||
"colorStops": "Kolore Geldialdiak",
|
||||
"gradientNamePlaceholder": "Gradientearen Izena",
|
||||
"gradientName": "Gradientearen Izena",
|
||||
"addCustomGradient": "Gehitu Gradiente Pertsonalizatua",
|
||||
"customGradients": "Gradiente Pertsonalizatuak",
|
||||
"maxFPS": "FPS maximoak",
|
||||
"channelLayout": "Kanalaren Diseinua",
|
||||
"lineWidth": "Lerroaren Zabalera",
|
||||
"presetNamePlaceholder": "Sartu aurrezarpenaren izena",
|
||||
"presetName": "Aurrezarpenaren Izena",
|
||||
"applyConfiguration": "Aplikatu konfigurazioa",
|
||||
"pasteFromClipboard": "Itsatsi Arbeletik",
|
||||
"pasteConfigurationPlaceholder": "Itsatsi JSON konfigurazioa hemen...",
|
||||
"pasteConfiguration": "Itsatsi Konfigurazioa",
|
||||
"copyConfiguration": "Kopiatu Konfigurazioa",
|
||||
"updatePreset": "Aurrezarpena Eguneratu",
|
||||
"saveAsPreset": "Aurrezarpen gisa gorde",
|
||||
"applyPreset": "Aurrezarpena Aplikatu",
|
||||
"selectPreset": "Aukeratu Aurrezarpena",
|
||||
"presets": "Aurrezarpenak"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,23 +33,23 @@
|
||||
"muted": "بیصدا"
|
||||
},
|
||||
"action": {
|
||||
"editPlaylist": "ویرایش $t(entity.playlist_one)",
|
||||
"editPlaylist": "ویرایش $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "برو به صفحهٔ",
|
||||
"moveToTop": "انتقال به بالا",
|
||||
"clearQueue": "خالی کردن صف",
|
||||
"addToFavorites": "افزودن به $t(entity.favorite_other)",
|
||||
"addToPlaylist": "افزودن به $t(entity.playlist_one)",
|
||||
"createPlaylist": "ساخت $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "حذف از $t(entity.playlist_one)",
|
||||
"viewPlaylists": "نمایش $t(entity.playlist_other)",
|
||||
"addToFavorites": "افزودن به $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "افزودن به $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "ساخت $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "حذف از $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "نمایش $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "حذف $t(entity.playlist_one)",
|
||||
"deletePlaylist": "حذف $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "حذف از صف",
|
||||
"deselectAll": "لغو انتخاب همه",
|
||||
"moveToBottom": "انتقال به پایین",
|
||||
"setRating": "تعیین امتیاز",
|
||||
"toggleSmartPlaylistEditor": "تغییر ویرایشگر $t(entity.smartPlaylist)",
|
||||
"removeFromFavorites": "حذف از $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "حذف از $t(entity.favorite, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "باز کردن در Last.fm",
|
||||
"musicbrainz": "باز کردن در MusicBranz"
|
||||
@@ -76,16 +76,15 @@
|
||||
"hotkey_volumeDown": "کم کردن صدا",
|
||||
"audioPlayer_description": "پخشکنندهٔ صدا را برای پخش انتخاب کنید",
|
||||
"hotkey_globalSearch": "جست و جوی سراسری",
|
||||
"disableAutomaticUpdates": "غیرفعال کردن بهروزرسانی خودکار",
|
||||
"exitToTray_description": "خروج از اپلیکیشن به system tray",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"discordUpdateInterval_description": "فاصلهٔ بین هر به روزرسانی به ثانیه (حداقل ۱۵ ثانیه)",
|
||||
"audioExclusiveMode": "حالت اختصاصی صدا",
|
||||
"remotePassword": "رمز عبور کنترل از راه دور",
|
||||
"language_description": "زبان اپلیکیشن را معین میکند $t(common.restartRequired)",
|
||||
"hotkey_rate3": "امتیاز ۳ ستاره",
|
||||
"font": "قلم",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"hotkey_toggleFullScreenPlayer": "تغییر به پخشکنندهٔ تمامصفحه",
|
||||
"hotkey_localSearch": "جست و جو در صفحه",
|
||||
"hotkey_toggleQueue": "تغییر صف",
|
||||
@@ -186,7 +185,7 @@
|
||||
"left": "چپ",
|
||||
"save": "ذخیره",
|
||||
"right": "راست",
|
||||
"currentSong": "فعلی $t(entity.track_one)",
|
||||
"currentSong": "فعلی $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "بستن",
|
||||
"trackNumber": "قطعه",
|
||||
"descending": "نزولی",
|
||||
@@ -239,7 +238,7 @@
|
||||
"none": "هیچ",
|
||||
"menu": "منو",
|
||||
"restartRequired": "راهاندازی دوباره لازم است",
|
||||
"previousSong": "$t(entity.track_one) پیشین",
|
||||
"previousSong": "$t(entity.track, {\"count\": 1}) پیشین",
|
||||
"noResultsFromQuery": "جستوجو نتیجهای نداشت",
|
||||
"quit": "خروج",
|
||||
"expand": "گسترش",
|
||||
@@ -256,7 +255,8 @@
|
||||
"albumPeak": "اوج آلبوم",
|
||||
"mbid": "شناسهی MusicBrainz",
|
||||
"reload": "بارگذاری مجدد",
|
||||
"setting": "پیکربندی",
|
||||
"setting_one": "پیکربندی",
|
||||
"setting_other": "",
|
||||
"trackGain": "گین قطعه",
|
||||
"trackPeak": "اوج قطعه",
|
||||
"translation": "ترجمه",
|
||||
@@ -301,16 +301,16 @@
|
||||
"rating": "امتیاز",
|
||||
"search": "جستوجو",
|
||||
"bitrate": "بیتریت",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"recentlyAdded": "به تازگی افزوده شده",
|
||||
"note": "توجه",
|
||||
"name": "نام",
|
||||
"dateAdded": "تاریخ افزوده شدن",
|
||||
"releaseDate": "تاریخ انتشار",
|
||||
"albumCount": "$t(entity.album_other) عدد",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) عدد",
|
||||
"path": "مسیر",
|
||||
"favorited": "موردعلاقه",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "به تازگی پخش شده است",
|
||||
"isFavorited": "موردعلاقه است",
|
||||
"bpm": "bpm",
|
||||
@@ -319,7 +319,7 @@
|
||||
"disc": "دیسک",
|
||||
"biography": "زندگینامه",
|
||||
"songCount": "تعداد ترانه",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"duration": "مدت",
|
||||
"isPublic": "عمومی است",
|
||||
"random": "تصادفی",
|
||||
@@ -327,23 +327,23 @@
|
||||
"toYear": "تا سال",
|
||||
"fromYear": "از سال",
|
||||
"criticRating": "امتیاز منتقدین",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"trackNumber": "قطعه",
|
||||
"communityRating": "رتبه بندی جامعه",
|
||||
"isCompilation": "مخلوط است"
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "حذف $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) حذف شد",
|
||||
"input_confirm": "برای تایید، نام $t(entity.playlist_one) را وارد کنید"
|
||||
"title": "حذف $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) حذف شد",
|
||||
"input_confirm": "برای تایید، نام $t(entity.playlist, {\"count\": 1}) را وارد کنید"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "ساخت $t(entity.playlist_one)",
|
||||
"title": "ساخت $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "عمومی",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) ساخته شد",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) ساخته شد",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addServer": {
|
||||
@@ -360,19 +360,19 @@
|
||||
"ignoreSsl": "نادیده گرفتن ssl ($t(common.restartRequired))"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "$t(entity.song_other) به {{numOfPlaylists}}$t(entity.playlist_other) افزوده شد",
|
||||
"title": "افزودن به $t(entity.playlist_one)",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"success": "$t(entity.song, {\"count\": 2}) به {{numOfPlaylists}}$t(entity.playlist, {\"count\": 2}) افزوده شد",
|
||||
"title": "افزودن به $t(entity.playlist, {\"count\": 1})",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "پرش از تکراریها"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"title": "جستوجو در متن شعر"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "ویرایش $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) با موفقیت بروزرسانی شد",
|
||||
"title": "ویرایش $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) با موفقیت بروزرسانی شد",
|
||||
"publicJellyfinNote": "جلیفین به دلیلی اینکه فهرست پخش عمومیست یا خصوصی را فاش نمیکند. اگر میخواهید این عمومی باقی بماند، لطفاٌ ورودی پیشرو را منتخب داشته باشید"
|
||||
},
|
||||
"queryEditor": {
|
||||
@@ -417,7 +417,7 @@
|
||||
"artistWithCount_other": "{{count}} هنرمند",
|
||||
"folder_one": "پوشه",
|
||||
"folder_other": "پوشهها",
|
||||
"smartPlaylist": "$t(entity.playlist_one) هوشمند",
|
||||
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) هوشمند",
|
||||
"album_one": "آلبوم",
|
||||
"album_other": "آلبومها",
|
||||
"genreWithCount_one": "{{count}} ژانر",
|
||||
@@ -431,12 +431,12 @@
|
||||
},
|
||||
"page": {
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "آلبومهای {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"appMenu": {
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"selectServer": "گزینش سرویسدهنده",
|
||||
"expandSidebar": "گسترش نوار کناری",
|
||||
"collapseSidebar": "فروکش نوار کناری",
|
||||
@@ -451,11 +451,11 @@
|
||||
"appearsOn": "مشاهده میشود در",
|
||||
"about": "دربارهی {{artist}}",
|
||||
"recentReleases": "عرضههای اخیر",
|
||||
"viewAllTracks": "نمایش همهی $t(entity.track_other)",
|
||||
"viewAllTracks": "نمایش همهی $t(entity.track, {\"count\": 2})",
|
||||
"topSongsFrom": "قطعههای برتر از {{title}}",
|
||||
"viewAll": "نمایش همه",
|
||||
"viewDiscography": "نمایش کاتالوگ",
|
||||
"relatedArtists": "$t(entity.artist_other) مربوطه",
|
||||
"relatedArtists": "$t(entity.artist, {\"count\": 2}) مربوطه",
|
||||
"topSongs": "قطعههای برتر"
|
||||
},
|
||||
"contextMenu": {
|
||||
@@ -523,21 +523,21 @@
|
||||
"playbackTab": "پخش"
|
||||
},
|
||||
"sidebar": {
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"nowPlaying": "پخش کنونی",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "$t(entity.playlist_other) اشتراکگذاری شده"
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "$t(entity.playlist, {\"count\": 2}) اشتراکگذاری شده"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "موارد بیشتر از این $t(entity.artist_one)",
|
||||
"moreFromArtist": "موارد بیشتر از این $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "موارد بیشتر از {{item}}",
|
||||
"released": "عرضه شده"
|
||||
},
|
||||
@@ -550,9 +550,9 @@
|
||||
"editServerDetailsTooltip": "ویرایش ریزگان سرویسدهنده"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "نمایش $t(entity.genre_one) $t(entity.album_other)",
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showTracks": "نمایش $t(entity.genre_one) $t(entity.track_other)"
|
||||
"showAlbums": "نمایش $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showTracks": "نمایش $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -563,15 +563,15 @@
|
||||
"title": "فرمانها"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "قطعههای {{artist}}",
|
||||
"genreTracks": "$t(entity.track_other) \"{{genre}}\""
|
||||
"genreTracks": "$t(entity.track, {\"count\": 2}) \"{{genre}}\""
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copyPath": "کپی کردن مسیر در کلیپبورد",
|
||||
@@ -584,11 +584,11 @@
|
||||
"size": "$t(common.size)",
|
||||
"lastPlayed": "آخرین بار پخش شده",
|
||||
"discNumber": "دیسک",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "عنوان",
|
||||
"trackNumber": "قطعه",
|
||||
"favorite": "مورد علاقه",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"comment": "دیدگاه",
|
||||
"playCount": "تعداد پخش",
|
||||
"rating": "امتیاز",
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"size": "koko",
|
||||
"search": "etsi",
|
||||
"sortOrder": "järjestys",
|
||||
"setting": "asetus",
|
||||
"setting_one": "asetus",
|
||||
"setting_other": "asetukset",
|
||||
"title": "otsikko",
|
||||
"trackNumber": "raita",
|
||||
"action_one": "toiminto",
|
||||
@@ -44,7 +45,7 @@
|
||||
"owner": "omistaja",
|
||||
"path": "polku",
|
||||
"preview": "esikatsele",
|
||||
"previousSong": "edellinen $t(entity.track_one)",
|
||||
"previousSong": "edellinen $t(entity.track, {\"count\": 1})",
|
||||
"resetToDefault": "palauta oletusarvoihin",
|
||||
"restartRequired": "vaatii uudelleenkäynnistyksen",
|
||||
"right": "oikea",
|
||||
@@ -66,7 +67,7 @@
|
||||
"codec": "koodekki",
|
||||
"create": "luo",
|
||||
"description": "kuvaus",
|
||||
"currentSong": "nykyinen $t(entity.track_one)",
|
||||
"currentSong": "nykyinen $t(entity.track, {\"count\": 1})",
|
||||
"delete": "poista",
|
||||
"duration": "kesto",
|
||||
"edit": "muokkaa",
|
||||
@@ -101,7 +102,24 @@
|
||||
"recordLabel": "levy-yhtiö",
|
||||
"releaseType": "julkaisun tyyppi",
|
||||
"explicit": "eksplisiittinen",
|
||||
"clean": "puhdas"
|
||||
"clean": "puhdas",
|
||||
"countSelected": "{{count}} valittuna",
|
||||
"doNotShowAgain": "älä näytä uudelleen",
|
||||
"view": "katso",
|
||||
"example": "esimerkki",
|
||||
"externalLinks": "ulkoiset linkit",
|
||||
"faster": "nopeammin",
|
||||
"filter_single": "yksi",
|
||||
"filter_multiple": "useampi",
|
||||
"mood": "mieliala",
|
||||
"noFilters": "suodattimia ei ole määritetty",
|
||||
"retry": "yritä uudelleen",
|
||||
"rename": "nimeä uudelleen",
|
||||
"slower": "hitaammin",
|
||||
"sort": "järjestä",
|
||||
"gridRows": "ruudukon rivejä",
|
||||
"tableColumns": "taulukon sarakkeita",
|
||||
"itemsMore": "{{count}} lisää"
|
||||
},
|
||||
"entity": {
|
||||
"album_one": "albumi",
|
||||
@@ -130,7 +148,7 @@
|
||||
"genre_other": "genret",
|
||||
"genreWithCount_one": "{{count}} genre",
|
||||
"genreWithCount_other": "{{count}} genreä",
|
||||
"smartPlaylist": "älykäs $t(entity.playlist_one)",
|
||||
"smartPlaylist": "älykäs $t(entity.playlist, {\"count\": 1})",
|
||||
"track_one": "raita",
|
||||
"track_other": "raidat",
|
||||
"trackWithCount_one": "{{count}} raita",
|
||||
@@ -138,31 +156,52 @@
|
||||
"play_one": "{{count}} toisto",
|
||||
"play_other": "{{count}} toistoa",
|
||||
"song_one": "kappale",
|
||||
"song_other": "kappaleet"
|
||||
"song_other": "kappaleet",
|
||||
"radioStation_one": "radioasema",
|
||||
"radioStation_other": "radioasemaa",
|
||||
"radioStationWithCount_one": "{{count}} radioasema",
|
||||
"radioStationWithCount_other": "{{count}} radioasemaa"
|
||||
},
|
||||
"action": {
|
||||
"clearQueue": "tyhjennä jono",
|
||||
"createPlaylist": "luo $t(entity.playlist_one)",
|
||||
"createPlaylist": "luo $t(entity.playlist, {\"count\": 1})",
|
||||
"deselectAll": "poista kaikkien valinta",
|
||||
"editPlaylist": "muokkaa $t(entity.playlist_one)",
|
||||
"editPlaylist": "muokkaa $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "poista jonosta",
|
||||
"viewPlaylists": "katsele $t(entity.playlist_other)",
|
||||
"viewPlaylists": "katsele $t(entity.playlist, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "Avaa Last.fm:ssä",
|
||||
"musicbrainz": "Avaa MusicBrainz:ssä"
|
||||
},
|
||||
"goToPage": "mene sivulle",
|
||||
"moveToBottom": "siirry pohjalle",
|
||||
"moveToBottom": "siirrä alimmaksi",
|
||||
"moveToTop": "siirry ylös",
|
||||
"addToFavorites": "lisää kohteeseen $t(entity.favorite_other)",
|
||||
"addToPlaylist": "lisää kohteeseen $t(entity.playlist_one)",
|
||||
"addToFavorites": "lisää kohteeseen $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "lisää kohteeseen $t(entity.playlist, {\"count\": 1})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "poista kohteesta $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "poista kohteesta $t(entity.favorite, {\"count\": 2})",
|
||||
"toggleSmartPlaylistEditor": "kytke $t(entity.smartPlaylist) editori",
|
||||
"deletePlaylist": "poista $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "poista kohteesta $t(entity.playlist_one)",
|
||||
"deletePlaylist": "poista $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "poista kohteesta $t(entity.playlist, {\"count\": 1})",
|
||||
"setRating": "aseta arvostelu",
|
||||
"moveToNext": "siirry seuraavaan"
|
||||
"moveToNext": "siirry seuraavaan",
|
||||
"selectRangeOfItems": "valitse useita peräkkäisiä kohteita",
|
||||
"goToCurrent": "siirry nykyiseen kohteeseen",
|
||||
"createRadioStation": "luo $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "poista $t(entity.radioStation, {\"count\": 1})",
|
||||
"selectAll": "valitse kaikki",
|
||||
"downloadStarted": "aloitettiin lataamaan {{count}} kohdetta",
|
||||
"moveUp": "siirrä ylöspäin",
|
||||
"moveDown": "siirrä alaspäin",
|
||||
"holdToMoveToTop": "pidä pohjassa siirtääksesi ylimmäksi",
|
||||
"holdToMoveToBottom": "pidä pohjassa siirtääksesi alimmaksi",
|
||||
"moveItems": "siirrä kohteet",
|
||||
"shuffle": "sekoita",
|
||||
"shuffleAll": "sekoita kaikki",
|
||||
"shuffleSelected": "sekoita valitut",
|
||||
"viewMore": "katso lisää",
|
||||
"openApplicationDirectory": "avaa ohjelman kansio",
|
||||
"addOrRemoveFromSelection": "lisää tai poista valinnasta"
|
||||
},
|
||||
"error": {
|
||||
"remoteEnableError": "virhe tapahtui yrittäessä $t(common.enable) etäpalvelinta",
|
||||
@@ -188,16 +227,24 @@
|
||||
"remotePortWarning": "käynnistä palvelin uudestaan ottaaksesi uuden portin käyttöön",
|
||||
"endpointNotImplementedError": "päätepiste {{endpoint}} ei ole toteutettu {{serverType}} varten",
|
||||
"badValue": "kelpaamaton optio \"{{value}}\". tätä arvoa ei ole enää olemassa",
|
||||
"notificationDenied": "luvat ilmouilmoituksia varten evättiin. tällä asetuksella ei ole vaikutusta"
|
||||
"notificationDenied": "luvat ilmouilmoituksia varten evättiin. tällä asetuksella ei ole vaikutusta",
|
||||
"invalidJson": "virheellinen JSON",
|
||||
"multipleServerSaveQueueError": "soittojonossa on yksi tai useampi kappale, jotka eivät ole nykyiseltä palvelimelta. tätä ei ole tuettu",
|
||||
"noNetwork": "palvelin ei ole käytettävissä",
|
||||
"noNetworkDescription": "ei voida yhdistää palvelimeen",
|
||||
"serverLockSingleServer": "lukitussa tilassa sallitaan vain yksi palvelin",
|
||||
"settingsSyncError": "rendererin ja pääprosessin asetukset eivät täsmää. Käynnistä sovellus uudelleen, jotta muutokset otetaan käyttöön",
|
||||
"playbackPausedDueToError": "toisto tauotettiin virheen takia",
|
||||
"saveQueueFailed": "jonon tallentaminen epäonnistui"
|
||||
},
|
||||
"filter": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biografia",
|
||||
"bitrate": "bittinopeus",
|
||||
"bpm": "lyöntiä minuutissa (bpm)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"title": "otsikko",
|
||||
"playCount": "toistomäärä",
|
||||
"dateAdded": "lisätty päivänä",
|
||||
@@ -213,12 +260,12 @@
|
||||
"search": "haku",
|
||||
"trackNumber": "raita",
|
||||
"isPublic": "on julkinen",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"favorited": "suosikeissa",
|
||||
"fromYear": "vuodelta",
|
||||
"isRated": "on arvosteltu",
|
||||
"recentlyPlayed": "äskettäin toistetut",
|
||||
"albumCount": "$t(entity.album_other) määrä",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) määrä",
|
||||
"disc": "levy",
|
||||
"duration": "kesto",
|
||||
"id": "tunnus",
|
||||
@@ -233,7 +280,10 @@
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "polku",
|
||||
"songCount": "kappalemäärä",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"matchAnd": "ja",
|
||||
"matchOr": "tai",
|
||||
"sortName": "järjestä nimen mukaan"
|
||||
},
|
||||
"form": {
|
||||
"addServer": {
|
||||
@@ -249,40 +299,44 @@
|
||||
"input_username": "käyttäjänimi",
|
||||
"success": "palvelin lisätty onnistuneesti",
|
||||
"input_preferInstantMix": "suosi pika-miksausta",
|
||||
"input_preferInstantMixDescription": "käytä vain pika-miksausta saadaksesi samankaltaisia kappaleita. käytännöllinen jos sinulla on lisäosia, jotka muuttavat tätä käytöstä"
|
||||
"input_preferInstantMixDescription": "käytä vain pika-miksausta saadaksesi samankaltaisia kappaleita. käytännöllinen jos sinulla on lisäosia, jotka muuttavat tätä käytöstä",
|
||||
"input_preferRemoteUrl": "suosi julkista url-osoitetta",
|
||||
"input_remoteUrl": "julkinen url-osoite",
|
||||
"input_remoteUrlPlaceholder": "valinnainen: julkinen url-osoite ulkoisille toiminnoille"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_public": "julkinen",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"success": "$t(entity.playlist_one) luotu onnistuneesti",
|
||||
"title": "luo $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) luotu onnistuneesti",
|
||||
"title": "luo $t(entity.playlist, {\"count\": 1})",
|
||||
"input_description": "$t(common.description)"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_skipDuplicates": "ohita kaksoiskappaleet",
|
||||
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) lisätty $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "lisää soittolistalle $t(entity.playlist_one)",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "luo $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "hae $t(entity.playlist_other) tai tyyppiä luodaksesi uuden"
|
||||
"title": "lisää soittolistalle $t(entity.playlist, {\"count\": 1})",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "luo $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "hae $t(entity.playlist, {\"count\": 2}) tai tyyppiä luodaksesi uuden"
|
||||
},
|
||||
"updateServer": {
|
||||
"success": "palvelin on päivitetty onnistuneesti",
|
||||
"title": "päivitä palvelin"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"success": "$t(entity.playlist_one) poistettu onnistuneesti",
|
||||
"title": "poista $t(entity.playlist_one)",
|
||||
"input_confirm": "kirjoita soittolistan $t(entity.playlist_one) nimi vahvistaaksesi"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) poistettu onnistuneesti",
|
||||
"title": "poista $t(entity.playlist, {\"count\": 1})",
|
||||
"input_confirm": "kirjoita soittolistan $t(entity.playlist, {\"count\": 1}) nimi vahvistaaksesi"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"success": "$t(entity.playlist_one) päivitetty onnistuneesti",
|
||||
"title": "muokkaa $t(entity.playlist_one)",
|
||||
"publicJellyfinNote": "Jellyfin ei jostain syystä kerro onko soittolista julkinen vai ei. Jos haluat sen pysyvän julkisena, pidä seuraava valinta valittuna"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) päivitetty onnistuneesti",
|
||||
"title": "muokkaa $t(entity.playlist, {\"count\": 1})",
|
||||
"publicJellyfinNote": "Jellyfin ei jostain syystä kerro onko soittolista julkinen vai ei. Jos haluat sen pysyvän julkisena, pidä seuraava valinta valittuna",
|
||||
"editNote": "manuaalisia muokkauksia ei suositella suurille soittolistoille. haluatko varmasti hyväksyä riskin, että nykyinen soittolista ylikirjoitetaan ja tietoja voi hävitä?"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "sanojen haku"
|
||||
},
|
||||
@@ -292,17 +346,53 @@
|
||||
"description": "kuvaus",
|
||||
"setExpiration": "aseta vanheneminen",
|
||||
"success": "jakolinkki kopioitu leikepöydälle (tai klikkaa tästä avataksesi)",
|
||||
"expireInvalid": "vanhetumisen pitää olla tulevaisuudessa"
|
||||
"expireInvalid": "vanhetumisen pitää olla tulevaisuudessa",
|
||||
"copyToClipboard": "Kopioi leikepöydälle: Ctrl+C, Enter",
|
||||
"successMustClick": "jako luotu onnistuneesti. paina tästä avataksesi"
|
||||
},
|
||||
"queryEditor": {
|
||||
"input_optionMatchAny": "sovita joku",
|
||||
"input_optionMatchAll": "sovita kaikki",
|
||||
"title": "kyselyeditori"
|
||||
"title": "kyselyeditori",
|
||||
"addRuleGroup": "lisää sääntöryhmä",
|
||||
"removeRuleGroup": "poista sääntöryhmä",
|
||||
"resetToDefault": "palauta oletukset",
|
||||
"clearFilters": "poista suodattimet"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "yksityinen tila käytössä, toistotila on nyt piilotettu ulkoisilta integraatioilta",
|
||||
"disabled": "yksityinen tila poissa käytössä, toistotila on nyt näkyvillä ulkoisille integraatioille",
|
||||
"title": "yksityinen tila"
|
||||
},
|
||||
"largeFetchConfirmation": {
|
||||
"title": "lisää kohteet jonoon",
|
||||
"description": "lisää kaikki suodatetun näkymän kohteet"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"success": "radiokanava luotu onnistuneesti",
|
||||
"title": "luo radiokanava",
|
||||
"input_homepageUrl": "kotisivun osoite",
|
||||
"input_name": "nimi",
|
||||
"input_streamUrl": "suoratoisto-osoite"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "vie sanoitukset",
|
||||
"input_synced": "vie ajastetut sanoitukset",
|
||||
"input_offset": "$t(setting.lyricOffset)"
|
||||
},
|
||||
"saveQueue": {
|
||||
"success": "toistojono tallennettu palvelimelle"
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "soita satunnainen",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "kuinka monta kappaletta?",
|
||||
"input_minYear": "vuodesta",
|
||||
"input_maxYear": "vuoteen",
|
||||
"input_played": "toiston suodatin",
|
||||
"input_played_optionAll": "kaikki raidat",
|
||||
"input_played_optionUnplayed": "vain toistamattomat raidat",
|
||||
"input_played_optionPlayed": "vain toistetut raidat"
|
||||
}
|
||||
},
|
||||
"setting": {
|
||||
@@ -374,7 +464,6 @@
|
||||
"customCss_description": "mukautettu CSS-sisältö. Huomautus: content- ja etä-URL-osoitteet ovat estettyjä ominaisuuksia. Esikatselu sisällöstäsi on alla. Lisäkenttiä, joita et ole määrittänyt, on näkyvissä puhdistuksen vuoksi",
|
||||
"customCssNotice": "Varoitus: vaikka jonkinlainen puhdistus onkin tehty (url()- ja content:-komentojen estäminen), mukautetun css:n käyttäminen voi silti aiheuttaa riskejä muuttamalla käyttöliittymää",
|
||||
"disableLibraryUpdateOnStartup": "poista uusimman version tarkistus käynnistyksen yhteydessä käytöstä",
|
||||
"disableAutomaticUpdates": "poista automaattiset päivitykset käytöstä",
|
||||
"discordIdleStatus": "näytä rich presencen käyttämätön tila",
|
||||
"discordIdleStatus_description": "kun käytössä, päivitä tila kun soitin on käyttämättömänä",
|
||||
"discordUpdateInterval_description": "päivitysväli sekunnteina (vähintään 15 sekunttia)",
|
||||
@@ -437,7 +526,7 @@
|
||||
"gaplessAudio": "tauoton toisto",
|
||||
"transcodeFormat_description": "valitsee transkoodattavan formaatin. jätä tyhjäksi palvelimen valintaa varten",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"themeDark": "teema (tumma)",
|
||||
"translationApiKey_description": "API-avain käännöstä varten (tukee vain globaalia palvelun palvelupistettä)",
|
||||
"playbackStyle_description": "valitse toiston tyyli, jota käytetään soittimessa",
|
||||
@@ -474,7 +563,7 @@
|
||||
"replayGainClipping": "{{ReplayGain}} leikkaus",
|
||||
"replayGainClipping_description": "Estää {{ReplayGain}}n aiheuttaman leikkauksen laskemalla vahvistusta automaatisesti",
|
||||
"replayGainFallback": "{{ReplayGain}} palautus",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainPreamp": "{{ReplayGain}} esivahvistus (dB)",
|
||||
"scrobble_description": "skrobblaa toistot mediapalvelimellesi",
|
||||
"replayGainPreamp_description": "säätää esivahvistuksen määrää {{ReplayGain}} arvoon",
|
||||
@@ -540,7 +629,12 @@
|
||||
"releaseChannel_optionLatest": "viimeisin",
|
||||
"releaseChannel": "julkaisulinja",
|
||||
"releaseChannel_description": "valitse vakaiden ja beetaversioiden välillä automaattisille päivityksille",
|
||||
"discordDisplayType_artistname": "artistin nimi / artistien nimet"
|
||||
"discordDisplayType_artistname": "artistin nimi / artistien nimet",
|
||||
"autoDJ": "auto DJ",
|
||||
"autoDJ_description": "lisää automaattisesti samanlaisia kappaleita jonoon",
|
||||
"autoDJ_itemCount": "kohteiden määrä",
|
||||
"autoDJ_itemCount_description": "jonoon lisättäväksi yritettyjen kohteiden määrä, kun auto DJ on käytössä",
|
||||
"autoDJ_timing": "ajastus"
|
||||
},
|
||||
"page": {
|
||||
"itemDetail": {
|
||||
@@ -549,31 +643,35 @@
|
||||
"openFile": "näytä kappale tiedostonhallinnassa"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "siirrä kohteesta $t(entity.artist_one)",
|
||||
"moreFromArtist": "siirrä kohteesta $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "listää kohteesta {{item}}",
|
||||
"released": "julkaistu"
|
||||
},
|
||||
"albumList": {
|
||||
"artistAlbums": "artistin {{artist}} albumit",
|
||||
"genreAlbums": "\"{{genre}}\"$t(entity.album_other)",
|
||||
"title": "$t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\"$t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"appMenu": {
|
||||
"goBack": "mene takaisin",
|
||||
"openBrowserDevtools": "avaa selaimen kehitystyökalut",
|
||||
"quit": "$t(common.quit)",
|
||||
"selectServer": "valitse palvelin",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"expandSidebar": "laajenna sivupalkki",
|
||||
"goForward": "mene eteenpäin",
|
||||
"manageServers": "hallitse palvelimia",
|
||||
"collapseSidebar": "kutista sivupalkki",
|
||||
"version": "versio {{version}}",
|
||||
"privateModeOff": "käännä yksityinen tila pois käytöstä",
|
||||
"privateModeOn": "käännä yksityinen tila käyttöön"
|
||||
"privateModeOn": "käännä yksityinen tila käyttöön",
|
||||
"commandPalette": "avaa komentopaletti",
|
||||
"selectMusicFolder": "valitse musiikkikansio",
|
||||
"noMusicFolder": "musiikkikansiota ei ole valittu",
|
||||
"multipleMusicFolders": "{{count}} musiikkikansio(ta) valittu"
|
||||
},
|
||||
"contextMenu": {
|
||||
"playSimilarSongs": "$t(player.playSimilarSongs)",
|
||||
@@ -598,30 +696,53 @@
|
||||
"addLast": "$t(player.addLast)",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"removeFromQueue": "$t(action.removeFromQueue)",
|
||||
"goToAlbum": "mene $t(entity.album_one)",
|
||||
"goToAlbumArtist": "mene $t(entity.albumArtist_one)"
|
||||
"goToAlbum": "mene $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "mene $t(entity.albumArtist, {\"count\": 1})",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "mene"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "$t(entity.playlist_other) jaettu",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "$t(entity.playlist, {\"count\": 2}) jaettu",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"nowPlaying": "nyt soi",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"myLibrary": "oma kirjasto"
|
||||
"myLibrary": "oma kirjasto",
|
||||
"collections": "kokoelmat",
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"generalTab": "yleinen",
|
||||
"windowTab": "ikkuna",
|
||||
"hotkeysTab": "pikanäppäimet",
|
||||
"playbackTab": "toisto",
|
||||
"advanced": "edistyneet"
|
||||
"advanced": "edistyneet",
|
||||
"analytics": "tilastot",
|
||||
"updates": "päivitä",
|
||||
"cache": "välimuisti",
|
||||
"application": "aplikaatio",
|
||||
"queryBuilder": "kyselynrakentaja",
|
||||
"theme": "teema",
|
||||
"controls": "säätimet",
|
||||
"sidebar": "sivupalkki",
|
||||
"remote": "kauko-ohjain",
|
||||
"exportImport": "tuo/vie",
|
||||
"scrobble": "scrobblata",
|
||||
"audio": "audio",
|
||||
"lyrics": "sanat",
|
||||
"lyricsDisplay": "sanojen näyttö",
|
||||
"transcoding": "transkoodaus",
|
||||
"discord": "discord",
|
||||
"logger": "lokittaja",
|
||||
"playerFilters": "soittimen suodattimet"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"upNext": "seuraavaksi",
|
||||
@@ -647,9 +768,9 @@
|
||||
"related": "liittyvät"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "näytä $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "näytä $t(entity.genre_one) $t(entity.track_other)",
|
||||
"title": "$t(entity.genre_other)"
|
||||
"showAlbums": "näytä $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "näytä $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -665,21 +786,28 @@
|
||||
"title": "$t(common.home)",
|
||||
"mostPlayed": "eniten soitetut",
|
||||
"newlyAdded": "hiljattain lisätyt julkaisut",
|
||||
"recentlyReleased": "hiljattain julkaistu"
|
||||
"recentlyReleased": "hiljattain julkaistu",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"about": "{{artist}}{sta/stä",
|
||||
"about": "{{artist}}",
|
||||
"viewDiscography": "katsele diskografiaa",
|
||||
"relatedArtists": "liittyvät $t(entity.artist_other)",
|
||||
"relatedArtists": "liittyvät $t(entity.artist, {\"count\": 2})",
|
||||
"appearsOn": "esiintyy",
|
||||
"topSongs": "parhaat kappaleet",
|
||||
"topSongsFrom": "parhaat kappaleet albumilta {{title}}",
|
||||
"recentReleases": "hiljattaiset julkaisut",
|
||||
"viewAll": "katsele kaikkia",
|
||||
"viewAllTracks": "katsele kaikkia $t(entity.track_other)"
|
||||
"viewAllTracks": "katsele kaikkia $t(entity.track, {\"count\": 2})",
|
||||
"favoriteSongs": "suosikki kappaleet",
|
||||
"groupingTypeAll": "kaikki julkaisun tyypit",
|
||||
"groupingTypePrimary": "ensisijaiset tyypin julkaisut",
|
||||
"topSongsCommunity": "yhteisö",
|
||||
"topSongsPersonal": "henkilökohtainen",
|
||||
"favoriteSongsFrom": "suosikkikappale {{title}}:sta"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"manageServers": {
|
||||
"title": "hallitse palvelimia",
|
||||
@@ -694,13 +822,35 @@
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "artistin {{artist}} kappaleet",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "radiokanavat"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "muutokset {{stable}} verrattuna",
|
||||
"noNewCommits": "ei uusia muutoksia tällä välillä",
|
||||
"noStableReleaseToCompare": "vertailukelpoista vakaata versiota ei löytynyt"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(Tauotettu) ",
|
||||
"privateMode": "(Yksityinen tila)"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "syrjäytä olemassa olevat",
|
||||
"saveAsCollection": "tallenna kokoelmana"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
"addLast": "lisää viimeinen",
|
||||
"addNext": "lisää seuraava",
|
||||
"addLast": "viimeinen",
|
||||
"addNext": "seuraava",
|
||||
"favorite": "suosikki",
|
||||
"queue_moveToTop": "siirrä valittu alas",
|
||||
"queue_remove": "poista valittu",
|
||||
@@ -719,7 +869,7 @@
|
||||
"repeat_all": "kertaa kaikki",
|
||||
"playbackFetchCancel": "tämä vie aikaa... sulje ilmoitus peruaksesi",
|
||||
"mute": "mykistä",
|
||||
"shuffle": "soita sekoitettuna",
|
||||
"shuffle": "soita (sekoitettuna)",
|
||||
"next": "seuraava",
|
||||
"play": "toista",
|
||||
"playbackFetchInProgress": "ladataan kappaleita…",
|
||||
@@ -729,7 +879,25 @@
|
||||
"playSimilarSongs": "toista samanlaisia kappaleita",
|
||||
"repeat_off": "kertaus pois päältä",
|
||||
"shuffle_off": "sekoitus pois päältä",
|
||||
"toggleFullscreenPlayer": "vaihda kokoruudun soittimeen"
|
||||
"toggleFullscreenPlayer": "vaihda kokoruudun soittimeen",
|
||||
"addLastShuffled": "viimeinen (sekoitettu)",
|
||||
"addNextShuffled": "seuraava (sekoitettu)",
|
||||
"albumRadio": "albumiradio",
|
||||
"artistRadio": "artistiradio",
|
||||
"holdToShuffle": "pidä sekoittaaksesi",
|
||||
"lyrics": "sanat",
|
||||
"restoreQueueFromServer": "palauta tiedustelu palvelimelta",
|
||||
"saveQueueToServer": "tallenna tiedustelu palvelimelle",
|
||||
"trackRadio": "raitaradio",
|
||||
"sleepTimer": "uniajastin",
|
||||
"sleepTimer_endOfSong": "nykyisen kappaleen loppu",
|
||||
"sleepTimer_minutes": "{{count}} min",
|
||||
"sleepTimer_hours": "{{count}} t",
|
||||
"sleepTimer_custom": "mukautettu",
|
||||
"sleepTimer_off": "pois",
|
||||
"sleepTimer_timeRemaining": "{{time}} jäljellä",
|
||||
"sleepTimer_setCustom": "aseta ajastin",
|
||||
"sleepTimer_cancel": "peruuta ajastin"
|
||||
},
|
||||
"table": {
|
||||
"config": {
|
||||
@@ -746,14 +914,14 @@
|
||||
"label": {
|
||||
"channels": "$t(common.channel_other)",
|
||||
"trackNumber": "raidan numero",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"actions": "$t(common.action_other)",
|
||||
"codec": "$t(common.codec)",
|
||||
"dateAdded": "lisäyspäivämäärä",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"discNumber": "levyn numero",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
@@ -764,12 +932,12 @@
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"playCount": "toistojen lukumäärä",
|
||||
"rating": "$t(common.rating)",
|
||||
"releaseDate": "julkaisupäivämäärä",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(common.title)",
|
||||
"year": "$t(common.year)"
|
||||
},
|
||||
@@ -782,7 +950,7 @@
|
||||
"column": {
|
||||
"releaseYear": "vuosi",
|
||||
"bpm": "bpm",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biografia",
|
||||
"dateAdded": "lisäyspäivämäärä",
|
||||
"album": "albumi",
|
||||
@@ -790,17 +958,17 @@
|
||||
"lastPlayed": "viimeksi toistettu",
|
||||
"path": "polku",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "nimi",
|
||||
"trackNumber": "raita",
|
||||
"codec": "$t(common.codec)",
|
||||
"comment": "kommentti",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"bitrate": "bittinopeus",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"discNumber": "levy",
|
||||
"favorite": "suosikki",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"playCount": "toistoja",
|
||||
"rating": "arvostelu",
|
||||
"releaseDate": "julkaisupäivämäärä"
|
||||
@@ -808,7 +976,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "lähetys",
|
||||
"ep": "EP",
|
||||
"other": "muu",
|
||||
@@ -828,5 +996,36 @@
|
||||
"soundtrack": "elokuvamusiikki",
|
||||
"spokenWord": "puhetta"
|
||||
}
|
||||
},
|
||||
"datetime": {
|
||||
"minuteShort": "m",
|
||||
"secondShort": "s",
|
||||
"hourShort": "t",
|
||||
"dayShort": "p"
|
||||
},
|
||||
"filterOperator": {
|
||||
"after": "jälkeen",
|
||||
"afterDate": "jälkeen (päivän)",
|
||||
"before": "ennen",
|
||||
"beforeDate": "ennen (päivää)",
|
||||
"contains": "sisältää",
|
||||
"endsWith": "loppuu",
|
||||
"inPlaylist": "on",
|
||||
"inTheLast": "on viimeisenä",
|
||||
"inTheRange": "on välillä",
|
||||
"inTheRangeDate": "on valitulla aikavälillä (päivä)",
|
||||
"is": "on",
|
||||
"isNot": "ei ole",
|
||||
"isGreaterThan": "enemmän kuin",
|
||||
"isLessThan": "vähemmän kuin",
|
||||
"matchesRegex": "vastaa säännöllistä lausetta (regex)",
|
||||
"notContains": "ei sisällä",
|
||||
"notInPlaylist": "ei ole",
|
||||
"notInTheLast": "ei ole viimeisenä",
|
||||
"startsWith": "alkaa"
|
||||
},
|
||||
"queryBuilder": {
|
||||
"standardTags": "standardi tagit",
|
||||
"customTags": "mukautetut tagit"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
{
|
||||
"action": {
|
||||
"moveToNext": "ugrás a következőre",
|
||||
"deletePlaylist": "$t(entity.playlist_one) törlése",
|
||||
"removeFromFavorites": "eltávolítás innen $t(entity.favorite_other)",
|
||||
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) törlése",
|
||||
"removeFromFavorites": "eltávolítás innen $t(entity.favorite, {\"count\": 2})",
|
||||
"setRating": "értékelés",
|
||||
"viewPlaylists": "$t(entity.playlist_other) megtekintése",
|
||||
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) megtekintése",
|
||||
"openIn": {
|
||||
"lastfm": "Megnyitás Last.fm-ben",
|
||||
"musicbrainz": "Megnyitás MusicBrainz-ben"
|
||||
},
|
||||
"clearQueue": "műsorlista kiürítése",
|
||||
"createPlaylist": "$t(entity.playlist_one) létrehozása",
|
||||
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) létrehozása",
|
||||
"deselectAll": "kijelölés törlése",
|
||||
"editPlaylist": "$t(entity.playlist_one) szerkesztése",
|
||||
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) szerkesztése",
|
||||
"goToPage": "menj az oldalra",
|
||||
"moveToBottom": "ugrás az aljára",
|
||||
"moveToTop": "ugrás a tetejére",
|
||||
"removeFromPlaylist": "eltávolítás innen $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "eltávolítás innen $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "eltávolítás a műsorlistáról",
|
||||
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) szerkesztője",
|
||||
"addToFavorites": "$t(entity.favorite_other) kedvelése",
|
||||
"addToPlaylist": "hozzáadás lejátszási listához: $t(entity.playlist_one)",
|
||||
"addToFavorites": "$t(entity.favorite, {\"count\": 2}) kedvelése",
|
||||
"addToPlaylist": "hozzáadás lejátszási listához: $t(entity.playlist, {\"count\": 1})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"downloadStarted": "megkezdődött {{count}} elem letöltése",
|
||||
"moveItems": "elemek mozgatása",
|
||||
@@ -33,15 +33,15 @@
|
||||
"holdToMoveToTop": "hosszan nyomva felülre mozgat",
|
||||
"holdToMoveToBottom": "hosszan nyomva lejjebb mozgat",
|
||||
"selectAll": "összes kijelölése",
|
||||
"deleteRadioStation": "$t(entity.radioStation_one) törlése",
|
||||
"createRadioStation": "$t(entity.radioStation_one) létrehozása",
|
||||
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) törlése",
|
||||
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) létrehozása",
|
||||
"openApplicationDirectory": "app könyvtár megnyitása",
|
||||
"addOrRemoveFromSelection": "hozzáadás vagy eltávolítás a kiválasztásból",
|
||||
"selectRangeOfItems": "válaszd ki a tartományt"
|
||||
},
|
||||
"common": {
|
||||
"collapse": "összecsukás",
|
||||
"currentSong": "jelenlegi: $t(entity.track_one)",
|
||||
"currentSong": "jelenlegi: $t(entity.track, {\"count\": 1})",
|
||||
"no": "nem",
|
||||
"close": "bezárás",
|
||||
"confirm": "rendben",
|
||||
@@ -100,7 +100,7 @@
|
||||
"path": "elérési út",
|
||||
"playerMustBePaused": "a lejátszónak szüneteltetve kell lennie",
|
||||
"preview": "előnézet",
|
||||
"previousSong": "előző $t(entity.track_one)",
|
||||
"previousSong": "előző $t(entity.track, {\"count\": 1})",
|
||||
"quit": "kilépés",
|
||||
"random": "véletlenszerű",
|
||||
"refresh": "frissítés",
|
||||
@@ -116,7 +116,8 @@
|
||||
"yes": "igen",
|
||||
"none": "egyik sem",
|
||||
"restartRequired": "újraindítás szükséges",
|
||||
"setting": "beállítás",
|
||||
"setting_one": "beállítás",
|
||||
"setting_other": "",
|
||||
"translation": "fordítás",
|
||||
"rating": "értékelés",
|
||||
"reload": "újratöltés",
|
||||
@@ -176,7 +177,7 @@
|
||||
"song_other": "dalok",
|
||||
"album_one": "album",
|
||||
"album_other": "albumok",
|
||||
"smartPlaylist": "intelligens $t(entity.playlist_one)",
|
||||
"smartPlaylist": "intelligens $t(entity.playlist, {\"count\": 1})",
|
||||
"artistWithCount_one": "{{count}} előadó",
|
||||
"artistWithCount_other": "{{count}} előadók",
|
||||
"playlist_one": "lejátszási lista",
|
||||
@@ -228,7 +229,7 @@
|
||||
"multipleServerSaveQueueError": "a műsorlistában egy vagy több olyan dal található, amely nem az aktuális szerverről származik. Ez nem támogatott"
|
||||
},
|
||||
"filter": {
|
||||
"albumCount": "$t(entity.album_other) darab",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) darab",
|
||||
"bitrate": "bitráta",
|
||||
"comment": "megjegyzés",
|
||||
"dateAdded": "hozzáadás ideje",
|
||||
@@ -249,9 +250,9 @@
|
||||
"disc": "lemez",
|
||||
"criticRating": "kritikusok értékelése",
|
||||
"communityRating": "közösségi értékelés",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"biography": "életrajz",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"favorited": "kedvelt",
|
||||
"isRecentlyPlayed": "mostanában lejátszott",
|
||||
"name": "név",
|
||||
@@ -266,10 +267,10 @@
|
||||
"path": "elérési út",
|
||||
"toYear": "évhez",
|
||||
"trackNumber": "sáv",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"bpm": "bpm",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
},
|
||||
"form": {
|
||||
@@ -290,33 +291,33 @@
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_skipDuplicates": "duplikátumok átugrása",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"success": "hozzáadtuk ezt: $t(entity.trackWithCount, {\"count\": {{message}} }) a következőhöz: $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "hozzáadás a következőhöz: $t(entity.playlist_one)",
|
||||
"create": "létrehoz $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "keresés $t(entity.playlist_other) vagy új létrehozása"
|
||||
"title": "hozzáadás a következőhöz: $t(entity.playlist, {\"count\": 1})",
|
||||
"create": "létrehoz $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "keresés $t(entity.playlist, {\"count\": 2}) vagy új létrehozása"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "publikus",
|
||||
"title": "$t(entity.playlist_one) létrehozása",
|
||||
"success": "$t(entity.playlist_one) sikeresen létrehozva"
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) létrehozása",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) sikeresen létrehozva"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "a megerősítéshez írd be a(z) $t(entity.playlist_one) nevét",
|
||||
"success": "$t(entity.playlist_one) sikeresen törölve",
|
||||
"title": "$t(entity.playlist_one) törlése"
|
||||
"input_confirm": "a megerősítéshez írd be a(z) $t(entity.playlist, {\"count\": 1}) nevét",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) sikeresen törölve",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) törlése"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"success": "$t(entity.playlist_one) sikeresen módosítva",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) sikeresen módosítva",
|
||||
"publicJellyfinNote": "A Jellyfin valamiért nem teszi közzé, hogy egy lejátszási lista publikus-e vagy sem. Amennyiben azt szeretnéd, hogy publikus maradjon, válaszd ki az alábbi beviteli mezőt",
|
||||
"title": "szerkesztés $t(entity.playlist_one)",
|
||||
"title": "szerkesztés $t(entity.playlist, {\"count\": 1})",
|
||||
"editNote": "A kézi szerkesztés nem ajánlott nagy lejátszási listák esetén. Biztosan vállalod a meglévő lejátszási lista felülírásával járó adatvesztés kockázatát?"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "dalszöveg kereső"
|
||||
},
|
||||
@@ -352,7 +353,7 @@
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "véletlenszerű lejátszás",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "Hány dal?",
|
||||
"input_minYear": "ettől az évtől",
|
||||
"input_maxYear": "eddig az évig",
|
||||
@@ -383,24 +384,24 @@
|
||||
"appearsOn": "megjelenik",
|
||||
"recentReleases": "legújabb kiadványok",
|
||||
"viewDiscography": "Diszkográfia megtekintése",
|
||||
"relatedArtists": "kapcsolódik $t(entity.artist_other)",
|
||||
"relatedArtists": "kapcsolódik $t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "sláger dalok",
|
||||
"topSongsFrom": "sláger dalok tőle {{title}}",
|
||||
"viewAll": "mindet megtekint",
|
||||
"viewAllTracks": "mindet megtekint $t(entity.track_other)"
|
||||
"viewAllTracks": "mindet megtekint $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "még több ettől $t(entity.artist_one)",
|
||||
"moreFromArtist": "még több ettől $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "Még több {{item}}",
|
||||
"released": "megjelent"
|
||||
},
|
||||
"albumList": {
|
||||
"artistAlbums": "albumok tőle {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
|
||||
"title": "$t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"appMenu": {
|
||||
"collapseSidebar": "oldalsáv",
|
||||
@@ -413,7 +414,7 @@
|
||||
"openBrowserDevtools": "Fejlesztői eszközök",
|
||||
"quit": "$t(common.quit)",
|
||||
"selectServer": "Szerver választása",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"version": "verzió {{version}}",
|
||||
"selectMusicFolder": "zene mappa kiválasztása",
|
||||
"noMusicFolder": "nincs zene mappa kiválasztva",
|
||||
@@ -450,8 +451,8 @@
|
||||
"setRating": "$t(action.setRating)",
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"shareItem": "Megosztás",
|
||||
"goToAlbum": "menj az $t(entity.album_one)",
|
||||
"goToAlbumArtist": "menj a $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "menj az $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "menj a $t(entity.albumArtist, {\"count\": 1})",
|
||||
"showDetails": "info",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "menj"
|
||||
@@ -480,9 +481,9 @@
|
||||
"noLyrics": "nem található dalszöveg"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "mutasd a $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "mutasd a $t(entity.genre_one) $t(entity.track_other)",
|
||||
"title": "$t(entity.genre_other)"
|
||||
"showAlbums": "mutasd a $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "mutasd a $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -499,7 +500,7 @@
|
||||
"recentlyPlayed": "nemrég játszott",
|
||||
"recentlyReleased": "nemrég megjelent",
|
||||
"title": "$t(common.home)",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copyPath": "másolja az útvonalat a vágólapra",
|
||||
@@ -510,7 +511,7 @@
|
||||
"reorder": "átrendezés csak ID szerinti rendezés esetén engedélyezett"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"advanced": "haladó",
|
||||
@@ -537,32 +538,32 @@
|
||||
"logger": "naplózó"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"myLibrary": "Könyvtáram",
|
||||
"nowPlaying": "most játszott",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "megosztott $t(entity.playlist_other)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "megosztott $t(entity.playlist, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "dalok tőle {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "rádió állomások"
|
||||
@@ -609,7 +610,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "sugárzás",
|
||||
"ep": "ep",
|
||||
"other": "más",
|
||||
@@ -665,7 +666,6 @@
|
||||
"customCss": "egyéni css",
|
||||
"customCssEnable_description": "lehetővé teszi az egyéni css írását",
|
||||
"customCssEnable": "egyéni css engedélyezése",
|
||||
"disableAutomaticUpdates": "automatikus frissítés kikapcsolása",
|
||||
"customFontPath": "egyéni betűtípus elérési út",
|
||||
"customCss_description": "egyéni css tartalom. Megjegyzés: a tartalom és a távoli URL-ek nem megengedett tulajdonságok. A tartalom előnézete az alábbiakban látható. A tisztítás miatt további mezők is megjelennek, amelyeket te nem állítottál be",
|
||||
"customCssNotice": "Figyelem: bár van némi tisztítás (az url() és a content: használata nem engedélyezett), az egyéni css használata továbbra is kockázatot jelenthet, mivel megváltoztatja a felületet",
|
||||
@@ -824,9 +824,9 @@
|
||||
"passwordStore_description": "jelszó/titkos tároló kiválasztása. Módosítsd, ha problémát tapasztalsz a jelszavak tárolásánál",
|
||||
"passwordStore": "jelszó/titkos tároló",
|
||||
"playbackStyle_optionCrossFade": "áthúzás",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"replayGainMode": "{{ReplayGain}} mód",
|
||||
"replayGainClipping_description": "A {{ReplayGain}} által okozott torzítás megelőzése az erősítés automatikus csökkentésével",
|
||||
"replayGainClipping": "{{ReplayGain}} torzítás",
|
||||
@@ -947,17 +947,17 @@
|
||||
"releaseDate": "megjelenés dátuma",
|
||||
"rowIndex": "sor index",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(common.title)",
|
||||
"titleCombined": "$t(common.title) (kombinált)",
|
||||
"trackNumber": "szám",
|
||||
"year": "$t(common.year)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "utoljára játszott",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
@@ -968,9 +968,9 @@
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"genreBadge": "$t(entity.genre_one) (jelvények)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (jelvények)",
|
||||
"image": "kép",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)"
|
||||
@@ -1013,8 +1013,8 @@
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "életrajz",
|
||||
"bitrate": "bitráta",
|
||||
"bpm": "bpm",
|
||||
@@ -1024,7 +1024,7 @@
|
||||
"dateAdded": "hozzáadva",
|
||||
"discNumber": "lemez",
|
||||
"favorite": "kedvenc",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "utoljára játszott",
|
||||
"path": "elérési út",
|
||||
"playCount": "lejátszások",
|
||||
@@ -1032,7 +1032,7 @@
|
||||
"releaseDate": "megjelenés",
|
||||
"releaseYear": "év",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "cím",
|
||||
"trackNumber": "sáv",
|
||||
"album": "album",
|
||||
|
||||
@@ -1,27 +1,40 @@
|
||||
{
|
||||
"action": {
|
||||
"editPlaylist": "modifica $t(entity.playlist_one)",
|
||||
"editPlaylist": "modifica $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "vai alla pagina",
|
||||
"clearQueue": "cancella la coda",
|
||||
"addToFavorites": "aggiungi a $t(entity.favorite_other)",
|
||||
"addToPlaylist": "aggiungi a $t(entity.playlist_one)",
|
||||
"createPlaylist": "crea $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "rimuovi da $t(entity.playlist_one)",
|
||||
"viewPlaylists": "visualizza $t(entity.playlist_other)",
|
||||
"addToFavorites": "aggiungi a $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "aggiungi a $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "crea $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "rimuovi da $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "visualizza $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "elimina $t(entity.playlist_one)",
|
||||
"deletePlaylist": "elimina $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "rimuovi dalla coda",
|
||||
"deselectAll": "deseleziona tutto",
|
||||
"setRating": "vota",
|
||||
"toggleSmartPlaylistEditor": "attiva/disattiva editor $t(entity.smartPlaylist)",
|
||||
"removeFromFavorites": "rimuovi da $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "rimuovi da $t(entity.favorite, {\"count\": 2})",
|
||||
"moveToTop": "sposta in cima",
|
||||
"moveToBottom": "sposta in fondo",
|
||||
"moveToNext": "passa al successivo",
|
||||
"openIn": {
|
||||
"lastfm": "Apri in Last.fm",
|
||||
"musicbrainz": "Apri in MusicBrainz"
|
||||
}
|
||||
},
|
||||
"addOrRemoveFromSelection": "aggiungi o rimuovi dalla selezione",
|
||||
"selectRangeOfItems": "seleziona un intervallo di elementi",
|
||||
"createRadioStation": "crea $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "rimuovi $t(entity.radioStation, {\"count\": 1})",
|
||||
"selectAll": "seleziona tutto",
|
||||
"downloadStarted": "download di {{count}} elementi iniziato",
|
||||
"moveUp": "sposta sopra",
|
||||
"moveDown": "sposta in basso",
|
||||
"holdToMoveToTop": "tieni premuto per muovere in cima",
|
||||
"holdToMoveToBottom": "tieni premuto per muoverlo in fondo",
|
||||
"moveItems": "muovi elementi",
|
||||
"shuffle": "casuale",
|
||||
"viewMore": "mostra di più"
|
||||
},
|
||||
"common": {
|
||||
"backward": "indietro",
|
||||
@@ -51,7 +64,7 @@
|
||||
"left": "sinistra",
|
||||
"save": "salva",
|
||||
"right": "destra",
|
||||
"currentSong": "$t(entity.track_one) corrente",
|
||||
"currentSong": "$t(entity.track, {\"count\": 1}) corrente",
|
||||
"trackNumber": "traccia",
|
||||
"descending": "decrescente",
|
||||
"gap": "gap",
|
||||
@@ -75,7 +88,9 @@
|
||||
"forward": "successivo",
|
||||
"delete": "elimina",
|
||||
"forceRestartRequired": "riavvia per applicare le modifiche... chiudi la notifica per riavviare",
|
||||
"setting": "impostazione",
|
||||
"setting_one": "impostazione",
|
||||
"setting_many": "impostazioni",
|
||||
"setting_other": "impostazioni",
|
||||
"version": "versione",
|
||||
"title": "titolo",
|
||||
"filter_one": "filtro",
|
||||
@@ -94,7 +109,7 @@
|
||||
"none": "nessuno",
|
||||
"menu": "menù",
|
||||
"restartRequired": "riavvio richiesto",
|
||||
"previousSong": "$t(entity.track_one) precedente",
|
||||
"previousSong": "$t(entity.track, {\"count\": 1}) precedente",
|
||||
"noResultsFromQuery": "la query non ha ritornato risultati",
|
||||
"quit": "esci",
|
||||
"expand": "espandi",
|
||||
@@ -121,7 +136,24 @@
|
||||
"trackPeak": "picco di volume del brano",
|
||||
"translation": "traduzione",
|
||||
"bitDepth": "bit depth (profondità di bit)",
|
||||
"sampleRate": "sample rate (frequenza di campionamento)"
|
||||
"sampleRate": "sample rate (frequenza di campionamento)",
|
||||
"countSelected": "{{count}} selezionati",
|
||||
"doNotShowAgain": "non mostrarlo di nuovo",
|
||||
"view": "visualizza",
|
||||
"example": "esempio",
|
||||
"externalLinks": "link esterni",
|
||||
"faster": "più rapido",
|
||||
"filter_single": "singolo",
|
||||
"noFilters": "nessun filtro configurato",
|
||||
"private": "privato",
|
||||
"public": "pubblico",
|
||||
"retry": "riprova",
|
||||
"recordLabel": "registra etichetta",
|
||||
"rename": "rinomina",
|
||||
"sort": "ordina",
|
||||
"explicit": "esplicito",
|
||||
"clean": "pulisci",
|
||||
"itemsMore": "ancora {{count}}"
|
||||
},
|
||||
"player": {
|
||||
"repeat_all": "ripeti coda",
|
||||
@@ -138,7 +170,7 @@
|
||||
"shuffle": "riproduzione casuale",
|
||||
"playbackFetchNoResults": "nessuna canzone trovata",
|
||||
"playbackFetchInProgress": "caricamento canzoni…",
|
||||
"addNext": "aggiungi successivo",
|
||||
"addNext": "successivo",
|
||||
"playbackSpeed": "velocità di riproduzione",
|
||||
"playbackFetchCancel": "ci sta mettendo un po'... chiudi la notifica per annullare",
|
||||
"play": "riproduci",
|
||||
@@ -150,18 +182,30 @@
|
||||
"queue_moveToTop": "sposta selezionati in fondo",
|
||||
"queue_moveToBottom": "sposta selezionati in cima",
|
||||
"shuffle_off": "non mescolare",
|
||||
"addLast": "aggiungi in coda",
|
||||
"addLast": "per ultima",
|
||||
"mute": "silenzia",
|
||||
"skip_forward": "salta avanti",
|
||||
"playSimilarSongs": "riproduci brani simili",
|
||||
"viewQueue": "visualizza coda"
|
||||
"viewQueue": "visualizza coda",
|
||||
"holdToShuffle": "tieni premuto per la riproduzione casuale",
|
||||
"lyrics": "testi",
|
||||
"restoreQueueFromServer": "ripristina coda dal server",
|
||||
"saveQueueToServer": "salva coda sul server",
|
||||
"trackRadio": "radio della traccia",
|
||||
"sleepTimer_minutes": "{{count}} minuti",
|
||||
"sleepTimer_hours": "{{count}} ore",
|
||||
"sleepTimer_custom": "personalizzato",
|
||||
"sleepTimer_off": "spento",
|
||||
"sleepTimer_timeRemaining": "{{time}} rimanente",
|
||||
"sleepTimer_setCustom": "imposta timer",
|
||||
"sleepTimer_cancel": "cancella timer"
|
||||
},
|
||||
"setting": {
|
||||
"crossfadeStyle_description": "seleziona lo stile dissolvenza da usare per il player audio",
|
||||
"remotePort_description": "imposta la porta del server di controllo remoto",
|
||||
"hotkey_skipBackward": "salta a precedente",
|
||||
"volumeWheelStep_description": "la quantità di volume da cambiare quando si scorre la rotellina del mouse sullo slider del volume",
|
||||
"audioDevice_description": "seleziona il device audioda usare per la riproduzione (solo web player)",
|
||||
"audioDevice_description": "seleziona il dispositivo audio da usare per la riproduzione",
|
||||
"theme_description": "imposta il tema da usare per l'applicazione",
|
||||
"hotkey_playbackPause": "pausa",
|
||||
"hotkey_volumeUp": "alza volume",
|
||||
@@ -200,11 +244,10 @@
|
||||
"hotkey_globalSearch": "ricerca globale",
|
||||
"gaplessAudio_description": "imposta l'audio gapless per mpv",
|
||||
"remoteUsername_description": "imposta l'username del server di controllo remoto. Se username e password sono vuoti, l'autenticazione sarà disattivata",
|
||||
"disableAutomaticUpdates": "disabilita aggiornamenti automatici",
|
||||
"exitToTray_description": "riduce a icona nella barra di sistema all'uscita",
|
||||
"followLyric_description": "scorre il testo alla posizione di riproduzione corrente",
|
||||
"hotkey_favoritePreviousSong": "$t(common.previousSong) preferita",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"lyricOffset": "offset testi (ms)",
|
||||
"discordUpdateInterval_description": "il tempo in secondi tra ogni aggiornamento (minimo 15 secondi)",
|
||||
"fontType_optionCustom": "font personalizzato",
|
||||
@@ -216,7 +259,7 @@
|
||||
"playbackStyle_optionCrossFade": "dissolvenza",
|
||||
"hotkey_rate3": "voto 3 stelle",
|
||||
"font": "font",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"themeLight_description": "imposta il tema chiaro da usare per l'applicazione",
|
||||
"hotkey_toggleFullScreenPlayer": "attiva/disattiva player a schermo intero",
|
||||
"hotkey_localSearch": "ricerca in-pagina",
|
||||
@@ -259,7 +302,7 @@
|
||||
"useSystemTheme_description": "segui le preferenze del tema definite dal sistema",
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"lyricFetch_description": "ottieni testi da varie sorgenti internet",
|
||||
"lyricFetchProvider_description": "seleziona i provider da dove prendere i testi. l'ordine dei provider è l'ordine in cui vengono fatte le richieste",
|
||||
"lyricFetchProvider_description": "seleziona i provider dai quali prendere i testi",
|
||||
"globalMediaHotkeys_description": "attiva/disattiva l'uso dei tasti media globali per controllare la riproduzione",
|
||||
"customFontPath": "percorso font personalizzato",
|
||||
"followLyric": "segui testo corrente",
|
||||
@@ -392,7 +435,35 @@
|
||||
"discordLinkType": "link di attività {{discord}}",
|
||||
"discordLinkType_description": "aggiunge collegamenti esterni a {{lastfm}} o {{musicbrainz}} ai campi del brano e dell'artista nell'attività {{discord}}. {{musicbrainz}} è il più accurato, ma richiede tag e non fornisce collegamenti dell'artista mentre {{lastfm}} dovrebbe sempre fornire un link. non rende richieste di rete extra",
|
||||
"discordLinkType_none": "$t(common.none)",
|
||||
"discordLinkType_mbz_lastfm": "{{musicbrainz}} con {{lastfm}} fallback"
|
||||
"discordLinkType_mbz_lastfm": "{{musicbrainz}} con {{lastfm}} fallback",
|
||||
"autoDJ": "auto DJ",
|
||||
"autoDJ_description": "aggiungi automaticamente canzoni simili alla coda",
|
||||
"autoDJ_itemCount": "conteggio elementi",
|
||||
"analyticsDisable_description": "Alcuni dati anonimi sull'utilizzo vengono inviati allo sviluppatore per migliorare l'applicazione",
|
||||
"artistBackground": "immagine dello sfondo dell'artista",
|
||||
"releaseChannel_optionBeta": "beta",
|
||||
"releaseChannel_optionLatest": "ultima",
|
||||
"releaseChannel": "canale di rilascio",
|
||||
"releaseChannel_description": "seleziona tra rilascio stabile, beta o alpha (nightly) per gli aggiornamenti automatici",
|
||||
"discordRichPresence": "{{discord}} rich presence",
|
||||
"releaseChannel_optionAlpha": "alpha (nightly)",
|
||||
"automaticUpdates_description": "Controlla e installa aggiornamenti automaticamente",
|
||||
"automaticUpdates": "Aggiornamenti automatici",
|
||||
"exportImportSettings_notValidJSON": "il file passato non è un JSON valido",
|
||||
"language": "lingua",
|
||||
"logLevel_optionDebug": "debug",
|
||||
"logLevel_optionError": "errore",
|
||||
"logLevel_optionInfo": "info",
|
||||
"pathReplace_optionRemovePrefix": "rimuovi prefisso",
|
||||
"pathReplace_optionAddPrefix": "aggiungi prefisso",
|
||||
"playerFilters": "Filtra canzoni dalla coda",
|
||||
"imageResolution_optionHeader": "header",
|
||||
"playerbarWaveformAlign_optionTop": "in cima",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "es. ^Daily Mix.*",
|
||||
"transcode": "abilita transcodifica",
|
||||
"queryBuilderCustomFields_inputLabel": "etichetta",
|
||||
"queryBuilderCustomFields_inputTag": "tag",
|
||||
"queryBuilderCustomFields": "campi personalizzati"
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "riavvia il server per applicare la nuova porta",
|
||||
@@ -418,14 +489,17 @@
|
||||
"badValue": "opzione non valida \"{{value}}\". valore inesistente",
|
||||
"networkError": "si è verificato un errore di rete",
|
||||
"openError": "impossibile aprire il file",
|
||||
"notificationDenied": "i permessi per le notifiche non sono stati concessi. questa configurazione non ha effetto"
|
||||
"notificationDenied": "i permessi per le notifiche non sono stati concessi. questa configurazione non ha effetto",
|
||||
"invalidJson": "JSON non valido",
|
||||
"noNetwork": "server non disponibile",
|
||||
"noNetworkDescription": "impossibile connettersi al server"
|
||||
},
|
||||
"filter": {
|
||||
"mostPlayed": "più riprodotti",
|
||||
"comment": "commento",
|
||||
"playCount": "numero di riproduzioni",
|
||||
"recentlyUpdated": "aggiornati recentemente",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"isCompilation": "è una compilation",
|
||||
"recentlyPlayed": "riprodotti recentemente",
|
||||
"isRated": "è valutato",
|
||||
@@ -434,17 +508,17 @@
|
||||
"rating": "voto",
|
||||
"search": "cerca",
|
||||
"bitrate": "bitrate",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"recentlyAdded": "aggiunti recentemente",
|
||||
"note": "nota",
|
||||
"name": "nome",
|
||||
"dateAdded": "data aggiunta",
|
||||
"releaseDate": "data di rilascio",
|
||||
"albumCount": "numero $t(entity.album_other)",
|
||||
"albumCount": "numero $t(entity.album, {\"count\": 2})",
|
||||
"communityRating": "voto della community",
|
||||
"path": "percorso",
|
||||
"favorited": "preferito",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "è stato recentemente riprodotto",
|
||||
"isFavorited": "è preferito",
|
||||
"bpm": "bpm",
|
||||
@@ -453,7 +527,7 @@
|
||||
"disc": "disco",
|
||||
"biography": "biografia",
|
||||
"songCount": "conteggio canzoni",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"duration": "durata",
|
||||
"isPublic": "è pubblico",
|
||||
"random": "casuale",
|
||||
@@ -461,24 +535,29 @@
|
||||
"toYear": "fino all'anno",
|
||||
"fromYear": "dall'anno",
|
||||
"criticRating": "voto della critica",
|
||||
"album": "$t(entity.album_one)",
|
||||
"trackNumber": "traccia"
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"trackNumber": "traccia",
|
||||
"matchOr": "o",
|
||||
"sortName": "ordina nome"
|
||||
},
|
||||
"page": {
|
||||
"sidebar": {
|
||||
"nowPlaying": "in riproduzione",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"myLibrary": "la mia libreria",
|
||||
"shared": "condivisa $t(entity.playlist_other)"
|
||||
"shared": "condivisa $t(entity.playlist, {\"count\": 2})",
|
||||
"collections": "collezioni",
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"config": {
|
||||
@@ -506,7 +585,7 @@
|
||||
"appMenu": {
|
||||
"selectServer": "seleziona server",
|
||||
"version": "versione {{version}}",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"manageServers": "gestisci server",
|
||||
"expandSidebar": "espandi barra laterale",
|
||||
"collapseSidebar": "collassa barra laterale",
|
||||
@@ -515,7 +594,10 @@
|
||||
"goBack": "torna indietro",
|
||||
"goForward": "vai avanti",
|
||||
"privateModeOff": "disabilita modalità privata",
|
||||
"privateModeOn": "abilita modalità privata"
|
||||
"privateModeOn": "abilita modalità privata",
|
||||
"selectMusicFolder": "seleziona cartella con musica",
|
||||
"noMusicFolder": "nessuna cartella con musica selezionata",
|
||||
"multipleMusicFolders": "{{count}} cartelle con musica selezionate"
|
||||
},
|
||||
"contextMenu": {
|
||||
"addToPlaylist": "$t(action.addToPlaylist)",
|
||||
@@ -540,8 +622,10 @@
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"shareItem": "condividi elemento",
|
||||
"showDetails": "mostra info",
|
||||
"goToAlbum": "vai a $t(entity.album_one)",
|
||||
"goToAlbumArtist": "vai a $t(entity.albumArtist_one)"
|
||||
"goToAlbum": "vai a $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "vai a $t(entity.albumArtist, {\"count\": 1})",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "vai a"
|
||||
},
|
||||
"home": {
|
||||
"mostPlayed": "più riprodotti",
|
||||
@@ -549,10 +633,11 @@
|
||||
"title": "$t(common.home)",
|
||||
"explore": "esplora dalla tua libreria",
|
||||
"recentlyPlayed": "riprodotti recentemente",
|
||||
"recentlyReleased": "appena pubblicato"
|
||||
"recentlyReleased": "appena pubblicato",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "di più da questo $t(entity.artist_one)",
|
||||
"moreFromArtist": "di più da questo $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "di più da {{item}}",
|
||||
"released": "rilasciato"
|
||||
},
|
||||
@@ -561,20 +646,33 @@
|
||||
"generalTab": "generale",
|
||||
"hotkeysTab": "tasti a scelta rapida",
|
||||
"windowTab": "finestra",
|
||||
"advanced": "avanzate"
|
||||
"advanced": "avanzate",
|
||||
"updates": "aggiorna",
|
||||
"cache": "cache",
|
||||
"application": "applicazione",
|
||||
"theme": "tema",
|
||||
"controls": "controlla",
|
||||
"remote": "remoto",
|
||||
"exportImport": "importa/esporta",
|
||||
"scrobble": "scrobble",
|
||||
"audio": "audio",
|
||||
"lyrics": "testi",
|
||||
"transcoding": "transcodifica",
|
||||
"discord": "discord",
|
||||
"lyricsDisplay": "mostra testi"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showAlbums": "mostra $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "mostra $t(entity.genre_one) $t(entity.track_other)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showAlbums": "mostra $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "mostra $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "tracce di {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -585,23 +683,26 @@
|
||||
"title": "comandi"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "albums di {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"about": "Info {{artist}}",
|
||||
"appearsOn": "compare su",
|
||||
"recentReleases": "uscite recenti",
|
||||
"viewDiscography": "mostra discografia",
|
||||
"relatedArtists": "correlati $t(entity.artist_other)",
|
||||
"relatedArtists": "correlati $t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "brani migliori",
|
||||
"topSongsFrom": "brani migliori da {{title}}",
|
||||
"viewAll": "mostra tutto",
|
||||
"viewAllTracks": "mostra tutto $t(entity.track_other)"
|
||||
"viewAllTracks": "mostra tutto $t(entity.track, {\"count\": 2})",
|
||||
"favoriteSongs": "canzoni preferite",
|
||||
"topSongsPersonal": "personale",
|
||||
"favoriteSongsFrom": "canzoni preferite da {{title}}"
|
||||
},
|
||||
"manageServers": {
|
||||
"title": "gestisci servers",
|
||||
@@ -618,20 +719,30 @@
|
||||
},
|
||||
"playlist": {
|
||||
"reorder": "riordino abilitato solo quando si ordina per id"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "stazioni radio"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "sovrascrivi esistente",
|
||||
"saveAsCollection": "salva come collezione"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "elimina $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) eliminata correttamente",
|
||||
"input_confirm": "digita il nome della $t(entity.playlist_one) per confermare"
|
||||
"title": "elimina $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) eliminata correttamente",
|
||||
"input_confirm": "digita il nome della $t(entity.playlist, {\"count\": 1}) per confermare"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "crea $t(entity.playlist_one)",
|
||||
"title": "crea $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "publico",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) creata con successo",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) creata con successo",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addServer": {
|
||||
@@ -647,13 +758,17 @@
|
||||
"ignoreCors": "ignora cors ($t(common.restartRequired))",
|
||||
"error_savePassword": "si è verificato un errore quando si è provato a salvare la password",
|
||||
"input_preferInstantMix": "preferisci mix istantaneo",
|
||||
"input_preferInstantMixDescription": "usa solo mix istantaneo per ottenere canzoni simili. utile se si dispone di plugin che modificano questo comportamento"
|
||||
"input_preferInstantMixDescription": "usa solo mix istantaneo per ottenere canzoni simili. utile se si dispone di plugin che modificano questo comportamento",
|
||||
"input_preferRemoteUrl": "preferisci url pubblico",
|
||||
"input_remoteUrl": "url pubblico"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "aggiunto $t(entity.trackWithCount, {\"count\": {{message}} }) a $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "aggiungi a $t(entity.playlist_one)",
|
||||
"title": "aggiungi a $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "salta duplicati",
|
||||
"input_playlists": "$t(entity.playlist_other)"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "crea $t(entity.playlist, {\"count\": 1})",
|
||||
"searchOrCreate": "cerca $t(entity.playlist, {\"count\": 2}) o digita per crearne una nuova"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "aggiorna server",
|
||||
@@ -662,17 +777,19 @@
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "soddisfa tutti",
|
||||
"input_optionMatchAny": "soddisfa qualsiasi",
|
||||
"title": "editor di query"
|
||||
"title": "editor di query",
|
||||
"resetToDefault": "ripristina predefinito",
|
||||
"clearFilters": "rimuovi filtri"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"title": "cerca testi"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "modifica $t(entity.playlist_one)",
|
||||
"title": "modifica $t(entity.playlist, {\"count\": 1})",
|
||||
"publicJellyfinNote": "Jellyfin non mostra se una playlist è pubblica o meno. Se vuoi che rimanga pubblica, assicurati di selezionare l’opzione seguente",
|
||||
"success": "$t(entity.playlist_one) aggiornato con successo"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) aggiornato con successo"
|
||||
},
|
||||
"shareItem": {
|
||||
"allowDownloading": "consentire il download",
|
||||
@@ -686,6 +803,27 @@
|
||||
"enabled": "la modalità privata è abilitata: lo stato di riproduzione viene ora nascosto alle integrazioni esterne",
|
||||
"disabled": "la modalità privata è disabilitata: lo stato di riproduzione è ora visibile alle integrazioni esterne abilitate",
|
||||
"title": "modalità privata"
|
||||
},
|
||||
"largeFetchConfirmation": {
|
||||
"title": "aggiungi elementi alla coda"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"success": "stazione radio creata con successo",
|
||||
"title": "crea stazione radio",
|
||||
"input_name": "nome"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "esporta testi",
|
||||
"input_synced": "esporta testi sincronizzati",
|
||||
"input_offset": "$t(setting.lyricOffset)"
|
||||
},
|
||||
"shuffleAll": {
|
||||
"input_limit": "quante canzoni?",
|
||||
"input_minYear": "dall'anno",
|
||||
"input_maxYear": "all'anno",
|
||||
"input_played_optionAll": "tutte le tracce",
|
||||
"input_played_optionUnplayed": "solo tracce non ancora riprodotte",
|
||||
"input_played_optionPlayed": "solo tracce riprodotte"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
@@ -698,12 +836,29 @@
|
||||
"size": "$t(common.size)",
|
||||
"followCurrentSong": "segui il brano corrente",
|
||||
"itemGap": "spaziatura tra gli elementi (px)",
|
||||
"itemSize": "dimensione dell’elemento (px)"
|
||||
"itemSize": "dimensione dell’elemento (px)",
|
||||
"advancedSettings": "impostazioni avanzate",
|
||||
"moveUp": "muovi sopra",
|
||||
"moveDown": "muovi sotto",
|
||||
"pinToLeft": "fissa a sinistra",
|
||||
"pinToRight": "fissa a destra",
|
||||
"alignLeft": "allinea a sinistra",
|
||||
"alignCenter": "allina al centro",
|
||||
"alignRight": "allinea a destra",
|
||||
"itemsPerRow": "elementi per riga",
|
||||
"size_default": "predefinito",
|
||||
"size_compact": "compatto",
|
||||
"size_large": "largo",
|
||||
"pagination": "paginazione",
|
||||
"pagination_itemsPerPage": "elementi per pagina",
|
||||
"pagination_infinite": "infinita",
|
||||
"pagination_paginate": "impaginato"
|
||||
},
|
||||
"view": {
|
||||
"table": "tabella",
|
||||
"grid": "griglia",
|
||||
"list": "lista"
|
||||
"list": "lista",
|
||||
"detail": "dettaglio"
|
||||
},
|
||||
"label": {
|
||||
"releaseDate": "data rilascio",
|
||||
@@ -717,23 +872,29 @@
|
||||
"trackNumber": "numero traccia",
|
||||
"rowIndex": "indice riga",
|
||||
"rating": "$t(common.rating)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"note": "$t(common.note)",
|
||||
"biography": "$t(common.biography)",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"playCount": "numero riproduzioni",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"discNumber": "numero disco",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"year": "$t(common.year)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"codec": "$t(common.codec)",
|
||||
"songCount": "$t(entity.track_other)"
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"composer": "compositore",
|
||||
"image": "immagine",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"titleArtist": "$t(common.title) (artista)"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -742,7 +903,7 @@
|
||||
"rating": "voto",
|
||||
"favorite": "preferito",
|
||||
"playCount": "riproduzioni",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"releaseYear": "anno",
|
||||
"lastPlayed": "ultima riproduzione",
|
||||
"biography": "biografia",
|
||||
@@ -751,16 +912,19 @@
|
||||
"title": "titolo",
|
||||
"bpm": "bpm",
|
||||
"dateAdded": "data aggiunta",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"trackNumber": "traccia",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"albumArtist": "artista album",
|
||||
"path": "percorso",
|
||||
"discNumber": "disco",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"size": "$t(common.size)",
|
||||
"codec": "$t(common.codec)"
|
||||
"codec": "$t(common.codec)",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"owner": "proprietario"
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
@@ -800,7 +964,7 @@
|
||||
"folder_one": "cartella",
|
||||
"folder_many": "cartelle",
|
||||
"folder_other": "cartelle",
|
||||
"smartPlaylist": "$t(entity.playlist_one) smart",
|
||||
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) smart",
|
||||
"album_one": "album",
|
||||
"album_many": "album",
|
||||
"album_other": "album",
|
||||
@@ -815,6 +979,89 @@
|
||||
"play_other": "{{count}} riproduzioni",
|
||||
"song_one": "traccia",
|
||||
"song_many": "tracce",
|
||||
"song_other": "tracce"
|
||||
"song_other": "tracce",
|
||||
"radioStation_one": "stazione radio",
|
||||
"radioStation_many": "stazioni radio",
|
||||
"radioStation_other": "stazioni radio",
|
||||
"radioStationWithCount_one": "{{count}} stazione radio",
|
||||
"radioStationWithCount_many": "{{count}} stazioni radio",
|
||||
"radioStationWithCount_other": "{{count}} stazioni radio"
|
||||
},
|
||||
"datetime": {
|
||||
"minuteShort": "m",
|
||||
"secondShort": "s",
|
||||
"hourShort": "o",
|
||||
"dayShort": "g"
|
||||
},
|
||||
"filterOperator": {
|
||||
"contains": "contiene",
|
||||
"endsWith": "finisce con",
|
||||
"inPlaylist": "è in",
|
||||
"is": "è",
|
||||
"isNot": "non è",
|
||||
"isGreaterThan": "è più grande di",
|
||||
"isLessThan": "è meno di",
|
||||
"notContains": "non contiene",
|
||||
"notInPlaylist": "non è in",
|
||||
"startsWith": "inizia con"
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "broadcast",
|
||||
"ep": "ep",
|
||||
"other": "altro",
|
||||
"single": "singolo"
|
||||
},
|
||||
"secondary": {
|
||||
"audiobook": "audiolibro",
|
||||
"audioDrama": "audio drama",
|
||||
"compilation": "compilation",
|
||||
"interview": "intervista",
|
||||
"live": "live",
|
||||
"mixtape": "mixtape",
|
||||
"remix": "remix",
|
||||
"soundtrack": "soundtrack"
|
||||
}
|
||||
},
|
||||
"queryBuilder": {
|
||||
"customTags": "tag personalizzati"
|
||||
},
|
||||
"dragDropZone": {
|
||||
"error_oneFileOnly": "Per favore seleziona solo 1 file",
|
||||
"error_readingFile": "errore nella lettura del file: {{errorMessage}}",
|
||||
"mainText": "rilascia un file qui"
|
||||
},
|
||||
"visualizer": {
|
||||
"ignoredPresets": "Preset Ignorati",
|
||||
"includeAllPresets": "Includi Tutti i Preset",
|
||||
"selectedPresets": "Preset Selezionati",
|
||||
"presets": "Preset",
|
||||
"selectPreset": "Seleziona Preset",
|
||||
"applyPreset": "Applica Preset",
|
||||
"saveAsPreset": "Salva come Preset",
|
||||
"updatePreset": "Aggiorna Preset",
|
||||
"copyConfiguration": "Copia Configurazione",
|
||||
"pasteConfiguration": "Incolla Configurazione",
|
||||
"pasteConfigurationPlaceholder": "Incolla la configurazione JSON qui...",
|
||||
"pasteFromClipboard": "Incolla dalla Clipboard",
|
||||
"applyConfiguration": "Applica Configurazione",
|
||||
"presetName": "Nome Preset",
|
||||
"presetNamePlaceholder": "Inserisci il nome del preset",
|
||||
"general": "Generale",
|
||||
"mode": "Modalità",
|
||||
"maxFPS": "Max FPS",
|
||||
"opacity": "Opacità",
|
||||
"customGradients": "Gradienti Personalizzati",
|
||||
"gradientNamePlaceholder": "Nome Gradiente",
|
||||
"vertical": "Verticale",
|
||||
"horizontal": "Orizzontale",
|
||||
"addColor": "Aggiungi Colore",
|
||||
"position": "Posizione",
|
||||
"level": "Livello",
|
||||
"remove": "Rimuovi",
|
||||
"pasteGradient": "Incolla Gradiente",
|
||||
"custom": "Personalizzato",
|
||||
"gradient": "Gradiente"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
{
|
||||
"action": {
|
||||
"createPlaylist": "$t(entity.playlist_one) 생성",
|
||||
"addToFavorites": "$t(entity.favorite_other)에 추가",
|
||||
"addToPlaylist": "$t(entity.playlist_one)에 추가",
|
||||
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) 생성",
|
||||
"addToFavorites": "$t(entity.favorite, {\"count\": 2})에 추가",
|
||||
"addToPlaylist": "$t(entity.playlist, {\"count\": 1})에 추가",
|
||||
"clearQueue": "대기열 지우기",
|
||||
"deletePlaylist": "$t(entity.playlist_one) 삭제",
|
||||
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) 삭제",
|
||||
"deselectAll": "모두 선택 해제",
|
||||
"editPlaylist": "$t(entity.playlist_one) 편집",
|
||||
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) 편집",
|
||||
"goToPage": "페이지 이동",
|
||||
"moveToBottom": "맨 아래로 이동",
|
||||
"moveToTop": "맨 위로 이동",
|
||||
"moveToNext": "다음으로 이동",
|
||||
"removeFromQueue": "대기열에서 제거",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "$t(entity.favorite_other)에서 제거",
|
||||
"removeFromPlaylist": "$t(entity.playlist_one)에서 제거",
|
||||
"removeFromFavorites": "$t(entity.favorite, {\"count\": 2})에서 제거",
|
||||
"removeFromPlaylist": "$t(entity.playlist, {\"count\": 1})에서 제거",
|
||||
"openIn": {
|
||||
"musicbrainz": "MusicBrainz에서 보기",
|
||||
"lastfm": "Last.fm에서 보기"
|
||||
},
|
||||
"viewPlaylists": "$t(entity.playlist_other) 보기",
|
||||
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) 보기",
|
||||
"setRating": "평점 지정",
|
||||
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) 편집기 펼치기",
|
||||
"addOrRemoveFromSelection": "선택항목에서 추가 또는 제거",
|
||||
"selectRangeOfItems": "항목의 범위 선택",
|
||||
"createRadioStation": "$t(entity.radioStation_one) 생성",
|
||||
"deleteRadioStation": "$t(entity.radioStation_one) 삭제",
|
||||
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) 생성",
|
||||
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) 삭제",
|
||||
"selectAll": "전부 선택",
|
||||
"downloadStarted": "{{count}}개 항목 다운로드 시작했습니다",
|
||||
"moveUp": "위로 옮기기",
|
||||
@@ -59,7 +59,7 @@
|
||||
"backward": "뒤로",
|
||||
"saveAs": "(으)로 저장하기",
|
||||
"search": "검색",
|
||||
"setting": "설정",
|
||||
"setting_other": "설정",
|
||||
"share": "공유",
|
||||
"size": "크기",
|
||||
"sortOrder": "순서",
|
||||
@@ -74,7 +74,7 @@
|
||||
"comingSoon": "조만간…",
|
||||
"configure": "설정",
|
||||
"confirm": "확인",
|
||||
"currentSong": "현재 $t(entity.track_one)",
|
||||
"currentSong": "현재 $t(entity.track, {\"count\": 1})",
|
||||
"decrease": "감소",
|
||||
"delete": "삭제",
|
||||
"descending": "내림차순",
|
||||
@@ -96,7 +96,7 @@
|
||||
"path": "경로",
|
||||
"playerMustBePaused": "플레이어가 일시정지 되어야 합니다",
|
||||
"preview": "미리보기",
|
||||
"previousSong": "이전곡 $t(entity.track_one)",
|
||||
"previousSong": "이전곡 $t(entity.track, {\"count\": 1})",
|
||||
"quit": "종료",
|
||||
"refresh": "새로고침",
|
||||
"reload": "리로드",
|
||||
@@ -168,7 +168,7 @@
|
||||
"song_other": "곡",
|
||||
"play_other": "{{count}} 재생",
|
||||
"playlistWithCount_other": "{{count}} 재생목록",
|
||||
"smartPlaylist": "스마트 $t(entity.playlist_one)",
|
||||
"smartPlaylist": "스마트 $t(entity.playlist, {\"count\": 1})",
|
||||
"track_other": "트랙",
|
||||
"radioStation_other": "라디오 방송국",
|
||||
"radioStationWithCount_other": "{{count}}개 라디오 방송국"
|
||||
@@ -214,9 +214,9 @@
|
||||
"dateAdded": "추가된 날짜",
|
||||
"lastPlayed": "마지막으로 재생한",
|
||||
"mostPlayed": "가장 많이 재생한",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"communityRating": "커뮤니티 평점",
|
||||
"criticRating": "비평가 평점",
|
||||
"disc": "디스크",
|
||||
@@ -225,11 +225,11 @@
|
||||
"channels": "$t(common.channel_other)",
|
||||
"duration": "길이",
|
||||
"bpm": "bpm",
|
||||
"albumCount": "$t(entity.album_other) 앨범수",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) 앨범수",
|
||||
"comment": "코멘트",
|
||||
"favorited": "즐겨찾기",
|
||||
"fromYear": "시작 년도",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"id": "아이디",
|
||||
"isCompilation": "편집앨범 여부",
|
||||
"isFavorited": "즐겨찾기 여부",
|
||||
@@ -262,16 +262,16 @@
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_skipDuplicates": "중복 건너뛰기",
|
||||
"title": "$t(entity.playlist_one) 에 추가",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) 에 추가",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"success": "$t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })에 $t(entity.trackWithCount, {\"count\": {{message}} })가 추가되었습니다",
|
||||
"create": "$t(entity.playlist_one) {{playlist}} 생성",
|
||||
"searchOrCreate": "$t(entity.playlist_other) 검색 또는 입력하여 새로 만들기"
|
||||
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} 생성",
|
||||
"searchOrCreate": "$t(entity.playlist, {\"count\": 2}) 검색 또는 입력하여 새로 만들기"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"title": "가사 검색",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)"
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})"
|
||||
},
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "모두 일치",
|
||||
@@ -279,9 +279,9 @@
|
||||
"title": "쿼리 편집기"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "$t(entity.playlist_one) 편집",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) 편집",
|
||||
"publicJellyfinNote": "Jellyfin은 재생목록 공개 여부를 노출하지 않습니다. 만약 공개되길 원한다면 다음을 선택하세요",
|
||||
"success": "$t(entity.playlist_one) 업데이트 되었습니다"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) 업데이트 되었습니다"
|
||||
},
|
||||
"shareItem": {
|
||||
"allowDownloading": "다운로드 허용",
|
||||
@@ -298,15 +298,15 @@
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one)를 생성했습니다",
|
||||
"success": "$t(entity.playlist, {\"count\": 1})를 생성했습니다",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "공개",
|
||||
"title": "$t(entity.playlist_one) 생성"
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) 생성"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "확인을 위해 $t(entity.playlist_one)의 이름을 적어주세요",
|
||||
"success": "$t(entity.playlist_one)가 삭제되었습니다",
|
||||
"title": "$t(entity.playlist_one) 삭제"
|
||||
"input_confirm": "확인을 위해 $t(entity.playlist, {\"count\": 1})의 이름을 적어주세요",
|
||||
"success": "$t(entity.playlist, {\"count\": 1})가 삭제되었습니다",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) 삭제"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "프라이빗 모드가 활성화되었습니다. 재생상태가 외부 서비스에 지금부터 노출되지 않습니다",
|
||||
@@ -362,8 +362,8 @@
|
||||
"download": "다운로드",
|
||||
"numberSelected": "{{count}}개 선택됨",
|
||||
"shareItem": "공유",
|
||||
"goToAlbum": "$t(entity.album_one)으로 이동",
|
||||
"goToAlbumArtist": "$t(entity.albumArtist_one)으로 이동",
|
||||
"goToAlbum": "$t(entity.album, {\"count\": 1})으로 이동",
|
||||
"goToAlbumArtist": "$t(entity.albumArtist, {\"count\": 1})으로 이동",
|
||||
"showDetails": "추가정보"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
@@ -371,17 +371,17 @@
|
||||
"viewDiscography": "디스코그래피 보기",
|
||||
"appearsOn": "참여 앨범",
|
||||
"recentReleases": "최근 앨범",
|
||||
"relatedArtists": "연관 $t(entity.artist_other)",
|
||||
"relatedArtists": "연관 $t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "최고의 곡들",
|
||||
"topSongsFrom": "{{title}}이 포함된 최고의 곡들",
|
||||
"viewAll": "전부 보이기",
|
||||
"viewAllTracks": "$t(entity.track_other) 전부 보이기"
|
||||
"viewAllTracks": "$t(entity.track, {\"count\": 2}) 전부 보이기"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "$t(entity.artist_one) 더 보기",
|
||||
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) 더 보기",
|
||||
"moreFromGeneric": "{{item}} 더 보기",
|
||||
"released": "발매"
|
||||
},
|
||||
@@ -389,8 +389,8 @@
|
||||
"artistAlbums": "{{artist}}의 앨범"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "$t(entity.genre_one) $t(entity.album_other) 표시",
|
||||
"showTracks": "$t(entity.genre_one) $t(entity.track_other) 표시"
|
||||
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) 표시",
|
||||
"showTracks": "$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2}) 표시"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -425,7 +425,7 @@
|
||||
"sidebar": {
|
||||
"myLibrary": "내 라이브러리",
|
||||
"nowPlaying": "재생중",
|
||||
"shared": "공유 $t(entity.playlist_other)"
|
||||
"shared": "공유 $t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "{{artist}}의 음악"
|
||||
|
||||
@@ -5,23 +5,39 @@
|
||||
"musicbrainz": "Åpne i MusicBrainz"
|
||||
},
|
||||
"moveToBottom": "flytt til bunnen",
|
||||
"deletePlaylist": "slett $t(entity.playlist_one)",
|
||||
"deletePlaylist": "slett $t(entity.playlist, {\"count\": 1})",
|
||||
"deselectAll": "avmarker alle",
|
||||
"editPlaylist": "rediger $t(entity.playlist_one)",
|
||||
"addToFavorites": "legg til $t(entity.favorite_other)",
|
||||
"addToPlaylist": "legg til $t(entity.playlist_one)",
|
||||
"editPlaylist": "rediger $t(entity.playlist, {\"count\": 1})",
|
||||
"addToFavorites": "legg til $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "legg til $t(entity.playlist, {\"count\": 1})",
|
||||
"clearQueue": "tøm kø",
|
||||
"createPlaylist": "opprett $t(entity.playlist_one)",
|
||||
"createPlaylist": "opprett $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "gå til side",
|
||||
"moveToTop": "flytt til toppen",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "fjern fra $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "fjern fra $t(entity.favorite, {\"count\": 2})",
|
||||
"moveToNext": "flytt til neste",
|
||||
"setRating": "angi vurdering",
|
||||
"removeFromQueue": "fjern fra kø",
|
||||
"removeFromPlaylist": "fjern fra $t(entity.playlist_one)",
|
||||
"viewPlaylists": "vise $t(entity.playlist_other)",
|
||||
"toggleSmartPlaylistEditor": "bytt $t(entity.smartPlaylist) editor"
|
||||
"removeFromPlaylist": "fjern fra $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "vise $t(entity.playlist, {\"count\": 2})",
|
||||
"toggleSmartPlaylistEditor": "bytt $t(entity.smartPlaylist) editor",
|
||||
"selectAll": "marker alle",
|
||||
"downloadStarted": "startet nedlasting av {{count}} elementer",
|
||||
"selectRangeOfItems": "velg en rekke elementer",
|
||||
"addOrRemoveFromSelection": "legge til eller fjerne fra utvalg",
|
||||
"moveUp": "flytt opp",
|
||||
"moveDown": "flytt ned",
|
||||
"createRadioStation": "opprett $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "slett $t(entity.radioStation, {\"count\": 1})",
|
||||
"holdToMoveToTop": "hold nede for å gå til toppen",
|
||||
"holdToMoveToBottom": "hold nede for å gå til bunnen",
|
||||
"moveItems": "flytt elementer",
|
||||
"shuffle": "tilfeldig avspilling",
|
||||
"shuffleAll": "tilfelding avspilling av alt",
|
||||
"shuffleSelected": "tilfelding avspilling av utvalgte",
|
||||
"viewMore": "se mer",
|
||||
"openApplicationDirectory": "åpne applikasjonskatalogen"
|
||||
},
|
||||
"common": {
|
||||
"bpm": "bpm",
|
||||
@@ -31,7 +47,7 @@
|
||||
"collapse": "slå sammen",
|
||||
"configure": "konfigurer",
|
||||
"confirm": "bekreft",
|
||||
"currentSong": "gjeldende $t(entity.track_one)",
|
||||
"currentSong": "gjeldende $t(entity.track, {\"count\": 1})",
|
||||
"version": "versjon",
|
||||
"areYouSure": "er du sikker?",
|
||||
"ascending": "stigende",
|
||||
@@ -50,8 +66,8 @@
|
||||
"expand": "utvid",
|
||||
"favorite": "favoritt",
|
||||
"filters": "filter",
|
||||
"forceRestartRequired": "ta omstart for å la endringene trå i kraft... lukk meldingen for å ta omstart",
|
||||
"forward": "fremover",
|
||||
"forceRestartRequired": "ta omstart for å aktivere endringene... lukk meldingen for å ta omstart",
|
||||
"forward": "framover",
|
||||
"gap": "avstand",
|
||||
"home": "hjem",
|
||||
"increase": "øke",
|
||||
@@ -69,7 +85,7 @@
|
||||
"owner": "eier",
|
||||
"playerMustBePaused": "spilleren må settes på pause",
|
||||
"path": "sti",
|
||||
"previousSong": "forrige $t(entity.track_one)",
|
||||
"previousSong": "forrige $t(entity.track, {\"count\": 1})",
|
||||
"refresh": "frisk opp",
|
||||
"rating": "vurdering",
|
||||
"random": "vilkårlig",
|
||||
@@ -87,7 +103,8 @@
|
||||
"share": "del",
|
||||
"quit": "avslutt",
|
||||
"size": "størrelse",
|
||||
"setting": "innstilling",
|
||||
"setting_one": "innstilling",
|
||||
"setting_other": "innstillinger",
|
||||
"trackNumber": "spor",
|
||||
"title": "tittel",
|
||||
"channel_one": "kanal",
|
||||
@@ -118,10 +135,34 @@
|
||||
"albumGain": "gjennomsnittlig lydnivå for album",
|
||||
"albumPeak": "høyeste lydnivå for album",
|
||||
"bitDepth": "bitdybde",
|
||||
"sampleRate": "samplingsfrekvens"
|
||||
"sampleRate": "samplingsfrekvens",
|
||||
"countSelected": "{{count}} valgt",
|
||||
"doNotShowAgain": "ikke vis dette igjen",
|
||||
"view": "vis",
|
||||
"example": "eksempel",
|
||||
"externalLinks": "eksterne lenker",
|
||||
"faster": "raskere",
|
||||
"filter_single": "enkelt",
|
||||
"filter_multiple": "flerfoldige",
|
||||
"mood": "humør",
|
||||
"noFilters": "ingen filtre konfigurert",
|
||||
"private": "privat",
|
||||
"public": "offentlig",
|
||||
"retry": "prøv igjen",
|
||||
"recordLabel": "plateselskap",
|
||||
"releaseType": "utgivelsestype",
|
||||
"rename": "gi nytt navn",
|
||||
"slower": "saktere",
|
||||
"sort": "sorter",
|
||||
"explicit": "grov",
|
||||
"clean": "ren",
|
||||
"gridRows": "rutenettrader",
|
||||
"tableColumns": "tabellkolonner",
|
||||
"itemsMore": "{{count}} fler",
|
||||
"explicitStatus": "grovhetsstatus"
|
||||
},
|
||||
"entity": {
|
||||
"smartPlaylist": "smart $t(entity.playlist_one)",
|
||||
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
|
||||
"album_one": "album",
|
||||
"album_other": "album",
|
||||
"albumArtist_one": "albumartist",
|
||||
@@ -155,7 +196,11 @@
|
||||
"artist_one": "artist",
|
||||
"artist_other": "artister",
|
||||
"song_one": "sang",
|
||||
"song_other": "sanger"
|
||||
"song_other": "sanger",
|
||||
"radioStation_one": "radiostasjon",
|
||||
"radioStation_other": "radiostasjoner",
|
||||
"radioStationWithCount_one": "{{count}} radiostasjon",
|
||||
"radioStationWithCount_other": "{{count}} radiostasjoner"
|
||||
},
|
||||
"error": {
|
||||
"apiRouteError": "kan ikke behandle forespørselen",
|
||||
@@ -165,23 +210,30 @@
|
||||
"endpointNotImplementedError": "endepunkt {{endpoint}} er ikke implementert for {{serverType}}",
|
||||
"credentialsRequired": "innloggingsdetaljer er påkrevd",
|
||||
"genericError": "en feil har oppstått",
|
||||
"invalidServer": "ugyldig server",
|
||||
"invalidServer": "ugyldig tjener",
|
||||
"playbackError": "et problem oppstod ved avspilling av media",
|
||||
"localFontAccessDenied": "ingen tilgang til lokale skrifttyper",
|
||||
"loginRateError": "for mange innloggingsforsøk, vennligst prøv igjen om noen få sekunder",
|
||||
"audioDeviceFetchError": "en feil oppstod ved innhenting av lydenheter",
|
||||
"networkError": "at nettverksproblem har oppstått",
|
||||
"networkError": "det har oppstått et nettverksproblem",
|
||||
"openError": "kunne ikke åpne fil",
|
||||
"serverNotSelectedError": "ingen server er valgt",
|
||||
"serverNotSelectedError": "ingen tjener er valgt",
|
||||
"remotePortError": "et problem oppstod med å sette serverport",
|
||||
"systemFontError": "et problem oppstod med innlasting av systemskrifttyper",
|
||||
"serverRequired": "server er påkrevd",
|
||||
"serverRequired": "tjener er påkrevd",
|
||||
"sessionExpiredError": "sesjonen din har utløpt",
|
||||
"remotePortWarning": "ta omstart av serveren for å aktivere ny port",
|
||||
"remoteDisableError": "en problem oppstod ved å $t(common.disable) serveren",
|
||||
"remoteEnableError": "et problem oppstod ved å $t(common.enable) serveren",
|
||||
"notificationDenied": "tillatelser for varsler ble avvist. Denne innstillingen har ingen effekt",
|
||||
"badValue": "ugyldig alternativ \"{{value}}\". Denne verdien eksisterer ikke lenger"
|
||||
"badValue": "ugyldig alternativ \"{{value}}\". Denne verdien eksisterer ikke lenger",
|
||||
"noNetwork": "tjener utilgjengelig",
|
||||
"noNetworkDescription": "kunne ikke koble til tjeneren",
|
||||
"invalidJson": "ugyldig JSON",
|
||||
"saveQueueFailed": "kunne ikke lagre kø",
|
||||
"multipleServerSaveQueueError": "Spillekøen har en eller flere sanger som ikke finnes på gjeldene tjener. Dette er ikke støttet",
|
||||
"serverLockSingleServer": "kun én tjener er tillatt når tjener er låst",
|
||||
"settingsSyncError": "avvik ble funnet mellom innstillinger i avspilleren og hovedprosessen. ta en omstart av applikasjonen for å aktivere endringene"
|
||||
},
|
||||
"filter": {
|
||||
"bpm": "bpm",
|
||||
@@ -189,10 +241,10 @@
|
||||
"id": "id",
|
||||
"name": "navn",
|
||||
"bitrate": "bithastighet",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biografi",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"duration": "lengde",
|
||||
"favorited": "merket som favoritt",
|
||||
"comment": "kommentar",
|
||||
@@ -222,22 +274,26 @@
|
||||
"isCompilation": "er samling",
|
||||
"isFavorited": "er merket som favoritt",
|
||||
"recentlyAdded": "nylig lagt til",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"trackNumber": "spor",
|
||||
"albumCount": "$t(entity.album_other) opptelling"
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) opptelling",
|
||||
"matchAnd": "og",
|
||||
"matchOr": "eller",
|
||||
"sortName": "sorter navn",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
},
|
||||
"form": {
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "offentlig",
|
||||
"title": "opprett $t(entity.playlist_one)",
|
||||
"title": "opprett $t(entity.playlist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) opprettet"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) opprettet"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "sangtekstsøk"
|
||||
},
|
||||
@@ -252,22 +308,27 @@
|
||||
"input_legacyAuthentication": "aktiver tradisjonell autentisering",
|
||||
"input_name": "servernavn",
|
||||
"title": "legg til server",
|
||||
"input_password": "passord"
|
||||
"input_password": "passord",
|
||||
"input_preferInstantMix": "foretrekk øyeblikkelig miks",
|
||||
"input_preferInstantMixDescription": "bruk bare øyeblikkelig miks for innhenting av lignende sanger. nyttig hvis du har tilleggsmoduler som endrer funksjonaliteten",
|
||||
"input_preferRemoteUrl": "foretrekk offentlig url",
|
||||
"input_remoteUrl": "offentlig url",
|
||||
"input_remoteUrlPlaceholder": "valgfritt: offentlig nettadresse for eksterne funksjoner"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "la $t(entity.trackWithCount, {\"count\": {{message}} }) til $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "legg til i $t(entity.playlist_one)",
|
||||
"title": "legg til i $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "hopp over duplikater",
|
||||
"input_playlists": "$t(entity.playlist_other)"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"title": "slett $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) er slettet",
|
||||
"input_confirm": "skrive inn navnet på $t(entity.playlist_one) for å bekrefte"
|
||||
"title": "slett $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) er slettet",
|
||||
"input_confirm": "skrive inn navnet på $t(entity.playlist, {\"count\": 1}) for å bekrefte"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "rediger $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) er oppdatert"
|
||||
"title": "rediger $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) er oppdatert"
|
||||
},
|
||||
"shareItem": {
|
||||
"allowDownloading": "tillat nedlasting",
|
||||
@@ -284,7 +345,29 @@
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "match alle",
|
||||
"input_optionMatchAny": "matche hvilken som helst",
|
||||
"title": "redigeringsverktøy for spørringer"
|
||||
"title": "redigeringsverktøy for spørringer",
|
||||
"addRuleGroup": "legg til regelgruppe",
|
||||
"removeRuleGroup": "fjern regelgruppe",
|
||||
"resetToDefault": "tilbakestill til standard",
|
||||
"clearFilters": "tøm filter"
|
||||
},
|
||||
"largeFetchConfirmation": {
|
||||
"title": "legg til elementer i køen",
|
||||
"description": "Denne handlingen vil legge alle elementene til den gjeldende filtervisningen"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"success": "vellykket opprettelse av radiostasjon",
|
||||
"title": "opprett radiostasjon",
|
||||
"input_homepageUrl": "hjemmesidelenke",
|
||||
"input_name": "navn",
|
||||
"input_streamUrl": "strømmelenke"
|
||||
},
|
||||
"saveQueue": {
|
||||
"success": "lagre spillekø på tjener"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "eksporter sangtekster",
|
||||
"input_synced": "eksporter sunkroniserte sangtekster"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
@@ -296,7 +379,7 @@
|
||||
"manageServers": "administrere servere",
|
||||
"goBack": "gå tilbake",
|
||||
"openBrowserDevtools": "åpne utviklingsverktøy i nettleser",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"expandSidebar": "utvid sidefelt",
|
||||
"goForward": "gå fremover"
|
||||
},
|
||||
@@ -329,22 +412,22 @@
|
||||
"viewDiscography": "se diskografi",
|
||||
"recentReleases": "nylige utgivelser",
|
||||
"topSongsFrom": "beste sanger fra {{title}}",
|
||||
"viewAllTracks": "se alle $t(entity.track_other)",
|
||||
"viewAllTracks": "se alle $t(entity.track, {\"count\": 2})",
|
||||
"viewAll": "se alle",
|
||||
"about": "Om {{artist}}",
|
||||
"appearsOn": "opptrer på",
|
||||
"relatedArtists": "relatert $t(entity.artist_other)"
|
||||
"relatedArtists": "relatert $t(entity.artist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"artistAlbums": "album av {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
|
||||
"title": "$t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "mer fra denne $t(entity.artist_one)",
|
||||
"moreFromArtist": "mer fra denne $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "mer fra {{item}}",
|
||||
"released": "utgitt"
|
||||
},
|
||||
@@ -372,9 +455,9 @@
|
||||
"related": "relatert"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showAlbums": "vis $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "vis $t(entity.genre_one) $t(entity.track_other)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showAlbums": "vis $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "vis $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"title": "kommandoer",
|
||||
@@ -405,23 +488,23 @@
|
||||
"copyPath": "kopier stien til utklippstavlen"
|
||||
},
|
||||
"trackList": {
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track_other)",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "spor fra {{artist}}"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"nowPlaying": "spilles nå",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "delt $t(entity.playlist_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "delte $t(entity.playlist, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"myLibrary": "mitt bibliotek"
|
||||
},
|
||||
"setting": {
|
||||
@@ -432,7 +515,7 @@
|
||||
"windowTab": "vindu"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"playlist": {
|
||||
"reorder": "omorganisering kun mulig ved sortering på id"
|
||||
@@ -500,7 +583,15 @@
|
||||
"general": {
|
||||
"autoFitColumns": "automatisk kolonnetilpasning",
|
||||
"displayType": "visningstype",
|
||||
"followCurrentSong": "følg gjeldende sang"
|
||||
"followCurrentSong": "følg gjeldende sang",
|
||||
"advancedSettings": "avanserte innstillinger",
|
||||
"moveUp": "flytt opp",
|
||||
"moveDown": "flytt ned",
|
||||
"pinToLeft": "fest til venstre",
|
||||
"pinToRight": "fest til høyre",
|
||||
"alignLeft": "venstrejuster",
|
||||
"alignCenter": "midtjuster",
|
||||
"alignRight": "høyrejuster"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -518,7 +609,46 @@
|
||||
"rating": "vurdering",
|
||||
"releaseDate": "utgivelsesdato",
|
||||
"title": "tittel",
|
||||
"trackNumber": "spor"
|
||||
"trackNumber": "spor",
|
||||
"owner": "eier"
|
||||
}
|
||||
},
|
||||
"filterOperator": {
|
||||
"after": "er etter",
|
||||
"afterDate": "er etter (date)",
|
||||
"before": "er før",
|
||||
"beforeDate": "er før (date)",
|
||||
"contains": "inneholder",
|
||||
"endsWith": "ender med",
|
||||
"inPlaylist": "er inne i",
|
||||
"inTheLast": "er inne i de siste",
|
||||
"inTheRange": "er innenfor området",
|
||||
"isGreaterThan": "er større enn",
|
||||
"isLessThan": "er mindre enn",
|
||||
"matchesRegex": "samsvarer med regex",
|
||||
"notContains": "inneholder ikke",
|
||||
"notInPlaylist": "er ikke med i",
|
||||
"notInTheLast": "er ikke med i de siste",
|
||||
"startsWith": "starter med",
|
||||
"inTheRangeDate": "er innenfor området (date)",
|
||||
"is": "er",
|
||||
"isNot": "er ikke"
|
||||
},
|
||||
"datetime": {
|
||||
"minuteShort": "m",
|
||||
"secondShort": "s",
|
||||
"hourShort": "h",
|
||||
"dayShort": "d"
|
||||
},
|
||||
"visualizer": {
|
||||
"options": {
|
||||
"weightingFilter": {
|
||||
"a": "A",
|
||||
"b": "B",
|
||||
"c": "C",
|
||||
"d": "D",
|
||||
"z": "Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
{
|
||||
"action": {
|
||||
"editPlaylist": "pas $t(entity.playlist_one) aan",
|
||||
"editPlaylist": "pas $t(entity.playlist, {\"count\": 1}) aan",
|
||||
"goToPage": "ga naar pagina",
|
||||
"moveToTop": "verplaats naar begin",
|
||||
"addToFavorites": "toevoegen aan $t(entity.favorite_other)",
|
||||
"addToPlaylist": "toevoegen aan $t(entity.playlist_one)",
|
||||
"createPlaylist": "maak $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "verwijder uit $t(entity.playlist_one)",
|
||||
"viewPlaylists": "bekijk $t(entity.playlist_other)",
|
||||
"addToFavorites": "toevoegen aan $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "toevoegen aan $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "maak $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "verwijder uit $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "bekijk $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "verwijder $t(entity.playlist_one)",
|
||||
"deletePlaylist": "verwijder $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "verwijder uit wachtrij",
|
||||
"deselectAll": "deselecteer alles",
|
||||
"moveToBottom": "verplaats naar einde",
|
||||
"setRating": "kies beoordeling",
|
||||
"toggleSmartPlaylistEditor": "editor $t(entity.smartPlaylist) schakelen",
|
||||
"removeFromFavorites": "verwijder uit $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "verwijder uit $t(entity.favorite, {\"count\": 2})",
|
||||
"clearQueue": "verwijder lijst",
|
||||
"openIn": {
|
||||
"lastfm": "Open in Last.fm",
|
||||
@@ -30,8 +30,8 @@
|
||||
"viewMore": "bekijk meer",
|
||||
"addOrRemoveFromSelection": "toevoegen aan of verwijderen uit selectie",
|
||||
"selectRangeOfItems": "selecteer een reeks van nummers",
|
||||
"createRadioStation": "maak $t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "verwijder $t(entity.radioStation_one)",
|
||||
"createRadioStation": "maak $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "verwijder $t(entity.radioStation, {\"count\": 1})",
|
||||
"selectAll": "selecteer alles",
|
||||
"moveUp": "verplaats omhoog",
|
||||
"moveDown": "verplaats omlaag",
|
||||
@@ -48,7 +48,7 @@
|
||||
"edit": "aanpassen",
|
||||
"favorite": "favoriet",
|
||||
"left": "links",
|
||||
"currentSong": "huidig $t(entity.track_one)",
|
||||
"currentSong": "huidig $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "samenvouwen",
|
||||
"descending": "aflopend",
|
||||
"add": "toevoegen",
|
||||
@@ -92,7 +92,7 @@
|
||||
"disable": "deactiveren",
|
||||
"none": "geen",
|
||||
"menu": "menu",
|
||||
"previousSong": "vorige $t(entity.track_one)",
|
||||
"previousSong": "vorige $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "de zoekopdracht leverde geen resultaten op",
|
||||
"quit": "sluiten",
|
||||
"expand": "vergroten",
|
||||
@@ -118,7 +118,8 @@
|
||||
"yes": "ja",
|
||||
"size": "grootte",
|
||||
"reload": "herlaad",
|
||||
"setting": "instelling",
|
||||
"setting_one": "instelling",
|
||||
"setting_other": "instellingen",
|
||||
"close": "sluiten",
|
||||
"additionalParticipants": "andere deelnemers",
|
||||
"newVersion": "een nieuwe versie is geïnstalleerd ({{version}})",
|
||||
@@ -155,7 +156,10 @@
|
||||
"noFilters": "geen filters ingesteld",
|
||||
"example": "voorbeeld",
|
||||
"mood": "stemming",
|
||||
"retry": "opnieuw proberen"
|
||||
"retry": "opnieuw proberen",
|
||||
"filter_single": "single",
|
||||
"rename": "hernoemen",
|
||||
"filter_multiple": "meerdere"
|
||||
},
|
||||
"filter": {
|
||||
"rating": "rating",
|
||||
@@ -165,34 +169,34 @@
|
||||
"comment": "commentaar",
|
||||
"playCount": "aantal keer afgespeeld",
|
||||
"recentlyUpdated": "recentelijk geüpdate",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"isCompilation": "is compilatie",
|
||||
"recentlyPlayed": "recentelijk afgespeeld",
|
||||
"isRated": "is rated",
|
||||
"owner": "$t(common.owner)",
|
||||
"bitrate": "bitrate",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"recentlyAdded": "recentelijk toegevoegd",
|
||||
"note": "notitie",
|
||||
"name": "naam",
|
||||
"dateAdded": "datum toegevoegd",
|
||||
"albumCount": "$t(entity.album_other) totaal",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) totaal",
|
||||
"path": "pad",
|
||||
"favorited": "favoriet",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "is recentelijk afgespeeld",
|
||||
"isFavorited": "is favoriet",
|
||||
"bpm": "bpm",
|
||||
"id": "id",
|
||||
"disc": "disk",
|
||||
"biography": "biografie",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"duration": "duratie",
|
||||
"isPublic": "is publiek",
|
||||
"random": "willekeurig",
|
||||
"lastPlayed": "laatst gespeeld",
|
||||
"fromYear": "van jaar",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"title": "titel",
|
||||
"search": "zoeken",
|
||||
"releaseDate": "releasedatum",
|
||||
@@ -200,7 +204,10 @@
|
||||
"songCount": "aantal nummers",
|
||||
"toYear": "tot jaar",
|
||||
"trackNumber": "track",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"sortName": "sorteernaam",
|
||||
"matchAnd": "en",
|
||||
"matchOr": "of"
|
||||
},
|
||||
"page": {
|
||||
"contextMenu": {
|
||||
@@ -222,8 +229,8 @@
|
||||
"removeFromQueue": "$t(action.removeFromQueue)",
|
||||
"download": "download",
|
||||
"shareItem": "deel item",
|
||||
"goToAlbum": "ga naar $t(entity.album_one)",
|
||||
"goToAlbumArtist": "ga naar $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "ga naar $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "ga naar $t(entity.albumArtist, {\"count\": 1})",
|
||||
"showDetails": "haal info op",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
@@ -234,10 +241,10 @@
|
||||
"appMenu": {
|
||||
"selectServer": "selecteer server",
|
||||
"version": "versie {{version}}",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"manageServers": "beheer servers",
|
||||
"expandSidebar": "sidebar uitklappen",
|
||||
"collapseSidebar": "sidebar inklappen",
|
||||
"expandSidebar": "zijbalk uitklappen",
|
||||
"collapseSidebar": "zijbalk inklappen",
|
||||
"openBrowserDevtools": "open browser devtools",
|
||||
"quit": "$t(common.quit)",
|
||||
"goBack": "terug",
|
||||
@@ -250,7 +257,7 @@
|
||||
"commandPalette": "open opdrachtvenster"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "meer van deze $t(entity.artist_one)",
|
||||
"moreFromArtist": "meer van deze $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "meer van {{item}}",
|
||||
"released": "uitgebracht"
|
||||
},
|
||||
@@ -278,25 +285,29 @@
|
||||
"visualizer": "visualizer"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "albums van {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"about": "Over {{artist}}",
|
||||
"appearsOn": "verschijnt op",
|
||||
"viewDiscography": "bekijk discografie",
|
||||
"relatedArtists": "gerelateerd $t(entity.artist_other)",
|
||||
"relatedArtists": "gerelateerd $t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "top nummers",
|
||||
"topSongsFrom": "top nummers van {{title}}",
|
||||
"viewAll": "bekijk alle",
|
||||
"viewAllTracks": "bekijk alle $t(entity.track_other)",
|
||||
"viewAllTracks": "bekijk alle $t(entity.track, {\"count\": 2})",
|
||||
"recentReleases": "recente uitgaven",
|
||||
"groupingTypeAll": "alle soorten publicaties",
|
||||
"groupingTypePrimary": "primaire publicatiesoorten"
|
||||
"groupingTypePrimary": "primaire publicatiesoorten",
|
||||
"favoriteSongs": "favoriete nummers",
|
||||
"topSongsCommunity": "community",
|
||||
"topSongsPersonal": "persoonlijk",
|
||||
"favoriteSongsFrom": "favoriete nummers van {{title}}"
|
||||
},
|
||||
"manageServers": {
|
||||
"title": "beheer servers",
|
||||
@@ -307,9 +318,9 @@
|
||||
"removeServer": "verwijder server"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "toon $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "toon $t(entity.genre_one) $t(entity.track_other)",
|
||||
"title": "$t(entity.genre_other)"
|
||||
"showAlbums": "toon $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "toon $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -326,10 +337,10 @@
|
||||
"recentlyPlayed": "recent afgespeeld",
|
||||
"recentlyReleased": "recent uitgekomen",
|
||||
"title": "$t(common.home)",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copyPath": "kopieer pad naar klembord",
|
||||
@@ -340,7 +351,7 @@
|
||||
"reorder": "herschikken is alleen ingeschakeld wanneer er op ID wordt gestorteerd"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"advanced": "geavanceerd",
|
||||
@@ -368,32 +379,46 @@
|
||||
"playerFilters": "spelerfilters"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"myLibrary": "mijn bibliotheek",
|
||||
"nowPlaying": "nu aan het spelen",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "$t(entity.playlist_other) gedeeld",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "$t(entity.playlist, {\"count\": 2}) gedeeld",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})",
|
||||
"collections": "verzamelingen"
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "nummers van {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "radiostations"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(Gepauzeerd) ",
|
||||
"privateMode": "(Privémodus)"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "bestaande overschrijven",
|
||||
"saveAsCollection": "sla op als verzameling"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "commits sinds {{stable}}",
|
||||
"noNewCommits": "geen nieuwe commits in dit bereik",
|
||||
"noStableReleaseToCompare": "geen stabiele uitgave beschikbaar om mee te vergelijken"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
@@ -425,7 +450,9 @@
|
||||
"noNetwork": "server niet beschikbaar",
|
||||
"noNetworkDescription": "kan geen verbinding maken met deze server",
|
||||
"saveQueueFailed": "kan wachtrij niet opslaan",
|
||||
"settingsSyncError": "Er zijn verschillen gevonden tussen de instellingen in de renderer en het hoofdproces. Start de applicatie opnieuw op om de wijzigingen toe te passen"
|
||||
"settingsSyncError": "Er zijn verschillen gevonden tussen de instellingen in de renderer en het hoofdproces. Start de applicatie opnieuw op om de wijzigingen toe te passen",
|
||||
"invalidJson": "ongeldige JSON",
|
||||
"serverLockSingleServer": "slechts één server is toegestaan als server op slot is gezet"
|
||||
},
|
||||
"entity": {
|
||||
"genre_one": "genre",
|
||||
@@ -438,12 +465,12 @@
|
||||
"artist_other": "artiesten",
|
||||
"folderWithCount_one": "{{count}} folder",
|
||||
"folderWithCount_other": "{{count}} folders",
|
||||
"albumArtist_one": "album artiest",
|
||||
"albumArtist_other": "album artiesten",
|
||||
"albumArtist_one": "albumartiest",
|
||||
"albumArtist_other": "albumartiesten",
|
||||
"track_one": "track",
|
||||
"track_other": "tracks",
|
||||
"albumArtistCount_one": "{{count}} album artiest",
|
||||
"albumArtistCount_other": "{{count}} album artiesten",
|
||||
"albumArtistCount_one": "{{count}} albumartiest",
|
||||
"albumArtistCount_other": "{{count}} albumartiesten",
|
||||
"albumWithCount_one": "{{count}} album",
|
||||
"albumWithCount_other": "{{count}} albums",
|
||||
"favorite_one": "favoriet",
|
||||
@@ -452,7 +479,7 @@
|
||||
"artistWithCount_other": "{{count}} artiesten",
|
||||
"folder_one": "folder",
|
||||
"folder_other": "folders",
|
||||
"smartPlaylist": "smart $t(entity.playlist_one)",
|
||||
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
|
||||
"album_one": "album",
|
||||
"album_other": "albums",
|
||||
"genreWithCount_one": "{{count}} genre",
|
||||
@@ -471,11 +498,108 @@
|
||||
"table": {
|
||||
"column": {
|
||||
"rating": "rating",
|
||||
"size": "$t(common.size)"
|
||||
"size": "$t(common.size)",
|
||||
"albumArtist": "albumartiest",
|
||||
"biography": "biografie",
|
||||
"bitrate": "bitsnelheid",
|
||||
"comment": "opmerking",
|
||||
"dateAdded": "datum toegevoegd",
|
||||
"favorite": "favoriet",
|
||||
"discNumber": "disc",
|
||||
"bpm": "bpm",
|
||||
"album": "album",
|
||||
"lastPlayed": "laatst gespeeld",
|
||||
"path": "pad",
|
||||
"playCount": "keren gespeeld",
|
||||
"releaseDate": "uitgavedatum",
|
||||
"releaseYear": "jaar",
|
||||
"title": "titel",
|
||||
"trackNumber": "nummer",
|
||||
"owner": "eigenaar",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"codec": "$t(common.codec)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"config": {
|
||||
"label": {
|
||||
"rating": "$t(common.rating)"
|
||||
"rating": "$t(common.rating)",
|
||||
"composer": "componist",
|
||||
"dateAdded": "datum toegevoegd",
|
||||
"discNumber": "discnummer",
|
||||
"image": "afbeelding",
|
||||
"lastPlayed": "laatst gespeeld",
|
||||
"playCount": "keren afgespeeld",
|
||||
"releaseDate": "uitgavedatum",
|
||||
"rowIndex": "rij-index",
|
||||
"trackNumber": "nummer",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"codec": "$t(common.codec)",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(common.title)",
|
||||
"titleArtist": "$t(common.title) (artiest)",
|
||||
"titleCombined": "$t(common.title) (gecombineerd)",
|
||||
"year": "$t(common.year)"
|
||||
},
|
||||
"general": {
|
||||
"advancedSettings": "geavanceerde instellingen",
|
||||
"autoFitColumns": "kolommen automatisch passend maken",
|
||||
"autosize": "automatische afmetingen",
|
||||
"moveUp": "omhoog verplaatsen",
|
||||
"moveDown": "omlaag verplaatsen",
|
||||
"pinToLeft": "links vastpinnen",
|
||||
"pinToRight": "rechts vastpinnen",
|
||||
"alignLeft": "links uitlijnen",
|
||||
"alignCenter": "centreren",
|
||||
"alignRight": "rechts uitlijnen",
|
||||
"followCurrentSong": "huidige nummer volgen",
|
||||
"displayType": "weergavesoort",
|
||||
"itemGap": "ruimte tussen items (px)",
|
||||
"itemSize": "grootte item (px)",
|
||||
"itemsPerRow": "items per rij",
|
||||
"size_default": "standaard",
|
||||
"size_compact": "compact",
|
||||
"size_large": "groot",
|
||||
"tableColumns": "kolommen",
|
||||
"pagination": "paginering",
|
||||
"pagination_itemsPerPage": "items per pagina",
|
||||
"pagination_infinite": "oneindig",
|
||||
"pagination_paginate": "gepagineerd",
|
||||
"alternateRowColors": "afwisselende rijkleuren",
|
||||
"horizontalBorders": "randen om rijen",
|
||||
"rowHoverHighlight": "oplichtende rijen bij zweven met de muis",
|
||||
"showHeader": "toon kop",
|
||||
"verticalBorders": "randen om kolommen",
|
||||
"gap": "$t(common.gap)",
|
||||
"size": "$t(common.size)"
|
||||
},
|
||||
"view": {
|
||||
"grid": "grid",
|
||||
"list": "lijst",
|
||||
"table": "tabel",
|
||||
"detail": "details"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -489,7 +613,7 @@
|
||||
"discordListening_description": "status weergeven als ‘luisterend’ in plaats van ‘afspelend’",
|
||||
"discordListening": "status weergeven als 'luisterend'",
|
||||
"discordPausedStatus_description": "wanneer ingeschakeld, wordt de status ook weergegeven als de speler gepauzeerd is",
|
||||
"discordPausedStatus": "rich presence tonen wanneer gepauseerd",
|
||||
"discordPausedStatus": "rich presence tonen wanneer gepauzeerd",
|
||||
"discordRichPresence": "{{discord}} rich presence",
|
||||
"exitToTray_description": "sluit de applicatie naar het systeemvak",
|
||||
"exitToTray": "sluit naar systeemvak",
|
||||
@@ -501,8 +625,8 @@
|
||||
"exportImportSettings_importBtn": "importeer instellingen",
|
||||
"exportImportSettings_importModalTitle": "importeer feishing-instellingen",
|
||||
"exportImportSettings_importSuccess": "instellingen zijn succesvol geïmporteerd!",
|
||||
"exportImportSettings_notValidJSON": "het ingevoerde bestand is geen valide JSON",
|
||||
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" is incorrect - {{reason}}",
|
||||
"exportImportSettings_notValidJSON": "het ingevoerde bestand is geen geldige JSON",
|
||||
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" is onjuist - {{reason}}",
|
||||
"externalLinks_description": "maakt het mogelijk om externe links (Last.fm, MusicBrainz) te tonen op artiesten-/albumpagina's",
|
||||
"externalLinks": "toon externe links",
|
||||
"followLyric_description": "scroll de songtekst naar de huidige positie",
|
||||
@@ -545,7 +669,7 @@
|
||||
"artistConfiguration_description": "configureer welke items worden getoond op de albumartiestpagina en in welke volgorde",
|
||||
"artistReleaseTypeConfiguration": "configuratie artiestuitgavesoorten",
|
||||
"artistReleaseTypeConfiguration_description": "configureer welke uitgavesoorten worden getoond op de albumartiestpagina en in welke volgorde",
|
||||
"audioDevice_description": "kies het audioapparaat dat wordt gebruikt om af te spelen (enkel voor de webspeler)",
|
||||
"audioDevice_description": "kies het audioapparaat dat wordt gebruikt om af te spelen",
|
||||
"audioDevice": "audioapparaat",
|
||||
"audioExclusiveMode_description": "schakel exclusieve uitvoermodus in. In deze modus wordt het systeem normaliter uitgesloten en zal enkel mpv audio kunnen uitvoeren",
|
||||
"audioExclusiveMode": "audio-exclusieve modus",
|
||||
@@ -571,11 +695,10 @@
|
||||
"customCssNotice": "Waarschuwing: ondanks sanering (het niet toestaan van url() en content:) brengt aangepaste css nog steeds risico's met zich mee omdat de interface wordt gewijzigd",
|
||||
"customFontPath_description": "bepaal het pad naar het aangepaste lettertype voor gebruik in de applicatie",
|
||||
"customFontPath": "aangepaste lettertypelocatie",
|
||||
"disableAutomaticUpdates": "automatische updates uitschakelen",
|
||||
"releaseChannel_optionBeta": "beta",
|
||||
"releaseChannel_optionLatest": "meest recente",
|
||||
"releaseChannel": "releasekanaal",
|
||||
"releaseChannel_description": "kies tussen stabiele releases of beta-releases voor automatische updates",
|
||||
"releaseChannel_description": "kies tussen stabiele, of beta- of alpha-releases (nachtelijk) voor automatische updates",
|
||||
"disableLibraryUpdateOnStartup": "niet controleren op nieuwe versies bij het opstarten",
|
||||
"discordApplicationId_description": "de applicatie-id voor {{discord}} rich presence (standaard is {{defaultId}})",
|
||||
"hotkey_listPlayNow": "nu in lijst spelen",
|
||||
@@ -615,7 +738,7 @@
|
||||
"lastfmApiKey": "{{lastfm}}-API-sleutel",
|
||||
"lyricFetch_description": "bevraag verschillende bronnen op het internet voor songteksten",
|
||||
"lyricFetch": "haal songteksten op van het internet",
|
||||
"lyricFetchProvider_description": "kies de diensten die geraadpleegd worden voor songteksten. de volgorde van de diensten is tevens de volgorde waarop deze worden geraadpleegd",
|
||||
"lyricFetchProvider_description": "kies de diensten die geraadpleegd worden voor songteksten",
|
||||
"lyricFetchProvider": "diensten voor songteksten",
|
||||
"lyricOffset_description": "compenseer de songtekst met het gegeven aantal milliseconden",
|
||||
"lyricOffset": "compensatie songtekst (ms)",
|
||||
@@ -758,7 +881,80 @@
|
||||
"sidebarPlaylistList": "afspeellijsten zijbalk",
|
||||
"sidePlayQueueStyle_description": "de stijl van de wachtrij aan de zijkant",
|
||||
"sidePlayQueueStyle_optionAttached": "aangekoppeld",
|
||||
"sidePlayQueueStyle_optionDetached": "afgekoppeld"
|
||||
"sidePlayQueueStyle_optionDetached": "afgekoppeld",
|
||||
"homeFeatureStyle_description": "bepaalt de stijl van de uitgelicht-carrousel op de homepagina",
|
||||
"homeFeatureStyle": "stijl uitgelicht-carrousel",
|
||||
"homeFeatureStyle_optionMultiple": "meervoudig",
|
||||
"homeFeatureStyle_optionSingle": "enkelvoudig",
|
||||
"blurExplicitImages": "vervaag expliciete afbeeldingen",
|
||||
"blurExplicitImages_description": "hoezen van albums en nummers die getagd zijn als expliciet zullen worden vervaagd",
|
||||
"mediaSession": "mediasessie inschakelen",
|
||||
"sidePlayQueueStyle": "stijl van zijwachtrij",
|
||||
"skipDuration_description": "de tijdsduur die wordt doorgespoeld bij gebruik van de spoelknoppen in de afspeelbalk",
|
||||
"skipDuration": "doorspoelduur",
|
||||
"startMinimized_description": "start de applicatie in het systeemvak",
|
||||
"startMinimized": "start geminimaliseerd",
|
||||
"theme": "thema",
|
||||
"theme_description": "het visuele thema dat de applicatie gebruikt",
|
||||
"themeDark_description": "het donkere thema dat de applicatie gebruikt",
|
||||
"themeDark": "thema (donker)",
|
||||
"themeLight_description": "het lichte thema dat de applicatie gebruikt",
|
||||
"themeLight": "thema (licht)",
|
||||
"transcode": "transcoderen inschakelen",
|
||||
"transcode_description": "schakel transcoderen naar andere formaten in",
|
||||
"transcodeBitrate_description": "de bitsnelheid waarnaar wordt getranscodeerd. bij 0 bepaalt de server de waarde",
|
||||
"transcodeBitrate": "transcodeerbitsnelheid",
|
||||
"transcodeFormat_description": "het formaat waarnaar wordt getranscodeerd. laat leeg om de server te laten bepalen",
|
||||
"transcodeFormat": "transcodeerformaat",
|
||||
"translationApiKey_description": "api-sleutel voor vertaling (enkel globaal service-eindpunt)",
|
||||
"translationApiKey": "vertalings-api-sleutel",
|
||||
"translationApiProvider_description": "api-provider voor vertalingen",
|
||||
"translationApiProvider": "vertalings-api-provider",
|
||||
"translationTargetLanguage_description": "doeltaal voor vertalingen",
|
||||
"translationTargetLanguage": "doeltaal vertaling",
|
||||
"trayEnabled_description": "toon/verstop het systeemvakicoon/-menu. indien uitgeschakeld wordt het minimaliseren/sluiten naar het systeemvak ook uitgeschakeld",
|
||||
"trayEnabled": "toon systeemvak",
|
||||
"useSystemTheme_description": "volg de systeemvoorkeur voor licht of donker thema",
|
||||
"useSystemTheme": "gebruik systeemthema",
|
||||
"volumeWheelStep_description": "de hoeveelheid volume die gewijzigd wordt bij het scrollen met het muiswiel op de volumebalk",
|
||||
"volumeWheelStep": "volumestap muiswiel",
|
||||
"volumeWidth_description": "de breedte van de volumebalk",
|
||||
"volumeWidth": "volumebalkbreedte",
|
||||
"webAudio_description": "gebruik web-audio. dit schakeld geavanceerde mogelijkheden als replaygain in. schakel uit als dit niet werkt",
|
||||
"webAudio": "gebruik web-audio",
|
||||
"windowBarStyle": "vensterbalkstijl",
|
||||
"windowBarStyle_description": "kies de stijl van de vensterbalk",
|
||||
"zoom": "zoompercentage",
|
||||
"zoom_description": "het zoompercentage van de applicatie",
|
||||
"queryBuilder": "opdrachtbouwer",
|
||||
"queryBuilderCustomFields": "aangepaste velden",
|
||||
"queryBuilderCustomFields_description": "voeg aangepaste velden voor gebruik in opdrachtbouwers toe",
|
||||
"enableGridMultiSelect": "meervoudig selecteren in grid",
|
||||
"enableGridMultiSelect_description": "staat toe meerdere items in gridweergaven te selecteren. indien uitgeschakeld zal het klikken op een item in een gridweergave naar diens pagina navigeren",
|
||||
"sidebarPlaylistSorting": "afspeellijstsortering in zijbalk",
|
||||
"sidebarPlaylistSorting_description": "activeert het handmatig sorteren van de afspeellijst in de zijbalk door middel van slepen in plaats van het gebruiken van de servervolgorde",
|
||||
"sidebarPlaylistListFilterRegex_description": "verberg afspeellijsten in de zijbalk die overeenkomen met deze reguliere expressie",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "bijv. ^Daily Mix.*",
|
||||
"sidebarPlaylistListFilterRegex": "regex afspeellijstfilter",
|
||||
"mediaSession_description": "schakelt mediasessie-integratie in, waarbij mediabesturing en metadata in het volumeweergave en het lock-scherm worden weergegeven",
|
||||
"skipPlaylistPage": "sla afspeellijstpagina over",
|
||||
"skipPlaylistPage_description": "ga naar de nummerlijst in plaats van de standaard pagina bij het navigeren naar een afspeellijst",
|
||||
"queryBuilderCustomFields_inputLabel": "label",
|
||||
"queryBuilderCustomFields_inputTag": "tag",
|
||||
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"playButtonBehavior_optionPlay": "$t(player.play)",
|
||||
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"analyticsEnable": "Verstuur gebruiksstatistieken",
|
||||
"analyticsEnable_description": "Geanonimiseerde gebruiksgegevens worden naar de ontwikkelaar gestuurd om te helpen de applicatie te verbeteren",
|
||||
"automaticUpdates": "Automatisch bijwerken",
|
||||
"automaticUpdates_description": "Zoek en installeer updates automatisch",
|
||||
"releaseChannel_optionAlpha": "alfa (nachtelijk)",
|
||||
"discordStateIcon": "toon afspeelicoon",
|
||||
"discordStateIcon_description": "toon een klein afspeelicoon in de rich-presence-status. het gepauzeerde icoon wordt altijd getoond als \"rich presence tonen wanneer gepauzeerd\" is ingeschakeld"
|
||||
},
|
||||
"form": {
|
||||
"addServer": {
|
||||
@@ -780,25 +976,25 @@
|
||||
"input_remoteUrlPlaceholder": "optioneel: publieke url voor externe mogelijkheden"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"title": "verwijder $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) succesvol verwijdert",
|
||||
"input_confirm": "Typ de naam van $t(entity.playlist_one) om te bevestigen"
|
||||
"title": "verwijder $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) succesvol verwijdert",
|
||||
"input_confirm": "Typ de naam van $t(entity.playlist, {\"count\": 1}) om te bevestigen"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "$t(entity.playlist_one) aanmaken",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) aanmaken",
|
||||
"input_public": "publiek",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) aangemaakt",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) aangemaakt",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) aan $t(entity.trackWithCount, {\"count\": {{message}} }) toegevoegd",
|
||||
"title": "aan $t(entity.playlist_one) toevoegen",
|
||||
"title": "aan $t(entity.playlist, {\"count\": 1}) toevoegen",
|
||||
"input_skipDuplicates": "duplicaten overslaan",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "maak $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "zoek $t(entity.playlist_other) of typ om een nieuwe te maken"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "maak $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "zoek $t(entity.playlist, {\"count\": 2}) of typ om een nieuwe te maken"
|
||||
},
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "alles matchen",
|
||||
@@ -811,13 +1007,13 @@
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"title": "tekst zoeken"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "$t(entity.playlist_one) aanpassen",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) aanpassen",
|
||||
"publicJellyfinNote": "Jellyfin laat niet weten of een playlist publiek of privaat is. Als u wilt dat dit publiek blijft, selecteer de volgende invoer",
|
||||
"success": "$t(entity.playlist_one) succesvol geüpdatet",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) succesvol geüpdatet",
|
||||
"editNote": "Handmatige bewerking wordt afgeraden voor grote afspeellijsten. Weet je zeker dat je het risico op dataverlies wilt accepteren door de bestaande afspeellijst te overschrijven?"
|
||||
},
|
||||
"updateServer": {
|
||||
@@ -830,7 +1026,9 @@
|
||||
"setExpiration": "stel vervaldatum in",
|
||||
"success": "deel link gekopiëerd naar klembord (of klik hier om te openen)",
|
||||
"expireInvalid": "vervaldatum moet in de toekomst zijn",
|
||||
"createFailed": "kon share niet aanmaken (is delen aangezet?)"
|
||||
"createFailed": "kon share niet aanmaken (is delen aangezet?)",
|
||||
"copyToClipboard": "Kopieer naar klembord: Ctrl+C, Enter",
|
||||
"successMustClick": "gedeelde bron succesvol aangemaakt. klik hier om te openen"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "private modus ingeschakeld, afspeelstatus is nu verborgen voor externe integraties",
|
||||
@@ -843,7 +1041,7 @@
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "willekeurig afspelen",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "hoeveel nummers?",
|
||||
"input_minYear": "van jaar",
|
||||
"input_maxYear": "naar jaar",
|
||||
@@ -907,7 +1105,16 @@
|
||||
"trackRadio": "nummerradio",
|
||||
"unfavorite": "verwijder favoriet",
|
||||
"pause": "pauzeren",
|
||||
"viewQueue": "toon wachtrij"
|
||||
"viewQueue": "toon wachtrij",
|
||||
"sleepTimer": "slaaptimer",
|
||||
"sleepTimer_endOfSong": "einde van huidige nummer",
|
||||
"sleepTimer_minutes": "{{count}} min",
|
||||
"sleepTimer_hours": "{{count}} uur",
|
||||
"sleepTimer_custom": "afwijkend",
|
||||
"sleepTimer_off": "uit",
|
||||
"sleepTimer_timeRemaining": "{{time}} resterend",
|
||||
"sleepTimer_setCustom": "timer instellen",
|
||||
"sleepTimer_cancel": "timer annuleren"
|
||||
},
|
||||
"datetime": {
|
||||
"minuteShort": "m",
|
||||
@@ -942,7 +1149,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "uitzending",
|
||||
"ep": "ep",
|
||||
"other": "overig",
|
||||
@@ -962,5 +1169,159 @@
|
||||
"soundtrack": "soundtrack",
|
||||
"spokenWord": "gesproken woord"
|
||||
}
|
||||
},
|
||||
"dragDropZone": {
|
||||
"error_oneFileOnly": "Kies één bestand",
|
||||
"error_readingFile": "probleem opgetreden bij het lezen van het bestand: {{errorMessage}}",
|
||||
"mainText": "sleep hier een bestand naartoe"
|
||||
},
|
||||
"visualizer": {
|
||||
"visualizerType": "Type Visualiseerder",
|
||||
"cyclePresets": "Doorloop Voorinstellingen",
|
||||
"cycleTime": "Cyclustijd (seconden)",
|
||||
"ignoredPresets": "Genegeerde Voorinstellingen",
|
||||
"selectedPresets": "Gekozen Voorinstellingen",
|
||||
"includeAllPresets": "Alle Voorinstellingen Opnemen",
|
||||
"randomizeNextPreset": "Willekeurige Volgende Voorinstelling",
|
||||
"blendTime": "Mengtijd",
|
||||
"presets": "Voorinstellingen",
|
||||
"selectPreset": "Kies Voorinstelling",
|
||||
"applyPreset": "Voorinstelling Toepassen",
|
||||
"saveAsPreset": "Opslaan als Voorinstelling",
|
||||
"updatePreset": "Voorinstelling Bijwerken",
|
||||
"copyConfiguration": "Kopieer Configuratie",
|
||||
"pasteConfiguration": "Plak Configuratie",
|
||||
"pasteConfigurationPlaceholder": "Plak JSON-configuratie hier...",
|
||||
"pasteFromClipboard": "Plakken vanaf Klembord",
|
||||
"applyConfiguration": "Configuratie Toepassen",
|
||||
"configCopied": "Configuratie gekopieerd naar het klembord",
|
||||
"configCopyFailed": "Kopiëren van configuratie is mislukt",
|
||||
"configPasted": "Configuratie succesvol toegepast",
|
||||
"configPasteFailed": "Toepassen configuratie mislukt. Controleer het formaat.",
|
||||
"configPasteReadFailed": "Lezen van het klembord mislukt",
|
||||
"presetName": "Naam Voorinstelling",
|
||||
"presetNamePlaceholder": "Voer de naam van de voorinstelling in",
|
||||
"general": "Algemeen",
|
||||
"mode": "Modus",
|
||||
"mode1To8": "Modus 1-8",
|
||||
"mode10": "Modus 10",
|
||||
"barSpace": "Balkruimte",
|
||||
"lineWidth": "Lijnbreedte",
|
||||
"fillAlpha": "Alfavulling",
|
||||
"channelLayout": "Kanaalindeling",
|
||||
"maxFPS": "Max FPS",
|
||||
"opacity": "Opaciteit",
|
||||
"customGradients": "Aangepaste Kleurverlopen",
|
||||
"addCustomGradient": "Voeg Aangepast Kleurverloop Toe",
|
||||
"gradientName": "Naam Kleurverloop",
|
||||
"gradientNamePlaceholder": "Naam Kleurverloop",
|
||||
"vertical": "Verticaal",
|
||||
"horizontal": "Horizontaal",
|
||||
"colorStops": "Kleurstop",
|
||||
"addColor": "Voeg Kleur Toe",
|
||||
"position": "Positie",
|
||||
"level": "Niveau",
|
||||
"remove": "Verwijder",
|
||||
"pasteGradient": "Plak Kleurverloop",
|
||||
"pasteGradientPlaceholder": "Plak JSON van kleurverloop hier...",
|
||||
"custom": "Aangepast",
|
||||
"builtIn": "Ingebouwd",
|
||||
"colors": "Kleuren",
|
||||
"colorMode": "Kleurmodus",
|
||||
"gradient": "Kleurverloop",
|
||||
"gradientLeft": "Kleurverloop Links",
|
||||
"gradientRight": "Kleurverloop Rechts",
|
||||
"fft": "FFT",
|
||||
"fftSize": "FFT-grootte",
|
||||
"smoothing": "Gladstrijken",
|
||||
"frequencyRangeAndScaling": "Frequentiebereik en -schaling",
|
||||
"minimumFrequency": "Minimumfrequentie",
|
||||
"maximumFrequency": "Maximumfrequentie",
|
||||
"frequencyScale": "Frequentieschaal",
|
||||
"sensitivity": "Gevoeligheid",
|
||||
"weightingFilter": "Gewichtsfilter",
|
||||
"minimumDecibels": "Minimum aantal decibel",
|
||||
"maximumDecibels": "Maximum aantal decibel",
|
||||
"linearAmplitude": "Lineaire Amplitude",
|
||||
"linearBoost": "Lineaire Versterking",
|
||||
"peakBehavior": "Piekgedrag",
|
||||
"showPeaks": "Toon Pieken",
|
||||
"fadePeaks": "Vervaag Pieken",
|
||||
"peakLine": "Pieklijn",
|
||||
"gravity": "Zwaartekracht",
|
||||
"peakFadeTime": "Piekvervagingstijd (ms)",
|
||||
"peakHoldTime": "Piekvasthoudtijd (ms)",
|
||||
"radialSpectrum": "Radiaal Spectrum",
|
||||
"radial": "Radiaal",
|
||||
"radialInvert": "Geïnverteerde Radiaal",
|
||||
"spinSpeed": "Draaisnelheid",
|
||||
"radius": "Radius",
|
||||
"reflexMirror": "Reflexspiegel",
|
||||
"reflexRatio": "Reflexverhouding",
|
||||
"reflexAlpha": "Reflex-alfa",
|
||||
"reflexFit": "Reflex-inpassing",
|
||||
"reflexBrightness": "Reflex-helderheid",
|
||||
"mirror": "Spiegel",
|
||||
"miscellaneousSettings": "Diverse Instellingen",
|
||||
"alphaBars": "Alfabalken",
|
||||
"ansiBands": "ANSI-banden",
|
||||
"ledBars": "LED-balken",
|
||||
"trueLeds": "Ware LEDs",
|
||||
"lumiBars": "Lumi-balken",
|
||||
"outlineBars": "Uitgelijnde balken",
|
||||
"roundBars": "Ronde Balken",
|
||||
"lowResolution": "Lage Resolutie",
|
||||
"splitGradient": "Gescheiden Kleurverloop",
|
||||
"showFPS": "Toon FPS",
|
||||
"showScaleX": "Toon X-schaal",
|
||||
"showScaleY": "Toon Y-schaal",
|
||||
"noteLabels": "Nootlabels",
|
||||
"options": {
|
||||
"mode": {
|
||||
"0": "[0] Discrete Frequenties",
|
||||
"1": "[1] 1/24e octaaf / 240 bands",
|
||||
"2": "[2] 1/12e octaaf / 120 bands",
|
||||
"3": "[3] 1/8e octaaf / 80 bands",
|
||||
"4": "[4] 1/6e octaaf / 60 bands",
|
||||
"5": "[5] 1/4e octaaf / 40 bands",
|
||||
"6": "[6] 1/3e octaaf / 30 bands",
|
||||
"7": "[7] Half octaaf / 20 bands",
|
||||
"8": "[8] Volledig octaaf / 10 bands",
|
||||
"10": "[10] Lijn- / Gebiedsgrafiek"
|
||||
},
|
||||
"colorMode": {
|
||||
"gradient": "Kleurverloop",
|
||||
"barIndex": "Balk-index",
|
||||
"barLevel": "Balkniveau"
|
||||
},
|
||||
"gradient": {
|
||||
"classic": "Klassiek",
|
||||
"prism": "Prisma",
|
||||
"rainbow": "Regenboog",
|
||||
"steelblue": "Staalblauw",
|
||||
"orangered": "Oranjerood"
|
||||
},
|
||||
"channelLayout": {
|
||||
"single": "Enkelvoudig",
|
||||
"dualCombined": "Duaalgecombineerd",
|
||||
"dualHorizontal": "Duaalhorizontaal",
|
||||
"dualVertical": "Duaalvertikaal"
|
||||
},
|
||||
"frequencyScale": {
|
||||
"none": "Geen",
|
||||
"bark": "Bark-schaal",
|
||||
"linear": "Lineaire Schaal",
|
||||
"log": "Log-schaal",
|
||||
"mel": "Mel-schaal"
|
||||
},
|
||||
"weightingFilter": {
|
||||
"none": "Geen",
|
||||
"a": "A",
|
||||
"b": "B",
|
||||
"c": "C",
|
||||
"d": "D",
|
||||
"z": "Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
{
|
||||
"action": {
|
||||
"editPlaylist": "edytuj $t(entity.playlist_one)",
|
||||
"editPlaylist": "edytuj $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "idź do strony",
|
||||
"clearQueue": "wyczyść kolejkę",
|
||||
"addToFavorites": "dodaj do $t(entity.favorite_other)",
|
||||
"removeFromPlaylist": "usuń z $t(entity.playlist_one)",
|
||||
"viewPlaylists": "zobacz $t(entity.playlist_other)",
|
||||
"addToFavorites": "dodaj do $t(entity.favorite, {\"count\": 2})",
|
||||
"removeFromPlaylist": "usuń z $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "zobacz $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromQueue": "usuń z kolejki",
|
||||
"deselectAll": "odznacz wszystko",
|
||||
"toggleSmartPlaylistEditor": "przełącz edytor $t(entity.smartPlaylist)",
|
||||
"removeFromFavorites": "usuń z $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "usuń z $t(entity.favorite, {\"count\": 2})",
|
||||
"moveToTop": "przesuń na górę",
|
||||
"addToPlaylist": "dodaj do $t(entity.playlist_one)",
|
||||
"createPlaylist": "utwórz $t(entity.playlist_one)",
|
||||
"deletePlaylist": "usuń $t(entity.playlist_one)",
|
||||
"addToPlaylist": "dodaj do $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "utwórz $t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "usuń $t(entity.playlist, {\"count\": 1})",
|
||||
"moveToBottom": "przesuń na dół",
|
||||
"setRating": "oceń",
|
||||
"openIn": {
|
||||
@@ -32,12 +32,13 @@
|
||||
"moveDown": "przenieś niżej",
|
||||
"holdToMoveToTop": "przytrzymaj aby, przesunąć na górę",
|
||||
"holdToMoveToBottom": "przytrzymaj aby, przesunąć na dół",
|
||||
"createRadioStation": "utwórz $t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "usuń $t(entity.radioStation_one)",
|
||||
"createRadioStation": "utwórz $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "usuń $t(entity.radioStation, {\"count\": 1})",
|
||||
"addOrRemoveFromSelection": "dodaj lub usuń z wyboru",
|
||||
"selectRangeOfItems": "wybierz zakres elementów",
|
||||
"selectAll": "wybierz wszystkie",
|
||||
"openApplicationDirectory": "otwórz katalog aplikacji"
|
||||
"openApplicationDirectory": "otwórz katalog aplikacji",
|
||||
"goToCurrent": "przejdź do aktualnego elementu"
|
||||
},
|
||||
"common": {
|
||||
"increase": "zwiększ",
|
||||
@@ -73,7 +74,9 @@
|
||||
"delete": "usuń",
|
||||
"cancel": "anuluj",
|
||||
"forceRestartRequired": "zrestartuj aby zastosować zmiany... zamknij powiadomienie aby zrestartować",
|
||||
"setting": "ustawienia",
|
||||
"setting_one": "ustawienie",
|
||||
"setting_few": "ustawienia",
|
||||
"setting_many": "ustawień",
|
||||
"version": "wersja",
|
||||
"title": "tytuł",
|
||||
"filter_one": "filtr",
|
||||
@@ -100,7 +103,7 @@
|
||||
"none": "żaden",
|
||||
"menu": "menu",
|
||||
"restartRequired": "wymagany restart",
|
||||
"previousSong": "poprzedni $t(entity.track_one)",
|
||||
"previousSong": "poprzedni $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "kolejka zwróciła brak wyników",
|
||||
"quit": "wyjdź",
|
||||
"expand": "rozszerz",
|
||||
@@ -113,7 +116,7 @@
|
||||
"biography": "biografia",
|
||||
"backward": "wstecz",
|
||||
"left": "lewo",
|
||||
"currentSong": "obecnie $t(entity.track_one)",
|
||||
"currentSong": "obecnie $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "zwiń",
|
||||
"gap": "luka",
|
||||
"manage": "zarządzaj",
|
||||
@@ -160,7 +163,9 @@
|
||||
"mood": "nastrój",
|
||||
"example": "przykład",
|
||||
"filter_multiple": "multi",
|
||||
"filter_single": "single"
|
||||
"filter_single": "single",
|
||||
"rename": "zmień nazwę",
|
||||
"newVersionAvailable": "nowa wersja jest dostępna"
|
||||
},
|
||||
"entity": {
|
||||
"genre_one": "gatunek",
|
||||
@@ -173,14 +178,14 @@
|
||||
"playlist_few": "playlisty",
|
||||
"playlist_many": "playlist",
|
||||
"artist_one": "wykonawca",
|
||||
"artist_few": "wykonawców",
|
||||
"artist_few": "wykonawcy",
|
||||
"artist_many": "wykonawców",
|
||||
"folderWithCount_one": "{{count}} katalog",
|
||||
"folderWithCount_few": "{{count}} katalogi",
|
||||
"folderWithCount_many": "{{count}} katalogów",
|
||||
"albumArtist_one": "wykonawca albumu",
|
||||
"albumArtist_few": "wykonawcy albumu",
|
||||
"albumArtist_many": "wykonawców albumu",
|
||||
"albumArtist_many": "wykonawcy albumów",
|
||||
"track_one": "utwór",
|
||||
"track_few": "utwory",
|
||||
"track_many": "utworów",
|
||||
@@ -199,7 +204,7 @@
|
||||
"folder_one": "katalog",
|
||||
"folder_few": "katalogi",
|
||||
"folder_many": "katalogów",
|
||||
"smartPlaylist": "inteligentna $t(entity.playlist_one)",
|
||||
"smartPlaylist": "inteligentna $t(entity.playlist, {\"count\": 1})",
|
||||
"album_one": "album",
|
||||
"album_few": "albumy",
|
||||
"album_many": "albumów",
|
||||
@@ -251,7 +256,10 @@
|
||||
"saveQueueFailed": "nie udało się zapisać kolejki",
|
||||
"settingsSyncError": "zostały znalezione różnice pomiędzy ustawieniami w rendererze a głównym procesem. uruchom aplikację ponownie aby, zastosować zmiany",
|
||||
"noNetwork": "serwer niedostępny",
|
||||
"noNetworkDescription": "nie udało się połączyć z tym serwerem"
|
||||
"noNetworkDescription": "nie udało się połączyć z tym serwerem",
|
||||
"invalidJson": "nieprawidłowy JSON",
|
||||
"serverLockSingleServer": "dozwolony jest tylko jeden serwer gdy serwer jest zablokowany",
|
||||
"playbackPausedDueToError": "odtwarzanie zostało wstrzymane z powodu błędu"
|
||||
},
|
||||
"filter": {
|
||||
"mostPlayed": "najczęściej odtwarzane",
|
||||
@@ -271,7 +279,7 @@
|
||||
"communityRating": "ocena społeczności",
|
||||
"path": "ścieżka",
|
||||
"favorited": "ulubione",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "było niedawno odtwarzane",
|
||||
"isFavorited": "jest ulubione",
|
||||
"bpm": "bpm",
|
||||
@@ -279,7 +287,7 @@
|
||||
"disc": "płyta",
|
||||
"biography": "biografia",
|
||||
"songCount": "liczba utworów",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"duration": "długość",
|
||||
"random": "losowy",
|
||||
"lastPlayed": "ostatnio odtwarzane",
|
||||
@@ -289,27 +297,30 @@
|
||||
"trackNumber": "utwór",
|
||||
"comment": "komentarz",
|
||||
"recentlyUpdated": "ostatnio aktualizowane",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"owner": "$t(common.owner)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"albumCount": "liczba $t(entity.album_other)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"albumCount": "liczba $t(entity.album, {\"count\": 2})",
|
||||
"id": "id",
|
||||
"isPublic": "jest publiczny",
|
||||
"album": "$t(entity.album_one)",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"sortName": "sortowanie po nazwie",
|
||||
"matchAnd": "i",
|
||||
"matchOr": "lub"
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "usuń $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) usunięto pomyślnie",
|
||||
"input_confirm": "wpisz nazwę $t(entity.playlist_one) aby potwierdzić"
|
||||
"title": "usuń $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) usunięta pomyślnie",
|
||||
"input_confirm": "wpisz nazwę $t(entity.playlist, {\"count\": 1}) aby potwierdzić"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "utwórz $t(entity.playlist_one)",
|
||||
"title": "utwórz $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "publiczny",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) utworzono pomyślnie",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) utworzona pomyślnie",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addServer": {
|
||||
@@ -332,11 +343,11 @@
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "dodano $t(entity.trackWithCount, {\"count\": {{message}} }) do $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "dodano do $t(entity.playlist_one)",
|
||||
"title": "dodano do $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "pomiń duplikaty",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "utwórz $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "wyszukaj $t(entity.playlist_other) lub wpisz, aby utworzyć nową"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "utwórz $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "wyszukaj $t(entity.playlist, {\"count\": 2}) lub wpisz, aby utworzyć nową"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "uaktualnij serwer",
|
||||
@@ -353,12 +364,12 @@
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"title": "wyszukiwanie tekstów"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "edytuj $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) zaktualizowana pomyślnie",
|
||||
"title": "edytuj $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) zaktualizowana pomyślnie",
|
||||
"publicJellyfinNote": "Z jakiegoś powodu Jellyfin nie udostępnia informacji na temat publiczności playlisty. Jeżeli chcesz, aby ta pozostała publiczna, mniej wybraną poniższą opcję",
|
||||
"editNote": "manualne edytowanie nie jest zalecane dla dużych playlist. czy na pewno zgadzasz się na ryzyko utraty danych wywołane przez nadpisanie istniejącej playlisty?"
|
||||
},
|
||||
@@ -368,7 +379,9 @@
|
||||
"setExpiration": "ustaw czas wygaśnięcia",
|
||||
"success": "link do udostępniania skopiowany do schowka (lub kliknij tutaj, aby otworzyć)",
|
||||
"createFailed": "nie udało się utworzyć linku do udostępniania (czy udostępnianie jest włączone?)",
|
||||
"expireInvalid": "ustawiony czas wygaśnięcia musi być w przyszłości"
|
||||
"expireInvalid": "ustawiony czas wygaśnięcia musi być w przyszłości",
|
||||
"copyToClipboard": "Skopiuj do schowka: Ctrl+C, Enter",
|
||||
"successMustClick": "udostępnianie utworzone pomyślnie, kliknij tutaj żeby otworzyć"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "tryb prywatny włączony, status odtwarzania jest ukryty przed usługami zewnętrznymi",
|
||||
@@ -381,7 +394,7 @@
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "odtwarzaj losowo",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "ile piosenek?",
|
||||
"input_minYear": "z roku",
|
||||
"input_maxYear": "do roku",
|
||||
@@ -424,7 +437,7 @@
|
||||
"dynamicIsImage": "włącz obraz w tle",
|
||||
"lyricOffset": "opóźnienie tekstów (ms)"
|
||||
},
|
||||
"upNext": "następny",
|
||||
"upNext": "następne",
|
||||
"lyrics": "tekst",
|
||||
"related": "powiązane",
|
||||
"visualizer": "wizualizer",
|
||||
@@ -433,7 +446,7 @@
|
||||
"appMenu": {
|
||||
"selectServer": "wybierz serwer",
|
||||
"version": "wersja {{version}}",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"manageServers": "zarządzaj serwerami",
|
||||
"expandSidebar": "rozwiń pasek boczny",
|
||||
"collapseSidebar": "zwiń pasek boczny",
|
||||
@@ -471,45 +484,46 @@
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"playSimilarSongs": "$t(player.playSimilarSongs)",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"goToAlbum": "przejdź do $t(entity.album_one)",
|
||||
"goToAlbumArtist": "przejdź do $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "przejdź do $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "przejdź do $t(entity.albumArtist, {\"count\": 1})",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "przejdź do"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "więcej od $t(entity.artist_one)",
|
||||
"moreFromArtist": "więcej od $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "więcej od {{item}}",
|
||||
"released": "wydany"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showAlbums": "pokaż $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "pokaż $t(entity.genre_one) $t(entity.track_other)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showAlbums": "pokaż $t(entity.album, {\"count\": 2}) $t(entity.genre, {\"count\": 1})",
|
||||
"showTracks": "pokaż $t(entity.track, {\"count\": 2}) $t(entity.genre, {\"count\": 1})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "albumy wykonawcy {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "$t(entity.album, {\"count\": 2}) \"{{genre}}\""
|
||||
},
|
||||
"sidebar": {
|
||||
"nowPlaying": "teraz odtwarzane",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"shared": "udostępnione $t(entity.playlist_other)",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"shared": "udostępniono $t(entity.playlist, {\"count\": 2})",
|
||||
"myLibrary": "Moja biblioteka",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})",
|
||||
"collections": "kolekcje"
|
||||
},
|
||||
"home": {
|
||||
"mostPlayed": "najczęściej odtwarzane",
|
||||
@@ -518,7 +532,7 @@
|
||||
"explore": "przeglądaj z biblioteki",
|
||||
"recentlyPlayed": "ostatnio odtwarzane",
|
||||
"recentlyReleased": "ostatnio wydane",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"playbackTab": "odtworzenia",
|
||||
@@ -546,9 +560,9 @@
|
||||
"lyricsDisplay": "wyświetlanie tekstu"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "utwory przez {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
|
||||
"genreTracks": "$t(entity.track, {\"count\": 2}) \"{{genre}}\""
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -559,7 +573,7 @@
|
||||
"title": "komendy"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"topSongs": "popularne utwory",
|
||||
@@ -568,11 +582,15 @@
|
||||
"recentReleases": "ostatnie wydania",
|
||||
"viewAll": "zobacz wszystko",
|
||||
"viewDiscography": "przeglądaj dyskografię",
|
||||
"relatedArtists": "powiązane z $t(entity.artist_other)",
|
||||
"relatedArtists": "powiązane z $t(entity.artist, {\"count\": 2})",
|
||||
"appearsOn": "pojawia się na",
|
||||
"viewAllTracks": "zobacz wszystko $t(entity.track_other)",
|
||||
"viewAllTracks": "zobacz wszystko $t(entity.track, {\"count\": 2})",
|
||||
"groupingTypeAll": "wszystkie typy wydań",
|
||||
"groupingTypePrimary": "główne typy wydań"
|
||||
"groupingTypePrimary": "główne typy wydań",
|
||||
"favoriteSongs": "ulubione piosenki",
|
||||
"topSongsCommunity": "społeczność",
|
||||
"topSongsPersonal": "osobiste",
|
||||
"favoriteSongsFrom": "ulubione piosenki z {{title}}"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copyPath": "kopiuj ścieżkę do schowka",
|
||||
@@ -591,13 +609,26 @@
|
||||
"reorder": "zmiana kolejności jest możliwa tylko podczas sortowania według id"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "stacje radiowe"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(Wstrzymane) ",
|
||||
"privateMode": "(Tryb prywatny)"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "nadpisz istniejące",
|
||||
"saveAsCollection": "zapisz jako kolekcję"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "commity od {{stable}}",
|
||||
"noNewCommits": "brak nowych commitów w tym zakresie",
|
||||
"noStableReleaseToCompare": "brak dostępnego stabilnego wydania do porównania"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
@@ -639,12 +670,22 @@
|
||||
"restoreQueueFromServer": "przywróć kolejkę z serwera",
|
||||
"saveQueueToServer": "zapisz kolejkę na serwerze",
|
||||
"artistRadio": "radio wykonawcy",
|
||||
"trackRadio": "radio utworu"
|
||||
"trackRadio": "radio utworu",
|
||||
"sleepTimer": "wyłącznik czasowy",
|
||||
"sleepTimer_endOfSong": "do końca aktualnej piosenki",
|
||||
"sleepTimer_minutes": "{{count}} min",
|
||||
"sleepTimer_hours": "{{count}} godz",
|
||||
"sleepTimer_custom": "niestandardowy",
|
||||
"sleepTimer_off": "wyłączony",
|
||||
"sleepTimer_timeRemaining": "pozostało {{time}}",
|
||||
"sleepTimer_setCustom": "ustaw wyłącznik",
|
||||
"sleepTimer_cancel": "anuluj wyłączanie",
|
||||
"albumRadio": "radio albumu"
|
||||
},
|
||||
"setting": {
|
||||
"crossfadeStyle_description": "wybierz styl przenikania, który ma być używany do odtwarzania dźwięku",
|
||||
"hotkey_skipBackward": "przeskocz do tyłu",
|
||||
"audioDevice_description": "wybierz urządzenie dźwiękowe używane do odtwarzania (tylko odtwarzacz przeglądarkowy)",
|
||||
"audioDevice_description": "wybierz urządzenie dźwiękowe używane do odtwarzania",
|
||||
"hotkey_playbackPause": "wstrzymaj",
|
||||
"hotkey_volumeUp": "podgłoś",
|
||||
"discordIdleStatus_description": "kiedy włączony, aktualizuje stan kiedy odtwarzacz jest bezczynny",
|
||||
@@ -671,7 +712,6 @@
|
||||
"globalMediaHotkeys": "globalne skróty klawiszowe multimediów",
|
||||
"hotkey_globalSearch": "globalne wyszukiwanie",
|
||||
"gaplessAudio_description": "ustaw dźwięk bez przerw dla mpv",
|
||||
"disableAutomaticUpdates": "wyłącz automatyczne aktualizacje",
|
||||
"exitToTray_description": "zamknij aplikację do zasobnika systemowego",
|
||||
"followLyric_description": "przewiń tekst do obecnego momentu",
|
||||
"hotkey_favoritePreviousSong": "ulubiona $t(common.previousSong)",
|
||||
@@ -705,7 +745,7 @@
|
||||
"applicationHotkeys": "skróty klawiszowe aplikacji",
|
||||
"hotkey_playbackNext": "następny utwór",
|
||||
"lyricFetch_description": "pobierz teksty z rozmaitych źródeł internetowych",
|
||||
"lyricFetchProvider_description": "wybierz dostawców internetowych dla tekstów. zapytania będą wykonywane według podanej kolejności",
|
||||
"lyricFetchProvider_description": "wybierz dostawców od których pobierane będą teksty",
|
||||
"globalMediaHotkeys_description": "włącz lub wyłącz używanie systemowych skrótów klawiszowych do kontroli odtwarzania",
|
||||
"customFontPath": "niestandardowa ścieżka czcionki",
|
||||
"followLyric": "podążaj za tekstem",
|
||||
@@ -715,7 +755,7 @@
|
||||
"hotkey_zoomOut": "oddal",
|
||||
"hotkey_unfavoriteCurrentSong": "usuń $t(common.currentSong) z ulubionych",
|
||||
"hotkey_rate0": "wyczyść oceny",
|
||||
"discordApplicationId": "ID aplikacji {{discord}}",
|
||||
"discordApplicationId": "id aplikacji {{discord}}",
|
||||
"applicationHotkeys_description": "ustaw skróty klawiszowe aplikacji. przełącz pole wyboru aby ustawić skrót globalny (tylko komputery)",
|
||||
"hotkey_volumeMute": "wycisz",
|
||||
"hotkey_toggleCurrentSongFavorite": "dodaj $t(common.currentSong) do ulubionych",
|
||||
@@ -761,8 +801,8 @@
|
||||
"scrobble_description": "przekazywanie informacji o odtwarzaniu (scrobbling) do twojego serwera multimediów",
|
||||
"sidePlayQueueStyle": "boczny styl kolejki odtwarzania",
|
||||
"remoteUsername_description": "ustaw nazwę użytkownika dla serwera zdalnej kontroli. Jeśli nazwa użytkownika i hasło są puste, autoryzacja będzie wyłączona",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"remotePassword_description": "ustawia hasło dla serwera zdalnego sterowania. Te poświadczenia są domyślnie przesyłane w sposób niezabezpieczony, dlatego należy użyć unikalnego hasła na którym ci nie zależy",
|
||||
"showSkipButtons_description": "pokaż lub ukryj przyciski pomijania na pasku odtwarzacza",
|
||||
"showSkipButton_description": "pokaż lub ukryj przyciski pomijania na pasku odtwarzacza",
|
||||
@@ -873,7 +913,7 @@
|
||||
"releaseChannel_optionBeta": "beta",
|
||||
"releaseChannel_optionLatest": "najnowsza",
|
||||
"releaseChannel": "kanał wydań",
|
||||
"releaseChannel_description": "wybieraj pomiędzy stabilnymi wydaniami a wydaniami beta dla automatycznych aktualizacji",
|
||||
"releaseChannel_description": "wybieraj pomiędzy wydaniami stabilnymi, beta lub alpha (nightly) dla automatycznych aktualizacji",
|
||||
"discordDisplayType_artistname": "nazwa(y) wykonawców",
|
||||
"discordDisplayType_description": "zmienia co jest pokazywane jako słuchane w twoim statusie",
|
||||
"discordDisplayType_songname": "nazwa piosenki",
|
||||
@@ -973,14 +1013,45 @@
|
||||
"pathReplace": "zamiana ścieżki pliku",
|
||||
"pathReplace_description": "zamień domyślną ścieżkę pliku twojego serwera",
|
||||
"pathReplace_optionRemovePrefix": "usuń prefix",
|
||||
"pathReplace_optionAddPrefix": "dodaj prefix"
|
||||
"pathReplace_optionAddPrefix": "dodaj prefix",
|
||||
"homeFeatureStyle_description": "kontroluje styl karuzeli polecanych na stronie głównej",
|
||||
"homeFeatureStyle": "Styl karuzeli polecanych na stronie głównej",
|
||||
"homeFeatureStyle_optionMultiple": "wiele",
|
||||
"homeFeatureStyle_optionSingle": "jeden",
|
||||
"enableGridMultiSelect_description": "gdy włączone, pozwala na wybieranie wielu elementów w widokach siatki, gdy wyłączone, klikanie obrazów elementów siatki będzie przenosić na stronę elementu",
|
||||
"enableGridMultiSelect": "wybieranie wielu w siatce",
|
||||
"sidebarPlaylistSorting_description": "pozwala na ręczne sortowanie playlist w bocznym pasku używając przeciągania i upuszczania zamiast używania domyślnej kolejności serwera",
|
||||
"sidebarPlaylistSorting": "sortowanie playlist w bocznym pasku",
|
||||
"sidebarPlaylistListFilterRegex_description": "ukryj playlisty w pasku bocznym pasujące do wyrażenia regularnego",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "np. ^Miks codzienny.^",
|
||||
"sidebarPlaylistListFilterRegex": "filtr playlist regex",
|
||||
"blurExplicitImages": "rozmazuj nieodpowiednie obrazy",
|
||||
"blurExplicitImages_description": "obrazy piosenek oraz albumów oznaczone jako nieodpowiednie będą rozmazywane",
|
||||
"releaseChannel_optionAlpha": "alpha (nightly)",
|
||||
"analyticsEnable": "Wysyłaj statystyki na podstawie użytkowania",
|
||||
"analyticsEnable_description": "Zanonimizowane statystki użytkowania będą wysyłane do twórcy, aby pomóc w poprawie aplikacji",
|
||||
"automaticUpdates": "Automatyczne aktualizacje",
|
||||
"automaticUpdates_description": "Automatycznie sprawdzaj i instaluj aktualizacje",
|
||||
"discordStateIcon": "pokaż ikonę odtwarzania",
|
||||
"discordStateIcon_description": "pokazuje małą ikonę odtwarzania w statusie. ikona pauzy jest zawsze pokazywana gdy \"Pokaż status podczas pauzy\" jest włączone",
|
||||
"useThemePrimaryShade": "użyj głównego odcienia motywu",
|
||||
"useThemePrimaryShade_description": "używaj głównego odcienia zdefiniowanego w wybranym motywie dla głównych wariantów kolorów",
|
||||
"primaryShade": "główny odcień",
|
||||
"primaryShade_description": "nadpisz główny odcień (0-9) używany dla przycisków, linków i innych głównie pokolorowanych elementów",
|
||||
"playerItemConfiguration_description": "skonfiguruj jakie elementy są pokazywane i w jakiej kolejności, w odtwarzaczu pełnoekranowym",
|
||||
"playerItemConfiguration": "konfiguracja elementów odtwarzacza",
|
||||
"autosave": "automatycznie zapisuj kolejkę odtwarzania",
|
||||
"autosave_description": "włącz automatyczne zapisywanie kolejki odtwarzania na twój serwer. to jest możliwe tylko gdy używane jest Navidrome/Subsonic, i nie masz zmixowanej kolejki odtwarzania.",
|
||||
"autosaveCount": "częstotliwość automatycznego zapisywania kolejki odtwarzania",
|
||||
"autosaveCount_description": "ile razy piosenka zostanie zmieniona przed zapisaniem kolejki. 1 (najmniejsze) oznacza zapisywanie kolejki po każdej zmianie piosenki"
|
||||
},
|
||||
"table": {
|
||||
"config": {
|
||||
"view": {
|
||||
"table": "tabela",
|
||||
"grid": "siatka",
|
||||
"list": "lista"
|
||||
"list": "lista",
|
||||
"detail": "szczegół"
|
||||
},
|
||||
"general": {
|
||||
"displayType": "typ wyświetlania",
|
||||
@@ -1011,7 +1082,8 @@
|
||||
"alternateRowColors": "naprzemienne kolory wierszy",
|
||||
"horizontalBorders": "obwódki wierszy",
|
||||
"rowHoverHighlight": "podświetlanie wierszy po najechaniu",
|
||||
"verticalBorders": "obwódki kolumn"
|
||||
"verticalBorders": "obwódki kolumn",
|
||||
"showHeader": "pokaż nagłówek"
|
||||
},
|
||||
"label": {
|
||||
"releaseDate": "data premiery",
|
||||
@@ -1025,30 +1097,31 @@
|
||||
"trackNumber": "numer utworu",
|
||||
"rowIndex": "indeks wiersza",
|
||||
"rating": "$t(common.rating)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"note": "$t(common.note)",
|
||||
"biography": "$t(common.biography)",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"playCount": "liczba odtworzeń",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"discNumber": "numer płyty",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"year": "$t(common.year)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"codec": "$t(common.codec)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"genreBadge": "$t(entity.genre_one) (znaczki)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (znaczki)",
|
||||
"image": "obraz",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"composer": "kompozytor",
|
||||
"titleArtist": "$t(common.title) (wykonawca)"
|
||||
"titleArtist": "$t(common.title) (wykonawca)",
|
||||
"albumGroup": "grupa albumu"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -1057,7 +1130,7 @@
|
||||
"rating": "ocena",
|
||||
"favorite": "ulubione",
|
||||
"playCount": "odtwarzane",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"releaseYear": "rok",
|
||||
"lastPlayed": "ostatnio odtwarzane",
|
||||
"biography": "biografia",
|
||||
@@ -1066,14 +1139,14 @@
|
||||
"title": "tytuł",
|
||||
"bpm": "bpm",
|
||||
"dateAdded": "data dodania",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"trackNumber": "utwór",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"albumArtist": "wykonawca albumu",
|
||||
"path": "ścieżka",
|
||||
"discNumber": "płyta",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"size": "$t(common.size)",
|
||||
"codec": "$t(common.codec)",
|
||||
"owner": "właściciel",
|
||||
@@ -1087,7 +1160,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "broadcast",
|
||||
"ep": "ep",
|
||||
"other": "inne",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"bpm": "BPM",
|
||||
"edit": "editar",
|
||||
"favorite": "favorito",
|
||||
"currentSong": "$t(entity.track_one) atual",
|
||||
"currentSong": "$t(entity.track, {\"count\": 1}) atual",
|
||||
"descending": "abaixar",
|
||||
"dismiss": "liberar",
|
||||
"duration": "duração",
|
||||
@@ -58,7 +58,9 @@
|
||||
"owner": "dono",
|
||||
"forward": "para frente",
|
||||
"forceRestartRequired": "reinicie para aplicar as alterações… feche a notificação para reiniciar",
|
||||
"setting": "configuração",
|
||||
"setting_one": "configuração",
|
||||
"setting_many": "",
|
||||
"setting_other": "",
|
||||
"version": "versão",
|
||||
"filter_one": "filtro",
|
||||
"filter_many": "filtros",
|
||||
@@ -72,7 +74,7 @@
|
||||
"none": "nenhum",
|
||||
"menu": "menu",
|
||||
"restartRequired": "é necessário reiniciar",
|
||||
"previousSong": "anterior $t(entity.track_one)",
|
||||
"previousSong": "anterior $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "a consulta não retornou resultados",
|
||||
"quit": "sair",
|
||||
"search": "procurar",
|
||||
@@ -101,21 +103,21 @@
|
||||
},
|
||||
"action": {
|
||||
"goToPage": "vá para página",
|
||||
"addToFavorites": "adicionar em $t(entity.favorite_other)",
|
||||
"viewPlaylists": "ver $t(entity.playlist_other)",
|
||||
"addToFavorites": "adicionar em $t(entity.favorite, {\"count\": 2})",
|
||||
"viewPlaylists": "ver $t(entity.playlist, {\"count\": 2})",
|
||||
"setRating": "definir classificação",
|
||||
"moveToTop": "mover para o topo",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromQueue": "remover da fila",
|
||||
"moveToBottom": "mover para baixo",
|
||||
"editPlaylist": "editar $t(entity.playlist_one)",
|
||||
"editPlaylist": "editar $t(entity.playlist, {\"count\": 1})",
|
||||
"clearQueue": "Limpar fila",
|
||||
"addToPlaylist": "adicionar à $t(entity.playlist_one)",
|
||||
"createPlaylist": "Criar $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "remover da $t(entity.playlist_one)",
|
||||
"deletePlaylist": "deletar $t(entity.playlist_one)",
|
||||
"addToPlaylist": "adicionar à $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "Criar $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "remover da $t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "deletar $t(entity.playlist, {\"count\": 1})",
|
||||
"deselectAll": "desmarcar todos",
|
||||
"removeFromFavorites": "remover de $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "remover de $t(entity.favorite, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "Abrir em Last.fm",
|
||||
"musicbrainz": "Abrir em MusicBrainz"
|
||||
@@ -125,9 +127,9 @@
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "deletar $t(entity.playlist_one)",
|
||||
"input_confirm": "escreva o nome da $t(entity.playlist_one) para confirmar",
|
||||
"success": "$t(entity.playlist_one) deletada com sucesso"
|
||||
"title": "deletar $t(entity.playlist, {\"count\": 1})",
|
||||
"input_confirm": "escreva o nome da $t(entity.playlist, {\"count\": 1}) para confirmar",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) deletada com sucesso"
|
||||
},
|
||||
"addServer": {
|
||||
"title": "adicionar servidor",
|
||||
@@ -145,10 +147,10 @@
|
||||
"input_preferInstantMixDescription": "Usar apenas a mixagem instantânea para obter músicas semelhantes. Útil se você tiver plugins que modificam esse comportamento"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"title": "criar $t(entity.playlist_one)",
|
||||
"title": "criar $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "público",
|
||||
"input_description": "$t(common.description)",
|
||||
"success": "$t(entity.playlist_one) criada com sucesso",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) criada com sucesso",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_name": "$t(common.name)"
|
||||
},
|
||||
@@ -157,19 +159,19 @@
|
||||
"success": "servidor atualizado com sucesso"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "editar $t(entity.playlist_one)",
|
||||
"title": "editar $t(entity.playlist, {\"count\": 1})",
|
||||
"publicJellyfinNote": "O Jellyfin por algum motivo não expõe se uma playlist é pública ou não. Se você deseja que ela permaneça pública, por favor selecione a seguinte entrada",
|
||||
"success": "$t(entity.playlist_one) atualizada com sucesso"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) atualizada com sucesso"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"title": "adicionar à $t(entity.playlist_one)",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"title": "adicionar à $t(entity.playlist, {\"count\": 1})",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "pular duplicadas",
|
||||
"success": "adicionado $t(entity.trackWithCount, {\"count\": {{message}} }) para $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"title": "pesquisa de letras",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)"
|
||||
},
|
||||
"shareItem": {
|
||||
@@ -228,7 +230,6 @@
|
||||
"crossfadeDuration_description": "define a duração do efeito crossfade",
|
||||
"customCssNotice": "Atenção: embora haja alguma sanitização (proibindo url() e content:), usar CSS personalizado ainda pode representar riscos ao alterar a interface",
|
||||
"crossfadeStyle_description": "seleciona qual estilo de crossfade usado no player de áudio",
|
||||
"disableAutomaticUpdates": "desabilitar atualizações automáticas",
|
||||
"disableLibraryUpdateOnStartup": "desabilitar a verificação de novas versões na inicialização",
|
||||
"artistBackground": "Imagem de fundo do artista",
|
||||
"artistBackground_description": "Adiciona uma imagem de fundo às páginas do artista contendo a arte do artista",
|
||||
@@ -370,9 +371,9 @@
|
||||
"replayGainFallback_description": "Ganho em dB a ser aplicado se o arquivo não tiver tags de {{ReplayGain}}",
|
||||
"replayGainMode": "Modo {{ReplayGain}}",
|
||||
"replayGainMode_description": "Ajustar o ganho de volume de acordo com os valores de {{ReplayGain}} armazenados nos metadados do arquivo",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"replayGainPreamp": "Pré-amplificador {{ReplayGain}} (dB)",
|
||||
"replayGainPreamp_description": "Ajustar o ganho do pré-amplificador aplicado aos valores de {{ReplayGain}}",
|
||||
"sampleRate": "Taxa de amostragem (sample rate)",
|
||||
@@ -448,9 +449,9 @@
|
||||
"titleCombined": "$t(common.title) (combinado)",
|
||||
"discNumber": "numero do disco",
|
||||
"actions": "$t(common.action_other)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
@@ -459,7 +460,7 @@
|
||||
"dateAdded": "Data de adição",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "Última reprodução",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
@@ -469,7 +470,7 @@
|
||||
"releaseDate": "Data de lançamento",
|
||||
"rowIndex": "Índice da linha",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"trackNumber": "Número da faixa",
|
||||
"year": "$t(common.year)"
|
||||
},
|
||||
@@ -495,8 +496,8 @@
|
||||
"size": "$t(common.size)",
|
||||
"album": "Álbum",
|
||||
"albumArtist": "Artista do álbum",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "Biografia",
|
||||
"bitrate": "Taxa de bits",
|
||||
"bpm": "BPM",
|
||||
@@ -505,14 +506,14 @@
|
||||
"comment": "Comentário",
|
||||
"dateAdded": "Data adicionada",
|
||||
"favorite": "Favorito",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "Último tocado",
|
||||
"path": "Caminho",
|
||||
"playCount": "Tocados",
|
||||
"rating": "Avaliação",
|
||||
"releaseDate": "Data de lançamento",
|
||||
"releaseYear": "Ano",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"trackNumber": "Faixa"
|
||||
}
|
||||
},
|
||||
@@ -526,17 +527,17 @@
|
||||
"recentlyReleased": "Lançamentos recentes"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showTracks": "mostrar $t(entity.genre_one) $t(entity.track_other)",
|
||||
"showAlbums": "mostrar $t(entity.genre_one) $t(entity.album_other)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showTracks": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
|
||||
"showAlbums": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "faixas de {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"title": "comandos",
|
||||
@@ -548,26 +549,26 @@
|
||||
},
|
||||
"sidebar": {
|
||||
"home": "$t(common.home)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"shared": "$t(entity.playlist_other) compartilhada",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"shared": "$t(entity.playlist, {\"count\": 2}) compartilhada",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"nowPlaying": "tocando agora",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"myLibrary": "minha biblioteca"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "álbuns de {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"appMenu": {
|
||||
"openBrowserDevtools": "abrir ferramentas do desenvolvedor",
|
||||
@@ -579,7 +580,7 @@
|
||||
"goForward": "avançar",
|
||||
"version": "versão {{version}}",
|
||||
"manageServers": "gerenciar servidores",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"privateModeOff": "Desativar modo privado",
|
||||
"privateModeOn": "Ativar modo privado"
|
||||
},
|
||||
@@ -606,15 +607,15 @@
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"removeFromPlaylist": "$t(action.removeFromPlaylist)",
|
||||
"setRating": "$t(action.setRating)",
|
||||
"goToAlbum": "Ir para $t(entity.album_one)",
|
||||
"goToAlbumArtist": "Ir para $t(entity.albumArtist_one)"
|
||||
"goToAlbum": "Ir para $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "Ir para $t(entity.albumArtist, {\"count\": 1})"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"viewAllTracks": "ver todas as $t(entity.track_other)",
|
||||
"viewAllTracks": "ver todas as $t(entity.track, {\"count\": 2})",
|
||||
"appearsOn": "aparece em",
|
||||
"recentReleases": "lançamentos recentes",
|
||||
"viewDiscography": "ver discografia",
|
||||
"relatedArtists": "$t(entity.artist_other) relacionados",
|
||||
"relatedArtists": "$t(entity.artist, {\"count\": 2}) relacionados",
|
||||
"viewAll": "ver tudo",
|
||||
"topSongsFrom": "músicas mais tocadas de {{title}}",
|
||||
"topSongs": "músicas mais tocadas",
|
||||
@@ -644,7 +645,7 @@
|
||||
"noLyrics": "nenhuma letra encontrada"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "mais deste $t(entity.artist_one)",
|
||||
"moreFromArtist": "mais deste $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "mais de {{item}}",
|
||||
"released": "lançado"
|
||||
},
|
||||
@@ -676,7 +677,7 @@
|
||||
"title": "titulo",
|
||||
"disc": "disco",
|
||||
"mostPlayed": "mais tocado",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"name": "nome",
|
||||
"biography": "bibliografia",
|
||||
"duration": "duração",
|
||||
@@ -695,7 +696,7 @@
|
||||
"recentlyUpdated": "atualizado recentemente",
|
||||
"dateAdded": "data de adição",
|
||||
"isRecentlyPlayed": "foi tocado recentemente",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"recentlyAdded": "adicionado recentemente",
|
||||
"releaseDate": "data de lançamento",
|
||||
"recentlyPlayed": "tocado recentemente",
|
||||
@@ -703,7 +704,7 @@
|
||||
"isFavorited": "é favoritado",
|
||||
"releaseYear": "ano de lançamento",
|
||||
"rating": "avaliação",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"bpm": "bpm",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"comment": "comentário",
|
||||
@@ -713,8 +714,8 @@
|
||||
"bitrate": "bitrate",
|
||||
"isRated": "possui avaliação",
|
||||
"note": "nota",
|
||||
"albumCount": "número de $t(entity.album_other)",
|
||||
"genre": "$t(entity.genre_one)"
|
||||
"albumCount": "número de $t(entity.album, {\"count\": 2})",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})"
|
||||
},
|
||||
"player": {
|
||||
"playbackFetchNoResults": "nenhuma música encontrada",
|
||||
@@ -795,7 +796,7 @@
|
||||
"track_one": "faixa",
|
||||
"track_many": "faixas",
|
||||
"track_other": "faixas",
|
||||
"smartPlaylist": "$t(entity.playlist_one) inteligente",
|
||||
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) inteligente",
|
||||
"song_one": "música",
|
||||
"song_many": "músicas",
|
||||
"song_other": "músicas",
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
{
|
||||
"action": {
|
||||
"addToFavorites": "adicionar a $t(entity.favorite_other)",
|
||||
"addToPlaylist": "adicionar a $t(entity.playlist_one)",
|
||||
"addToFavorites": "adicionar a $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "adicionar a $t(entity.playlist, {\"count\": 1})",
|
||||
"clearQueue": "limpar fila",
|
||||
"createPlaylist": "criar $t(entity.playlist_one)",
|
||||
"deletePlaylist": "apagar $t(entity.playlist_one)",
|
||||
"createPlaylist": "criar $t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "apagar $t(entity.playlist, {\"count\": 1})",
|
||||
"deselectAll": "desmarcar todos",
|
||||
"editPlaylist": "editar $t(entity.playlist_one)",
|
||||
"editPlaylist": "editar $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "vá para página",
|
||||
"moveToNext": "mover para o próximo",
|
||||
"moveToBottom": "mover para baixo",
|
||||
"moveToTop": "mover para o topo",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "remover de $t(entity.favorite_other)",
|
||||
"removeFromPlaylist": "remover da $t(entity.playlist_one)",
|
||||
"removeFromFavorites": "remover de $t(entity.favorite, {\"count\": 2})",
|
||||
"removeFromPlaylist": "remover da $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "remover da fila",
|
||||
"setRating": "definir classificação",
|
||||
"toggleSmartPlaylistEditor": "alternar editor $t(entity.smartPlaylist)",
|
||||
"viewPlaylists": "ver $t(entity.playlist_other)",
|
||||
"viewPlaylists": "ver $t(entity.playlist, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "Abrir em Last.fm",
|
||||
"musicbrainz": "Abrir em MusicBrainz"
|
||||
@@ -52,7 +52,7 @@
|
||||
"configure": "configurar",
|
||||
"confirm": "confirmar",
|
||||
"create": "criar",
|
||||
"currentSong": "$t(entity.track_one) atual",
|
||||
"currentSong": "$t(entity.track, {\"count\": 1}) atual",
|
||||
"decrease": "diminuir",
|
||||
"delete": "apagar",
|
||||
"descending": "abaixar",
|
||||
@@ -92,7 +92,7 @@
|
||||
"path": "caminho",
|
||||
"playerMustBePaused": "o player deve estar pausado",
|
||||
"preview": "pré-visualizar",
|
||||
"previousSong": "anterior $t(entity.track_one)",
|
||||
"previousSong": "anterior $t(entity.track, {\"count\": 1})",
|
||||
"quit": "sair",
|
||||
"random": "aleatório",
|
||||
"rating": "classificação",
|
||||
@@ -106,7 +106,9 @@
|
||||
"saveAndReplace": "gravar e substituir",
|
||||
"saveAs": "gravar como",
|
||||
"search": "procurar",
|
||||
"setting": "configuração",
|
||||
"setting_one": "configuração",
|
||||
"setting_many": "",
|
||||
"setting_other": "",
|
||||
"share": "partilhar",
|
||||
"size": "tamanho",
|
||||
"sortOrder": "ordem",
|
||||
@@ -164,7 +166,7 @@
|
||||
"playlistWithCount_one": "{{count}} playlist",
|
||||
"playlistWithCount_many": "{{count}} playlists",
|
||||
"playlistWithCount_other": "{{count}} playlists",
|
||||
"smartPlaylist": "$t(entity.playlist_one) inteligente",
|
||||
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) inteligente",
|
||||
"track_one": "faixa",
|
||||
"track_many": "faixas",
|
||||
"track_other": "faixas",
|
||||
@@ -201,10 +203,10 @@
|
||||
"systemFontError": "ocorreu um erro ao tentar obter fontes do sistema"
|
||||
},
|
||||
"filter": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumCount": "número de $t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"albumCount": "número de $t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "bibliografia",
|
||||
"bitrate": "bitrate",
|
||||
"bpm": "bpm",
|
||||
@@ -217,7 +219,7 @@
|
||||
"duration": "duração",
|
||||
"favorited": "favoritado",
|
||||
"fromYear": "a partir do ano",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"id": "id",
|
||||
"isCompilation": "é compilação",
|
||||
"isFavorited": "é favoritado",
|
||||
@@ -259,31 +261,31 @@
|
||||
"title": "adicionar servidor"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "pular duplicadas",
|
||||
"success": "adicionado $t(entity.trackWithCount, {\"count\": {{message}} }) para $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "adicionar à $t(entity.playlist_one)"
|
||||
"title": "adicionar à $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "público",
|
||||
"success": "$t(entity.playlist_one) criada com sucesso",
|
||||
"title": "criar $t(entity.playlist_one)"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) criada com sucesso",
|
||||
"title": "criar $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "escreva o nome da $t(entity.playlist_one) para confirmar",
|
||||
"success": "$t(entity.playlist_one) apagada com sucesso",
|
||||
"title": "apagar $t(entity.playlist_one)"
|
||||
"input_confirm": "escreva o nome da $t(entity.playlist, {\"count\": 1}) para confirmar",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) apagada com sucesso",
|
||||
"title": "apagar $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"publicJellyfinNote": "O Jellyfin por algum motivo não expõe se uma playlist é pública ou não. Se deseja que ela permaneça pública, por favor selecione a seguinte entrada",
|
||||
"success": "$t(entity.playlist_one) atualizada com sucesso",
|
||||
"title": "editar $t(entity.playlist_one)"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) atualizada com sucesso",
|
||||
"title": "editar $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "pesquisa de letras"
|
||||
},
|
||||
@@ -310,24 +312,24 @@
|
||||
"appearsOn": "aparece em",
|
||||
"recentReleases": "lançamentos recentes",
|
||||
"viewDiscography": "ver discografia",
|
||||
"relatedArtists": "$t(entity.artist_other) relacionados",
|
||||
"relatedArtists": "$t(entity.artist, {\"count\": 2}) relacionados",
|
||||
"topSongs": "músicas mais tocadas",
|
||||
"topSongsFrom": "músicas mais tocadas de {{title}}",
|
||||
"viewAll": "ver tudo",
|
||||
"viewAllTracks": "ver todas as $t(entity.track_other)"
|
||||
"viewAllTracks": "ver todas as $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "mais deste $t(entity.artist_one)",
|
||||
"moreFromArtist": "mais deste $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "mais que {{item}}",
|
||||
"released": "lançado"
|
||||
},
|
||||
"albumList": {
|
||||
"artistAlbums": "álbuns de {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
|
||||
"title": "$t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"appMenu": {
|
||||
"collapseSidebar": "recolher barra lateral",
|
||||
@@ -338,7 +340,7 @@
|
||||
"openBrowserDevtools": "abrir ferramentas do programador",
|
||||
"quit": "$t(common.quit)",
|
||||
"selectServer": "selecionar servidor",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"version": "versão {{version}}"
|
||||
},
|
||||
"manageServers": {
|
||||
@@ -397,9 +399,9 @@
|
||||
"noLyrics": "nenhuma letra encontrada"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "mostrar $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "mostrar $t(entity.genre_one) $t(entity.track_other)",
|
||||
"title": "$t(entity.genre_other)"
|
||||
"showAlbums": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -425,7 +427,7 @@
|
||||
"reorder": "reordenar apenas disponível quando ordenado pelo id"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"advanced": "avançado",
|
||||
@@ -435,24 +437,24 @@
|
||||
"windowTab": "janela"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"myLibrary": "a minha biblioteca",
|
||||
"nowPlaying": "agora a tocar",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "$t(entity.playlist_other) partilhada",
|
||||
"tracks": "$t(entity.track_other)"
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "$t(entity.playlist, {\"count\": 2}) partilhada",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "faixas de {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
@@ -521,7 +523,6 @@
|
||||
"customCssEnable_description": "permite escrever css customizado",
|
||||
"customCssNotice": "Aviso: apesar de existir alguma higienização (url() e content: não são permitidas), o uso de css personalizado ainda pode representar riscos ao alterar a interface",
|
||||
"customCss": "css customizado",
|
||||
"disableAutomaticUpdates": "desativar atualizações automáticas",
|
||||
"disableLibraryUpdateOnStartup": "desativar a verificação de novas versões na inicialização",
|
||||
"discordApplicationId": "{{discord}} ID da aplicação",
|
||||
"discordIdleStatus_description": "quando ativado, atualiza o estado enquanto o player está ocioso",
|
||||
|
||||
@@ -1,42 +1,44 @@
|
||||
{
|
||||
"action": {
|
||||
"editPlaylist": "редактировать $t(entity.playlist_one)",
|
||||
"editPlaylist": "редактировать $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "перейти на страницу",
|
||||
"moveToTop": "вверх",
|
||||
"clearQueue": "очистить очередь",
|
||||
"addToFavorites": "добавить в $t(entity.favorite_other)",
|
||||
"addToPlaylist": "добавить в $t(entity.playlist_one)",
|
||||
"createPlaylist": "создать $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "удалить из $t(entity.playlist_one)",
|
||||
"viewPlaylists": "показать $t(entity.playlist_other)",
|
||||
"addToFavorites": "добавить в $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "добавить в $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "создать $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "удалить из $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "показать $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "удалить $t(entity.playlist_one)",
|
||||
"deletePlaylist": "удалить $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "удалить из очереди",
|
||||
"deselectAll": "снять выделение",
|
||||
"moveToBottom": "вниз",
|
||||
"setRating": "оценить",
|
||||
"toggleSmartPlaylistEditor": "вкл./откл. редактор $t(entity.smartPlaylist)",
|
||||
"removeFromFavorites": "удалить из $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "удалить из $t(entity.favorite, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "открыть на Last.fm",
|
||||
"musicbrainz": "открыть на MusicBrainz"
|
||||
},
|
||||
"moveToNext": "следующий",
|
||||
"addOrRemoveFromSelection": "добавить или удалить из выделения",
|
||||
"createRadioStation": "создать $t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "удалить $t(entity.radioStation_one)",
|
||||
"selectAll": "выделить все",
|
||||
"createRadioStation": "создать $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "удалить $t(entity.radioStation, {\"count\": 1})",
|
||||
"selectAll": "выбрать все",
|
||||
"downloadStarted": "Начата загрузка {{count}} предметов",
|
||||
"moveUp": "перейти наверх",
|
||||
"moveDown": "Перейти вниз",
|
||||
"moveUp": "перейти вверх",
|
||||
"moveDown": "перейти вниз",
|
||||
"holdToMoveToTop": "Удержать для перехода на верх",
|
||||
"holdToMoveToBottom": "удержать для перехода вниз",
|
||||
"moveItems": "переместить предметы",
|
||||
"moveItems": "переместить элементы",
|
||||
"shuffle": "Перемешать",
|
||||
"shuffleAll": "перемешать все",
|
||||
"shuffleSelected": "Смешать выбранное",
|
||||
"shuffleSelected": "перемешать выбранные",
|
||||
"viewMore": "Посмотреть больше",
|
||||
"openApplicationDirectory": "открыть папку приложения"
|
||||
"openApplicationDirectory": "открыть папку приложения",
|
||||
"selectRangeOfItems": "выбрать диапазон элементов",
|
||||
"goToCurrent": "перейти к текущему элементу"
|
||||
},
|
||||
"common": {
|
||||
"backward": "назад",
|
||||
@@ -51,7 +53,7 @@
|
||||
"left": "лево",
|
||||
"save": "сохранить",
|
||||
"right": "право",
|
||||
"currentSong": "текущий $t(entity.track_one)",
|
||||
"currentSong": "текущий $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "закрыть",
|
||||
"trackNumber": "трек",
|
||||
"descending": "по убыванию",
|
||||
@@ -83,8 +85,8 @@
|
||||
"forceRestartRequired": "перезапустите приложение, чтобы применить изменения... закройте уведомление для перезапуска",
|
||||
"setting": "настройка",
|
||||
"setting_one": "настройка",
|
||||
"setting_few": "",
|
||||
"setting_many": "",
|
||||
"setting_few": "настройки",
|
||||
"setting_many": "настроек",
|
||||
"version": "версия",
|
||||
"title": "название",
|
||||
"filter_one": "фильтр",
|
||||
@@ -110,7 +112,7 @@
|
||||
"sortOrder": "порядок",
|
||||
"menu": "меню",
|
||||
"restartRequired": "необходим перезапуск приложения",
|
||||
"previousSong": "предыдущий $t(entity.track_one)",
|
||||
"previousSong": "предыдущий $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "ничего не найдено",
|
||||
"quit": "выйти",
|
||||
"expand": "раскрыть",
|
||||
@@ -135,7 +137,7 @@
|
||||
"albumPeak": "пик альбома",
|
||||
"trackPeak": "пик трека",
|
||||
"additionalParticipants": "Другие участники",
|
||||
"newVersion": "новая версия приложения установлена ({{version}})",
|
||||
"newVersion": "установлена новая версия ({{version}})",
|
||||
"viewReleaseNotes": "Список изменений",
|
||||
"bitDepth": "Разрядность",
|
||||
"sampleRate": "частота дискретизации",
|
||||
@@ -155,7 +157,16 @@
|
||||
"sort": "сортировать",
|
||||
"clean": "очистить",
|
||||
"gridRows": "Строки в сетке",
|
||||
"tableColumns": "Столбцы таблицы"
|
||||
"tableColumns": "Столбцы таблицы",
|
||||
"doNotShowAgain": "не показывать снова",
|
||||
"itemsMore": "{{count}} более",
|
||||
"view": "посмотреть",
|
||||
"example": "пример",
|
||||
"rename": "переименовать",
|
||||
"explicit": "нецензурная лексика",
|
||||
"externalLinks": "внешние ссылки",
|
||||
"explicitStatus": "признак нецензурного контента",
|
||||
"newVersionAvailable": "доступна новая версия"
|
||||
},
|
||||
"entity": {
|
||||
"album_one": "альбом",
|
||||
@@ -174,8 +185,8 @@
|
||||
"play_one": "{{count}} прослушивание",
|
||||
"play_few": "{{count}} прослушивание",
|
||||
"play_many": "{{count}} прослушивание",
|
||||
"artist_one": "автор",
|
||||
"artist_few": "автора",
|
||||
"artist_one": "исполнитель",
|
||||
"artist_few": "исполнителя",
|
||||
"artist_many": "исполнителей",
|
||||
"folderWithCount_one": "{{count}} папка",
|
||||
"folderWithCount_few": "{{count}} папки",
|
||||
@@ -195,16 +206,16 @@
|
||||
"albumWithCount_one": "{{count}} альбом",
|
||||
"albumWithCount_few": "{{count}} альбома",
|
||||
"albumWithCount_many": "{{count}} альбомов",
|
||||
"favorite_one": "любимый",
|
||||
"favorite_few": "любимых",
|
||||
"favorite_many": "любимые",
|
||||
"favorite_one": "избранное",
|
||||
"favorite_few": "избранное",
|
||||
"favorite_many": "избранные",
|
||||
"artistWithCount_one": "{{count}} автор",
|
||||
"artistWithCount_few": "{{count}} автора",
|
||||
"artistWithCount_many": "{{count}} авторов",
|
||||
"folder_one": "папка",
|
||||
"folder_few": "папки",
|
||||
"folder_many": "папок",
|
||||
"smartPlaylist": "умный $t(entity.playlist_one)",
|
||||
"smartPlaylist": "умный $t(entity.playlist, {\"count\": 1})",
|
||||
"genreWithCount_one": "{{count}} жанр",
|
||||
"genreWithCount_few": "{{count}} жанра",
|
||||
"genreWithCount_many": "{{count}} жанров",
|
||||
@@ -214,9 +225,9 @@
|
||||
"radioStation_one": "радиостанция",
|
||||
"radioStation_few": "радиостанции",
|
||||
"radioStation_many": "радиостанции",
|
||||
"radioStationWithCount_one": "Радиостанция",
|
||||
"radioStationWithCount_few": "Радиостанций",
|
||||
"radioStationWithCount_many": "Радиостанции"
|
||||
"radioStationWithCount_one": "{{count}} радиостанция",
|
||||
"radioStationWithCount_few": "{{count}} радиостанции",
|
||||
"radioStationWithCount_many": "{{count}} радиостанций"
|
||||
},
|
||||
"table": {
|
||||
"config": {
|
||||
@@ -245,8 +256,6 @@
|
||||
"trackNumber": "номер трека",
|
||||
"rowIndex": "номер строки",
|
||||
"rating": "$t(common.rating)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"note": "$t(common.note)",
|
||||
"biography": "$t(common.biography)",
|
||||
"owner": "$t(common.owner)",
|
||||
@@ -255,13 +264,11 @@
|
||||
"playCount": "количество воспроизведений",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"discNumber": "номер диска",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"year": "$t(common.year)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"codec": "$t(common.codec)",
|
||||
"songCount": "$t(entity.track_other)"
|
||||
"titleArtist": "$t(common.title) (артист)"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -272,9 +279,7 @@
|
||||
"lastPlayed": "последний",
|
||||
"releaseDate": "дата выхода",
|
||||
"title": "название",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"trackNumber": "трек",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"path": "путь",
|
||||
"discNumber": "диск",
|
||||
"size": "$t(common.size)",
|
||||
@@ -284,8 +289,6 @@
|
||||
"biography": "биография",
|
||||
"codec": "$t(common.codec)",
|
||||
"comment": "комментарий",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"bitrate": "битрейт",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"bpm": "bpm"
|
||||
@@ -299,7 +302,7 @@
|
||||
"remotePortError": "произошла ошибка при попытке установить порт удаленного сервера",
|
||||
"serverRequired": "сервер не выбран",
|
||||
"authenticationFailed": "не удалось авторизироваться",
|
||||
"apiRouteError": "невозможно выполнить запрос",
|
||||
"apiRouteError": "не удалось выполнить запрос",
|
||||
"genericError": "произошла ошибка",
|
||||
"credentialsRequired": "введите данные для входа",
|
||||
"sessionExpiredError": "ваш сеанс истёк",
|
||||
@@ -320,7 +323,10 @@
|
||||
"noNetwork": "сервер недоступен",
|
||||
"noNetworkDescription": "Не удалось подключиться к серверу",
|
||||
"saveQueueFailed": "Не удалось сохранить очередь",
|
||||
"settingsSyncError": "обнаружены несоответствия между настройками рендерера и основным процессом. перезапустите приложение, чтобы изменения вступили в силу"
|
||||
"settingsSyncError": "обнаружены несоответствия между настройками рендерера и основным процессом. перезапустите приложение, чтобы изменения вступили в силу",
|
||||
"invalidJson": "невалидный JSON",
|
||||
"serverLockSingleServer": "при заблокированном сервере разрешается использовать только один сервер",
|
||||
"playbackPausedDueToError": "воспроизведение было приостановлено из-за ошибки"
|
||||
},
|
||||
"filter": {
|
||||
"isCompilation": "сборник",
|
||||
@@ -329,12 +335,10 @@
|
||||
"dateAdded": "дата добавления",
|
||||
"communityRating": "рейтинг сообщества",
|
||||
"favorited": "любимый",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"isFavorited": "любимые",
|
||||
"bpm": "уд./мин.",
|
||||
"disc": "диск",
|
||||
"biography": "биография",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"duration": "длительность",
|
||||
"fromYear": "год",
|
||||
"criticRating": "рейтинг критиков",
|
||||
@@ -342,18 +346,16 @@
|
||||
"comment": "комментировать",
|
||||
"playCount": "количество воспроизведений",
|
||||
"recentlyUpdated": "обновленные недавно",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"recentlyPlayed": "проигрывались недавно",
|
||||
"owner": "$t(common.owner)",
|
||||
"title": "название",
|
||||
"rating": "рейтинг",
|
||||
"search": "поиск",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"recentlyAdded": "недавно добавленные",
|
||||
"note": "заметка",
|
||||
"name": "название",
|
||||
"releaseDate": "дата выхода",
|
||||
"albumCount": "количество $t(entity.album_other)",
|
||||
"albumCount": "количество $t(entity.album, {\"count\": 2})",
|
||||
"path": "путь",
|
||||
"isRecentlyPlayed": "недавно проигрывался",
|
||||
"releaseYear": "год выхода",
|
||||
@@ -363,8 +365,16 @@
|
||||
"random": "случайно",
|
||||
"lastPlayed": "последний раз проигрывалась",
|
||||
"toYear": "до года",
|
||||
"album": "$t(entity.album_one)",
|
||||
"trackNumber": "трек"
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"trackNumber": "трек",
|
||||
"matchAnd": "и",
|
||||
"matchOr": "или",
|
||||
"sortName": "сортировка по имени",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
},
|
||||
"player": {
|
||||
"repeat_all": "повторять все",
|
||||
@@ -390,30 +400,41 @@
|
||||
"pause": "пауза",
|
||||
"queue_clear": "очистить очередь",
|
||||
"muted": "звук отключён",
|
||||
"unfavorite": "убрать из любимых",
|
||||
"unfavorite": "убрать из избранного",
|
||||
"queue_moveToTop": "переместить выделенное вниз",
|
||||
"queue_moveToBottom": "переместить выделенное вверх",
|
||||
"shuffle_off": "перемешивание выключено",
|
||||
"addLast": "последний",
|
||||
"mute": "отключить звук",
|
||||
"skip_forward": "вперёд",
|
||||
"viewQueue": "показать очередь"
|
||||
"viewQueue": "показать очередь",
|
||||
"addLastShuffled": "последний (смешанный)",
|
||||
"addNextShuffled": "следующий (смешанный)",
|
||||
"artistRadio": "Радио артист",
|
||||
"holdToShuffle": "удержать для смешивания",
|
||||
"lyrics": "тексты песен",
|
||||
"restoreQueueFromServer": "восстановить очередь с сервера",
|
||||
"saveQueueToServer": "сохранить очередь на сервер",
|
||||
"trackRadio": "трек радио",
|
||||
"albumRadio": "Радио по альбому",
|
||||
"sleepTimer": "таймер сна",
|
||||
"sleepTimer_endOfSong": "конец текущей песни",
|
||||
"sleepTimer_minutes": "{{count}} минут",
|
||||
"sleepTimer_hours": "{{count}} часов",
|
||||
"sleepTimer_off": "выключено",
|
||||
"sleepTimer_timeRemaining": "{{time}} осталось",
|
||||
"sleepTimer_setCustom": "установить таймер",
|
||||
"sleepTimer_custom": "пользовательский",
|
||||
"sleepTimer_cancel": "отменить таймер"
|
||||
},
|
||||
"page": {
|
||||
"sidebar": {
|
||||
"nowPlaying": "сейчас играет",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"search": "$t(common.search)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"home": "$t(common.home)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"myLibrary": "Моя библиотека",
|
||||
"shared": "Публичные плейлисты $t(entity.playlist_other)"
|
||||
"shared": "Публичные плейлисты $t(entity.playlist, {\"count\": 2})",
|
||||
"collections": "коллекции"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"config": {
|
||||
@@ -441,7 +462,6 @@
|
||||
"appMenu": {
|
||||
"selectServer": "список серверов",
|
||||
"version": "версия {{version}}",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"manageServers": "редактировать список серверов",
|
||||
"expandSidebar": "развернуть боковую панель",
|
||||
"collapseSidebar": "Скрыть боковую панель",
|
||||
@@ -453,7 +473,8 @@
|
||||
"privateModeOn": "Включить приватный режим",
|
||||
"selectMusicFolder": "выбрать папку с музыкой",
|
||||
"noMusicFolder": "папка с музыкой не выбрана",
|
||||
"multipleMusicFolders": "{{count}} выбрано музыкальных папок"
|
||||
"multipleMusicFolders": "{{count}} выбрано музыкальных папок",
|
||||
"commandPalette": "открыть командную строку"
|
||||
},
|
||||
"manageServers": {
|
||||
"title": "сервера",
|
||||
@@ -483,9 +504,12 @@
|
||||
"removeFromQueue": "$t(action.removeFromQueue)",
|
||||
"showDetails": "получить информацию",
|
||||
"shareItem": "поделиться",
|
||||
"goToAlbum": "Перейти к $t(entity.album_one)",
|
||||
"goToAlbumArtist": "Перейти к $t(entity.albumArtist_one)",
|
||||
"goTo": "перейти в"
|
||||
"goToAlbum": "Перейти к $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "Перейти к $t(entity.albumArtist, {\"count\": 1})",
|
||||
"goTo": "перейти в",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"moveItems": "$t(action.moveItems)"
|
||||
},
|
||||
"home": {
|
||||
"mostPlayed": "слушают чаще всего",
|
||||
@@ -496,7 +520,7 @@
|
||||
"recentlyReleased": "Новинки"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "больше от $t(entity.artist_one)",
|
||||
"moreFromArtist": "больше от $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "больше из {{item}}",
|
||||
"released": "выпущен"
|
||||
},
|
||||
@@ -518,19 +542,18 @@
|
||||
"audio": "аудио",
|
||||
"lyrics": "тексты песен",
|
||||
"lyricsDisplay": "отображение текстов песен",
|
||||
"transcoding": "транскодирование"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"transcoding": "транскодирование",
|
||||
"scrobble": "скробблер",
|
||||
"logger": "Отладка",
|
||||
"playerFilters": "фильтры проигрывателя",
|
||||
"queryBuilder": "конструктор очереди",
|
||||
"discord": "дискорд"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showAlbums": "показать $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "показать $t(entity.genre_one) $t(entity.track_other)"
|
||||
"showAlbums": "показать $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "показать $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"artistTracks": "Треки {{artist}}"
|
||||
},
|
||||
"globalSearch": {
|
||||
@@ -544,26 +567,27 @@
|
||||
"playlist": {
|
||||
"reorder": "сортировка доступна только по ID"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"artistAlbums": "альбомы {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\"\n$t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"topSongs": "популярные треки",
|
||||
"viewAll": "посмотреть всё",
|
||||
"appearsOn": "появляется в",
|
||||
"viewDiscography": "посмотреть дискографию",
|
||||
"relatedArtists": "похож на $t(entity.artist_other)",
|
||||
"viewAllTracks": "посмотреть все $t(entity.track_other)",
|
||||
"relatedArtists": "похож на $t(entity.artist, {\"count\": 2})",
|
||||
"viewAllTracks": "посмотреть все $t(entity.track, {\"count\": 2})",
|
||||
"recentReleases": "недавние релизы",
|
||||
"about": "О {{artist}}",
|
||||
"topSongsFrom": "популярные треки из {{title}}",
|
||||
"groupingTypeAll": "все типы выпусков",
|
||||
"groupingTypePrimary": "основные типы выпусков"
|
||||
"groupingTypePrimary": "основные типы выпусков",
|
||||
"favoriteSongs": "любимые треки",
|
||||
"topSongsCommunity": "сообщество",
|
||||
"topSongsPersonal": "личное",
|
||||
"favoriteSongsFrom": "любимые треки от {{title}}"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copyPath": "скопировать путь в буфер обмена",
|
||||
@@ -572,20 +596,39 @@
|
||||
},
|
||||
"radioList": {
|
||||
"title": "радиостанции"
|
||||
},
|
||||
"windowBar": {
|
||||
"privateMode": "(Режим приватности)",
|
||||
"paused": "(Приостановлено) "
|
||||
},
|
||||
"collections": {
|
||||
"saveAsCollection": "сохранить коллекцией",
|
||||
"overrideExisting": "переопределить существующий"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "коммито после {{stable}}",
|
||||
"noStableReleaseToCompare": "нет стабильной версии, с которой можно было бы сравнить",
|
||||
"noNewCommits": "изменения в этом диапазоне отсутствуют"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "удалить $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) успешно удалён",
|
||||
"input_confirm": "напишите название $t(entity.playlist_one) для подтверждения"
|
||||
"title": "удалить $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) успешно удалён",
|
||||
"input_confirm": "напишите название $t(entity.playlist, {\"count\": 1}) для подтверждения"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "создать $t(entity.playlist_one)",
|
||||
"title": "создать $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "публичный",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) успешно создан",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) успешно создан",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addServer": {
|
||||
@@ -608,11 +651,11 @@
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "добавлено: $t(entity.trackWithCount, {\"count\": {{message}} }) в $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "добавить в $t(entity.playlist_one)",
|
||||
"title": "добавить в $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "не добавлять дубликаты",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "создать $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "для создания нового списка выполните поиск по $t(entity.playlist_other) или введите соответствующий текст"
|
||||
"create": "создать $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "для создания нового списка выполните поиск по $t(entity.playlist, {\"count\": 2}) или введите соответствующий текст",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "обновление сервера",
|
||||
@@ -629,12 +672,12 @@
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"title": "поиск слов песни"
|
||||
"title": "поиск слов песни",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "редактировать $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) обновлён успешно",
|
||||
"title": "редактировать $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) обновлён успешно",
|
||||
"publicJellyfinNote": "Jellyfin по какой-то причине не предоставляет информацию о том, публичный плейлист или нет. Если вы хотите, чтобы он остался публичным, выберите следующую опцию",
|
||||
"editNote": "редактирование больших плейлистов вручную не рекомендуется. Вы уверены, что готовы принять риск потери данных, который может возникнуть в результате перезаписи существующего плейлиста?"
|
||||
},
|
||||
@@ -644,7 +687,9 @@
|
||||
"createFailed": "не удалось создать ссылку для общего доступа (проверьте, включен ли общий доступ?)",
|
||||
"allowDownloading": "разрешить скачивание",
|
||||
"setExpiration": "установить срок действия",
|
||||
"description": "описание"
|
||||
"description": "описание",
|
||||
"copyToClipboard": "Скопировано в буфер обмена: Ctrl+C, Enter",
|
||||
"successMustClick": "Ссылка создана успешо. Нажимите, чтобы окрыть"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "Приватный режим включен. Статус воспроизведения скрыт от внешних интеграций",
|
||||
@@ -678,7 +723,8 @@
|
||||
"input_played": "воспроизвести фильтр",
|
||||
"input_played_optionAll": "все треки",
|
||||
"input_played_optionUnplayed": "только не игранные треки",
|
||||
"input_played_optionPlayed": "только игранные треки"
|
||||
"input_played_optionPlayed": "только воспроизведённые треки",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})"
|
||||
}
|
||||
},
|
||||
"setting": {
|
||||
@@ -699,7 +745,6 @@
|
||||
"disableLibraryUpdateOnStartup": "отключить проверку новых версий при запуске приложения",
|
||||
"minimizeToTray_description": "сворачивать приложение в панель уведомлений",
|
||||
"audioPlayer_description": "укажите, какой аудиоплеер использовать для воспроизведения",
|
||||
"disableAutomaticUpdates": "отключить проверку обновлений",
|
||||
"exitToTray_description": "При закрытии приложения - оно останется в панели уведомлений",
|
||||
"fontType_optionCustom": "пользовательский",
|
||||
"remotePassword": "пароль к серверу удалённого управления",
|
||||
@@ -718,7 +763,7 @@
|
||||
"clearCache": "очистить кэш браузера",
|
||||
"clearQueryCache": "очистить кэш feishin",
|
||||
"audioDevice": "устройство воспроизведения",
|
||||
"audioDevice_description": "выберите устройство воспроизведения (только в режиме аудиоплеера web)",
|
||||
"audioDevice_description": "выберите устройство воспроизведения",
|
||||
"buttonSize": "размер кнопок панели управления воспроизведением",
|
||||
"hotkey_volumeDown": "уменьшить громкость",
|
||||
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
|
||||
@@ -732,9 +777,7 @@
|
||||
"hotkey_zoomOut": "уменьшить масштаб",
|
||||
"playbackStyle_optionCrossFade": "затухание",
|
||||
"replayGainMode": "режим {{ReplayGain}}",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"clearQueryCache_description": "так называемая \"мягкая очистка\" feishin: обновляются плейлисты, метаданные треков, но сохранённые тексты треков сбрасываются. настройки, учётные данные и кэшированные изображения сохраняются",
|
||||
"hotkey_favoriteCurrentSong": "добавить $t(common.currentSong) в избранное",
|
||||
"globalMediaHotkeys": "глобальные мультимедийные горячие клавиши",
|
||||
@@ -878,7 +921,139 @@
|
||||
"artistBackground": "Фоновое изображение исполнителя",
|
||||
"artistBackground_description": "Добавляет фоновое изображение для страниц исполнителя, содержащих обложку исполнителя",
|
||||
"artistBackgroundBlur": "процент размытия обложки исполнителя",
|
||||
"artistBackgroundBlur_description": "регулирует процент размытия к заднему фону исполнителя"
|
||||
"artistBackgroundBlur_description": "регулирует процент размытия к заднему фону исполнителя",
|
||||
"autoDJ_description": "автоматически добавлять похожие песни в очередь воспроизведения",
|
||||
"autoDJ_itemCount": "количество элементов",
|
||||
"autoDJ_itemCount_description": "количество элементов, которые пытаются добавить в очередь при включенной функции автоматического диджеинга",
|
||||
"autoDJ_timing": "расчетное время",
|
||||
"autoDJ_timing_description": "количество песен, оставшихся в очереди до срабатывания автоматического диджея",
|
||||
"useThemeAccentColor": "использовать цвет темы",
|
||||
"useThemeAccentColor_description": "используйте основной цвет определенный в выбранной теме вместо пользовательского акцентного цвета",
|
||||
"analyticsDisable": "Отказаться от аналитики на основе использования",
|
||||
"analyticsDisable_description": "Анонимизированные данные об использовании отправляются разработчику для улучшения приложения",
|
||||
"crossfadeStyle": "стиль перехода",
|
||||
"customCss_description": "пользовательский CSS-контент. Примечание: свойства content и remote urls не допускаются. Предварительный просмотр вашего контента показан ниже. Дополнительные поля, которые вы не задали, присутствуют из-за проверки на наличие ошибок",
|
||||
"customCss": "Пользовательский CSS",
|
||||
"customCssNotice": "Предупреждение: несмотря на некоторую очистку (запрет использования url() и content:), использование пользовательских CSS-стилей всё ещё может представлять риски, изменяя интерфейс",
|
||||
"releaseChannel_optionBeta": "Бета",
|
||||
"releaseChannel_optionLatest": "последний",
|
||||
"releaseChannel": "Тип релиза",
|
||||
"releaseChannel_description": "Выберите между стабильной, бета или альфа (ночной) версией для автоматического обновления",
|
||||
"discordDisplayType_artistname": "Имя (имена) исполнителя",
|
||||
"discordDisplayType_description": "это меняет то, что вы слушаете в своем статусе",
|
||||
"discordDisplayType_songname": "имя песни",
|
||||
"discordDisplayType": "{{discord}} тип отображения",
|
||||
"autosave": "автоматическое сохранение очереди воспроизведения",
|
||||
"autosave_description": "включите автоматическое сохранение очереди воспроизведения на вашем сервере. это возможно только при использовании Navidrome/Subsonic, и у вас не может быть смешанной очереди воспроизведения.",
|
||||
"autosaveCount_description": "количество изменений трека перед сохранением очереди. 1 (минимум) означает каждое изменение песни",
|
||||
"useThemePrimaryShade": "используйте основной оттенок темы",
|
||||
"useThemePrimaryShade_description": "используйте основной оттенок, определенный в выбранной теме, для выбора основного цвета",
|
||||
"primaryShade": "основной оттенок",
|
||||
"primaryShade_description": "переопределите основной оттенок (0-9), используемый для кнопок, ссылок и других элементов основного цвета",
|
||||
"analyticsEnable": "Отправлять аналитику использования",
|
||||
"analyticsEnable_description": "Анонимные данные использования отправляются разработчику с целью улучшения приложения",
|
||||
"artistReleaseTypeConfiguration": "настройка типов релизов исполнителя",
|
||||
"artistReleaseTypeConfiguration_description": "настройте, какие типы релизов отображаются и в каком порядке на странице исполнителя",
|
||||
"automaticUpdates": "Автообновления",
|
||||
"automaticUpdates_description": "Проверять и устанавливать обновления автоматически",
|
||||
"discordLinkType_description": "добавляет ссылки на {{lastfm}} / {{musicbrainz}} в Rich Presence {{discord}} для треков и исполнителей. {{musicbrainz}} точнее, но зависит от тегов и не даёт ссылок на артистов {{lastfm}} почти всегда предоставляет ссылку. Без дополнительных сетевых запросов.",
|
||||
"blurExplicitImages": "скрывать нецензурные изображения размытием",
|
||||
"blurExplicitImages_description": "обложки с нецензурным контентом будут размываются",
|
||||
"autosaveCount": "частота автоматического сохранения очереди воспроизведения",
|
||||
"discordLinkType_mbz_lastfm": "{{musicbrainz}} (запасной источник: {{lastfm}} )",
|
||||
"discordLinkType": "интеграция {{discord}} статуса",
|
||||
"discordListening_description": "Показывать статус \"Слушает\" вместо \"Играет\"",
|
||||
"discordListening": "показывать статус \"Слушает\"",
|
||||
"discordPausedStatus_description": "если включено, статус будет отображаться даже когда воспроизведение на паузе",
|
||||
"discordPausedStatus": "показывать расширенный статус при паузе",
|
||||
"discordRichPresence": "{{discord}}: расширенный статус",
|
||||
"discordStateIcon": "показывать иконку воспроизведения",
|
||||
"enableAutoTranslation_description": "включить автоматический перевод при получении текста",
|
||||
"enableAutoTranslation": "включить автоперевод",
|
||||
"exportImportSettings_control_description": "экспорт/импорт настроек в JSON",
|
||||
"exportImportSettings_control_exportText": "экспорт настроек",
|
||||
"exportImportSettings_control_importText": "импорт настроек",
|
||||
"exportImportSettings_control_title": "импорт/экспорт настроек",
|
||||
"exportImportSettings_destructiveWarning": "Импорт настроек полностью заменит ваши текущие настройки. Убедитесь, что все данные выше верны, перед тем как нажать кнопку «Импорт»!",
|
||||
"exportImportSettings_importBtn": "Импорт настроек",
|
||||
"exportImportSettings_importModalTitle": "Импорт настроек Feishin",
|
||||
"exportImportSettings_importSuccess": "Настройки успешно импортированы!",
|
||||
"exportImportSettings_notValidJSON": "Некорректный JSON-файл",
|
||||
"exportImportSettings_offendingKeyError": "Неверный ключ \"{{offendingKey}}\": {{reason}}",
|
||||
"followCurrentSong_description": "Автоматически прокручивать очередь до текущего трека",
|
||||
"followCurrentSong": "следить за текущим треком",
|
||||
"homeFeatureStyle_description": "настройка стиля карусели на главном экране",
|
||||
"homeFeatureStyle": "стиль карусели на главной",
|
||||
"homeFeatureStyle_optionMultiple": "несколько",
|
||||
"language": "Язык интерфейса",
|
||||
"autoDJ": "авто DJ",
|
||||
"releaseChannel_optionAlpha": "альфа (ночная версия)",
|
||||
"discordServeImage": "предоставить {{discord}} изображения с сервера",
|
||||
"discordServeImage_description": "получать обложки треков для {{discord}} rich presence непосредственно с сервера, доступно только для Jellyfin и Navidrome. {{discord}} использует бота для получения картинок, поэтому ваш сервер должен быть доступен из общедоступной сети",
|
||||
"discordStateIcon_description": "показывать иконку \"играет\" в статусе. иконка паузы показывается всегда когда опция \"Показывать расширенный статус при паузе\" включена",
|
||||
"homeFeatureStyle_optionSingle": "одиночный",
|
||||
"hotkey_navigateHome": "перейти на главную",
|
||||
"lastfm_description": "показывать ссылки Last.fm на страницах артистов и альбомов",
|
||||
"lastfm": "показывать ссылки last.fm",
|
||||
"lastfmApiKey_description": "API ключ для {{lastfm}}. необходим для обложек",
|
||||
"lastfmApiKey": "API ключ {{lastfm}}",
|
||||
"logLevel": "детализация логов",
|
||||
"logLevel_description": "определяет степень детализации логов. \"отладка\" отображает все логи, \"ошибка\" отображает только ошибки",
|
||||
"logLevel_optionDebug": "отладка",
|
||||
"logLevel_optionError": "ошибка",
|
||||
"logLevel_optionInfo": "инфо",
|
||||
"logLevel_optionWarn": "предупреждение",
|
||||
"mpvExtraParameters": "дополнительные параметры mpv",
|
||||
"mpvExtraParameters_description": "дополнительные аргументы, передаваемые mpv",
|
||||
"musicbrainz_description": "показывать ссылки MusicBrainz на страницах артистов и альбомов, где есть ID MusicBrainz",
|
||||
"musicbrainz": "показывать ссылки MusicBrainz",
|
||||
"neteaseTranslation_description": "Если включено, получает и отображает переведённые текста песен с NetEase по возможности",
|
||||
"neteaseTranslation": "Включить переводы NetEase",
|
||||
"notify": "включить уведомления о песнях",
|
||||
"notify_description": "показывать уведомления при смене песни",
|
||||
"pathReplace": "замена пути к файлу",
|
||||
"pathReplace_description": "заменяет стандартный путь сервера",
|
||||
"pathReplace_optionRemovePrefix": "убрать префикс",
|
||||
"pathReplace_optionAddPrefix": "добавить префикс",
|
||||
"playerFilters": "Фильтр песен в очереди",
|
||||
"playerFilters_description": "пропускает песни при добавлении в очередь, основываясь на заданном критерии",
|
||||
"artistRadioCount_description": "определяет количество песен для добавления в радио по артисту/треку",
|
||||
"artistRadioCount": "кол-во радио по артисту/треку",
|
||||
"imageResolution": "разрешение изображения",
|
||||
"imageResolution_description": "разрешение изображений, используемых в приложении. при значении \"0\" будет использоваться исходное разрешение",
|
||||
"imageResolution_optionItemCard": "карточка элемента",
|
||||
"imageResolution_optionSidebar": "боковая панель",
|
||||
"imageResolution_optionHeader": "заголовок",
|
||||
"imageResolution_optionFullScreenPlayer": "полноэкранный проигрыватель",
|
||||
"playerbarSlider": "ползунок проигрывателя",
|
||||
"playerbarSlider_description": "waveform не рекомендуется при слабом подключении к интернету",
|
||||
"playerbarSliderType_optionSlider": "ползунок",
|
||||
"playerbarSliderType_optionWaveform": "waveform",
|
||||
"playerbarWaveformAlign": "положение waveform",
|
||||
"playerbarWaveformAlign_optionTop": "верх",
|
||||
"playerbarWaveformAlign_optionCenter": "центр",
|
||||
"playerbarWaveformAlign_optionBottom": "низ",
|
||||
"playerbarWaveformBarWidth": "ширина элемента waveform",
|
||||
"playerbarWaveformGap": "промежутки waveform",
|
||||
"playerbarWaveformRadius": "радиус waveform",
|
||||
"preferLocalLyrics_description": "по возможности предпочитать локальные текста песен загружаемым",
|
||||
"preferLocalLyrics": "предпочтитать локальные текста песен",
|
||||
"showLyricsInSidebar_description": "к очереди воспроизведения будет добавлена панель, отображающая текст песни",
|
||||
"showLyricsInSidebar": "показывать текст песни в боковой панели проигрывателя",
|
||||
"showRatings_description": "определяет, отображается ли в интерфейсе функция звёздного рейтинга",
|
||||
"showRatings": "показывать звёздный рейтинг",
|
||||
"enableGridMultiSelect": "включить множественное выделение",
|
||||
"enableGridMultiSelect_description": "если включено, то позволяет выделять несколько элементов в таблицах. если отключено, то нажатие на элемент таблицы откроет страницу элемента",
|
||||
"showVisualizerInSidebar_description": "к боковой части проигрывателя будет добавлена панель, показывающая визуализатор",
|
||||
"showVisualizerInSidebar": "показывать визуализатор в боковой панели",
|
||||
"combinedLyricsAndVisualizer_description": "Объединяет текст песни и визуализатор в одну панель заместо двух",
|
||||
"combinedLyricsAndVisualizer": "объединить текст и визуализатор в одну панель",
|
||||
"preservePitch_description": "сохраняет тональность при изменении скорости воспроизведения",
|
||||
"preservePitch": "сохранять тональность",
|
||||
"audioFadeOnStatusChange": "плавное изменение звука",
|
||||
"audioFadeOnStatusChange_description": "включает эффекты затухания и появления звука при изменении статуса (пауза/проигрывание)",
|
||||
"preventSleepOnPlayback_description": "запрещает спящий режим экрана, пока играет музыка",
|
||||
"preventSleepOnPlayback": "не переходить в спящий режим"
|
||||
},
|
||||
"releaseType": {
|
||||
"secondary": {
|
||||
@@ -887,10 +1062,19 @@
|
||||
"compilation": "подборка",
|
||||
"interview": "интервью",
|
||||
"remix": "ремикс",
|
||||
"live": "прямой эфир"
|
||||
"live": "прямой эфир",
|
||||
"soundtrack": "саундтрек",
|
||||
"spokenWord": "Художественная декламация",
|
||||
"audioDrama": "радиопостановка",
|
||||
"fieldRecording": "запись вне студии",
|
||||
"mixtape": "сборник",
|
||||
"djMix": "dj микс"
|
||||
},
|
||||
"primary": {
|
||||
"other": "другие"
|
||||
"other": "другие",
|
||||
"broadcast": "транслировать",
|
||||
"ep": "эп",
|
||||
"single": "сингл"
|
||||
}
|
||||
},
|
||||
"datetime": {
|
||||
@@ -919,5 +1103,30 @@
|
||||
"notInPlaylist": "не в",
|
||||
"notInTheLast": "не в последнем",
|
||||
"startsWith": "начинается с"
|
||||
},
|
||||
"queryBuilder": {
|
||||
"standardTags": "стандартные теги",
|
||||
"customTags": "пользовательские теги"
|
||||
},
|
||||
"visualizer": {
|
||||
"presets": "Пресеты",
|
||||
"selectPreset": "Выбрать Пресет",
|
||||
"applyPreset": "Применить Пресет",
|
||||
"saveAsPreset": "Сохранить пресет",
|
||||
"updatePreset": "Обновить пресет",
|
||||
"copyConfiguration": "Копировать Конфигурацию",
|
||||
"pasteConfiguration": "Вставить Конфигурацию",
|
||||
"pasteConfigurationPlaceholder": "Вставить JSON конфигурацию...",
|
||||
"pasteFromClipboard": "Вставить из буфера обмена",
|
||||
"applyConfiguration": "Применить Конфигурацию",
|
||||
"configCopied": "Конфигурация скопирована в буфер обмена",
|
||||
"configCopyFailed": "Ошибка применения конфигурации",
|
||||
"configPasted": "Конфигурация успешно установлена",
|
||||
"configPasteFailed": "Ошибка применения конфигурации. Проверьте формат.",
|
||||
"configPasteReadFailed": "Ошибка чтения из буфера обмена",
|
||||
"presetName": "Название пресета",
|
||||
"presetNamePlaceholder": "Введите название пресета",
|
||||
"general": "Главная",
|
||||
"lineWidth": "Ширина линии"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
{
|
||||
"action": {
|
||||
"addToFavorites": "pridať do $t(entity.favorite_other)",
|
||||
"addToPlaylist": "pridať do $t(entity.playlist_one)",
|
||||
"addToFavorites": "pridať do $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "pridať do $t(entity.playlist, {\"count\": 1})",
|
||||
"clearQueue": "vymazať frontu",
|
||||
"createPlaylist": "vytvoriť $t(entity.playlist_one)",
|
||||
"deletePlaylist": "odstrániť $t(entity.playlist_one)",
|
||||
"createPlaylist": "vytvoriť $t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "odstrániť $t(entity.playlist, {\"count\": 1})",
|
||||
"deselectAll": "odznačiť všetko",
|
||||
"editPlaylist": "upraviť $t(entity.playlist_one)",
|
||||
"editPlaylist": "upraviť $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "ísť na stránku",
|
||||
"moveToNext": "prejsť na ďalší",
|
||||
"moveToBottom": "presunúť sa na spodok",
|
||||
"moveToTop": "presunúť sa navrch",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "odstrániť z $t(entity.favorite_other)",
|
||||
"removeFromPlaylist": "odstrániť z $t(entity.playlist_one)",
|
||||
"removeFromFavorites": "odstrániť z $t(entity.favorite, {\"count\": 2})",
|
||||
"removeFromPlaylist": "odstrániť z $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "odstrániť z fronty",
|
||||
"setRating": "ohodnotiť",
|
||||
"toggleSmartPlaylistEditor": "prepnúť $t(entity.smartPlaylist) editor",
|
||||
"viewPlaylists": "zobraziť $t(entity.playlist_other)",
|
||||
"viewPlaylists": "zobraziť $t(entity.playlist, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "Otvoriť v Last.fm",
|
||||
"musicbrainz": "Otvoriť v MusicBrainz"
|
||||
@@ -54,7 +54,7 @@
|
||||
"configure": "nastaviť",
|
||||
"confirm": "potvrdiť",
|
||||
"create": "vytvoriť",
|
||||
"currentSong": "aktuálne $t(entity.track_one)",
|
||||
"currentSong": "aktuálne $t(entity.track, {\"count\": 1})",
|
||||
"decrease": "znížiť",
|
||||
"delete": "zmazať",
|
||||
"descending": "zostupne",
|
||||
@@ -94,7 +94,7 @@
|
||||
"path": "cesta",
|
||||
"playerMustBePaused": "prehrávač musí byť pozastavený",
|
||||
"preview": "náhľad",
|
||||
"previousSong": "predchádzajúca $t(entity.track_one)",
|
||||
"previousSong": "predchádzajúca $t(entity.track, {\"count\": 1})",
|
||||
"quit": "ukončiť",
|
||||
"random": "náhodne",
|
||||
"rating": "hodnotenie",
|
||||
@@ -109,7 +109,9 @@
|
||||
"saveAndReplace": "uložiť a nahradiť",
|
||||
"saveAs": "uložiť ako",
|
||||
"search": "vyhľadať",
|
||||
"setting": "nastavenie",
|
||||
"setting_one": "nastavenie",
|
||||
"setting_few": "",
|
||||
"setting_other": "",
|
||||
"share": "zdieľať",
|
||||
"size": "veľkosť",
|
||||
"sortOrder": "poradie",
|
||||
@@ -126,10 +128,10 @@
|
||||
},
|
||||
"filter": {
|
||||
"name": "meno",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumCount": "$t(entity.album_other) počet",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) počet",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "životopis",
|
||||
"bitrate": "bitrate",
|
||||
"bpm": "bpm",
|
||||
@@ -142,7 +144,7 @@
|
||||
"duration": "dĺžka",
|
||||
"favorited": "obľúbené",
|
||||
"fromYear": "od roku",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"id": "id",
|
||||
"isCompilation": "je kompilácia",
|
||||
"isFavorited": "je obľúbený",
|
||||
@@ -183,31 +185,31 @@
|
||||
"title": "pridať server"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "preskočiť duplicity",
|
||||
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) pridané do $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "pridať do $t(entity.playlist_one)"
|
||||
"title": "pridať do $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "verejný",
|
||||
"success": "$t(entity.playlist_one) úspešne vytvorený",
|
||||
"title": "vytvoriť $t(entity.playlist_one)"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) úspešne vytvorený",
|
||||
"title": "vytvoriť $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "pre potvrdenie zadajte názov $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) bol úspešne odstránený",
|
||||
"title": "odstrániť $t(entity.playlist_one)"
|
||||
"input_confirm": "pre potvrdenie zadajte názov $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) bol úspešne odstránený",
|
||||
"title": "odstrániť $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"publicJellyfinNote": "Jellyfin z nejakého dôvodu neinformuje, či je playlist verejný alebo nie. Ak si ho želáte ponechať ako verejný, ponechajte nasledujúci vstup ako povolený",
|
||||
"success": "$t(entity.playlist_one) úspešne aktualizovaný",
|
||||
"title": "upraviť $t(entity.playlist_one)"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) úspešne aktualizovaný",
|
||||
"title": "upraviť $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "vyhľadať text skladby"
|
||||
},
|
||||
@@ -277,7 +279,7 @@
|
||||
"playlistWithCount_one": "{{count}} playlist",
|
||||
"playlistWithCount_few": "{{count}} playlisty",
|
||||
"playlistWithCount_other": "{{count}} playlistov",
|
||||
"smartPlaylist": "smart $t(entity.playlist_one)",
|
||||
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
|
||||
"track_one": "stopa",
|
||||
"track_few": "stopy",
|
||||
"track_other": "stôp",
|
||||
@@ -320,24 +322,24 @@
|
||||
"appearsOn": "vyskytuje sa na",
|
||||
"recentReleases": "posledné vydania",
|
||||
"viewDiscography": "zobraziť diskografiu",
|
||||
"relatedArtists": "súvisiaci s $t(entity.artist_other)",
|
||||
"relatedArtists": "súvisiaci s $t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "top skladby",
|
||||
"topSongsFrom": "top skladby z {{title}}",
|
||||
"viewAll": "zobraziť všetko",
|
||||
"viewAllTracks": "zobraziť všetky $t(entity.track_other)"
|
||||
"viewAllTracks": "zobraziť všetky $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "viac od $t(entity.artist_one)",
|
||||
"moreFromArtist": "viac od $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "viac z {{item}}",
|
||||
"released": "vydané"
|
||||
},
|
||||
"albumList": {
|
||||
"artistAlbums": "albumy {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
|
||||
"title": "$t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"appMenu": {
|
||||
"collapseSidebar": "zbaliť bočnú lištu",
|
||||
@@ -350,7 +352,7 @@
|
||||
"openBrowserDevtools": "otvoriť vývojárske nástroje prehliadača",
|
||||
"quit": "$t(common.quit)",
|
||||
"selectServer": "vybrať server",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"version": "verzia {{version}}"
|
||||
},
|
||||
"manageServers": {
|
||||
@@ -384,8 +386,8 @@
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"shareItem": "zdieľať položku",
|
||||
"showDetails": "získať informácie",
|
||||
"goToAlbum": "choď na $t(entity.album_one)",
|
||||
"goToAlbumArtist": "choď na $t(entity.albumArtist_one)"
|
||||
"goToAlbum": "choď na $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "choď na $t(entity.albumArtist, {\"count\": 1})"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"config": {
|
||||
@@ -411,9 +413,9 @@
|
||||
"noLyrics": "nenašli sa žiadne texty"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "zobraziť $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "zobraziť $t(entity.genre_one) $t(entity.track_other)",
|
||||
"title": "$t(entity.genre_other)"
|
||||
"showAlbums": "zobraziť $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "zobraziť $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -439,7 +441,7 @@
|
||||
"reorder": "zmena poradia povolená len pri zoradení podľa id"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"advanced": "pokročilé",
|
||||
@@ -449,24 +451,24 @@
|
||||
"windowTab": "okno"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"myLibrary": "moja knižnica",
|
||||
"nowPlaying": "teraz hrá",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "zdieľaný $t(entity.playlist_other)",
|
||||
"tracks": "$t(entity.track_other)"
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "zdieľaný $t(entity.playlist, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "skladby {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
@@ -539,7 +541,6 @@
|
||||
"customCss_description": "vlastný css obsah. Poznámka: obsah a vzdialené url linky sú defaultne deaktivované.Náhľad vášho obsahu je zobrazený nižšie. Pridané polia, ktoré ste nenastavovali boli pridané pri sanitizácii",
|
||||
"customFontPath": "cesta k vlastným fontom",
|
||||
"customFontPath_description": "Nastaví cestu k vlastným fontom na použitie aplikáciou",
|
||||
"disableAutomaticUpdates": "vypnúť automatické aktualizácie",
|
||||
"disableLibraryUpdateOnStartup": "vypnúť kontrolu nových verzií pri štarte",
|
||||
"discordApplicationId": "id aplikácie {{discord}}",
|
||||
"discordApplicationId_description": "aplikačné id pre plnohodnotné prepojenie s {{discord}} (predvolená hodnota {{defaultId}})",
|
||||
@@ -669,9 +670,9 @@
|
||||
"replayGainFallback_description": "zosilenie v db, ktoré sa aplikuje, ak súbor nemá {{ReplayGain}} štítky",
|
||||
"replayGainMode": "{{ReplayGain}} režim",
|
||||
"replayGainMode_description": "pozmení zosilenie hlasitosti podľa hodnôt {{ReplayGain}} uložených v metadátach súboru",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"replayGainPreamp": "predzosilenie {{ReplayGain}} dB",
|
||||
"replayGainPreamp_description": "pozmení predzosilenie použité na hodnoty {{ReplayGain}}",
|
||||
"sampleRate": "vzorkovacia frekvencia",
|
||||
@@ -740,8 +741,8 @@
|
||||
"column": {
|
||||
"album": "album",
|
||||
"albumArtist": "interpret albumu",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "životopis",
|
||||
"bitrate": "bitrate",
|
||||
"bpm": "bpm",
|
||||
@@ -751,7 +752,7 @@
|
||||
"dateAdded": "dátum pridania",
|
||||
"discNumber": "disk",
|
||||
"favorite": "obľúbené",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "posledne hraný",
|
||||
"path": "cesta",
|
||||
"playCount": "prehratí",
|
||||
@@ -759,7 +760,7 @@
|
||||
"releaseDate": "dátum vydania",
|
||||
"releaseYear": "rok",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "názov",
|
||||
"trackNumber": "skladba"
|
||||
},
|
||||
@@ -776,9 +777,9 @@
|
||||
},
|
||||
"label": {
|
||||
"actions": "$t(common.action_other)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
@@ -788,7 +789,7 @@
|
||||
"discNumber": "číslo disku",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "posledne prehraté",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
@@ -798,7 +799,7 @@
|
||||
"releaseDate": "dátum vydania",
|
||||
"rowIndex": "číslo riadku",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(common.title)",
|
||||
"titleCombined": "$t(common.title) (kombinovaný)",
|
||||
"trackNumber": "číslo skladby",
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
{
|
||||
"action": {
|
||||
"addToFavorites": "dodaj na $t(entity.favorite_other)",
|
||||
"addToPlaylist": "dodaj na $t(entity.playlist_one)",
|
||||
"addToFavorites": "dodaj na $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "dodaj na $t(entity.playlist, {\"count\": 1})",
|
||||
"clearQueue": "počisti čakalno vrsto",
|
||||
"createPlaylist": "ustvari $t(entity.playlist_one)",
|
||||
"deletePlaylist": "izbriši $t(entity.playlist_one)",
|
||||
"createPlaylist": "ustvari $t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "izbriši $t(entity.playlist, {\"count\": 1})",
|
||||
"deselectAll": "odizberi vse",
|
||||
"editPlaylist": "uredi $t(entity.playlist_one)",
|
||||
"editPlaylist": "uredi $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "pojdi na stran",
|
||||
"moveToNext": "pojdi na naslednjo",
|
||||
"moveToBottom": "pojdi na dno",
|
||||
"moveToTop": "pojdi na vrh",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "odstrani iz $t(entity.favorite_other)",
|
||||
"removeFromPlaylist": "odstrani iz $t(entity.playlist_one)",
|
||||
"removeFromFavorites": "odstrani iz $t(entity.favorite, {\"count\": 2})",
|
||||
"removeFromPlaylist": "odstrani iz $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "odstrani iz čakalne vrste",
|
||||
"setRating": "nastavi oceno",
|
||||
"toggleSmartPlaylistEditor": "preklopi urejevalnik $t(entity.smartPlaylist)",
|
||||
"viewPlaylists": "poglej $t(entity.playlist_other)",
|
||||
"viewPlaylists": "poglej $t(entity.playlist, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "Odpri v Last.fm",
|
||||
"musicbrainz": "Odpri v MusicBrainz"
|
||||
@@ -54,7 +54,7 @@
|
||||
"configure": "prilagodi",
|
||||
"confirm": "potrdi",
|
||||
"create": "ustvari",
|
||||
"currentSong": "trenutna $t(entity.track_one)",
|
||||
"currentSong": "trenutna $t(entity.track, {\"count\": 1})",
|
||||
"decrease": "zmanjšaj",
|
||||
"delete": "izbriši",
|
||||
"descending": "padajoče",
|
||||
@@ -94,7 +94,7 @@
|
||||
"path": "pot",
|
||||
"playerMustBePaused": "predvajalnik mora biti ustavljen",
|
||||
"preview": "predogled",
|
||||
"previousSong": "prejšnja $t(entity.track_one)",
|
||||
"previousSong": "prejšnja $t(entity.track, {\"count\": 1})",
|
||||
"quit": "izhod",
|
||||
"random": "naključno",
|
||||
"rating": "ocena",
|
||||
@@ -108,7 +108,10 @@
|
||||
"saveAndReplace": "shrani in zamenjaj",
|
||||
"saveAs": "shrani kot",
|
||||
"search": "išči",
|
||||
"setting": "nastavitev",
|
||||
"setting_one": "nastavitev",
|
||||
"setting_two": "",
|
||||
"setting_few": "",
|
||||
"setting_other": "",
|
||||
"share": "deli",
|
||||
"size": "velikost",
|
||||
"sortOrder": "vrstni red",
|
||||
@@ -181,7 +184,7 @@
|
||||
"playlistWithCount_two": "{{count}} seznama predvajanja",
|
||||
"playlistWithCount_few": "{{count}} seznami predvajanja",
|
||||
"playlistWithCount_other": "{{count}} seznamov predvajanja",
|
||||
"smartPlaylist": "pametni $t(entity.playlist_one)",
|
||||
"smartPlaylist": "pametni $t(entity.playlist, {\"count\": 1})",
|
||||
"track_one": "skladba",
|
||||
"track_two": "skladbi",
|
||||
"track_few": "skladbe",
|
||||
@@ -221,10 +224,10 @@
|
||||
"systemFontError": "napaka pri pridobivanju sistemskih pisav"
|
||||
},
|
||||
"filter": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumCount": "število $t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"albumCount": "število $t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biografija",
|
||||
"bitrate": "bitna hitrost",
|
||||
"bpm": "bpm",
|
||||
@@ -237,7 +240,7 @@
|
||||
"duration": "trajanje",
|
||||
"favorited": "priljubljeno",
|
||||
"fromYear": "od leta",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"id": "identifikator",
|
||||
"isCompilation": "je kompilacija",
|
||||
"isFavorited": "je dodan med priljubljene",
|
||||
@@ -279,31 +282,31 @@
|
||||
"title": "dodaj strežnik"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "preskoči duplikate",
|
||||
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) dodan v $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "dodaj v $t(entity.playlist_one)"
|
||||
"title": "dodaj v $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "javno",
|
||||
"success": "$t(entity.playlist_one) je bil uspešno ustvarjen",
|
||||
"title": "ustvari $t(entity.playlist_one)"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) je bil uspešno ustvarjen",
|
||||
"title": "ustvari $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "vpišite ime $t(entity.playlist_one) za potrditev",
|
||||
"success": "$t(entity.playlist_one) uspešno izbrisan",
|
||||
"title": "izbriši $t(entity.playlist_one)"
|
||||
"input_confirm": "vpišite ime $t(entity.playlist, {\"count\": 1}) za potrditev",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) uspešno izbrisan",
|
||||
"title": "izbriši $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"publicJellyfinNote": "Jellyfin ne poda informacij o tem, ali gre za javni ali zasebni seznam predvajanja. Če želite, da seznam predvajanja ostane javen, izberite naslednji vnos",
|
||||
"success": "$t(entity.playlist_one) uspešno posodobljen",
|
||||
"title": "uredi $t(entity.playlist_one)"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) uspešno posodobljen",
|
||||
"title": "uredi $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "iskanje po besedilu"
|
||||
},
|
||||
@@ -331,24 +334,24 @@
|
||||
"appearsOn": "se pojavi na",
|
||||
"recentReleases": "zadnje izdaje",
|
||||
"viewDiscography": "poglej diskografijo",
|
||||
"relatedArtists": "sorodni $t(entity.artist_other)",
|
||||
"relatedArtists": "sorodni $t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "najboljše skladbe",
|
||||
"topSongsFrom": "najboljše skladbe iz {{title}}",
|
||||
"viewAll": "poglej vse",
|
||||
"viewAllTracks": "poglej vse $t(entity.track_other)"
|
||||
"viewAllTracks": "poglej vse $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "več od $t(entity.artist_one)",
|
||||
"moreFromArtist": "več od $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "več iz {{item}}",
|
||||
"released": "izdano"
|
||||
},
|
||||
"albumList": {
|
||||
"artistAlbums": "albumi izvajalca {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
|
||||
"title": "$t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"appMenu": {
|
||||
"collapseSidebar": "skrij stransko vrstico",
|
||||
@@ -359,7 +362,7 @@
|
||||
"openBrowserDevtools": "odpri orodja za razvijalce brskalnika",
|
||||
"quit": "$t(common.quit)",
|
||||
"selectServer": "izberi strežnik",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"version": "verzija {{version}}"
|
||||
},
|
||||
"manageServers": {
|
||||
@@ -418,9 +421,9 @@
|
||||
"noLyrics": "ni bilo najdenih besedil"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "prikaži $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "prikaži $t(entity.genre_one) $t(entity.track_other)",
|
||||
"title": "$t(entity.genre_other)"
|
||||
"showAlbums": "prikaži $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "prikaži $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -446,7 +449,7 @@
|
||||
"reorder": "preurejanje je omogočeno samo pri razvrščanju po identifikatorju"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"advanced": "napredno",
|
||||
@@ -456,24 +459,24 @@
|
||||
"windowTab": "okno"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"myLibrary": "moja knjižnica",
|
||||
"nowPlaying": "trenutno se predvaja",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "deljen $t(entity.playlist_other)",
|
||||
"tracks": "$t(entity.track_other)"
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "deljen $t(entity.playlist, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "skladbe po {{artist}}",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
@@ -545,7 +548,6 @@
|
||||
"customCss_description": "vsebina css po meri. Opomba: vsebina in oddaljeni url-ji so prepovedane lastnosti. Spodaj je prikazan predogled vaše vsebine. Dodatna polja, ki jih niste nastavili, so prisotna zaradi prečiščevanja",
|
||||
"customFontPath": "pot za pisavo po meri",
|
||||
"customFontPath_description": "nastavi pot do pisave po meri",
|
||||
"disableAutomaticUpdates": "onemogoči samodejne posodobitve",
|
||||
"disableLibraryUpdateOnStartup": "onemogoči prevejranje novih verzij ob zagonu",
|
||||
"discordApplicationId": "{{discord}} identifikator aplikacije",
|
||||
"discordApplicationId_description": "identifikator aplikacije za {{discord}} bogato prezenco (privzeto {{defaultId}})",
|
||||
|
||||
@@ -88,11 +88,10 @@
|
||||
"hotkey_globalSearch": "globalno pretraživanje",
|
||||
"gaplessAudio_description": "postavlja opciju bez pauze zvuka za mpv (preporučeno: slabo)",
|
||||
"remoteUsername_description": "postavlja korisničko ime za daljinsku kontrolu servera. Ako su i korisničko ime i lozinka prazni, autentifikacija će biti onemogućena",
|
||||
"disableAutomaticUpdates": "onemogući automatsko ažuriranje",
|
||||
"exitToTray_description": "izlazak aplikacije u sistemsku traku",
|
||||
"followLyric_description": "pomera tekst pesme na trenutnu poziciju reprodukcije",
|
||||
"hotkey_favoritePreviousSong": "omiljena $t(common.previousSong)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"lyricOffset": "pomeraj teksta (ms)",
|
||||
"discordUpdateInterval_description": "vreme u sekundama između svakog ažuriranja (minimum 15 sekundi)",
|
||||
"fontType_optionCustom": "prilagođeni font",
|
||||
@@ -104,7 +103,7 @@
|
||||
"playbackStyle_optionCrossFade": "prelazak sa preklapanjem",
|
||||
"hotkey_rate3": "oceni sa 3 zvezdice",
|
||||
"font": "font",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"themeLight_description": "postavlja svetlu temu za aplikaciju",
|
||||
"hotkey_toggleFullScreenPlayer": "prebaci na prikaz na celom ekranu",
|
||||
"hotkey_localSearch": "pretraživanje na stranici",
|
||||
@@ -187,23 +186,23 @@
|
||||
"useSystemTheme": "koristi sistemsku temu"
|
||||
},
|
||||
"action": {
|
||||
"editPlaylist": "izmeni $t(entity.playlist_one)",
|
||||
"editPlaylist": "izmeni $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "idi na stranu",
|
||||
"moveToTop": "idi na vrh",
|
||||
"clearQueue": "očisti listu",
|
||||
"addToFavorites": "dodaj u $t(entity.favorite_other)",
|
||||
"addToPlaylist": "dodaj u $t(entity.playlist_one)",
|
||||
"createPlaylist": "napravi $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "ukloni iz $t(entity.playlist_one)",
|
||||
"viewPlaylists": "vidi $t(entity.playlist_other)",
|
||||
"addToFavorites": "dodaj u $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "dodaj u $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "napravi $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "ukloni iz $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "vidi $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "obriši $t(entity.playlist_one)",
|
||||
"deletePlaylist": "obriši $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "ukloni iz liste",
|
||||
"deselectAll": "deselektuj sve",
|
||||
"moveToBottom": "idi na dno",
|
||||
"setRating": "oceni",
|
||||
"toggleSmartPlaylistEditor": "pokreni $t(entity.smartPlaylist) editor",
|
||||
"removeFromFavorites": "ukloni iz $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "ukloni iz $t(entity.favorite, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "Otvori u Last.fm",
|
||||
"musicbrainz": "Otvori u MusicBrainz"
|
||||
@@ -222,7 +221,7 @@
|
||||
"left": "levo",
|
||||
"save": "sačuvaj",
|
||||
"right": "desno",
|
||||
"currentSong": "trenutno $t(entity.track_one)",
|
||||
"currentSong": "trenutno $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "sklopi",
|
||||
"trackNumber": "pesma",
|
||||
"descending": "silazno",
|
||||
@@ -252,7 +251,9 @@
|
||||
"delete": "obriši",
|
||||
"cancel": "otkaži",
|
||||
"forceRestartRequired": "restartuj da primeniš izmene… zatvori notifikaciju za restart",
|
||||
"setting": "podešavanje",
|
||||
"setting_one": "podešavanje",
|
||||
"setting_few": "",
|
||||
"setting_other": "",
|
||||
"version": "verzija",
|
||||
"title": "naziv",
|
||||
"filter_one": "filter",
|
||||
@@ -279,7 +280,7 @@
|
||||
"none": "nijedan",
|
||||
"menu": "meni",
|
||||
"restartRequired": "restart potreban",
|
||||
"previousSong": "prethodna $t(entity.track_one)",
|
||||
"previousSong": "prethodna $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "upit je bez rezultata",
|
||||
"quit": "izađi",
|
||||
"expand": "proširi",
|
||||
@@ -316,8 +317,8 @@
|
||||
"trackNumber": "broj pesme",
|
||||
"rowIndex": "indeks reda",
|
||||
"rating": "$t(common.rating)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"note": "$t(common.note)",
|
||||
"biography": "$t(common.biography)",
|
||||
"owner": "$t(common.owner)",
|
||||
@@ -326,11 +327,11 @@
|
||||
"playCount": "broj puštanja",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"discNumber": "disk broj",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"year": "$t(common.year)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)"
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -339,7 +340,7 @@
|
||||
"rating": "rejting",
|
||||
"favorite": "favorit",
|
||||
"playCount": "puštanja",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"releaseYear": "godina",
|
||||
"lastPlayed": "zadnje puštana",
|
||||
"biography": "biografija",
|
||||
@@ -348,10 +349,10 @@
|
||||
"title": "naziv",
|
||||
"bpm": "bpm",
|
||||
"dateAdded": "datum dodavanja",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"trackNumber": "pesma",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"albumArtist": "album artist",
|
||||
"path": "putanja",
|
||||
"discNumber": "disk",
|
||||
@@ -394,17 +395,17 @@
|
||||
"rating": "rejting",
|
||||
"search": "pretraga",
|
||||
"bitrate": "bitrejt",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"recentlyAdded": "skorije dodata",
|
||||
"note": "notacija",
|
||||
"name": "ime",
|
||||
"dateAdded": "datum dodavanja",
|
||||
"releaseDate": "datum izdavanja",
|
||||
"albumCount": "$t(entity.album_other) albuma",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) albuma",
|
||||
"communityRating": "ocena zajednice",
|
||||
"path": "putanja",
|
||||
"favorited": "favoriti",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "je skorije puštana",
|
||||
"isFavorited": "je favorit",
|
||||
"bpm": "bpm",
|
||||
@@ -413,7 +414,7 @@
|
||||
"disc": "disk",
|
||||
"biography": "biografija",
|
||||
"songCount": "broj pesama",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"duration": "trajanje",
|
||||
"isPublic": "je javna",
|
||||
"random": "nasumično",
|
||||
@@ -421,22 +422,22 @@
|
||||
"toYear": "do godine",
|
||||
"fromYear": "iz godine",
|
||||
"criticRating": "ocena kritičara",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"trackNumber": "pesma"
|
||||
},
|
||||
"page": {
|
||||
"sidebar": {
|
||||
"nowPlaying": "trenutno pušta",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)"
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"config": {
|
||||
@@ -459,7 +460,7 @@
|
||||
"appMenu": {
|
||||
"selectServer": "izaberi server",
|
||||
"version": "verzija {{version}}",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"manageServers": "upravljaj serverima",
|
||||
"expandSidebar": "proširi bočnu traku",
|
||||
"collapseSidebar": "skloni bočnu traku",
|
||||
@@ -494,7 +495,7 @@
|
||||
"recentlyPlayed": "nedavno puštane pesme"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "još od ovog $t(entity.artist_one)",
|
||||
"moreFromArtist": "još od ovog $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "još od {{item}}"
|
||||
},
|
||||
"setting": {
|
||||
@@ -504,13 +505,13 @@
|
||||
"windowTab": "prozor"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)"
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -521,24 +522,24 @@
|
||||
"title": "komande"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)"
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "obriši $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) uspešno obrisan",
|
||||
"input_confirm": "unesite ime $t(entity.playlist_one) za potvrdu"
|
||||
"title": "obriši $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) uspešno obrisan",
|
||||
"input_confirm": "unesite ime $t(entity.playlist, {\"count\": 1}) za potvrdu"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "kreiraj $t(entity.playlist_one)",
|
||||
"title": "kreiraj $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "javno",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) uspešno kreiran",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) uspešno kreiran",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addServer": {
|
||||
@@ -555,10 +556,10 @@
|
||||
"error_savePassword": "došlo je do greške prilikom pokušaja čuvanja lozinke"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "dodato {{message}} $t(entity.track_other) u {{numOfPlaylists}} $t(entity.playlist_other)",
|
||||
"title": "dodaj u $t(entity.playlist_one)",
|
||||
"success": "dodato {{message}} $t(entity.track, {\"count\": 2}) u {{numOfPlaylists}} $t(entity.playlist, {\"count\": 2})",
|
||||
"title": "dodaj u $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "preskoči duplikate",
|
||||
"input_playlists": "$t(entity.playlist_other)"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "ažuriraj server",
|
||||
@@ -570,11 +571,11 @@
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"title": "pretraga teksta pesme"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "izmeni $t(entity.playlist_one)"
|
||||
"title": "izmeni $t(entity.playlist, {\"count\": 1})"
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
@@ -614,7 +615,7 @@
|
||||
"folder_one": "folder",
|
||||
"folder_few": "foldera",
|
||||
"folder_other": "foldera",
|
||||
"smartPlaylist": "pametna $t(entity.playlist_one)",
|
||||
"smartPlaylist": "pametna $t(entity.playlist, {\"count\": 1})",
|
||||
"album_one": "album",
|
||||
"album_few": "albumi",
|
||||
"album_other": "albuma",
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
{
|
||||
"action": {
|
||||
"editPlaylist": "redigera $t(entity.playlist_one)",
|
||||
"editPlaylist": "redigera $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "gå till sida",
|
||||
"moveToTop": "flytta till toppen",
|
||||
"clearQueue": "rensa kö",
|
||||
"addToFavorites": "lägg till $t(entity.favorite_other)",
|
||||
"addToPlaylist": "lägg till $t(entity.playlist_one)",
|
||||
"createPlaylist": "skapa $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "ta bort från $t(entity.playlist_one)",
|
||||
"viewPlaylists": "visa $t(entity.playlist_other)",
|
||||
"addToFavorites": "lägg till $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "lägg till $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "skapa $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "ta bort från $t(entity.playlist, {\"count\": 1})",
|
||||
"viewPlaylists": "visa $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "ta bort $t(entity.playlist_one)",
|
||||
"deletePlaylist": "ta bort $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "ta bort från kö",
|
||||
"deselectAll": "avmarkera alla",
|
||||
"moveToBottom": "flytta till botten",
|
||||
"setRating": "sätt betyg",
|
||||
"toggleSmartPlaylistEditor": "växla $t(entity.smartPlaylist) redigerare",
|
||||
"removeFromFavorites": "ta bort från $t(entity.favorite_other)",
|
||||
"removeFromFavorites": "ta bort från $t(entity.favorite, {\"count\": 2})",
|
||||
"downloadStarted": "startade nedladdning av {{count}} objekt",
|
||||
"moveToNext": "flytta till nästa",
|
||||
"moveUp": "flytta upp",
|
||||
@@ -32,8 +32,8 @@
|
||||
"lastfm": "Öppna i Last.fm",
|
||||
"musicbrainz": "Öppna i MusicBrainz"
|
||||
},
|
||||
"createRadioStation": "skapa $t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "ta bort $t(entity.radioStation_one)",
|
||||
"createRadioStation": "skapa $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "ta bort $t(entity.radioStation, {\"count\": 1})",
|
||||
"addOrRemoveFromSelection": "lägg till eller ta bort från markerade",
|
||||
"selectRangeOfItems": "välj en mängd objekt",
|
||||
"selectAll": "markera alla",
|
||||
@@ -52,7 +52,7 @@
|
||||
"left": "vänster",
|
||||
"save": "spara",
|
||||
"right": "höger",
|
||||
"currentSong": "aktuell $t(entity.track_one)",
|
||||
"currentSong": "aktuell $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "kollaps",
|
||||
"trackNumber": "spår",
|
||||
"descending": "fallande",
|
||||
@@ -81,7 +81,8 @@
|
||||
"delete": "ta bort",
|
||||
"cancel": "avbryt",
|
||||
"forceRestartRequired": "starta om för att tillämpa ändringar... Stäng meddelandet för att starta om",
|
||||
"setting": "inställning",
|
||||
"setting_one": "inställning",
|
||||
"setting_other": "",
|
||||
"version": "version",
|
||||
"title": "titel",
|
||||
"filter_one": "filter",
|
||||
@@ -105,7 +106,7 @@
|
||||
"none": "ingen",
|
||||
"menu": "meny",
|
||||
"restartRequired": "omstart krävs",
|
||||
"previousSong": "föregående $t(entity.track_one)",
|
||||
"previousSong": "föregående $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "frågan returnerade inga resultat",
|
||||
"quit": "avsluta",
|
||||
"expand": "expandera",
|
||||
@@ -192,7 +193,7 @@
|
||||
"rating": "betyg",
|
||||
"search": "sök",
|
||||
"bitrate": "bithastighet",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"recentlyAdded": "nyligen tillagda",
|
||||
"note": "anteckning",
|
||||
"name": "namn",
|
||||
@@ -201,7 +202,7 @@
|
||||
"communityRating": "betyg från communityn",
|
||||
"path": "sökväg",
|
||||
"favorited": "favoritmärkt",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "spelas nyligen",
|
||||
"isFavorited": "är favoritmärkt",
|
||||
"bpm": "bpm",
|
||||
@@ -209,32 +210,32 @@
|
||||
"id": "id",
|
||||
"disc": "skiva",
|
||||
"biography": "biografi",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"duration": "längd",
|
||||
"isPublic": "är offentlig",
|
||||
"random": "slumpmässig",
|
||||
"lastPlayed": "senast spelad",
|
||||
"toYear": "till år",
|
||||
"fromYear": "från år",
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"trackNumber": "spår",
|
||||
"songCount": "sångräkning",
|
||||
"criticRating": "kritikerbetyg",
|
||||
"albumCount": "$t(entity.album_other) antal",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) antal",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "ta bort $t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one) har tagits bort",
|
||||
"input_confirm": "Skriv namnet på $t(entity.playlist_one) för att bekräfta"
|
||||
"title": "ta bort $t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) har tagits bort",
|
||||
"input_confirm": "Skriv namnet på $t(entity.playlist, {\"count\": 1}) för att bekräfta"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"title": "skapa $t(entity.playlist_one)",
|
||||
"title": "skapa $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "offentlig",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist_one) skapad",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) skapad",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addServer": {
|
||||
@@ -254,11 +255,11 @@
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "lade till $t(entity.trackWithCount, {\"count\": {{message}} }) till $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "lägg till i $t(entity.playlist_one)",
|
||||
"title": "lägg till i $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "hoppa över dubbletter",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "skapa $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "sök $t(entity.playlist_other) eller skriv för att skapa en ny"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "skapa $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "sök $t(entity.playlist, {\"count\": 2}) eller skriv för att skapa en ny"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "uppdatera server",
|
||||
@@ -270,11 +271,11 @@
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"title": "sångtext sök"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "redigera $t(entity.playlist_one)",
|
||||
"title": "redigera $t(entity.playlist, {\"count\": 1})",
|
||||
"publicJellyfinNote": "Jellyfin visar av någon anledning inte om en spellista är publik eller inte. Om du önskar att denna ska förbli publik, så får du ha följande indata markerade"
|
||||
},
|
||||
"largeFetchConfirmation": {
|
||||
@@ -309,7 +310,7 @@
|
||||
"appMenu": {
|
||||
"selectServer": "välj server",
|
||||
"version": "version {{version}}",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"manageServers": "hantera servrar",
|
||||
"expandSidebar": "expandera sidofältet",
|
||||
"openBrowserDevtools": "öppna webbläsarens utvecklingsverktyg",
|
||||
@@ -342,19 +343,19 @@
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"shareItem": "dela objekt",
|
||||
"goTo": "gå till",
|
||||
"goToAlbum": "gå till $t(entity.album_one)",
|
||||
"goToAlbumArtist": "gå till $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "gå till $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "gå till $t(entity.albumArtist, {\"count\": 1})",
|
||||
"showDetails": "hämta information"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "mer från $t(entity.artist_one)",
|
||||
"moreFromArtist": "mer från $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "mer från {{item}}"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)"
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"sidebar": {
|
||||
"nowPlaying": "nu spelas"
|
||||
@@ -419,7 +420,7 @@
|
||||
"genreWithCount_other": "{{count}} genrer",
|
||||
"play_one": "{{count}} spelning",
|
||||
"play_other": "{{count}} spelningar",
|
||||
"smartPlaylist": "smart $t(entity.playlist_one)",
|
||||
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
|
||||
"song_one": "låt",
|
||||
"song_other": "låtar",
|
||||
"radioStation_one": "radiostation",
|
||||
|
||||
@@ -2,30 +2,30 @@
|
||||
"action": {
|
||||
"moveToBottom": "alttakine geç",
|
||||
"moveToTop": "başa dön",
|
||||
"removeFromFavorites": "$t(entity.favorite_other)lerden kaldır",
|
||||
"removeFromPlaylist": "$t(entity.playlist_one) listesinden kaldır",
|
||||
"removeFromFavorites": "$t(entity.favorite, {\"count\": 2})lerden kaldır",
|
||||
"removeFromPlaylist": "$t(entity.playlist, {\"count\": 1}) listesinden kaldır",
|
||||
"removeFromQueue": "sıradan kaldır",
|
||||
"setRating": "oyla",
|
||||
"viewPlaylists": "$t(entity.playlist_other) listesini görüntüle",
|
||||
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) listesini görüntüle",
|
||||
"openIn": {
|
||||
"lastfm": "Last.fm'de aç",
|
||||
"musicbrainz": "MusicBrainz'da aç"
|
||||
},
|
||||
"addToFavorites": "$t(entity.favorite_other) listesine ekle",
|
||||
"addToPlaylist": "$t(entity.playlist_one) listesine ekle",
|
||||
"addToFavorites": "$t(entity.favorite, {\"count\": 2}) listesine ekle",
|
||||
"addToPlaylist": "$t(entity.playlist, {\"count\": 1}) listesine ekle",
|
||||
"clearQueue": "sırayı temizle",
|
||||
"createPlaylist": "$t(entity.playlist_one) listesini oluştur",
|
||||
"deletePlaylist": "$t(entity.playlist_one) listesini sil",
|
||||
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) listesini oluştur",
|
||||
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) listesini sil",
|
||||
"deselectAll": "seçimleri kaldır",
|
||||
"editPlaylist": "$t(entity.playlist_one) listesini düzenle",
|
||||
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) listesini düzenle",
|
||||
"goToPage": "sayfaya git",
|
||||
"moveToNext": "sonrakine geç",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) düzenleyiciye geç",
|
||||
"addOrRemoveFromSelection": "seçime ekle veya seçimi kaldır",
|
||||
"selectRangeOfItems": "bir dizi öğe seçin",
|
||||
"createRadioStation": "$t(entity.radioStation_one) oluştur",
|
||||
"deleteRadioStation": "$t(entity.radioStation_one) istasyonunu sil",
|
||||
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) oluştur",
|
||||
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) istasyonunu sil",
|
||||
"selectAll": "tümünü seç",
|
||||
"downloadStarted": "{{count}} öğenin indirilmesine başlandı",
|
||||
"moveUp": "yukarı kaydır",
|
||||
@@ -55,7 +55,7 @@
|
||||
"configure": "yapılandır",
|
||||
"confirm": "onayla",
|
||||
"create": "oluştur",
|
||||
"currentSong": "şu anki parça $t(entity.track_one)",
|
||||
"currentSong": "şu anki parça $t(entity.track, {\"count\": 1})",
|
||||
"decrease": "azalt",
|
||||
"delete": "sil",
|
||||
"descending": "azalan",
|
||||
@@ -93,7 +93,7 @@
|
||||
"path": "yol",
|
||||
"playerMustBePaused": "oynatıcı duraklatılmalı",
|
||||
"preview": "önizleme",
|
||||
"previousSong": "önceki $t(entity.track_one)",
|
||||
"previousSong": "önceki $t(entity.track, {\"count\": 1})",
|
||||
"quit": "çık",
|
||||
"random": "rastgele",
|
||||
"rating": "oylama",
|
||||
@@ -108,7 +108,8 @@
|
||||
"saveAndReplace": "kaydet ve değiştir",
|
||||
"saveAs": "farklı kaydet",
|
||||
"search": "arama",
|
||||
"setting": "ayarlar",
|
||||
"setting_one": "ayarlar",
|
||||
"setting_other": "",
|
||||
"share": "paylaş",
|
||||
"size": "boyut",
|
||||
"sortOrder": "sıralama düzeni",
|
||||
@@ -129,7 +130,8 @@
|
||||
"trackPeak": "parça zirvesi",
|
||||
"private": "gizli",
|
||||
"clean": "temiz",
|
||||
"countSelected": "{{count}} adet seçildi"
|
||||
"countSelected": "{{count}} adet seçildi",
|
||||
"public": "herkese açık"
|
||||
},
|
||||
"entity": {
|
||||
"album_one": "albüm",
|
||||
@@ -160,13 +162,15 @@
|
||||
"play_other": "{{count}} oynatma",
|
||||
"playlistWithCount_one": "{{count}} oynatma listesi",
|
||||
"playlistWithCount_other": "{{count}} oynatma listesi",
|
||||
"smartPlaylist": "akıllı $t(entity.playlist_one)",
|
||||
"smartPlaylist": "akıllı $t(entity.playlist, {\"count\": 1})",
|
||||
"track_one": "parça",
|
||||
"track_other": "parçalar",
|
||||
"song_one": "şarkı",
|
||||
"song_other": "şarkılar",
|
||||
"trackWithCount_one": "{{count}} parça",
|
||||
"trackWithCount_other": "{{count}} parça"
|
||||
"trackWithCount_other": "{{count}} parça",
|
||||
"radioStation_one": "radyo istasyonu",
|
||||
"radioStation_other": "radyo istasyonları"
|
||||
},
|
||||
"error": {
|
||||
"apiRouteError": "istek yönlendirilemiyor",
|
||||
@@ -195,7 +199,7 @@
|
||||
"remoteEnableError": "uzak sunucuyu $t(common.enable) yapmaya çalışırken bir hata oluştu"
|
||||
},
|
||||
"filter": {
|
||||
"albumCount": "$t(entity.album_other) sayısı",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) sayısı",
|
||||
"biography": "biyografi",
|
||||
"bitrate": "bit hızı",
|
||||
"bpm": "bpm",
|
||||
@@ -210,7 +214,7 @@
|
||||
"id": "kimlik",
|
||||
"isCompilation": "derleme",
|
||||
"isFavorited": "favorilendi",
|
||||
"isPublic": "herkese açık",
|
||||
"isPublic": "halka açıktır",
|
||||
"isRated": "oylandı",
|
||||
"isRecentlyPlayed": "yakın zamanda çalındı",
|
||||
"lastPlayed": "son çalınan",
|
||||
@@ -232,10 +236,10 @@
|
||||
"title": "başlık",
|
||||
"toYear": "yılına kadar",
|
||||
"trackNumber": "parça",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"channels": "$t(common.channel_other)"
|
||||
},
|
||||
"form": {
|
||||
@@ -255,9 +259,9 @@
|
||||
"input_preferInstantMixDescription": "sadece benzer şarkılari bulmak icin anında mix kullan. Bu davranışı değiştiren eklentilere sahipseniz faydalı"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "kopyaları atla",
|
||||
"title": "$t(entity.playlist_one) listesine ekle",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) listesine ekle",
|
||||
"success": "$t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) $t(entity.trackWithCount, {\"count\": {{message}} }) eklendi"
|
||||
},
|
||||
"createPlaylist": {
|
||||
@@ -265,21 +269,21 @@
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "herkese açık",
|
||||
"success": "$t(entity.playlist_one) listesi başarıyla oluşturuldu",
|
||||
"title": "$t(entity.playlist_one) listesini oluştur"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) listesi başarıyla oluşturuldu",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) listesini oluştur"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "onaylamak için $t(entity.playlist_one) listesinin adını yazın",
|
||||
"success": "$t(entity.playlist_one) listesi başarıyla silindi",
|
||||
"title": "$t(entity.playlist_one) listesini sil"
|
||||
"input_confirm": "onaylamak için $t(entity.playlist, {\"count\": 1}) listesinin adını yazın",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) listesi başarıyla silindi",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) listesini sil"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"publicJellyfinNote": "Jellyfin bazı nedenlerden dolayı bir çalma listesinin herkese açık olup olmadığını göstermez. Bunun herkese açık kalmasını istiyorsanız, lütfen aşağıdaki girdiyi seçin",
|
||||
"success": "$t(entity.playlist_one) listesi başarıyla güncellendi",
|
||||
"title": "$t(entity.playlist_one) listesini düzenle"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) listesi başarıyla güncellendi",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) listesini düzenle"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist_one)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "şarkı sözü arama"
|
||||
},
|
||||
@@ -312,10 +316,10 @@
|
||||
"appearsOn": "üzerinde görünür",
|
||||
"recentReleases": "son sürümler",
|
||||
"viewDiscography": "diskografiyi görüntüle",
|
||||
"relatedArtists": "$t(entity.artist_other) ile benzer",
|
||||
"relatedArtists": "$t(entity.artist, {\"count\": 2}) ile benzer",
|
||||
"topSongs": "en iyi şarkılar",
|
||||
"viewAll": "tümünü görüntüle",
|
||||
"viewAllTracks": "tüm $t(entity.track_other) görüntüle",
|
||||
"viewAllTracks": "tüm $t(entity.track, {\"count\": 2}) görüntüle",
|
||||
"topSongsFrom": "{{title}} tarafından en iyi şarkılar"
|
||||
},
|
||||
"contextMenu": {
|
||||
@@ -341,8 +345,8 @@
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"shareItem": "öğeyi paylaş",
|
||||
"showDetails": "bilgi al",
|
||||
"goToAlbum": "$t(entity.album_one) sayfasına git",
|
||||
"goToAlbumArtist": "$t(entity.albumArtist_one) sayfasına git"
|
||||
"goToAlbum": "$t(entity.album, {\"count\": 1}) sayfasına git",
|
||||
"goToAlbumArtist": "$t(entity.albumArtist, {\"count\": 1}) sayfasına git"
|
||||
},
|
||||
"manageServers": {
|
||||
"url": "URL",
|
||||
@@ -376,9 +380,9 @@
|
||||
"noLyrics": "şarkı sözü bulunamadı"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "$t(entity.genre_one) $t(entity.album_other) göster",
|
||||
"showTracks": "$t(entity.genre_one)$t(entity.track_other) göster",
|
||||
"title": "$t(entity.genre_other)"
|
||||
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) göster",
|
||||
"showTracks": "$t(entity.genre, {\"count\": 1})$t(entity.track, {\"count\": 2}) göster",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -404,7 +408,7 @@
|
||||
"reorder": "yeniden sıralama yalnızca kimliğe göre sıralama yapıldığında etkinleştirilir"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"advanced": "gelişmiş",
|
||||
@@ -414,36 +418,36 @@
|
||||
"windowTab": "pencere"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"myLibrary": "kütüphanem",
|
||||
"nowPlaying": "şimdi oynatılıyor",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"shared": "paylaşılan $t(entity.playlist_other)",
|
||||
"tracks": "$t(entity.track_other)"
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"shared": "paylaşılan $t(entity.playlist, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "{{artist}} parçaları",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "$t(entity.artist_one) sanatçısından daha fazla",
|
||||
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) sanatçısından daha fazla",
|
||||
"moreFromGeneric": "{{item}} tarafından daha fazla",
|
||||
"released": "yayınlandı"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "{{artist}} albümleri"
|
||||
},
|
||||
"appMenu": {
|
||||
@@ -455,7 +459,7 @@
|
||||
"openBrowserDevtools": "tarayıcı geliştirici araçlarını aç",
|
||||
"quit": "$t(common.quit)",
|
||||
"selectServer": "sunucu seç",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"version": "{{version}} sürümü",
|
||||
"privateModeOff": "gizli modu kapat",
|
||||
"privateModeOn": "gizli modu aç"
|
||||
@@ -530,7 +534,6 @@
|
||||
"customCss_description": "özel css içeriği. Not: içerik ve uzaktan URL'ler izin verilmeyen özelliklerdir. İçeriğinizin önizlemesi aşağıda gösterilmektedir. Ayarlamadığınız ek alanlar sterilleme nedeniyle mevcuttur",
|
||||
"customFontPath": "özel yazı tipi yolu",
|
||||
"customFontPath_description": "uygulama için kullanılacak özel yazı tipinin yolunu ayarlar",
|
||||
"disableAutomaticUpdates": "otomatik güncellemeleri devre dışı bırak",
|
||||
"disableLibraryUpdateOnStartup": "başlangıçta yeni sürümler için denetimi devre dışı bırak",
|
||||
"discordApplicationId": "{{discord}} uygulama kimliği",
|
||||
"discordApplicationId_description": "{{discord}} \"Rich Presence\" için uygulama kimliği (varsayılan olarak {{defaultId}})",
|
||||
@@ -627,9 +630,9 @@
|
||||
"replayGainFallback_description": "dosyada {{ReplayGain}} etiketi yoksa db'e uygulanacak kazanç",
|
||||
"replayGainMode": "{{ReplayGain}} modu",
|
||||
"replayGainMode_description": "ses seviyesi kazancını dosya meta verilerinde saklanan {{ReplayGain}} değerlerine göre ayarlayın",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"replayGainPreamp": "{{ReplayGain}} preamp (dB)",
|
||||
"replayGainPreamp_description": "{{ReplayGain}} değerlerine uygulanan preamp kazancını ayarlar",
|
||||
"sampleRate": "örnekleme hızı",
|
||||
@@ -736,8 +739,8 @@
|
||||
"column": {
|
||||
"album": "albüm",
|
||||
"albumArtist": "albüm sanatçısı",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "biyografi",
|
||||
"bitrate": "bit hızı",
|
||||
"bpm": "bpm (dakika başına vuruş)",
|
||||
@@ -747,7 +750,7 @@
|
||||
"dateAdded": "tarih eklendi",
|
||||
"discNumber": "disk",
|
||||
"favorite": "favori",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "son çalınan",
|
||||
"path": "yol",
|
||||
"playCount": "oynatılıyor",
|
||||
@@ -755,7 +758,7 @@
|
||||
"releaseDate": "çıkış tarihi",
|
||||
"releaseYear": "yıl",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "başlık",
|
||||
"trackNumber": "parça"
|
||||
},
|
||||
@@ -772,9 +775,9 @@
|
||||
},
|
||||
"label": {
|
||||
"actions": "$t(common.action_other)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
@@ -784,7 +787,7 @@
|
||||
"discNumber": "disk numarası",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "son çalınan",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
@@ -794,7 +797,7 @@
|
||||
"releaseDate": "çıkış tarihi",
|
||||
"rowIndex": "satır indeksi",
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(common.title)",
|
||||
"titleCombined": "$t(common.title) (birleşik)",
|
||||
"trackNumber": "parça numarası",
|
||||
|
||||
@@ -1,5 +1,544 @@
|
||||
{
|
||||
"action": {
|
||||
"addToFavorites": "додати до $t(entity.favorite_other)"
|
||||
"addToFavorites": "додати до $t(entity.favorite, {\"count\": 2})",
|
||||
"addOrRemoveFromSelection": "додати або видалити з вибору",
|
||||
"selectRangeOfItems": "вибрати діапазон елементів",
|
||||
"addToPlaylist": "додати до $t(entity.playlist, {\"count\": 1})",
|
||||
"clearQueue": "очистити чергу",
|
||||
"createPlaylist": "створити $t(entity.playlist, {\"count\": 1})",
|
||||
"createRadioStation": "створити $t(entity.radioStation, {\"count\": 1})",
|
||||
"deletePlaylist": "видалити $t(entity.playlist, {\"count\": 1})",
|
||||
"deleteRadioStation": "видалити $t(entity.radioStation, {\"count\": 1})",
|
||||
"selectAll": "вибрати все",
|
||||
"deselectAll": "скасувати вибір усього",
|
||||
"downloadStarted": "почато завантаження {{count}} елементів",
|
||||
"editPlaylist": "редагувати $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "перейти на сторінку",
|
||||
"moveToNext": "перейти до наступного",
|
||||
"moveToBottom": "перемістити вниз",
|
||||
"moveToTop": "перемістити вгору",
|
||||
"moveUp": "перемістити вище",
|
||||
"moveDown": "перемістити нижче",
|
||||
"holdToMoveToTop": "утримуйте, щоб перемістити вгору",
|
||||
"holdToMoveToBottom": "утримувати, щоб перемістити вниз",
|
||||
"moveItems": "перемістити елементи",
|
||||
"shuffle": "перемішати",
|
||||
"shuffleAll": "все випадково",
|
||||
"shuffleSelected": "вибране випадково",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "видалити з $t(entity.favorite, {\"count\": 2})",
|
||||
"removeFromPlaylist": "видалити з $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "видалити з черги",
|
||||
"setRating": "встановити рейтинг",
|
||||
"toggleSmartPlaylistEditor": "перемикати редактор $t(entity.smartPlaylist)",
|
||||
"viewPlaylists": "показати $t(entity.playlist, {\"count\": 2})",
|
||||
"viewMore": "переглянути більше",
|
||||
"openApplicationDirectory": "відкрити каталог додатків",
|
||||
"openIn": {
|
||||
"lastfm": "Відкрити в Last.fm",
|
||||
"musicbrainz": "Відкрити в MusicBrainz"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"countSelected": "вибрано {{count}}",
|
||||
"explicitStatus": "явний статус",
|
||||
"action_one": "дія",
|
||||
"action_few": "дії",
|
||||
"action_many": "дій",
|
||||
"add": "додати",
|
||||
"additionalParticipants": "додаткові учасники",
|
||||
"newVersion": "встановлено нову версію ({{version}})",
|
||||
"viewReleaseNotes": "переглянути список змін",
|
||||
"albumGain": "підсилення альбому",
|
||||
"albumPeak": "піковий рівень альбому",
|
||||
"areYouSure": "ви впевнені?",
|
||||
"ascending": "зростаючи",
|
||||
"backward": "назад",
|
||||
"biography": "біографія",
|
||||
"bitDepth": "розрядність",
|
||||
"bitrate": "бітрейт",
|
||||
"bpm": "уд/хв",
|
||||
"cancel": "скасувати",
|
||||
"center": "посередині",
|
||||
"channel_one": "канал",
|
||||
"channel_few": "канали",
|
||||
"channel_many": "каналів",
|
||||
"clear": "очистити",
|
||||
"close": "закрити",
|
||||
"codec": "кодек",
|
||||
"collapse": "згорнути",
|
||||
"comingSoon": "скоро…",
|
||||
"configure": "налаштувати",
|
||||
"confirm": "підтвердити",
|
||||
"create": "створити",
|
||||
"currentSong": "поточний $t(entity.track, {\"count\": 1})",
|
||||
"decrease": "знизити",
|
||||
"delete": "видалити",
|
||||
"descending": "за спаданням",
|
||||
"description": "опис",
|
||||
"disable": "вимкнути",
|
||||
"disc": "диск",
|
||||
"dismiss": "відхилити",
|
||||
"doNotShowAgain": "не показувати це знову",
|
||||
"duration": "тривалість",
|
||||
"view": "показати",
|
||||
"edit": "змінити",
|
||||
"enable": "увімкнути",
|
||||
"expand": "розширити",
|
||||
"example": "приклад",
|
||||
"externalLinks": "зовнішні посилання",
|
||||
"faster": "швидше",
|
||||
"favorite": "улюблений",
|
||||
"filter_one": "фільтр",
|
||||
"filter_few": "фільтри",
|
||||
"filter_many": "фільтрів",
|
||||
"filters": "фільтри",
|
||||
"filter_single": "одиночний",
|
||||
"filter_multiple": "кілька",
|
||||
"forceRestartRequired": "перезапустіть, щоб застосувати зміни… закрийте повідомлення, щоб перезапустити",
|
||||
"forward": "уперед",
|
||||
"gap": "прогалина",
|
||||
"home": "додому",
|
||||
"increase": "збільшити",
|
||||
"left": "ліво",
|
||||
"limit": "ліміт",
|
||||
"manage": "управління",
|
||||
"maximize": "максимізувати",
|
||||
"menu": "меню",
|
||||
"minimize": "мінімізувати",
|
||||
"modified": "відредаговано",
|
||||
"mbid": "MusicBrainz ID",
|
||||
"mood": "настрій",
|
||||
"name": "назва",
|
||||
"no": "ні",
|
||||
"none": "жоден",
|
||||
"noResultsFromQuery": "запит не дав результатів",
|
||||
"noFilters": "фільтри не налаштовані",
|
||||
"note": "примітка",
|
||||
"ok": "ок",
|
||||
"owner": "власник",
|
||||
"path": "шлях",
|
||||
"playerMustBePaused": "плеєр повинен бути призупинений",
|
||||
"preview": "перегляд",
|
||||
"previousSong": "минулий $t(entity.track, {\"count\": 1})",
|
||||
"private": "приватний",
|
||||
"public": "публічний",
|
||||
"quit": "вийти",
|
||||
"random": "випадково",
|
||||
"rating": "рейтинг",
|
||||
"retry": "повторити спробу",
|
||||
"recordLabel": "лейбл звукозапису",
|
||||
"releaseType": "тип випуску",
|
||||
"refresh": "оновити",
|
||||
"reload": "перезавантажити",
|
||||
"rename": "перейменувати",
|
||||
"reset": "скинути",
|
||||
"resetToDefault": "скинути до заводських налаштувань",
|
||||
"restartRequired": "необхідний перезапуск",
|
||||
"right": "право",
|
||||
"clean": "чистo",
|
||||
"sampleRate": "частота дискретизації",
|
||||
"save": "зберегти",
|
||||
"saveAndReplace": "зберегти та замінити",
|
||||
"saveAs": "зберегти як",
|
||||
"search": "пошук",
|
||||
"setting_one": "налаштування",
|
||||
"setting_few": "налаштування",
|
||||
"setting_many": "налаштувань",
|
||||
"slower": "повільніше",
|
||||
"share": "поділитися",
|
||||
"size": "розмір",
|
||||
"sort": "впорядкувати",
|
||||
"sortOrder": "порядок",
|
||||
"tags": "теги",
|
||||
"title": "назва",
|
||||
"trackNumber": "трек",
|
||||
"trackGain": "підсилення треку",
|
||||
"trackPeak": "піковий рівень треку",
|
||||
"translation": "переклад",
|
||||
"unknown": "невідомий",
|
||||
"version": "версія",
|
||||
"year": "рік",
|
||||
"yes": "так",
|
||||
"explicit": "Експліцитний зміст",
|
||||
"gridRows": "рядки сітки",
|
||||
"tableColumns": "стовпці таблиці",
|
||||
"itemsMore": "{{count}} більше"
|
||||
},
|
||||
"entity": {
|
||||
"album_one": "альбом",
|
||||
"album_few": "альбоми",
|
||||
"album_many": "альбомів",
|
||||
"albumArtist_one": "виконавець альбому",
|
||||
"albumArtist_few": "виконавці альбому",
|
||||
"albumArtist_many": "виконавців альбому",
|
||||
"albumArtistCount_one": "{{count}} виконавець альбому",
|
||||
"albumArtistCount_few": "{{count}} виконавці альбому",
|
||||
"albumArtistCount_many": "{{count}} виконавців альбому",
|
||||
"albumWithCount_one": "{{count}} альбом",
|
||||
"albumWithCount_few": "{{count}} альбоми",
|
||||
"albumWithCount_many": "{{count}} альбомів",
|
||||
"radioStation_one": "радіостанція",
|
||||
"radioStation_few": "радіостанції",
|
||||
"radioStation_many": "радіостанцій",
|
||||
"radioStationWithCount_one": "{{count}} радіостанція",
|
||||
"radioStationWithCount_few": "{{count}} радіостанції",
|
||||
"radioStationWithCount_many": "{{count}} радіостанцій",
|
||||
"artist_one": "виконавець",
|
||||
"artist_few": "виконавці",
|
||||
"artist_many": "виконавців",
|
||||
"artistWithCount_one": "{{count}} виконавець",
|
||||
"artistWithCount_few": "{{count}} виконавці",
|
||||
"artistWithCount_many": "{{count}} виконавців",
|
||||
"favorite_one": "улюблений",
|
||||
"favorite_few": "улюблені",
|
||||
"favorite_many": "улюблених",
|
||||
"folder_one": "папка",
|
||||
"folder_few": "папки",
|
||||
"folder_many": "папок",
|
||||
"folderWithCount_one": "{{count}} папка",
|
||||
"folderWithCount_few": "{{count}} папки",
|
||||
"folderWithCount_many": "{{count}} папок",
|
||||
"genre_one": "жанр",
|
||||
"genre_few": "жанри",
|
||||
"genre_many": "жанрів",
|
||||
"genreWithCount_one": "{{count}} жанр",
|
||||
"genreWithCount_few": "{{count}} жанри",
|
||||
"genreWithCount_many": "{{count}} жанрів",
|
||||
"playlist_one": "плейлист",
|
||||
"playlist_few": "плейлисти",
|
||||
"playlist_many": "плейлистів",
|
||||
"play_one": "{{count}} відтворення",
|
||||
"play_few": "{{count}} відтворення",
|
||||
"play_many": "{{count}} відтворень",
|
||||
"playlistWithCount_one": "{{count}} плейлист",
|
||||
"playlistWithCount_few": "{{count}} плейлисти",
|
||||
"playlistWithCount_many": "{{count}} плейлистів",
|
||||
"smartPlaylist": "розумний $t(entity.playlist, {\"count\": 1})",
|
||||
"track_one": "трек",
|
||||
"track_few": "треки",
|
||||
"track_many": "треків",
|
||||
"song_one": "пісня",
|
||||
"song_few": "пісні",
|
||||
"song_many": "пісень",
|
||||
"trackWithCount_one": "{{count}} трек",
|
||||
"trackWithCount_few": "{{count}} треки",
|
||||
"trackWithCount_many": "{{count}} треків"
|
||||
},
|
||||
"error": {
|
||||
"apiRouteError": "неможливо виконати запит",
|
||||
"audioDeviceFetchError": "сталася помилка під час спроби отримати аудіопристрої",
|
||||
"authenticationFailed": "аутентифікація не вдалася",
|
||||
"badAlbum": "ви бачите цю сторінку, тому що ця пісня не входить до альбому. найімовірніше, ця проблема виникає, якщо у верхньому рівні вашої музичної папки знаходиться пісня. Jellyfin групує треки тільки в тому випадку, якщо вони знаходяться в папці",
|
||||
"badValue": "недійсний параметр \"{{value}}\". це значення більше не існує",
|
||||
"credentialsRequired": "необхідні дані для входу",
|
||||
"endpointNotImplementedError": "кінцева точка {{endpoint}} не реалізована для {{serverType}}",
|
||||
"genericError": "сталася помилка",
|
||||
"invalidServer": "недійсний сервер",
|
||||
"localFontAccessDenied": "відмова в доступі до локальних шрифтів",
|
||||
"loginRateError": "занадто багато спроб входу, спробуйте ще раз через кілька секунд",
|
||||
"mpvRequired": "необхідний MPV",
|
||||
"multipleServerSaveQueueError": "у черзі відтворення є одна або кілька пісень, які не належать до поточного сервера. це не підтримується",
|
||||
"networkError": "сталася мережева помилка",
|
||||
"noNetwork": "сервер недоступний",
|
||||
"noNetworkDescription": "не вдалося підключитися до цього сервера",
|
||||
"notificationDenied": "дозвіл на сповіщення було відхилено. це налаштування не має впливу",
|
||||
"openError": "не вдалося відкрити файл",
|
||||
"playbackError": "сталася помилка під час спроби відтворити медіафайл",
|
||||
"remoteDisableError": "сталася помилка під час спроби $t(common.disable) віддаленого сервера",
|
||||
"remoteEnableError": "сталася помилка під час спроби $t(common.enable) віддаленого сервера",
|
||||
"remotePortError": "сталася помилка під час спроби налаштувати порт віддаленого сервера",
|
||||
"remotePortWarning": "перезапустіть сервер щоб застосувати новий порт",
|
||||
"saveQueueFailed": "не вдалося зберегти чергу",
|
||||
"serverNotSelectedError": "не вибрано жодного сервера",
|
||||
"serverRequired": "потрібен сервер",
|
||||
"sessionExpiredError": "ваша сесія закінчилася",
|
||||
"systemFontError": "сталася помилка під час спроби отримати системні шрифти",
|
||||
"settingsSyncError": "виявлено розбіжності між налаштуваннями в рендерері та основним процесом. перезапустіть програму, щоб застосувати зміни"
|
||||
},
|
||||
"filter": {
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"albumCount": "кількість $t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "біографія",
|
||||
"bitrate": "бітрейт",
|
||||
"bpm": "уд/хв",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"comment": "коментар",
|
||||
"communityRating": "рейтинг спільноти",
|
||||
"criticRating": "рейтинг критиків",
|
||||
"dateAdded": "дата додавання",
|
||||
"disc": "диск",
|
||||
"duration": "тривалість",
|
||||
"favorited": "улюблене",
|
||||
"fromYear": "з року",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"id": "id",
|
||||
"isCompilation": "є компіляцією",
|
||||
"isFavorited": "є улюбленим",
|
||||
"isPublic": "є публічним",
|
||||
"isRated": "є оціненим",
|
||||
"isRecentlyPlayed": "нещодавно відтворено",
|
||||
"lastPlayed": "нещодавно відтворені",
|
||||
"mostPlayed": "найбільш відтворювані",
|
||||
"name": "назва",
|
||||
"note": "примітка",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "шлях",
|
||||
"playCount": "кількість відтворень",
|
||||
"random": "випадково",
|
||||
"rating": "рейтинг",
|
||||
"recentlyAdded": "нещодавно додано",
|
||||
"recentlyPlayed": "нещодавно відтворено",
|
||||
"recentlyUpdated": "нещодавно оновлено",
|
||||
"releaseDate": "дата випуску",
|
||||
"releaseYear": "рік випуску",
|
||||
"search": "шукати",
|
||||
"songCount": "кількість пісень",
|
||||
"sortName": "сортування за назвою",
|
||||
"title": "назва",
|
||||
"toYear": "до року",
|
||||
"trackNumber": "трек",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
},
|
||||
"datetime": {
|
||||
"minuteShort": "хв.",
|
||||
"secondShort": "сек.",
|
||||
"hourShort": "год",
|
||||
"dayShort": "дн."
|
||||
},
|
||||
"filterOperator": {
|
||||
"after": "є після",
|
||||
"afterDate": "після (дата)",
|
||||
"before": "є перед",
|
||||
"beforeDate": "є перед (дата)",
|
||||
"contains": "містить",
|
||||
"endsWith": "закінчується на",
|
||||
"inPlaylist": "є в",
|
||||
"inTheLast": "є в останньому",
|
||||
"inTheRange": "є в межах",
|
||||
"inTheRangeDate": "є в межах (дата)",
|
||||
"is": "є",
|
||||
"isNot": "не є",
|
||||
"isGreaterThan": "більше ніж",
|
||||
"isLessThan": "менше ніж",
|
||||
"matchesRegex": "відповідає регулярному виразу",
|
||||
"notContains": "не містить",
|
||||
"notInPlaylist": "немає в",
|
||||
"notInTheLast": "не є в останньому",
|
||||
"startsWith": "починається з"
|
||||
},
|
||||
"form": {
|
||||
"addServer": {
|
||||
"error_savePassword": "сталася помилка під час спроби зберегти пароль",
|
||||
"ignoreCors": "ігнорувати cors ($t(common.restartRequired))",
|
||||
"ignoreSsl": "ігнорувати ssl ($t(common.restartRequired)}",
|
||||
"input_legacyAuthentication": "увімкнути застарілу автентифікацію",
|
||||
"input_name": "назва сервера",
|
||||
"input_password": "пароль",
|
||||
"input_preferInstantMix": "віддавати перевагу миттєвому міксу",
|
||||
"input_preferInstantMixDescription": "використовувати тільки миттєвий мікс щоб отримати подібні пісні. корисно, коли у вас є плагіни, які змінюють цю поведінку",
|
||||
"input_preferRemoteUrl": "віддавати перевагу публічній URL-адресі",
|
||||
"input_remoteUrl": "публічна URL-адреса",
|
||||
"input_remoteUrlPlaceholder": "опціонально: публічна URL-адреса для зовнішніх функцій",
|
||||
"input_savePassword": "зберегти пароль",
|
||||
"input_url": "URL-адреса",
|
||||
"input_username": "Ім'я користувача",
|
||||
"success": "сервер додано успішно",
|
||||
"title": "додати сервер"
|
||||
},
|
||||
"largeFetchConfirmation": {
|
||||
"title": "додати елементи до черги",
|
||||
"description": "Ця дія додасть усі елементи в поточний відфільтрований перегляд"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"create": "створити $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "пропустити дублікати",
|
||||
"searchOrCreate": "шукайте $t(entity.playlist, {\"count\": 2}) або пишіть, щоб створити новий",
|
||||
"success": "додано $t(entity.trackWithCount, {\"count\": {{message}} }) до $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "додати до $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "публічний",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) стрворено успішно",
|
||||
"title": "створити $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"success": "радіостанція створена успішно",
|
||||
"title": "створити радіостанцію",
|
||||
"input_homepageUrl": "адреса домашньої сторінки",
|
||||
"input_name": "назва",
|
||||
"input_streamUrl": "URL-адреса потоку"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "введіть ім'я $t(entity.playlist, {\"count\": 1}) для підтвердження",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) успішно видалено",
|
||||
"title": "видалити $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"publicJellyfinNote": "Jellyfin з якоїсь причини не показує, чи є плейлист публічним чи ні. Якщо ви хочете, щоб він залишався публічним, виберіть варіант нижче",
|
||||
"editNote": "ручне редагування не рекомендується для великих плейлистів. ви впевнені, що готові прийняти ризик втрати даних, який виникає при перезапису існуючого плейлисту?",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) успішно оновлено",
|
||||
"title": "змінити $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "експортувати тексти пісень",
|
||||
"input_synced": "експортувати синхронізовані тексти пісень",
|
||||
"input_offset": "$t(setting.lyricOffset)"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "шукати тексти пісень"
|
||||
},
|
||||
"queryEditor": {
|
||||
"title": "редактор запитів",
|
||||
"input_optionMatchAll": "збіг за всіма",
|
||||
"input_optionMatchAny": "збіг за будь-яким",
|
||||
"addRuleGroup": "додати групу правил",
|
||||
"removeRuleGroup": "видалити групу правил",
|
||||
"resetToDefault": "скинути до заводських налаштувань",
|
||||
"clearFilters": "очистити фільтри"
|
||||
},
|
||||
"saveQueue": {
|
||||
"success": "черга відтворення збережена на сервері"
|
||||
},
|
||||
"shareItem": {
|
||||
"allowDownloading": "дозволити завантаження",
|
||||
"description": "опис",
|
||||
"setExpiration": "встановити термін дії",
|
||||
"success": "посилання для спільного використання скопійовано в буфер обміну (натисніть тут, щоб відкрити)",
|
||||
"expireInvalid": "термін дії повинен бути в майбутньому",
|
||||
"createFailed": "не вдалося створити спільний доступ (чи ввімкнено спільний доступ?)"
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "відтворити випадково",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "скільки пісень?",
|
||||
"input_minYear": "від року",
|
||||
"input_maxYear": "до року",
|
||||
"input_played": "відтворити фільтр",
|
||||
"input_played_optionAll": "всі треки",
|
||||
"input_played_optionUnplayed": "тільки не відтворені треки",
|
||||
"input_played_optionPlayed": "тільки відтворені треки"
|
||||
},
|
||||
"updateServer": {
|
||||
"success": "сервер успішно оновлено",
|
||||
"title": "оновити сервер"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "приватний режим увімкнено, стан відтворення тепер приховано від зовнішніх інтеграцій",
|
||||
"disabled": "приватний режим вимкнено, стан відтворення тепер видно для увімкнених зовнішніх інтеграцій",
|
||||
"title": "приватний режим"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
"skip": "пропустити"
|
||||
},
|
||||
"page": {
|
||||
"albumArtistDetail": {
|
||||
"about": "Про {{artist}}",
|
||||
"appearsOn": "з'являється на",
|
||||
"favoriteSongs": "улюблені пісні",
|
||||
"groupingTypeAll": "всі типи випуску",
|
||||
"groupingTypePrimary": "основні типи випуску",
|
||||
"recentReleases": "останні випуски",
|
||||
"viewDiscography": "переглянути дискографію",
|
||||
"relatedArtists": "подібні $t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "найкращі пісні",
|
||||
"topSongsCommunity": "спільнота",
|
||||
"topSongsFrom": "найкращі пісні від {{title}}",
|
||||
"topSongsPersonal": "особисте",
|
||||
"favoriteSongsFrom": "улюблені пісні від {{title}}",
|
||||
"viewAll": "показати все",
|
||||
"viewAllTracks": "показати усі $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "більше від цього $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "більше від {{item}}",
|
||||
"released": "видано"
|
||||
},
|
||||
"albumList": {
|
||||
"artistAlbums": "альбоми виконавця {{artist}}",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "радіостанції"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "комміти від {{stable}}",
|
||||
"noNewCommits": "немає нових коммітів у цьому періоді",
|
||||
"noStableReleaseToCompare": "немає доступної стабільної версії для порівняння"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(Призупинено) ",
|
||||
"privateMode": "(Приватний режим)"
|
||||
},
|
||||
"appMenu": {
|
||||
"collapseSidebar": "згорнути бічну панель",
|
||||
"commandPalette": "відкрити палітру команд",
|
||||
"expandSidebar": "розгорнути бічну панель",
|
||||
"goBack": "повернутися назад",
|
||||
"goForward": "перейти вперед",
|
||||
"manageServers": "управління серверами",
|
||||
"privateModeOff": "вимкнути приватний режим",
|
||||
"privateModeOn": "увімкнути приватний режим",
|
||||
"openBrowserDevtools": "відкрити інструменти розробника",
|
||||
"quit": "$t(common.quit)",
|
||||
"selectServer": "вибрати сервер",
|
||||
"selectMusicFolder": "вибрати папку з музикою",
|
||||
"noMusicFolder": "не вибрано папку з музикою",
|
||||
"multipleMusicFolders": "Вибрано {{count}} папок з музикою",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"version": "версія {{version}}"
|
||||
},
|
||||
"manageServers": {
|
||||
"title": "управління серверами",
|
||||
"serverDetails": "інформація про сервер",
|
||||
"url": "URL-адреса",
|
||||
"username": "Ім'я користувача",
|
||||
"editServerDetailsTooltip": "редагувати дані сервера",
|
||||
"removeServer": "видалити сервер"
|
||||
},
|
||||
"contextMenu": {
|
||||
"addFavorite": "$t(action.addToFavorites)",
|
||||
"addLast": "$t(player.addLast)",
|
||||
"addNext": "$t(player.addNext)",
|
||||
"addToFavorites": "$t(action.addToFavorites)",
|
||||
"addToPlaylist": "$t(action.addToPlaylist)",
|
||||
"createPlaylist": "$t(action.createPlaylist)",
|
||||
"deletePlaylist": "$t(action.deletePlaylist)",
|
||||
"deselectAll": "$t(action.deselectAll)",
|
||||
"download": "завантажити",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"moveToBottom": "$t(action.moveToBottom)",
|
||||
"moveToTop": "$t(action.moveToTop)",
|
||||
"numberSelected": "{{count}} вибрано",
|
||||
"play": "$t(player.play)",
|
||||
"playSimilarSongs": "$t(player.playSimilarSongs)",
|
||||
"removeFromFavorites": "$t(action.removeFromFavorites)",
|
||||
"removeFromPlaylist": "$t(action.removeFromPlaylist)",
|
||||
"removeFromQueue": "$t(action.removeFromQueue)",
|
||||
"setRating": "$t(action.setRating)",
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"shareItem": "поділитися елементом",
|
||||
"goTo": "перейти до",
|
||||
"goToAlbum": "перейти до $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "перейти до $t(entity.albumArtist, {\"count\": 1})",
|
||||
"showDetails": "отримати інформацію"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
{
|
||||
"action": {
|
||||
"editPlaylist": "编辑 $t(entity.playlist_one)",
|
||||
"editPlaylist": "编辑 $t(entity.playlist, {\"count\": 1})",
|
||||
"moveToTop": "移至顶部",
|
||||
"clearQueue": "清空播放队列",
|
||||
"addToFavorites": "添加到 $t(entity.favorite_other)",
|
||||
"addToPlaylist": "添加到 $t(entity.playlist_one)",
|
||||
"createPlaylist": "创建 $t(entity.playlist_one)",
|
||||
"removeFromPlaylist": "从 $t(entity.playlist_one) 移除",
|
||||
"viewPlaylists": "查看 $t(entity.playlist_other)",
|
||||
"addToFavorites": "添加到 $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "添加到 $t(entity.playlist, {\"count\": 1})",
|
||||
"createPlaylist": "创建 $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromPlaylist": "从 $t(entity.playlist, {\"count\": 1}) 移除",
|
||||
"viewPlaylists": "查看 $t(entity.playlist, {\"count\": 2})",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"deletePlaylist": "删除 $t(entity.playlist_one)",
|
||||
"deletePlaylist": "删除 $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "从播放队列中移除",
|
||||
"deselectAll": "取消全选",
|
||||
"moveToBottom": "移至底部",
|
||||
"setRating": "评分",
|
||||
"toggleSmartPlaylistEditor": "切换 $t(entity.smartPlaylist) 编辑器",
|
||||
"removeFromFavorites": "从 $t(entity.favorite_other) 移除",
|
||||
"removeFromFavorites": "从 $t(entity.favorite, {\"count\": 2}) 移除",
|
||||
"goToPage": "前往页面",
|
||||
"openIn": {
|
||||
"lastfm": "在 Last.fm 中打开",
|
||||
@@ -35,9 +35,10 @@
|
||||
"addOrRemoveFromSelection": "在所选内容中添加或移除",
|
||||
"selectRangeOfItems": "批量选择",
|
||||
"selectAll": "全选",
|
||||
"createRadioStation": "创建$t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "删除$t(entity.radioStation_one)",
|
||||
"openApplicationDirectory": "打开应用程序目录"
|
||||
"createRadioStation": "创建$t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "删除$t(entity.radioStation, {\"count\": 1})",
|
||||
"openApplicationDirectory": "打开应用程序目录",
|
||||
"goToCurrent": "转到当前项目"
|
||||
},
|
||||
"common": {
|
||||
"increase": "增高",
|
||||
@@ -50,7 +51,7 @@
|
||||
"left": "左",
|
||||
"save": "保存",
|
||||
"right": "右",
|
||||
"currentSong": "当前$t(entity.track_one)",
|
||||
"currentSong": "当前$t(entity.track, {\"count\": 1})",
|
||||
"collapse": "折叠",
|
||||
"trackNumber": "音轨编号",
|
||||
"descending": "降序",
|
||||
@@ -74,8 +75,8 @@
|
||||
"forward": "前进",
|
||||
"delete": "删除",
|
||||
"cancel": "取消",
|
||||
"forceRestartRequired": "重启应用使更改生效…关闭通知即可重启",
|
||||
"setting": "设置",
|
||||
"forceRestartRequired": "重启应用以使更改生效…关闭通知即可重启",
|
||||
"setting_other": "设置",
|
||||
"version": "版本",
|
||||
"title": "标题",
|
||||
"filter_other": "筛选",
|
||||
@@ -92,7 +93,7 @@
|
||||
"disable": "禁用",
|
||||
"menu": "菜单",
|
||||
"restartRequired": "需要重启应用",
|
||||
"previousSong": "上一首$t(entity.track_one)",
|
||||
"previousSong": "上一首$t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "未查询到匹配结果",
|
||||
"quit": "退出",
|
||||
"expand": "展开",
|
||||
@@ -107,7 +108,7 @@
|
||||
"duration": "时长",
|
||||
"ok": "好",
|
||||
"no": "否",
|
||||
"playerMustBePaused": "播放器必须暂停",
|
||||
"playerMustBePaused": "播放器必须先暂停",
|
||||
"channel_other": "频道",
|
||||
"none": "无",
|
||||
"disc": "碟片",
|
||||
@@ -150,7 +151,13 @@
|
||||
"tableColumns": "表格列",
|
||||
"itemsMore": "{{count}} 更多",
|
||||
"countSelected": "已选择{{count}}项",
|
||||
"retry": "重试"
|
||||
"retry": "重试",
|
||||
"example": "示例",
|
||||
"filter_single": "单项",
|
||||
"mood": "氛围",
|
||||
"rename": "重命名",
|
||||
"filter_multiple": "多项",
|
||||
"newVersionAvailable": "新版本现已可用"
|
||||
},
|
||||
"entity": {
|
||||
"albumArtist_other": "专辑艺术家",
|
||||
@@ -166,11 +173,13 @@
|
||||
"favorite_other": "收藏",
|
||||
"artistWithCount_other": "{{count}} 位艺术家",
|
||||
"folder_other": "文件夹",
|
||||
"smartPlaylist": "智能$t(entity.playlist_one)",
|
||||
"smartPlaylist": "智能$t(entity.playlist, {\"count\": 1})",
|
||||
"genreWithCount_other": "{{count}} 种流派",
|
||||
"trackWithCount_other": "{{count}} 首曲目",
|
||||
"play_other": "{{count}} 次播放",
|
||||
"song_other": "歌曲"
|
||||
"song_other": "歌曲",
|
||||
"radioStation_other": "广播电台",
|
||||
"radioStationWithCount_other": "{{count}} 个广播电台"
|
||||
},
|
||||
"player": {
|
||||
"repeat_all": "循环全部",
|
||||
@@ -187,7 +196,7 @@
|
||||
"shuffle": "播放(随机)",
|
||||
"playbackFetchNoResults": "未找到歌曲",
|
||||
"playbackFetchInProgress": "正在加载歌曲…",
|
||||
"addNext": "下一首播放",
|
||||
"addNext": "下一个",
|
||||
"playbackFetchCancel": "请稍等…关闭通知以取消操作",
|
||||
"play": "播放",
|
||||
"repeat_off": "循环关闭",
|
||||
@@ -197,7 +206,7 @@
|
||||
"queue_moveToTop": "将所选项移至底部",
|
||||
"queue_moveToBottom": "将所选项移至顶部",
|
||||
"shuffle_off": "禁用随机播放",
|
||||
"addLast": "上一曲",
|
||||
"addLast": "最后",
|
||||
"mute": "静音",
|
||||
"skip_forward": "向前跳过",
|
||||
"playbackSpeed": "播放速度",
|
||||
@@ -206,7 +215,22 @@
|
||||
"viewQueue": "查看播放队列",
|
||||
"saveQueueToServer": "将播放队列保存到服务器",
|
||||
"restoreQueueFromServer": "从服务器恢复播放队列",
|
||||
"lyrics": "歌词"
|
||||
"lyrics": "歌词",
|
||||
"addLastShuffled": "最后(随机)",
|
||||
"addNextShuffled": "下一个(随机)",
|
||||
"artistRadio": "艺术家电台",
|
||||
"holdToShuffle": "按住即可随机",
|
||||
"trackRadio": "追踪广播",
|
||||
"sleepTimer": "睡眠定时器",
|
||||
"sleepTimer_endOfSong": "当前歌曲结束时",
|
||||
"sleepTimer_minutes": "{{count}} 分钟",
|
||||
"sleepTimer_hours": "{{count}} 小时",
|
||||
"sleepTimer_custom": "自定义",
|
||||
"sleepTimer_off": "关闭",
|
||||
"sleepTimer_timeRemaining": "剩余时间 {{time}}",
|
||||
"sleepTimer_setCustom": "设置定时器",
|
||||
"sleepTimer_cancel": "取消定时器",
|
||||
"albumRadio": "专辑电台"
|
||||
},
|
||||
"setting": {
|
||||
"crossfadeStyle_description": "选择用于音频播放器的淡入淡出风格",
|
||||
@@ -217,7 +241,6 @@
|
||||
"audioPlayer_description": "选择用于播放的音频播放器",
|
||||
"globalMediaHotkeys": "全局媒体快捷键",
|
||||
"gaplessAudio_description": "调整 mpv 无缝音频设置",
|
||||
"disableAutomaticUpdates": "禁用自动更新",
|
||||
"followLyric_description": "滚动歌词到当前播放位置",
|
||||
"audioExclusiveMode": "音频独占模式",
|
||||
"font": "字体",
|
||||
@@ -238,7 +261,7 @@
|
||||
"customFontPath_description": "设置应用使用的自定义字体路径",
|
||||
"gaplessAudio_optionWeak": "弱(推荐)",
|
||||
"font_description": "设置应用使用的字体",
|
||||
"audioDevice_description": "选择用于播放的音频设备(仅 web 播放器)",
|
||||
"audioDevice_description": "选择用于播放的音频设备",
|
||||
"enableRemote_description": "启用远程控制服务器,以允许其他设备控制此应用",
|
||||
"remotePort_description": "设置远程服务器端口",
|
||||
"hotkey_skipBackward": "向后跳过",
|
||||
@@ -283,7 +306,7 @@
|
||||
"remoteUsername_description": "设置远程控制服务器的用户名。如果用户名和密码都为空,则身份验证将被禁用",
|
||||
"exitToTray_description": "退出应用时最小化到系统托盘",
|
||||
"hotkey_favoritePreviousSong": "收藏$t(common.previousSong)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"lyricOffset": "歌词偏移(毫秒)",
|
||||
"fontType_optionCustom": "自定义字体",
|
||||
"themeDark_description": "应用将使用深色主题",
|
||||
@@ -292,7 +315,7 @@
|
||||
"language_description": "设置应用的语言($t(common.restartRequired))",
|
||||
"playbackStyle_optionCrossFade": "淡入淡出",
|
||||
"hotkey_rate3": "评为 3 星",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"themeLight_description": "应用将使用浅色主题",
|
||||
"hotkey_toggleFullScreenPlayer": "全屏播放",
|
||||
"hotkey_localSearch": "页面内搜索",
|
||||
@@ -333,7 +356,7 @@
|
||||
"useSystemTheme_description": "使用系统定义的浅色或深色主题",
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"lyricFetch_description": "从多个互联网源获取歌词",
|
||||
"lyricFetchProvider_description": "选择歌词源。 歌词源顺序与查询顺序一致",
|
||||
"lyricFetchProvider_description": "选择要从中获取歌词的提供商",
|
||||
"sidePlayQueueStyle_optionDetached": "不吸附",
|
||||
"hotkey_zoomOut": "缩小",
|
||||
"hotkey_unfavoriteCurrentSong": "取消收藏$t(common.currentSong)",
|
||||
@@ -452,9 +475,9 @@
|
||||
"releaseChannel_optionLatest": "最新的",
|
||||
"releaseChannel_optionBeta": "测试版",
|
||||
"releaseChannel": "发布通道",
|
||||
"releaseChannel_description": "选择稳定版本或测试版以进行自动更新",
|
||||
"releaseChannel_description": "选择稳定版、测试版或 Alpha(夜间构建版)以启用自动更新",
|
||||
"mediaSession": "启用媒体会话",
|
||||
"mediaSession_description": "启用 Windows 媒体会话集成,在系统音量覆盖和锁定屏幕中显示媒体控件和元数据(仅限 Windows)",
|
||||
"mediaSession_description": "启用媒体会话集成,在系统音量叠加层和锁屏界面显示媒体控件和元数据",
|
||||
"exportImportSettings_control_description": "通过 JSON 导出和导入设置",
|
||||
"exportImportSettings_control_exportText": "导出设置",
|
||||
"exportImportSettings_control_importText": "导入设置",
|
||||
@@ -515,7 +538,62 @@
|
||||
"playerbarWaveformAlign": "波形对齐方式",
|
||||
"playerbarWaveformBarWidth": "波形宽度",
|
||||
"playerbarWaveformGap": "波形间距",
|
||||
"transcode": "启用转码功能"
|
||||
"transcode": "启用转码功能",
|
||||
"useThemeAccentColor_description": "使用所选主题中定义的主色,而不是自定义强调色",
|
||||
"homeFeatureStyle_optionSingle": "单项",
|
||||
"autoDJ": "自动DJ",
|
||||
"autoDJ_itemCount": "项目数量",
|
||||
"autoDJ_itemCount_description": "启用自动 DJ 功能后,尝试添加到队列中的项目数",
|
||||
"autoDJ_timing": "定时",
|
||||
"autoDJ_timing_description": "自动 DJ 触发前队列中剩余的歌曲数量",
|
||||
"crossfadeStyle": "交叉渐变风格",
|
||||
"discordRichPresence": "{{discord}} rich presence",
|
||||
"homeFeatureStyle_description": "控制首页特色轮播图的样式",
|
||||
"homeFeatureStyle": "首页特色旋转样式",
|
||||
"homeFeatureStyle_optionMultiple": "多样",
|
||||
"hotkey_listNavigateToPage": "列表导航至项目页面",
|
||||
"hotkey_listPlayDefault": "播放列表",
|
||||
"hotkey_listPlayLast": "播放列表最后",
|
||||
"hotkey_listPlayNext": "播放列表下一个",
|
||||
"hotkey_listPlayNow": "播放列表现在",
|
||||
"pathReplace": "文件路径替换",
|
||||
"pathReplace_description": "替换服务器的默认文件路径",
|
||||
"pathReplace_optionRemovePrefix": "移除前缀",
|
||||
"pathReplace_optionAddPrefix": "添加前缀",
|
||||
"playerFilters": "从队列中筛选歌曲",
|
||||
"playerFilters_description": "根据以下条件,忽略添加到队列中的歌曲",
|
||||
"artistRadioCount_description": "设置艺术家电台和曲目电台要获取的歌曲数量",
|
||||
"artistRadioCount": "艺术家/曲目电台数量",
|
||||
"imageResolution_optionItemCard": "项目卡",
|
||||
"playerbarWaveformRadius": "波形半径",
|
||||
"enableGridMultiSelect": "启用网格多选",
|
||||
"enableGridMultiSelect_description": "启用后,允许在网格视图中选择多个项目。禁用后,点击网格项目图像将跳转到项目页面",
|
||||
"sidebarPlaylistSorting_description": "允许在侧边栏中使用拖放操作手动对播放列表进行排序,而不是使用默认的服务器顺序",
|
||||
"sidebarPlaylistSorting": "侧边栏播放列表排序",
|
||||
"sidebarPlaylistListFilterRegex_description": "隐藏侧边栏中与此正则表达式匹配的播放列表",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "例如:^每日精选*",
|
||||
"sidebarPlaylistListFilterRegex": "播放列表筛选正则表达式",
|
||||
"queryBuilder": "查询构建器",
|
||||
"queryBuilderCustomFields": "自定义字段",
|
||||
"analyticsEnable": "发送基于使用情况的分析",
|
||||
"analyticsEnable_description": "发送匿名使用数据帮助开发者改进应用程序",
|
||||
"automaticUpdates": "自动更新",
|
||||
"automaticUpdates_description": "自动检查并安装更新",
|
||||
"releaseChannel_optionAlpha": "alpha(每日构建版)",
|
||||
"discordStateIcon": "显示播放图标",
|
||||
"discordStateIcon_description": "在 rich presence 状态中显示一个小的播放图标。启用“暂停时显示 rich presence 在线状态”后,暂停图标始终显示",
|
||||
"blurExplicitImages": "模糊显式图片",
|
||||
"blurExplicitImages_description": "专辑和歌曲封面若被标记为不雅内容,将会进行模糊处理",
|
||||
"autosave": "自动保存播放队列",
|
||||
"autosave_description": "启用自动将播放队列保存到服务器的功能。此功能仅在使用 Navidrome/Subsonic 时可用,且不能使用混合播放队列。",
|
||||
"autosaveCount": "自动播放队列保存频率",
|
||||
"autosaveCount_description": "队列保存前需要更改多少首歌曲?1(最少)表示每次歌曲更改",
|
||||
"useThemePrimaryShade": "使用主题主色调",
|
||||
"useThemePrimaryShade_description": "对于主要颜色变体,请使用所选主题中定义的主色调",
|
||||
"primaryShade": "主色调",
|
||||
"primaryShade_description": "覆盖按钮、链接和其他主色元素使用的主色调(0-9)",
|
||||
"playerItemConfiguration_description": "配置全屏播放器上显示的项目及其显示顺序",
|
||||
"playerItemConfiguration": "播放器项目配置"
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "重启服务器使新端口生效",
|
||||
@@ -546,7 +624,10 @@
|
||||
"noNetwork": "服务器不可用",
|
||||
"noNetworkDescription": "无法连接到该服务器",
|
||||
"saveQueueFailed": "播放列表保存失败",
|
||||
"settingsSyncError": "渲染器设置与主进程中存在差异,请重启程序以应用更改"
|
||||
"settingsSyncError": "渲染器设置与主进程中存在差异,请重启程序以应用更改",
|
||||
"invalidJson": "无效的 JSON",
|
||||
"serverLockSingleServer": "服务器锁定时,只允许一台服务器运行",
|
||||
"playbackPausedDueToError": "发生错误,播放已暂停"
|
||||
},
|
||||
"filter": {
|
||||
"mostPlayed": "最多播放过",
|
||||
@@ -563,18 +644,18 @@
|
||||
"communityRating": "社区评分",
|
||||
"path": "路径",
|
||||
"favorited": "已收藏",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"releaseYear": "发布年份",
|
||||
"biography": "个人简介",
|
||||
"songCount": "歌曲数量",
|
||||
"random": "随机",
|
||||
"lastPlayed": "上次播放过",
|
||||
"lastPlayed": "最后播放",
|
||||
"toYear": "截止年份",
|
||||
"fromYear": "起始年份",
|
||||
"criticRating": "评论家评分",
|
||||
"trackNumber": "曲目",
|
||||
"bpm": "bpm",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"comment": "评论",
|
||||
"isCompilation": "为合辑",
|
||||
"isFavorited": "已收藏",
|
||||
@@ -582,34 +663,38 @@
|
||||
"recentlyUpdated": "最近更新",
|
||||
"isRated": "已评分",
|
||||
"isRecentlyPlayed": "最近播放过",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"owner": "$t(common.owner)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"note": "注释",
|
||||
"albumCount": "$t(entity.album_other)数",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})数",
|
||||
"id": "id",
|
||||
"disc": "碟片",
|
||||
"duration": "时长",
|
||||
"album": "$t(entity.album_one)",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"sortName": "排序名称",
|
||||
"matchAnd": "和",
|
||||
"matchOr": "或"
|
||||
},
|
||||
"page": {
|
||||
"sidebar": {
|
||||
"nowPlaying": "正在播放",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"shared": "共享$t(entity.playlist_other)",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"shared": "共享$t(entity.playlist, {\"count\": 2})",
|
||||
"myLibrary": "我的媒体库",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})",
|
||||
"collections": "合集"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"config": {
|
||||
@@ -643,13 +728,14 @@
|
||||
"openBrowserDevtools": "打开浏览器开发者工具",
|
||||
"goBack": "返回",
|
||||
"goForward": "前进",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"quit": "$t(common.quit)",
|
||||
"privateModeOff": "关闭私人模式",
|
||||
"privateModeOn": "开启私人模式",
|
||||
"multipleMusicFolders": "已选择{{count}}个媒体库",
|
||||
"noMusicFolder": "未选择任何音乐库",
|
||||
"selectMusicFolder": "选择媒体库"
|
||||
"selectMusicFolder": "选择媒体库",
|
||||
"commandPalette": "打开命令面板"
|
||||
},
|
||||
"home": {
|
||||
"mostPlayed": "最多播放",
|
||||
@@ -658,10 +744,10 @@
|
||||
"recentlyPlayed": "最近播放",
|
||||
"title": "$t(common.home)",
|
||||
"recentlyReleased": "最近发布",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "更多该$t(entity.artist_one)作品",
|
||||
"moreFromArtist": "更多该$t(entity.artist, {\"count\": 1})作品",
|
||||
"moreFromGeneric": "更多{{item}}作品",
|
||||
"released": "已发布"
|
||||
},
|
||||
@@ -687,7 +773,8 @@
|
||||
"discord": "Discord",
|
||||
"logger": "日志记录器",
|
||||
"queryBuilder": "查询构建器",
|
||||
"lyricsDisplay": "歌词显示"
|
||||
"lyricsDisplay": "歌词显示",
|
||||
"playerFilters": "播放筛选器"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -720,43 +807,48 @@
|
||||
"download": "下载",
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"goToAlbum": "转到 $t(entity.album_one)",
|
||||
"goToAlbumArtist": "转到 $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "转到 $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "转到 $t(entity.albumArtist, {\"count\": 1})",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "前往"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "{{artist}} 的曲目"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "{{artist}}的专辑",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showAlbums": "显示$t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "显示$t(entity.genre_one) $t(entity.track_other)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showAlbums": "显示$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "显示$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"recentReleases": "最近发布",
|
||||
"viewDiscography": "查看唱片目录",
|
||||
"relatedArtists": "相关$t(entity.artist_other)",
|
||||
"relatedArtists": "相关$t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "热门歌曲",
|
||||
"topSongsFrom": "{{title}}的热门歌曲",
|
||||
"viewAllTracks": "查看所有$t(entity.track_other)",
|
||||
"viewAllTracks": "查看所有$t(entity.track, {\"count\": 2})",
|
||||
"about": "关于{{artist}}",
|
||||
"appearsOn": "出现在",
|
||||
"viewAll": "查看全部",
|
||||
"groupingTypeAll": "所有发行类型"
|
||||
"groupingTypeAll": "所有发行类型",
|
||||
"groupingTypePrimary": "首选发布类型",
|
||||
"favoriteSongs": "收藏的歌曲",
|
||||
"favoriteSongsFrom": "来自 {{title}} 收藏的歌曲",
|
||||
"topSongsCommunity": "社区",
|
||||
"topSongsPersonal": "个人"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copyPath": "将路径复制到剪贴板",
|
||||
@@ -775,17 +867,33 @@
|
||||
"removeServer": "移除服务器"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "广播电台"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(暂停) ",
|
||||
"privateMode": "(私人模式)"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "覆盖现有",
|
||||
"saveAsCollection": "保存为集合"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "自 {{stable}} 以来的提交",
|
||||
"noNewCommits": "此范围内没有新的提交",
|
||||
"noStableReleaseToCompare": "目前没有稳定版本可供比较"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "删除$t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one)已成功删除",
|
||||
"input_confirm": "输入$t(entity.playlist_one)的名称进行确认"
|
||||
"title": "删除$t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1})已成功删除",
|
||||
"input_confirm": "输入$t(entity.playlist, {\"count\": 1})的名称进行确认"
|
||||
},
|
||||
"addServer": {
|
||||
"title": "添加服务器",
|
||||
@@ -801,22 +909,22 @@
|
||||
"input_url": "url",
|
||||
"input_preferInstantMixDescription": "仅使用即时混音来获取类似的歌曲。如果您有修改此行为的插件,则很有用",
|
||||
"input_preferInstantMix": "首选即时混音",
|
||||
"input_preferRemoteUrl": "首选公共 URL",
|
||||
"input_remoteUrl": "公共 URL",
|
||||
"input_remoteUrlPlaceholder": "可选:对外功能的公共 URL"
|
||||
"input_preferRemoteUrl": "首选公共 url",
|
||||
"input_remoteUrl": "公共 url",
|
||||
"input_remoteUrlPlaceholder": "可选:对外功能的公共 url"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "添加$t(entity.trackWithCount, {\"count\": {{message}} })到$t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "添加到$t(entity.playlist_one)",
|
||||
"title": "添加到$t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "跳过重复",
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"create": "创建 $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "搜索 $t(entity.playlist_other) 或键入以创建一个新的"
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "创建 $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "搜索 $t(entity.playlist, {\"count\": 2}) 或键入以创建一个新的"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"title": "创建$t(entity.playlist_one)",
|
||||
"title": "创建$t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "公开",
|
||||
"success": "已成功创建 $t(entity.playlist_one)",
|
||||
"success": "已成功创建 $t(entity.playlist, {\"count\": 1})",
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)"
|
||||
@@ -835,15 +943,15 @@
|
||||
"removeRuleGroup": "移除规则组"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "编辑$t(entity.playlist_one)",
|
||||
"title": "编辑$t(entity.playlist, {\"count\": 1})",
|
||||
"publicJellyfinNote": "Jellyfin 出于某种原因不会显示播放列表是否公开。如果您希望保持公开,请选择以下输入",
|
||||
"success": "$t(entity.playlist_one)更新成功",
|
||||
"success": "$t(entity.playlist, {\"count\": 1})更新成功",
|
||||
"editNote": "不建议对大型播放列表进行手动编辑,你确定接受新播放列表覆盖已有播放列表可能导致的数据丢失风险吗?"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"title": "搜索歌词",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist_one)"
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})"
|
||||
},
|
||||
"shareItem": {
|
||||
"expireInvalid": "过期时间必须是将来的时间",
|
||||
@@ -851,7 +959,9 @@
|
||||
"allowDownloading": "允许下载",
|
||||
"description": "描述",
|
||||
"setExpiration": "设置过期时间",
|
||||
"success": "共享链接已复制到剪贴板(或单击此处打开)"
|
||||
"success": "共享链接已复制到剪贴板(或单击此处打开)",
|
||||
"copyToClipboard": "复制到剪贴板:Ctrl+C,Enter",
|
||||
"successMustClick": "分享创建成功。点击此处打开"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "启用私人模式,播放状态现在对外部集成隐藏",
|
||||
@@ -865,7 +975,9 @@
|
||||
"createRadioStation": {
|
||||
"input_homepageUrl": "首页地址",
|
||||
"input_name": "名称",
|
||||
"input_streamUrl": "串流地址"
|
||||
"input_streamUrl": "串流地址",
|
||||
"success": "电台创建成功",
|
||||
"title": "创建广播电台"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "导出歌词",
|
||||
@@ -877,12 +989,14 @@
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "随机播放",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_played_optionAll": "所有曲目",
|
||||
"input_maxYear": "截止年份",
|
||||
"input_minYear": "起始年份",
|
||||
"input_played_optionUnplayed": "仅未播放的曲目",
|
||||
"input_played_optionPlayed": "仅已播放的曲目"
|
||||
"input_played_optionPlayed": "仅已播放的曲目",
|
||||
"input_limit": "有多少首歌?",
|
||||
"input_played": "播放筛选器"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
@@ -916,12 +1030,14 @@
|
||||
"advancedSettings": "高级设置",
|
||||
"autosize": "自动调整大小",
|
||||
"horizontalBorders": "行边框",
|
||||
"verticalBorders": "列边框"
|
||||
"verticalBorders": "列边框",
|
||||
"showHeader": "显示标题"
|
||||
},
|
||||
"view": {
|
||||
"table": "表格",
|
||||
"grid": "网格",
|
||||
"list": "列表"
|
||||
"list": "列表",
|
||||
"detail": "详情"
|
||||
},
|
||||
"label": {
|
||||
"releaseDate": "发布日期",
|
||||
@@ -934,29 +1050,32 @@
|
||||
"trackNumber": "音轨编号",
|
||||
"rowIndex": "行索引",
|
||||
"rating": "$t(common.rating)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"note": "$t(common.note)",
|
||||
"biography": "$t(common.biography)",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"playCount": "播放次数",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"discNumber": "碟片编号",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"year": "$t(common.year)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"titleCombined": "$t(common.title)(合并)",
|
||||
"codec": "$t(common.codec)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"image": "图片",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"genreBadge": "$t(entity.genre_one)(徽章)"
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1})(徽章)",
|
||||
"composer": "作曲家",
|
||||
"titleArtist": "$t(common.title) (艺术家)",
|
||||
"albumGroup": "专辑分组"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -965,7 +1084,7 @@
|
||||
"rating": "评分",
|
||||
"favorite": "收藏",
|
||||
"playCount": "播放次数",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"releaseYear": "年份",
|
||||
"lastPlayed": "最后播放",
|
||||
"biography": "简介",
|
||||
@@ -974,13 +1093,13 @@
|
||||
"title": "标题",
|
||||
"bpm": "bpm",
|
||||
"dateAdded": "添加日期",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"trackNumber": "音轨编号",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"albumArtist": "专辑艺术家",
|
||||
"path": "路径",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"discNumber": "碟片",
|
||||
"size": "$t(common.size)",
|
||||
"codec": "$t(common.codec)",
|
||||
@@ -996,7 +1115,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "播送",
|
||||
"ep": "迷你专辑(EP)",
|
||||
"single": "单曲",
|
||||
@@ -1011,7 +1130,10 @@
|
||||
"mixtape": "混音专辑",
|
||||
"remix": "再混音(Remix)",
|
||||
"soundtrack": "原声带",
|
||||
"audioDrama": "广播剧"
|
||||
"audioDrama": "广播剧",
|
||||
"djMix": "DJ混音",
|
||||
"fieldRecording": "现场录制",
|
||||
"spokenWord": "访谈"
|
||||
}
|
||||
},
|
||||
"filterOperator": {
|
||||
@@ -1032,7 +1154,8 @@
|
||||
"notContains": "不包含",
|
||||
"startsWith": "以…开头",
|
||||
"inTheRangeDate": "在(日期)范围内",
|
||||
"notInPlaylist": "不在…中"
|
||||
"notInPlaylist": "不在…中",
|
||||
"notInTheLast": "不在最后"
|
||||
},
|
||||
"datetime": {
|
||||
"minuteShort": "分",
|
||||
@@ -1085,6 +1208,112 @@
|
||||
"builtIn": "内置",
|
||||
"colors": "颜色",
|
||||
"gradient": "渐变",
|
||||
"miscellaneousSettings": "杂项设置"
|
||||
"miscellaneousSettings": "杂项设置",
|
||||
"options": {
|
||||
"channelLayout": {
|
||||
"single": "单项",
|
||||
"dualCombined": "双重组合",
|
||||
"dualHorizontal": "双水平",
|
||||
"dualVertical": "双垂直"
|
||||
},
|
||||
"mode": {
|
||||
"0": "[0] 离散频率",
|
||||
"1": "[1] 1/24倍频程 / 240频段",
|
||||
"2": "[2] 1/12 倍频程 / 120 频段",
|
||||
"3": "[3] 1/8倍频程 / 80频段",
|
||||
"4": "[4] 1/6倍频程 / 60频段",
|
||||
"5": "[5] 1/4倍频程 / 40频段",
|
||||
"6": "[6] 1/3倍频程 / 30频段",
|
||||
"7": "[7] 半倍频程 / 20 频段",
|
||||
"8": "[8] 全倍频程 / 10 频段",
|
||||
"10": "[10] 折线图 / 面积图"
|
||||
},
|
||||
"colorMode": {
|
||||
"gradient": "渐变",
|
||||
"barIndex": "Bar-Index",
|
||||
"barLevel": "Bar-Level"
|
||||
},
|
||||
"gradient": {
|
||||
"classic": "经典",
|
||||
"prism": "棱镜",
|
||||
"rainbow": "彩虹",
|
||||
"steelblue": "钢蓝色",
|
||||
"orangered": "橙红色"
|
||||
},
|
||||
"frequencyScale": {
|
||||
"none": "无",
|
||||
"bark": "树皮鳞片",
|
||||
"linear": "线性刻度",
|
||||
"log": "对数刻度",
|
||||
"mel": "梅尔刻度"
|
||||
},
|
||||
"weightingFilter": {
|
||||
"none": "无",
|
||||
"a": "A",
|
||||
"b": "B",
|
||||
"c": "C",
|
||||
"d": "D",
|
||||
"z": "Z"
|
||||
}
|
||||
},
|
||||
"cyclePresets": "循环预设",
|
||||
"includeAllPresets": "包含所有预设",
|
||||
"ignoredPresets": "忽略预设",
|
||||
"selectedPresets": "已选预设",
|
||||
"randomizeNextPreset": "随机化下一个预设",
|
||||
"blendTime": "混合时间",
|
||||
"barSpace": "住间距",
|
||||
"colorStops": "颜色停止",
|
||||
"level": "等级",
|
||||
"colorMode": "颜色模式",
|
||||
"gradientLeft": "左侧渐变",
|
||||
"gradientRight": "右侧渐变",
|
||||
"fft": "FFT",
|
||||
"fftSize": "FFT 大小",
|
||||
"smoothing": "平滑",
|
||||
"frequencyRangeAndScaling": "频率范围和缩放",
|
||||
"minimumFrequency": "最低频率",
|
||||
"maximumFrequency": "最大频率",
|
||||
"frequencyScale": "频率尺度",
|
||||
"sensitivity": "灵敏度",
|
||||
"weightingFilter": "加权滤波器",
|
||||
"minimumDecibels": "最低分贝",
|
||||
"maximumDecibels": "最大分贝",
|
||||
"linearAmplitude": "线性振幅",
|
||||
"linearBoost": "线性增强",
|
||||
"peakBehavior": "峰值行为",
|
||||
"showPeaks": "显示峰值",
|
||||
"fadePeaks": "峰值淡出",
|
||||
"peakLine": "峰值线条",
|
||||
"gravity": "重力",
|
||||
"peakFadeTime": "峰值淡出时间(毫秒)",
|
||||
"peakHoldTime": "峰值保持时间(毫秒)",
|
||||
"radialSpectrum": "圆形频谱",
|
||||
"radial": "径向",
|
||||
"radialInvert": "径向反转",
|
||||
"spinSpeed": "旋转速度",
|
||||
"radius": "半径",
|
||||
"reflexMirror": "反射镜",
|
||||
"reflexFit": "反射贴合",
|
||||
"reflexRatio": "反射比率",
|
||||
"reflexAlpha": "反射Alpha",
|
||||
"reflexBrightness": "反射亮度",
|
||||
"mirror": "镜像",
|
||||
"lowResolution": "低分辨率",
|
||||
"splitGradient": "渐变分割",
|
||||
"showScaleX": "显示比例尺 X",
|
||||
"noteLabels": "笔记标签",
|
||||
"showScaleY": "显示比例尺 Y",
|
||||
"alphaBars": "Alpha 条",
|
||||
"ansiBands": "ANSI 频段",
|
||||
"ledBars": "LED 灯条",
|
||||
"trueLeds": "真正的LED",
|
||||
"lumiBars": "Lumi 条",
|
||||
"outlineBars": "轮廓栏",
|
||||
"roundBars": "圆条"
|
||||
},
|
||||
"queryBuilder": {
|
||||
"standardTags": "标准标签",
|
||||
"customTags": "自定义标签"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"delete": "刪除",
|
||||
"descending": "降冪",
|
||||
"description": "描述",
|
||||
"forceRestartRequired": "重新啟動應用程式使更改生效…關閉通知即可重啟",
|
||||
"forceRestartRequired": "重新啟動應用程式以使更改生效…關閉通知後即可重啟",
|
||||
"menu": "選單",
|
||||
"action_other": "操作",
|
||||
"add": "新增",
|
||||
@@ -20,10 +20,10 @@
|
||||
"ascending": "升冪",
|
||||
"disable": "禁用",
|
||||
"disc": "光碟",
|
||||
"dismiss": "忽略",
|
||||
"dismiss": "不再顯示",
|
||||
"duration": "時長",
|
||||
"edit": "編輯",
|
||||
"enable": "啓用",
|
||||
"enable": "啟用",
|
||||
"expand": "展開",
|
||||
"favorite": "收藏",
|
||||
"filter_other": "篩選",
|
||||
@@ -39,8 +39,8 @@
|
||||
"ok": "好",
|
||||
"owner": "所有者",
|
||||
"path": "路徑",
|
||||
"playerMustBePaused": "播放器必須被暫停",
|
||||
"previousSong": "上一首$t(entity.track_one)",
|
||||
"playerMustBePaused": "播放器必須先暫停",
|
||||
"previousSong": "上一首$t(entity.track, {\"count\": 1})",
|
||||
"quit": "退出",
|
||||
"random": "隨機",
|
||||
"rating": "評分",
|
||||
@@ -64,9 +64,9 @@
|
||||
"cancel": "取消",
|
||||
"center": "中央",
|
||||
"channel_other": "聲道",
|
||||
"configure": "配置",
|
||||
"create": "創建",
|
||||
"currentSong": "目前$t(entity.track_one)",
|
||||
"configure": "設定",
|
||||
"create": "建立",
|
||||
"currentSong": "目前$t(entity.track, {\"count\": 1})",
|
||||
"minimize": "最小化",
|
||||
"modified": "已修改",
|
||||
"name": "名稱",
|
||||
@@ -78,7 +78,7 @@
|
||||
"newVersion": "已安裝新版本 ({{version}})",
|
||||
"viewReleaseNotes": "查看發行註記",
|
||||
"albumGain": "專輯增益",
|
||||
"albumPeak": "專輯peak",
|
||||
"albumPeak": "專輯峰值",
|
||||
"bitDepth": "位元深度",
|
||||
"close": "關閉",
|
||||
"codec": "編碼",
|
||||
@@ -86,7 +86,7 @@
|
||||
"preview": "預覽",
|
||||
"reload": "重新載入",
|
||||
"sampleRate": "取樣率",
|
||||
"setting": "設定",
|
||||
"setting_other": "設定",
|
||||
"share": "分享",
|
||||
"tags": "標籤",
|
||||
"trackGain": "曲目增益",
|
||||
@@ -110,7 +110,13 @@
|
||||
"countSelected": "{{count}}個已選取",
|
||||
"retry": "重試",
|
||||
"example": "範例",
|
||||
"mood": "情緒"
|
||||
"mood": "情緒",
|
||||
"view": "查看",
|
||||
"rename": "重新命名",
|
||||
"itemsMore": "{{count}} 更多",
|
||||
"filter_single": "單選",
|
||||
"filter_multiple": "複選",
|
||||
"newVersionAvailable": "有新的版本可供使用"
|
||||
},
|
||||
"error": {
|
||||
"endpointNotImplementedError": "{{serverType}} 尚未實現端點 {{endpoint}}",
|
||||
@@ -119,13 +125,13 @@
|
||||
"authenticationFailed": "驗證失敗",
|
||||
"credentialsRequired": "需要憑證",
|
||||
"genericError": "發生了錯誤",
|
||||
"invalidServer": "無效的服務器",
|
||||
"invalidServer": "無效的伺服器",
|
||||
"localFontAccessDenied": "無法取得本地字體",
|
||||
"loginRateError": "登錄請求嘗試次數過多,請稍後再試",
|
||||
"loginRateError": "登入請求嘗試次數過多,請稍後再試",
|
||||
"remoteDisableError": "$t(common.disable)遠端伺服器時出現錯誤",
|
||||
"remoteEnableError": "$t(common.enable)遠端伺服器時出現錯誤",
|
||||
"remotePortError": "設定遠端伺服器端口時發生錯誤",
|
||||
"remotePortWarning": "重啟伺服器使新端口生效",
|
||||
"remotePortError": "設定遠端伺服器連接埠時發生錯誤",
|
||||
"remotePortWarning": "重啟伺服器使新連接埠生效",
|
||||
"serverRequired": "需要伺服器",
|
||||
"sessionExpiredError": "工作階段已過期",
|
||||
"systemFontError": "嘗試取得系統字體時出現錯誤",
|
||||
@@ -133,15 +139,18 @@
|
||||
"mpvRequired": "需要 MPV",
|
||||
"playbackError": "無法播放媒體",
|
||||
"badAlbum": "您看到此頁面是因為這首歌不是專輯的一部分。如果您的音樂資料夾頂層有一首歌,則很可能會看到此問題。 Jellyfin 僅將資料夾中的曲目分組",
|
||||
"badValue": "無效選項“{{value}}”。該值不再存在",
|
||||
"badValue": "無效選項「{{value}}」。該值不再存在",
|
||||
"networkError": "發生網路錯誤",
|
||||
"notificationDenied": "通知權限被拒絕。此設定無效",
|
||||
"openError": "無法開啟檔案",
|
||||
"multipleServerSaveQueueError": "播放佇列中包含不是來自目前伺服器的歌曲,此操作不受支援",
|
||||
"saveQueueFailed": "儲存播放佇列失敗",
|
||||
"settingsSyncError": "偵測到渲染器與主程序之間的設定不一致,請重新啟動應用程式以套用變更",
|
||||
"settingsSyncError": "偵測到渲染器與主程式之間的設定不一致,請重新啟動應用程式以套用變更",
|
||||
"noNetwork": "伺服器無法連線",
|
||||
"noNetworkDescription": "無法連接到此伺服器"
|
||||
"noNetworkDescription": "無法連接到此伺服器",
|
||||
"invalidJson": "無效的 JSON",
|
||||
"serverLockSingleServer": "當伺服器鎖定時只允許一個伺服器",
|
||||
"playbackPausedDueToError": "發生錯誤,已停止播放"
|
||||
},
|
||||
"page": {
|
||||
"contextMenu": {
|
||||
@@ -167,8 +176,8 @@
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"shareItem": "分享項目",
|
||||
"showDetails": "取得資訊",
|
||||
"goToAlbum": "前往 $t(entity.album_one)",
|
||||
"goToAlbumArtist": "前往 $t(entity.albumArtist_one)",
|
||||
"goToAlbum": "前往 $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "前往 $t(entity.albumArtist, {\"count\": 1})",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "前往"
|
||||
},
|
||||
@@ -187,17 +196,17 @@
|
||||
"mostPlayed": "最多播放",
|
||||
"newlyAdded": "最近新增的發行",
|
||||
"recentlyReleased": "最近發佈",
|
||||
"genres": "$t(entity.genre_other)"
|
||||
"genres": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"appMenu": {
|
||||
"openBrowserDevtools": "打開瀏覽器開發者工具",
|
||||
"openBrowserDevtools": "開啟瀏覽器開發者工具",
|
||||
"collapseSidebar": "折疊側邊欄",
|
||||
"expandSidebar": "展開側邊欄",
|
||||
"goBack": "返回",
|
||||
"goForward": "前進",
|
||||
"quit": "$t(common.quit)",
|
||||
"selectServer": "選擇伺服器",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"version": "版本 {{version}}",
|
||||
"manageServers": "管理伺服器",
|
||||
"privateModeOff": "關閉私人模式",
|
||||
@@ -231,7 +240,7 @@
|
||||
"noLyrics": "未找到歌詞"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist_other)"
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"setting": {
|
||||
"hotkeysTab": "快捷鍵",
|
||||
@@ -259,57 +268,62 @@
|
||||
"lyricsDisplay": "歌詞顯示"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist_other)"
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
},
|
||||
"albumDetail": {
|
||||
"moreFromArtist": "更多來自 $t(entity.artist_one) 的作品",
|
||||
"moreFromArtist": "更多來自 $t(entity.artist, {\"count\": 1}) 的作品",
|
||||
"moreFromGeneric": "更多{{item}}作品",
|
||||
"released": "發行"
|
||||
},
|
||||
"albumList": {
|
||||
"title": "$t(entity.album_other)",
|
||||
"title": "$t(entity.album, {\"count\": 2})",
|
||||
"artistAlbums": "{{artist}} 的專輯",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"title": "$t(entity.genre_other)",
|
||||
"showAlbums": "顯示 $t(entity.genre_one) $t(entity.album_other)",
|
||||
"showTracks": "顯示 $t(entity.genre_one) $t(entity.track_other)"
|
||||
"title": "$t(entity.genre, {\"count\": 2})",
|
||||
"showAlbums": "顯示 $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "顯示 $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"sidebar": {
|
||||
"albumArtists": "$t(entity.albumArtist_other)",
|
||||
"albums": "$t(entity.album_other)",
|
||||
"artists": "$t(entity.artist_other)",
|
||||
"folders": "$t(entity.folder_other)",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting_other)",
|
||||
"tracks": "$t(entity.track_other)",
|
||||
"genres": "$t(entity.genre_other)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"home": "$t(common.home)",
|
||||
"nowPlaying": "正在播放",
|
||||
"playlists": "$t(entity.playlist_other)",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"myLibrary": "我的媒體庫",
|
||||
"shared": "已分享 $t(entity.playlist_other)",
|
||||
"favorites": "$t(entity.favorite_other)",
|
||||
"radio": "$t(entity.radioStation_other)"
|
||||
"shared": "已分享 $t(entity.playlist, {\"count\": 2})",
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})",
|
||||
"collections": "收藏"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track_other)",
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
"artistTracks": "{{artist}} 的歌曲",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"about": "關於{{artist}}",
|
||||
"appearsOn": "出現在",
|
||||
"recentReleases": "最近發行",
|
||||
"viewDiscography": "查看音樂作品",
|
||||
"relatedArtists": "關聯$t(entity.artist_other)",
|
||||
"relatedArtists": "關聯$t(entity.artist, {\"count\": 2})",
|
||||
"topSongs": "熱門歌曲",
|
||||
"topSongsFrom": "{{title}} 的熱門歌曲",
|
||||
"viewAll": "檢視所有",
|
||||
"viewAllTracks": "檢視所有$t(entity.track_other)",
|
||||
"viewAllTracks": "檢視所有$t(entity.track, {\"count\": 2})",
|
||||
"groupingTypeAll": "所有發佈類型",
|
||||
"groupingTypePrimary": "主要發佈類型"
|
||||
"groupingTypePrimary": "主要發佈類型",
|
||||
"favoriteSongs": "最愛歌曲",
|
||||
"favoriteSongsFrom": "{{title}} 的最愛歌曲",
|
||||
"topSongsCommunity": "社群",
|
||||
"topSongsPersonal": "個人"
|
||||
},
|
||||
"manageServers": {
|
||||
"title": "管理伺服器",
|
||||
@@ -328,13 +342,26 @@
|
||||
"reorder": "僅當按 ID 排序時才啟用重新排序"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite_other)"
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder_other)"
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "電台"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(暫停) ",
|
||||
"privateMode": "(私人模式)"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "複寫現有的",
|
||||
"saveAsCollection": "儲存為收藏"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "提交自 {{stable}}",
|
||||
"noNewCommits": "在此區間內沒有新的提交",
|
||||
"noStableReleaseToCompare": "沒有穩定的發行可供比較"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
@@ -376,7 +403,17 @@
|
||||
"restoreQueueFromServer": "從伺服器還原播放佇列",
|
||||
"saveQueueToServer": "將播放佇列儲存至伺服器",
|
||||
"artistRadio": "藝人電台",
|
||||
"trackRadio": "曲目電台"
|
||||
"trackRadio": "曲目電台",
|
||||
"sleepTimer": "睡眠定時器",
|
||||
"sleepTimer_endOfSong": "歌曲播完時",
|
||||
"sleepTimer_minutes": "{{count}} 分鐘",
|
||||
"sleepTimer_hours": "{{count}} 小時",
|
||||
"sleepTimer_custom": "自訂",
|
||||
"sleepTimer_off": "關閉",
|
||||
"sleepTimer_timeRemaining": "剩餘 {{time}}",
|
||||
"sleepTimer_setCustom": "設定定時器",
|
||||
"sleepTimer_cancel": "取消定時器",
|
||||
"albumRadio": "專輯電台"
|
||||
},
|
||||
"setting": {
|
||||
"audioPlayer_description": "選擇用於播放的音訊播放器",
|
||||
@@ -390,18 +427,17 @@
|
||||
"accentColor": "強調色",
|
||||
"accentColor_description": "設定應用程式的強調色",
|
||||
"applicationHotkeys": "應用程式快捷鍵",
|
||||
"applicationHotkeys_description": "設定應用程式快捷鍵。切換勾選框來設為全局快捷鍵(僅桌面端)",
|
||||
"applicationHotkeys_description": "設定應用程式快捷鍵。切換勾選框來設為全域快捷鍵(僅桌面端)",
|
||||
"audioDevice": "音訊設備",
|
||||
"audioDevice_description": "選擇用於播放的音訊設備(僅 web 播放器)",
|
||||
"audioExclusiveMode": "音訊獨占模式",
|
||||
"audioExclusiveMode_description": "啟用獨占輸出模式。在此模式下,系統通常被鎖定,只有 mpv 能夠輸出音訊",
|
||||
"audioDevice_description": "選擇用於播放的音訊設備",
|
||||
"audioExclusiveMode": "音訊獨佔模式",
|
||||
"audioExclusiveMode_description": "啟用獨佔輸出模式。在此模式下,系統通常被鎖定,只有 mpv 能夠輸出音訊",
|
||||
"audioPlayer": "音訊播放器",
|
||||
"crossfadeDuration": "淡入淡出持續時間",
|
||||
"crossfadeDuration_description": "設定淡入淡出持續時間",
|
||||
"crossfadeStyle_description": "選擇用於音訊播放器的淡入淡出風格",
|
||||
"customFontPath": "自定字體路徑",
|
||||
"customFontPath_description": "設定應用程式使用的自定字體路徑",
|
||||
"disableAutomaticUpdates": "禁用自動更新",
|
||||
"disableLibraryUpdateOnStartup": "禁用啟動時檢查新版本",
|
||||
"discordApplicationId": "{{discord}} 應用程式 id",
|
||||
"discordApplicationId_description": "{{discord}} rich presence 應用程式 id(預設為 {{defaultId}})",
|
||||
@@ -423,10 +459,10 @@
|
||||
"gaplessAudio": "無間隔音訊",
|
||||
"gaplessAudio_description": "調整 mpv 無間隔音訊設定",
|
||||
"gaplessAudio_optionWeak": "弱(建議)",
|
||||
"globalMediaHotkeys": "全局媒體快捷鍵",
|
||||
"globalMediaHotkeys": "全域媒體快捷鍵",
|
||||
"hotkey_browserForward": "瀏覽器往前",
|
||||
"hotkey_favoritePreviousSong": "收藏 $t(common.previousSong)",
|
||||
"hotkey_globalSearch": "全局搜尋",
|
||||
"hotkey_globalSearch": "全域搜尋",
|
||||
"hotkey_localSearch": "頁面內搜尋",
|
||||
"hotkey_playbackNext": "下一首",
|
||||
"hotkey_playbackPause": "暫停",
|
||||
@@ -456,7 +492,7 @@
|
||||
"lyricFetchProvider": "歌詞來源",
|
||||
"lyricOffset": "歌詞偏移(毫秒)",
|
||||
"lyricOffset_description": "將歌詞偏移指定的毫秒數",
|
||||
"lyricFetchProvider_description": "選擇歌詞來源。 來源順序即為搜尋的順序",
|
||||
"lyricFetchProvider_description": "選擇歌詞來源",
|
||||
"minimizeToTray": "最小化到系統匣",
|
||||
"minimizeToTray_description": "將應用程式最小化到系統匣",
|
||||
"minimumScrobbleSeconds": "最小紀錄時間(秒)",
|
||||
@@ -468,39 +504,39 @@
|
||||
"playButtonBehavior_description": "設定歌曲新增到佇列時播放按鈕的預設動作",
|
||||
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
|
||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||
"remotePort": "遠端控制伺服器端口",
|
||||
"remotePort": "遠端控制伺服器連接埠",
|
||||
"remoteUsername": "遠端控制伺服器使用者名稱",
|
||||
"replayGainClipping": "{{ReplayGain}}削波",
|
||||
"replayGainFallback": "{{ReplayGain}}後備替代",
|
||||
"replayGainFallback_description": "歌曲沒有{{ReplayGain}}標簽時使用的增益(以分貝為單位)",
|
||||
"replayGainMode": "{{ReplayGain}}模式",
|
||||
"replayGainMode_description": "根據歌曲標籤中儲存的{{ReplayGain}}值調整音量增益",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album_one)",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"replayGainMode_optionNone": "$t(common.none)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track_one)",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"replayGainPreamp": "{{ReplayGain}}前置放大(分貝)",
|
||||
"replayGainPreamp_description": "調整使用在{{ReplayGain}}值上的前置放大增益",
|
||||
"savePlayQueue": "儲存播放佇列",
|
||||
"sampleRate_description": "如果選擇的取樣率與目前媒體的取樣率不同,請選擇要使用的輸出取樣率。小於 8000 的值將使用預設頻率",
|
||||
"savePlayQueue_description": "當應用程式關閉時儲存播放佇列,並在應用程式打開時恢複它",
|
||||
"savePlayQueue_description": "當應用程式關閉時儲存播放佇列,並在應用程式開啟時恢複它",
|
||||
"scrobble": "記錄播放資訊(Scrobble)",
|
||||
"scrobble_description": "在你的媒體伺服器中記錄播放資訊",
|
||||
"showSkipButton": "顯示跳過按鈕",
|
||||
"showSkipButton_description": "在播放條上顯示/隱藏跳過按鈕",
|
||||
"sidebarPlaylistList": "側邊欄歌單清單",
|
||||
"sidebarPlaylistList": "側邊欄播放清單列表",
|
||||
"sidebarCollapsedNavigation": "側邊欄(已折疊)導航",
|
||||
"sidebarCollapsedNavigation_description": "在折疊的側邊欄中顯示或隱藏導航",
|
||||
"sidebarConfiguration": "側邊欄設定",
|
||||
"sidebarConfiguration_description": "選擇側邊欄包含的項目與順序",
|
||||
"sidebarPlaylistList_description": "顯示或隱藏側邊欄歌單清單",
|
||||
"sidePlayQueueStyle": "側邊播放佇列樣式",
|
||||
"sidePlayQueueStyle_description": "設置側邊播放佇列樣式",
|
||||
"sidePlayQueueStyle_description": "設定側邊播放佇列樣式",
|
||||
"sidePlayQueueStyle_optionAttached": "吸附",
|
||||
"sidePlayQueueStyle_optionDetached": "分離",
|
||||
"skipDuration": "跳過時長",
|
||||
"skipDuration_description": "設置每次按下跳過按鈕將會跳過的時長",
|
||||
"skipDuration_description": "設定每次按下跳過按鈕將會跳過的時長",
|
||||
"skipPlaylistPage": "跳過播放清單頁面",
|
||||
"skipPlaylistPage_description": "打開播放清單時,直接查看歌曲列表而非查看預設頁面",
|
||||
"skipPlaylistPage_description": "開啟播放清單時,直接查看歌曲列表而非查看預設頁面",
|
||||
"theme": "主題",
|
||||
"themeDark": "主題(深色)",
|
||||
"useSystemTheme_description": "使用系統定義的淺色或深色主題",
|
||||
@@ -528,29 +564,29 @@
|
||||
"playButtonBehavior_optionPlay": "$t(player.play)",
|
||||
"remotePassword": "遠端控制伺服器密碼",
|
||||
"remotePassword_description": "設定遠端控制伺服器的密碼。這些憑證預設以不安全的方式傳輸,因此您應該使用一個您不在意的唯一密碼",
|
||||
"remotePort_description": "設定遠端控制伺服器的端口",
|
||||
"remoteUsername_description": "設定遠端控制伺服器的使用者名稱。如果使用者名稱和密碼都為空,則身份驗證將被禁用",
|
||||
"remotePort_description": "設定遠端控制伺服器的連接埠",
|
||||
"remoteUsername_description": "設定遠端控制伺服器的使用者名稱。如果使用者名稱和密碼都為空,則身分驗證將被禁用",
|
||||
"replayGainClipping_description": "自動降低增益以防止{{ReplayGain}}造成削波",
|
||||
"showSkipButtons": "顯示跳過按鈕",
|
||||
"themeDark_description": "應用程式將使用深色主題",
|
||||
"clearQueryCache_description": "Feishin的“軟清除”。這將會刷新播放清單、曲目標籤並重置儲存的歌詞。會保留設定、伺服器憑證和暫存圖片",
|
||||
"clearQueryCache_description": "Feishin的「軟清除」。這將會刷新播放清單、曲目標籤並重置儲存的歌詞。會保留設定、伺服器憑證和暫存圖片",
|
||||
"clearCache": "清除瀏覽器快取",
|
||||
"clearCache_description": "Feishin的“硬清除”。除了清除Feishin的快取、清除瀏覽器快取(儲存的圖片和其他資源)。會保留伺服器憑證和設定",
|
||||
"clearCache_description": "Feishin的「硬清除」。除了清除Feishin的快取、清除瀏覽器快取(儲存的圖片和其他資源)。會保留伺服器憑證和設定",
|
||||
"clearQueryCache": "清除Feishin快取",
|
||||
"buttonSize": "播放器欄按鈕大小",
|
||||
"buttonSize_description": "播放器欄按鈕大小",
|
||||
"albumBackground": "專輯背景圖片",
|
||||
"albumBackground_description": "為包含專輯封面的專輯頁面新增背景圖片",
|
||||
"albumBackgroundBlur": "專輯背景圖片模糊大小",
|
||||
"albumBackgroundBlur_description": "調整應用於專輯背景圖片的模糊量",
|
||||
"albumBackgroundBlur_description": "調整應用程式於專輯背景圖片的模糊量",
|
||||
"artistConfiguration": "專輯藝人頁面設定",
|
||||
"artistConfiguration_description": "設定專輯藝人頁面中顯示的項目及排序",
|
||||
"clearCacheSuccess": "成功清除快取",
|
||||
"contextMenu": "右鍵選單配置",
|
||||
"contextMenu": "右鍵選單設定",
|
||||
"contextMenu_description": "允許您隱藏在右鍵選單項目時顯示的項目。未選取的項目將被隱藏",
|
||||
"customCssEnable": "啟用自訂CSS",
|
||||
"customCssEnable_description": "允許撰寫自訂CSS",
|
||||
"customCssNotice": "警告:雖然有一些清理措施(不允許 url() 和 content:),但使用自訂 CSS 仍然會透過更改介面帶來風險",
|
||||
"customCssNotice": "警告:即使已限制某些用法(不允許 url() 和 content:),但使用自訂 CSS 仍然會透過更改介面帶來風險",
|
||||
"customCss": "自訂CSS",
|
||||
"customCss_description": "自訂 CSS 內容。注意:內容和遠端 URL 是不允許使用的屬性。您的內容預覽如下所示。由於需要進行清理,因此存在一些您未設定的其他欄位",
|
||||
"discordPausedStatus": "暫停時顯示 rich presence",
|
||||
@@ -563,8 +599,8 @@
|
||||
"externalLinks_description": "在藝人/專輯頁面顯示外部連結(Last.fm, MusicBrainz)",
|
||||
"preferLocalLyrics": "偏好本地歌詞",
|
||||
"preferLocalLyrics_description": "優先選擇本地歌詞,而不是遠端歌詞(如果可用)",
|
||||
"homeConfiguration": "首頁配置",
|
||||
"homeConfiguration_description": "配置在首頁上顯示哪些項目以及顯示順序",
|
||||
"homeConfiguration": "首頁設定",
|
||||
"homeConfiguration_description": "設定在首頁上顯示哪些項目以及顯示順序",
|
||||
"homeFeature": "首頁特色輪播",
|
||||
"homeFeature_description": "控制是否在首頁上顯示大型特色輪播",
|
||||
"imageAspectRatio": "使用原生封面照長寬比",
|
||||
@@ -586,14 +622,14 @@
|
||||
"startMinimized": "啟動時最小化",
|
||||
"startMinimized_description": "在系統匣中啟動應用程式",
|
||||
"transcode_description": "啟用轉碼到不同格式",
|
||||
"transcodeBitrate": "要轉碼的比特率",
|
||||
"transcodeBitrate_description": "選擇要轉碼的比特率。 0 表示讓伺服器選擇",
|
||||
"transcodeBitrate": "要轉碼的位元率",
|
||||
"transcodeBitrate_description": "選擇要轉碼的位元率。 0 表示讓伺服器選擇",
|
||||
"transcodeFormat": "轉碼的格式",
|
||||
"transcodeFormat_description": "選擇要轉碼的格式。留空來讓伺服器決定",
|
||||
"translationApiProvider": "翻譯API提供者",
|
||||
"translationApiProvider_description": "翻譯API的提供者",
|
||||
"translationApiKey": "翻譯API金鑰",
|
||||
"translationApiKey_description": "翻譯的API金鑰(僅限全域服務端點)",
|
||||
"translationApiKey_description": "翻譯的API金鑰(僅限全域伺服端點)",
|
||||
"translationTargetLanguage": "目標翻譯語言",
|
||||
"translationTargetLanguage_description": "翻譯的目標語言",
|
||||
"trayEnabled": "顯示系統匣",
|
||||
@@ -610,7 +646,7 @@
|
||||
"artistBackgroundBlur_description": "調整套用至藝人背景圖片的模糊程度",
|
||||
"releaseChannel_optionLatest": "最新版本",
|
||||
"releaseChannel_optionBeta": "測試版",
|
||||
"releaseChannel_description": "選擇自動更新時要使用穩定版本或是測試版本",
|
||||
"releaseChannel_description": "選擇自動更新時要使用穩定、測試或是 alpha (每日建構版) 版本",
|
||||
"discordDisplayType": "{{discord}} presence 顯示類型",
|
||||
"discordDisplayType_description": "變更您在狀態中正在聆聽的內容",
|
||||
"discordDisplayType_songname": "歌曲名稱",
|
||||
@@ -622,8 +658,8 @@
|
||||
"hotkey_navigateHome": "導航至首頁",
|
||||
"preventSleepOnPlayback": "防止播放時進入睡眠狀態",
|
||||
"preventSleepOnPlayback_description": "在音樂播放時防止螢幕進入睡眠狀態",
|
||||
"mediaSession": "啟用Media Session",
|
||||
"mediaSession_description": "啟用 Media Session 整合功能,於系統音量Overlay和鎖定畫面中顯示媒體資料與控制面板",
|
||||
"mediaSession": "啟用 Media Session",
|
||||
"mediaSession_description": "啟用 Media Session 整合功能,於系統音量 Overlay 和鎖定畫面中顯示媒體資料與控制面板",
|
||||
"releaseChannel": "發佈通道",
|
||||
"analyticsDisable": "選擇退出使用情況分析",
|
||||
"analyticsDisable_description": "經過匿名處理的使用情況資料將傳送給開發者,以協助改進應用程式",
|
||||
@@ -706,7 +742,45 @@
|
||||
"pathReplace": "檔案路徑替換",
|
||||
"pathReplace_description": "替換您伺服器的預設檔案路徑",
|
||||
"pathReplace_optionRemovePrefix": "移除前綴",
|
||||
"pathReplace_optionAddPrefix": "增加前綴"
|
||||
"pathReplace_optionAddPrefix": "增加前綴",
|
||||
"sidebarPlaylistSorting": "側邊欄播放清單排序",
|
||||
"homeFeatureStyle_description": "控制首頁輪播的樣式",
|
||||
"homeFeatureStyle": "首頁特色輪播樣式",
|
||||
"homeFeatureStyle_optionMultiple": "多重",
|
||||
"homeFeatureStyle_optionSingle": "單一",
|
||||
"hotkey_listPlayDefault": "清單播放",
|
||||
"hotkey_listPlayLast": "清單尾端播放",
|
||||
"hotkey_listPlayNext": "清單下一項播放",
|
||||
"hotkey_listPlayNow": "清單立即播放",
|
||||
"enableGridMultiSelect": "啟用網格多選",
|
||||
"enableGridMultiSelect_description": "啟用時,允許在網格檢視中選擇多項。停用時,單擊網格項目圖片將導航到項目頁面",
|
||||
"sidebarPlaylistSorting_description": "允許在側邊欄中使用拖放手動對播放清單進行排序,而不是預設的伺服器排序",
|
||||
"sidebarPlaylistListFilterRegex_description": "在側邊欄中隱藏與此正規表達式匹配的播放清單",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "範例: ^Daily Mix.*",
|
||||
"sidebarPlaylistListFilterRegex": "播放清單過濾器正規表達式",
|
||||
"blurExplicitImages": "模糊露骨圖片",
|
||||
"blurExplicitImages_description": "標記為露骨的專輯和歌曲封面將被模糊",
|
||||
"releaseChannel_optionAlpha": "alpha (每日建構版)",
|
||||
"analyticsEnable": "傳送基於使用情況的分析報告",
|
||||
"analyticsEnable_description": "匿名化的使用情況資料會傳送給開發者,以協助改進應用程式",
|
||||
"automaticUpdates": "自動更新",
|
||||
"automaticUpdates_description": "自動檢查並安裝更新",
|
||||
"discordStateIcon": "顯示播放中圖示",
|
||||
"discordStateIcon_description": "在 rich presence 狀態中顯示一個小的播放圖示。啟用「暫停時顯示 rich presence」時,會始終顯示暫停的圖示",
|
||||
"useThemePrimaryShade": "套用主題主色調",
|
||||
"useThemePrimaryShade_description": "使用所選主題中定義的主色調作為主色變體",
|
||||
"primaryShade": "主要色調",
|
||||
"primaryShade_description": "覆蓋按鈕、連結及其他主色調元素所使用的主色調(0–9)",
|
||||
"playerItemConfiguration_description": "設定全螢幕播放器顯示的項目及排列順序",
|
||||
"playerItemConfiguration": "播放器項目設定",
|
||||
"autosave": "自動儲存播放佇列",
|
||||
"autosave_description": "啟用自動將播放佇列儲存到您的伺服器。這只有在使用Navidrome/Subsonic時才可使用,並且您不能有混合播放佇列。",
|
||||
"autosaveCount": "自動播放佇列儲存頻率",
|
||||
"autosaveCount_description": "在儲存佇列之前,有多少曲目更改。1(最小)表示每次歌曲更改",
|
||||
"spotify_description": "在藝人與專輯頁面顯示Spotify的連結",
|
||||
"spotify": "顯示Spotify的連結",
|
||||
"nativeSpotify_description": "在Spotify應用程式中開啟,而非在瀏覽器中開啟",
|
||||
"nativeSpotify": "使用Spotify應用程式"
|
||||
},
|
||||
"table": {
|
||||
"config": {
|
||||
@@ -715,7 +789,7 @@
|
||||
"gap": "$t(common.gap)",
|
||||
"size": "$t(common.size)",
|
||||
"tableColumns": "列",
|
||||
"autoFitColumns": "列寬自適應",
|
||||
"autoFitColumns": "自動調整列寬",
|
||||
"followCurrentSong": "跟隨目前歌曲",
|
||||
"itemGap": "項目間隔 (px)",
|
||||
"itemSize": "項目大小 (px)",
|
||||
@@ -739,28 +813,29 @@
|
||||
"alternateRowColors": "隔行上色",
|
||||
"horizontalBorders": "行邊框線",
|
||||
"rowHoverHighlight": "滑鼠懸停Highlight",
|
||||
"verticalBorders": "列邊框線"
|
||||
"verticalBorders": "列邊框線",
|
||||
"showHeader": "顯示標題"
|
||||
},
|
||||
"label": {
|
||||
"actions": "$t(common.action_other)",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"bpm": "$t(common.bpm)",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"dateAdded": "新增日期",
|
||||
"discNumber": "光碟編號",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"lastPlayed": "最後播放",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
"path": "$t(common.path)",
|
||||
"playCount": "播放次數",
|
||||
"releaseDate": "發布日期",
|
||||
"releaseDate": "發行日期",
|
||||
"rowIndex": "行號",
|
||||
"size": "$t(common.size)",
|
||||
"title": "$t(common.title)",
|
||||
@@ -769,27 +844,31 @@
|
||||
"year": "$t(common.year)",
|
||||
"rating": "$t(common.rating)",
|
||||
"codec": "$t(common.codec)",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"genreBadge": "$t(entity.genre_one) (徽章)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (徽章)",
|
||||
"image": "圖片",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)"
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"composer": "作曲者",
|
||||
"titleArtist": "$t(common.title) (藝人)",
|
||||
"albumGroup": "專輯分組"
|
||||
},
|
||||
"view": {
|
||||
"table": "表格",
|
||||
"grid": "網格",
|
||||
"list": "列表"
|
||||
"list": "列表",
|
||||
"detail": "詳情"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
"album": "專輯",
|
||||
"albumArtist": "專輯藝人",
|
||||
"albumCount": "$t(entity.album_other)",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "簡介",
|
||||
"bitrate": "比特率",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"bitrate": "位元率",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"comment": "評論",
|
||||
"dateAdded": "新增日期",
|
||||
"discNumber": "光碟",
|
||||
@@ -800,9 +879,9 @@
|
||||
"rating": "評價",
|
||||
"releaseDate": "發布日期",
|
||||
"releaseYear": "年份",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"bpm": "bpm",
|
||||
"songCount": "$t(entity.track_other)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "標題",
|
||||
"trackNumber": "曲目編號",
|
||||
"size": "$t(common.size)",
|
||||
@@ -813,27 +892,28 @@
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"addToFavorites": "新增到$t(entity.favorite_other)",
|
||||
"addToFavorites": "新增到$t(entity.favorite, {\"count\": 2})",
|
||||
"clearQueue": "清空播放佇列",
|
||||
"createPlaylist": "創建$t(entity.playlist_one)",
|
||||
"deletePlaylist": "刪除$t(entity.playlist_one)",
|
||||
"addToPlaylist": "新增到$t(entity.playlist_one)",
|
||||
"createPlaylist": "建立$t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "刪除$t(entity.playlist, {\"count\": 1})",
|
||||
"addToPlaylist": "新增到$t(entity.playlist, {\"count\": 1})",
|
||||
"deselectAll": "取消全選",
|
||||
"editPlaylist": "編輯 $t(entity.playlist_one)",
|
||||
"editPlaylist": "編輯 $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "前往頁面",
|
||||
"moveToBottom": "移至底部",
|
||||
"moveToTop": "移至頂部",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "從$t(entity.favorite_other)移除",
|
||||
"removeFromPlaylist": "從$t(entity.playlist_one)移除",
|
||||
"removeFromFavorites": "從$t(entity.favorite, {\"count\": 2})移除",
|
||||
"removeFromPlaylist": "從$t(entity.playlist, {\"count\": 1})移除",
|
||||
"removeFromQueue": "從播放佇列中移除",
|
||||
"setRating": "評分",
|
||||
"toggleSmartPlaylistEditor": "切換$t(entity.smartPlaylist)編輯器",
|
||||
"viewPlaylists": "查看$t(entity.playlist_other)",
|
||||
"viewPlaylists": "查看$t(entity.playlist, {\"count\": 2})",
|
||||
"moveToNext": "移至下一項",
|
||||
"openIn": {
|
||||
"lastfm": "在Last.fm開啟",
|
||||
"musicbrainz": "在MusicBrainz開啟"
|
||||
"musicbrainz": "在MusicBrainz開啟",
|
||||
"spotify": "在Spotify中開啟"
|
||||
},
|
||||
"downloadStarted": "已開始下載 {{count}} 項內容",
|
||||
"moveItems": "移動項目",
|
||||
@@ -845,11 +925,13 @@
|
||||
"moveDown": "向下移動",
|
||||
"holdToMoveToTop": "按住以移動至頂部",
|
||||
"holdToMoveToBottom": "按住以移動至底部",
|
||||
"createRadioStation": "創建 $t(entity.radioStation_one)",
|
||||
"deleteRadioStation": "刪除 $t(entity.radioStation_one)",
|
||||
"createRadioStation": "建立 $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "刪除 $t(entity.radioStation, {\"count\": 1})",
|
||||
"openApplicationDirectory": "開啟應用程式目錄",
|
||||
"addOrRemoveFromSelection": "新增或移除選取項目",
|
||||
"selectAll": "全選"
|
||||
"selectAll": "全選",
|
||||
"selectRangeOfItems": "批量選取",
|
||||
"goToCurrent": "前往當前項目"
|
||||
},
|
||||
"entity": {
|
||||
"album_other": "專輯",
|
||||
@@ -864,7 +946,7 @@
|
||||
"genreWithCount_other": "{{count}} 種曲風",
|
||||
"playlist_other": "播放清單",
|
||||
"playlistWithCount_other": "{{count}} 個播放清單",
|
||||
"smartPlaylist": "智慧$t(entity.playlist_one)",
|
||||
"smartPlaylist": "智慧$t(entity.playlist, {\"count\": 1})",
|
||||
"track_other": "曲目",
|
||||
"trackWithCount_other": "{{count}} 首曲目",
|
||||
"albumWithCount_other": "{{count}} 張專輯",
|
||||
@@ -874,12 +956,12 @@
|
||||
"radioStationWithCount_other": "{{count}} 個電台"
|
||||
},
|
||||
"filter": {
|
||||
"albumCount": "$t(entity.album_other)數",
|
||||
"artist": "$t(entity.artist_one)",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})數",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "個人簡介",
|
||||
"bitrate": "比特率",
|
||||
"bitrate": "位元率",
|
||||
"bpm": "bpm",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"comment": "評論",
|
||||
"communityRating": "社群評分",
|
||||
"criticRating": "評論家評分",
|
||||
@@ -888,7 +970,7 @@
|
||||
"duration": "時長",
|
||||
"id": "id",
|
||||
"fromYear": "從年份",
|
||||
"genre": "$t(entity.genre_one)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"isCompilation": "為合輯",
|
||||
"isFavorited": "已收藏",
|
||||
"isPublic": "已公開",
|
||||
@@ -907,8 +989,8 @@
|
||||
"recentlyUpdated": "最近更新",
|
||||
"releaseDate": "發布日期",
|
||||
"songCount": "曲目數",
|
||||
"album": "$t(entity.album_one)",
|
||||
"albumArtist": "$t(entity.albumArtist_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"favorited": "已收藏",
|
||||
"recentlyAdded": "最近新增",
|
||||
"releaseYear": "發布年份",
|
||||
@@ -916,7 +998,10 @@
|
||||
"title": "標題",
|
||||
"toYear": "從年份",
|
||||
"trackNumber": "曲目",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"sortName": "排序名稱",
|
||||
"matchAnd": "和",
|
||||
"matchOr": "或"
|
||||
},
|
||||
"form": {
|
||||
"addServer": {
|
||||
@@ -932,31 +1017,31 @@
|
||||
"ignoreCors": "忽略 cors $t(common.restartRequired)",
|
||||
"ignoreSsl": "忽略 ssl $t(common.restartRequired)",
|
||||
"input_preferInstantMix": "偏好即時混音",
|
||||
"input_preferInstantMixDescription": "僅使用即時混音功能來獲取相似歌曲。若您擁有能修改此行為的外掛,此功能將相當實用",
|
||||
"input_preferInstantMixDescription": "僅使用即時混音功能來取得相似歌曲。若您擁有能修改此行為的外掛,此功能將相當實用",
|
||||
"input_preferRemoteUrl": "優先使用公開網址",
|
||||
"input_remoteUrl": "公開網址",
|
||||
"input_remoteUrlPlaceholder": "選用:對外功能的公開網址"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_playlists": "$t(entity.playlist_other)",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "跳過重複",
|
||||
"success": "新增 $t(entity.trackWithCount, {\"count\": {{message}} }) 到 $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "新增到$t(entity.playlist_one)",
|
||||
"create": "創建 $t(entity.playlist_one) {{playlist}}",
|
||||
"searchOrCreate": "搜尋$t(entity.playlist_other) 或輸入內容以建立新項目"
|
||||
"title": "新增到$t(entity.playlist, {\"count\": 1})",
|
||||
"create": "建立 $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||
"searchOrCreate": "搜尋$t(entity.playlist, {\"count\": 2}) 或輸入內容以建立新項目"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_description": "$t(common.description)",
|
||||
"input_name": "$t(common.name)",
|
||||
"input_owner": "$t(common.owner)",
|
||||
"input_public": "公開",
|
||||
"success": "已成功創建 $t(entity.playlist_one)",
|
||||
"title": "創建$t(entity.playlist_one)"
|
||||
"success": "已成功建立 $t(entity.playlist, {\"count\": 1})",
|
||||
"title": "建立$t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"title": "搜尋歌詞",
|
||||
"input_artist": "$t(entity.artist_one)"
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})"
|
||||
},
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "匹配全部",
|
||||
@@ -972,14 +1057,14 @@
|
||||
"title": "更新伺服器"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "輸入$t(entity.playlist_one)的名稱進行確認",
|
||||
"title": "刪除$t(entity.playlist_one)",
|
||||
"success": "$t(entity.playlist_one)已成功刪除"
|
||||
"input_confirm": "輸入$t(entity.playlist, {\"count\": 1})的名稱進行確認",
|
||||
"title": "刪除$t(entity.playlist, {\"count\": 1})",
|
||||
"success": "$t(entity.playlist, {\"count\": 1})已成功刪除"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "編輯$t(entity.playlist_one)",
|
||||
"title": "編輯$t(entity.playlist, {\"count\": 1})",
|
||||
"publicJellyfinNote": "Jellyfin 出於某種原因,不會顯示播放清單是否公開。如果您希望保持公開狀態,請選擇以下輸入",
|
||||
"success": "$t(entity.playlist_one) 更新成功",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) 更新成功",
|
||||
"editNote": "不建議手動編輯大型播放清單,你確定要承擔覆寫現有播放清單可能造成的資料遺失風險嗎?"
|
||||
},
|
||||
"shareItem": {
|
||||
@@ -988,7 +1073,9 @@
|
||||
"setExpiration": "設定過期時間",
|
||||
"success": "分享連結已複製到剪貼簿(或點擊此處開啟)",
|
||||
"expireInvalid": "到期日必須是未來",
|
||||
"createFailed": "無法建立分享(分享是否啟用?)"
|
||||
"createFailed": "無法建立分享(分享是否啟用?)",
|
||||
"copyToClipboard": "複製到剪貼簿:Ctrl+C, Enter",
|
||||
"successMustClick": "分享建立成功,點擊此處開啟"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "已啟用私人模式,播放狀態將對外部整合隱藏",
|
||||
@@ -1001,7 +1088,7 @@
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "隨機播放",
|
||||
"input_genre": "$t(entity.genre_one)",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "多少曲目?",
|
||||
"input_minYear": "起始年份",
|
||||
"input_maxYear": "結束年份",
|
||||
@@ -1011,8 +1098,8 @@
|
||||
"input_played_optionPlayed": "僅播放過的曲目"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"success": "電台創建成功",
|
||||
"title": "創建電台",
|
||||
"success": "電台建立成功",
|
||||
"title": "建立電台",
|
||||
"input_homepageUrl": "首頁連結",
|
||||
"input_name": "名稱",
|
||||
"input_streamUrl": "串流網址"
|
||||
@@ -1028,7 +1115,7 @@
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album_one)",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"ep": "EP",
|
||||
"other": "其他",
|
||||
"broadcast": "廣播",
|
||||
@@ -1045,7 +1132,8 @@
|
||||
"live": "Live",
|
||||
"mixtape": "混音帶",
|
||||
"remix": "Remix",
|
||||
"soundtrack": "原聲帶"
|
||||
"soundtrack": "原聲帶",
|
||||
"spokenWord": "訪談"
|
||||
}
|
||||
},
|
||||
"dragDropZone": {
|
||||
@@ -1120,8 +1208,8 @@
|
||||
"channelLayout": "聲道佈局",
|
||||
"maxFPS": "最大幀率",
|
||||
"opacity": "不透明度",
|
||||
"customGradients": "自定義漸層",
|
||||
"addCustomGradient": "新增自定義漸層",
|
||||
"customGradients": "自訂漸層",
|
||||
"addCustomGradient": "新增自訂漸層",
|
||||
"gradientName": "漸層名稱",
|
||||
"gradientNamePlaceholder": "漸層名稱",
|
||||
"vertical": "垂直",
|
||||
@@ -1157,6 +1245,80 @@
|
||||
"gravity": "重力",
|
||||
"peakFadeTime": "峰值淡出時間 (毫秒)",
|
||||
"peakHoldTime": "峰值停留時間 (毫秒)",
|
||||
"radialSpectrum": "圓形頻譜"
|
||||
"radialSpectrum": "圓形頻譜",
|
||||
"level": "層級",
|
||||
"pasteGradient": "貼上漸層",
|
||||
"pasteGradientPlaceholder": "在這裡貼上漸層JSON...",
|
||||
"radial": "放射",
|
||||
"radialInvert": "反轉放射",
|
||||
"spinSpeed": "旋轉速度",
|
||||
"radius": "半徑",
|
||||
"reflexMirror": "反射鏡像",
|
||||
"reflexFit": "反射貼齊",
|
||||
"reflexRatio": "反射比例",
|
||||
"reflexAlpha": "反射 Alpha",
|
||||
"reflexBrightness": "反射亮度",
|
||||
"mirror": "鏡像",
|
||||
"miscellaneousSettings": "雜項設定",
|
||||
"alphaBars": "Alpha 條",
|
||||
"ansiBands": "ASNI 波段",
|
||||
"ledBars": "LED 條",
|
||||
"trueLeds": "真實 LED",
|
||||
"lumiBars": "輝光條",
|
||||
"outlineBars": "外框條",
|
||||
"roundBars": "圓角條",
|
||||
"lowResolution": "低解析",
|
||||
"splitGradient": "分割漸層",
|
||||
"showFPS": "顯示 FPS",
|
||||
"showScaleX": "顯示 X 軸比例",
|
||||
"noteLabels": "音符標籤",
|
||||
"showScaleY": "顯示Y軸比例",
|
||||
"options": {
|
||||
"mode": {
|
||||
"0": "[0] 離散頻率",
|
||||
"1": "[1] 1/24th 八度音 / 240 頻段",
|
||||
"2": "[2] 1/12th 八度音 / 120 頻段",
|
||||
"3": "[3] 1/8th 八度音 / 80 頻段",
|
||||
"4": "[4] 1/6th 八度音 / 60 頻段",
|
||||
"5": "[5] 1/4th 八度音 / 40 頻段",
|
||||
"6": "[6] 1/3rd 八度音 / 30 頻段",
|
||||
"7": "[7] 一半八度音 / 20 頻段",
|
||||
"8": "[8] 完整八度音 / 10 頻段",
|
||||
"10": "[10] 線 / 區域圖表"
|
||||
},
|
||||
"colorMode": {
|
||||
"gradient": "梯度",
|
||||
"barIndex": "條-指數",
|
||||
"barLevel": "條-高度"
|
||||
},
|
||||
"gradient": {
|
||||
"classic": "經典",
|
||||
"prism": "菱鏡",
|
||||
"rainbow": "彩虹",
|
||||
"steelblue": "鋼藍",
|
||||
"orangered": "橙紅色"
|
||||
},
|
||||
"channelLayout": {
|
||||
"single": "單一",
|
||||
"dualCombined": "雙重-合併",
|
||||
"dualHorizontal": "雙重-水平",
|
||||
"dualVertical": "雙重-垂直"
|
||||
},
|
||||
"frequencyScale": {
|
||||
"none": "無",
|
||||
"bark": "比例刻度",
|
||||
"linear": "線性比例",
|
||||
"log": "Log 比例",
|
||||
"mel": "Mel 比例"
|
||||
},
|
||||
"weightingFilter": {
|
||||
"none": "無",
|
||||
"a": "A",
|
||||
"b": "B",
|
||||
"c": "C",
|
||||
"d": "D",
|
||||
"z": "Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,10 @@ import { getLyricsBySongId as getGenius, getSearchResults as searchGenius } from
|
||||
import { getLyricsBySongId as getLrcLib, getSearchResults as searchLrcLib } from './lrclib';
|
||||
import { getLyricsBySongId as getNetease, getSearchResults as searchNetease } from './netease';
|
||||
import { orderSearchResults } from './shared';
|
||||
import {
|
||||
getLyricsBySongId as getSimpMusic,
|
||||
getSearchResults as searchSimpMusic,
|
||||
} from './simpmusic';
|
||||
|
||||
import { Song } from '/@/shared/types/domain-types';
|
||||
|
||||
@@ -12,6 +16,7 @@ export enum LyricSource {
|
||||
GENIUS = 'Genius',
|
||||
LRCLIB = 'lrclib.net',
|
||||
NETEASE = 'NetEase',
|
||||
SIMPMUSIC = 'SimpMusic',
|
||||
}
|
||||
|
||||
export type FullLyricsMetadata = Omit<InternetProviderLyricResponse, 'id' | 'lyrics' | 'source'> & {
|
||||
@@ -66,18 +71,44 @@ const SEARCH_FETCHERS: Record<LyricSource, SearchFetcher> = {
|
||||
[LyricSource.GENIUS]: searchGenius,
|
||||
[LyricSource.LRCLIB]: searchLrcLib,
|
||||
[LyricSource.NETEASE]: searchNetease,
|
||||
[LyricSource.SIMPMUSIC]: searchSimpMusic,
|
||||
};
|
||||
|
||||
const GET_FETCHERS: Record<LyricSource, GetFetcher> = {
|
||||
[LyricSource.GENIUS]: getGenius,
|
||||
[LyricSource.LRCLIB]: getLrcLib,
|
||||
[LyricSource.NETEASE]: getNetease,
|
||||
[LyricSource.SIMPMUSIC]: getSimpMusic,
|
||||
};
|
||||
|
||||
const MAX_CACHED_ITEMS = 10;
|
||||
|
||||
const lyricCache = new Map<string, CachedLyrics>();
|
||||
|
||||
const searchAllSources = async (
|
||||
params: LyricSearchQuery,
|
||||
): Promise<InternetProviderLyricSearchResponse[]> => {
|
||||
const sources = store.get('lyrics', []) as LyricSource[];
|
||||
|
||||
const searchPromises = sources.map((source) =>
|
||||
SEARCH_FETCHERS[source](params).then((searchResults) => ({ searchResults, source })),
|
||||
);
|
||||
|
||||
const settled = await Promise.allSettled(searchPromises);
|
||||
|
||||
const allSearchResults: InternetProviderLyricSearchResponse[] = [];
|
||||
|
||||
for (const result of settled) {
|
||||
if (result.status === 'fulfilled' && result.value.searchResults) {
|
||||
allSearchResults.push(...result.value.searchResults);
|
||||
} else if (result.status === 'rejected') {
|
||||
const index = settled.indexOf(result);
|
||||
console.error(`Error searching ${sources[index]} for lyrics:`, result.reason);
|
||||
}
|
||||
}
|
||||
return allSearchResults;
|
||||
};
|
||||
|
||||
const getRemoteLyrics = async (song: Song) => {
|
||||
const sources = store.get('lyrics', []) as LyricSource[];
|
||||
|
||||
@@ -97,18 +128,7 @@ const getRemoteLyrics = async (song: Song) => {
|
||||
name: song.name,
|
||||
};
|
||||
|
||||
const allSearchResults: InternetProviderLyricSearchResponse[] = [];
|
||||
|
||||
for (const source of sources) {
|
||||
try {
|
||||
const searchResults = await SEARCH_FETCHERS[source](params);
|
||||
if (searchResults) {
|
||||
allSearchResults.push(...searchResults);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Error searching ${source} for lyrics:`, error);
|
||||
}
|
||||
}
|
||||
const allSearchResults = await searchAllSources(params);
|
||||
|
||||
if (allSearchResults.length === 0) {
|
||||
return null;
|
||||
@@ -172,24 +192,17 @@ const getRemoteLyrics = async (song: Song) => {
|
||||
};
|
||||
|
||||
const searchRemoteLyrics = async (params: LyricSearchQuery) => {
|
||||
const sources = store.get('lyrics', []) as LyricSource[];
|
||||
const allSearchResults = await searchAllSources(params);
|
||||
|
||||
const results: Record<LyricSource, InternetProviderLyricSearchResponse[]> = {
|
||||
[LyricSource.GENIUS]: [],
|
||||
[LyricSource.LRCLIB]: [],
|
||||
[LyricSource.NETEASE]: [],
|
||||
[LyricSource.SIMPMUSIC]: [],
|
||||
};
|
||||
|
||||
for (const source of sources) {
|
||||
const response = await SEARCH_FETCHERS[source](params);
|
||||
|
||||
if (response) {
|
||||
response.forEach((result) => {
|
||||
results[source].push(result);
|
||||
});
|
||||
}
|
||||
for (const item of allSearchResults) {
|
||||
results[item.source].push(item);
|
||||
}
|
||||
|
||||
return results;
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
import axios, { AxiosResponse } from 'axios';
|
||||
|
||||
import {
|
||||
InternetProviderLyricResponse,
|
||||
InternetProviderLyricSearchResponse,
|
||||
LyricSearchQuery,
|
||||
LyricSource,
|
||||
} from '.';
|
||||
import { orderSearchResults } from './shared';
|
||||
|
||||
const API_URL = 'https://api-lyrics.simpmusic.org/v1';
|
||||
|
||||
const TIMEOUT_MS = 5000;
|
||||
|
||||
export interface SimpMusicLyric {
|
||||
albumName?: string;
|
||||
artistName: string;
|
||||
durationSeconds?: number;
|
||||
id: string;
|
||||
plainLyric?: string;
|
||||
richSyncLyrics?: string;
|
||||
songTitle: string;
|
||||
syncedLyrics?: string;
|
||||
videoId: string;
|
||||
vote?: number;
|
||||
}
|
||||
|
||||
export interface SimpMusicSearchResponse {
|
||||
data: SimpMusicLyric[];
|
||||
success: boolean;
|
||||
}
|
||||
|
||||
export async function getLyricsBySongId(songId: string): Promise<null | string> {
|
||||
let result: AxiosResponse;
|
||||
|
||||
try {
|
||||
result = await axios.get(`${API_URL}/${songId}`, {
|
||||
timeout: TIMEOUT_MS,
|
||||
});
|
||||
} catch (e) {
|
||||
console.error('SimpMusic lyrics request errored:', (e as Error)?.message);
|
||||
return null;
|
||||
}
|
||||
|
||||
const firstLyric = (result.data.data?.[0] ?? null) as null | SimpMusicLyric;
|
||||
if (!firstLyric) return null;
|
||||
|
||||
return firstLyric.syncedLyrics || firstLyric.plainLyric || null;
|
||||
}
|
||||
|
||||
export async function getSearchResults(
|
||||
params: LyricSearchQuery,
|
||||
): Promise<InternetProviderLyricSearchResponse[] | null> {
|
||||
let result: AxiosResponse<SimpMusicSearchResponse>;
|
||||
|
||||
if (!params.name) return null;
|
||||
|
||||
try {
|
||||
result = await axios.get<SimpMusicSearchResponse>(`${API_URL}/search`, {
|
||||
params: {
|
||||
q: params.name,
|
||||
},
|
||||
timeout: TIMEOUT_MS,
|
||||
});
|
||||
} catch (e) {
|
||||
console.error('SimpMusic search errored:', (e as Error)?.message);
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!result.data?.data) return null;
|
||||
|
||||
const songResults: InternetProviderLyricSearchResponse[] = result.data.data.map((song) => ({
|
||||
artist: song.artistName,
|
||||
id: song.videoId,
|
||||
isSync: song.syncedLyrics ? true : false,
|
||||
name: song.songTitle,
|
||||
source: LyricSource.SIMPMUSIC,
|
||||
}));
|
||||
|
||||
return orderSearchResults({ params, results: songResults });
|
||||
}
|
||||
|
||||
export async function query(
|
||||
params: LyricSearchQuery,
|
||||
): Promise<InternetProviderLyricResponse | null> {
|
||||
if (!params.name) return null;
|
||||
|
||||
let search: AxiosResponse<SimpMusicSearchResponse>;
|
||||
|
||||
try {
|
||||
search = await axios.get<SimpMusicSearchResponse>(`${API_URL}/search`, {
|
||||
params: {
|
||||
q: params.name,
|
||||
},
|
||||
timeout: TIMEOUT_MS,
|
||||
});
|
||||
} catch (e) {
|
||||
console.error('SimpMusic search errored:', (e as Error).message);
|
||||
return null;
|
||||
}
|
||||
|
||||
const first = search.data?.data?.[0];
|
||||
if (!first) return null;
|
||||
|
||||
let lyric: AxiosResponse<SimpMusicLyric>;
|
||||
|
||||
try {
|
||||
lyric = await axios.get<SimpMusicLyric>(`${API_URL}/${first.videoId}`, {
|
||||
timeout: TIMEOUT_MS,
|
||||
});
|
||||
} catch (e) {
|
||||
console.error('SimpMusic lyrics fetch errored:', (e as Error).message);
|
||||
return null;
|
||||
}
|
||||
|
||||
const lyrics = lyric.data.syncedLyrics || lyric.data.plainLyric || null;
|
||||
if (!lyrics) return null;
|
||||
|
||||
return {
|
||||
artist: lyric.data.artistName,
|
||||
id: lyric.data.videoId,
|
||||
lyrics,
|
||||
name: lyric.data.songTitle,
|
||||
source: LyricSource.SIMPMUSIC,
|
||||
};
|
||||
}
|
||||
@@ -116,11 +116,15 @@ const createMpv = async (data: {
|
||||
|
||||
mpv.on('status', (status) => {
|
||||
if (status.property === 'playlist-pos') {
|
||||
// mpv uses playlist-pos = -1 when nothing is playing (ended, cleared, load failure, etc).
|
||||
if (status.value === -1) {
|
||||
mpv?.pause();
|
||||
return;
|
||||
}
|
||||
|
||||
if (status.value !== 0) {
|
||||
// In our 2-item queue model, playlist-pos should normally be 0.
|
||||
// When mpv auto-advances to the next track it becomes > 0 (typically 1).
|
||||
if (typeof status.value === 'number' && status.value > 0) {
|
||||
getMainWindow()?.webContents.send('renderer-player-auto-next');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
import { app, ipcMain, Menu } from 'electron';
|
||||
|
||||
import { getMainWindow } from '/@/main/index';
|
||||
import { PlayerStatus } from '/@/shared/types/types';
|
||||
|
||||
let currentStatus: PlayerStatus = PlayerStatus.PAUSED;
|
||||
|
||||
const updateDockMenu = () => {
|
||||
if (!app.dock) return;
|
||||
|
||||
const isPlaying = currentStatus === PlayerStatus.PLAYING;
|
||||
|
||||
const dockMenu = Menu.buildFromTemplate([
|
||||
{
|
||||
click: () => {
|
||||
getMainWindow()?.webContents.send('renderer-player-play-pause');
|
||||
},
|
||||
label: isPlaying ? 'Pause' : 'Play',
|
||||
},
|
||||
{
|
||||
type: 'separator',
|
||||
},
|
||||
{
|
||||
click: () => {
|
||||
getMainWindow()?.webContents.send('renderer-player-next');
|
||||
},
|
||||
label: 'Next',
|
||||
},
|
||||
{
|
||||
click: () => {
|
||||
getMainWindow()?.webContents.send('renderer-player-previous');
|
||||
},
|
||||
label: 'Previous',
|
||||
},
|
||||
{
|
||||
type: 'separator',
|
||||
},
|
||||
{
|
||||
click: () => {
|
||||
getMainWindow()?.webContents.send('renderer-player-stop');
|
||||
},
|
||||
label: 'Stop',
|
||||
},
|
||||
]);
|
||||
|
||||
app.dock.setMenu(dockMenu);
|
||||
};
|
||||
|
||||
ipcMain.on('update-playback', (_event, status: PlayerStatus) => {
|
||||
currentStatus = status;
|
||||
updateDockMenu();
|
||||
});
|
||||
|
||||
// Initialize dock menu after app is ready
|
||||
app.whenReady().then(() => {
|
||||
updateDockMenu();
|
||||
});
|
||||
@@ -0,0 +1 @@
|
||||
import './dock-menu';
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import type { UpdateCheckResult } from 'electron-updater';
|
||||
|
||||
import { is } from '@electron-toolkit/utils';
|
||||
import {
|
||||
app,
|
||||
@@ -18,9 +20,10 @@ import {
|
||||
} from 'electron';
|
||||
import electronLocalShortcut from 'electron-localshortcut';
|
||||
import log from 'electron-log/main';
|
||||
import { autoUpdater } from 'electron-updater';
|
||||
import { AppImageUpdater, autoUpdater, MacUpdater, NsisUpdater } from 'electron-updater';
|
||||
import { access, constants } from 'fs';
|
||||
import path, { join } from 'path';
|
||||
import semver from 'semver';
|
||||
|
||||
import packageJson from '../../package.json';
|
||||
import { disableMediaKeys, enableMediaKeys } from './features/core/player/media-keys';
|
||||
@@ -40,40 +43,219 @@ import './features';
|
||||
|
||||
import { PlayerType, TitleTheme } from '/@/shared/types/types';
|
||||
|
||||
export default class AppUpdater {
|
||||
const ALPHA_UPDATER_CONFIG: {
|
||||
bucket: string;
|
||||
channel: string;
|
||||
endpoint: string;
|
||||
provider: 's3';
|
||||
} = {
|
||||
bucket: '',
|
||||
channel: 'alpha',
|
||||
endpoint: 'https://feishin-nightly-bucket.jeffvli.org',
|
||||
provider: 's3',
|
||||
};
|
||||
|
||||
const GITHUB_UPDATER_CONFIG = {
|
||||
owner: 'jeffvli',
|
||||
provider: 'github' as const,
|
||||
repo: 'feishin',
|
||||
};
|
||||
|
||||
type UpdaterInstance = AppImageUpdater | MacUpdater | NsisUpdater | typeof autoUpdater;
|
||||
|
||||
class AppUpdater {
|
||||
constructor() {
|
||||
log.transports.file.level = 'info';
|
||||
autoUpdater.logger = autoUpdaterLogInterface;
|
||||
|
||||
const isBetaVersion = packageJson.version.includes('-beta');
|
||||
const releaseChannel = store.get('release_channel');
|
||||
const isNotConfigured = !releaseChannel;
|
||||
|
||||
console.log('Release channel: ', releaseChannel);
|
||||
console.log('Is beta version: ', isBetaVersion);
|
||||
|
||||
if (isNotConfigured) {
|
||||
console.log(
|
||||
'Release channel not configured, setting to ',
|
||||
isBetaVersion ? 'beta' : 'latest',
|
||||
);
|
||||
store.set('release_channel', isBetaVersion ? 'beta' : 'latest');
|
||||
const effectiveChannel = store.get('release_channel') as string;
|
||||
console.log('Effective update channel:', effectiveChannel);
|
||||
if (effectiveChannel === 'alpha') {
|
||||
checkAllChannelsAndGetBest().then(({ result, updater: updaterInstance }) => {
|
||||
updaterInstance.autoInstallOnAppQuit = true;
|
||||
updaterInstance.autoRunAppAfterInstall = true;
|
||||
if (isMacOS()) {
|
||||
if (result?.isUpdateAvailable) {
|
||||
getMainWindow()?.webContents.send(
|
||||
'update-available',
|
||||
result.updateInfo.version,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
updaterInstance.checkForUpdatesAndNotify();
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (releaseChannel === 'beta') {
|
||||
autoUpdater.channel = 'beta';
|
||||
autoUpdater.allowPrerelease = true;
|
||||
autoUpdater.disableDifferentialDownload = true;
|
||||
} else if (releaseChannel === 'latest') {
|
||||
autoUpdater.channel = 'latest';
|
||||
autoUpdater.allowDowngrade = true;
|
||||
autoUpdater.allowPrerelease = false;
|
||||
configureAndGetUpdater();
|
||||
if (isMacOS()) {
|
||||
autoUpdater.autoDownload = false;
|
||||
autoUpdater
|
||||
.checkForUpdates()
|
||||
.then((result) => {
|
||||
if (result?.isUpdateAvailable) {
|
||||
getMainWindow()?.webContents.send(
|
||||
'update-available',
|
||||
result.updateInfo.version,
|
||||
);
|
||||
}
|
||||
})
|
||||
.catch((err) => console.error('Check for updates failed', err));
|
||||
} else {
|
||||
autoUpdater.checkForUpdatesAndNotify();
|
||||
}
|
||||
|
||||
autoUpdater.checkForUpdatesAndNotify();
|
||||
}
|
||||
}
|
||||
|
||||
// When release channel is alpha, check alpha and latest for updates and return
|
||||
// the updater + result for the newest version found (so alpha users can receive
|
||||
// latest updates when they are newer than the current alpha).
|
||||
async function checkAllChannelsAndGetBest(): Promise<{
|
||||
result: null | UpdateCheckResult;
|
||||
updater: UpdaterInstance;
|
||||
}> {
|
||||
const currentVersion = packageJson.version;
|
||||
const candidates: Array<{
|
||||
channel: 'alpha' | 'beta' | 'latest';
|
||||
result: UpdateCheckResult;
|
||||
updater: UpdaterInstance;
|
||||
}> = [];
|
||||
|
||||
const alphaUpdater = createAlphaUpdaterInstance();
|
||||
alphaUpdater.logger = autoUpdaterLogInterface;
|
||||
alphaUpdater.channel = ALPHA_UPDATER_CONFIG.channel;
|
||||
alphaUpdater.allowPrerelease = true;
|
||||
alphaUpdater.disableDifferentialDownload = true;
|
||||
alphaUpdater.allowDowngrade = true;
|
||||
|
||||
try {
|
||||
console.log('Checking for updates on alpha channel');
|
||||
const alphaResult = await alphaUpdater.checkForUpdates();
|
||||
if (
|
||||
alphaResult?.updateInfo?.version &&
|
||||
alphaResult.isUpdateAvailable &&
|
||||
semver.valid(alphaResult.updateInfo.version) &&
|
||||
semver.gt(alphaResult.updateInfo.version, currentVersion)
|
||||
) {
|
||||
candidates.push({ channel: 'alpha', result: alphaResult, updater: alphaUpdater });
|
||||
}
|
||||
} catch (e) {
|
||||
log.warn('Alpha channel check failed', e);
|
||||
}
|
||||
|
||||
try {
|
||||
autoUpdater.setFeedURL(GITHUB_UPDATER_CONFIG);
|
||||
configureAutoUpdaterForChannel('latest');
|
||||
console.log('Checking for updates on latest channel (GitHub)');
|
||||
const latestResult = await autoUpdater.checkForUpdates();
|
||||
if (
|
||||
latestResult?.updateInfo?.version &&
|
||||
latestResult.isUpdateAvailable &&
|
||||
semver.valid(latestResult.updateInfo.version) &&
|
||||
semver.gt(latestResult.updateInfo.version, currentVersion)
|
||||
) {
|
||||
candidates.push({ channel: 'latest', result: latestResult, updater: autoUpdater });
|
||||
}
|
||||
} catch (e) {
|
||||
log.warn('Latest channel check failed', e);
|
||||
}
|
||||
|
||||
if (candidates.length === 0) {
|
||||
return { result: null, updater: alphaUpdater };
|
||||
}
|
||||
|
||||
const best = candidates.reduce((a, b) =>
|
||||
semver.gt(a.result.updateInfo.version, b.result.updateInfo.version) ? a : b,
|
||||
);
|
||||
|
||||
if (best.channel === 'latest') {
|
||||
configureAutoUpdaterForChannel('latest');
|
||||
}
|
||||
|
||||
return { result: best.result, updater: best.updater };
|
||||
}
|
||||
|
||||
function configureAndGetUpdater(): UpdaterInstance {
|
||||
const isBetaVersion = packageJson.version.includes('-beta');
|
||||
const isAlphaVersion = packageJson.version.includes('-alpha');
|
||||
let releaseChannel = store.get('release_channel');
|
||||
const isNotConfigured = !releaseChannel;
|
||||
|
||||
console.log('Release channel:', releaseChannel);
|
||||
console.log('Is beta version:', isBetaVersion);
|
||||
console.log('Is alpha version:', isAlphaVersion);
|
||||
console.log('Is not configured:', isNotConfigured);
|
||||
|
||||
if (isNotConfigured) {
|
||||
console.log('Release channel not configured, setting default channel');
|
||||
const defaultChannel = isAlphaVersion ? 'alpha' : isBetaVersion ? 'beta' : 'latest';
|
||||
store.set('release_channel', defaultChannel);
|
||||
releaseChannel = defaultChannel;
|
||||
}
|
||||
|
||||
const effectiveChannel = store.get('release_channel') as string;
|
||||
|
||||
if (effectiveChannel === 'alpha') {
|
||||
const updater = createAlphaUpdaterInstance();
|
||||
log.transports.file.level = 'info';
|
||||
updater.logger = autoUpdaterLogInterface;
|
||||
updater.channel = ALPHA_UPDATER_CONFIG.channel;
|
||||
updater.allowPrerelease = true;
|
||||
updater.disableDifferentialDownload = true;
|
||||
updater.allowDowngrade = true;
|
||||
updater.autoInstallOnAppQuit = true;
|
||||
updater.autoRunAppAfterInstall = true;
|
||||
return updater;
|
||||
}
|
||||
|
||||
log.transports.file.level = 'info';
|
||||
autoUpdater.logger = autoUpdaterLogInterface;
|
||||
autoUpdater.autoInstallOnAppQuit = true;
|
||||
autoUpdater.autoRunAppAfterInstall = true;
|
||||
|
||||
if (effectiveChannel === 'beta') {
|
||||
autoUpdater.channel = 'beta';
|
||||
autoUpdater.allowDowngrade = true;
|
||||
autoUpdater.allowPrerelease = true;
|
||||
autoUpdater.disableDifferentialDownload = true;
|
||||
} else {
|
||||
autoUpdater.channel = 'latest';
|
||||
autoUpdater.allowPrerelease = false;
|
||||
}
|
||||
|
||||
return autoUpdater;
|
||||
}
|
||||
|
||||
/**
|
||||
* Configures the global autoUpdater for a specific GitHub channel (beta or latest).
|
||||
* Used when checking multiple channels or when the winning channel is beta/latest.
|
||||
*/
|
||||
function configureAutoUpdaterForChannel(channel: 'beta' | 'latest'): void {
|
||||
log.transports.file.level = 'info';
|
||||
autoUpdater.logger = autoUpdaterLogInterface;
|
||||
autoUpdater.autoInstallOnAppQuit = true;
|
||||
autoUpdater.autoRunAppAfterInstall = true;
|
||||
if (channel === 'beta') {
|
||||
autoUpdater.channel = 'beta';
|
||||
autoUpdater.allowDowngrade = true;
|
||||
autoUpdater.allowPrerelease = true;
|
||||
autoUpdater.disableDifferentialDownload = true;
|
||||
} else {
|
||||
autoUpdater.channel = 'latest';
|
||||
autoUpdater.allowPrerelease = false;
|
||||
}
|
||||
}
|
||||
|
||||
function createAlphaUpdaterInstance(): AppImageUpdater | MacUpdater | NsisUpdater {
|
||||
if (isMacOS()) {
|
||||
return new MacUpdater(ALPHA_UPDATER_CONFIG);
|
||||
}
|
||||
|
||||
if (isLinux()) {
|
||||
return new AppImageUpdater(ALPHA_UPDATER_CONFIG);
|
||||
}
|
||||
|
||||
return new NsisUpdater(ALPHA_UPDATER_CONFIG);
|
||||
}
|
||||
|
||||
protocol.registerSchemesAsPrivileged([{ privileges: { bypassCSP: true }, scheme: 'feishin' }]);
|
||||
|
||||
process.on('uncaughtException', (error: any) => {
|
||||
@@ -90,6 +272,11 @@ if (isLinux() && !process.argv.some((a) => a.startsWith('--password-store='))) {
|
||||
app.commandLine.appendSwitch('password-store', passwordStore);
|
||||
}
|
||||
|
||||
// Handle fractional scaling issue from Wayland https://github.com/jeffvli/feishin/issues/1271#issuecomment-4063326712
|
||||
if (isLinux()) {
|
||||
app.commandLine.appendSwitch('disable-features', 'WaylandFractionalScaleV1');
|
||||
}
|
||||
|
||||
let mainWindow: BrowserWindow | null = null;
|
||||
let tray: null | Tray = null;
|
||||
let exitFromTray = false;
|
||||
@@ -187,10 +374,20 @@ const createWinThumbarButtons = () => {
|
||||
};
|
||||
|
||||
const createTray = () => {
|
||||
tray =
|
||||
isLinux() || isMacOS()
|
||||
? new Tray(getAssetPath('icons/icon.png'))
|
||||
: new Tray(getAssetPath('icons/icon.ico'));
|
||||
let trayIcon: Electron.NativeImage | string;
|
||||
|
||||
if (isMacOS()) {
|
||||
const iconPath = getAssetPath('icons/IconTemplate.png');
|
||||
const icon = nativeImage.createFromPath(iconPath);
|
||||
icon.setTemplateImage(true);
|
||||
trayIcon = icon;
|
||||
} else if (isLinux()) {
|
||||
trayIcon = getAssetPath('icons/icon.png');
|
||||
} else {
|
||||
trayIcon = getAssetPath('icons/icon.ico');
|
||||
}
|
||||
|
||||
tray = new Tray(trayIcon);
|
||||
|
||||
const contextMenu = Menu.buildFromTemplate([
|
||||
{
|
||||
@@ -222,8 +419,11 @@ const createTray = () => {
|
||||
},
|
||||
{
|
||||
click: () => {
|
||||
mainWindow?.show();
|
||||
createWinThumbarButtons();
|
||||
if (mainWindow === null) createWindow(false);
|
||||
else {
|
||||
mainWindow.show();
|
||||
createWinThumbarButtons();
|
||||
}
|
||||
},
|
||||
label: 'Open main window',
|
||||
},
|
||||
@@ -237,8 +437,17 @@ const createTray = () => {
|
||||
]);
|
||||
|
||||
tray.on('click', () => {
|
||||
mainWindow?.show();
|
||||
createWinThumbarButtons();
|
||||
if (store.get('window_minimize_to_tray')) {
|
||||
if (mainWindow?.isVisible()) {
|
||||
mainWindow?.hide();
|
||||
} else {
|
||||
mainWindow?.show();
|
||||
createWinThumbarButtons();
|
||||
}
|
||||
} else {
|
||||
mainWindow?.show();
|
||||
createWinThumbarButtons();
|
||||
}
|
||||
});
|
||||
|
||||
tray.setToolTip('Feishin');
|
||||
@@ -349,6 +558,54 @@ async function createWindow(first = true): Promise<void> {
|
||||
return mainWindow?.webContents.session.clearCache();
|
||||
});
|
||||
|
||||
ipcMain.handle(
|
||||
'app-check-for-updates',
|
||||
async (): Promise<{ updateAvailable: boolean; version?: string }> => {
|
||||
if (disableAutoUpdates()) {
|
||||
console.log('Auto updates are disabled');
|
||||
return { updateAvailable: false };
|
||||
}
|
||||
|
||||
try {
|
||||
console.log('Checking for updates');
|
||||
const effectiveChannel = store.get('release_channel') as string;
|
||||
let result: null | UpdateCheckResult;
|
||||
let updater: UpdaterInstance;
|
||||
|
||||
if (effectiveChannel === 'alpha') {
|
||||
const best = await checkAllChannelsAndGetBest();
|
||||
result = best.result;
|
||||
updater = best.updater;
|
||||
} else {
|
||||
updater = configureAndGetUpdater();
|
||||
result = await updater.checkForUpdates();
|
||||
}
|
||||
|
||||
const updateAvailable = result?.isUpdateAvailable ?? false;
|
||||
console.log('Update available:', updateAvailable);
|
||||
if (updateAvailable && store.get('disable_auto_updates') !== true) {
|
||||
if (isMacOS()) {
|
||||
getMainWindow()?.webContents.send(
|
||||
'update-available',
|
||||
result?.updateInfo?.version,
|
||||
);
|
||||
} else {
|
||||
console.log('Downloading update');
|
||||
updater.downloadUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
updateAvailable,
|
||||
version: result?.updateInfo?.version,
|
||||
};
|
||||
} catch {
|
||||
console.log('Error checking for updates');
|
||||
return { updateAvailable: false };
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
ipcMain.on('app-restart', () => {
|
||||
// Fix for .AppImage
|
||||
if (process.env.APPIMAGE) {
|
||||
@@ -409,6 +666,7 @@ async function createWindow(first = true): Promise<void> {
|
||||
|
||||
mainWindow.on('closed', () => {
|
||||
ipcMain.removeHandler('window-clear-cache');
|
||||
ipcMain.removeHandler('app-check-for-updates');
|
||||
mainWindow = null;
|
||||
});
|
||||
|
||||
@@ -657,7 +915,7 @@ if (!singleInstance) {
|
||||
app.whenReady()
|
||||
.then(() => {
|
||||
protocol.handle('feishin', async (request) => {
|
||||
const filePath = `file://${request.url.slice('feishin://'.length)}`;
|
||||
const filePath = `file:${request.url.slice('feishin:'.length)}`;
|
||||
const response = await net.fetch(filePath);
|
||||
const contentType = response.headers.get('content-type');
|
||||
|
||||
|
||||
@@ -21,6 +21,14 @@ export default class MenuBuilder {
|
||||
selector: 'orderFrontStandardAboutPanel:',
|
||||
},
|
||||
{ type: 'separator' },
|
||||
{
|
||||
accelerator: 'Command+,',
|
||||
click: () => {
|
||||
this.mainWindow.webContents.send('renderer-open-settings');
|
||||
},
|
||||
label: 'Settings',
|
||||
},
|
||||
{ type: 'separator' },
|
||||
{ label: 'Services', submenu: [] },
|
||||
{ type: 'separator' },
|
||||
{
|
||||
@@ -151,8 +159,8 @@ export default class MenuBuilder {
|
||||
return [subMenuAbout, subMenuEdit, subMenuView, subMenuWindow, subMenuHelp];
|
||||
}
|
||||
|
||||
buildDefaultTemplate() {
|
||||
const templateDefault = [
|
||||
buildDefaultTemplate(): MenuItemConstructorOptions[] {
|
||||
const templateDefault: MenuItemConstructorOptions[] = [
|
||||
{
|
||||
label: '&File',
|
||||
submenu: [
|
||||
@@ -160,6 +168,14 @@ export default class MenuBuilder {
|
||||
accelerator: 'Ctrl+O',
|
||||
label: '&Open',
|
||||
},
|
||||
{
|
||||
accelerator: 'Ctrl+,',
|
||||
click: () => {
|
||||
this.mainWindow.webContents.send('renderer-open-settings');
|
||||
},
|
||||
label: '&Settings...',
|
||||
},
|
||||
{ type: 'separator' },
|
||||
{
|
||||
accelerator: 'Ctrl+W',
|
||||
click: () => {
|
||||
|
||||
@@ -8,6 +8,7 @@ declare global {
|
||||
electron: ElectronAPI;
|
||||
LEGACY_AUTHENTICATION?: boolean;
|
||||
queryLocalFonts?: () => Promise<Font[]>;
|
||||
REMOTE_URL?: string;
|
||||
SERVER_LOCK?: boolean;
|
||||
SERVER_NAME?: string;
|
||||
SERVER_TYPE?: ServerType;
|
||||
|
||||
@@ -12,9 +12,19 @@ const invoke = (channel: string, ...args: any[]) => {
|
||||
return ipcRenderer.invoke(channel, ...args);
|
||||
};
|
||||
|
||||
const on = (channel: string, listener: (event: any, ...args: any[]) => void) => {
|
||||
ipcRenderer.on(channel, listener);
|
||||
};
|
||||
|
||||
const removeListener = (channel: string, listener: (event: any, ...args: any[]) => void) => {
|
||||
ipcRenderer.removeListener(channel, listener);
|
||||
};
|
||||
|
||||
export const ipc = {
|
||||
invoke,
|
||||
on,
|
||||
removeAllListeners,
|
||||
removeListener,
|
||||
send,
|
||||
};
|
||||
|
||||
|
||||
@@ -74,6 +74,7 @@ const env = {
|
||||
SERVER_TYPE !== null
|
||||
? process.env.LEGACY_AUTHENTICATION?.toLocaleLowerCase() === 'true'
|
||||
: false,
|
||||
REMOTE_URL: process.env.REMOTE_URL ?? '',
|
||||
SERVER_LOCK:
|
||||
SERVER_TYPE !== null ? process.env.SERVER_LOCK?.toLocaleLowerCase() === 'true' : false,
|
||||
SERVER_NAME: process.env.SERVER_NAME ?? '',
|
||||
|
||||
@@ -39,6 +39,10 @@ const download = (url: string) => {
|
||||
ipcRenderer.send('download-url', url);
|
||||
};
|
||||
|
||||
const checkForUpdates = (): Promise<{ updateAvailable: boolean; version?: string }> => {
|
||||
return ipcRenderer.invoke('app-check-for-updates');
|
||||
};
|
||||
|
||||
const forceGarbageCollection = (): boolean => {
|
||||
try {
|
||||
if (typeof global.gc === 'function') {
|
||||
@@ -57,7 +61,12 @@ const forceGarbageCollection = (): boolean => {
|
||||
}
|
||||
};
|
||||
|
||||
const rendererOpenSettings = (cb: (event: IpcRendererEvent) => void) => {
|
||||
ipcRenderer.on('renderer-open-settings', cb);
|
||||
};
|
||||
|
||||
export const utils = {
|
||||
checkForUpdates,
|
||||
disableAutoUpdates,
|
||||
download,
|
||||
forceGarbageCollection,
|
||||
@@ -69,6 +78,7 @@ export const utils = {
|
||||
openApplicationDirectory,
|
||||
openItem,
|
||||
playerErrorListener,
|
||||
rendererOpenSettings,
|
||||
};
|
||||
|
||||
export type Utils = typeof utils;
|
||||
|
||||
@@ -200,6 +200,18 @@ export const controller: GeneralController = {
|
||||
server.type,
|
||||
)?.(addContext({ ...args, apiClientProps: { ...args.apiClientProps, server } }));
|
||||
},
|
||||
getAlbumArtistInfo(args) {
|
||||
const server = getServerById(args.apiClientProps.serverId);
|
||||
|
||||
if (!server) {
|
||||
return Promise.resolve(null);
|
||||
}
|
||||
|
||||
const fn = apiController('getAlbumArtistInfo', server.type);
|
||||
return fn
|
||||
? fn(addContext({ ...args, apiClientProps: { ...args.apiClientProps, server } }))
|
||||
: Promise.resolve(null);
|
||||
},
|
||||
getAlbumArtistList(args) {
|
||||
const server = getServerById(args.apiClientProps.serverId);
|
||||
|
||||
@@ -308,6 +320,20 @@ export const controller: GeneralController = {
|
||||
}),
|
||||
);
|
||||
},
|
||||
getAlbumRadio(args) {
|
||||
const server = getServerById(args.apiClientProps.serverId);
|
||||
|
||||
if (!server) {
|
||||
throw new Error(
|
||||
`${i18n.t('error.apiRouteError', { postProcess: 'sentenceCase' })}: getAlbumRadio`,
|
||||
);
|
||||
}
|
||||
|
||||
return apiController(
|
||||
'getAlbumRadio',
|
||||
server.type,
|
||||
)?.(addContext({ ...args, apiClientProps: { ...args.apiClientProps, server } }));
|
||||
},
|
||||
getArtistList(args) {
|
||||
const server = getServerById(args.apiClientProps.serverId);
|
||||
|
||||
@@ -416,6 +442,25 @@ export const controller: GeneralController = {
|
||||
}),
|
||||
);
|
||||
},
|
||||
getImageRequest(args) {
|
||||
const server = getServerById(args.apiClientProps.serverId);
|
||||
|
||||
if (!server) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
apiController(
|
||||
'getImageRequest',
|
||||
server.type,
|
||||
)?.(
|
||||
addContext({
|
||||
...args,
|
||||
apiClientProps: { ...args.apiClientProps, server },
|
||||
}),
|
||||
) || null
|
||||
);
|
||||
},
|
||||
getImageUrl(args) {
|
||||
const server = getServerById(args.apiClientProps.serverId);
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ export const contract = c.router({
|
||||
},
|
||||
getInstantMix: {
|
||||
method: 'GET',
|
||||
path: 'songs/:itemId/InstantMix',
|
||||
path: 'items/:itemId/InstantMix',
|
||||
query: jfType._parameters.similarSongs,
|
||||
responses: {
|
||||
200: jfType._response.songList,
|
||||
|
||||
@@ -4,7 +4,7 @@ import filter from 'lodash/filter';
|
||||
import orderBy from 'lodash/orderBy';
|
||||
import { z } from 'zod';
|
||||
|
||||
import { jfApiClient } from '/@/renderer/api/jellyfin/jellyfin-api';
|
||||
import { createAuthHeader, jfApiClient } from '/@/renderer/api/jellyfin/jellyfin-api';
|
||||
import { useRadioStore } from '/@/renderer/features/radio/store/radio-store';
|
||||
import { getServerUrl } from '/@/renderer/utils/normalize-server-url';
|
||||
import { jfNormalize } from '/@/shared/api/jellyfin/jellyfin-normalize';
|
||||
@@ -15,10 +15,13 @@ import {
|
||||
albumListSortMap,
|
||||
Folder,
|
||||
genreListSortMap,
|
||||
ImageArgs,
|
||||
ImageRequest,
|
||||
InternalControllerEndpoint,
|
||||
LibraryItem,
|
||||
Played,
|
||||
playlistListSortMap,
|
||||
ReplaceApiClientProps,
|
||||
ServerType,
|
||||
Song,
|
||||
SongListSort,
|
||||
@@ -29,6 +32,33 @@ import {
|
||||
} from '/@/shared/types/domain-types';
|
||||
import { ServerFeature } from '/@/shared/types/features-types';
|
||||
|
||||
const getJellyfinImageRequest = ({
|
||||
apiClientProps: { server },
|
||||
baseUrl,
|
||||
query,
|
||||
}: ReplaceApiClientProps<ImageArgs>): ImageRequest | null => {
|
||||
const { id, size } = query;
|
||||
const imageSize = size;
|
||||
|
||||
if (!server) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const url = baseUrl || getServerUrl(server);
|
||||
|
||||
if (!url) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
cacheKey: ['jellyfin', server.id, baseUrl || '', id, imageSize || ''].join(':'),
|
||||
headers: server.credential
|
||||
? { Authorization: createAuthHeader().concat(`, Token="${server.credential}"`) }
|
||||
: { Authorization: createAuthHeader() },
|
||||
url: `${url}/Items/${id}/Images/Primary?quality=96${imageSize ? `&width=${imageSize}` : ''}`,
|
||||
};
|
||||
};
|
||||
|
||||
const formatCommaDelimitedString = (value: string[]) => {
|
||||
return value.join(',');
|
||||
};
|
||||
@@ -38,6 +68,10 @@ const formatCommaDelimitedString = (value: string[]) => {
|
||||
// not the POST body
|
||||
const MAX_ITEMS_PER_PLAYLIST_ADD = 50;
|
||||
|
||||
// Defining a re-usable Collator instance for performance reasons.
|
||||
const numericSortCollator = new Intl.Collator(undefined, { numeric: true });
|
||||
const collator = new Intl.Collator();
|
||||
|
||||
const VERSION_INFO: VersionInfo = [
|
||||
[
|
||||
'10.9.0',
|
||||
@@ -49,6 +83,41 @@ const VERSION_INFO: VersionInfo = [
|
||||
['10.0.0', { [ServerFeature.TAGS]: [1] }],
|
||||
];
|
||||
|
||||
const JF_FIELDS = {
|
||||
ALBUM_ARTIST_DETAIL: ['Genres', 'Overview', 'SortName', 'ProviderIds'],
|
||||
ALBUM_ARTIST_LIST: [
|
||||
'Genres',
|
||||
'DateCreated',
|
||||
'ExternalUrls',
|
||||
'Overview',
|
||||
'SortName',
|
||||
'ProviderIds',
|
||||
],
|
||||
ALBUM_DETAIL: ['Genres', 'DateCreated', 'ChildCount', 'People', 'Tags', 'ProviderIds'],
|
||||
ALBUM_LIST: ['People', 'Tags', 'Studios', 'SortName', 'ProviderIds', 'ChildCount'],
|
||||
FOLDER: ['Genres', 'DateCreated', 'MediaSources', 'ParentId'],
|
||||
GENRE: ['ItemCounts'],
|
||||
PLAYLIST_DETAIL: [
|
||||
'Genres',
|
||||
'DateCreated',
|
||||
'MediaSources',
|
||||
'ChildCount',
|
||||
'ParentId',
|
||||
'SortName',
|
||||
],
|
||||
PLAYLIST_LIST: ['ChildCount', 'Genres', 'DateCreated', 'ParentId', 'Overview'],
|
||||
SONG: [
|
||||
'Genres',
|
||||
'DateCreated',
|
||||
'MediaSources',
|
||||
'ParentId',
|
||||
'People',
|
||||
'Tags',
|
||||
'SortName',
|
||||
'ProviderIds',
|
||||
],
|
||||
} as const;
|
||||
|
||||
export const JellyfinController: InternalControllerEndpoint = {
|
||||
addToPlaylist: async (args) => {
|
||||
const { apiClientProps, body, query } = args;
|
||||
@@ -219,42 +288,63 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
throw new Error('No userId found');
|
||||
}
|
||||
|
||||
const [res, similarArtistsRes] = await Promise.all([
|
||||
jfApiClient(apiClientProps).getAlbumArtistDetail({
|
||||
params: {
|
||||
id: query.id,
|
||||
userId: apiClientProps.server?.userId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, Overview',
|
||||
},
|
||||
}),
|
||||
jfApiClient(apiClientProps).getSimilarArtistList({
|
||||
params: {
|
||||
id: query.id,
|
||||
},
|
||||
query: {
|
||||
Limit: 10,
|
||||
},
|
||||
}),
|
||||
]);
|
||||
const res = await jfApiClient(apiClientProps).getAlbumArtistDetail({
|
||||
params: {
|
||||
id: query.id,
|
||||
userId: apiClientProps.server?.userId,
|
||||
},
|
||||
query: {
|
||||
Fields: ['Genres', 'Overview', 'SortName'],
|
||||
},
|
||||
});
|
||||
|
||||
if (res.status !== 200 || similarArtistsRes.status !== 200) {
|
||||
if (res.status !== 200) {
|
||||
throw new Error('Failed to get album artist detail');
|
||||
}
|
||||
|
||||
return jfNormalize.albumArtist(
|
||||
{ ...res.body, similarArtists: similarArtistsRes.body },
|
||||
apiClientProps.server,
|
||||
return jfNormalize.albumArtist(res.body, apiClientProps.server);
|
||||
},
|
||||
getAlbumArtistInfo: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
const similarArtistsRes = await jfApiClient(apiClientProps).getSimilarArtistList({
|
||||
params: {
|
||||
id: query.id,
|
||||
},
|
||||
query: {
|
||||
Limit: query.limit ?? 10,
|
||||
},
|
||||
});
|
||||
|
||||
if (similarArtistsRes.status !== 200) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const items = similarArtistsRes.body?.Items?.filter(
|
||||
(entry) => entry.Name !== 'Various Artists',
|
||||
);
|
||||
const similarArtists =
|
||||
items?.map((entry) => ({
|
||||
id: entry.Id,
|
||||
imageId: entry.ImageTags?.Primary ? entry.Id : null,
|
||||
imageUrl: null,
|
||||
name: entry.Name,
|
||||
userFavorite: entry.UserData?.IsFavorite || false,
|
||||
userRating: null,
|
||||
})) ?? null;
|
||||
|
||||
return {
|
||||
similarArtists,
|
||||
};
|
||||
},
|
||||
getAlbumArtistList: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
const res = await jfApiClient(apiClientProps).getAlbumArtistList({
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, ExternalUrls, Overview',
|
||||
Fields: JF_FIELDS.ALBUM_ARTIST_LIST,
|
||||
ImageTypeLimit: 1,
|
||||
IsFavorite: query.favorite,
|
||||
Limit: query.limit,
|
||||
ParentId: getLibraryId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
@@ -296,7 +386,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
userId: apiClientProps.server.userId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, ChildCount, People, Tags',
|
||||
Fields: JF_FIELDS.ALBUM_DETAIL,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -305,7 +395,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
userId: apiClientProps.server.userId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
IncludeItemTypes: 'Audio',
|
||||
ParentId: query.id,
|
||||
SortBy: 'ParentIndexNumber,IndexNumber,SortName',
|
||||
@@ -363,7 +453,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
},
|
||||
query: {
|
||||
...artistQuery,
|
||||
Fields: 'People, Tags, Studios',
|
||||
Fields: JF_FIELDS.ALBUM_LIST,
|
||||
GenreIds: query.genreIds ? query.genreIds.join(',') : undefined,
|
||||
IncludeItemTypes: 'MusicAlbum',
|
||||
IsFavorite: query.favorite,
|
||||
@@ -394,12 +484,40 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
apiClientProps,
|
||||
query: { ...query, limit: 1, startIndex: 0 },
|
||||
}).then((result) => result!.totalRecordCount!),
|
||||
getAlbumRadio: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
// For Jellyfin, use instant mix for album radio
|
||||
const res = await jfApiClient(apiClientProps).getInstantMix({
|
||||
params: {
|
||||
itemId: query.albumId,
|
||||
},
|
||||
query: {
|
||||
Fields: JF_FIELDS.SONG,
|
||||
Limit: query.count,
|
||||
UserId: apiClientProps.server?.userId || undefined,
|
||||
},
|
||||
});
|
||||
|
||||
if (res.status !== 200) {
|
||||
throw new Error('Failed to get album radio songs');
|
||||
}
|
||||
|
||||
return res.body.Items.map((song) =>
|
||||
jfNormalize.song(
|
||||
song,
|
||||
apiClientProps.server,
|
||||
args.context?.pathReplace,
|
||||
args.context?.pathReplaceWith,
|
||||
),
|
||||
);
|
||||
},
|
||||
getArtistList: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
const res = await jfApiClient(apiClientProps).getArtistList({
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, ExternalUrls, Overview',
|
||||
Fields: JF_FIELDS.ALBUM_ARTIST_LIST,
|
||||
ImageTypeLimit: 1,
|
||||
Limit: query.limit,
|
||||
ParentId: getLibraryId(query.musicFolderId),
|
||||
@@ -438,7 +556,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
itemId: query.artistId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, ParentId',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
Limit: query.count,
|
||||
UserId: apiClientProps.server?.userId || undefined,
|
||||
},
|
||||
@@ -563,7 +681,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
userId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, UserData, ParentId',
|
||||
Fields: JF_FIELDS.FOLDER,
|
||||
ParentId: query.id,
|
||||
SortBy: query.sortBy
|
||||
? (songListSortMap.jellyfin[query.sortBy] as string) || 'SortName'
|
||||
@@ -592,7 +710,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
userId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, UserData, ParentId',
|
||||
Fields: JF_FIELDS.FOLDER,
|
||||
ParentId: parentId,
|
||||
},
|
||||
});
|
||||
@@ -679,7 +797,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
const res = await jfApiClient(apiClientProps).getGenreList({
|
||||
query: {
|
||||
EnableTotalRecordCount: true,
|
||||
Fields: 'ItemCounts',
|
||||
Fields: JF_FIELDS.GENRE,
|
||||
Limit: query.limit === -1 ? undefined : query.limit,
|
||||
ParentId: getLibraryId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
@@ -701,23 +819,8 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
totalRecordCount: res.body?.TotalRecordCount || 0,
|
||||
};
|
||||
},
|
||||
getImageUrl: ({ apiClientProps: { server }, baseUrl, query }) => {
|
||||
const { id, size } = query;
|
||||
const imageSize = size;
|
||||
const url = baseUrl || getServerUrl(server);
|
||||
|
||||
if (!url) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// For Jellyfin, we construct the URL pattern
|
||||
// The server will return a 404 or placeholder if no image exists
|
||||
const imageUrl = `${url}/Items/${id}/Images/Primary?quality=96${imageSize ? `&width=${imageSize}` : ''}`;
|
||||
|
||||
// For songs, we might want to fall back to album art, but we don't have albumId here
|
||||
// The caller can handle this if needed
|
||||
return imageUrl;
|
||||
},
|
||||
getImageRequest: getJellyfinImageRequest,
|
||||
getImageUrl: (args) => getJellyfinImageRequest(args)?.url || null,
|
||||
getInternetRadioStations: async (args) => {
|
||||
const { apiClientProps } = args;
|
||||
|
||||
@@ -794,7 +897,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
userId: apiClientProps.server?.userId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, ChildCount, ParentId',
|
||||
Fields: JF_FIELDS.PLAYLIST_DETAIL,
|
||||
Ids: query.id,
|
||||
},
|
||||
});
|
||||
@@ -817,7 +920,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
userId: apiClientProps.server?.userId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'ChildCount, Genres, DateCreated, ParentId, Overview',
|
||||
Fields: JF_FIELDS.PLAYLIST_LIST,
|
||||
IncludeItemTypes: 'Playlist',
|
||||
Limit: query.limit,
|
||||
Recursive: true,
|
||||
@@ -855,7 +958,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
id: query.id,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, UserData, ParentId, People, Tags',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
IncludeItemTypes: 'Audio',
|
||||
UserId: apiClientProps.server?.userId,
|
||||
},
|
||||
@@ -902,7 +1005,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
userId: apiClientProps.server?.userId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
GenreIds: query.genre ? query.genre : undefined,
|
||||
IncludeItemTypes: 'Audio',
|
||||
IsPlayed:
|
||||
@@ -974,7 +1077,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
itemId: query.songId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, ParentId',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
Limit: query.count,
|
||||
UserId: apiClientProps.server?.userId || undefined,
|
||||
},
|
||||
@@ -1007,7 +1110,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
itemId: query.songId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, ParentId',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
Limit: query.count,
|
||||
UserId: apiClientProps.server?.userId || undefined,
|
||||
},
|
||||
@@ -1092,11 +1195,11 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
query: {
|
||||
AlbumIds: albumIdsFilter,
|
||||
ArtistIds: artistIdsFilter,
|
||||
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
GenreIds: query.genreIds?.join(','),
|
||||
IncludeItemTypes: 'Audio',
|
||||
IsFavorite: query.favorite,
|
||||
Limit: query.limit,
|
||||
Limit: query.limit === -1 ? undefined : query.limit,
|
||||
ParentId: getLibraryId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
SearchTerm: query.searchTerm,
|
||||
@@ -1127,11 +1230,11 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
query: {
|
||||
AlbumIds: albumIdsFilter,
|
||||
ArtistIds: artistIdsFilter,
|
||||
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
GenreIds: query.genreIds?.join(','),
|
||||
IncludeItemTypes: 'Audio',
|
||||
IsFavorite: query.favorite,
|
||||
Limit: query.limit,
|
||||
Limit: query.limit === -1 ? undefined : query.limit,
|
||||
ParentId: getLibraryId(query.musicFolderId),
|
||||
Recursive: true,
|
||||
SearchTerm: query.searchTerm,
|
||||
@@ -1250,11 +1353,12 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
if (res.body.Tags?.length) {
|
||||
tags.push({
|
||||
name: 'Tags',
|
||||
options: res.body.Tags.sort((a, b) =>
|
||||
a
|
||||
.toLocaleLowerCase()
|
||||
.localeCompare(b.toLocaleLowerCase(), undefined, { numeric: true }),
|
||||
).map((tag) => ({ id: tag, name: tag })),
|
||||
options: res.body.Tags.sort((a, b) => {
|
||||
return numericSortCollator.compare(
|
||||
a.toLocaleLowerCase(),
|
||||
b.toLocaleLowerCase(),
|
||||
);
|
||||
}).map((tag) => ({ id: tag, name: tag })),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1262,7 +1366,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
tags.push({
|
||||
name: 'Studios',
|
||||
options: studioRes.body.Items.sort((a, b) =>
|
||||
a.Name.toLocaleLowerCase().localeCompare(b.Name.toLocaleLowerCase()),
|
||||
collator.compare(a.Name.toLocaleLowerCase(), b.Name.toLocaleLowerCase()),
|
||||
).map((option) => ({ id: option.Name, name: option.Name })),
|
||||
});
|
||||
}
|
||||
@@ -1276,17 +1380,22 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
throw new Error('No userId found');
|
||||
}
|
||||
|
||||
const type = query.type === 'personal' ? 'personal' : 'community';
|
||||
|
||||
const res = await jfApiClient(apiClientProps).getTopSongsList({
|
||||
params: {
|
||||
userId: apiClientProps.server?.userId,
|
||||
},
|
||||
query: {
|
||||
ArtistIds: query.artistId,
|
||||
Fields: 'Genres, DateCreated, MediaSources, ParentId',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
IncludeItemTypes: 'Audio',
|
||||
Limit: query.limit,
|
||||
Recursive: true,
|
||||
SortBy: 'CommunityRating,SortName',
|
||||
SortBy:
|
||||
type === 'personal'
|
||||
? JFSongListSort.PLAY_COUNT
|
||||
: JFSongListSort.COMMUNITY_RATING,
|
||||
SortOrder: 'Descending',
|
||||
UserId: apiClientProps.server?.userId,
|
||||
},
|
||||
@@ -1296,15 +1405,31 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
throw new Error('Failed to get top song list');
|
||||
}
|
||||
|
||||
return {
|
||||
items: res.body.Items.map((item) =>
|
||||
jfNormalize.song(
|
||||
item,
|
||||
apiClientProps.server,
|
||||
args.context?.pathReplace,
|
||||
args.context?.pathReplaceWith,
|
||||
),
|
||||
const items = res.body.Items.map((item) =>
|
||||
jfNormalize.song(
|
||||
item,
|
||||
apiClientProps.server,
|
||||
args.context?.pathReplace,
|
||||
args.context?.pathReplaceWith,
|
||||
),
|
||||
);
|
||||
|
||||
if (type === 'personal') {
|
||||
const sorted = orderBy(
|
||||
items,
|
||||
['playCount', 'albumId', 'trackNumber'],
|
||||
['desc', 'asc', 'asc'],
|
||||
);
|
||||
|
||||
return {
|
||||
items: sorted,
|
||||
startIndex: 0,
|
||||
totalRecordCount: res.body.TotalRecordCount,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
items,
|
||||
startIndex: 0,
|
||||
totalRecordCount: res.body.TotalRecordCount,
|
||||
};
|
||||
@@ -1378,7 +1503,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
id: query.id,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, UserData, ParentId, People, Tags',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
IncludeItemTypes: 'Audio',
|
||||
UserId: apiClientProps.server?.userId,
|
||||
},
|
||||
@@ -1404,7 +1529,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
userId: apiClientProps.server?.userId,
|
||||
},
|
||||
query: {
|
||||
Fields: 'Genres, DateCreated, MediaSources, ChildCount, ParentId',
|
||||
Fields: JF_FIELDS.PLAYLIST_DETAIL,
|
||||
Ids: query.id,
|
||||
},
|
||||
});
|
||||
@@ -1562,7 +1687,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
},
|
||||
query: {
|
||||
EnableTotalRecordCount: true,
|
||||
Fields: 'People, Tags',
|
||||
Fields: JF_FIELDS.ALBUM_LIST,
|
||||
ImageTypeLimit: 1,
|
||||
IncludeItemTypes: 'MusicAlbum',
|
||||
Limit: query.albumLimit,
|
||||
@@ -1585,7 +1710,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
const res = await jfApiClient(apiClientProps).getAlbumArtistList({
|
||||
query: {
|
||||
EnableTotalRecordCount: true,
|
||||
Fields: 'Genres, DateCreated, ExternalUrls, Overview',
|
||||
Fields: JF_FIELDS.ALBUM_ARTIST_LIST,
|
||||
ImageTypeLimit: 1,
|
||||
IncludeArtists: true,
|
||||
Limit: query.albumArtistLimit,
|
||||
@@ -1610,7 +1735,7 @@ export const JellyfinController: InternalControllerEndpoint = {
|
||||
},
|
||||
query: {
|
||||
EnableTotalRecordCount: true,
|
||||
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
|
||||
Fields: JF_FIELDS.SONG,
|
||||
IncludeItemTypes: 'Audio',
|
||||
Limit: query.songLimit,
|
||||
Recursive: true,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { set } from 'idb-keyval';
|
||||
import orderBy from 'lodash/orderBy';
|
||||
|
||||
import { ndApiClient } from '/@/renderer/api/navidrome/navidrome-api';
|
||||
import { ssApiClient } from '/@/renderer/api/subsonic/subsonic-api';
|
||||
@@ -17,7 +18,9 @@ import {
|
||||
PlaylistSongListArgs,
|
||||
PlaylistSongListResponse,
|
||||
ServerListItemWithCredential,
|
||||
SongListSort,
|
||||
songListSortMap,
|
||||
SortOrder,
|
||||
sortOrderMap,
|
||||
tagListSortMap,
|
||||
userListSortMap,
|
||||
@@ -27,6 +30,7 @@ import { ServerFeature } from '/@/shared/types/features-types';
|
||||
const VERSION_INFO: VersionInfo = [
|
||||
// Why 2? Subsonic controller will return 1 for its own implementation
|
||||
// Use 2 to denote that Navidrome's own API has a different endpoint
|
||||
['0.60.4', { [ServerFeature.TRACK_YES_NO_RATING_FILTER]: [1] }],
|
||||
['0.57.0', { [ServerFeature.SERVER_PLAY_QUEUE]: [2] }],
|
||||
['0.56.0', { [ServerFeature.TRACK_ALBUM_ARTIST_SEARCH]: [1] }],
|
||||
['0.55.0', { [ServerFeature.BFR]: [1], [ServerFeature.TAGS]: [1] }],
|
||||
@@ -71,6 +75,10 @@ const EXCLUDED_ALBUM_TAGS = new Set<string>([
|
||||
|
||||
const EXCLUDED_SONG_TAGS = new Set<string>(['disctotal', 'tracktotal']);
|
||||
|
||||
// Defining a re-usable Collator instance for performance reasons.
|
||||
const numericSortCollator = new Intl.Collator(undefined, { numeric: true });
|
||||
const collator = new Intl.Collator();
|
||||
|
||||
// Tags that use IDs as values as opposed to the tag value
|
||||
const ID_TAGS = new Set<string>(['albumversion', 'mood']);
|
||||
|
||||
@@ -182,19 +190,11 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
getAlbumArtistDetail: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
const [res, artistInfoRes] = await Promise.all([
|
||||
ndApiClient(apiClientProps).getAlbumArtistDetail({
|
||||
params: {
|
||||
id: query.id,
|
||||
},
|
||||
}),
|
||||
ssApiClient(apiClientProps).getArtistInfo({
|
||||
query: {
|
||||
count: 10,
|
||||
id: query.id,
|
||||
},
|
||||
}),
|
||||
]);
|
||||
const res = await ndApiClient(apiClientProps).getAlbumArtistDetail({
|
||||
params: {
|
||||
id: query.id,
|
||||
},
|
||||
});
|
||||
|
||||
if (res.status !== 200) {
|
||||
throw new Error('Failed to get album artist detail');
|
||||
@@ -204,22 +204,42 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
throw new Error('Server is required');
|
||||
}
|
||||
|
||||
// Prefer images from getArtistInfo first (which should be proxied)
|
||||
// Prioritize large > medium > small
|
||||
return ndNormalize.albumArtist(
|
||||
{
|
||||
...res.body.data,
|
||||
...(artistInfoRes.status === 200 && {
|
||||
largeImageUrl:
|
||||
artistInfoRes.body.artistInfo.largeImageUrl ||
|
||||
artistInfoRes.body.artistInfo.mediumImageUrl ||
|
||||
artistInfoRes.body.artistInfo.smallImageUrl ||
|
||||
res.body.data.largeImageUrl,
|
||||
similarArtists: artistInfoRes.body.artistInfo.similarArtist,
|
||||
}),
|
||||
return ndNormalize.albumArtist(res.body.data, apiClientProps.server);
|
||||
},
|
||||
getAlbumArtistInfo: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
const artistInfoRes = await ssApiClient(apiClientProps).getArtistInfo({
|
||||
query: {
|
||||
id: query.id,
|
||||
...(query.limit != null && { count: query.limit }),
|
||||
},
|
||||
apiClientProps.server,
|
||||
);
|
||||
});
|
||||
|
||||
if (artistInfoRes.status !== 200) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const artistInfo = artistInfoRes.body.artistInfo;
|
||||
const imageUrl =
|
||||
artistInfo?.largeImageUrl ||
|
||||
artistInfo?.mediumImageUrl ||
|
||||
artistInfo?.smallImageUrl ||
|
||||
null;
|
||||
|
||||
return {
|
||||
biography: artistInfo?.biography || null,
|
||||
imageUrl,
|
||||
similarArtists:
|
||||
artistInfo?.similarArtist?.map((artist) => ({
|
||||
id: artist.id,
|
||||
imageId: null,
|
||||
imageUrl: artist?.artistImageUrl?.replace(/\?size=\d+/, '') ?? null,
|
||||
name: artist.name,
|
||||
userFavorite: Boolean(artist.starred) || false,
|
||||
userRating: artist.userRating ?? null,
|
||||
})) ?? null,
|
||||
};
|
||||
},
|
||||
getAlbumArtistList: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
@@ -369,6 +389,32 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
apiClientProps,
|
||||
query: { ...query, limit: 1, startIndex: 0 },
|
||||
}).then((result) => result!.totalRecordCount!),
|
||||
getAlbumRadio: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
// Use getSimilarSongs API for album radio
|
||||
const res = await ssApiClient({
|
||||
...apiClientProps,
|
||||
silent: true,
|
||||
}).getSimilarSongs({
|
||||
query: {
|
||||
count: query.count,
|
||||
id: query.albumId,
|
||||
},
|
||||
});
|
||||
|
||||
if (res.status !== 200) {
|
||||
throw new Error('Failed to get album radio songs');
|
||||
}
|
||||
|
||||
if (!res.body.similarSongs?.song) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return res.body.similarSongs.song.map((song) =>
|
||||
ssNormalize.song(song, apiClientProps.server),
|
||||
);
|
||||
},
|
||||
getArtistList: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
@@ -499,6 +545,7 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
totalRecordCount: Number(res.body.headers.get('x-total-count') || 0),
|
||||
};
|
||||
},
|
||||
getImageRequest: SubsonicController.getImageRequest,
|
||||
getImageUrl: SubsonicController.getImageUrl,
|
||||
getInternetRadioStations: SubsonicController.getInternetRadioStations,
|
||||
getLyrics: SubsonicController.getLyrics,
|
||||
@@ -589,7 +636,7 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
throw new Error('Failed to get play queue');
|
||||
}
|
||||
|
||||
const { changedBy, current, items, position, updatedAt } = res.body.data;
|
||||
const { changedBy, current, items = [], position, updatedAt } = res.body.data; // if there is no queue saved, items is undefined
|
||||
|
||||
const entries = items.map((song) =>
|
||||
ndNormalize.song(
|
||||
@@ -636,6 +683,7 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
...subsonicArgs.features,
|
||||
...navidromeFeatures,
|
||||
publicPlaylist: [1],
|
||||
[ServerFeature.ALBUM_YES_NO_RATING_FILTER]: [1],
|
||||
[ServerFeature.MUSIC_FOLDER_MULTISELECT]: [1],
|
||||
};
|
||||
|
||||
@@ -696,42 +744,78 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
args.context?.pathReplaceWith,
|
||||
);
|
||||
},
|
||||
|
||||
getSongList: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
const res = await ndApiClient(apiClientProps).getSongList({
|
||||
query: {
|
||||
_end: query.startIndex + (query.limit || -1),
|
||||
_order: sortOrderMap.navidrome[query.sortOrder],
|
||||
_sort: songListSortMap.navidrome[query.sortBy],
|
||||
_start: query.startIndex,
|
||||
album_id: query.albumIds,
|
||||
genre_id: query.genreIds,
|
||||
[getArtistSongKey(apiClientProps.server)]: query.artistIds ?? query.albumArtistIds,
|
||||
library_id: getLibraryId(query.musicFolderId),
|
||||
starred: query.favorite,
|
||||
title: query.searchTerm,
|
||||
year: query.maxYear || query.minYear,
|
||||
...query._custom,
|
||||
...excludeMissing(apiClientProps.server),
|
||||
},
|
||||
});
|
||||
const ALBUM_IDS_BATCH_SIZE = 500;
|
||||
const albumIds = query.albumIds;
|
||||
const shouldBatch = albumIds && albumIds.length > ALBUM_IDS_BATCH_SIZE;
|
||||
|
||||
if (res.status !== 200) {
|
||||
throw new Error('Failed to get song list');
|
||||
const fetchAlbums = async (albumIdBatch: string[] | undefined) => {
|
||||
const res = await ndApiClient(apiClientProps).getSongList({
|
||||
query: {
|
||||
_end: query.startIndex + (query.limit || -1),
|
||||
_order: sortOrderMap.navidrome[query.sortOrder],
|
||||
_sort: songListSortMap.navidrome[query.sortBy],
|
||||
_start: query.startIndex,
|
||||
album_id: albumIdBatch ?? query.albumIds,
|
||||
genre_id: query.genreIds,
|
||||
[getArtistSongKey(apiClientProps.server)]:
|
||||
query.artistIds ?? query.albumArtistIds,
|
||||
...(hasFeature(
|
||||
apiClientProps.server,
|
||||
ServerFeature.TRACK_YES_NO_RATING_FILTER,
|
||||
) && query.hasRating !== undefined
|
||||
? { has_rating: query.hasRating }
|
||||
: {}),
|
||||
library_id: getLibraryId(query.musicFolderId),
|
||||
starred: query.favorite,
|
||||
title: query.searchTerm,
|
||||
year: query.maxYear || query.minYear,
|
||||
...query._custom,
|
||||
...excludeMissing(apiClientProps.server),
|
||||
},
|
||||
});
|
||||
|
||||
if (res.status !== 200) {
|
||||
throw new Error('Failed to get song list');
|
||||
}
|
||||
|
||||
return {
|
||||
items: res.body.data.map((song) =>
|
||||
ndNormalize.song(
|
||||
song,
|
||||
apiClientProps.server,
|
||||
args.context?.pathReplace,
|
||||
args.context?.pathReplaceWith,
|
||||
),
|
||||
),
|
||||
totalRecordCount: Number(res.body.headers.get('x-total-count') || 0),
|
||||
};
|
||||
};
|
||||
|
||||
if (shouldBatch && albumIds) {
|
||||
const batches: string[][] = [];
|
||||
for (let i = 0; i < albumIds.length; i += ALBUM_IDS_BATCH_SIZE) {
|
||||
batches.push(albumIds.slice(i, i + ALBUM_IDS_BATCH_SIZE));
|
||||
}
|
||||
|
||||
const results = await Promise.all(batches.map((batch) => fetchAlbums(batch)));
|
||||
|
||||
return {
|
||||
items: results.flatMap((r) => r.items),
|
||||
startIndex: query?.startIndex ?? 0,
|
||||
totalRecordCount: results.reduce((sum, r) => sum + r.totalRecordCount, 0),
|
||||
};
|
||||
}
|
||||
|
||||
const albums = await fetchAlbums(undefined);
|
||||
|
||||
return {
|
||||
items: res.body.data.map((song) =>
|
||||
ndNormalize.song(
|
||||
song,
|
||||
apiClientProps.server,
|
||||
args.context?.pathReplace,
|
||||
args.context?.pathReplaceWith,
|
||||
),
|
||||
),
|
||||
startIndex: query?.startIndex || 0,
|
||||
totalRecordCount: Number(res.body.headers.get('x-total-count') || 0),
|
||||
items: albums.items,
|
||||
startIndex: query?.startIndex ?? 0,
|
||||
totalRecordCount: albums.totalRecordCount,
|
||||
};
|
||||
},
|
||||
getSongListCount: async ({ apiClientProps, query }) =>
|
||||
@@ -780,16 +864,17 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
.map((data) => ({
|
||||
name: data[0],
|
||||
options: data[1]
|
||||
.sort((a, b) =>
|
||||
a.name
|
||||
.toLocaleLowerCase()
|
||||
.localeCompare(b.name.toLocaleLowerCase(), undefined, {
|
||||
numeric: true,
|
||||
}),
|
||||
)
|
||||
.sort((a, b) => {
|
||||
return numericSortCollator.compare(
|
||||
a.name.toLocaleLowerCase(),
|
||||
b.name.toLocaleLowerCase(),
|
||||
);
|
||||
})
|
||||
.map((option) => ({ id: option.id, name: option.name })),
|
||||
}))
|
||||
.sort((a, b) => a.name.toLocaleLowerCase().localeCompare(b.name.toLocaleLowerCase()));
|
||||
.sort((a, b) =>
|
||||
collator.compare(a.name.toLocaleLowerCase(), b.name.toLocaleLowerCase()),
|
||||
);
|
||||
|
||||
const excludedAlbumTags = Array.from(EXCLUDED_ALBUM_TAGS.values());
|
||||
const excludedSongTags = Array.from(EXCLUDED_SONG_TAGS.values());
|
||||
@@ -802,7 +887,59 @@ export const NavidromeController: InternalControllerEndpoint = {
|
||||
tags,
|
||||
};
|
||||
},
|
||||
getTopSongs: SubsonicController.getTopSongs,
|
||||
getTopSongs: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
const type = query.type === 'personal' ? 'personal' : 'community';
|
||||
|
||||
if (type === 'community') {
|
||||
const res = await ssApiClient(apiClientProps).getTopSongsList({
|
||||
query: {
|
||||
artist: query.artist,
|
||||
count: query.limit,
|
||||
},
|
||||
});
|
||||
|
||||
if (res.status !== 200) {
|
||||
throw new Error('Failed to get top songs');
|
||||
}
|
||||
|
||||
return {
|
||||
items: (res.body.topSongs?.song || []).map((song) =>
|
||||
ssNormalize.song(
|
||||
song,
|
||||
apiClientProps.server,
|
||||
args.context?.pathReplace,
|
||||
args.context?.pathReplaceWith,
|
||||
),
|
||||
),
|
||||
startIndex: 0,
|
||||
totalRecordCount: res.body.topSongs?.song?.length || 0,
|
||||
};
|
||||
}
|
||||
|
||||
const res = await NavidromeController.getSongList({
|
||||
apiClientProps,
|
||||
query: {
|
||||
artistIds: [query.artistId],
|
||||
sortBy: SongListSort.PLAY_COUNT,
|
||||
sortOrder: SortOrder.DESC,
|
||||
startIndex: 0,
|
||||
},
|
||||
});
|
||||
|
||||
const songsWithPlayCount = orderBy(
|
||||
res.items.filter((song) => song.playCount > 0),
|
||||
['playCount', 'albumId', 'trackNumber'],
|
||||
['desc', 'asc', 'asc'],
|
||||
);
|
||||
|
||||
return {
|
||||
items: songsWithPlayCount,
|
||||
startIndex: 0,
|
||||
totalRecordCount: res.totalRecordCount,
|
||||
};
|
||||
},
|
||||
getUserInfo: SubsonicController.getUserInfo,
|
||||
getUserList: async (args) => {
|
||||
const { apiClientProps, query } = args;
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import type {
|
||||
AlbumArtistDetailQuery,
|
||||
AlbumArtistInfoQuery,
|
||||
AlbumArtistListQuery,
|
||||
AlbumDetailQuery,
|
||||
AlbumListQuery,
|
||||
AlbumRadioQuery,
|
||||
ArtistListQuery,
|
||||
ArtistRadioQuery,
|
||||
FolderQuery,
|
||||
@@ -73,6 +75,13 @@ export const queryKeys: Record<
|
||||
|
||||
return [serverId, 'albumArtists', 'detail'] as const;
|
||||
},
|
||||
favoriteSongs: (serverId: string, artistId?: string) => {
|
||||
if (artistId) {
|
||||
return [serverId, 'albumArtists', 'favoriteSongs', artistId] as const;
|
||||
}
|
||||
|
||||
return [serverId, 'albumArtists', 'favoriteSongs'] as const;
|
||||
},
|
||||
infiniteList: (serverId: string, query?: AlbumArtistListQuery) => {
|
||||
const { filter, pagination } = splitPaginatedQuery(query);
|
||||
if (query && pagination) {
|
||||
@@ -85,6 +94,13 @@ export const queryKeys: Record<
|
||||
|
||||
return [serverId, 'albumArtists', 'infiniteList'] as const;
|
||||
},
|
||||
info: (serverId: string, query?: AlbumArtistInfoQuery) => {
|
||||
if (query) {
|
||||
return [serverId, 'albumArtists', 'info', query] as const;
|
||||
}
|
||||
|
||||
return [serverId, 'albumArtists', 'info'] as const;
|
||||
},
|
||||
list: (serverId: string, query?: AlbumArtistListQuery) => {
|
||||
const { filter, pagination } = splitPaginatedQuery(query);
|
||||
if (query && pagination) {
|
||||
@@ -341,6 +357,10 @@ export const queryKeys: Record<
|
||||
root: (serverId: string) => [serverId] as const,
|
||||
},
|
||||
songs: {
|
||||
albumRadio: (serverId: string, query?: AlbumRadioQuery) => {
|
||||
if (query) return [serverId, 'songs', 'albumRadio', query] as const;
|
||||
return [serverId, 'songs', 'albumRadio'] as const;
|
||||
},
|
||||
artistRadio: (serverId: string, query?: ArtistRadioQuery) => {
|
||||
if (query) return [serverId, 'songs', 'artistRadio', query] as const;
|
||||
return [serverId, 'songs', 'artistRadio'] as const;
|
||||
@@ -403,15 +423,7 @@ export const queryKeys: Record<
|
||||
if (query) return [serverId, 'songs', 'randomSongList', query] as const;
|
||||
return [serverId, 'songs', 'randomSongList'] as const;
|
||||
},
|
||||
remoteLyrics: (serverId: string, query?: LyricsQuery) => {
|
||||
if (query) return [serverId, 'song', 'lyrics', 'remote', query] as const;
|
||||
return [serverId, 'song', 'lyrics', 'remote'] as const;
|
||||
},
|
||||
root: (serverId: string) => [serverId, 'songs'] as const,
|
||||
serverLyrics: (serverId: string, query?: LyricsQuery) => {
|
||||
if (query) return [serverId, 'song', 'lyrics', 'server', query] as const;
|
||||
return [serverId, 'song', 'lyrics', 'server'] as const;
|
||||
},
|
||||
similar: (serverId: string, query?: SimilarSongsQuery) => {
|
||||
if (query) return [serverId, 'song', 'similar', query] as const;
|
||||
return [serverId, 'song', 'similar'] as const;
|
||||
|
||||