Compare commits
485 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ba4664e797 | |||
| b14eb1c423 | |||
| 4297d0d5b3 | |||
| 64615a1701 | |||
| 2a0e414d8f | |||
| f2c455f23b | |||
| 0a0027f245 | |||
| 4f687c155f | |||
| f1f415daa8 | |||
| 1ee767352a | |||
| 66a123c10d | |||
| de0ddfe226 | |||
| d23f7619ec | |||
| 44de6f2207 | |||
| f6f25154a1 | |||
| 880516069d | |||
| 95970183db | |||
| 3a2c952d2a | |||
| 46b94a83f1 | |||
| 40a1d1438d | |||
| 905088cae7 | |||
| 705b375dab | |||
| 0b537b07ee | |||
| dfa6198bdd | |||
| b9312d86fd | |||
| 30a1bda93d | |||
| 0e24eeeb1c | |||
| 58d4dea09a | |||
| c4da44a443 | |||
| be3f959354 | |||
| deb69ef8ea | |||
| 5ac0aaeec0 | |||
| 515cadb916 | |||
| 4b4d64c7fc | |||
| f7e1198482 | |||
| 7243ed7f15 | |||
| 7e9a78898f | |||
| 6aab8d4121 | |||
| 70594a696b | |||
| 08b4c620f2 | |||
| 7a20cf3853 | |||
| dd186c570f | |||
| d5e9d491b6 | |||
| 28dc822e4f | |||
| def1b1e710 | |||
| 2ff9e4b0a2 | |||
| 49bfc907cd | |||
| 34314bdf46 | |||
| 9d53c53c54 | |||
| 8acd585630 | |||
| 1f5907716f | |||
| 99ae0c99c6 | |||
| a56253cd3a | |||
| a2cdce66bc | |||
| 7454832663 | |||
| 1ed185606d | |||
| d9da588c7c | |||
| e206136156 | |||
| 57b11e0dae | |||
| 2fc130d709 | |||
| 1aa6b88cfa | |||
| 329d028edd | |||
| 4955f30081 | |||
| bf7ca937ff | |||
| 2193fa4251 | |||
| 9124604b89 | |||
| 239ef4a4ec | |||
| f3b72504f1 | |||
| f098f848a3 | |||
| 22d37135ae | |||
| 61c6036d41 | |||
| 95ae474cc6 | |||
| 504bbeed91 | |||
| 0e5b3450dd | |||
| 650ae0b320 | |||
| 66cfab3b57 | |||
| 0455d5bfb8 | |||
| 112449576e | |||
| 3122f4121e | |||
| 28b8894b49 | |||
| 41d5694f1f | |||
| 7befd70e21 | |||
| 0de1e1aa3e | |||
| 6528859ea9 | |||
| 704745eb7c | |||
| 2759cfee97 | |||
| 755f0aab9d | |||
| 0e163543fc | |||
| fad2534d44 | |||
| edfc64d790 | |||
| 8f40894926 | |||
| 2befcb4e74 | |||
| 2d78c32a68 | |||
| 3d0500980a | |||
| 3551ee5077 | |||
| 4008c8dfdf | |||
| 64efbc5210 | |||
| 42e9394246 | |||
| afbe8fac52 | |||
| 2c1be99bd5 | |||
| ada94e5f5d | |||
| c8675ab600 | |||
| 37367a6741 | |||
| e7b65c8e86 | |||
| 3d1095dbd8 | |||
| da4284bac0 | |||
| f3c0b68a0f | |||
| 5a3f2fe96f | |||
| aec5e84758 | |||
| e85acee3e6 | |||
| 406cf470bc | |||
| 167ee03a1f | |||
| 61c8e996d3 | |||
| ed80f06e72 | |||
| adc9e30266 | |||
| fcd4c27fb8 | |||
| c4ef6f3799 | |||
| 073b482fed | |||
| 74939c6417 | |||
| 27a62a2a02 | |||
| ffe59b2c78 | |||
| 4226da94ec | |||
| 6e634972c9 | |||
| 984b85e0e9 | |||
| 9bb38e1df3 | |||
| 4ecd8271a2 | |||
| ce7a319d2f | |||
| 1616021451 | |||
| e2a1d813a9 | |||
| e49e488b4c | |||
| 5d4547080d | |||
| cc8910cfd6 | |||
| 9fb241dca2 | |||
| e3a0879301 | |||
| 953494e9d0 | |||
| f190626c8c | |||
| 324936e0c8 | |||
| 868ec15b16 | |||
| 775c4e68fa | |||
| 34e0c4bd4a | |||
| 323130a877 | |||
| 3b2aab74ac | |||
| bc7ef0624b | |||
| 304ce8b881 | |||
| 01011a49a2 | |||
| d24ca04878 | |||
| 640d38e5a9 | |||
| ac0c074d4b | |||
| 6be5818493 | |||
| 03edd5a639 | |||
| f5eb3f1488 | |||
| 8eab9edb15 | |||
| fcc69980e4 | |||
| 053b78a3fd | |||
| 42ded966e4 | |||
| ea9119431c | |||
| add0345f10 | |||
| e5a8324a79 | |||
| cc4e933c07 | |||
| 382d279dad | |||
| b99899f128 | |||
| f5839bf39c | |||
| 914ed5b8f3 | |||
| ca0a1569f8 | |||
| 9f10fe398a | |||
| 8869278898 | |||
| 16c9e6cc1b | |||
| 2a6e9b6ad3 | |||
| 167b42df2b | |||
| e6a2bc3acf | |||
| ca3c7015c6 | |||
| c7c15d917a | |||
| 6adb29bc38 | |||
| 2c3cd7af24 | |||
| 3c442a2d40 | |||
| d67c185c93 | |||
| ff96a5f121 | |||
| 6fc7b6b271 | |||
| 918f453066 | |||
| 4a986069f8 | |||
| 11d26af893 | |||
| ad13fea033 | |||
| 8a75ec2558 | |||
| 895cbb4d16 | |||
| 3f300c40cc | |||
| c8e8f58cce | |||
| 56cd50e0ed | |||
| 1b2a6dfc1f | |||
| 356f5487b0 | |||
| 37501f2983 | |||
| d61587b16f | |||
| 06b7b53dc9 | |||
| 6c2cd1c274 | |||
| ef129e4638 | |||
| a01b4e664d | |||
| 0b45ab7f36 | |||
| 031d365262 | |||
| 4fd56281d5 | |||
| 08ce8a4028 | |||
| e06877af76 | |||
| 84395ce5b4 | |||
| 94886a2d5a | |||
| 25bb7f7069 | |||
| 573fe5ee35 | |||
| a868d4d539 | |||
| 564ee721c4 | |||
| a8d990db23 | |||
| e21515f7fb | |||
| 3e5a8ac78d | |||
| 6c73d06dcf | |||
| a8954bfa2a | |||
| 19a1617a8d | |||
| 1abae986f8 | |||
| 43fa574dab | |||
| 99530c670e | |||
| 3a0dfe59ce | |||
| d60ed0a793 | |||
| a32fed3bcf | |||
| 132ac92984 | |||
| 141a20f042 | |||
| 1592204515 | |||
| b9f5459725 | |||
| d4e9b9b7a6 | |||
| ec9e4b1339 | |||
| f09109b887 | |||
| 1494c8e044 | |||
| f3a6027e6d | |||
| 3c42355c1e | |||
| feda1bb06f | |||
| 72f1d2f9f9 | |||
| ad11a9303c | |||
| db06e7f601 | |||
| fbf82c1ef0 | |||
| 92cea5dfda | |||
| 7442f9d3ca | |||
| 68dacea228 | |||
| 51425b5e86 | |||
| c60610cb42 | |||
| d3881ee3be | |||
| de403ea6ac | |||
| a30b1ec90b | |||
| 7982c0e1bd | |||
| baf4e7bc0b | |||
| 74c44558fe | |||
| 4033619421 | |||
| 5d206bbb1f | |||
| 3db801f2de | |||
| 0d3cf912d3 | |||
| d81f30a8b5 | |||
| a5c3b454f4 | |||
| 68e6e3cf65 | |||
| 86e6b88555 | |||
| 5cdc45836f | |||
| d438c802a4 | |||
| a838bdebb7 | |||
| 8ff2f4dfb4 | |||
| ede47fbf8f | |||
| 9eb64079f7 | |||
| 3b955bb319 | |||
| 816adfa6c7 | |||
| f91dcc6af6 | |||
| 6dc58a3ff8 | |||
| 09fa10a4e9 | |||
| 6f45e1a814 | |||
| 62ba721f26 | |||
| 67231753e4 | |||
| c16eccaecb | |||
| 0bdf1dcb75 | |||
| 598e9ca5c2 | |||
| 615f9c3515 | |||
| b7cbdb4d6c | |||
| 3c562c1398 | |||
| 3eafa73217 | |||
| 74864d9621 | |||
| cb5562d32e | |||
| e40a175e12 | |||
| f996b111b9 | |||
| 0cb5c49924 | |||
| c636029003 | |||
| db88a6bc22 | |||
| 8ccd97b574 | |||
| 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 |
@@ -6,7 +6,7 @@ body:
|
||||
- type: checkboxes
|
||||
id: check-duplicate
|
||||
attributes:
|
||||
label: I have already checked through the existing bug reports and found no duplicates
|
||||
label: I have already checked through the existing (both open AND closed) bug reports and found no duplicates
|
||||
options:
|
||||
- label: 'Yes'
|
||||
required: true
|
||||
|
||||
@@ -40,12 +40,10 @@ 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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -121,16 +119,14 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest, macos-latest, ubuntu-latest]
|
||||
os: [windows-latest, macos-26, ubuntu-latest]
|
||||
|
||||
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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -146,7 +142,7 @@ jobs:
|
||||
|
||||
- name: Build and Publish to R2 (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
|
||||
@@ -156,8 +152,8 @@ jobs:
|
||||
on_retry_command: pnpm cache delete
|
||||
|
||||
- name: Build and Publish to R2 (macOS)
|
||||
if: matrix.os == 'macos-latest'
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
if: matrix.os == 'macos-26'
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -168,7 +164,7 @@ jobs:
|
||||
|
||||
- name: Build and Publish to R2 (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
|
||||
@@ -179,7 +175,7 @@ jobs:
|
||||
|
||||
- name: Build and Publish to R2 (Linux ARM64)
|
||||
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
|
||||
|
||||
@@ -15,12 +15,10 @@ 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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -115,16 +113,14 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest, macos-latest, ubuntu-latest]
|
||||
os: [windows-latest, macos-26, ubuntu-latest]
|
||||
|
||||
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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -146,7 +142,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
|
||||
@@ -156,10 +152,10 @@ jobs:
|
||||
on_retry_command: pnpm cache delete
|
||||
|
||||
- name: Build and Publish releases (macOS)
|
||||
if: matrix.os == 'macos-latest'
|
||||
if: matrix.os == 'macos-26'
|
||||
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 +168,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 +181,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 +195,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 +342,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
|
||||
|
||||
@@ -4,6 +4,11 @@ permissions: write-all
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: 'Docker image tag (e.g. 1.12.0 or latest)'
|
||||
required: true
|
||||
type: string
|
||||
push:
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
@@ -20,7 +25,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:
|
||||
@@ -33,11 +38,10 @@ jobs:
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
tags: |
|
||||
type=ref,event=branch
|
||||
type=ref,event=pr
|
||||
type=semver,pattern={{version}}
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
type=raw,value=${{ inputs.tag }},enable=${{ github.event_name == 'workflow_dispatch' }}
|
||||
type=semver,pattern={{version}},enable=${{ github.event_name == 'push' }}
|
||||
type=semver,pattern={{major}}.{{minor}},enable=${{ github.event_name == 'push' }}
|
||||
type=semver,pattern={{major}},enable=${{ github.event_name == 'push' }}
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
- name: Setup Docker buildx
|
||||
@@ -51,5 +55,4 @@ jobs:
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm/v7
|
||||
linux/arm64/v8
|
||||
|
||||
@@ -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,10 @@ 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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -25,7 +23,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 +35,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
|
||||
|
||||
@@ -8,24 +8,23 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-latest]
|
||||
os: [macos-26]
|
||||
|
||||
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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: Build and Publish releases
|
||||
env:
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
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,27 +25,26 @@ 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:
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||
os: [macos-26, ubuntu-latest, windows-latest]
|
||||
|
||||
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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- 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 +54,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
|
||||
@@ -61,8 +63,8 @@ jobs:
|
||||
pnpm run package:linux:pr
|
||||
|
||||
- name: Build for MacOS
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
uses: nick-invision/retry@v2.8.2
|
||||
if: ${{ matrix.os == 'macos-26' }}
|
||||
uses: nick-invision/retry@v3.0.2
|
||||
with:
|
||||
timeout_minutes: 30
|
||||
max_attempts: 3
|
||||
@@ -82,27 +84,27 @@ jobs:
|
||||
zip -r dist/linux-binaries.zip dist/*.{AppImage,deb,rpm}
|
||||
|
||||
- name: Zip MacOS Binaries
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
if: ${{ matrix.os == 'macos-26' }}
|
||||
run: |
|
||||
zip -r dist/macos-binaries.zip dist/*.dmg
|
||||
|
||||
- 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
|
||||
if: ${{ matrix.os == 'macos-26' }}
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: macos-binaries
|
||||
path: dist/macos-binaries.zip
|
||||
|
||||
@@ -12,12 +12,10 @@ 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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -25,7 +23,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 }}
|
||||
|
||||
|
||||
@@ -8,16 +8,14 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest, macos-latest, ubuntu-latest]
|
||||
os: [windows-latest, macos-26, ubuntu-latest]
|
||||
|
||||
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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
@@ -26,7 +24,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
|
||||
@@ -36,10 +34,10 @@ jobs:
|
||||
on_retry_command: pnpm cache delete
|
||||
|
||||
- name: Build and Publish releases (macOS)
|
||||
if: matrix.os == 'macos-latest'
|
||||
if: matrix.os == 'macos-26'
|
||||
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 +50,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 +63,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
|
||||
|
||||
@@ -12,7 +12,8 @@ jobs:
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/lock-threads@v5
|
||||
- uses: dessant/lock-threads@v6
|
||||
|
||||
with:
|
||||
process-only: 'issues, prs'
|
||||
issue-inactive-days: 120
|
||||
@@ -29,19 +30,19 @@ jobs:
|
||||
days-before-pr-close: 30
|
||||
stale-issue-message: >
|
||||
This issue has been automatically marked as stale because it has not had recent activity. The resources of the Feishin team are limited, and so we are asking for your help.
|
||||
|
||||
|
||||
If this is a **bug** and you can still reproduce this error on the <code>development</code> branch, please reply with all of the information you have about it in order to keep the issue open.
|
||||
|
||||
|
||||
This issue will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.
|
||||
|
||||
|
||||
stale-pr-message: >
|
||||
This PR has been automatically marked as stale because it has not had recent activity. The resources of the Feishin team are limited, and so we are asking for your help.
|
||||
|
||||
|
||||
This PR will automatically be closed in the near future if no further activity occurs. Thank you for all your contributions.
|
||||
|
||||
|
||||
stale-issue-label: 'stale'
|
||||
exempt-issue-labels: 'keep,security'
|
||||
exempt-issue-labels: 'keep,security,enhancement'
|
||||
stale-pr-label: 'stale'
|
||||
exempt-pr-labels: 'keep,security'
|
||||
|
||||
@@ -8,12 +8,10 @@ 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
|
||||
with:
|
||||
version: 9
|
||||
uses: pnpm/action-setup@v4
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
# --- Builder stage
|
||||
FROM node:23-alpine as builder
|
||||
FROM node:23-alpine AS builder
|
||||
WORKDIR /app
|
||||
|
||||
# Copy package.json first to cache node_modules
|
||||
COPY package.json pnpm-lock.yaml .
|
||||
|
||||
RUN npm install -g pnpm
|
||||
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .
|
||||
|
||||
RUN pnpm install
|
||||
|
||||
@@ -14,13 +12,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
|
||||
|
||||
@@ -59,7 +59,11 @@ For media keys to work, you will be prompted to allow Feishin to be a Trusted Ac
|
||||
|
||||
#### Linux Notes
|
||||
|
||||
We provide a small install script to download the latest `.AppImage`, make it executable, and also download the icons required by Desktop Environments. Finally, it generates a `.desktop` file to add Feishin to your Application Launcher.
|
||||
Feishin is available in [Flathub](https://flathub.org/en/apps/org.jeffvli.feishin).
|
||||
|
||||
Alternatively, you can install it as an Appimage.
|
||||
We provide a small install script to download the latest `.AppImage`, make it executable, and also download the icons required by Desktop Environments.
|
||||
Finally, it generates a `.desktop` file to add Feishin to your Application Launcher.
|
||||
|
||||
Simply run the installer like this:
|
||||
|
||||
@@ -114,6 +118,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 +139,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
|
||||
|
||||
@@ -160,6 +169,10 @@ Feishin supports any music server that implements a [Navidrome](https://www.navi
|
||||
- [Qm-Music](https://github.com/chenqimiao/qm-music)
|
||||
- More (?)
|
||||
|
||||
- [Plex](https://www.plex.tv/media-server-downloads)
|
||||
- [Feishin fork by lux032](https://github.com/lux032/feishin) - Plex is not natively supported. Use the fork by lux032 to use Plex with Feishin.
|
||||
|
||||
|
||||
### I have the issue "The SUID sandbox helper binary was found, but is not configured correctly" on Linux
|
||||
|
||||
This happens when you have user (unprivileged) namespaces disabled (`sysctl kernel.unprivileged_userns_clone` returns 0). You can fix this by either enabling unprivileged namespaces, or by making the `chrome-sandbox` Setuid.
|
||||
|
||||
|
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 |
|
Before Width: | Height: | Size: 645 B 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 |
|
Before Width: | Height: | Size: 301 B After Width: | Height: | Size: 277 B |
|
Before Width: | Height: | Size: 535 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,141 @@
|
||||
# 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.listenBrainz` | `true` | `FS_GENERAL_LISTEN_BRAINZ` | `true` / `false` — ListenBrainz links. |
|
||||
| `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.qobuz` | `true` | `FS_GENERAL_QOBUZ` | `true` / `false` — Qobuz links. |
|
||||
| `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.sidebarPlaylistFolders` | `true` | `FS_GENERAL_SIDEBAR_PLAYLIST_FOLDERS` | `true` / `false` — Group playlists into folders by name separator. |
|
||||
| `general.sidebarPlaylistFolderSeparator` | `/` | `FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_SEPARATOR` | Character or string that separates folder levels in a playlist name. Empty = use default. |
|
||||
| `general.sidebarPlaylistFolderTreeIndent` | `16` | `FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_TREE_INDENT` | Pixels each tree level is indented (0–64). |
|
||||
| `general.sidebarPlaylistFolderTreeLineColor` | *(empty)* | `FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_TREE_LINE_COLOR` | CSS color for tree connecting lines. Empty = theme default. |
|
||||
| `general.sidebarPlaylistFolderView` | `tree` | `FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_VIEW` | `single` / `tree` / `navigation` — How folders are displayed in the sidebar. |
|
||||
| `general.sidebarPlaylistList` | `true` | `FS_GENERAL_SIDEBAR_PLAYLIST_LIST` | `true` / `false` — Show playlist list in sidebar. |
|
||||
| `general.sidebarPlaylistMode` | `expanded` | `FS_GENERAL_SIDEBAR_PLAYLIST_MODE` | `compact` / `expanded` — Sidebar playlist row layout. |
|
||||
| `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.sideQueueLayout` | `horizontal` | `FS_GENERAL_SIDE_QUEUE_LAYOUT` | `horizontal` / `vertical` — Attached side queue layout orientation. |
|
||||
| `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. |
|
||||
| `playback.transcode.format` | *(unset)* | `FS_PLAYBACK_TRANSCODE_FORMAT` | Transcode format string (codec/container), e.g. server-specific value. Empty = use default. |
|
||||
| `playback.transcode.bitrate` | *(unset)* | `FS_PLAYBACK_TRANSCODE_BITRATE` | Transcode bitrate (number, kbps or as defined by server). |
|
||||
| `playback.filters` | `[]` | `FS_PLAYBACK_FILTERS` | JSON array of player filters: each object needs `id`, `field`, `operator`, `value`; optional `isEnabled`. Invalid JSON or shape is ignored. |
|
||||
|
||||
---
|
||||
|
||||
## 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.albumStrategy` | `similar` | `FS_AUTO_DJ_ALBUM_STRATEGY` | `similar` / `library_random`. |
|
||||
| `autoDJ.enabled` | `false` | `FS_AUTO_DJ_ENABLED` | `true` / `false`. |
|
||||
| `autoDJ.itemCount` | `5` | `FS_AUTO_DJ_ITEM_COUNT` | Number of items to add. |
|
||||
| `autoDJ.mode` | `songs` | `FS_AUTO_DJ_MODE` | `songs` / `albums`. |
|
||||
| `autoDJ.songStrategy` | `similar` | `FS_AUTO_DJ_SONG_STRATEGY` | `similar` / `library_random`. |
|
||||
| `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`). |
|
||||
@@ -1,7 +1,7 @@
|
||||
appId: org.jeffvli.feishin
|
||||
productName: Feishin
|
||||
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
|
||||
electronVersion: 39.4.0
|
||||
electronVersion: 41.7.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,17 +32,23 @@ nsis:
|
||||
|
||||
mac:
|
||||
target:
|
||||
target: default
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
icon: assets/icons/icon.icns
|
||||
- target: dmg
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
- target: zip
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
icon: media/feishin.icon
|
||||
type: distribution
|
||||
hardenedRuntime: true
|
||||
entitlements: assets/entitlements.mac.plist
|
||||
entitlementsInherit: assets/entitlements.mac.plist
|
||||
hardenedRuntime: false
|
||||
identity: '-'
|
||||
gatekeeperAssess: false
|
||||
notarize: false
|
||||
extendInfo:
|
||||
NSAudioCaptureUsageDescription: 'System audio access is required for mpv visualizer capture in Feishin'
|
||||
NSLocalNetworkUsageDescription: 'Local network is necessary for accessing servers hosted on the same system as Feishin'
|
||||
|
||||
dmg:
|
||||
contents: [{ x: 130, y: 220 }, { x: 410, y: 220, type: link, path: /Applications }]
|
||||
@@ -50,6 +62,9 @@ linux:
|
||||
icon: assets/icons/icon.png
|
||||
artifactName: ${productName}-${os}-${arch}.${ext}
|
||||
|
||||
toolsets:
|
||||
appimage: '1.0.3'
|
||||
|
||||
npmRebuild: false
|
||||
|
||||
publish:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
appId: org.jeffvli.feishin
|
||||
productName: Feishin
|
||||
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
|
||||
electronVersion: 39.4.0
|
||||
electronVersion: 41.7.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,17 +32,23 @@ nsis:
|
||||
|
||||
mac:
|
||||
target:
|
||||
target: default
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
icon: assets/icons/icon.icns
|
||||
- target: dmg
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
- target: zip
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
icon: media/feishin.icon
|
||||
type: distribution
|
||||
hardenedRuntime: true
|
||||
entitlements: assets/entitlements.mac.plist
|
||||
entitlementsInherit: assets/entitlements.mac.plist
|
||||
hardenedRuntime: false
|
||||
identity: '-'
|
||||
gatekeeperAssess: false
|
||||
notarize: false
|
||||
extendInfo:
|
||||
NSAudioCaptureUsageDescription: 'System audio access is required for mpv visualizer capture in Feishin'
|
||||
NSLocalNetworkUsageDescription: 'Local network is necessary for accessing servers hosted on the same system as Feishin'
|
||||
|
||||
dmg:
|
||||
contents: [{ x: 130, y: 220 }, { x: 410, y: 220, type: link, path: /Applications }]
|
||||
@@ -50,6 +62,9 @@ linux:
|
||||
icon: assets/icons/icon.png
|
||||
artifactName: ${productName}-${os}-${arch}.${ext}
|
||||
|
||||
toolsets:
|
||||
appimage: '1.0.3'
|
||||
|
||||
npmRebuild: false
|
||||
publish:
|
||||
provider: github
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
appId: org.jeffvli.feishin
|
||||
productName: Feishin
|
||||
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
|
||||
electronVersion: 39.4.0
|
||||
electronVersion: 41.7.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,17 +32,23 @@ nsis:
|
||||
|
||||
mac:
|
||||
target:
|
||||
target: default
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
icon: assets/icons/icon.icns
|
||||
- target: dmg
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
- target: zip
|
||||
arch:
|
||||
- arm64
|
||||
- x64
|
||||
icon: media/feishin.icon
|
||||
type: distribution
|
||||
hardenedRuntime: true
|
||||
entitlements: assets/entitlements.mac.plist
|
||||
entitlementsInherit: assets/entitlements.mac.plist
|
||||
hardenedRuntime: false
|
||||
identity: '-'
|
||||
gatekeeperAssess: false
|
||||
notarize: false
|
||||
extendInfo:
|
||||
NSAudioCaptureUsageDescription: 'System audio access is required for mpv visualizer capture in Feishin'
|
||||
NSLocalNetworkUsageDescription: 'Local network is necessary for accessing servers hosted on the same system as Feishin'
|
||||
|
||||
dmg:
|
||||
contents: [{ x: 130, y: 220 }, { x: 410, y: 220, type: link, path: /Applications }]
|
||||
@@ -50,7 +62,11 @@ linux:
|
||||
icon: assets/icons/icon.png
|
||||
artifactName: ${productName}-${os}-${arch}.${ext}
|
||||
|
||||
toolsets:
|
||||
appimage: '1.0.3'
|
||||
|
||||
npmRebuild: false
|
||||
afterAllArtifactBuild: scripts/after-all-artifact-build.mjs
|
||||
publish:
|
||||
provider: github
|
||||
owner: jeffvli
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import react from '@vitejs/plugin-react';
|
||||
import { externalizeDepsPlugin, UserConfig } from 'electron-vite';
|
||||
import { resolve } from 'path';
|
||||
import conditionalImportPlugin from 'vite-plugin-conditional-import';
|
||||
import dynamicImportPlugin from 'vite-plugin-dynamic-import';
|
||||
import { ViteEjsPlugin } from 'vite-plugin-ejs';
|
||||
|
||||
import { createReactPlugin } from './vite.react-plugin';
|
||||
|
||||
const currentOSEnv = process.platform;
|
||||
const electronRendererTarget = 'chrome87';
|
||||
|
||||
@@ -64,7 +65,7 @@ const config: UserConfig = {
|
||||
localsConvention: 'camelCase',
|
||||
},
|
||||
},
|
||||
plugins: [react(), ViteEjsPlugin({ web: false })],
|
||||
plugins: [createReactPlugin(), ViteEjsPlugin({ web: false })],
|
||||
resolve: {
|
||||
alias: {
|
||||
'/@/i18n': resolve('src/i18n'),
|
||||
|
||||
@@ -25,7 +25,7 @@ export default tseslint.config(
|
||||
'react-refresh': eslintPluginReactRefresh,
|
||||
},
|
||||
rules: {
|
||||
...eslintPluginReactHooks.configs.recommended.rules,
|
||||
...eslintPluginReactHooks.configs['recommended-latest'].rules,
|
||||
...eslintPluginReactRefresh.configs.vite.rules,
|
||||
'@typescript-eslint/explicit-function-return-type': 'off',
|
||||
'@typescript-eslint/no-duplicate-enum-values': 'off',
|
||||
|
||||
|
Before Width: | Height: | Size: 118 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 77 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512"><g style="display:inline" transform="translate(-53.452 -43.352)scale(1.11813)"><circle cx="256" cy="240.312" r="21.5" style="opacity:1;fill:#000;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)"/><path d="M220.85 277.951 183.5 315.6l36 36.1 20-19.7s5.856-6.2 16.5-6.2 16.5 6.2 16.5 6.2l20 19.7 36-36.1-37.35-37.649A51.5 51.5 0 0 1 256 291.812a51.5 51.5 0 0 1-35.15-13.86" style="opacity:1;fill:#000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter249)"/><path d="M256 145.4a25.7 25.7 0 0 0-18.229 7.551L66.97 323.47A25.42 25.42 0 0 0 59.5 341.5c0 14.083 11.417 25.5 25.5 25.5a25.42 25.42 0 0 0 18.031-7.469l103.895-103.597a51.5 51.5 0 0 1-2.426-15.621 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.426 15.62L408.97 359.532A25.42 25.42 0 0 0 427 367c14.083 0 25.5-11.417 25.5-25.5a25.42 25.42 0 0 0-7.469-18.031L274.23 152.95a25.7 25.7 0 0 0-18.229-7.55" style="display:inline;opacity:1;fill:#000;fill-opacity:1;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;paint-order:markers fill stroke;filter:url(#filter249)"/></g></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,202 @@
|
||||
{
|
||||
"fill-specializations" : [
|
||||
{
|
||||
"value" : {
|
||||
"linear-gradient" : [
|
||||
"display-p3:0.87416,0.87416,0.87416,1.00000",
|
||||
"display-p3:0.99575,0.99575,0.99575,1.00000"
|
||||
],
|
||||
"orientation" : {
|
||||
"start" : {
|
||||
"x" : 0.5,
|
||||
"y" : 1
|
||||
},
|
||||
"stop" : {
|
||||
"x" : 0.5,
|
||||
"y" : 0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"appearance" : "dark",
|
||||
"value" : "system-dark"
|
||||
}
|
||||
],
|
||||
"groups" : [
|
||||
{
|
||||
"blend-mode-specializations" : [
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : "normal"
|
||||
}
|
||||
],
|
||||
"blur-material-specializations" : [
|
||||
{
|
||||
"value" : 0.7
|
||||
},
|
||||
{
|
||||
"appearance" : "dark",
|
||||
"value" : 0.7
|
||||
},
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : null
|
||||
}
|
||||
],
|
||||
"hidden" : false,
|
||||
"layers" : [
|
||||
{
|
||||
"blend-mode-specializations" : [
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : "normal"
|
||||
}
|
||||
],
|
||||
"fill-specializations" : [
|
||||
{
|
||||
"value" : {
|
||||
"solid" : "extended-gray:0.00000,1.00000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"appearance" : "dark",
|
||||
"value" : {
|
||||
"linear-gradient" : [
|
||||
"display-p3:0.78674,0.78674,0.78674,1.00000",
|
||||
"display-p3:0.87416,0.87416,0.87416,1.00000"
|
||||
],
|
||||
"orientation" : {
|
||||
"start" : {
|
||||
"x" : 0.5,
|
||||
"y" : 1
|
||||
},
|
||||
"stop" : {
|
||||
"x" : 0.5,
|
||||
"y" : 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : {
|
||||
"solid" : "gray:1.00000,1.00000"
|
||||
}
|
||||
}
|
||||
],
|
||||
"glass-specializations" : [
|
||||
{
|
||||
"value" : true
|
||||
},
|
||||
{
|
||||
"appearance" : "dark",
|
||||
"value" : true
|
||||
},
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : true
|
||||
}
|
||||
],
|
||||
"hidden" : false,
|
||||
"image-name" : "feishin.svg",
|
||||
"name" : "feishin",
|
||||
"opacity-specializations" : [
|
||||
{
|
||||
"value" : 1
|
||||
},
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : 1
|
||||
}
|
||||
],
|
||||
"position" : {
|
||||
"scale" : 0.79,
|
||||
"translation-in-points" : [
|
||||
18,
|
||||
-2
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"lighting-specializations" : [
|
||||
{
|
||||
"value" : "individual"
|
||||
},
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : "combined"
|
||||
}
|
||||
],
|
||||
"position" : {
|
||||
"scale" : 2.2,
|
||||
"translation-in-points" : [
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"shadow-specializations" : [
|
||||
{
|
||||
"value" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"appearance" : "dark",
|
||||
"value" : {
|
||||
"kind" : "layer-color",
|
||||
"opacity" : 0.5
|
||||
}
|
||||
},
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : {
|
||||
"kind" : "neutral",
|
||||
"opacity" : 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"specular-specializations" : [
|
||||
{
|
||||
"value" : false
|
||||
},
|
||||
{
|
||||
"appearance" : "dark",
|
||||
"value" : false
|
||||
},
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : true
|
||||
}
|
||||
],
|
||||
"translucency-specializations" : [
|
||||
{
|
||||
"value" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.29
|
||||
}
|
||||
},
|
||||
{
|
||||
"appearance" : "dark",
|
||||
"value" : {
|
||||
"enabled" : false,
|
||||
"value" : 0.29
|
||||
}
|
||||
},
|
||||
{
|
||||
"appearance" : "tinted",
|
||||
"value" : {
|
||||
"enabled" : true,
|
||||
"value" : 0.5
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"supported-platforms" : {
|
||||
"squares" : [
|
||||
"macOS"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
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.4.2",
|
||||
"version": "1.13.0",
|
||||
"description": "A modern self-hosted music player.",
|
||||
"keywords": [
|
||||
"subsonic",
|
||||
@@ -31,32 +31,36 @@
|
||||
"i18next": "i18next -c src/i18n/i18next-parser.config.js",
|
||||
"postinstall": "electron-builder install-app-deps",
|
||||
"lint": "pnpm run typecheck && pnpm run lint-code && pnpm run lint-styles",
|
||||
"lint:fix": "pnpm run lint-code:fix && pnpm run lint-styles:fix",
|
||||
"lint-code": "eslint --max-warnings=0 --cache .",
|
||||
"lint-code:fix": "eslint --cache --fix .",
|
||||
"lint-styles": "stylelint --max-warnings=0 'src/**/*.{css,scss}'",
|
||||
"lint-styles:fix": "stylelint 'src/**/*.{css,scss}' --fix",
|
||||
"lint:fix": "pnpm run lint-code:fix && pnpm run lint-styles:fix",
|
||||
"package": "pnpm run build && electron-builder",
|
||||
"package:dev": "pnpm run build && electron-builder --dir",
|
||||
"package:linux": "pnpm run build && electron-builder --linux",
|
||||
"package:linux-arm64:pr": "pnpm run build && electron-builder --linux --arm64 --publish never",
|
||||
"package:linux:pr": "pnpm run build && electron-builder --linux --publish never",
|
||||
"package:linux-arm64:pr": "pnpm run build && electron-builder --linux --arm64 --publish never",
|
||||
"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:pr": "pnpm run build && electron-builder --win --publish never",
|
||||
"package:win-arm64:pr": "pnpm run build && electron-builder --win --arm64 --publish never",
|
||||
"publish:linux": "pnpm run build && electron-builder --publish always --linux",
|
||||
"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: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: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",
|
||||
"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",
|
||||
"start": "electron-vite preview",
|
||||
"typecheck": "pnpm run typecheck:node && pnpm run typecheck:web",
|
||||
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
|
||||
@@ -64,126 +68,123 @@
|
||||
"version": "pnpm version --no-git-tag-version",
|
||||
"postversion": "node ./scripts/update-app-stream.mjs"
|
||||
},
|
||||
"resolutions": {
|
||||
"xml2js": "0.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@atlaskit/pragmatic-drag-and-drop": "1.7.7",
|
||||
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.2",
|
||||
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
|
||||
"@electron-toolkit/preload": "^3.0.1",
|
||||
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.5",
|
||||
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.2.0",
|
||||
"@electron-toolkit/preload": "^3.0.2",
|
||||
"@electron-toolkit/utils": "^4.0.0",
|
||||
"@mantine/colors-generator": "^8.3.8",
|
||||
"@mantine/core": "^8.3.8",
|
||||
"@mantine/dates": "^8.3.8",
|
||||
"@mantine/form": "^8.3.8",
|
||||
"@mantine/hooks": "^8.3.8",
|
||||
"@mantine/modals": "^8.3.8",
|
||||
"@mantine/notifications": "^8.3.8",
|
||||
"@radix-ui/react-context-menu": "^2.2.16",
|
||||
"@tanstack/react-query": "^5.90.9",
|
||||
"@tanstack/react-query-devtools": "^5.90.2",
|
||||
"@tanstack/react-query-persist-client": "^5.90.11",
|
||||
"@mantine/colors-generator": "^9.3.0",
|
||||
"@mantine/core": "^9.3.0",
|
||||
"@mantine/dates": "^9.3.0",
|
||||
"@mantine/form": "^9.3.0",
|
||||
"@mantine/hooks": "^9.3.0",
|
||||
"@mantine/modals": "^9.3.0",
|
||||
"@mantine/notifications": "^9.3.0",
|
||||
"@radix-ui/react-context-menu": "^2.3.0",
|
||||
"@tanstack/react-query": "5.96.2",
|
||||
"@tanstack/react-query-devtools": "5.96.2",
|
||||
"@tanstack/react-query-persist-client": "5.96.2",
|
||||
"@ts-rest/core": "^3.52.1",
|
||||
"@wavesurfer/react": "^1.0.11",
|
||||
"@xhayper/discord-rpc": "^1.3.0",
|
||||
"audiomotion-analyzer": "^4.5.1",
|
||||
"axios": "^1.13.2",
|
||||
"butterchurn": "^3.0.0-beta.5",
|
||||
"butterchurn-presets": "^3.0.0-beta.4",
|
||||
"cheerio": "^1.1.2",
|
||||
"@wavesurfer/react": "^1.0.12",
|
||||
"@xhayper/discord-rpc": "^1.3.4",
|
||||
"audiomotion-analyzer": "^4.5.4",
|
||||
"axios": "^1.17.0",
|
||||
"butterchurn": "3.0.0-beta.5",
|
||||
"butterchurn-presets": "3.0.0-beta.4",
|
||||
"cheerio": "^1.2.0",
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "^1.1.1",
|
||||
"dayjs": "^1.11.19",
|
||||
"dompurify": "^3.3.0",
|
||||
"dayjs": "^1.11.21",
|
||||
"dompurify": "^3.4.8",
|
||||
"electron-debug": "^3.2.0",
|
||||
"electron-localshortcut": "^3.2.1",
|
||||
"electron-log": "^5.4.3",
|
||||
"electron-log": "^5.4.4",
|
||||
"electron-store": "^8.2.0",
|
||||
"electron-updater": "^6.6.2",
|
||||
"fast-average-color": "^9.5.0",
|
||||
"fast-xml-parser": "^5.3.2",
|
||||
"electron-updater": "^6.8.9",
|
||||
"fast-average-color": "9.5.0",
|
||||
"fast-xml-parser": "^5.8.0",
|
||||
"format-duration": "^3.0.2",
|
||||
"fuse.js": "^7.1.0",
|
||||
"i18next": "^25.6.2",
|
||||
"fuse.js": "^7.4.2",
|
||||
"i18next": "^25.10.10",
|
||||
"icecast-metadata-stats": "^0.1.12",
|
||||
"idb-keyval": "^6.2.2",
|
||||
"idb-keyval": "^6.2.5",
|
||||
"immer": "^10.2.0",
|
||||
"is-electron": "^2.2.2",
|
||||
"lodash": "^4.17.21",
|
||||
"lodash": "^4.18.1",
|
||||
"md5": "^2.3.0",
|
||||
"motion": "^12.23.24",
|
||||
"motion": "^12.40.0",
|
||||
"mpris-service": "^2.1.2",
|
||||
"nanoid": "^3.3.11",
|
||||
"nanoid": "^3.3.12",
|
||||
"node-mpv": "github:jeffvli/Node-MPV#32b4d64395289ad710c41d481d2707a7acfc228f",
|
||||
"nuqs": "^2.7.1",
|
||||
"overlayscrollbars": "^2.11.1",
|
||||
"overlayscrollbars": "^2.16.0",
|
||||
"overlayscrollbars-react": "^0.5.6",
|
||||
"qs": "^6.14.1",
|
||||
"react": "^19.1.0",
|
||||
"react-call": "^1.8.1",
|
||||
"react-dom": "^19.1.0",
|
||||
"qs": "^6.15.2",
|
||||
"react": "^19.2.7",
|
||||
"react-call": "^1.8.2",
|
||||
"react-dom": "^19.2.7",
|
||||
"react-error-boundary": "^5.0.0",
|
||||
"react-i18next": "^16.3.3",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-image": "^4.1.0",
|
||||
"react-player": "^2.16.0",
|
||||
"react-router": "^7.9.6",
|
||||
"react-split-pane": "^3.0.4",
|
||||
"react-i18next": "^16.6.6",
|
||||
"react-icons": "^5.6.0",
|
||||
"react-player": "^2.16.1",
|
||||
"react-router": "^7.17.0",
|
||||
"react-split-pane": "^3.2.0",
|
||||
"react-virtualized-auto-sizer": "^1.0.26",
|
||||
"react-window": "1.8.11",
|
||||
"react-window-v2": "npm:react-window@^2.2.3",
|
||||
"semver": "^7.5.4",
|
||||
"react-window-v2": "npm:react-window@^2.2.7",
|
||||
"semver": "^7.8.2",
|
||||
"string-to-color": "^2.2.2",
|
||||
"wavesurfer.js": "^7.11.1",
|
||||
"ws": "^8.18.2",
|
||||
"zod": "^3.22.3",
|
||||
"zustand": "^5.0.5"
|
||||
"wavesurfer.js": "^7.12.7",
|
||||
"ws": "^8.21.0",
|
||||
"zod": "^3.25.76",
|
||||
"zustand": "^5.0.14"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
|
||||
"@electron-toolkit/eslint-config-ts": "^3.0.0",
|
||||
"@electron-toolkit/eslint-config-ts": "^3.1.0",
|
||||
"@electron-toolkit/tsconfig": "^2.0.0",
|
||||
"@types/electron-localshortcut": "^3.1.0",
|
||||
"@types/lodash": "^4.17.18",
|
||||
"@types/md5": "^2.3.5",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/react": "^19.2.5",
|
||||
"@types/electron-localshortcut": "^3.1.3",
|
||||
"@types/lodash": "^4.17.24",
|
||||
"@types/md5": "^2.3.6",
|
||||
"@types/node": "^24.13.1",
|
||||
"@types/react": "^19.2.17",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@types/react-window": "^1.8.8",
|
||||
"@types/source-map-support": "^0.5.10",
|
||||
"@types/ws": "^8.18.1",
|
||||
"@vitejs/plugin-react": "^5.1.1",
|
||||
"@vitejs/plugin-react": "^5.2.0",
|
||||
"babel-plugin-react-compiler": "^1.0.0",
|
||||
"concurrently": "^9.2.1",
|
||||
"cross-env": "^10.1.0",
|
||||
"electron": "^39.4.0",
|
||||
"electron-builder": "^26.0.12",
|
||||
"electron": "^41.7.1",
|
||||
"electron-builder": "^26.15.0",
|
||||
"electron-devtools-installer": "^4.0.0",
|
||||
"electron-vite": "^4.0.1",
|
||||
"eslint": "^9.24.0",
|
||||
"eslint-plugin-perfectionist": "^4.13.0",
|
||||
"eslint-plugin-prettier": "^5.4.0",
|
||||
"eslint": "^9.39.4",
|
||||
"eslint-plugin-perfectionist": "^4.15.1",
|
||||
"eslint-plugin-prettier": "^5.5.6",
|
||||
"eslint-plugin-react": "^7.37.5",
|
||||
"eslint-plugin-react-hooks": "^7.0.1",
|
||||
"eslint-plugin-react-refresh": "^0.4.24",
|
||||
"i18next-parser": "^9.3.0",
|
||||
"eslint-plugin-react-hooks": "^7.1.1",
|
||||
"eslint-plugin-react-refresh": "^0.4.26",
|
||||
"i18next-parser": "^9.4.0",
|
||||
"postcss-preset-mantine": "^1.18.0",
|
||||
"postcss-simple-vars": "^7.0.1",
|
||||
"prettier": "^3.6.2",
|
||||
"prettier-plugin-packagejson": "^2.5.19",
|
||||
"stylelint": "^16.25.0",
|
||||
"stylelint-config-css-modules": "^4.5.1",
|
||||
"stylelint-config-recess-order": "^7.4.0",
|
||||
"prettier": "^3.8.3",
|
||||
"prettier-plugin-packagejson": "^2.5.22",
|
||||
"stylelint": "^16.26.1",
|
||||
"stylelint-config-css-modules": "^4.6.0",
|
||||
"stylelint-config-recess-order": "^7.7.0",
|
||||
"stylelint-config-standard": "^39.0.1",
|
||||
"typescript": "^5.8.3",
|
||||
"vite": "^7.2.2",
|
||||
"typescript": "^5.9.3",
|
||||
"vite": "^7.3.5",
|
||||
"vite-plugin-conditional-import": "^0.1.7",
|
||||
"vite-plugin-dynamic-import": "^1.6.0",
|
||||
"vite-plugin-ejs": "^1.7.0",
|
||||
"vite-plugin-pwa": "^1.1.0"
|
||||
},
|
||||
"pnpm": {
|
||||
"onlyBuiltDependencies": [
|
||||
"electron",
|
||||
"esbuild"
|
||||
]
|
||||
"vite-plugin-pwa": "^1.3.0"
|
||||
},
|
||||
"packageManager": "pnpm@11.5.2",
|
||||
"productName": "feishin"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
allowBuilds:
|
||||
abstract-socket: true
|
||||
electron: true
|
||||
electron-winstaller: true
|
||||
esbuild: true
|
||||
minimumReleaseAge: 1440
|
||||
overrides:
|
||||
'xml2js': '0.5.0'
|
||||
'react-router': '7.14.0'
|
||||
@@ -1,9 +1,9 @@
|
||||
import react from '@vitejs/plugin-react';
|
||||
import path from 'path';
|
||||
import { defineConfig, normalizePath } from 'vite';
|
||||
import { ViteEjsPlugin } from 'vite-plugin-ejs';
|
||||
|
||||
import { version } from './package.json';
|
||||
import { createReactPlugin } from './vite.react-plugin';
|
||||
|
||||
export default defineConfig({
|
||||
build: {
|
||||
@@ -35,7 +35,7 @@ export default defineConfig({
|
||||
},
|
||||
},
|
||||
plugins: [
|
||||
react(),
|
||||
createReactPlugin(),
|
||||
ViteEjsPlugin({
|
||||
prod: process.env.NODE_ENV === 'production',
|
||||
root: normalizePath(path.resolve(__dirname, './src/remote')),
|
||||
|
||||
|
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,102 @@
|
||||
"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_LISTEN_BRAINZ = "${FS_GENERAL_LISTEN_BRAINZ}";
|
||||
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_QOBUZ = "${FS_GENERAL_QOBUZ}";
|
||||
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_FOLDERS = "${FS_GENERAL_SIDEBAR_PLAYLIST_FOLDERS}";
|
||||
window.FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_SEPARATOR = "${FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_SEPARATOR}";
|
||||
window.FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_TREE_INDENT = "${FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_TREE_INDENT}";
|
||||
window.FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_TREE_LINE_COLOR = "${FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_TREE_LINE_COLOR}";
|
||||
window.FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_VIEW = "${FS_GENERAL_SIDEBAR_PLAYLIST_FOLDER_VIEW}";
|
||||
window.FS_GENERAL_SIDEBAR_PLAYLIST_LIST = "${FS_GENERAL_SIDEBAR_PLAYLIST_LIST}";
|
||||
window.FS_GENERAL_SIDEBAR_PLAYLIST_MODE = "${FS_GENERAL_SIDEBAR_PLAYLIST_MODE}";
|
||||
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_SIDE_QUEUE_LAYOUT = "${FS_GENERAL_SIDE_QUEUE_LAYOUT}";
|
||||
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_PLAYBACK_TRANSCODE_FORMAT = "${FS_PLAYBACK_TRANSCODE_FORMAT}";
|
||||
window.FS_PLAYBACK_TRANSCODE_BITRATE = "${FS_PLAYBACK_TRANSCODE_BITRATE}";
|
||||
window.FS_PLAYBACK_FILTERS = "${FS_PLAYBACK_FILTERS}";
|
||||
|
||||
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_ALBUM_STRATEGY = "${FS_AUTO_DJ_ALBUM_STRATEGY}";
|
||||
window.FS_AUTO_DJ_ENABLED = "${FS_AUTO_DJ_ENABLED}";
|
||||
window.FS_AUTO_DJ_ITEM_COUNT = "${FS_AUTO_DJ_ITEM_COUNT}";
|
||||
window.FS_AUTO_DJ_MODE = "${FS_AUTO_DJ_MODE}";
|
||||
window.FS_AUTO_DJ_SONG_STRATEGY = "${FS_AUTO_DJ_SONG_STRATEGY}";
|
||||
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,4 +1,4 @@
|
||||
import { PostProcessorModule, TOptions } from 'i18next';
|
||||
import { PostProcessorModule } from 'i18next';
|
||||
import i18n from 'i18next';
|
||||
import { initReactI18next } from 'react-i18next';
|
||||
|
||||
@@ -8,6 +8,7 @@ import cs from './locales/cs.json';
|
||||
import de from './locales/de.json';
|
||||
import en from './locales/en.json';
|
||||
import es from './locales/es.json';
|
||||
import et from './locales/et.json';
|
||||
import eu from './locales/eu.json';
|
||||
import fa from './locales/fa.json';
|
||||
import fi from './locales/fi.json';
|
||||
@@ -27,6 +28,8 @@ import sl from './locales/sl.json';
|
||||
import sr from './locales/sr.json';
|
||||
import sv from './locales/sv.json';
|
||||
import ta from './locales/ta.json';
|
||||
import th from './locales/th.json';
|
||||
import tl from './locales/tl.json';
|
||||
import tr from './locales/tr.json';
|
||||
import zhHans from './locales/zh-Hans.json';
|
||||
import zhHant from './locales/zh-Hant.json';
|
||||
@@ -38,6 +41,7 @@ const resources = {
|
||||
de: { translation: de },
|
||||
en: { translation: en },
|
||||
es: { translation: es },
|
||||
et: { translation: et },
|
||||
eu: { translation: eu },
|
||||
fa: { translation: fa },
|
||||
fi: { translation: fi },
|
||||
@@ -57,6 +61,8 @@ const resources = {
|
||||
sr: { translation: sr },
|
||||
sv: { translation: sv },
|
||||
ta: { translation: ta },
|
||||
th: { translation: th },
|
||||
tl: { translation: tl },
|
||||
tr: { translation: tr },
|
||||
'zh-Hans': { translation: zhHans },
|
||||
'zh-Hant': { translation: zhHant },
|
||||
@@ -87,6 +93,10 @@ export const languages = [
|
||||
label: 'Español',
|
||||
value: 'es',
|
||||
},
|
||||
{
|
||||
label: 'Eesti',
|
||||
value: 'et',
|
||||
},
|
||||
{
|
||||
label: 'Basque',
|
||||
value: 'eu',
|
||||
@@ -163,6 +173,14 @@ export const languages = [
|
||||
label: 'Tamil',
|
||||
value: 'ta',
|
||||
},
|
||||
{
|
||||
label: 'Thai',
|
||||
value: 'th',
|
||||
},
|
||||
{
|
||||
label: 'Tagalog',
|
||||
value: 'tl',
|
||||
},
|
||||
{
|
||||
label: 'Türkçe',
|
||||
value: 'tr',
|
||||
@@ -203,25 +221,17 @@ const titleCasePostProcessor: PostProcessorModule = {
|
||||
type: 'postProcessor',
|
||||
};
|
||||
|
||||
const ignoreSentenceCaseLanguages = ['de'];
|
||||
// const ignoreSentenceCaseLanguages = ['de'];
|
||||
|
||||
const sentenceCasePostProcessor: PostProcessorModule = {
|
||||
name: 'sentenceCase',
|
||||
process: (
|
||||
value: string,
|
||||
_key: string,
|
||||
_options: TOptions<Record<string, string>>,
|
||||
translator: any,
|
||||
) => {
|
||||
process: (value: string) => {
|
||||
const sentences = value.split('. ');
|
||||
|
||||
return sentences
|
||||
.map((sentence) => {
|
||||
return (
|
||||
sentence.charAt(0).toLocaleUpperCase() +
|
||||
(!ignoreSentenceCaseLanguages.includes(translator.language)
|
||||
? sentence.slice(1).toLocaleLowerCase()
|
||||
: sentence.slice(1))
|
||||
sentence.charAt(0).toLocaleUpperCase() + sentence.slice(1).toLocaleLowerCase()
|
||||
);
|
||||
})
|
||||
.join('. ');
|
||||
|
||||
@@ -2,26 +2,48 @@
|
||||
"action": {
|
||||
"addToFavorites": "إضافة الى $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "إضافة الى $t(entity.playlist, {\"count\": 1})",
|
||||
"clearQueue": "مسح قائمة الإنتظار",
|
||||
"clearQueue": "مسح قائمة التشغيل",
|
||||
"createPlaylist": "إنشاء $t(entity.playlist, {\"count\": 1})",
|
||||
"deletePlaylist": "حذف $t(entity.playlist, {\"count\": 1})",
|
||||
"deselectAll": "إلغاء تحديد الكل",
|
||||
"editPlaylist": "تعديل $t(entity.playlist, {\"count\": 1})",
|
||||
"goToPage": "اذهب الى صفحة",
|
||||
"moveToNext": "الذهاب الى التالي",
|
||||
"moveToBottom": "الذهاب الى الأسفل",
|
||||
"moveToTop": "الذهاب الى الأعلى",
|
||||
"goToPage": "اذهب الى الصفحة",
|
||||
"moveToNext": "نقل إلى التالي",
|
||||
"moveToBottom": "نقل إلى الأسفل",
|
||||
"moveToTop": "نقل إلى الأعلى",
|
||||
"refresh": "$t(common.refresh)",
|
||||
"removeFromFavorites": "حذف من $t(entity.favorite, {\"count\": 2})",
|
||||
"removeFromPlaylist": "حذف من $t(entity.playlist, {\"count\": 1})",
|
||||
"removeFromQueue": "حذف من قائمة الإنتظار",
|
||||
"removeFromQueue": "حذف من قائمة التشغيل",
|
||||
"setRating": "تحديد التقييم",
|
||||
"toggleSmartPlaylistEditor": "تشغيل / إطفاء وضع التعديل لـ $t(entity.smartPlaylist)",
|
||||
"viewPlaylists": "إظهار $t(entity.playlist, {\"count\": 2})",
|
||||
"toggleSmartPlaylistEditor": "إظهار / إخفاء وضع التعديل لـ $t(entity.smartPlaylist)",
|
||||
"viewPlaylists": "عرض $t(entity.playlist, {\"count\": 2})",
|
||||
"openIn": {
|
||||
"lastfm": "فتح في Last.fm",
|
||||
"musicbrainz": "فتح في MusicBrainz"
|
||||
}
|
||||
"musicbrainz": "فتح في MusicBrainz",
|
||||
"listenbrainz": "فتح في ListenBrainz",
|
||||
"qobuz": "فتح في Qobuz",
|
||||
"spotify": "فتح في Spotify"
|
||||
},
|
||||
"addOrRemoveFromSelection": "إضافة أو إزالة من الإختيارات",
|
||||
"selectRangeOfItems": "اختر مجموعة من العناصر",
|
||||
"goToCurrent": "الانتقال إلى العنصر الحالي",
|
||||
"createRadioStation": "إنشاء $t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "يمسح $t(entity.radioStation, {\"count\": 1})",
|
||||
"selectAll": "تحديد الكل",
|
||||
"shuffle": "لخبط",
|
||||
"shuffleAll": "لخبط الكل",
|
||||
"shuffleSelected": "لخبط المحدد",
|
||||
"collapseAllFolders": "اطو جميع المجلدات",
|
||||
"expandAllFolders": "بسط الملفات",
|
||||
"downloadStarted": "بدأ تحميل {{count}} عنصر",
|
||||
"moveUp": "نقل إلى فوق",
|
||||
"moveDown": "نقل إلى تحت",
|
||||
"holdToMoveToTop": "اضغط مطولاً للنقل إلى الأعلى",
|
||||
"holdToMoveToBottom": "اضغط مطولاً للنقل إلى الأسفل",
|
||||
"moveItems": "نقل العناصر",
|
||||
"viewMore": "عرض المزيد",
|
||||
"openApplicationDirectory": "فتح مجلد التطبيق"
|
||||
},
|
||||
"common": {
|
||||
"action_zero": "عملية",
|
||||
@@ -33,13 +55,13 @@
|
||||
"add": "إضافة",
|
||||
"additionalParticipants": "مشاركين إضافيين",
|
||||
"newVersion": "تم تثبيت تحديث جديد {{version}}",
|
||||
"viewReleaseNotes": "عرض معلومات الإصدار",
|
||||
"viewReleaseNotes": "عرض ملاحظات الإصدار",
|
||||
"albumGain": "مستوى صوت الألبوم",
|
||||
"albumPeak": "اعلى مستوى للألبوم",
|
||||
"areYouSure": "هل أنت متأكد؟",
|
||||
"ascending": "تصاعدي",
|
||||
"backward": "خلف",
|
||||
"biography": "سيرة",
|
||||
"biography": "السيرة",
|
||||
"bitDepth": "عمق البت",
|
||||
"bitrate": "معدل البت (البت ريت)",
|
||||
"bpm": "نبضة في الدقيقة",
|
||||
@@ -135,7 +157,35 @@
|
||||
"unknown": "غير معروف",
|
||||
"version": "الإصدار",
|
||||
"year": "السنة",
|
||||
"yes": "نعم"
|
||||
"yes": "نعم",
|
||||
"explicitStatus": "حالة المحتوى الصريح",
|
||||
"countSelected": "{{count}} عنصر محدد",
|
||||
"back": "للخلف",
|
||||
"doNotShowAgain": "لا تظهر هذا مجدداً",
|
||||
"view": "عرض",
|
||||
"example": "مثال",
|
||||
"externalLinks": "روابط الخارجية",
|
||||
"openFolder": "فتح المجلد",
|
||||
"faster": "أسرع",
|
||||
"filter_single": "فردي",
|
||||
"filter_multiple": "متعدد",
|
||||
"grouping": "مجموعات",
|
||||
"mood": "مزاج",
|
||||
"numberOfResults": "{{numberOfResults}} نتيجة",
|
||||
"noFilters": "لا توجد فلاتر معينة",
|
||||
"private": "خاص",
|
||||
"public": "عام",
|
||||
"retry": "إعادة المحاولة",
|
||||
"recordLabel": "شركة التسجيل",
|
||||
"releaseType": "نوع الإصدار",
|
||||
"rename": "إعادة تسمية",
|
||||
"slower": "أبطأ",
|
||||
"sort": "فرز",
|
||||
"explicit": "صريح",
|
||||
"clean": "نظيف",
|
||||
"gridRows": "صفوف الشبكة",
|
||||
"tableColumns": "أعمدة الجدول",
|
||||
"newVersionAvailable": "هناك نسخة جديدة متاحة"
|
||||
},
|
||||
"entity": {
|
||||
"album_zero": "الالبوم",
|
||||
@@ -149,6 +199,296 @@
|
||||
"albumArtist_two": "فنان الالبومين",
|
||||
"albumArtist_few": "فنان الالبومات",
|
||||
"albumArtist_many": "فنان الالبومات",
|
||||
"albumArtist_other": "فنان الالبومات"
|
||||
"albumArtist_other": "فنان الالبومات",
|
||||
"albumArtistCount_zero": "{{count}} فنان الالبوم",
|
||||
"albumArtistCount_one": "{{count}} فنان الالبوم",
|
||||
"albumArtistCount_two": "{{count}} فنان الالبومين",
|
||||
"albumArtistCount_few": "{{count}} فنان الالبومات",
|
||||
"albumArtistCount_many": "{{count}} فنان الالبومات",
|
||||
"albumArtistCount_other": "{{count}} فنان الالبومات",
|
||||
"albumWithCount_zero": "{{count}} البوم",
|
||||
"albumWithCount_one": "{{count}} البوم",
|
||||
"albumWithCount_two": "{{count}} البومين",
|
||||
"albumWithCount_few": "{{count}} البومات",
|
||||
"albumWithCount_many": "{{count}} البومات",
|
||||
"albumWithCount_other": "{{count}} البومات",
|
||||
"radioStation_zero": "محطة راديو",
|
||||
"radioStation_one": "محطة راديو",
|
||||
"radioStation_two": "محطتان راديو",
|
||||
"radioStation_few": "محطات راديو",
|
||||
"radioStation_many": "محطات راديو",
|
||||
"radioStation_other": "محطات راديو",
|
||||
"radioStationWithCount_zero": "{{count}} محطة راديو",
|
||||
"radioStationWithCount_one": "{{count}} محطة راديو",
|
||||
"radioStationWithCount_two": "{{count}} محطتان راديو",
|
||||
"radioStationWithCount_few": "{{count}} محطات راديو",
|
||||
"radioStationWithCount_many": "{{count}} محطات راديو",
|
||||
"radioStationWithCount_other": "{{count}} محطات راديو",
|
||||
"artist_zero": "فنان",
|
||||
"artist_one": "فنان",
|
||||
"artist_two": "فنانان",
|
||||
"artist_few": "فنانين",
|
||||
"artist_many": "فنانين",
|
||||
"artist_other": "فنانين",
|
||||
"artistWithCount_zero": "{{count}} فنان",
|
||||
"artistWithCount_one": "{{count}} فنان",
|
||||
"artistWithCount_two": "{{count}} فنانان",
|
||||
"artistWithCount_few": "{{count}} فنانين",
|
||||
"artistWithCount_many": "{{count}} فنانين",
|
||||
"artistWithCount_other": "{{count}} فنانين",
|
||||
"favorite_zero": "مفضلة",
|
||||
"favorite_one": "مفضلة",
|
||||
"favorite_two": "مفضلتان",
|
||||
"favorite_few": "مفضلات",
|
||||
"favorite_many": "مفضلات",
|
||||
"favorite_other": "مفضلات",
|
||||
"folder_zero": "مجلد",
|
||||
"folder_one": "مجلد",
|
||||
"folder_two": "مجلدان",
|
||||
"folder_few": "مجلدات",
|
||||
"folder_many": "مجلدات",
|
||||
"folder_other": "مجلدات",
|
||||
"folderWithCount_zero": "{{count}} مجلد",
|
||||
"folderWithCount_one": "{{count}} مجلد",
|
||||
"folderWithCount_two": "{{count}} مجلدان",
|
||||
"folderWithCount_few": "{{count}} مجلدات",
|
||||
"folderWithCount_many": "{{count}} مجلدات",
|
||||
"folderWithCount_other": "{{count}} مجلدات",
|
||||
"genre_zero": "نوع",
|
||||
"genre_one": "نوع",
|
||||
"genre_two": "نوعان",
|
||||
"genre_few": "أنواع",
|
||||
"genre_many": "أنواع",
|
||||
"genre_other": "أنواع",
|
||||
"genreWithCount_zero": "{{count}} نوع",
|
||||
"genreWithCount_one": "{{count}} نوع",
|
||||
"genreWithCount_two": "{{count}} نوعان",
|
||||
"genreWithCount_few": "{{count}} أنواع",
|
||||
"genreWithCount_many": "{{count}} أنواع",
|
||||
"genreWithCount_other": "{{count}} أنواع",
|
||||
"playlist_zero": "قائمة تشغيل",
|
||||
"playlist_one": "قائمة تشغيل",
|
||||
"playlist_two": "قائمتان تشغيل",
|
||||
"playlist_few": "قوائم تشغيل",
|
||||
"playlist_many": "قوائم تشغيل",
|
||||
"playlist_other": "قوائم تشغيل",
|
||||
"play_zero": "{{count}} قائمة تشغيل",
|
||||
"play_one": "{{count}} قائمة تشغيل",
|
||||
"play_two": "{{count}} قائمتان تشغيل",
|
||||
"play_few": "{{count}} قوائم تشغيل",
|
||||
"play_many": "{{count}} قوائم تشغيل",
|
||||
"play_other": "{{count}} قوائم تشغيل",
|
||||
"playlistWithCount_zero": "{{count}} قائمة تشغيل",
|
||||
"playlistWithCount_one": "{{count}} قائمة تشغيل",
|
||||
"playlistWithCount_two": "{{count}} قائمتان تشغيل",
|
||||
"playlistWithCount_few": "{{count}} قوائم تشغيل",
|
||||
"playlistWithCount_many": "{{count}} قوائم تشغيل",
|
||||
"playlistWithCount_other": "{{count}} قوائم تشغيل",
|
||||
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) قائمة تشغيل ذكية",
|
||||
"track_zero": "مقطع",
|
||||
"track_one": "مقطع",
|
||||
"track_two": "مقطعان",
|
||||
"track_few": "مقاطع",
|
||||
"track_many": "مقاطع",
|
||||
"track_other": "مقاطع",
|
||||
"song_zero": "أغنية",
|
||||
"song_one": "أغنية",
|
||||
"song_two": "أغنيتان",
|
||||
"song_few": "أغاني",
|
||||
"song_many": "أغاني",
|
||||
"song_other": "أغاني",
|
||||
"trackWithCount_zero": "{{count}} مقطع",
|
||||
"trackWithCount_one": "{{count}} مقطع",
|
||||
"trackWithCount_two": "{{count}} مقطعان",
|
||||
"trackWithCount_few": "{{count}} مقاطع",
|
||||
"trackWithCount_many": "{{count}} مقاطع",
|
||||
"trackWithCount_other": "{{count}} مقاطع"
|
||||
},
|
||||
"error": {
|
||||
"apiRouteError": "تعذّر توجيه الطلب",
|
||||
"audioDeviceFetchError": "حصل خطأ أثناء محاولة الحصول على أجهزة الصوت",
|
||||
"authenticationFailed": "فشلت المصادقة",
|
||||
"badAlbum": "أنت ترى هذة الصفحة لأن هذه الأغنية ليست جزءاً من ألبوم. على الأرجح تظهر لك هذه المشكلة إذا كان لديك أغنية في المستوى الأعلى من مجلد الموسيقى. يقوم Jellyfin بتجميع الأغاني فقط إذا كانت داخل مجلد",
|
||||
"credentialsRequired": "يتطلب بيانات اعتماد",
|
||||
"genericError": "حدث خطأ",
|
||||
"loginRateError": "تجاوزت الحد لمحاولات الدخول. حاول مجدداً بعد بضع ثوان",
|
||||
"mpvRequired": "يتطلب MPV",
|
||||
"multipleServerSaveQueueError": "قائمة التشغيل تحتوي على أغنية أو أكثر من خادم مختلف. هذا غير مدعوم",
|
||||
"networkError": "حصل خطأ في الشبكة",
|
||||
"noNetwork": "الخادم غير متوفر",
|
||||
"noNetworkDescription": "تعذر الإتصال بالخادم",
|
||||
"notificationDenied": "تم رفض أذن الإشعارات. هذا الإعداد لن يكون له أي تأثير",
|
||||
"openError": "تعذر فتح الملف",
|
||||
"playbackError": "حدث خطأ أثناء محاولة تشغيل الوسائط",
|
||||
"playbackPausedDueToError": "تم ايقاف التشغيل بسبب خطأ",
|
||||
"remoteDisableError": "حدث خطأ أثناء محاولة $t(common.disable) الخادم البعيد",
|
||||
"remoteEnableError": "حدث خطأ أثناء محاولة $t(common.enable) الخادم البعيد",
|
||||
"remotePortError": "حدث خطأ أثناء محاولة تعيين الخادم البعيد",
|
||||
"remotePortWarning": "أعد تشغيل الخادم لتطبيق المنفذ الجديد",
|
||||
"saveQueueFailed": "فشل حفظ قائمة التشغيل",
|
||||
"serverLockSingleServer": "فقط خادم واحد متاح إذا الخادم مقفل",
|
||||
"serverNotSelectedError": "لم يتم اختيار أي خادم",
|
||||
"serverRequired": "يتطلب خادم",
|
||||
"sessionExpiredError": "انتهت صلاحية جلستك",
|
||||
"systemFontError": "حدث خطأ أثناء محاولة الحصول على خطوط النظام",
|
||||
"settingsSyncError": "تم اكتشاف تعارضات بين إعدادات العارض والعملية الرئيسية. أعد تشغيل التطبيق لتطبيق التغييرات",
|
||||
"invalidJson": "JSON غير صالح",
|
||||
"invalidServer": "خادم غير صالح",
|
||||
"localFontAccessDenied": "تم رفض الوصول إلى الخطوط المحلية"
|
||||
},
|
||||
"filter": {
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"matchAnd": "و",
|
||||
"matchOr": "أو",
|
||||
"biography": "السيرة",
|
||||
"bitrate": "معدل البت (البت ريت)",
|
||||
"bpm": "نبضة في الدقيقة",
|
||||
"comment": "تعليق",
|
||||
"communityRating": "تقييم المجتمع",
|
||||
"criticRating": "تقييم الناقد",
|
||||
"dateAdded": "تاريخ الإضافة",
|
||||
"disc": "قرص",
|
||||
"duration": "المدة",
|
||||
"favorited": "مفضل",
|
||||
"fromYear": "من سنة",
|
||||
"id": "معرف",
|
||||
"isFavorited": "مفضل",
|
||||
"isPublic": "عام",
|
||||
"isRated": "مقيم",
|
||||
"isRecentlyPlayed": "تم التشغيل حديثاً",
|
||||
"lastPlayed": "أخر تشغيل",
|
||||
"mostPlayed": "أكثر تشغيل",
|
||||
"name": "الأسم",
|
||||
"note": "الملاحظة",
|
||||
"path": "المسار",
|
||||
"playCount": "عدد التشغيلات",
|
||||
"random": "عشوائي",
|
||||
"rating": "التقييم",
|
||||
"recentlyAdded": "مضاف حديثاً",
|
||||
"recentlyPlayed": "تم التشغيل حديثاً",
|
||||
"recentlyUpdated": "محدث حديثاً",
|
||||
"releaseDate": "تاريخ الإصدار",
|
||||
"releaseYear": "سنة الإصدار",
|
||||
"search": "بحث",
|
||||
"songCount": "عدد الأغاني",
|
||||
"sortName": "أسم الفرز",
|
||||
"title": "العنوان",
|
||||
"toYear": "إلى سنة",
|
||||
"trackNumber": "مقطع",
|
||||
"isCompilation": "تجميعة"
|
||||
},
|
||||
"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": "حدث خطأ أثناء محاولة حفظ كلمة السر",
|
||||
"input_legacyAuthentication": "تفعيل المصادقة القديمة",
|
||||
"input_name": "أسم الخادم",
|
||||
"input_password": "كلمة السر",
|
||||
"input_preferRemoteUrl": "تفضيل رابط عام",
|
||||
"input_remoteUrl": "رابط عام",
|
||||
"input_savePassword": "حفظ كلمة السر",
|
||||
"input_url": "الرابط",
|
||||
"input_username": "أسم المستخدم",
|
||||
"success": "تمت إضافة الخادم بنجاح",
|
||||
"title": "إضافة خادم",
|
||||
"input_preferInstantMix": "تفضيل الميكس الفوري",
|
||||
"input_preferInstantMixDescription": "استخدم الميكس الفوري فقط للحصول على أغاني مشابهة. مفيد إذا كان لديك إضافات تعدّل هذا السلوك",
|
||||
"input_remoteUrlPlaceholder": "اختياري: عنوان URL عام للميزات الخارجية"
|
||||
},
|
||||
"largeFetchConfirmation": {
|
||||
"title": "أضف العناصر إلى قائمة التشغيل",
|
||||
"description": "سيقوم هذا الإجراء بإضافة جميع العناصر في العرض المفلتر الحالي"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_skipDuplicates": "تخطي العناصر المكررة",
|
||||
"title": "أضف إلى $t(entity.playlist, {\"count\": 1})",
|
||||
"create": "إنشاء $t(entity.playlist, {\"count\": 1}) {{playlist}}"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"input_public": "عام"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"input_homepageUrl": "رابط الرئيسية",
|
||||
"input_name": "الأسم",
|
||||
"input_streamUrl": "رابط البث",
|
||||
"success": "تم إنشاء محطة راديو جديدة بنجاح",
|
||||
"title": "إنشاء محطة راديو"
|
||||
},
|
||||
"editRadioStation": {
|
||||
"success": "تم تحديث محطة الراديو بنجاح"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "أكتب أسم $t(entity.playlist, {\"count\": 1}) للتأكيد",
|
||||
"success": "تم حذف $t(entity.playlist, {\"count\": 1}) بنجاح",
|
||||
"title": "حذف $t(entity.playlist, {\"count\": 1})"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"success": "تم تحديث $t(entity.playlist, {\"count\": 1}) بنجاح",
|
||||
"title": "تعديل $t(entity.playlist, {\"count\": 1})",
|
||||
"publicJellyfinNote": "لسبب ما، لا يكشف Jellyfin عما إذا كانت قائمة التشغيل عامة أم لا. إذا كنت ترغب في إبقائها عامة، يرجى التأكد من تحديد الخيار التالي"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "تصدير الكلمات",
|
||||
"input_synced": "تصدير الكلمات المتزامنة"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"title": "البحث بالكلمات"
|
||||
},
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "تطابق الجميع",
|
||||
"input_optionMatchAny": "تطابق أي",
|
||||
"title": "محرر الاستعلامات",
|
||||
"addRuleGroup": "إضافة مجموعة قواعد",
|
||||
"removeRuleGroup": "إزالة مجموعة قواعد",
|
||||
"resetToDefault": "استعادة الإعدادات الافتراضية"
|
||||
},
|
||||
"shareItem": {
|
||||
"allowDownloading": "السماح بالتحميل",
|
||||
"description": "الوصف"
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "تشغيل عشوائي",
|
||||
"input_kind_albums": "ألبومات",
|
||||
"input_kind_songs": "أغاني",
|
||||
"input_kind": "إختيارات عشوائية",
|
||||
"input_minYear": "من سنة",
|
||||
"input_maxYear": "إلى سنة"
|
||||
},
|
||||
"updateServer": {
|
||||
"success": "تم تحديث الخادم بنجاح",
|
||||
"title": "تحديث الخادم"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"albumArtistDetail": {
|
||||
"favoriteSongs": "الأغاني المفضلة"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"unfavorite": "حذف از موردعلاقهها",
|
||||
"shuffle_off": "پخش تصادفی غیر فعال",
|
||||
"skip_forward": "برو جلو",
|
||||
"queue_moveToTop": "جابجا کردن انتخاب شده به پایین",
|
||||
"queue_moveToTop": "جابجا کردن انتخاب شده به بالا",
|
||||
"queue_clear": "خالی کردن صف",
|
||||
"queue_remove": "حذف انتخاب شده",
|
||||
"addLast": "افزودن به پایان",
|
||||
@@ -24,7 +24,7 @@
|
||||
"mute": "بیصدا کردن",
|
||||
"playbackFetchCancel": "دارد طول میکشد... برای لفو کردن اعلان را ببندید",
|
||||
"playbackFetchInProgress": "بارگذاری قطعهها…",
|
||||
"queue_moveToBottom": "جابجا کردن انتخاب شده به بالا",
|
||||
"queue_moveToBottom": "جابجا کردن انتخاب شده به پایین",
|
||||
"addNext": "افزودن به پسین",
|
||||
"favorite": "مورد علاقه",
|
||||
"playSimilarSongs": "پخش آهنگهای همگون",
|
||||
@@ -70,13 +70,12 @@
|
||||
"hotkey_rate1": "امتیاز ۱ ستاره",
|
||||
"hotkey_skipForward": "برو جلو",
|
||||
"disableLibraryUpdateOnStartup": "غیرفعال کردن بررسی آخرین نسخه در آغاز به کار برنامه",
|
||||
"discordApplicationId_description": "the application id for {{discord}} rich presence (defaults to {{defaultId}})",
|
||||
"discordApplicationId_description": "the application ID for {{discord}} Rich Presence (defaults to {{defaultId}})",
|
||||
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
|
||||
"hotkey_playbackPlay": "پخش",
|
||||
"hotkey_volumeDown": "کم کردن صدا",
|
||||
"audioPlayer_description": "پخشکنندهٔ صدا را برای پخش انتخاب کنید",
|
||||
"hotkey_globalSearch": "جست و جوی سراسری",
|
||||
"disableAutomaticUpdates": "غیرفعال کردن بهروزرسانی خودکار",
|
||||
"exitToTray_description": "خروج از اپلیکیشن به system tray",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"discordUpdateInterval_description": "فاصلهٔ بین هر به روزرسانی به ثانیه (حداقل ۱۵ ثانیه)",
|
||||
@@ -110,7 +109,7 @@
|
||||
"customFontPath": "مسیر قلم سفارشی",
|
||||
"audioPlayer": "پخشکنندهٔ صدا",
|
||||
"hotkey_rate0": "حذف امتیاز",
|
||||
"discordApplicationId": "{{discord}} application id",
|
||||
"discordApplicationId": "{{discord}} application ID",
|
||||
"hotkey_volumeMute": "بستن صدا",
|
||||
"showSkipButton": "نمایش دکمهٔ رد کردن",
|
||||
"customFontPath_description": "مسیر قلم سفارشی را برای استفاده در اپلیکیشن مشخص کنید",
|
||||
@@ -133,7 +132,7 @@
|
||||
"buttonSize": "اندازهی دکمهی پخش نوار",
|
||||
"contextMenu": "پیکربندی فهرست زمینه (کلیک راست)",
|
||||
"buttonSize_description": "اندازهی دکمههای پخش نوار",
|
||||
"audioExclusiveMode_description": "حالت اختصاصی خروجی را فعال میکند. در این حالت، سامانه معمولاً قفل است و فقط mpv میتواند خروجی صدا دهد",
|
||||
"audioExclusiveMode_description": "حالت اختصاصی خروجی را فعال میکند. در این حالت، سامانه معمولاً قفل است و فقط MPV میتواند خروجی صدا دهد",
|
||||
"clearQueryCache_description": "یک 'پاکسازی نرم' از فیشین. این فهرستهای پخش و فرادادهی قطعهها را تازه میکند و متن شعرهای ذخیره شده را بازنشانی میکند. پیکربندیها، اعتبارنامههای سرویسدهنده و نگارههای کَش شده حفظ میشوند",
|
||||
"clearCache_description": "یک 'پاکسازی سخت' فیشین. افزون بر پاکسازی کَش فیشین، کَش مرورگر هم تهی میشود (نگارههای ذخیره شده و باقی داراییها). اعتبارنامهها و پیکربندیها حفظ میشوند",
|
||||
"contextMenu_description": "به شما اجازه میدهد که آیتمهای نمایش داده شده در فهرستی که وقتی روی یک آیتم کلیک راست میکنید پدیدار میشود، را پنهان کنید. آیتمهایی که منتخب نیستند پنهان میشوند",
|
||||
@@ -177,7 +176,7 @@
|
||||
"backward": "به عقب",
|
||||
"increase": "افزایش",
|
||||
"rating": "امتیاز",
|
||||
"bpm": "bpm",
|
||||
"bpm": "BPM",
|
||||
"refresh": "تازهسازی",
|
||||
"unknown": "ناشناخته",
|
||||
"areYouSure": "مطمئنید؟",
|
||||
@@ -314,9 +313,9 @@
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "به تازگی پخش شده است",
|
||||
"isFavorited": "موردعلاقه است",
|
||||
"bpm": "bpm",
|
||||
"bpm": "BPM",
|
||||
"releaseYear": "سال انتشار",
|
||||
"id": "id",
|
||||
"id": "ID",
|
||||
"disc": "دیسک",
|
||||
"biography": "زندگینامه",
|
||||
"songCount": "تعداد ترانه",
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"playRandom": "ランダム再生",
|
||||
"skip": "スキップ",
|
||||
"previous": "前へ",
|
||||
"toggleFullscreenPlayer": "フルスクリーンプレーヤーの切り替え",
|
||||
"toggleFullscreenPlayer": "全画面プレーヤーに切り替える",
|
||||
"skip_back": "前へスキップ",
|
||||
"favorite": "お気に入り",
|
||||
"next": "次へ",
|
||||
@@ -22,20 +22,35 @@
|
||||
"queue_clear": "キューをクリア",
|
||||
"muted": "ミュート中",
|
||||
"unfavorite": "お気に入り解除",
|
||||
"queue_moveToTop": "選択項目を一番下に移動",
|
||||
"queue_moveToBottom": "選択項目を先頭に移動",
|
||||
"queue_moveToTop": "選択項目を先頭に移動",
|
||||
"queue_moveToBottom": "選択項目を一番下に移動",
|
||||
"shuffle_off": "シャッフル無効",
|
||||
"addLast": "最後",
|
||||
"mute": "ミュート",
|
||||
"skip_forward": "次へスキップ",
|
||||
"pause": "一時停止",
|
||||
"playSimilarSongs": "似たような曲を再生する",
|
||||
"viewQueue": "キューを表示する",
|
||||
"viewQueue": "キューを表示",
|
||||
"lyrics": "歌詞",
|
||||
"restoreQueueFromServer": "サーバーからキューを復元",
|
||||
"saveQueueToServer": "サーバーにキューを保存",
|
||||
"addLastShuffled": "最後 (シャッフル)",
|
||||
"addNextShuffled": "次 (シャッフル)"
|
||||
"addNextShuffled": "次 (シャッフル)",
|
||||
"sleepTimer_minutes": "{{count}} 分",
|
||||
"sleepTimer_hours": "{{count}} 時間",
|
||||
"sleepTimer": "スリープタイマー",
|
||||
"sleepTimer_endOfSong": "現在の曲の終わり",
|
||||
"sleepTimer_custom": "カスタム",
|
||||
"sleepTimer_off": "オフ",
|
||||
"sleepTimer_timeRemaining": "残り {{time}}",
|
||||
"sleepTimer_setCustom": "タイマーを設定",
|
||||
"sleepTimer_cancel": "タイマーをキャンセル",
|
||||
"holdToShuffle": "長押しでシャッフル",
|
||||
"albumRadio": "アルバム・ラジオ",
|
||||
"artistRadio": "アーティストラジオ",
|
||||
"trackRadio": "ラジオを追跡する",
|
||||
"scrobbleForceSubmit": "強制 Scrobble",
|
||||
"sleepTimer_endOfAlbum": "現在のアルバムの終了"
|
||||
},
|
||||
"setting": {
|
||||
"crossfadeStyle_description": "オーディオプレーヤーが使用するクロスフェードのスタイルを選択します",
|
||||
@@ -43,11 +58,11 @@
|
||||
"hotkey_skipBackward": "前にスキップ",
|
||||
"replayGainMode_description": "ファイルのメタデータに保存されている {{ReplayGain}} 値に従って音量ゲインを調整します",
|
||||
"volumeWheelStep_description": "音量スライダーでマウスホイールをスクロールしたときに変化する音量を設定します",
|
||||
"audioDevice_description": "再生に使用するオーディオデバイスを選択します (Web プレーヤーのみ)",
|
||||
"audioDevice_description": "再生に使用するオーディオデバイスを選択します",
|
||||
"theme_description": "アプリケーションに使用するテーマを設定します",
|
||||
"hotkey_playbackPause": "一時停止",
|
||||
"replayGainFallback": "{{ReplayGain}} フォールバック",
|
||||
"sidebarCollapsedNavigation_description": "折りたたみサイドバーのナビゲーションを表示/非表示にします",
|
||||
"sidebarCollapsedNavigation_description": "折りたたまれたサイドバーのナビゲーションを表示または非表示にします",
|
||||
"hotkey_volumeUp": "音量を上げる",
|
||||
"skipDuration": "スキップの長さ",
|
||||
"discordIdleStatus_description": "有効にすると、プレーヤーがアイドル状態でもステータスを更新します",
|
||||
@@ -62,7 +77,7 @@
|
||||
"mpvExecutablePath_description": "MPV を実行するファイルパスを設定します。空のままにすると、デフォルトのパスが使用されます",
|
||||
"replayGainClipping_description": "自動的にゲインを下げて {{ReplayGain}} によるクリッピングを防ぎます",
|
||||
"replayGainPreamp": "{{ReplayGain}} プリアンプ (dB)",
|
||||
"hotkey_favoriteCurrentSong": "$t(common.currentSong) をお気に入り",
|
||||
"hotkey_favoriteCurrentSong": "$t(common.currentSong) をお気に入りに登録",
|
||||
"sampleRate": "サンプルレート",
|
||||
"sidePlayQueueStyle_optionAttached": "結合",
|
||||
"sidebarConfiguration": "サイドバー設定",
|
||||
@@ -72,36 +87,35 @@
|
||||
"hotkey_zoomIn": "拡大",
|
||||
"scrobble_description": "再生した音楽をメディアサーバーから Scrobble します",
|
||||
"hotkey_browserForward": "ブラウザ 進む",
|
||||
"audioExclusiveMode_description": "排他出力モードを有効にします。このモードでは、システムの他の出力がロックされ、MPV のみがオーディオを出力できるようになります",
|
||||
"discordUpdateInterval": "{{discord}} Rich Presenceアップデート間隔",
|
||||
"audioExclusiveMode_description": "排他出力モードを有効にします。このモードでは、システムの他の出力がロックされ、MPV のみがオーディオを出力できるようになります。このモードが有効になっている間は、ビジュアライザーやシステムオーディオのキャプチャ機能は動作しません",
|
||||
"discordUpdateInterval": "{{discord}} Rich Presence の更新間隔",
|
||||
"themeLight": "テーマ (ライト)",
|
||||
"fontType_optionBuiltIn": "組み込みフォント",
|
||||
"hotkey_playbackPlayPause": "再生 / 一時停止",
|
||||
"hotkey_rate1": "1つ星で評価",
|
||||
"hotkey_rate1": "1 つ星で評価",
|
||||
"hotkey_skipForward": "次へスキップ",
|
||||
"disableLibraryUpdateOnStartup": "起動時の新バージョンチェックを無効にします",
|
||||
"discordApplicationId_description": "{{discord}} に Rich Presence ステータスを表示するためのアプリケーション ID (デフォルトは {{defaultId}} です)",
|
||||
"sidePlayQueueStyle": "サイド再生キュースタイル",
|
||||
"sidePlayQueueStyle": "サイド再生キューの形式",
|
||||
"gaplessAudio": "ギャップレス再生",
|
||||
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
|
||||
"zoom": "ズーム率",
|
||||
"minimizeToTray_description": "最小化ボタンが押された際、システムトレイに格納します",
|
||||
"hotkey_playbackPlay": "再生",
|
||||
"hotkey_togglePreviousSongFavorite": "$t(common.previousSong) をお気に入り登録/解除",
|
||||
"hotkey_togglePreviousSongFavorite": "$t(common.previousSong) のお気に入りを切り替え",
|
||||
"hotkey_volumeDown": "音量を下げる",
|
||||
"hotkey_unfavoritePreviousSong": "$t(common.previousSong) をお気に入り解除",
|
||||
"hotkey_unfavoritePreviousSong": "$t(common.previousSong) をお気に入りから解除",
|
||||
"audioPlayer_description": "再生に使用するオーディオプレーヤーを選択します",
|
||||
"globalMediaHotkeys": "グローバルメディアホットキー",
|
||||
"hotkey_globalSearch": "グローバル検索",
|
||||
"gaplessAudio_description": "MPV 向けのギャップレス再生を設定します",
|
||||
"remoteUsername_description": "リモートコントロール サーバーのユーザ名を設定します。 ユーザー名とパスワードの両方が空の場合、認証は無効になります",
|
||||
"disableAutomaticUpdates": "自動更新を無効化",
|
||||
"exitToTray_description": "アプリケーション終了ボタンが押された際、システムトレイに格納します",
|
||||
"followLyric_description": "現在の再生位置に歌詞をスクロールします",
|
||||
"hotkey_favoritePreviousSong": "$t(common.previousSong) をお気に入り",
|
||||
"hotkey_favoritePreviousSong": "$t(common.previousSong) をお気に入りに登録",
|
||||
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
|
||||
"lyricOffset": "歌詞のオフセット (ミリ秒)",
|
||||
"discordUpdateInterval_description": "更新間隔 (秒単位, 最小15秒)",
|
||||
"discordUpdateInterval_description": "更新間隔 (秒単位、最小 15 秒)",
|
||||
"fontType_optionCustom": "カスタムフォント",
|
||||
"themeDark_description": "アプリケーションに使用するダークテーマを設定します",
|
||||
"audioExclusiveMode": "オーディオ排他モード",
|
||||
@@ -109,16 +123,16 @@
|
||||
"lyricFetchProvider": "歌詞取得先",
|
||||
"language_description": "アプリケーションの言語を設定します ($t(common.restartRequired))",
|
||||
"playbackStyle_optionCrossFade": "クロスフェード",
|
||||
"hotkey_rate3": "3つ星で評価",
|
||||
"hotkey_rate3": "3 つ星で評価",
|
||||
"font": "フォント",
|
||||
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
|
||||
"themeLight_description": "アプリケーションに使用するライトテーマを設定します",
|
||||
"hotkey_toggleFullScreenPlayer": "フルスクリーンプレーヤーの切り替え",
|
||||
"hotkey_toggleFullScreenPlayer": "全画面プレーヤーに切り替え",
|
||||
"hotkey_localSearch": "ページ内検索",
|
||||
"hotkey_toggleQueue": "キューの切り替え",
|
||||
"zoom_description": "アプリケーションのズーム率を設定します",
|
||||
"remotePassword_description": "リモートコントロール サーバーのパスワードを設定します。 ログイン情報はデフォルトでセキュアな通信がされないため、個人情報と関係ないランダムなパスワードを利用してください",
|
||||
"hotkey_rate5": "5つ星で評価",
|
||||
"hotkey_rate5": "5 つ星で評価",
|
||||
"hotkey_playbackPrevious": "前のトラック",
|
||||
"showSkipButtons_description": "プレーヤーバーのスキップボタンを表示または非表示にします",
|
||||
"crossfadeDuration_description": "クロスフェード効果の時間を設定します",
|
||||
@@ -129,11 +143,11 @@
|
||||
"discordRichPresence_description": "{{discord}} Rich Presence で再生ステータスを有効にします。画像キー: {{icon}}, {{playing}}, {{paused}}",
|
||||
"mpvExecutablePath": "MPV 実行ファイルパス",
|
||||
"audioDevice": "オーディオデバイス",
|
||||
"hotkey_rate2": "2つ星で評価",
|
||||
"hotkey_rate2": "2 つ星で評価",
|
||||
"playButtonBehavior_description": "キューに曲を追加するときの再生ボタンのデフォルトの動作を設定します",
|
||||
"minimumScrobblePercentage_description": "Scrobble されるために必要な最短の再生時間 (%)",
|
||||
"exitToTray": "終了時にシステムトレイに格納",
|
||||
"hotkey_rate4": "4つ星で評価",
|
||||
"hotkey_rate4": "4 つ星で評価",
|
||||
"enableRemote": "リモートコントロール サーバーを有効化",
|
||||
"showSkipButton_description": "プレーヤーバーのスキップボタンを表示または非表示にします",
|
||||
"savePlayQueue": "再生キューを保存",
|
||||
@@ -142,9 +156,9 @@
|
||||
"fontType_description": "組み込みフォントの場合、Feishin が提供するフォントの中から 1 つ選択します。 システムフォントの場合、OS が提供する任意のフォントを選択できます。 カスタムフォントの場合、フォントファイルを自身で選択できます",
|
||||
"playButtonBehavior": "再生ボタンの動作",
|
||||
"volumeWheelStep": "音量ホイールステップ",
|
||||
"sidebarPlaylistList_description": "サイドバーでプレイリストのリストを表示/非表示にします",
|
||||
"sidebarPlaylistList_description": "サイドバーのプレイリストを表示または非表示にします",
|
||||
"accentColor": "アクセントカラー",
|
||||
"sidePlayQueueStyle_description": "サイド再生キューのスタイルを設定します",
|
||||
"sidePlayQueueStyle_description": "サイド再生キューの形式を設定します",
|
||||
"accentColor_description": "アプリケーションが利用するアクセントカラーを設定します",
|
||||
"replayGainMode": "{{ReplayGain}} モード",
|
||||
"playbackStyle_optionNormal": "通常",
|
||||
@@ -153,7 +167,7 @@
|
||||
"replayGainPreamp_description": "{{ReplayGain}} の値に適用されるプリアンプゲインを調整します",
|
||||
"hotkey_toggleRepeat": "リピートの切り替え",
|
||||
"lyricOffset_description": "歌詞のオフセットをミリ秒単位で指定します",
|
||||
"sidebarConfiguration_description": "サイドバーに表示されるアイテムと並び順を選択します",
|
||||
"sidebarConfiguration_description": "サイドバーに表示する項目と順序を選択します",
|
||||
"fontType": "フォントタイプ",
|
||||
"remotePort": "リモートコントロールサーバーのポート",
|
||||
"applicationHotkeys": "アプリケーションホットキー",
|
||||
@@ -170,16 +184,16 @@
|
||||
"sidePlayQueueStyle_optionDetached": "分離",
|
||||
"audioPlayer": "オーディオプレーヤー",
|
||||
"hotkey_zoomOut": "縮小",
|
||||
"hotkey_unfavoriteCurrentSong": "$t(common.currentSong) をお気に入り解除",
|
||||
"hotkey_unfavoriteCurrentSong": "$t(common.currentSong) をお気に入りから解除",
|
||||
"hotkey_rate0": "評価をクリア",
|
||||
"discordApplicationId": "{{discord}} アプリケーション ID",
|
||||
"applicationHotkeys_description": "アプリケーションのホットキーを設定します。チェックボックスを切り替えて、グローバルホットキーとして設定します (デスクトップのみ)",
|
||||
"hotkey_volumeMute": "音量をミュート",
|
||||
"hotkey_toggleCurrentSongFavorite": "$t(common.currentSong) をお気に入り登録/解除",
|
||||
"hotkey_toggleCurrentSongFavorite": "$t(common.currentSong) のお気に入りを切り替え",
|
||||
"remoteUsername": "リモートコントロールサーバーのユーザー名",
|
||||
"hotkey_browserBack": "ブラウザ 戻る",
|
||||
"showSkipButton": "スキップボタンを表示",
|
||||
"sidebarPlaylistList": "サイドバー プレイリスト リスト",
|
||||
"sidebarPlaylistList": "サイドバーのプレイリスト",
|
||||
"minimizeToTray": "最小化時にシステムトレイに格納",
|
||||
"skipPlaylistPage": "プレイリストページをスキップ",
|
||||
"themeDark": "テーマ (ダーク)",
|
||||
@@ -207,10 +221,10 @@
|
||||
"trayEnabled": "トレイを表示する",
|
||||
"volumeWidth_description": "音量スライダーの幅",
|
||||
"volumeWidth": "音量スライダーの幅",
|
||||
"webAudio_description": "Web Audio を使用します。これにより、リプレイゲインなどの高度な機能が有効になります。それ以外の場合は無効にしてください",
|
||||
"webAudio_description": "Web Audio を使用します。これにより、リプレイゲインなどの高度な機能が有効になります。問題が発生した場合は無効にしてください",
|
||||
"mpvExtraParameters_help": "1 行に 1 つずつ",
|
||||
"musicbrainz_description": "MusicBrainz ID が存在するアーティスト/アルバムページに MusicBrainz へのリンクを表示します",
|
||||
"musicbrainz": "MusicBrainz リンクを表示する",
|
||||
"musicbrainz_description": "MusicBrainz ID が存在するアーティストとアルバムページに MusicBrainz へのリンクを表示します",
|
||||
"musicbrainz": "MusicBrainz のリンクを表示",
|
||||
"neteaseTranslation_description": "有効にすると、利用可能な場合は NetEase から翻訳された歌詞を取得して表示します",
|
||||
"neteaseTranslation": "NetEase 翻訳歌詞を有効にする",
|
||||
"passwordStore_description": "使用するパスワード / シークレットストア。パスワードの保存に問題がある場合はこれを変更してください",
|
||||
@@ -226,8 +240,8 @@
|
||||
"imageAspectRatio": "ネイティブのカバーアートの縦横比を使用する",
|
||||
"language": "言語",
|
||||
"imageAspectRatio_description": "有効にすると、カバーアートはネイティブの縦横比で表示されます。縦横比が 1:1 でない場合、残りのスペースは空白になります",
|
||||
"lastfm_description": "アーティスト/アルバムページに Last.fm へのリンクを表示します",
|
||||
"lastfm": "Last.fm リンクを表示する",
|
||||
"lastfm_description": "アーティストとアルバムページに Last.fm へのリンクを表示します",
|
||||
"lastfm": "Last.fm のリンクを表示",
|
||||
"lastfmApiKey": "{{lastfm}} API キー",
|
||||
"homeConfiguration_description": "ホーム画面に表示する項目と表示順序を設定します",
|
||||
"homeConfiguration": "ホーム画面の設定",
|
||||
@@ -247,8 +261,8 @@
|
||||
"artistConfiguration_description": "アルバムアーティストページに表示するアイテムと順序を設定します",
|
||||
"buttonSize_description": "プレーヤーバーのボタンのサイズ",
|
||||
"buttonSize": "プレーヤーバーのボタンサイズ",
|
||||
"clearCache_description": "Feishin の「ハードクリア」。Feishin のキャッシュをクリアするだけでなく、ブラウザのキャッシュ (保存された画像やその他のアセット) も空にします。サーバーの資格情報や設定は保持されます",
|
||||
"clearCache": "ブラウザのキャッシュをクリアする",
|
||||
"clearCache_description": "Feishin の「ハードクリア」。Feishin のキャッシュをクリアするだけでなく、ブラウザーのキャッシュ (保存された画像やその他のアセット) も空にします。サーバーの資格情報や設定は保持されます",
|
||||
"clearCache": "ブラウザーのキャッシュをクリア",
|
||||
"clearCacheSuccess": "キャッシュが正常にクリアされました",
|
||||
"clearQueryCache_description": "Feishin の「ソフトクリア」。これにより、プレイリストとトラックのメタデータが更新され、保存された歌詞がリセットされます。設定、サーバーの資格情報、キャッシュされた画像は保持されます",
|
||||
"clearQueryCache": "Feishin のキャッシュをクリアする",
|
||||
@@ -259,15 +273,15 @@
|
||||
"customCss": "カスタム CSS",
|
||||
"customCssEnable_description": "カスタム CSS の記述を許可します",
|
||||
"customCssEnable": "カスタム CSS を有効にする",
|
||||
"customCssNotice": "警告: ある程度のサニタイズ (url() と content: の禁止) はありますが、カスタム CSS を使用するとインターフェースの変更によりリスクが生じる可能性があります",
|
||||
"customCssNotice": "警告: ある程度のサニタイズ (URL() と content: の禁止) はありますが、カスタム CSS を使用するとインターフェースの変更によりリスクが生じる可能性があります",
|
||||
"releaseChannel_optionBeta": "ベータ",
|
||||
"releaseChannel_optionLatest": "最新",
|
||||
"releaseChannel": "リリースチャンネル",
|
||||
"releaseChannel_description": "自動更新のために安定版リリースまたはベータ版リリースを選択してください",
|
||||
"releaseChannel_description": "自動更新のために、安定版、ベータ版、またはアルファ版 (nightly build) リリースから選択してください",
|
||||
"discordDisplayType_artistname": "アーティスト名",
|
||||
"discordDisplayType_songname": "曲名",
|
||||
"discordLinkType_description": "{{discord}} Rich Presence において、曲とアーティストのフィールドに {{lastfm}} または {{musicbrainz}} への外部リンクを追加します。{{musicbrainz}} は最も正確ですが、タグが必要でアーティストリンクを提供しません。一方、{{lastfm}} は常にリンクを提供します。追加のネットワークリクエストは発生しません",
|
||||
"discordPausedStatus": "一時停止時に Rich Presence を表示する",
|
||||
"discordPausedStatus": "一時停止時に Rich Presence を表示",
|
||||
"discordRichPresence": "{{discord}} Rich Presence",
|
||||
"discordServeImage_description": "{{discord}} Rich Presence 用のカバーアートをサーバーから共有します。Jellyfin と Navidrome でのみ利用できます。{{discord}} は bot を使用して画像を取得するため、サーバーはパブリックインターネットからアクセスできる必要があります",
|
||||
"exportImportSettings_control_exportText": "設定をエクスポート",
|
||||
@@ -275,7 +289,7 @@
|
||||
"exportImportSettings_control_title": "設定をインポート/エクスポート",
|
||||
"exportImportSettings_control_description": "JSON 経由で設定をエクスポートおよびインポートする",
|
||||
"exportImportSettings_destructiveWarning": "設定のインポートは破壊的です。下の「インポート」をクリックする前に、上記の内容を必ずご確認ください!",
|
||||
"hotkey_navigateHome": "ホームに移動",
|
||||
"hotkey_navigateHome": "ホーム画面へ移動",
|
||||
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
|
||||
"playerbarOpenDrawer": "プレーヤーバーの全画面表示切り替え",
|
||||
"transcode": "トランスコーディングを有効にする",
|
||||
@@ -291,7 +305,7 @@
|
||||
"discordDisplayType": "{{discord}} Presence 表示タイプ",
|
||||
"discordLinkType_none": "$t(common.none)",
|
||||
"discordListening_description": "Playing ではなく Listening としてステータスを表示します",
|
||||
"discordListening": "ステータスを Listening として表示する",
|
||||
"discordListening": "ステータスを Listening として表示",
|
||||
"discordPausedStatus_description": "有効にすると、プレーヤーが一時停止されているときにもステータスを表示します",
|
||||
"discordDisplayType_description": "ステータスで聴いている内容を変更します",
|
||||
"discordLinkType": "{{discord}} Presence リンク",
|
||||
@@ -302,7 +316,6 @@
|
||||
"exportImportSettings_importSuccess": "設定が正常にインポートされました!",
|
||||
"exportImportSettings_importModalTitle": "Feishin 設定をインポート",
|
||||
"exportImportSettings_importBtn": "設定をインポート",
|
||||
"autoDJ_description": "類似の曲を自動でキューに追加します",
|
||||
"autoDJ": "自動 DJ",
|
||||
"autoDJ_itemCount_description": "自動 DJ が有効なときにキューに追加しようとした曲数",
|
||||
"autoDJ_itemCount": "曲数",
|
||||
@@ -317,11 +330,11 @@
|
||||
"followCurrentSong": "現在の曲をフォロー",
|
||||
"followCurrentSong_description": "再生キューを現在再生中の曲まで自動的にスクロールします",
|
||||
"logLevel": "ログレベル",
|
||||
"logLevel_description": "表示するログの最小レベルを設定します。debug はすべてのログを表示し、error はエラーのみを表示します",
|
||||
"logLevel_optionDebug": "debug",
|
||||
"logLevel_optionError": "error",
|
||||
"logLevel_optionInfo": "info",
|
||||
"logLevel_optionWarn": "warn",
|
||||
"logLevel_description": "表示するログの最小レベルを設定します。Debug はすべてのログを表示し、Error はエラーのみを表示します",
|
||||
"logLevel_optionDebug": "Debug",
|
||||
"logLevel_optionError": "Error",
|
||||
"logLevel_optionInfo": "Info",
|
||||
"logLevel_optionWarn": "Warn",
|
||||
"playerFilters": "キューから曲をフィルタリング",
|
||||
"playerFilters_description": "以下の基準に基づいて曲をキューに追加しないようにします",
|
||||
"artistRadioCount": "アーティスト / トラックのラジオカウント",
|
||||
@@ -329,7 +342,7 @@
|
||||
"imageResolution": "画像の解像度",
|
||||
"imageResolution_description": "アプリ内で使用される画像の解像度。値を 0 に設定すると、デフォルトでネイティブ画像解像度が適用されます",
|
||||
"showLyricsInSidebar_description": "添付の再生キューに歌詞を表示するパネルが追加されます",
|
||||
"showLyricsInSidebar": "プレーヤーのサイドバーに歌詞を表示する",
|
||||
"showLyricsInSidebar": "サイドバーのプレーヤーに歌詞を表示",
|
||||
"showRatings": "星評価を表示する",
|
||||
"imageResolution_optionSidebar": "サイドバー",
|
||||
"imageResolution_optionHeader": "ヘッダー",
|
||||
@@ -340,12 +353,12 @@
|
||||
"playerbarSliderType_optionWaveform": "波形",
|
||||
"playerbarWaveformAlign": "波形アライメント",
|
||||
"showRatings_description": "インターフェースに星評価機能を表示するかどうかを制御します",
|
||||
"showVisualizerInSidebar": "プレーヤーのサイドバーにビジュアライザーを表示する",
|
||||
"combinedLyricsAndVisualizer": "プレーヤーのサイドバーに歌詞とビジュアライザーを統合する",
|
||||
"showVisualizerInSidebar": "サイドバーのプレーヤーにビジュアライザーを表示",
|
||||
"combinedLyricsAndVisualizer": "サイドバーのプレーヤーに歌詞とビジュアライザーを統合",
|
||||
"audioFadeOnStatusChange_description": "再生 / 一時停止の状態が変わったときにフェードアウトとフェードインを有効にします",
|
||||
"audioFadeOnStatusChange": "ステータス変更時の音声フェード",
|
||||
"combinedLyricsAndVisualizer_description": "歌詞とビジュアライザーを同じパネルに統合します",
|
||||
"showVisualizerInSidebar_description": "プレーヤーのサイドバーにビジュアライザーを表示するパネルが追加されます",
|
||||
"showVisualizerInSidebar_description": "サイドバーのプレーヤーにビジュアライザーを表示するパネルが追加されます",
|
||||
"queryBuilderCustomFields": "カスタムフィールド",
|
||||
"queryBuilderCustomFields_inputLabel": "ラベル",
|
||||
"queryBuilderCustomFields_inputTag": "タグ",
|
||||
@@ -360,12 +373,79 @@
|
||||
"pathReplace": "ファイルパスの置換",
|
||||
"pathReplace_description": "サーバーのデフォルトのファイルパスを置き換えます",
|
||||
"pathReplace_optionRemovePrefix": "接頭辞を削除",
|
||||
"pathReplace_optionAddPrefix": "接頭辞を追加"
|
||||
"pathReplace_optionAddPrefix": "接頭辞を追加",
|
||||
"analyticsEnable": "使用状況に基づく分析を送信する",
|
||||
"analyticsEnable_description": "匿名化された利用データは、アプリケーションの改善のために開発者に送信されます",
|
||||
"automaticUpdates": "自動更新",
|
||||
"automaticUpdates_description": "更新を自動的に確認してインストールします",
|
||||
"releaseChannel_optionAlpha": "アルファ (nightly)",
|
||||
"discordStateIcon": "再生中アイコンを表示",
|
||||
"discordStateIcon_description": "Rich Presence ステータスに小さな再生アイコンを表示します。「一時停止時に Rich Presence を表示」が有効になっている場合は、常に一時停止アイコンが表示されます",
|
||||
"sidebarPlaylistListFilterRegex_description": "この正規表現に一致するプレイリストをサイドバーから非表示にします",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "例: ^Daily Mix.*",
|
||||
"sidebarPlaylistListFilterRegex": "プレイリストフィルターの正規表現",
|
||||
"sidebarPlaylistSorting": "サイドバーでプレイリストを並べ替え",
|
||||
"sidebarPlaylistSorting_description": "デフォルトのサーバー順ではなく、ドラッグアンドドロップを使用してサイドバーでプレイリストを手動で並べ替えることができます",
|
||||
"playerItemConfiguration_description": "全画面プレーヤーに表示する項目と順序を設定します",
|
||||
"playerItemConfiguration": "プレーヤーの項目設定",
|
||||
"autosave": "再生キューを自動的に保存",
|
||||
"autosave_description": "再生キューをサーバーに自動的に保存できるようにします。これは Navidrome/Subsonic を使用している場合にのみ可能であり、再生キューを混在させることはできません。",
|
||||
"autosaveCount": "自動再生キューの保存頻度",
|
||||
"autosaveCount_description": "キューが保存されるまでにトラックが変更される回数を設定します。1 (最小値) は曲が変わるたびに保存されることを意味します",
|
||||
"useThemePrimaryShade_description": "選択したテーマで定義されたプライマリシェードをプライマリカラーのバリアントに使用します",
|
||||
"useThemePrimaryShade": "テーマのプライマリシェードを使用",
|
||||
"primaryShade": "プライマリシェード",
|
||||
"primaryShade_description": "ボタン、リンク、およびその他の主要色要素に使用されるプライマリシェード (0–9) を上書きします",
|
||||
"playerbarWaveformAlign_optionTop": "上部",
|
||||
"playerbarWaveformAlign_optionCenter": "中央",
|
||||
"playerbarWaveformAlign_optionBottom": "下部",
|
||||
"imageResolution_optionTable": "表",
|
||||
"imageResolution_optionItemCard": "アイテムカード",
|
||||
"blurExplicitImages": "露骨な画像をぼかす",
|
||||
"blurExplicitImages_description": "露骨な表現を含むタグが付けられたアルバムおよび楽曲のアートワークをぼかします",
|
||||
"enableGridMultiSelect": "グリッドの複数選択を有効にする",
|
||||
"enableGridMultiSelect_description": "有効にすると、グリッドビューで複数のアイテムを選択できます。無効にすると、グリッドアイテムの画像をクリックするとアイテムページに移動します",
|
||||
"playerbarWaveformBarWidth": "波形バーの幅",
|
||||
"playerbarWaveformGap": "波形ギャップ",
|
||||
"playerbarWaveformRadius": "波形半径",
|
||||
"hotkey_listNavigateToPage": "項目の詳細ページへ移動",
|
||||
"hotkey_listPlayDefault": "リストを再生 (デフォルト)",
|
||||
"hotkey_listPlayLast": "最後に再生",
|
||||
"hotkey_listPlayNext": "次に再生",
|
||||
"hotkey_listPlayNow": "今すぐ再生",
|
||||
"spotify_description": "アーティストとアルバムページに Spotify へのリンクを表示します",
|
||||
"spotify": "Spotify のリンクを表示",
|
||||
"nativeSpotify_description": "ブラウザーの代わりに Spotify アプリで開きます",
|
||||
"nativeSpotify": "Spotify アプリを使用",
|
||||
"listenbrainz_description": "アーティストとアルバムページに ListenBrainz へのリンクを表示します",
|
||||
"listenbrainz": "ListenBrainz のリンクを表示",
|
||||
"qobuz_description": "アーティストとアルバムページに Qobuz へのリンクを表示します",
|
||||
"qobuz": "Qobuz のリンクを表示",
|
||||
"sidePlayQueueLayout": "サイド再生キューのレイアウト",
|
||||
"sidePlayQueueLayout_description": "結合されたサイド再生キューのレイアウトを設定します",
|
||||
"sidePlayQueueLayout_optionHorizontal": "水平",
|
||||
"sidePlayQueueLayout_optionVertical": "垂直",
|
||||
"waveformLoadingDelay": "波形読み込みの遅延",
|
||||
"waveformLoadingDelay_description": "波形を読み込むまでの遅延時間(秒単位)を設定します。Web プレーヤー使用時にカクつきが発生する場合は、この値を増やしてください。",
|
||||
"playerbarWaveformStretch": "波形伸縮",
|
||||
"playerbarWaveformStretch_description": "波形を伸縮させて、利用可能なスペースを埋めます",
|
||||
"preventSuspendOnPlayback_description": "音楽再生中にアプリケーションが停止しないようにします",
|
||||
"preventSuspendOnPlayback": "再生の中断を防止する",
|
||||
"hotkey_listShowPlayingSong": "再生中の曲をリストに表示",
|
||||
"autoDJ_mode": "モード",
|
||||
"autoDJ_mode_albums": "アルバム",
|
||||
"autoDJ_mode_description": "キューに曲を追加するか、アルバム全体を追加するかを選択してください。",
|
||||
"autoDJ_mode_songs": "曲",
|
||||
"autoDJ_enabled": "Auto DJを有効にする",
|
||||
"autoDJ_albumStrategy": "アルバム選択モード",
|
||||
"autoDJ_songStrategy": "選曲モード",
|
||||
"autoDJ_strategy_option_library_random": "ランダム",
|
||||
"autoDJ_strategy_option_similar": "類似"
|
||||
},
|
||||
"action": {
|
||||
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) を編集",
|
||||
"goToPage": "ページへ移動",
|
||||
"moveToTop": "先頭に移動",
|
||||
"moveToTop": "一番上へ移動",
|
||||
"clearQueue": "キューをクリア",
|
||||
"addToFavorites": "$t(entity.favorite, {\"count\": 2}) に追加",
|
||||
"addToPlaylist": "$t(entity.playlist, {\"count\": 1}) に追加",
|
||||
@@ -376,17 +456,20 @@
|
||||
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) を削除",
|
||||
"removeFromQueue": "キューから削除",
|
||||
"deselectAll": "すべて選択解除",
|
||||
"moveToBottom": "末尾に移動",
|
||||
"setRating": "評価を設定する",
|
||||
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) エディタの切り替え",
|
||||
"moveToBottom": "一番下へ移動",
|
||||
"setRating": "評価を設定",
|
||||
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) エディターを切り替え",
|
||||
"removeFromFavorites": "$t(entity.favorite, {\"count\": 2}) から削除",
|
||||
"openIn": {
|
||||
"lastfm": "Last.fm で開く",
|
||||
"musicbrainz": "MusicBrainz で開く"
|
||||
"musicbrainz": "MusicBrainz で開く",
|
||||
"spotify": "Spotify で開く",
|
||||
"listenbrainz": "ListenBrainz で開く",
|
||||
"qobuz": "Qobuz で開く"
|
||||
},
|
||||
"moveToNext": "次",
|
||||
"moveToNext": "次へ進む",
|
||||
"downloadStarted": "{{count}} 曲のダウンロードを開始しました",
|
||||
"moveItems": "曲を移動",
|
||||
"moveItems": "項目を移動",
|
||||
"shuffle": "シャッフル",
|
||||
"shuffleAll": "すべてシャッフル",
|
||||
"shuffleSelected": "選択した曲をシャッフル",
|
||||
@@ -398,25 +481,28 @@
|
||||
"moveDown": "下に移動",
|
||||
"holdToMoveToTop": "押し続けると一番上に移動します",
|
||||
"holdToMoveToBottom": "押し続けると一番下に移動します",
|
||||
"openApplicationDirectory": "アプリケーションディレクトリを開く",
|
||||
"openApplicationDirectory": "アプリディレクトリを開く",
|
||||
"selectRangeOfItems": "項目の範囲を選択",
|
||||
"addOrRemoveFromSelection": "選択に追加または削除"
|
||||
"addOrRemoveFromSelection": "選択に追加または選択から除外",
|
||||
"goToCurrent": "現在の項目へ移動",
|
||||
"collapseAllFolders": "すべてのフォルダーを折りたたむ",
|
||||
"expandAllFolders": "すべてのフォルダーを展開する"
|
||||
},
|
||||
"common": {
|
||||
"backward": "戻る",
|
||||
"backward": "逆行",
|
||||
"increase": "増加",
|
||||
"rating": "評価",
|
||||
"bpm": "BPM",
|
||||
"refresh": "再読み込み",
|
||||
"unknown": "不明",
|
||||
"areYouSure": "実行しますか?",
|
||||
"areYouSure": "実行してもよろしいですか?",
|
||||
"edit": "編集",
|
||||
"favorite": "お気に入り",
|
||||
"left": "左側",
|
||||
"save": "保存",
|
||||
"right": "右側",
|
||||
"currentSong": "現在の $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "折りたたみ",
|
||||
"collapse": "折りたたむ",
|
||||
"trackNumber": "トラック",
|
||||
"descending": "降順",
|
||||
"add": "追加",
|
||||
@@ -432,7 +518,7 @@
|
||||
"name": "名前",
|
||||
"maximize": "最大化",
|
||||
"decrease": "減少",
|
||||
"ok": "OK",
|
||||
"ok": "Ok",
|
||||
"description": "説明",
|
||||
"configure": "設定",
|
||||
"path": "パス",
|
||||
@@ -448,8 +534,8 @@
|
||||
"setting_other": "設定",
|
||||
"version": "バージョン",
|
||||
"title": "タイトル",
|
||||
"filter_other": "フィルタ",
|
||||
"filters": "フィルタ",
|
||||
"filter_other": "フィルター",
|
||||
"filters": "フィルター",
|
||||
"create": "作成",
|
||||
"bitrate": "ビットレート",
|
||||
"saveAndReplace": "保存して変更",
|
||||
@@ -458,7 +544,7 @@
|
||||
"confirm": "確認",
|
||||
"resetToDefault": "デフォルトにリセット",
|
||||
"home": "ホーム",
|
||||
"comingSoon": "近日利用可能になる予定です…",
|
||||
"comingSoon": "近日公開…",
|
||||
"reset": "リセット",
|
||||
"channel_other": "チャンネル",
|
||||
"disable": "無効",
|
||||
@@ -467,7 +553,7 @@
|
||||
"menu": "メニュー",
|
||||
"restartRequired": "再起動が必要です",
|
||||
"previousSong": "前の $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "条件にマッチするものがありません",
|
||||
"noResultsFromQuery": "クエリに一致する結果がありません",
|
||||
"quit": "終了",
|
||||
"expand": "展開",
|
||||
"search": "検索",
|
||||
@@ -477,11 +563,11 @@
|
||||
"random": "ランダム",
|
||||
"size": "サイズ",
|
||||
"biography": "バイオグラフィー",
|
||||
"note": "ノート",
|
||||
"note": "注記",
|
||||
"explicitStatus": "明示的なステータス",
|
||||
"additionalParticipants": "追加参加者",
|
||||
"newVersion": "新しいバージョン ({{version}}) がインストールされました",
|
||||
"viewReleaseNotes": "リリースノートを表示する",
|
||||
"viewReleaseNotes": "リリースノートを表示",
|
||||
"bitDepth": "ビット深度",
|
||||
"close": "閉じる",
|
||||
"codec": "コーデック",
|
||||
@@ -489,7 +575,7 @@
|
||||
"sampleRate": "サンプルレート",
|
||||
"preview": "プレビュー",
|
||||
"private": "プライベート",
|
||||
"public": "パブリック",
|
||||
"public": "公開",
|
||||
"share": "共有",
|
||||
"tags": "タグ",
|
||||
"trackGain": "トラックゲイン",
|
||||
@@ -518,19 +604,25 @@
|
||||
"clean": "クリーン",
|
||||
"filter_single": "シングル",
|
||||
"filter_multiple": "複数枚組",
|
||||
"rename": "名前を変更"
|
||||
"rename": "名前を変更",
|
||||
"newVersionAvailable": "新しいバージョンが利用可能です",
|
||||
"numberOfResults": "{{numberOfResults}} 件の結果",
|
||||
"grouping": "グループ化",
|
||||
"back": "戻る",
|
||||
"openFolder": "フォルダーを開く"
|
||||
},
|
||||
"table": {
|
||||
"config": {
|
||||
"view": {
|
||||
"table": "テーブル",
|
||||
"table": "表",
|
||||
"grid": "グリッド",
|
||||
"list": "リスト"
|
||||
"list": "リスト",
|
||||
"detail": "詳細"
|
||||
},
|
||||
"general": {
|
||||
"displayType": "表示タイプ",
|
||||
"gap": "$t(common.gap)",
|
||||
"tableColumns": "テーブル カラム",
|
||||
"tableColumns": "テーブル列",
|
||||
"autoFitColumns": "カラム長を自動調整",
|
||||
"size": "$t(common.size)",
|
||||
"itemSize": "項目のサイズ (px)",
|
||||
@@ -550,7 +642,14 @@
|
||||
"size_compact": "コンパクト",
|
||||
"size_large": "大きい",
|
||||
"pagination_itemsPerPage": "ページあたりの項目数",
|
||||
"pagination_infinite": "無限"
|
||||
"pagination_infinite": "無限",
|
||||
"pagination": "ページネーション",
|
||||
"pagination_paginate": "ページ分割",
|
||||
"showHeader": "ヘッダーを表示",
|
||||
"verticalBorders": "列の境界線",
|
||||
"rowHoverHighlight": "行ホバーハイライト",
|
||||
"alternateRowColors": "交互の行の色",
|
||||
"horizontalBorders": "行の境界線"
|
||||
},
|
||||
"label": {
|
||||
"releaseDate": "発売日",
|
||||
@@ -587,7 +686,8 @@
|
||||
"image": "画像",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"composer": "作曲家",
|
||||
"titleArtist": "$t(common.title) (アーティスト)"
|
||||
"titleArtist": "$t(common.title) (アーティスト)",
|
||||
"albumGroup": "アルバムグループ"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -596,7 +696,7 @@
|
||||
"rating": "評価",
|
||||
"favorite": "お気に入り",
|
||||
"playCount": "再生回数",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"albumCount": "アルバム",
|
||||
"releaseYear": "年",
|
||||
"lastPlayed": "最後に再生",
|
||||
"biography": "バイオグラフィー",
|
||||
@@ -605,23 +705,23 @@
|
||||
"title": "タイトル",
|
||||
"bpm": "BPM",
|
||||
"dateAdded": "追加日",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"artist": "アーティスト",
|
||||
"songCount": "トラック",
|
||||
"trackNumber": "トラック",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"genre": "ジャンル",
|
||||
"albumArtist": "アルバムアーティスト",
|
||||
"path": "パス",
|
||||
"discNumber": "ディスク",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"size": "$t(common.size)",
|
||||
"codec": "$t(common.codec)",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"channels": "チャンネル",
|
||||
"size": "サイズ",
|
||||
"codec": "コーデック",
|
||||
"bitDepth": "ビット深度",
|
||||
"sampleRate": "サンプリング周波数",
|
||||
"owner": "所有者"
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "新たなポート設定を適用するためサーバーを再起動してください",
|
||||
"remotePortWarning": "新しいポートの設定を反映させるには、サーバーを再起動してください",
|
||||
"systemFontError": "システムフォントを取得する際にエラーが発生しました",
|
||||
"playbackError": "メディアの再生開始時にエラーが発生しました",
|
||||
"remotePortError": "リモートサーバーのポート設定時にエラーが発生しました",
|
||||
@@ -631,12 +731,12 @@
|
||||
"genericError": "エラーが発生しました",
|
||||
"credentialsRequired": "ログイン情報が必要です",
|
||||
"sessionExpiredError": "セッションの有効期限が切れました",
|
||||
"remoteEnableError": "リモートサーバーを $t(common.enable) にする際にエラーが発生しました",
|
||||
"remoteEnableError": "リモートサーバーを$t(common.enable)にする際にエラーが発生しました",
|
||||
"localFontAccessDenied": "ローカルフォントへのアクセスが拒否されました",
|
||||
"serverNotSelectedError": "サーバーが選択されていません",
|
||||
"remoteDisableError": "リモートサーバーを $t(common.disable) にする際にエラーが発生しました",
|
||||
"remoteDisableError": "リモートサーバーを$t(common.disable)にする際にエラーが発生しました",
|
||||
"mpvRequired": "MPV が必要です",
|
||||
"audioDeviceFetchError": "オーディオデバイスの取得時にエラーが発生しました",
|
||||
"audioDeviceFetchError": "オーディオデバイスを取得しようとした際にエラーが発生しました",
|
||||
"invalidServer": "無効なサーバー",
|
||||
"loginRateError": "ログイン試行回数が多すぎます。数秒後に再試行してください",
|
||||
"endpointNotImplementedError": "{{serverType}} にはエンドポイント {{endpoint}} が実装されていません",
|
||||
@@ -644,12 +744,15 @@
|
||||
"networkError": "ネットワークエラーが発生しました",
|
||||
"notificationDenied": "通知の許可が拒否されました。この設定は効果がありません",
|
||||
"openError": "ファイルを開けませんでした",
|
||||
"badValue": "無効なオプション「{{value}}」。この値は存在しません",
|
||||
"badValue": "無効なオプション「{{value}}」です。この値は存在しません",
|
||||
"multipleServerSaveQueueError": "再生キューに現在のサーバーに存在しない曲が 1 曲以上あります。これはサポートされていません",
|
||||
"noNetwork": "サーバーが利用できません",
|
||||
"noNetworkDescription": "このサーバーに接続できませんでした",
|
||||
"saveQueueFailed": "キューを保存できませんでした",
|
||||
"settingsSyncError": "レンダラーとメインプロセスの設定に矛盾が見つかりました。変更を適用するにはアプリケーションを再起動してください"
|
||||
"settingsSyncError": "レンダラーとメインプロセスの設定に矛盾が見つかりました。変更を適用するにはアプリケーションを再起動してください",
|
||||
"invalidJson": "無効な JSON",
|
||||
"serverLockSingleServer": "サーバーがロックされている場合、1 つのサーバーのみが許可されます",
|
||||
"playbackPausedDueToError": "エラーのため再生が一時停止されました"
|
||||
},
|
||||
"filter": {
|
||||
"mostPlayed": "最も多く再生",
|
||||
@@ -695,7 +798,9 @@
|
||||
"id": "ID",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"sortName": "ソート名"
|
||||
"sortName": "ソート名",
|
||||
"matchAnd": "すべて",
|
||||
"matchOr": "いずれか"
|
||||
},
|
||||
"page": {
|
||||
"sidebar": {
|
||||
@@ -722,7 +827,7 @@
|
||||
"dynamicBackground": "ダイナミック背景",
|
||||
"synchronized": "同期",
|
||||
"followCurrentLyric": "歌詞を再生位置に追従",
|
||||
"opacity": "非透過率",
|
||||
"opacity": "不透明度",
|
||||
"lyricSize": "歌詞のサイズ",
|
||||
"showLyricProvider": "歌詞の提供元を表示",
|
||||
"unsynchronized": "非同期",
|
||||
@@ -731,7 +836,9 @@
|
||||
"lyricGap": "歌詞の間隔",
|
||||
"dynamicImageBlur": "画像のぼかしサイズ",
|
||||
"dynamicIsImage": "背景画像を有効にする",
|
||||
"lyricOffset": "歌詞のオフセット (ms)"
|
||||
"lyricOffset": "歌詞のオフセット (ms)",
|
||||
"lyricOpacityNonActive": "非アクティブな歌詞の不透明度",
|
||||
"lyricScaleNonActive": "非アクティブな歌詞のスケール"
|
||||
},
|
||||
"upNext": "次へ",
|
||||
"lyrics": "歌詞",
|
||||
@@ -746,7 +853,7 @@
|
||||
"manageServers": "サーバーの管理",
|
||||
"expandSidebar": "サイドバーを展開",
|
||||
"collapseSidebar": "サイドバーを折りたたむ",
|
||||
"openBrowserDevtools": "ブラウザの開発者ツールを開く",
|
||||
"openBrowserDevtools": "ブラウザーの開発者ツールを開く",
|
||||
"quit": "$t(common.quit)",
|
||||
"goBack": "戻る",
|
||||
"goForward": "進む",
|
||||
@@ -859,12 +966,16 @@
|
||||
"recentReleases": "最近のリリース",
|
||||
"viewDiscography": "ディスコグラフィーを見る",
|
||||
"topSongs": "人気曲",
|
||||
"topSongsFrom": "{{title}} からの人気曲",
|
||||
"topSongsFrom": "{{title}} の人気曲",
|
||||
"viewAll": "すべて表示",
|
||||
"viewAllTracks": "$t(entity.track, {\"count\": 2}) をすべて表示",
|
||||
"relatedArtists": "関連の $t(entity.artist, {\"count\": 2})",
|
||||
"groupingTypeAll": "すべてのリリースタイプ",
|
||||
"groupingTypePrimary": "主なリリースタイプ"
|
||||
"groupingTypePrimary": "主なリリースタイプ",
|
||||
"favoriteSongs": "お気に入りの曲",
|
||||
"topSongsCommunity": "コミュニティ",
|
||||
"favoriteSongsFrom": "{{title}} のお気に入りの曲",
|
||||
"topSongsPersonal": "個人的"
|
||||
},
|
||||
"manageServers": {
|
||||
"title": "サーバーの管理",
|
||||
@@ -898,6 +1009,11 @@
|
||||
"collections": {
|
||||
"overrideExisting": "既存のものを上書き",
|
||||
"saveAsCollection": "コレクションとして保存"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "{{stable}} 以降のコミット",
|
||||
"noNewCommits": "この範囲に新しいコミットはありません",
|
||||
"noStableReleaseToCompare": "比較可能な安定版リリースはありません"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
@@ -923,8 +1039,8 @@
|
||||
"input_name": "サーバー名",
|
||||
"success": "サーバーが追加されました",
|
||||
"input_savePassword": "パスワードを保存",
|
||||
"ignoreSsl": "SSL を無視 ($t(common.restartRequired))",
|
||||
"ignoreCors": "CORSを無視 ($t(common.restartRequired))",
|
||||
"ignoreSsl": "SSL を無視します ($t(common.restartRequired))",
|
||||
"ignoreCors": "CORS を無視します ($t(common.restartRequired))",
|
||||
"error_savePassword": "パスワードを保存する際にエラーが発生しました",
|
||||
"input_preferInstantMixDescription": "類似曲を取得するにはインスタントミックスのみを使用してください。この動作を変更するプラグインがある場合に役立ちます",
|
||||
"input_preferInstantMix": "インスタントミックスを優先する",
|
||||
@@ -938,11 +1054,12 @@
|
||||
"input_skipDuplicates": "重複をスキップ",
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} を作成する",
|
||||
"searchOrCreate": "$t(entity.playlist, {\"count\": 2}) を検索するか、入力して新しいプレイリストを作成してください"
|
||||
"searchOrCreate": "$t(entity.playlist, {\"count\": 2}) を検索するか、入力して新しいプレイリストを作成してください",
|
||||
"noneAdded": "$t(entity.playlist, {\"count\": 1}) {{playlist}} にトラックが追加されませんでした"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "サーバーをアップデート",
|
||||
"success": "サーバーがアップデートされました"
|
||||
"success": "サーバーの更新に成功しました"
|
||||
},
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "すべて一致",
|
||||
@@ -961,8 +1078,7 @@
|
||||
"editPlaylist": {
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) を編集",
|
||||
"publicJellyfinNote": "Jellyfin では、何らかの理由でプレイリストが公開されているかどうかが表示されません。公開されたままにしたい場合は、以下の項目を選択してください",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) が正常に更新されました",
|
||||
"editNote": "大規模なプレイリストの場合、手動編集は推奨されません。既存のプレイリストを上書きすることでデータ損失が発生するリスクを許容しますか?"
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) が正常に更新されました"
|
||||
},
|
||||
"shareItem": {
|
||||
"allowDownloading": "ダウンロードを許可",
|
||||
@@ -970,7 +1086,9 @@
|
||||
"setExpiration": "有効期限を設定",
|
||||
"success": "共有リンクがクリップボードにコピーされました (またはここをクリックして開きます)",
|
||||
"expireInvalid": "有効期限は将来の日時である必要があります",
|
||||
"createFailed": "共有リンクを作成できませんでした (共有は有効になっていますか?)"
|
||||
"createFailed": "共有リンクを作成できませんでした (共有は有効になっていますか?)",
|
||||
"copyToClipboard": "クリップボードにコピー: Ctrl+C、Enter",
|
||||
"successMustClick": "共有リンクが正常に作成されました。開くにはここをクリックしてください"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "プライベートモードが有効になりました。再生ステータスは外部連携から非表示になっています",
|
||||
@@ -986,7 +1104,7 @@
|
||||
"title": "ラジオ局を作成",
|
||||
"input_homepageUrl": "ホームページ URL",
|
||||
"input_name": "名前",
|
||||
"input_streamUrl": "Stream URL"
|
||||
"input_streamUrl": "ストリーム URL"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "歌詞をエクスポート",
|
||||
@@ -996,16 +1114,24 @@
|
||||
"shuffleAll": {
|
||||
"title": "ランダムに再生",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "曲が多すぎます",
|
||||
"input_limit": "何曲?",
|
||||
"input_minYear": "年から",
|
||||
"input_maxYear": "年まで",
|
||||
"input_played_optionAll": "すべてのトラック",
|
||||
"input_played_optionUnplayed": "未再生のトラックのみ",
|
||||
"input_played_optionPlayed": "再生されたトラックのみ",
|
||||
"input_played": "再生フィルター"
|
||||
"input_played": "再生フィルター",
|
||||
"input_kind_albums": "アルバム",
|
||||
"input_kind_songs": "曲",
|
||||
"input_kind": "ランダムピック",
|
||||
"input_limit_albums": "アルバムは何枚ですか?",
|
||||
"input_limit_songs": "何曲ですか?"
|
||||
},
|
||||
"saveQueue": {
|
||||
"success": "プレイキューをサーバーに保存しました"
|
||||
},
|
||||
"editRadioStation": {
|
||||
"success": "ラジオ局の更新に成功しました"
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
@@ -1047,9 +1173,15 @@
|
||||
"audiobook": "オーディオブック",
|
||||
"audioDrama": "オーディオドラマ",
|
||||
"compilation": "コンピレーション",
|
||||
"djMix": "DJ Mix",
|
||||
"djMix": "DJ ミックス",
|
||||
"demo": "デモ",
|
||||
"soundtrack": "サウンドトラック"
|
||||
"soundtrack": "サウンドトラック",
|
||||
"fieldRecording": "フィールドレコーディング",
|
||||
"interview": "インタビュー",
|
||||
"live": "ライブ",
|
||||
"mixtape": "ミックステープ",
|
||||
"remix": "リミックス",
|
||||
"spokenWord": "スポークン・ワード"
|
||||
}
|
||||
},
|
||||
"datetime": {
|
||||
@@ -1084,6 +1216,159 @@
|
||||
"notInTheLast": "より前"
|
||||
},
|
||||
"visualizer": {
|
||||
"visualizerType": "ビジュアライザーの種類"
|
||||
"visualizerType": "ビジュアライザーの種類",
|
||||
"colors": "色",
|
||||
"cyclePresets": "サイクルプリセット",
|
||||
"cycleTime": "サイクルタイム(秒)",
|
||||
"includeAllPresets": "すべてのプリセットを含める",
|
||||
"ignoredPresets": "無視されたプリセット",
|
||||
"selectedPresets": "選択されたプリセット",
|
||||
"randomizeNextPreset": "次のプリセットをランダム化",
|
||||
"blendTime": "ブレンド時間",
|
||||
"presets": "プリセット",
|
||||
"selectPreset": "プリセットを選択",
|
||||
"applyPreset": "プリセットを適用",
|
||||
"saveAsPreset": "プリセットとして保存",
|
||||
"updatePreset": "プリセットを更新",
|
||||
"copyConfiguration": "設定をコピーする",
|
||||
"pasteConfiguration": "設定を貼り付け",
|
||||
"pasteConfigurationPlaceholder": "ここに JSON 設定を貼り付けてください...",
|
||||
"pasteFromClipboard": "クリップボードから貼り付け",
|
||||
"applyConfiguration": "設定を適用",
|
||||
"configCopied": "設定をクリップボードにコピーしました",
|
||||
"configCopyFailed": "設定のコピーに失敗しました",
|
||||
"configPasted": "設定が正常に適用されました",
|
||||
"configPasteFailed": "設定の適用に失敗しました。形式を確認してください。",
|
||||
"configPasteReadFailed": "クリップボードからの読み取りに失敗しました",
|
||||
"presetName": "プリセット名",
|
||||
"presetNamePlaceholder": "プリセット名を入力",
|
||||
"general": "全般",
|
||||
"mode": "モード",
|
||||
"mode1To8": "モード 1 - 8",
|
||||
"mode10": "モード 10",
|
||||
"barSpace": "バースペース",
|
||||
"lineWidth": "線幅",
|
||||
"fillAlpha": "アルファ塗りつぶしを設定",
|
||||
"channelLayout": "チャンネルレイアウト",
|
||||
"maxFPS": "最大フレームレート",
|
||||
"opacity": "不透明度",
|
||||
"customGradients": "カスタムグラデーション",
|
||||
"addCustomGradient": "カスタムグラデーションを追加",
|
||||
"gradientName": "グラデーション名",
|
||||
"gradientNamePlaceholder": "グラデーション名",
|
||||
"vertical": "垂直",
|
||||
"horizontal": "水平",
|
||||
"colorStops": "カラー停止点の数",
|
||||
"addColor": "色を加える",
|
||||
"position": "位置",
|
||||
"level": "レベル",
|
||||
"remove": "取り除く",
|
||||
"pasteGradient": "グラデーションを貼り付け",
|
||||
"pasteGradientPlaceholder": "グラデーションの JSON をここに貼り付けてください...",
|
||||
"custom": "カスタム",
|
||||
"builtIn": "組み込み",
|
||||
"colorMode": "カラーモード",
|
||||
"gradient": "勾配",
|
||||
"gradientLeft": "左へのグラデーション",
|
||||
"gradientRight": "右へのグラデーション",
|
||||
"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": "リフレックス・アルファ",
|
||||
"reflexBrightness": "反射輝度",
|
||||
"mirror": "鏡",
|
||||
"miscellaneousSettings": "その他の設定",
|
||||
"alphaBars": "アルファバー",
|
||||
"ansiBands": "ANSI バンド",
|
||||
"ledBars": "LED バー",
|
||||
"trueLeds": "真の LED",
|
||||
"lumiBars": "ルミ・バー",
|
||||
"outlineBars": "アウトラインバー",
|
||||
"roundBars": "丸棒",
|
||||
"lowResolution": "低解像度",
|
||||
"splitGradient": "分割グラデーション",
|
||||
"showFPS": "FPS を表示",
|
||||
"showScaleX": "X 軸スケールを表示",
|
||||
"noteLabels": "注釈ラベル",
|
||||
"showScaleY": "Y 軸スケールを表示",
|
||||
"options": {
|
||||
"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": "バー・インデックス",
|
||||
"barLevel": "バーレベル"
|
||||
},
|
||||
"gradient": {
|
||||
"classic": "クラシック",
|
||||
"prism": "プリズム",
|
||||
"rainbow": "虹",
|
||||
"steelblue": "スチールブルー",
|
||||
"orangered": "オレンジレッド"
|
||||
},
|
||||
"channelLayout": {
|
||||
"single": "シングル",
|
||||
"dualCombined": "デュアルコンバインド",
|
||||
"dualHorizontal": "デュアル水平",
|
||||
"dualVertical": "デュアルバーティカル"
|
||||
},
|
||||
"frequencyScale": {
|
||||
"none": "なし",
|
||||
"bark": "樹皮スケール",
|
||||
"linear": "線形スケール",
|
||||
"log": "対数スケール",
|
||||
"mel": "メル尺度"
|
||||
},
|
||||
"weightingFilter": {
|
||||
"none": "なし",
|
||||
"a": "A",
|
||||
"b": "B",
|
||||
"c": "C",
|
||||
"d": "D",
|
||||
"z": "Z"
|
||||
}
|
||||
},
|
||||
"systemAudioConsentAllow": "許可",
|
||||
"systemAudioConsentBody": "ビジュアライザーを機能させるためには、システムオーディオへのアクセスが必要です",
|
||||
"systemAudioConsentDecline": "拒否",
|
||||
"systemAudioConsentTitle": "システムオーディオへのアクセスを許可しますか?",
|
||||
"systemAudioCaptureFailed": "キャプチャを開始できませんでした: {{message}}",
|
||||
"systemAudioNoAudioTrack": "音声トラックが返されませんでした。プロンプトが表示されたら、音声キャプチャが有効になっていることを確認してください。",
|
||||
"systemAudioExclusiveModeNotSupported": "オーディオ排他モードが有効になっている間は、ビジュアライザーは利用できません。MPV の設定でオーディオ排他モードを無効にしてから、もう一度お試しください。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,10 @@
|
||||
"removeFromPlaylist": "$t(entity.playlist, {\"count\": 1})에서 제거",
|
||||
"openIn": {
|
||||
"musicbrainz": "MusicBrainz에서 보기",
|
||||
"lastfm": "Last.fm에서 보기"
|
||||
"lastfm": "Last.fm에서 보기",
|
||||
"listenbrainz": "ListenBrainz에서 열기",
|
||||
"qobuz": "Qobuz에서 열기",
|
||||
"spotify": "Spotify에서 열기"
|
||||
},
|
||||
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) 보기",
|
||||
"setRating": "평점 지정",
|
||||
@@ -37,7 +40,10 @@
|
||||
"shuffleAll": "모두 섞기",
|
||||
"shuffleSelected": "선택항목 섞기",
|
||||
"viewMore": "더 보기",
|
||||
"openApplicationDirectory": "앱 디렉토리 열기"
|
||||
"openApplicationDirectory": "앱 디렉토리 열기",
|
||||
"goToCurrent": "현재 항목으로 이동",
|
||||
"collapseAllFolders": "모든 폴더 접기",
|
||||
"expandAllFolders": "모든 폴더 확장"
|
||||
},
|
||||
"common": {
|
||||
"translation": "번역",
|
||||
@@ -106,7 +112,7 @@
|
||||
"ascending": "오름차순",
|
||||
"areYouSure": "확실한가요?",
|
||||
"bitrate": "비트 전송률",
|
||||
"bpm": "bpm",
|
||||
"bpm": "BPM",
|
||||
"biography": "바이오그래피",
|
||||
"center": "중앙",
|
||||
"channel_other": "채널",
|
||||
@@ -127,7 +133,7 @@
|
||||
"filters": "필터",
|
||||
"noResultsFromQuery": "쿼리 결과가 없습니다",
|
||||
"note": "노트",
|
||||
"ok": "OK",
|
||||
"ok": "Ok",
|
||||
"owner": "소유자",
|
||||
"sampleRate": "샘플레이트",
|
||||
"tags": "태그",
|
||||
@@ -149,7 +155,18 @@
|
||||
"sort": "정렬",
|
||||
"gridRows": "행 그리드",
|
||||
"tableColumns": "테이블 열",
|
||||
"itemsMore": "{{count}}개 더"
|
||||
"itemsMore": "{{count}}개 더",
|
||||
"back": "뒤로",
|
||||
"example": "예",
|
||||
"openFolder": "폴더 열기",
|
||||
"filter_single": "미혼",
|
||||
"filter_multiple": "다중",
|
||||
"grouping": "그룹화",
|
||||
"mood": "기분",
|
||||
"numberOfResults": "결과 {{numberOfResults}}개",
|
||||
"retry": "다시 해 보다",
|
||||
"rename": "이름 변경",
|
||||
"newVersionAvailable": "새로운 버전이 나왔습니다"
|
||||
},
|
||||
"entity": {
|
||||
"albumWithCount_other": "{{count}} 앨범",
|
||||
@@ -197,7 +214,15 @@
|
||||
"localFontAccessDenied": "로컬 글꼴에 접근 거부되었습니다",
|
||||
"apiRouteError": "요청 보내기 실패",
|
||||
"badValue": "옵션이 없습니다 {{value}}. 이 값은 더이상 존재하지 않습니다",
|
||||
"notificationDenied": "알림에 대한 권한이 거부되었습니다. 이 설정은 변경되지 않습니다"
|
||||
"notificationDenied": "알림에 대한 권한이 거부되었습니다. 이 설정은 변경되지 않습니다",
|
||||
"invalidJson": "유효하지 않은 JSON",
|
||||
"multipleServerSaveQueueError": "재생 대기열에 현재 서버에 속하지 않은 곡이 하나 이상 포함되어 있습니다. 이는 지원되지 않습니다",
|
||||
"noNetwork": "서버를 이용할 수 없음",
|
||||
"noNetworkDescription": "이 서버에 연결할 수 없습니다",
|
||||
"playbackPausedDueToError": "오류로 인해 재생이 일시 중지되었습니다",
|
||||
"saveQueueFailed": "큐 저장 실패",
|
||||
"serverLockSingleServer": "서버가 잠겨 있을 때는 서버를 하나만 허용합니다",
|
||||
"settingsSyncError": "렌더러와 메인 프로세스의 설정 간에 불일치가 발견되었습니다. 변경 사항을 적용하려면 애플리케이션을 다시 시작하십시오"
|
||||
},
|
||||
"filter": {
|
||||
"title": "곡명",
|
||||
@@ -222,9 +247,9 @@
|
||||
"disc": "디스크",
|
||||
"bitrate": "비트 전송률",
|
||||
"biography": "바이오그래피",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"duration": "길이",
|
||||
"bpm": "bpm",
|
||||
"bpm": "BPM",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) 앨범수",
|
||||
"comment": "코멘트",
|
||||
"favorited": "즐겨찾기",
|
||||
@@ -242,7 +267,10 @@
|
||||
"songCount": "곡 갯수",
|
||||
"toYear": "년도까지",
|
||||
"trackNumber": "트랙",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"matchAnd": "그리고",
|
||||
"matchOr": "또는",
|
||||
"sortName": "이름 정렬"
|
||||
},
|
||||
"form": {
|
||||
"addServer": {
|
||||
@@ -251,14 +279,17 @@
|
||||
"input_name": "서버 이름",
|
||||
"input_password": "비밀번호",
|
||||
"input_savePassword": "비밀번호 저장하기",
|
||||
"input_url": "url",
|
||||
"input_url": "URL",
|
||||
"error_savePassword": "비밀번호를 저장하는 도중 오류가 발생했습니다",
|
||||
"ignoreCors": "CORS 무시 ($t(common.restartRequired))",
|
||||
"ignoreSsl": "SSL 무시 ($t(common.restartRequired))",
|
||||
"input_legacyAuthentication": "레거시 인증 사용",
|
||||
"input_username": "유저 이름",
|
||||
"input_preferInstantMix": "즉석 믹스 선호",
|
||||
"input_preferInstantMixDescription": "비슷한 곳을 찾기 위해 즉석 믹스를 사용합니다. 이 명령을 수정하기 위한 플러그인을 설치한 경우 유용합니다"
|
||||
"input_preferInstantMixDescription": "비슷한 곳을 찾기 위해 즉석 믹스를 사용합니다. 이 명령을 수정하기 위한 플러그인을 설치한 경우 유용합니다",
|
||||
"input_preferRemoteUrl": "공개 URL 선호",
|
||||
"input_remoteUrl": "공개 URL",
|
||||
"input_remoteUrlPlaceholder": "선택 사항: 외부 기능을 위한 공개 URL"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"input_skipDuplicates": "중복 건너뛰기",
|
||||
@@ -266,7 +297,8 @@
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"success": "$t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })에 $t(entity.trackWithCount, {\"count\": {{message}} })가 추가되었습니다",
|
||||
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} 생성",
|
||||
"searchOrCreate": "$t(entity.playlist, {\"count\": 2}) 검색 또는 입력하여 새로 만들기"
|
||||
"searchOrCreate": "$t(entity.playlist, {\"count\": 2}) 검색 또는 입력하여 새로 만들기",
|
||||
"noneAdded": "$t(entity.playlist, {\"count\": 1}) '{{playlist}}'에 트랙이 추가되지 않았습니다"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"title": "가사 검색",
|
||||
@@ -276,7 +308,11 @@
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "모두 일치",
|
||||
"input_optionMatchAny": "무엇이든 일치",
|
||||
"title": "쿼리 편집기"
|
||||
"title": "쿼리 편집기",
|
||||
"addRuleGroup": "규칙 그룹 추가",
|
||||
"removeRuleGroup": "규칙 그룹 제거",
|
||||
"resetToDefault": "기본값으로 초기화",
|
||||
"clearFilters": "필터 초기화"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) 편집",
|
||||
@@ -289,7 +325,9 @@
|
||||
"success": "클립보드에 공유 링크를 복사했습니다 (또는 열어보려면 클릭하세요)",
|
||||
"expireInvalid": "만료 날짜는 미래 날짜여야만 합니다",
|
||||
"createFailed": "공유 링크를 생성하는데 실패하였습니다 (혹시 공유하기 설정되어 있나요?)",
|
||||
"setExpiration": "만료 기간 설정하기"
|
||||
"setExpiration": "만료 기간 설정하기",
|
||||
"copyToClipboard": "클립보드로 복사: Ctrl+C, Enter",
|
||||
"successMustClick": "공유가 성공적으로 생성되었습니다. 여기를 클릭하여 여세요"
|
||||
},
|
||||
"updateServer": {
|
||||
"title": "서버 업데이트",
|
||||
@@ -312,6 +350,44 @@
|
||||
"enabled": "프라이빗 모드가 활성화되었습니다. 재생상태가 외부 서비스에 지금부터 노출되지 않습니다",
|
||||
"disabled": "프라이빗 모드가 비활성화되었습니다. 재생상태가 외부서비스에서 지금부터 표시됩니다",
|
||||
"title": "프라이빗 모드"
|
||||
},
|
||||
"largeFetchConfirmation": {
|
||||
"title": "대기열에 항목을 추가하세요",
|
||||
"description": "이 작업은 현재 필터링된 보기의 모든 항목을 추가합니다"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"success": "라디오 방송국이 성공적으로 생성되었습니다",
|
||||
"title": "라디오 방송국 만들기",
|
||||
"input_homepageUrl": "홈페이지 URL",
|
||||
"input_name": "명의",
|
||||
"input_streamUrl": "스트림 URL"
|
||||
},
|
||||
"editRadioStation": {
|
||||
"success": "라디오 방송국이 성공적으로 업데이트되었습니다"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "가사 내보내기",
|
||||
"input_synced": "동기화된 가사 내보내기",
|
||||
"input_offset": "$t(setting.lyricOffset)"
|
||||
},
|
||||
"saveQueue": {
|
||||
"success": "재생 대기열을 서버에 저장했습니다"
|
||||
},
|
||||
"shuffleAll": {
|
||||
"title": "무작위 재생",
|
||||
"input_kind_albums": "앨범",
|
||||
"input_kind_songs": "노래들",
|
||||
"input_kind": "무작위 선택",
|
||||
"input_limit_albums": "앨범이 몇 장인가요?",
|
||||
"input_limit_songs": "몇 곡인가요?",
|
||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"input_limit": "몇 곡인가요?",
|
||||
"input_minYear": "연도부터",
|
||||
"input_maxYear": "연도까지",
|
||||
"input_played": "재생 필터",
|
||||
"input_played_optionAll": "모든 트랙",
|
||||
"input_played_optionUnplayed": "재생하지 않은 트랙만",
|
||||
"input_played_optionPlayed": "재생된 트랙만"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
@@ -325,7 +401,13 @@
|
||||
"collapseSidebar": "사이드바 줄이기",
|
||||
"expandSidebar": "사이드바 확장",
|
||||
"privateModeOff": "프라이빗 모드 끄기",
|
||||
"privateModeOn": "프라이빗 모드 켜기"
|
||||
"privateModeOn": "프라이빗 모드 켜기",
|
||||
"commandPalette": "명령 팔레트 열기",
|
||||
"quit": "$t(common.quit)",
|
||||
"selectMusicFolder": "음악 폴더 선택",
|
||||
"noMusicFolder": "음악 폴더가 선택되지 않았습니다",
|
||||
"multipleMusicFolders": "{{count}}개의 음악 폴더가 선택되었습니다",
|
||||
"settings": "$t(common.setting, {\"count\": 2})"
|
||||
},
|
||||
"manageServers": {
|
||||
"title": "서버 설정하기",
|
||||
@@ -350,7 +432,9 @@
|
||||
"lyricGap": "가사 간격",
|
||||
"lyricSize": "가사 크기",
|
||||
"showLyricMatch": "가사 일치 표시",
|
||||
"showLyricProvider": "가사 제공자 표시"
|
||||
"showLyricProvider": "가사 제공자 표시",
|
||||
"lyricOpacityNonActive": "비활성 가사 불투명도",
|
||||
"lyricScaleNonActive": "비활성 서정적 척도"
|
||||
},
|
||||
"lyrics": "가사",
|
||||
"related": "관련",
|
||||
@@ -364,7 +448,27 @@
|
||||
"shareItem": "공유",
|
||||
"goToAlbum": "$t(entity.album, {\"count\": 1})으로 이동",
|
||||
"goToAlbumArtist": "$t(entity.albumArtist, {\"count\": 1})으로 이동",
|
||||
"showDetails": "추가정보"
|
||||
"showDetails": "추가정보",
|
||||
"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)",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"moveToBottom": "$t(action.moveToBottom)",
|
||||
"moveToTop": "$t(action.moveToTop)",
|
||||
"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)",
|
||||
"goTo": "이동"
|
||||
},
|
||||
"albumArtistDetail": {
|
||||
"about": "{{artist}}에 대해",
|
||||
@@ -375,7 +479,13 @@
|
||||
"topSongs": "최고의 곡들",
|
||||
"topSongsFrom": "{{title}}이 포함된 최고의 곡들",
|
||||
"viewAll": "전부 보이기",
|
||||
"viewAllTracks": "$t(entity.track, {\"count\": 2}) 전부 보이기"
|
||||
"viewAllTracks": "$t(entity.track, {\"count\": 2}) 전부 보이기",
|
||||
"favoriteSongs": "좋아하는 노래들",
|
||||
"groupingTypeAll": "모든 릴리스 유형",
|
||||
"groupingTypePrimary": "주요 릴리스 유형",
|
||||
"topSongsCommunity": "공동체",
|
||||
"topSongsPersonal": "개인의",
|
||||
"favoriteSongsFrom": "{{title}}에서 가장 좋아하는 곡들"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
@@ -386,11 +496,14 @@
|
||||
"released": "발매"
|
||||
},
|
||||
"albumList": {
|
||||
"artistAlbums": "{{artist}}의 앨범"
|
||||
"artistAlbums": "{{artist}}의 앨범",
|
||||
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) 표시",
|
||||
"showTracks": "$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2}) 표시"
|
||||
"showTracks": "$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2}) 표시",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
@@ -405,7 +518,9 @@
|
||||
"mostPlayed": "자주 플레이된 곡",
|
||||
"newlyAdded": "최근에 추가된 곡",
|
||||
"recentlyPlayed": "최근에 플레이된 곡",
|
||||
"recentlyReleased": "최근에 발매된 곡"
|
||||
"recentlyReleased": "최근에 발매된 곡",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"title": "$t(common.home)"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copyPath": "클립보드에 경로를 복사",
|
||||
@@ -420,15 +535,71 @@
|
||||
"generalTab": "일반",
|
||||
"hotkeysTab": "단축키",
|
||||
"playbackTab": "재생",
|
||||
"windowTab": "윈도우"
|
||||
"windowTab": "윈도우",
|
||||
"analytics": "해석학",
|
||||
"updates": "업데이트",
|
||||
"cache": "은닉처",
|
||||
"application": "애플리케이션",
|
||||
"queryBuilder": "쿼리 빌더",
|
||||
"theme": "테마",
|
||||
"controls": "통제 수단",
|
||||
"sidebar": "사이드바",
|
||||
"exportImport": "가져오기/내보내기",
|
||||
"audio": "오디오",
|
||||
"lyrics": "가사",
|
||||
"lyricsDisplay": "가사 표시",
|
||||
"transcoding": "트랜스코딩",
|
||||
"discord": "Discord",
|
||||
"logger": "로거",
|
||||
"playerFilters": "선수 필터"
|
||||
},
|
||||
"sidebar": {
|
||||
"myLibrary": "내 라이브러리",
|
||||
"nowPlaying": "재생중",
|
||||
"shared": "공유 $t(entity.playlist, {\"count\": 2})"
|
||||
"shared": "공유 $t(entity.playlist, {\"count\": 2})",
|
||||
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
|
||||
"albums": "$t(entity.album, {\"count\": 2})",
|
||||
"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, {\"count\": 2})",
|
||||
"playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"search": "$t(common.search)",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"artistTracks": "{{artist}}의 음악"
|
||||
"artistTracks": "{{artist}}의 음악",
|
||||
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.track, {\"count\": 2})"
|
||||
},
|
||||
"radioList": {
|
||||
"title": "라디오 방송국"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "{{stable}} 이후 커밋",
|
||||
"noNewCommits": "이 범위에 새로운 커밋이 없습니다",
|
||||
"noStableReleaseToCompare": "비교할 수 있는 안정화 릴리스가 없습니다"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "$t(entity.favorite, {\"count\": 2})"
|
||||
},
|
||||
"windowBar": {
|
||||
"paused": "(일시 정지됨) ",
|
||||
"privateMode": "(비공개 모드)"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"playlistList": {
|
||||
"title": "$t(entity.playlist, {\"count\": 2})"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "기존 항목 덮어쓰기",
|
||||
"saveAsCollection": "컬렉션으로 저장"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
@@ -458,8 +629,8 @@
|
||||
"playSimilarSongs": "비슷한 곡 재생",
|
||||
"previous": "이전",
|
||||
"queue_clear": "재생 대기열 지우기",
|
||||
"queue_moveToBottom": "선택한 곡을 가장 위로 이동",
|
||||
"queue_moveToTop": "선택한 곡을 가장 아래로 이동",
|
||||
"queue_moveToBottom": "선택한 곡을 가장 아래로 이동",
|
||||
"queue_moveToTop": "선택한 곡을 가장 위로 이동",
|
||||
"queue_remove": "선택한 항목 삭제",
|
||||
"repeat": "반복",
|
||||
"repeat_all": "모두 반복하기",
|
||||
@@ -473,7 +644,25 @@
|
||||
"toggleFullscreenPlayer": "전체화면으로 전환",
|
||||
"unfavorite": "즐겨찾기 취소",
|
||||
"pause": "멈춤",
|
||||
"viewQueue": "대기열 보기"
|
||||
"viewQueue": "대기열 보기",
|
||||
"addLastShuffled": "마지막 (섞인)",
|
||||
"addNextShuffled": "다음 (무작위)",
|
||||
"albumRadio": "앨범 라디오",
|
||||
"artistRadio": "아티스트 라디오",
|
||||
"holdToShuffle": "길게 눌러 섞기",
|
||||
"lyrics": "가사",
|
||||
"restoreQueueFromServer": "서버에서 큐 복원",
|
||||
"saveQueueToServer": "대기열을 서버에 저장",
|
||||
"trackRadio": "라디오 추적",
|
||||
"sleepTimer": "취침 타이머",
|
||||
"sleepTimer_endOfSong": "현재 곡 종료",
|
||||
"sleepTimer_endOfAlbum": "현재 앨범의 끝",
|
||||
"sleepTimer_minutes": "{{count}}분",
|
||||
"sleepTimer_hours": "{{count}}시간",
|
||||
"sleepTimer_off": "끄다",
|
||||
"sleepTimer_timeRemaining": "{{time}} 남음",
|
||||
"sleepTimer_setCustom": "타이머 설정",
|
||||
"sleepTimer_cancel": "타이머 취소"
|
||||
},
|
||||
"setting": {
|
||||
"accentColor_description": "앱의 강조색상 설정",
|
||||
@@ -482,7 +671,7 @@
|
||||
"albumBackground": "앨범 배경이미지",
|
||||
"albumBackgroundBlur_description": "앨범 배경이미지의 흐려짐 정도 조정",
|
||||
"albumBackgroundBlur": "앨범배경이미지 흐려짐 크기",
|
||||
"applicationHotkeys_description": "앱의 단축키 설정. 앱 전체에 적용되는 단축키를 설정하기 위해서는 체크박스에 체크하세요(PC만 가능)",
|
||||
"applicationHotkeys_description": "애플리케이션 단축키를 설정합니다. 체크박스를 전환하여 전역 단축키로 설정하세요(데스크톱 전용)",
|
||||
"applicationHotkeys": "앱 단축키",
|
||||
"artistBackground": "아티스트 배경이미지",
|
||||
"artistBackground_description": "아티스트 페이지에 아티스트가 포함된 배경이미지를 추가",
|
||||
@@ -492,7 +681,7 @@
|
||||
"artistConfiguration_description": "앨범아티스트 페이지에 표시할 정보 및 순서 설정",
|
||||
"audioDevice_description": "음악재생에 사용할 장치 선택(웹플레이어만 가능)",
|
||||
"audioDevice": "오디오 장치",
|
||||
"audioExclusiveMode_description": "단독재생모드 켜기. 이 모드에서는 일반적으로 시스템의 재생장치가 고정되며 MPV로만 오디오가 재생됩니다",
|
||||
"audioExclusiveMode_description": "독점 출력 모드를 활성화합니다. 이 모드에서는 일반적으로 시스템의 오디오 출력이 차단되며, 오직 mpv만이 오디오를 출력할 수 있습니다. 이 모드가 활성화된 동안에는 비주얼라이저의 시스템 오디오 캡처 기능이 작동하지 않습니다",
|
||||
"audioExclusiveMode": "오디오 단독재생모드",
|
||||
"audioPlayer_description": "재생을 위한 오디오 플레이어 선택",
|
||||
"audioPlayer": "오디오 플레이어",
|
||||
@@ -505,7 +694,8 @@
|
||||
"broadcast": "방송",
|
||||
"ep": "ep앨범",
|
||||
"other": "기타",
|
||||
"single": "싱글"
|
||||
"single": "싱글",
|
||||
"album": "$t(entity.album, {\"count\": 1})"
|
||||
},
|
||||
"secondary": {
|
||||
"audiobook": "오디오북",
|
||||
@@ -521,5 +711,35 @@
|
||||
"soundtrack": "사운드트랙",
|
||||
"spokenWord": "보컬사운드"
|
||||
}
|
||||
},
|
||||
"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": "~로 시작함"
|
||||
},
|
||||
"queryBuilder": {
|
||||
"customTags": "사용자 정의 태그"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{}
|
||||
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"common": {
|
||||
"confirm": "confirmă",
|
||||
"create": "creează",
|
||||
"biography": "biografie",
|
||||
"areYouSure": "ești sigur?",
|
||||
"no": "nu",
|
||||
"name": "nume",
|
||||
"ok": "ok",
|
||||
"note": "notă",
|
||||
"yes": "da",
|
||||
"explicit": "explicit",
|
||||
"year": "an",
|
||||
"menu": "meniu"
|
||||
"confirm": "Confirmă",
|
||||
"create": "Creează",
|
||||
"biography": "Biografie",
|
||||
"areYouSure": "Ești sigur?",
|
||||
"no": "Nu",
|
||||
"name": "Nume",
|
||||
"ok": "Ok",
|
||||
"note": "Notă",
|
||||
"yes": "Da",
|
||||
"explicit": "Explicit",
|
||||
"year": "An",
|
||||
"menu": "Meniu"
|
||||
},
|
||||
"filter": {
|
||||
"biography": "biografie"
|
||||
"biography": "Biografie"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,323 +1,323 @@
|
||||
{
|
||||
"action": {
|
||||
"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, {\"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})",
|
||||
"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, {\"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, {\"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, {\"count\": 2})",
|
||||
"downloadStarted": "startade nedladdning av {{count}} objekt",
|
||||
"moveToNext": "flytta till nästa",
|
||||
"moveUp": "flytta upp",
|
||||
"moveDown": "flytta ner",
|
||||
"holdToMoveToTop": "håll för att flytta till toppen",
|
||||
"holdToMoveToBottom": "håll för att flytta till botten",
|
||||
"moveItems": "flytta objekt",
|
||||
"shuffle": "slumpa",
|
||||
"shuffleAll": "slumpa alla",
|
||||
"shuffleSelected": "slumpa valda",
|
||||
"viewMore": "visa mer",
|
||||
"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, {\"count\": 2})",
|
||||
"downloadStarted": "Startade nedladdning av {{count}} objekt",
|
||||
"moveToNext": "Flytta till nästa",
|
||||
"moveUp": "Flytta upp",
|
||||
"moveDown": "Flytta ner",
|
||||
"holdToMoveToTop": "Håll för att flytta till toppen",
|
||||
"holdToMoveToBottom": "Håll för att flytta till botten",
|
||||
"moveItems": "Flytta objekt",
|
||||
"shuffle": "Slumpa",
|
||||
"shuffleAll": "Slumpa alla",
|
||||
"shuffleSelected": "Slumpa valda",
|
||||
"viewMore": "Visa mer",
|
||||
"openIn": {
|
||||
"lastfm": "Öppna i Last.fm",
|
||||
"musicbrainz": "Öppna i MusicBrainz"
|
||||
},
|
||||
"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",
|
||||
"openApplicationDirectory": "öppna applikationskatalog"
|
||||
"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",
|
||||
"openApplicationDirectory": "Öppna applikationskatalog"
|
||||
},
|
||||
"common": {
|
||||
"backward": "bakåt",
|
||||
"increase": "öka",
|
||||
"rating": "betyg",
|
||||
"bpm": "bpm",
|
||||
"refresh": "laddaom",
|
||||
"unknown": "okänd",
|
||||
"areYouSure": "är du säker?",
|
||||
"edit": "redigera",
|
||||
"favorite": "favorit",
|
||||
"left": "vänster",
|
||||
"save": "spara",
|
||||
"right": "höger",
|
||||
"currentSong": "aktuell $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "kollaps",
|
||||
"trackNumber": "spår",
|
||||
"descending": "fallande",
|
||||
"add": "lägg till",
|
||||
"gap": "avstånd",
|
||||
"ascending": "stigande",
|
||||
"dismiss": "avskeda",
|
||||
"year": "år",
|
||||
"manage": "hantera",
|
||||
"limit": "gräns",
|
||||
"minimize": "minimera",
|
||||
"modified": "modifierad",
|
||||
"duration": "längd",
|
||||
"name": "namn",
|
||||
"maximize": "maximera",
|
||||
"decrease": "minska",
|
||||
"ok": "ok",
|
||||
"description": "beskrivning",
|
||||
"configure": "konfigurera",
|
||||
"path": "sökväg",
|
||||
"no": "nej",
|
||||
"owner": "ägare",
|
||||
"enable": "aktivera",
|
||||
"clear": "töm",
|
||||
"forward": "framåt",
|
||||
"delete": "ta bort",
|
||||
"cancel": "avbryt",
|
||||
"forceRestartRequired": "starta om för att tillämpa ändringar... Stäng meddelandet för att starta om",
|
||||
"setting_one": "inställning",
|
||||
"backward": "Bakåt",
|
||||
"increase": "Öka",
|
||||
"rating": "Betyg",
|
||||
"bpm": "Bpm",
|
||||
"refresh": "Laddaom",
|
||||
"unknown": "Okänd",
|
||||
"areYouSure": "Är du säker?",
|
||||
"edit": "Redigera",
|
||||
"favorite": "Favorit",
|
||||
"left": "Vänster",
|
||||
"save": "Spara",
|
||||
"right": "Höger",
|
||||
"currentSong": "Aktuell $t(entity.track, {\"count\": 1})",
|
||||
"collapse": "Kollaps",
|
||||
"trackNumber": "Spår",
|
||||
"descending": "Fallande",
|
||||
"add": "Lägg till",
|
||||
"gap": "Avstånd",
|
||||
"ascending": "Stigande",
|
||||
"dismiss": "Avskeda",
|
||||
"year": "År",
|
||||
"manage": "Hantera",
|
||||
"limit": "Gräns",
|
||||
"minimize": "Minimera",
|
||||
"modified": "Modifierad",
|
||||
"duration": "Längd",
|
||||
"name": "Namn",
|
||||
"maximize": "Maximera",
|
||||
"decrease": "Minska",
|
||||
"ok": "Ok",
|
||||
"description": "Beskrivning",
|
||||
"configure": "Konfigurera",
|
||||
"path": "Sökväg",
|
||||
"no": "Nej",
|
||||
"owner": "Ägare",
|
||||
"enable": "Aktivera",
|
||||
"clear": "Töm",
|
||||
"forward": "Framåt",
|
||||
"delete": "Ta bort",
|
||||
"cancel": "Avbryt",
|
||||
"forceRestartRequired": "Starta om för att tillämpa ändringar... Stäng meddelandet för att starta om",
|
||||
"setting_one": "Inställning",
|
||||
"setting_other": "",
|
||||
"version": "version",
|
||||
"title": "titel",
|
||||
"filter_one": "filter",
|
||||
"filter_other": "filter",
|
||||
"filters": "filter",
|
||||
"create": "skapa",
|
||||
"bitrate": "bithastighet",
|
||||
"saveAndReplace": "spara och skrivöver",
|
||||
"action_one": "handling",
|
||||
"action_other": "handlingar",
|
||||
"playerMustBePaused": "spelaren måste pausas",
|
||||
"confirm": "bekräfta",
|
||||
"resetToDefault": "återställ till standard",
|
||||
"home": "hem",
|
||||
"comingSoon": "kommer snart…",
|
||||
"reset": "nollställ",
|
||||
"channel_one": "kanal",
|
||||
"channel_other": "kanaler",
|
||||
"disable": "inaktivera",
|
||||
"sortOrder": "ordning",
|
||||
"none": "ingen",
|
||||
"menu": "meny",
|
||||
"restartRequired": "omstart krävs",
|
||||
"previousSong": "föregående $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "frågan returnerade inga resultat",
|
||||
"quit": "avsluta",
|
||||
"expand": "expandera",
|
||||
"search": "sök",
|
||||
"saveAs": "spara som",
|
||||
"disc": "skiva",
|
||||
"yes": "ja",
|
||||
"random": "slumpmässig",
|
||||
"size": "storlek",
|
||||
"biography": "biografi",
|
||||
"note": "anteckning",
|
||||
"center": "center",
|
||||
"explicitStatus": "olämplig status",
|
||||
"additionalParticipants": "ytterligare medverkare",
|
||||
"newVersion": "en ny version har installerats {{version}}",
|
||||
"viewReleaseNotes": "se utgåveinformation",
|
||||
"bitDepth": "bitdjup",
|
||||
"close": "stäng",
|
||||
"codec": "kodek",
|
||||
"doNotShowAgain": "visa inte detta igen",
|
||||
"view": "visa",
|
||||
"externalLinks": "externa länkar",
|
||||
"faster": "snabbare",
|
||||
"version": "Version",
|
||||
"title": "Titel",
|
||||
"filter_one": "Filter",
|
||||
"filter_other": "Filter",
|
||||
"filters": "Filter",
|
||||
"create": "Skapa",
|
||||
"bitrate": "Bithastighet",
|
||||
"saveAndReplace": "Spara och skrivöver",
|
||||
"action_one": "Handling",
|
||||
"action_other": "Handlingar",
|
||||
"playerMustBePaused": "Spelaren måste pausas",
|
||||
"confirm": "Bekräfta",
|
||||
"resetToDefault": "Återställ till standard",
|
||||
"home": "Hem",
|
||||
"comingSoon": "Kommer snart…",
|
||||
"reset": "Nollställ",
|
||||
"channel_one": "Kanal",
|
||||
"channel_other": "Kanaler",
|
||||
"disable": "Inaktivera",
|
||||
"sortOrder": "Ordning",
|
||||
"none": "Ingen",
|
||||
"menu": "Meny",
|
||||
"restartRequired": "Omstart krävs",
|
||||
"previousSong": "Föregående $t(entity.track, {\"count\": 1})",
|
||||
"noResultsFromQuery": "Frågan returnerade inga resultat",
|
||||
"quit": "Avsluta",
|
||||
"expand": "Expandera",
|
||||
"search": "Sök",
|
||||
"saveAs": "Spara som",
|
||||
"disc": "Skiva",
|
||||
"yes": "Ja",
|
||||
"random": "Slumpmässig",
|
||||
"size": "Storlek",
|
||||
"biography": "Biografi",
|
||||
"note": "Anteckning",
|
||||
"center": "Center",
|
||||
"explicitStatus": "Olämplig status",
|
||||
"additionalParticipants": "Ytterligare medverkare",
|
||||
"newVersion": "En ny version har installerats {{version}}",
|
||||
"viewReleaseNotes": "Se utgåveinformation",
|
||||
"bitDepth": "Bitdjup",
|
||||
"close": "Stäng",
|
||||
"codec": "Kodek",
|
||||
"doNotShowAgain": "Visa inte detta igen",
|
||||
"view": "Visa",
|
||||
"externalLinks": "Externa länkar",
|
||||
"faster": "Snabbare",
|
||||
"mbid": "MusicBrainz ID",
|
||||
"noFilters": "inga filter konfigurerade",
|
||||
"preview": "förhandsvisa",
|
||||
"private": "privat",
|
||||
"public": "allmän",
|
||||
"recordLabel": "skivbolag",
|
||||
"releaseType": "utgåvetyp",
|
||||
"reload": "ladda om",
|
||||
"sampleRate": "samplingstakt",
|
||||
"slower": "långsammare",
|
||||
"share": "dela",
|
||||
"sort": "sortera",
|
||||
"tags": "taggar",
|
||||
"translation": "översättning",
|
||||
"explicit": "olämplig",
|
||||
"clean": "städad",
|
||||
"gridRows": "rutnätsrader",
|
||||
"tableColumns": "tabellkolumner",
|
||||
"noFilters": "Inga filter konfigurerade",
|
||||
"preview": "Förhandsvisa",
|
||||
"private": "Privat",
|
||||
"public": "Allmän",
|
||||
"recordLabel": "Skivbolag",
|
||||
"releaseType": "Utgåvetyp",
|
||||
"reload": "Ladda om",
|
||||
"sampleRate": "Samplingstakt",
|
||||
"slower": "Långsammare",
|
||||
"share": "Dela",
|
||||
"sort": "Sortera",
|
||||
"tags": "Taggar",
|
||||
"translation": "Översättning",
|
||||
"explicit": "Olämplig",
|
||||
"clean": "Städad",
|
||||
"gridRows": "Rutnätsrader",
|
||||
"tableColumns": "Tabellkolumner",
|
||||
"itemsMore": "{{count}} fler",
|
||||
"countSelected": "{{count}} markerade"
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "starta om servern för att tillämpa den nya porten",
|
||||
"systemFontError": "ett fel uppstod vid försök att hämta systemteckensnitt",
|
||||
"playbackError": "ett fel uppstod vid försök att spela upp media",
|
||||
"endpointNotImplementedError": "endpoint {{endpoint}} är inte implementerad för {{serverType}}",
|
||||
"remotePortError": "ett fel uppstod vid försök att ange serverporten",
|
||||
"serverRequired": "server krävs",
|
||||
"authenticationFailed": "autentiseringen misslyckades",
|
||||
"apiRouteError": "det går inte att dirigera begäran",
|
||||
"genericError": "ett fel uppstod",
|
||||
"credentialsRequired": "autentiseringsuppgifter som krävs",
|
||||
"sessionExpiredError": "din session har löpt ut",
|
||||
"remotePortWarning": "Starta om servern för att tillämpa den nya porten",
|
||||
"systemFontError": "Ett fel uppstod vid försök att hämta systemteckensnitt",
|
||||
"playbackError": "Ett fel uppstod vid försök att spela upp media",
|
||||
"endpointNotImplementedError": "Endpoint {{endpoint}} är inte implementerad för {{serverType}}",
|
||||
"remotePortError": "Ett fel uppstod vid försök att ange serverporten",
|
||||
"serverRequired": "Server krävs",
|
||||
"authenticationFailed": "Autentiseringen misslyckades",
|
||||
"apiRouteError": "Det går inte att dirigera begäran",
|
||||
"genericError": "Ett fel uppstod",
|
||||
"credentialsRequired": "Autentiseringsuppgifter som krävs",
|
||||
"sessionExpiredError": "Din session har löpt ut",
|
||||
"remoteEnableError": "Ett fel uppstod vid försök att $t(common.enable) servern",
|
||||
"localFontAccessDenied": "åtkomst nekad till lokala teckensnitt",
|
||||
"serverNotSelectedError": "ingen server vald",
|
||||
"remoteDisableError": "ett fel uppstod vid försök av $t(common.disable) servern",
|
||||
"localFontAccessDenied": "Åtkomst nekad till lokala teckensnitt",
|
||||
"serverNotSelectedError": "Ingen server vald",
|
||||
"remoteDisableError": "Ett fel uppstod vid försök av $t(common.disable) servern",
|
||||
"mpvRequired": "MPV krävs",
|
||||
"audioDeviceFetchError": "ett fel uppstod vid hämtning av ljudenheter",
|
||||
"invalidServer": "ogiltig server",
|
||||
"loginRateError": "för många inloggningsförsök, försök igen om några sekunder",
|
||||
"badAlbum": "du ser denna sidan eftersom denna låten inte är en del av ett album. du ser troligtvis detta problemet för att du har en låt på toppnivån i din musikmapp. Jellyfin grupperar bara låtar om de finns i en mapp",
|
||||
"badValue": "felaktigt alternativ \"{{value}}\". detta värde existerar inte längre",
|
||||
"multipleServerSaveQueueError": "spelningskön har en eller flera låtar som inte är från den nuvarande valda servern. detta är inte stöttat",
|
||||
"networkError": "en nätverksfel uppstod",
|
||||
"notificationDenied": "åtkomst till notifieringarna var nekad. inställningen har ingen verkan",
|
||||
"openError": "kunde inte öppna filen",
|
||||
"settingsSyncError": "diskrepans hittades mellan inställningarna för renderingsprocessen och huvudprocessen. starta om applikationen för att ändringarna ska tillämpas"
|
||||
"audioDeviceFetchError": "Ett fel uppstod vid hämtning av ljudenheter",
|
||||
"invalidServer": "Ogiltig server",
|
||||
"loginRateError": "För många inloggningsförsök, försök igen om några sekunder",
|
||||
"badAlbum": "Du ser denna sidan eftersom denna låten inte är en del av ett album. du ser troligtvis detta problemet för att du har en låt på toppnivån i din musikmapp. Jellyfin grupperar bara låtar om de finns i en mapp",
|
||||
"badValue": "Felaktigt alternativ \"{{value}}\". detta värde existerar inte längre",
|
||||
"multipleServerSaveQueueError": "Spelningskön har en eller flera låtar som inte är från den nuvarande valda servern. detta är inte stöttat",
|
||||
"networkError": "En nätverksfel uppstod",
|
||||
"notificationDenied": "Åtkomst till notifieringarna var nekad. inställningen har ingen verkan",
|
||||
"openError": "Kunde inte öppna filen",
|
||||
"settingsSyncError": "Diskrepans hittades mellan inställningarna för renderingsprocessen och huvudprocessen. starta om applikationen för att ändringarna ska tillämpas"
|
||||
},
|
||||
"filter": {
|
||||
"mostPlayed": "mest spelade",
|
||||
"comment": "kommentar",
|
||||
"playCount": "antal spelningar",
|
||||
"recentlyUpdated": "nyligen uppdaterad",
|
||||
"mostPlayed": "Mest spelade",
|
||||
"comment": "Kommentar",
|
||||
"playCount": "Antal spelningar",
|
||||
"recentlyUpdated": "Nyligen uppdaterad",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"isCompilation": "är kompilering",
|
||||
"recentlyPlayed": "nyligen spelad",
|
||||
"isRated": "är betygsatt",
|
||||
"isCompilation": "Är kompilering",
|
||||
"recentlyPlayed": "Nyligen spelad",
|
||||
"isRated": "Är betygsatt",
|
||||
"owner": "$t(common.owner)",
|
||||
"title": "titel",
|
||||
"rating": "betyg",
|
||||
"search": "sök",
|
||||
"bitrate": "bithastighet",
|
||||
"title": "Titel",
|
||||
"rating": "Betyg",
|
||||
"search": "Sök",
|
||||
"bitrate": "Bithastighet",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"recentlyAdded": "nyligen tillagda",
|
||||
"note": "anteckning",
|
||||
"name": "namn",
|
||||
"dateAdded": "datum tillagt",
|
||||
"releaseDate": "utgivningsdag",
|
||||
"communityRating": "betyg från communityn",
|
||||
"path": "sökväg",
|
||||
"favorited": "favoritmärkt",
|
||||
"recentlyAdded": "Nyligen tillagda",
|
||||
"note": "Anteckning",
|
||||
"name": "Namn",
|
||||
"dateAdded": "Datum tillagt",
|
||||
"releaseDate": "Utgivningsdag",
|
||||
"communityRating": "Betyg från communityn",
|
||||
"path": "Sökväg",
|
||||
"favorited": "Favoritmärkt",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"isRecentlyPlayed": "spelas nyligen",
|
||||
"isFavorited": "är favoritmärkt",
|
||||
"bpm": "bpm",
|
||||
"releaseYear": "utgivningsår",
|
||||
"id": "id",
|
||||
"disc": "skiva",
|
||||
"biography": "biografi",
|
||||
"isRecentlyPlayed": "Spelas nyligen",
|
||||
"isFavorited": "Är favoritmärkt",
|
||||
"bpm": "Bpm",
|
||||
"releaseYear": "Utgivningsår",
|
||||
"id": "Id",
|
||||
"disc": "Skiva",
|
||||
"biography": "Biografi",
|
||||
"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",
|
||||
"duration": "Längd",
|
||||
"isPublic": "Är offentlig",
|
||||
"random": "Slumpmässig",
|
||||
"lastPlayed": "Senast spelad",
|
||||
"toYear": "Till år",
|
||||
"fromYear": "Från år",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"trackNumber": "spår",
|
||||
"songCount": "sångräkning",
|
||||
"criticRating": "kritikerbetyg",
|
||||
"trackNumber": "Spår",
|
||||
"songCount": "Sångräkning",
|
||||
"criticRating": "Kritikerbetyg",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2}) antal",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
},
|
||||
"form": {
|
||||
"deletePlaylist": {
|
||||
"title": "ta bort $t(entity.playlist, {\"count\": 1})",
|
||||
"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, {\"count\": 1})",
|
||||
"input_public": "offentlig",
|
||||
"title": "Skapa $t(entity.playlist, {\"count\": 1})",
|
||||
"input_public": "Offentlig",
|
||||
"input_name": "$t(common.name)",
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) skapad",
|
||||
"input_owner": "$t(common.owner)"
|
||||
},
|
||||
"addServer": {
|
||||
"title": "lägg till server",
|
||||
"input_username": "användarnamn",
|
||||
"input_url": "länk",
|
||||
"input_password": "lösenord",
|
||||
"input_legacyAuthentication": "aktivera äldre autentisering",
|
||||
"input_name": "server namn",
|
||||
"success": "servern har lagts till",
|
||||
"input_savePassword": "spara lösenord",
|
||||
"ignoreSsl": "ignorera ssl ($t(common.restartRequired))",
|
||||
"ignoreCors": "ignorera cors ($t(common.restartRequired))",
|
||||
"error_savePassword": "ett fel uppstod när lösenordet skulle sparas",
|
||||
"input_preferInstantMix": "föredra instant mixning",
|
||||
"input_preferInstantMixDescription": "använd bara instant mixning för att få liknande låtar. användbar om du har plugin för att förändra detta beteendet"
|
||||
"title": "Lägg till server",
|
||||
"input_username": "Användarnamn",
|
||||
"input_url": "Länk",
|
||||
"input_password": "Lösenord",
|
||||
"input_legacyAuthentication": "Aktivera äldre autentisering",
|
||||
"input_name": "Server namn",
|
||||
"success": "Servern har lagts till",
|
||||
"input_savePassword": "Spara lösenord",
|
||||
"ignoreSsl": "Ignorera ssl ($t(common.restartRequired))",
|
||||
"ignoreCors": "Ignorera cors ($t(common.restartRequired))",
|
||||
"error_savePassword": "Ett fel uppstod när lösenordet skulle sparas",
|
||||
"input_preferInstantMix": "Föredra instant mixning",
|
||||
"input_preferInstantMixDescription": "Använd bara instant mixning för att få liknande låtar. användbar om du har plugin för att förändra detta beteendet"
|
||||
},
|
||||
"addToPlaylist": {
|
||||
"success": "lade till $t(entity.trackWithCount, {\"count\": {{message}} }) till $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "lägg till i $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "hoppa över dubbletter",
|
||||
"success": "Lade till $t(entity.trackWithCount, {\"count\": {{message}} }) till $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||
"title": "Lägg till i $t(entity.playlist, {\"count\": 1})",
|
||||
"input_skipDuplicates": "Hoppa över dubbletter",
|
||||
"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"
|
||||
"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",
|
||||
"success": "servern har uppdaterats"
|
||||
"title": "Uppdatera server",
|
||||
"success": "Servern har uppdaterats"
|
||||
},
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "matcha alla",
|
||||
"input_optionMatchAny": "matcha något"
|
||||
"input_optionMatchAll": "Matcha alla",
|
||||
"input_optionMatchAny": "Matcha något"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"input_name": "$t(common.name)",
|
||||
"input_artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"title": "sångtext sök"
|
||||
"title": "Sångtext sök"
|
||||
},
|
||||
"editPlaylist": {
|
||||
"title": "redigera $t(entity.playlist, {\"count\": 1})",
|
||||
"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": {
|
||||
"title": "lägg till objekt till kön",
|
||||
"title": "Lägg till objekt till kön",
|
||||
"description": "Åtgärden kommer att lägga till alla objekt till den nuvarande filtrerade vyn"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"success": "radiostation skapades",
|
||||
"title": "skapa radiostation",
|
||||
"input_homepageUrl": "hemside-URL",
|
||||
"input_name": "namn",
|
||||
"input_streamUrl": "stream url"
|
||||
"success": "Radiostation skapades",
|
||||
"title": "Skapa radiostation",
|
||||
"input_homepageUrl": "Hemside-URL",
|
||||
"input_name": "Namn",
|
||||
"input_streamUrl": "Stream url"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
"fullscreenPlayer": {
|
||||
"config": {
|
||||
"showLyricMatch": "Visa låttext matchning",
|
||||
"dynamicBackground": "dynamisk bakgrund",
|
||||
"followCurrentLyric": "följ aktuell låttext",
|
||||
"opacity": "ogenomskinlighet",
|
||||
"lyricSize": "låttext storlek",
|
||||
"lyricAlignment": "låttext justering",
|
||||
"lyricGap": "låttext mellanrum",
|
||||
"synchronized": "synkroniserad",
|
||||
"showLyricProvider": "visa sångtextleverantör",
|
||||
"unsynchronized": "osynkroniserad"
|
||||
"dynamicBackground": "Dynamisk bakgrund",
|
||||
"followCurrentLyric": "Följ aktuell låttext",
|
||||
"opacity": "Ogenomskinlighet",
|
||||
"lyricSize": "Låttext storlek",
|
||||
"lyricAlignment": "Låttext justering",
|
||||
"lyricGap": "Låttext mellanrum",
|
||||
"synchronized": "Synkroniserad",
|
||||
"showLyricProvider": "Visa sångtextleverantör",
|
||||
"unsynchronized": "Osynkroniserad"
|
||||
},
|
||||
"lyrics": "sångtext",
|
||||
"related": "relaterad"
|
||||
"lyrics": "Sångtext",
|
||||
"related": "Relaterad"
|
||||
},
|
||||
"appMenu": {
|
||||
"selectServer": "välj server",
|
||||
"version": "version {{version}}",
|
||||
"selectServer": "Välj server",
|
||||
"version": "Version {{version}}",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"manageServers": "hantera servrar",
|
||||
"expandSidebar": "expandera sidofältet",
|
||||
"openBrowserDevtools": "öppna webbläsarens utvecklingsverktyg",
|
||||
"manageServers": "Hantera servrar",
|
||||
"expandSidebar": "Expandera sidofältet",
|
||||
"openBrowserDevtools": "Öppna webbläsarens utvecklingsverktyg",
|
||||
"quit": "$t(common.quit)",
|
||||
"goBack": "gå tillbaka",
|
||||
"goForward": "gå framåt",
|
||||
"collapseSidebar": "växla sidofältet"
|
||||
"goBack": "Gå tillbaka",
|
||||
"goForward": "Gå framåt",
|
||||
"collapseSidebar": "Växla sidofältet"
|
||||
},
|
||||
"contextMenu": {
|
||||
"addToPlaylist": "$t(action.addToPlaylist)",
|
||||
@@ -336,20 +336,20 @@
|
||||
"play": "$t(player.play)",
|
||||
"numberSelected": "{{count}} vald",
|
||||
"removeFromQueue": "$t(action.removeFromQueue)",
|
||||
"download": "ladda ner",
|
||||
"download": "Ladda ner",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"moveToNext": "$t(action.moveToNext)",
|
||||
"playSimilarSongs": "$t(player.playSimilarSongs)",
|
||||
"playShuffled": "$t(player.shuffle)",
|
||||
"shareItem": "dela objekt",
|
||||
"goTo": "gå till",
|
||||
"goToAlbum": "gå till $t(entity.album, {\"count\": 1})",
|
||||
"goToAlbumArtist": "gå till $t(entity.albumArtist, {\"count\": 1})",
|
||||
"showDetails": "hämta information"
|
||||
"shareItem": "Dela objekt",
|
||||
"goTo": "Gå till",
|
||||
"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, {\"count\": 1})",
|
||||
"moreFromGeneric": "mer från {{item}}"
|
||||
"moreFromArtist": "Mer från $t(entity.artist, {\"count\": 1})",
|
||||
"moreFromGeneric": "Mer från {{item}}"
|
||||
},
|
||||
"albumArtistList": {
|
||||
"title": "$t(entity.albumArtist, {\"count\": 2})"
|
||||
@@ -358,124 +358,124 @@
|
||||
"title": "$t(entity.album, {\"count\": 2})"
|
||||
},
|
||||
"sidebar": {
|
||||
"nowPlaying": "nu spelas"
|
||||
"nowPlaying": "Nu spelas"
|
||||
},
|
||||
"home": {
|
||||
"mostPlayed": "mest spelade",
|
||||
"newlyAdded": "nytillkomna utgåvor",
|
||||
"explore": "utforska från ditt bibliotek",
|
||||
"recentlyPlayed": "nyligen spelat"
|
||||
"mostPlayed": "Mest spelade",
|
||||
"newlyAdded": "Nytillkomna utgåvor",
|
||||
"explore": "Utforska från ditt bibliotek",
|
||||
"recentlyPlayed": "Nyligen spelat"
|
||||
},
|
||||
"setting": {
|
||||
"playbackTab": "uppspelning",
|
||||
"generalTab": "allmänt",
|
||||
"hotkeysTab": "snabbtangenter",
|
||||
"windowTab": "fönster"
|
||||
"playbackTab": "Uppspelning",
|
||||
"generalTab": "Allmänt",
|
||||
"hotkeysTab": "Snabbtangenter",
|
||||
"windowTab": "Fönster"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
"serverCommands": "serverkommandon",
|
||||
"goToPage": "gå till sidan",
|
||||
"searchFor": "sök efter {{query}}"
|
||||
"serverCommands": "Serverkommandon",
|
||||
"goToPage": "Gå till sidan",
|
||||
"searchFor": "Sök efter {{query}}"
|
||||
},
|
||||
"title": "kommandon"
|
||||
"title": "Kommandon"
|
||||
},
|
||||
"manageServers": {
|
||||
"url": "URL",
|
||||
"username": "användarnamn",
|
||||
"editServerDetailsTooltip": "redigera serverinställningar",
|
||||
"removeServer": "ta bort server"
|
||||
"username": "Användarnamn",
|
||||
"editServerDetailsTooltip": "Redigera serverinställningar",
|
||||
"removeServer": "Ta bort server"
|
||||
}
|
||||
},
|
||||
"entity": {
|
||||
"playlist_one": "spellista",
|
||||
"playlist_other": "spellistor",
|
||||
"artist_one": "artist",
|
||||
"artist_other": "artister",
|
||||
"albumArtist_one": "albumartist",
|
||||
"albumArtist_other": "albumartister",
|
||||
"albumArtistCount_one": "{{count}} Albumartist",
|
||||
"albumArtistCount_other": "{{count}} Albumartister",
|
||||
"playlist_one": "Spellista",
|
||||
"playlist_other": "Spellistor",
|
||||
"artist_one": "Artist",
|
||||
"artist_other": "Artister",
|
||||
"albumArtist_one": "Albumartist",
|
||||
"albumArtist_other": "Albumartister",
|
||||
"albumArtistCount_one": "{{count}} albumartist",
|
||||
"albumArtistCount_other": "{{count}} albumartister",
|
||||
"albumWithCount_one": "{{count}} album",
|
||||
"albumWithCount_other": "{{count}} album",
|
||||
"favorite_one": "favorit",
|
||||
"favorite_other": "favoriter",
|
||||
"folder_one": "mapp",
|
||||
"folder_other": "mappar",
|
||||
"album_one": "album",
|
||||
"album_other": "album",
|
||||
"favorite_one": "Favorit",
|
||||
"favorite_other": "Favoriter",
|
||||
"folder_one": "Mapp",
|
||||
"folder_other": "Mappar",
|
||||
"album_one": "Album",
|
||||
"album_other": "Album",
|
||||
"playlistWithCount_one": "{{count}} spellista",
|
||||
"playlistWithCount_other": "{{count}} spellistor",
|
||||
"folderWithCount_one": "{{count}} mapp",
|
||||
"folderWithCount_other": "{{count}} mappar",
|
||||
"track_one": "spår",
|
||||
"track_other": "spår",
|
||||
"track_one": "Spår",
|
||||
"track_other": "Spår",
|
||||
"trackWithCount_one": "{{count}} spår",
|
||||
"trackWithCount_other": "{{count}} spår",
|
||||
"artistWithCount_one": "{{count}} artist",
|
||||
"artistWithCount_other": "{{count}} artister",
|
||||
"genre_one": "genre",
|
||||
"genre_other": "genrer",
|
||||
"genre_one": "Genre",
|
||||
"genre_other": "Genrer",
|
||||
"genreWithCount_one": "{{count}} genre",
|
||||
"genreWithCount_other": "{{count}} genrer",
|
||||
"play_one": "{{count}} spelning",
|
||||
"play_other": "{{count}} spelningar",
|
||||
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
|
||||
"song_one": "låt",
|
||||
"song_other": "låtar",
|
||||
"radioStation_one": "radiostation",
|
||||
"radioStation_other": "radiostationer",
|
||||
"smartPlaylist": "Smart $t(entity.playlist, {\"count\": 1})",
|
||||
"song_one": "Låt",
|
||||
"song_other": "Låtar",
|
||||
"radioStation_one": "Radiostation",
|
||||
"radioStation_other": "Radiostationer",
|
||||
"radioStationWithCount_one": "{{count}} radiostation",
|
||||
"radioStationWithCount_other": "{{count}} radiostationer"
|
||||
},
|
||||
"player": {
|
||||
"repeat_all": "repetera alla",
|
||||
"repeat": "repetera",
|
||||
"queue_remove": "ta bort markerad",
|
||||
"playRandom": "spela slumpmässigt",
|
||||
"previous": "föregående",
|
||||
"favorite": "favorit",
|
||||
"next": "nästa",
|
||||
"shuffle": "blanda",
|
||||
"playbackFetchNoResults": "inga låtar hittades",
|
||||
"playbackFetchInProgress": "laddar låtar…",
|
||||
"addNext": "lägg till nästa",
|
||||
"playbackSpeed": "uppspelningshastighet",
|
||||
"playbackFetchCancel": "det här tar ett tag... stäng aviseringen för att avbryta",
|
||||
"play": "spela",
|
||||
"repeat_off": "repetera inaktiverad",
|
||||
"queue_clear": "rensa kö",
|
||||
"muted": "mutad",
|
||||
"queue_moveToTop": "flytta markerad till botten",
|
||||
"queue_moveToBottom": "flytta markerad till toppen",
|
||||
"addLast": "lägg till sist",
|
||||
"mute": "muta"
|
||||
"repeat_all": "Repetera alla",
|
||||
"repeat": "Repetera",
|
||||
"queue_remove": "Ta bort markerad",
|
||||
"playRandom": "Spela slumpmässigt",
|
||||
"previous": "Föregående",
|
||||
"favorite": "Favorit",
|
||||
"next": "Nästa",
|
||||
"shuffle": "Blanda",
|
||||
"playbackFetchNoResults": "Inga låtar hittades",
|
||||
"playbackFetchInProgress": "Laddar låtar…",
|
||||
"addNext": "Lägg till nästa",
|
||||
"playbackSpeed": "Uppspelningshastighet",
|
||||
"playbackFetchCancel": "Det här tar ett tag... stäng aviseringen för att avbryta",
|
||||
"play": "Spela",
|
||||
"repeat_off": "Repetera inaktiverad",
|
||||
"queue_clear": "Rensa kö",
|
||||
"muted": "Mutad",
|
||||
"queue_moveToTop": "Flytta markerad till toppen",
|
||||
"queue_moveToBottom": "Flytta markerad till botten",
|
||||
"addLast": "Lägg till sist",
|
||||
"mute": "Muta"
|
||||
},
|
||||
"datetime": {
|
||||
"minuteShort": "min",
|
||||
"secondShort": "sek",
|
||||
"hourShort": "h",
|
||||
"dayShort": "dag"
|
||||
"minuteShort": "Min",
|
||||
"secondShort": "Sek",
|
||||
"hourShort": "H",
|
||||
"dayShort": "Dag"
|
||||
},
|
||||
"filterOperator": {
|
||||
"after": "är efter",
|
||||
"afterDate": "är efter (datum)",
|
||||
"before": "är före",
|
||||
"beforeDate": "är före (datum)",
|
||||
"contains": "innehåller",
|
||||
"endsWith": "slutar med",
|
||||
"inPlaylist": "är inom",
|
||||
"inTheLast": "är i den sista",
|
||||
"inTheRange": "är i spannet",
|
||||
"inTheRangeDate": "är i spannet (datum)",
|
||||
"is": "är",
|
||||
"isNot": "är inte",
|
||||
"isGreaterThan": "är större än",
|
||||
"isLessThan": "är mindre än",
|
||||
"matchesRegex": "matchar regex",
|
||||
"notContains": "innehåller inte",
|
||||
"notInPlaylist": "är inte inom",
|
||||
"notInTheLast": "är inte inom den sista",
|
||||
"startsWith": "startar med"
|
||||
"after": "Är efter",
|
||||
"afterDate": "Är efter (datum)",
|
||||
"before": "Är före",
|
||||
"beforeDate": "Är före (datum)",
|
||||
"contains": "Innehåller",
|
||||
"endsWith": "Slutar med",
|
||||
"inPlaylist": "Är inom",
|
||||
"inTheLast": "Är i den sista",
|
||||
"inTheRange": "Är i spannet",
|
||||
"inTheRangeDate": "Är i spannet (datum)",
|
||||
"is": "Är",
|
||||
"isNot": "Är inte",
|
||||
"isGreaterThan": "Är större än",
|
||||
"isLessThan": "Är mindre än",
|
||||
"matchesRegex": "Matchar regex",
|
||||
"notContains": "Innehåller inte",
|
||||
"notInPlaylist": "Är inte inom",
|
||||
"notInTheLast": "Är inte inom den sista",
|
||||
"startsWith": "Startar med"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,23 @@
|
||||
"openIn": {
|
||||
"lastfm": "Last.fm இல் திறந்திருக்கும்",
|
||||
"musicbrainz": "மியூசிக் பிரைன்ச் திறந்திருக்கும்"
|
||||
}
|
||||
},
|
||||
"addOrRemoveFromSelection": "தேர்வில் இருந்து சேர்க்கவும் அல்லது நீக்கவும்",
|
||||
"selectRangeOfItems": "உருப்படிகளின் வரம்பைத் தேர்ந்தெடுக்கவும்",
|
||||
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) உருவாக்கவும்",
|
||||
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) நீக்கு",
|
||||
"selectAll": "அனைத்தையும் தெரிவுசெய்",
|
||||
"downloadStarted": "{{count}} உருப்படிகளின் பதிவிறக்கம் தொடங்கியது",
|
||||
"moveUp": "மேலே செல்ல",
|
||||
"moveDown": "கீழே நகர",
|
||||
"holdToMoveToTop": "மேலே செல்ல அழுத்திப் பிடிக்கவும்",
|
||||
"holdToMoveToBottom": "கீழே நகர்த்த பிடிக்கவும்",
|
||||
"moveItems": "பொருட்களை நகர்த்த",
|
||||
"shuffle": "கலக்கு",
|
||||
"shuffleAll": "அனைத்தையும் கலக்கவும்",
|
||||
"shuffleSelected": "கலக்கு தேர்ந்தெடுக்கப்பட்டது",
|
||||
"viewMore": "மேலும் பார்க்க",
|
||||
"openApplicationDirectory": "பயன்பாட்டு கோப்பகத்தைத் திறக்கவும்"
|
||||
},
|
||||
"common": {
|
||||
"description": "விவரம்",
|
||||
@@ -67,7 +83,7 @@
|
||||
"expand": "விரிவாக்கு",
|
||||
"favorite": "பிடித்த",
|
||||
"filter_one": "வடிப்பி",
|
||||
"filter_other": "வடிப்பான்கள்",
|
||||
"filter_other": "வடிகட்டிகள்",
|
||||
"filters": "வடிப்பான்கள்",
|
||||
"forceRestartRequired": "மாற்றங்களைப் பயன்படுத்த மறுதொடக்கம் செய்… மறுதொடக்கம் செய்ய அறிவிப்பை மூடு",
|
||||
"forward": "முன்னோக்கி",
|
||||
@@ -101,7 +117,7 @@
|
||||
"saveAndReplace": "சேமித்து மாற்றவும்",
|
||||
"search": "தேடல்",
|
||||
"setting_one": "அமைத்தல்",
|
||||
"setting_other": "",
|
||||
"setting_other": "அமைப்புகள்",
|
||||
"share": "பங்கு",
|
||||
"size": "அளவு",
|
||||
"sortOrder": "ஒழுங்கு",
|
||||
@@ -119,7 +135,31 @@
|
||||
"viewReleaseNotes": "வெளியீட்டு குறிப்புகளைக் காண்க",
|
||||
"bitDepth": "பிட் ஆழம்",
|
||||
"sampleRate": "மாதிரி வீதம்",
|
||||
"tags": "குறிச்சொற்கள்"
|
||||
"tags": "குறிச்சொற்கள்",
|
||||
"countSelected": "{{count}} தேர்ந்தெடுக்கப்பட்டது",
|
||||
"explicitStatus": "வெளிப்படையான நிலை",
|
||||
"doNotShowAgain": "இதை மீண்டும் காட்டாதே",
|
||||
"view": "பார்வை",
|
||||
"example": "சான்று",
|
||||
"externalLinks": "வெளிப்புற இணைப்புகள்",
|
||||
"faster": "வேகமாக",
|
||||
"filter_single": "ஒற்றை",
|
||||
"filter_multiple": "பல",
|
||||
"mood": "மனநிலை",
|
||||
"noFilters": "வடிப்பான்கள் எதுவும் கட்டமைக்கப்படவில்லை",
|
||||
"private": "தனிப்பட்ட",
|
||||
"public": "பொது",
|
||||
"retry": "மீண்டும் முயற்சிக்கவும்",
|
||||
"recordLabel": "பதிவு சிட்டை",
|
||||
"releaseType": "வெளியீட்டு வகை",
|
||||
"rename": "மறுபெயரிடுங்கள்",
|
||||
"slower": "மெதுவாக",
|
||||
"sort": "வரிசைப்படுத்து",
|
||||
"explicit": "வெளிப்படையான",
|
||||
"clean": "தூய்மையான",
|
||||
"gridRows": "கட்டம் வரிசைகள்",
|
||||
"tableColumns": "அட்டவணை நெடுவரிசைகள்",
|
||||
"itemsMore": "மேலும் {{count}}"
|
||||
},
|
||||
"entity": {
|
||||
"folderWithCount_one": "{{count}} கோப்புறை",
|
||||
@@ -128,8 +168,8 @@
|
||||
"genre_other": "வகைகள்",
|
||||
"genreWithCount_one": "{{count}} வகை",
|
||||
"genreWithCount_other": "{{count}} வகைகள்",
|
||||
"album_one": "செருகேடு",
|
||||
"album_other": "செருகேடுகள்",
|
||||
"album_one": "ஆல்பம்",
|
||||
"album_other": "ஆல்பம்",
|
||||
"albumArtist_one": "ஆல்பம் கலைஞர்",
|
||||
"albumArtist_other": "ஆல்பம் கலைஞர்கள்",
|
||||
"albumArtistCount_one": "{{count}} ஆல்பம் கலைஞர்",
|
||||
@@ -140,13 +180,13 @@
|
||||
"artist_other": "கலைஞர்கள்",
|
||||
"artistWithCount_one": "{{count}} கலைஞர்",
|
||||
"artistWithCount_other": "{{count}} கலைஞர்கள்",
|
||||
"favorite_one": "பிடித்த",
|
||||
"favorite_one": "பிடித்தது",
|
||||
"favorite_other": "பிடித்தவை",
|
||||
"folder_one": "கோப்புறை",
|
||||
"folder_other": "கோப்புறைகள்",
|
||||
"playlist_one": "பிளேலிச்ட்",
|
||||
"playlist_other": "பிளேலிச்ட்கள்",
|
||||
"play_one": "{{count}} நாடகம்",
|
||||
"play_one": "{{count}} விளையாடு",
|
||||
"play_other": "{{count}} நாடகங்கள்",
|
||||
"playlistWithCount_one": "{{count}} பிளேலிச்ட்",
|
||||
"playlistWithCount_other": "{{count}} பிளேலிச்ட்கள்",
|
||||
@@ -155,8 +195,12 @@
|
||||
"track_other": "தடங்கள்",
|
||||
"song_one": "பாடல்",
|
||||
"song_other": "பாடல்கள்",
|
||||
"trackWithCount_one": "{{count}} டிராக்",
|
||||
"trackWithCount_other": "{{count}} தடங்கள்"
|
||||
"trackWithCount_one": "{{count}} தடம்",
|
||||
"trackWithCount_other": "{{count}} தடங்கள்",
|
||||
"radioStation_one": "வானொலி நிலையம்",
|
||||
"radioStation_other": "வானொலி நிலையங்கள்",
|
||||
"radioStationWithCount_one": "{{count}} வானொலி நிலையம்",
|
||||
"radioStationWithCount_other": "{{count}} வானொலி நிலையங்கள்"
|
||||
},
|
||||
"error": {
|
||||
"mpvRequired": "MPV தேவை",
|
||||
@@ -182,7 +226,14 @@
|
||||
"sessionExpiredError": "உங்கள் அமர்வு காலாவதியானது",
|
||||
"systemFontError": "கணினி எழுத்துருக்களைப் பெற முயற்சிக்கும்போது பிழை ஏற்பட்டது",
|
||||
"badValue": "தவறான விருப்பம் \"{{value}}\". இந்த மதிப்பு இனி இல்லை",
|
||||
"notificationDenied": "அறிவிப்புகளுக்கான அனுமதிகள் மறுக்கப்பட்டன. இந்த அமைப்பு எந்த விளைவையும் ஏற்படுத்தாது"
|
||||
"notificationDenied": "அறிவிப்புகளுக்கான அனுமதிகள் மறுக்கப்பட்டன. இந்த அமைப்பு எந்த விளைவையும் ஏற்படுத்தாது",
|
||||
"invalidJson": "தவறான சாதொபொகு",
|
||||
"multipleServerSaveQueueError": "நாடக வரிசையில் ஒன்று அல்லது அதற்கு மேற்பட்ட பாடல்கள் உள்ளன, அவை தற்போதைய சேவையகத்திலிருந்து இல்லை. இது ஆதரிக்கப்படவில்லை",
|
||||
"noNetwork": "சர்வர் கிடைக்கவில்லை",
|
||||
"noNetworkDescription": "இந்த சேவையகத்துடன் இணைக்க முடியவில்லை",
|
||||
"saveQueueFailed": "வரிசையைச் சேமிக்க முடியவில்லை",
|
||||
"serverLockSingleServer": "சேவையகம் பூட்டப்பட்டிருக்கும் போது ஒரு சேவையகம் மட்டுமே அனுமதிக்கப்படும்",
|
||||
"settingsSyncError": "ரெண்டரரில் உள்ள அமைப்புகளுக்கும் முக்கிய செயல்முறைக்கும் இடையே முரண்பாடுகள் கண்டறியப்பட்டன. மாற்றங்களைப் பயன்படுத்த பயன்பாட்டை மறுதொடக்கம் செய்யுங்கள்"
|
||||
},
|
||||
"filter": {
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
@@ -191,7 +242,7 @@
|
||||
"biography": "சுயசரிதை",
|
||||
"bitrate": "பிட்ரேட்",
|
||||
"bpm": "பிபிஎம்",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"comment": "கருத்து",
|
||||
"communityRating": "சமூக மதிப்பீடு",
|
||||
"path": "பாதை",
|
||||
@@ -226,7 +277,11 @@
|
||||
"songCount": "பாடல் எண்ணிக்கை",
|
||||
"title": "தலைப்பு",
|
||||
"toYear": "ஆண்டு",
|
||||
"trackNumber": "மின்தடம்"
|
||||
"trackNumber": "மின்தடம்",
|
||||
"matchAnd": "மற்றும்",
|
||||
"matchOr": "அல்லது",
|
||||
"sortName": "வரிசை பெயர்",
|
||||
"explicitStatus": "$t(common.explicitStatus)"
|
||||
},
|
||||
"form": {
|
||||
"addServer": {
|
||||
@@ -240,7 +295,12 @@
|
||||
"input_url": "முகவரி",
|
||||
"input_username": "பயனர்பெயர்",
|
||||
"success": "சேவையகம் வெற்றிகரமாக சேர்க்கப்பட்டது",
|
||||
"title": "சேவையகத்தைச் சேர்க்கவும்"
|
||||
"title": "சேவையகத்தைச் சேர்க்கவும்",
|
||||
"input_preferInstantMix": "உடனடி கலவையை விரும்புகிறது",
|
||||
"input_preferInstantMixDescription": "ஒரே மாதிரியான பாடல்களைப் பெற உடனடி கலவையை மட்டுமே பயன்படுத்தவும். இந்த நடத்தையை மாற்றும் செருகுநிரல்கள் உங்களிடம் இருந்தால் பயனுள்ளதாக இருக்கும்",
|
||||
"input_preferRemoteUrl": "பொது முகவரி ஐ விரும்பு",
|
||||
"input_remoteUrl": "பொது முகவரி",
|
||||
"input_remoteUrlPlaceholder": "விருப்பத்தேர்வு: வெளிப்புற அம்சங்களுக்கான பொது முகவரி"
|
||||
},
|
||||
"deletePlaylist": {
|
||||
"input_confirm": "உறுதிப்படுத்த $t(entity.playlist, {\"count\": 1}) பெயரைத் தட்டச்சு செய்க",
|
||||
@@ -260,7 +320,11 @@
|
||||
"queryEditor": {
|
||||
"input_optionMatchAll": "அனைத்தையும் பொருத்துங்கள்",
|
||||
"input_optionMatchAny": "எந்த பொருத்தவும்",
|
||||
"title": "வினவல் ஆசிரியர்"
|
||||
"title": "வினவல் ஆசிரியர்",
|
||||
"addRuleGroup": "விதி குழுவைச் சேர்க்கவும்",
|
||||
"removeRuleGroup": "விதி குழுவை அகற்று",
|
||||
"resetToDefault": "இயல்புநிலைக்கு மீட்டமைக்கவும்",
|
||||
"clearFilters": "தெளிவான வடிகட்டிகள்"
|
||||
},
|
||||
"shareItem": {
|
||||
"description": "விவரம்",
|
||||
@@ -268,7 +332,9 @@
|
||||
"expireInvalid": "காலாவதி எதிர்காலத்தில் இருக்க வேண்டும்",
|
||||
"allowDownloading": "பதிவிறக்க அனுமதிக்கவும்",
|
||||
"success": "இடைநிலைப்பலகைக்கு நகலெடுக்கப்பட்ட இணைப்பைப் பகிரவும் (அல்லது திறக்க இங்கே சொடுக்கு செய்க)",
|
||||
"createFailed": "பங்கை உருவாக்கத் தவறிவிட்டது (பகிர்வு இயக்கப்பட்டதா?)"
|
||||
"createFailed": "பங்கை உருவாக்கத் தவறிவிட்டது (பகிர்வு இயக்கப்பட்டதா?)",
|
||||
"copyToClipboard": "இடைநிலைப்பலகைக்கு நகலெடு: Ctrl+C, உள்ளிடவும்",
|
||||
"successMustClick": "பகிர்வு வெற்றிகரமாக உருவாக்கப்பட்டது. திறக்க இங்கே சொடுக்கு செய்யவும்"
|
||||
},
|
||||
"createPlaylist": {
|
||||
"success": "$t(entity.playlist, {\"count\": 1}) வெற்றிகரமாக உருவாக்கப்பட்டது",
|
||||
@@ -282,11 +348,48 @@
|
||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||
"input_skipDuplicates": "நகல்களைத் தவிர்க்கவும்",
|
||||
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) இதற்கு $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) சேர்க்கப்பட்டது",
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) இல் சேர்"
|
||||
"title": "$t(entity.playlist, {\"count\": 1}) இல் சேர்",
|
||||
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} உருவாக்கு",
|
||||
"searchOrCreate": "$t(entity.playlist, {\"count\": 2}) தேடவும் அல்லது புதிய ஒன்றை உருவாக்க தட்டச்சு செய்யவும்"
|
||||
},
|
||||
"updateServer": {
|
||||
"success": "சேவையகம் வெற்றிகரமாக புதுப்பிக்கப்பட்டது",
|
||||
"title": "புதுப்பிப்பு சேவையகம்"
|
||||
},
|
||||
"largeFetchConfirmation": {
|
||||
"title": "பொருட்களை வரிசையில் சேர்க்கவும்",
|
||||
"description": "இந்தச் செயல் தற்போதைய வடிகட்டப்பட்ட காட்சியில் உள்ள அனைத்து உருப்படிகளையும் சேர்க்கும்"
|
||||
},
|
||||
"createRadioStation": {
|
||||
"success": "வானொலி நிலையம் வெற்றிகரமாக உருவாக்கப்பட்டது",
|
||||
"title": "வானொலி நிலையத்தை உருவாக்குங்கள்",
|
||||
"input_homepageUrl": "முகப்பு முகவரி",
|
||||
"input_name": "பெயர்",
|
||||
"input_streamUrl": "ச்ட்ரீம் முகவரி"
|
||||
},
|
||||
"lyricsExport": {
|
||||
"export": "ஏற்றுமதி பாடல் வரிகள்",
|
||||
"input_synced": "ஒத்திசைக்கப்பட்ட பாடல் வரிகளை ஏற்றுமதி செய்யவும்",
|
||||
"input_offset": "$t(setting.lyricOffset)"
|
||||
},
|
||||
"saveQueue": {
|
||||
"success": "சேவையகத்தில் விளையாடும் வரிசை சேமிக்கப்பட்டது"
|
||||
},
|
||||
"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": "டிராக்குகளை மட்டுமே இயக்கியது"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "தனிப்பட்ட பயன்முறை இயக்கப்பட்டது, பின்னணி நிலை இப்போது வெளிப்புற ஒருங்கிணைப்புகளிலிருந்து மறைக்கப்பட்டுள்ளது",
|
||||
"disabled": "தனிப்பட்ட பயன்முறை முடக்கப்பட்டுள்ளது, இயக்கப்பட்ட வெளிப்புற ஒருங்கிணைப்புகளுக்கு இப்போது பின்னணி நிலை தெரியும்",
|
||||
"title": "தனிப்பட்ட முறை"
|
||||
}
|
||||
},
|
||||
"page": {
|
||||
@@ -299,7 +402,13 @@
|
||||
"viewAllTracks": "அனைத்தையும் காண்க $t(entity.track, {\"count\": 2})",
|
||||
"relatedArtists": "தொடர்புடைய $t(entity.artist, {\"count\": 2})",
|
||||
"topSongsFrom": "{{title}} இலிருந்து சிறந்த பாடல்கள்",
|
||||
"viewAll": "அனைத்தையும் காண்க"
|
||||
"viewAll": "அனைத்தையும் காண்க",
|
||||
"favoriteSongs": "பிடித்த பாடல்கள்",
|
||||
"groupingTypeAll": "அனைத்து வகையான வெளியீடுகள்",
|
||||
"groupingTypePrimary": "முதன்மை வெளியீட்டு வகைகள்",
|
||||
"topSongsCommunity": "சமூகம்",
|
||||
"topSongsPersonal": "தனிப்பட்ட",
|
||||
"favoriteSongsFrom": "{{title}} இலிருந்து பிடித்த பாடல்கள்"
|
||||
},
|
||||
"appMenu": {
|
||||
"goBack": "திரும்பிச் செல்லுங்கள்",
|
||||
@@ -311,7 +420,13 @@
|
||||
"quit": "$t(common.quit)",
|
||||
"selectServer": "சேவையகத்தைத் தேர்ந்தெடுக்கவும்",
|
||||
"settings": "$t(common.setting, {\"count\": 2})",
|
||||
"version": "பதிப்பு {{version}}"
|
||||
"version": "பதிப்பு {{version}}",
|
||||
"commandPalette": "கட்டளை தட்டு திறக்க",
|
||||
"privateModeOff": "தனிப்பட்ட பயன்முறையை அணைக்கவும்",
|
||||
"privateModeOn": "தனிப்பட்ட பயன்முறையை இயக்கவும்",
|
||||
"selectMusicFolder": "இசை கோப்புறையைத் தேர்ந்தெடுக்கவும்",
|
||||
"noMusicFolder": "இசை கோப்புறை எதுவும் தேர்ந்தெடுக்கப்படவில்லை",
|
||||
"multipleMusicFolders": "{{count}} இசை கோப்புறைகள் தேர்ந்தெடுக்கப்பட்டன"
|
||||
},
|
||||
"manageServers": {
|
||||
"url": "முகவரி",
|
||||
@@ -343,7 +458,11 @@
|
||||
"showDetails": "தகவலைப் பெறுங்கள்",
|
||||
"addToFavorites": "$t(action.addToFavorites)",
|
||||
"addToPlaylist": "$t(action.addToPlaylist)",
|
||||
"createPlaylist": "$t(action.createPlaylist)"
|
||||
"createPlaylist": "$t(action.createPlaylist)",
|
||||
"moveItems": "$t(action.moveItems)",
|
||||
"goTo": "செல்",
|
||||
"goToAlbum": "$t(entity.album, {\"count\": 1}) க்குச் செல்",
|
||||
"goToAlbumArtist": "$t(entity.albumArtist, {\"count\": 1}) க்குச் செல்"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"config": {
|
||||
@@ -386,7 +505,9 @@
|
||||
"mostPlayed": "அதிகம் விளையாடியது",
|
||||
"newlyAdded": "புதிதாக சேர்க்கப்பட்ட வெளியீடுகள்",
|
||||
"recentlyPlayed": "அண்மைக் காலத்தில் விளையாடியது",
|
||||
"title": "$t(common.home)"
|
||||
"title": "$t(common.home)",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"recentlyReleased": "அண்மைக் காலத்தில் வெளியானது"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copyPath": "இடைநிலைப்பலகைக்கு பாதையை நகலெடுக்கவும்",
|
||||
@@ -404,7 +525,25 @@
|
||||
"generalTab": "பொது",
|
||||
"hotkeysTab": "ஆட்கீச்",
|
||||
"playbackTab": "பின்னணி",
|
||||
"windowTab": "சாளரம்"
|
||||
"windowTab": "சாளரம்",
|
||||
"analytics": "பகுப்பாய்வு",
|
||||
"updates": "புதுப்பிப்பு",
|
||||
"cache": "தற்காலிக சேமிப்பு",
|
||||
"application": "விண்ணப்பம்",
|
||||
"queryBuilder": "வினவல் கட்டுபவர்",
|
||||
"theme": "கருப்பொருள்",
|
||||
"controls": "கட்டுப்பாடுகள்",
|
||||
"sidebar": "பக்கப்பட்டி",
|
||||
"remote": "தொலைவில்",
|
||||
"exportImport": "இறக்குமதி/ஏற்றுமதி",
|
||||
"scrobble": "சுருள்",
|
||||
"audio": "ஆடியோ",
|
||||
"lyrics": "பாடல் வரிகள்",
|
||||
"lyricsDisplay": "பாடல் வரிகள் காட்சி",
|
||||
"transcoding": "டிரான்ச்கோடிங்",
|
||||
"discord": "முரண்பாடு",
|
||||
"logger": "மரம் வெட்டுபவர்",
|
||||
"playerFilters": "பிளேயர் வடிப்பான்கள்"
|
||||
},
|
||||
"sidebar": {
|
||||
"folders": "$t(entity.folder, {\"count\": 2})",
|
||||
@@ -419,7 +558,10 @@
|
||||
"artists": "$t(entity.artist, {\"count\": 2})",
|
||||
"shared": "$t(entity.playlist, {\"count\": 2}) பகிரப்பட்டது",
|
||||
"tracks": "$t(entity.track, {\"count\": 2})",
|
||||
"myLibrary": "எனது நூலகம்"
|
||||
"myLibrary": "எனது நூலகம்",
|
||||
"collections": "சேகரிப்புகள்",
|
||||
"favorites": "$t(entity.favorite, {\"count\": 2})",
|
||||
"radio": "$t(entity.radioStation, {\"count\": 2})"
|
||||
},
|
||||
"trackList": {
|
||||
"title": "$t(entity.track, {\"count\": 2})",
|
||||
@@ -438,11 +580,33 @@
|
||||
"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": "(தனிப்பட்ட முறை)"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"collections": {
|
||||
"overrideExisting": "ஏற்கனவே உள்ளதை மேலெழுதவும்",
|
||||
"saveAsCollection": "சேகரிப்பாக சேமிக்கவும்"
|
||||
}
|
||||
},
|
||||
"player": {
|
||||
"addLast": "கடைசியாக சேர்க்கவும்",
|
||||
"addNext": "அடுத்து சேர்க்கவும்",
|
||||
"addLast": "கடைசி",
|
||||
"addNext": "அடுத்தது",
|
||||
"favorite": "பிடித்த",
|
||||
"mute": "ஒலிமுடக்கு",
|
||||
"muted": "முடக்கிய",
|
||||
@@ -455,7 +619,7 @@
|
||||
"repeat": "மீண்டும்",
|
||||
"repeat_all": "அனைத்தையும் மீண்டும் செய்யவும்",
|
||||
"repeat_off": "முடக்கப்பட்டதை மீண்டும் செய்யவும்",
|
||||
"shuffle": "விளையாட்டு மாற்றப்பட்டது",
|
||||
"shuffle": "விளையாடு (குலைக்கப்பட்டது)",
|
||||
"shuffle_off": "கலக்கு முடக்கப்பட்டது",
|
||||
"skip": "தவிர்",
|
||||
"playbackFetchCancel": "இது சிறிது நேரம் ஆகும்… ரத்து செய்ய அறிவிப்பை மூடு",
|
||||
@@ -463,15 +627,33 @@
|
||||
"playbackFetchNoResults": "பாடல்கள் எதுவும் கிடைக்கவில்லை",
|
||||
"playbackSpeed": "பிளேபேக் விரைவு",
|
||||
"playRandom": "சீரற்ற முறையில் விளையாடுங்கள்",
|
||||
"queue_moveToBottom": "மேலே தேர்ந்தெடுக்கப்பட்ட நகர்த்து",
|
||||
"queue_moveToTop": "தேர்ந்தெடுக்கப்பட்டதை கீழே நகர்த்தவும்",
|
||||
"queue_moveToBottom": "தேர்ந்தெடுக்கப்பட்டதை கீழே நகர்த்தவும்",
|
||||
"queue_moveToTop": "மேலே தேர்ந்தெடுக்கப்பட்ட நகர்த்து",
|
||||
"skip_back": "பின்னோக்கி தவிர்க்கவும்",
|
||||
"skip_forward": "முன்னோக்கி தவிர்க்கவும்",
|
||||
"stop": "நிறுத்து",
|
||||
"toggleFullscreenPlayer": "முழுத்திரை பிளேயரை மாற்றவும்",
|
||||
"unfavorite": "மாறாத",
|
||||
"pause": "இடைநிறுத்தம்",
|
||||
"viewQueue": "வரிசையைக் காண்க"
|
||||
"viewQueue": "வரிசையைக் காண்க",
|
||||
"addLastShuffled": "கடைசியாக (குறைக்கப்பட்டது)",
|
||||
"addNextShuffled": "அடுத்தது (குலைக்கப்பட்டது)",
|
||||
"albumRadio": "ஆல்பம் வானொலி",
|
||||
"artistRadio": "கலைஞர் வானொலி",
|
||||
"holdToShuffle": "கலக்க பிடி",
|
||||
"lyrics": "பாடல் வரிகள்",
|
||||
"restoreQueueFromServer": "சேவையகத்திலிருந்து வரிசையை மீட்டமை",
|
||||
"saveQueueToServer": "சேவையகத்தில் வரிசையைச் சேமிக்கவும்",
|
||||
"trackRadio": "டிராக் ரேடியோ",
|
||||
"sleepTimer": "தூக்க நேரம்",
|
||||
"sleepTimer_endOfSong": "தற்போதைய பாடலின் முடிவு",
|
||||
"sleepTimer_minutes": "{{count}} மணித்துளி",
|
||||
"sleepTimer_hours": "{{count}} மணி",
|
||||
"sleepTimer_custom": "தனிப்பயன்",
|
||||
"sleepTimer_off": "அணை",
|
||||
"sleepTimer_timeRemaining": "{{time}} மீதமுள்ளது",
|
||||
"sleepTimer_setCustom": "டைமரை அமைக்கவும்",
|
||||
"sleepTimer_cancel": "நேரங்குறிகருவி ரத்து"
|
||||
},
|
||||
"setting": {
|
||||
"accentColor": "உச்சரிப்பு நிறம்",
|
||||
@@ -480,7 +662,7 @@
|
||||
"applicationHotkeys": "பயன்பாட்டு ஆட்கீச்",
|
||||
"applicationHotkeys_description": "பயன்பாட்டு ஆட்கீசை உள்ளமைக்கவும். உலகளாவிய ஆட்ச்கியாக அமைக்க தேர்வுப்பெட்டியை மாற்றவும் (டெச்க்டாப் மட்டும்)",
|
||||
"artistConfiguration": "ஆல்பம் கலைஞர் பக்க உள்ளமைவு",
|
||||
"audioDevice_description": "பிளேபேக்கிற்கு பயன்படுத்த ஆடியோ சாதனத்தைத் தேர்ந்தெடுக்கவும் (வெப் பிளேயர் மட்டும்)",
|
||||
"audioDevice_description": "பிளேபேக்கிற்குப் பயன்படுத்த ஆடியோ சாதனத்தைத் தேர்ந்தெடுக்கவும்",
|
||||
"audioExclusiveMode": "ஆடியோ பிரத்தியேக பயன்முறை",
|
||||
"audioPlayer": "ஆடியோ பிளேயர்",
|
||||
"audioPlayer_description": "பிளேபேக்கிற்கு பயன்படுத்த ஆடியோ பிளேயரைத் தேர்ந்தெடுக்கவும்",
|
||||
@@ -531,7 +713,7 @@
|
||||
"lastfmApiKey": "{{lastfm}} பநிஇ key",
|
||||
"lastfmApiKey_description": "{{lastfm}} க்கான பநிஇ விசை. கவர் கலைக்குத் தேவை",
|
||||
"lyricFetch": "இணையத்திலிருந்து வரிகளை பெறுங்கள்",
|
||||
"lyricFetchProvider_description": "பாடல் பெற வழங்குநர்களைத் தேர்ந்தெடுக்கவும். வழங்குநர்களின் வரிசை அவர்கள் வினவப்படும் ஒழுங்கு",
|
||||
"lyricFetchProvider_description": "பாடல் வரிகளைப் பெற வழங்குநர்களைத் தேர்ந்தெடுக்கவும்",
|
||||
"lyricOffset": "பாடல் ஆஃப்செட் (எம்.எச்)",
|
||||
"minimizeToTray": "தட்டில் குறைக்கவும்",
|
||||
"minimumScrobblePercentage": "குறைந்தபட்ச துணிச்சல் காலம் (சதவீதம்)",
|
||||
@@ -609,7 +791,6 @@
|
||||
"customCssEnable": "தனிப்பயன் சிஎச்எச் ஐ இயக்கவும்",
|
||||
"customCssNotice": "எச்சரிக்கை: சில சுத்திகரிப்பு (URL () மற்றும் உள்ளடக்கத்தை அனுமதிக்காதது :) இருக்கும்போது, தனிப்பயன் சிஎச்எச் ஐப் பயன்படுத்துவது இடைமுகத்தை மாற்றுவதன் மூலம் ஆபத்துக்களை ஏற்படுத்தக்கூடும்",
|
||||
"contextMenu_description": "நீங்கள் ஒரு உருப்படியை வலது சொடுக்கு செய்யும் போது பட்டியலில் காட்டப்பட்டுள்ள உருப்படிகளை மறைக்க உங்களை அனுமதிக்கிறது. சரிபார்க்கப்படாத உருப்படிகள் மறைக்கப்படும்",
|
||||
"disableAutomaticUpdates": "தானியங்கி புதுப்பிப்புகளை முடக்கு",
|
||||
"discordApplicationId_description": "{{discord}} பணக்கார இருப்புக்கான பயன்பாட்டு ஐடி (இயல்புநிலை {{defaultId}})",
|
||||
"discordIdleStatus": "பணக்கார இருப்பு செயலற்ற நிலையைக் காட்டுங்கள்",
|
||||
"discordIdleStatus_description": "இயக்கப்பட்டால், பிளேயர் சும்மா இருக்கும்போது நிலையைப் புதுப்பிக்கவும்",
|
||||
@@ -619,7 +800,7 @@
|
||||
"enableRemote": "ரிமோட் கண்ட்ரோல் சேவையகத்தை இயக்கவும்",
|
||||
"enableRemote_description": "பயன்பாட்டைக் கட்டுப்படுத்த மற்ற சாதனங்களை அனுமதிக்க ரிமோட் கண்ட்ரோல் சேவையகத்தை இயக்குகிறது",
|
||||
"externalLinks": "வெளிப்புற இணைப்புகளைக் காட்டு",
|
||||
"externalLinks_description": "கலைஞர்/ஆல்பம் பக்கங்களில் வெளிப்புற இணைப்புகளை (last.fm, மியூசிக் ப்ரெய்ன்ச்) காண்பிக்க உதவுகிறது",
|
||||
"externalLinks_description": "கலைஞர்/ஆல்பம் பக்கங்களில் வெளிப்புற இணைப்புகளை (Last.fm, மியூசிக் ப்ரெய்ன்ச்) காண்பிக்க உதவுகிறது",
|
||||
"exitToTray": "தட்டில் வெளியேறவும்",
|
||||
"globalMediaHotkeys": "உலகளாவிய மீடியா ஆட்கீச்",
|
||||
"discordUpdateInterval": "{{discord}} பணக்கார இருப்பு புதுப்பிப்பு இடைவெளி",
|
||||
@@ -688,17 +869,143 @@
|
||||
"discordPausedStatus": "இடைநிறுத்தப்படும்போது பணக்கார இருப்பைக் காட்டுங்கள்",
|
||||
"discordPausedStatus_description": "இயக்கப்பட்டால், பிளேயர் இடைநிறுத்தப்படும்போது நிலை காண்பிக்கப்படும்",
|
||||
"discordServeImage": "சேவையகத்திலிருந்து {{discord}} படங்களை பரிமாறவும்",
|
||||
"discordServeImage_description": "{{discord}} சேவையகத்திலிருந்தே பணக்கார இருப்புக்கான கவர் கலையைப் பகிரவும், செலிஃபின் மற்றும் நுடிட்ரோம் மட்டுமே கிடைக்கும்",
|
||||
"discordServeImage_description": "சேவையகத்திலிருந்தே {{discord}} சிறந்த இருப்புக்கான கவர் ஆர்ட்டைப் பகிரவும், செல்லிஃபின் மற்றும் நவிட்ரோமுக்கு மட்டுமே கிடைக்கும். படங்களைப் பெற {{discord}} ஒரு போட்டைப் பயன்படுத்துகிறது, எனவே உங்கள் சர்வர் பொது இணையத்திலிருந்து அணுகக்கூடியதாக இருக்க வேண்டும்",
|
||||
"preferLocalLyrics": "உள்ளக பாடல்களை விரும்புங்கள்",
|
||||
"preferLocalLyrics_description": "கிடைக்கும்போது தொலைநிலை பாடல்களை விட உள்ளக பாடல்களை விரும்புங்கள்",
|
||||
"lastfm": "last.fm இணைப்புகளைக் காட்டு",
|
||||
"lastfm": "Last.fm இணைப்புகளைக் காட்டு",
|
||||
"lastfm_description": "கலைஞர்/ஆல்பம் பக்கங்களில் Last.fm க்கான இணைப்புகளைக் காட்டு",
|
||||
"musicbrainz": "மியூசிக் பிரேன்ச் இணைப்புகளைக் காட்டு",
|
||||
"musicbrainz_description": "கலைஞர்/ஆல்பம் பக்கங்களில் மியூசிக் பிரைன்ச் இணைப்புகளைக் காட்டு, அங்கு மியூசிக் பிரைன்ச் ID உள்ளது",
|
||||
"neteaseTranslation": "நெட்ச் மொழிபெயர்ப்புகளை இயக்கவும்",
|
||||
"neteaseTranslation_description": "இயக்கப்பட்டால், கிடைத்தால் நெட்சிலிருந்து மொழிபெயர்க்கப்பட்ட பாடல்களைப் பெறுகிறது மற்றும் காட்சிப்படுத்துகிறது",
|
||||
"preservePitch": "சுருதியைப் பாதுகாக்கவும்",
|
||||
"preservePitch_description": "பின்னணி வேகத்தை மாற்றும்போது சுருதியைப் பாதுகாக்கிறது"
|
||||
"preservePitch_description": "பின்னணி வேகத்தை மாற்றும்போது சுருதியைப் பாதுகாக்கிறது",
|
||||
"autoDJ": "ஆட்டோ டி.சே",
|
||||
"autoDJ_itemCount": "பொருள் எண்ணிக்கை",
|
||||
"autoDJ_itemCount_description": "ஆட்டோ DJ இயக்கப்பட்டிருக்கும் போது, வரிசையில் சேர்க்க முயற்சிக்கும் உருப்படிகளின் எண்ணிக்கை",
|
||||
"autoDJ_timing": "நேரவிவரம்",
|
||||
"autoDJ_timing_description": "ஆட்டோ டிசேக்கு முன் வரிசையில் மீதமுள்ள பாடல்களின் எண்ணிக்கை தூண்டப்படுகிறது",
|
||||
"useThemeAccentColor": "கருப்பொருள் உச்சரிப்பு நிறத்தைப் பயன்படுத்தவும்",
|
||||
"useThemeAccentColor_description": "தனிப்பயன் உச்சரிப்பு நிறத்திற்குப் பதிலாக தேர்ந்தெடுக்கப்பட்ட தீமில் வரையறுக்கப்பட்ட முதன்மை வண்ணத்தைப் பயன்படுத்தவும்",
|
||||
"analyticsDisable": "பயன்பாடு அடிப்படையிலான பகுப்பாய்வுகளில் இருந்து விலகுதல்",
|
||||
"analyticsDisable_description": "பயன்பாட்டை மேம்படுத்த உதவ டெவெலப்பருக்கு அநாமதேய பயன்பாட்டுத் தரவு அனுப்பப்படுகிறது",
|
||||
"analyticsEnable": "பயன்பாட்டு அடிப்படையிலான பகுப்பாய்வுகளை அனுப்பவும்",
|
||||
"analyticsEnable_description": "பயன்பாட்டை மேம்படுத்த உதவ டெவெலப்பருக்கு அநாமதேய பயன்பாட்டுத் தரவு அனுப்பப்படுகிறது",
|
||||
"artistBackground": "கலைஞர் பின்னணி படம்",
|
||||
"artistBackground_description": "கலைஞர் கலையை உள்ளடக்கிய கலைஞர் பக்கங்களுக்கு பின்னணி படத்தை சேர்க்கிறது",
|
||||
"artistBackgroundBlur": "கலைஞர் பின்னணி படம் மங்கலான அளவு",
|
||||
"artistBackgroundBlur_description": "கலைஞரின் பின்னணி படத்தில் பயன்படுத்தப்படும் மங்கலின் அளவை சரிசெய்கிறது",
|
||||
"artistReleaseTypeConfiguration": "கலைஞர் வெளியீட்டு வகை கட்டமைப்பு",
|
||||
"artistReleaseTypeConfiguration_description": "ஆல்பம் கலைஞர் பக்கத்தில் என்ன வெளியீட்டு வகைகள் காட்டப்படுகின்றன, எந்த வரிசையில் உள்ளன என்பதை உள்ளமைக்கவும்",
|
||||
"crossfadeStyle": "குறுக்குவழி பாணி",
|
||||
"automaticUpdates": "தானியங்கி புதுப்பிப்புகள்",
|
||||
"automaticUpdates_description": "புதுப்பிப்புகளை தானாக சரிபார்த்து நிறுவவும்",
|
||||
"releaseChannel_optionAlpha": "ஆல்பா (இரவு)",
|
||||
"releaseChannel_optionBeta": "பீட்டா",
|
||||
"releaseChannel_optionLatest": "அண்மைக் கால",
|
||||
"releaseChannel": "வெளியீடு சேனல்",
|
||||
"releaseChannel_description": "தானியங்கி புதுப்பிப்புகளுக்கு நிலையான, பீட்டா அல்லது ஆல்பா (இரவு) வெளியீடுகளுக்கு இடையே தேர்வு செய்யவும்",
|
||||
"discordDisplayType_artistname": "கலைஞர் பெயர்(கள்)",
|
||||
"discordDisplayType_description": "உங்கள் நிலையில் நீங்கள் கேட்பதை மாற்றுகிறது",
|
||||
"discordDisplayType_songname": "பாடல் பெயர்",
|
||||
"discordDisplayType": "{{discord}} இருப்பு காட்சி வகை",
|
||||
"discordLinkType_description": "{{discord}} சிறந்த முன்னிலையில் பாடல் மற்றும் கலைஞர் புலங்களுக்கு {{lastfm}} அல்லது {{musicbrainz}} வெளிப்புற இணைப்புகளைச் சேர்க்கிறது. {{musicbrainz}} மிகவும் துல்லியமானது ஆனால் குறிச்சொற்கள் தேவை மற்றும் கலைஞர் இணைப்புகளை வழங்காது, {{lastfm}} எப்போதும் இணைப்பை வழங்க வேண்டும். கூடுதல் பிணைய கோரிக்கைகளை செய்யாது",
|
||||
"discordLinkType_mbz_lastfm": "{{musicbrainz}} உடன் {{lastfm}} ஃபால்பேக்",
|
||||
"discordLinkType_none": "$t(common.none)",
|
||||
"discordLinkType": "{{discord}} இருப்பு இணைப்புகள்",
|
||||
"discordRichPresence": "{{discord}} பணக்கார இருப்பு",
|
||||
"discordStateIcon": "விளையாடும் ஐகானைக் காட்டு",
|
||||
"discordStateIcon_description": "பணக்கார இருப்பு நிலையில் சிறிய விளையாடும் ஐகானைக் காட்டு. இடைநிறுத்தப்பட்ட படவுரு எப்போதும் \"இடைநிறுத்தப்பட்ட போது பணக்கார இருப்பைக் காட்டு\" இயக்கப்பட்டிருக்கும் போது காண்பிக்கப்படும்",
|
||||
"enableAutoTranslation_description": "பாடல் வரிகள் ஏற்றப்படும் போது தானாகவே மொழிபெயர்ப்பை இயக்கவும்",
|
||||
"enableAutoTranslation": "தானியங்கு மொழிபெயர்ப்பை இயக்கு",
|
||||
"exportImportSettings_control_description": "சாதொபொகு வழியாக ஏற்றுமதி மற்றும் இறக்குமதி அமைப்புகளை",
|
||||
"exportImportSettings_control_exportText": "ஏற்றுமதி அமைப்புகள்",
|
||||
"exportImportSettings_control_importText": "இறக்குமதி அமைப்புகள்",
|
||||
"exportImportSettings_control_title": "இறக்குமதி / ஏற்றுமதி அமைப்புகள்",
|
||||
"exportImportSettings_destructiveWarning": "அமைப்புகளை இறக்குமதி செய்வது அழிவுகரமானது, கீழே உள்ள \"இறக்குமதி\" என்பதைக் சொடுக்கு செய்வதற்கு முன் மேலே உள்ளவற்றை மதிப்பாய்வு செய்யவும்!",
|
||||
"exportImportSettings_importBtn": "இறக்குமதி அமைப்புகள்",
|
||||
"exportImportSettings_importModalTitle": "Feishin அமைப்புகளை இறக்குமதி செய்யவும்",
|
||||
"exportImportSettings_importSuccess": "அமைப்புகள் வெற்றிகரமாக இறக்குமதி செய்யப்பட்டன!",
|
||||
"exportImportSettings_notValidJSON": "அனுப்பப்பட்ட கோப்பு சாதொபொகு செல்லுபடியாகாது",
|
||||
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" தவறானது - {{reason}}",
|
||||
"followCurrentSong_description": "தானாக விளையாடும் வரிசையை தற்போதைய பாடலுக்கு உருட்டும்",
|
||||
"followCurrentSong": "தற்போதைய பாடலைப் பின்பற்றவும்",
|
||||
"homeFeatureStyle_description": "வீட்டில் இடம்பெற்றுள்ள கொணர்வியின் பாணியைக் கட்டுப்படுத்துகிறது",
|
||||
"homeFeatureStyle": "வீட்டில் இடம்பெற்றது கொணர்வி பாணி",
|
||||
"homeFeatureStyle_optionMultiple": "பல",
|
||||
"homeFeatureStyle_optionSingle": "ஒற்றை",
|
||||
"hotkey_listNavigateToPage": "பட்டியல் உருப்படி பக்கத்திற்கு செல்லவும்",
|
||||
"hotkey_listPlayDefault": "பட்டியல் நாடகம்",
|
||||
"hotkey_listPlayLast": "பட்டியல் கடைசியாக விளையாடு",
|
||||
"hotkey_listPlayNext": "பட்டியல் அடுத்து விளையாடு",
|
||||
"hotkey_listPlayNow": "பட்டியல் விளையாட இப்போது",
|
||||
"hotkey_navigateHome": "வீட்டிற்கு செல்லவும்",
|
||||
"language": "மொழி",
|
||||
"logLevel": "பதிவு நிலை",
|
||||
"logLevel_description": "காண்பிக்க குறைந்தபட்ச பதிவு அளவை அமைக்கிறது. பிழைத்திருத்தம் அனைத்து பதிவுகளையும் காட்டுகிறது, பிழை பிழைகளை மட்டுமே காட்டுகிறது",
|
||||
"logLevel_optionDebug": "பிழைத்திருத்தம்",
|
||||
"logLevel_optionError": "பிழை",
|
||||
"logLevel_optionInfo": "தகவல்",
|
||||
"logLevel_optionWarn": "முன்னறிவிப்பு",
|
||||
"mpvExtraParameters": "MPV கூடுதல் அளவுருக்கள்",
|
||||
"mpvExtraParameters_description": "MPV க்கு அனுப்ப கூடுதல் வாதங்கள்",
|
||||
"notify": "பாடல் அறிவிப்புகளை இயக்கவும்",
|
||||
"notify_description": "தற்போதைய பாடலை மாற்றும்போது அறிவிப்புகளைக் காட்டு",
|
||||
"pathReplace": "கோப்பு பாதை மாற்று",
|
||||
"pathReplace_description": "உங்கள் சேவையகத்தின் இயல்புநிலை கோப்பு பாதையை மாற்றவும்",
|
||||
"pathReplace_optionRemovePrefix": "முன்னொட்டை அகற்று",
|
||||
"pathReplace_optionAddPrefix": "முன்னொட்டு சேர்க்கவும்",
|
||||
"playerFilters": "வரிசையில் இருந்து பாடல்களை வடிகட்டவும்",
|
||||
"playerFilters_description": "பின்வரும் அளவுகோல்களின் அடிப்படையில் பாடல்களை வரிசையில் சேர்க்காமல் தவிர்க்கவும்",
|
||||
"artistRadioCount_description": "கலைஞர் வானொலி மற்றும் ட்ராக் வானொலிக்கான பாடல்களின் எண்ணிக்கையை அமைக்கிறது",
|
||||
"artistRadioCount": "கலைஞர்/டிராக் ரேடியோ எண்ணிக்கை",
|
||||
"imageResolution": "படத்தின் தீர்மானம்",
|
||||
"imageResolution_description": "பயன்பாட்டைச் சுற்றிப் பயன்படுத்தப்படும் படங்களுக்கான தீர்மானம். 0 இன் மதிப்பைப் பயன்படுத்துவது இயல்பான படத் தீர்மானத்திற்கு இயல்புநிலையாக இருக்கும்",
|
||||
"imageResolution_optionTable": "அட்டவணை",
|
||||
"imageResolution_optionItemCard": "பொருள் அட்டை",
|
||||
"imageResolution_optionSidebar": "பக்கப்பட்டி",
|
||||
"imageResolution_optionHeader": "தலைப்பி",
|
||||
"imageResolution_optionFullScreenPlayer": "முழுத்திரை பிளேயர்",
|
||||
"playerbarSlider": "பிளேயர்பார் ச்லைடர்",
|
||||
"playerbarSlider_description": "மெதுவான அல்லது மீட்டர் இணைய இணைப்பில் இருந்தால் அலைவடிவம் பரிந்துரைக்கப்படுவதில்லை",
|
||||
"playerbarSliderType_optionSlider": "ச்லைடர்",
|
||||
"playerbarSliderType_optionWaveform": "அலைவடிவம், அலைப்படம்",
|
||||
"playerbarWaveformAlign": "அலை வடிவ சீரமைப்பு",
|
||||
"playerbarWaveformAlign_optionTop": "மேலே",
|
||||
"playerbarWaveformAlign_optionCenter": "நடுவண்",
|
||||
"playerbarWaveformAlign_optionBottom": "கீழே",
|
||||
"playerbarWaveformBarWidth": "அலைவடிவ பட்டை அகலம்",
|
||||
"playerbarWaveformGap": "அலைவடிவ இடைவெளி",
|
||||
"playerbarWaveformRadius": "அலைவடிவ ஆரம்",
|
||||
"showLyricsInSidebar_description": "பாடல் வரிகளைக் காண்பிக்கும் இணைக்கப்பட்ட நாடக வரிசையில் ஒரு குழு சேர்க்கப்படும்",
|
||||
"showLyricsInSidebar": "பிளேயர் பக்கப்பட்டியில் பாடல் வரிகளைக் காட்டு",
|
||||
"showRatings_description": "நட்சத்திர மதிப்பீடு நற்பொருத்தம் இடைமுகத்தில் காட்டப்பட்டால் கட்டுப்படுத்துகிறது",
|
||||
"showRatings": "நட்சத்திர மதிப்பீடுகளைக் காட்டு",
|
||||
"blurExplicitImages": "வெளிப்படையான படங்களை மங்கலாக்கும்",
|
||||
"blurExplicitImages_description": "வெளிப்படையாகக் குறியிடப்பட்ட ஆல்பம் மற்றும் பாடல் கலைப்படைப்புகள் மங்கலாக்கப்படும்",
|
||||
"enableGridMultiSelect": "கட்டம் பல தேர்வை இயக்கவும்",
|
||||
"enableGridMultiSelect_description": "இயக்கப்பட்டால், கட்டக் காட்சிகளில் பல உருப்படிகளைத் தேர்ந்தெடுக்க அனுமதிக்கிறது. முடக்கப்பட்டிருக்கும் போது, கிரிட் உருப்படி படங்களைக் சொடுக்கு செய்வதன் மூலம் உருப்படி பக்கத்திற்குச் செல்லும்",
|
||||
"showVisualizerInSidebar_description": "விசுவலைசரைக் காட்டும் பிளேயர் பக்கப்பட்டியில் ஒரு பேனல் சேர்க்கப்படும்",
|
||||
"showVisualizerInSidebar": "பிளேயர் பக்கப்பட்டியில் காட்சிப்படுத்தலைக் காட்டு",
|
||||
"combinedLyricsAndVisualizer_description": "பாடல் வரிகளையும் காட்சிப்படுத்தலையும் ஒரே பேனலில் இணைக்கவும்",
|
||||
"combinedLyricsAndVisualizer": "பிளேயர் பக்கப்பட்டியில் பாடல் வரிகள் மற்றும் காட்சிப்படுத்தல் ஆகியவற்றை இணைக்கவும்",
|
||||
"audioFadeOnStatusChange": "நிலை மாறும்போது ஆடியோ மங்குகிறது",
|
||||
"audioFadeOnStatusChange_description": "ப்ளே/இடைநிறுத்தம் நிலை மாறும்போது ஃபேட் அவுட் மற்றும் ஃபேட் இன் செயல்படுத்துகிறது",
|
||||
"preventSleepOnPlayback_description": "இசை இயங்கும் போது காட்சி தூங்குவதைத் தடுக்கிறது",
|
||||
"preventSleepOnPlayback": "பிளேபேக்கில் தூக்கத்தைத் தடுக்கவும்",
|
||||
"sidebarPlaylistSorting_description": "இயல்புநிலை சர்வர் ஆர்டருக்குப் பதிலாக இழுத்து விடுவதைப் பயன்படுத்தி பக்கப்பட்டியில் கைமுறையாக பிளேலிச்ட்டை வரிசைப்படுத்த அனுமதிக்கிறது",
|
||||
"sidebarPlaylistSorting": "பக்கப்பட்டி பிளேலிச்ட் வரிசையாக்கம்",
|
||||
"sidebarPlaylistListFilterRegex_description": "இந்த வழக்கமான வெளிப்பாட்டுடன் பொருந்தக்கூடிய பிளேலிச்ட்களை பக்கப்பட்டியில் மறைக்கவும்",
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "எ.கா. ^தினசரி கலவை.*",
|
||||
"sidebarPlaylistListFilterRegex": "பிளேலிச்ட் வடிகட்டி வழக்கவெளி",
|
||||
"mediaSession_description": "மீடியா அமர்வு ஒருங்கிணைப்பை செயல்படுத்துகிறது, மீடியா கட்டுப்பாடுகள் மற்றும் மெட்டாடேட்டாவை கணினி தொகுதி மேலடுக்கு மற்றும் பூட்டுத் திரையில் காண்பிக்கும்",
|
||||
"mediaSession": "ஊடக அமர்வை இயக்கவும்",
|
||||
"transcode": "டிரான்ச்கோடிங்கை இயக்கவும்",
|
||||
"queryBuilder": "வினவல் கட்டுபவர்",
|
||||
"queryBuilderCustomFields_inputLabel": "சிட்டை",
|
||||
"queryBuilderCustomFields_inputTag": "குறிச்சொல்",
|
||||
"queryBuilderCustomFields": "விருப்ப புலங்கள்",
|
||||
"queryBuilderCustomFields_description": "வினவல் பில்டர்களில் பயன்படுத்த தனிப்பயன் புலங்களைச் சேர்க்கவும்"
|
||||
},
|
||||
"table": {
|
||||
"config": {
|
||||
@@ -707,8 +1014,8 @@
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"biography": "$t(common.biography)",
|
||||
"bitrate": "$t(common.bitrate)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"bpm": "$t(common.BPM)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"codec": "$t(common.codec)",
|
||||
"dateAdded": "தேதி சேர்க்கப்பட்டது",
|
||||
"rating": "$t(common.rating)",
|
||||
@@ -720,22 +1027,31 @@
|
||||
"lastPlayed": "கடைசியாக விளையாடியது",
|
||||
"note": "$t(common.note)",
|
||||
"owner": "$t(common.owner)",
|
||||
"actions": "$t(common.action_other)",
|
||||
"actions": "$t(common.action, {\"count\": 2})",
|
||||
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
|
||||
"discNumber": "வட்டு எண்",
|
||||
"duration": "$t(common.duration)",
|
||||
"favorite": "$t(common.favorite)",
|
||||
"favorite": "$t(common.favourite)",
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"path": "$t(common.path)",
|
||||
"playCount": "விளையாட்டு எண்ணிக்கை",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(common.title)",
|
||||
"titleCombined": "$t(common.title) (இணைந்தது)"
|
||||
"titleCombined": "$t(common.title) (இணைந்தது)",
|
||||
"albumGroup": "ஆல்பம் குழு",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"composer": "இசையமைப்பாளர்",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1}) (பேட்ச்கள்)",
|
||||
"image": "படம்",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"titleArtist": "$t(common.title) (கலைஞர்)"
|
||||
},
|
||||
"view": {
|
||||
"table": "அட்டவணை",
|
||||
"grid": "வலைவாய்",
|
||||
"list": "பட்டியல்"
|
||||
"list": "பட்டியல்",
|
||||
"detail": "விவரம்"
|
||||
},
|
||||
"general": {
|
||||
"autoFitColumns": "ஆட்டோ பொருத்தம் நெடுவரிசைகள்",
|
||||
@@ -745,7 +1061,29 @@
|
||||
"itemGap": "உருப்படி இடைவெளி (பிஎக்ச்)",
|
||||
"itemSize": "உருப்படி அளவு (பிஎக்ச்)",
|
||||
"size": "$t(common.size)",
|
||||
"tableColumns": "அட்டவணை நெடுவரிசைகள்"
|
||||
"tableColumns": "அட்டவணை நெடுவரிசைகள்",
|
||||
"advancedSettings": "மேம்பட்ட அமைப்புகள்",
|
||||
"autosize": "தானியங்கு அளவு",
|
||||
"moveUp": "மேலே செல்ல",
|
||||
"moveDown": "கீழே நகர",
|
||||
"pinToLeft": "இடப்புறம் முள்",
|
||||
"pinToRight": "வலதுபுறமாக முள்",
|
||||
"alignLeft": "இடதுபுறம் சீரமைக்கவும்",
|
||||
"alignCenter": "மையத்தை சீரமைக்கவும்",
|
||||
"alignRight": "வலது சீரமை",
|
||||
"itemsPerRow": "ஒரு வரிசைக்கு பொருட்கள்",
|
||||
"size_default": "இயல்புநிலை",
|
||||
"size_compact": "கச்சிதமான",
|
||||
"size_large": "பெரிய",
|
||||
"pagination": "பேசினேசன்",
|
||||
"pagination_itemsPerPage": "ஒரு பக்கத்திற்கு உருப்படிகள்",
|
||||
"pagination_infinite": "கந்தழி, முடிவிலி",
|
||||
"pagination_paginate": "பக்கமாக",
|
||||
"alternateRowColors": "மாற்று வரிசை வண்ணங்கள்",
|
||||
"horizontalBorders": "வரிசை எல்லைகள்",
|
||||
"rowHoverHighlight": "வரிசை மிதவை ஐலைட்",
|
||||
"showHeader": "தலைப்பு நிகழ்ச்சி",
|
||||
"verticalBorders": "நெடுவரிசை எல்லைகள்"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -756,7 +1094,7 @@
|
||||
"biography": "சுயசரிதை",
|
||||
"bitrate": "பிட்ரேட்",
|
||||
"bpm": "பிபிஎம்",
|
||||
"channels": "$t(common.channel_other)",
|
||||
"channels": "$t(common.channel, {\"count\": 2})",
|
||||
"codec": "$t(common.codec)",
|
||||
"comment": "கருத்து",
|
||||
"dateAdded": "தேதி சேர்க்கப்பட்டது",
|
||||
@@ -772,7 +1110,218 @@
|
||||
"size": "$t(common.size)",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
"title": "தலைப்பு",
|
||||
"trackNumber": "மின்தடம்"
|
||||
"trackNumber": "மின்தடம்",
|
||||
"bitDepth": "$t(common.bitDepth)",
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"owner": "உரிமையாளர்"
|
||||
}
|
||||
},
|
||||
"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": "உடன் தொடங்குகிறது"
|
||||
},
|
||||
"queryBuilder": {
|
||||
"standardTags": "நிலையான குறிச்சொற்கள்",
|
||||
"customTags": "விருப்ப குறிச்சொற்கள்"
|
||||
},
|
||||
"releaseType": {
|
||||
"primary": {
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"broadcast": "ஒளிபரப்பு",
|
||||
"ep": "எபி",
|
||||
"other": "மற்றொன்று",
|
||||
"single": "ஒற்றை"
|
||||
},
|
||||
"secondary": {
|
||||
"audiobook": "ஒலிப்புத்தகம்",
|
||||
"audioDrama": "ஆடியோ நாடகம்",
|
||||
"compilation": "தொகுத்தல்",
|
||||
"djMix": "dj கலவை",
|
||||
"demo": "டெமோ",
|
||||
"fieldRecording": "களப்பதிவு",
|
||||
"interview": "நேர்காணல்",
|
||||
"live": "வாழ்க",
|
||||
"mixtape": "கலவை",
|
||||
"remix": "ரீமிக்ச்",
|
||||
"soundtrack": "ஒலிப்பதிவு",
|
||||
"spokenWord": "பேசப்பட்ட சொல்"
|
||||
}
|
||||
},
|
||||
"dragDropZone": {
|
||||
"error_oneFileOnly": "1 கோப்பை மட்டும் தேர்ந்தெடுக்கவும்",
|
||||
"error_readingFile": "கோப்பைப் படிப்பதில் சிக்கல் உள்ளது: {{errorMessage}}",
|
||||
"mainText": "ஒரு கோப்பை இங்கே விடுங்கள்"
|
||||
},
|
||||
"visualizer": {
|
||||
"visualizerType": "விசுவலைசர் வகை",
|
||||
"cyclePresets": "சுழற்சி முன்னமைவுகள்",
|
||||
"cycleTime": "சுழற்சி நேரம் (வினாடிகள்)",
|
||||
"includeAllPresets": "அனைத்து முன்னமைவுகளையும் சேர்க்கவும்",
|
||||
"ignoredPresets": "புறக்கணிக்கப்பட்ட முன்னமைவுகள்",
|
||||
"selectedPresets": "தேர்ந்தெடுக்கப்பட்ட முன்னமைவுகள்",
|
||||
"randomizeNextPreset": "அடுத்த முன்னமைவை சீரமைக்கவும்",
|
||||
"blendTime": "கலப்பு நேரம்",
|
||||
"presets": "முன்னமைவுகள்",
|
||||
"selectPreset": "முன்னமைவைத் தேர்ந்தெடுக்கவும்",
|
||||
"applyPreset": "முன்னமைவைப் பயன்படுத்தவும்",
|
||||
"saveAsPreset": "முன்னமைவாக சேமிக்கவும்",
|
||||
"updatePreset": "முன்னமைவைப் புதுப்பிக்கவும்",
|
||||
"copyConfiguration": "நகல் கட்டமைப்பு",
|
||||
"pasteConfiguration": "ஒட்டு கட்டமைப்பு",
|
||||
"pasteConfigurationPlaceholder": "சாதொபொகு உள்ளமைவை இங்கே ஒட்டவும்...",
|
||||
"pasteFromClipboard": "கிளிப்போர்டில் இருந்து ஒட்டவும்",
|
||||
"applyConfiguration": "உள்ளமைவைப் பயன்படுத்து",
|
||||
"configCopied": "உள்ளமைவு இடைநிலைப்பலகைக்கு நகலெடுக்கப்பட்டது",
|
||||
"configCopyFailed": "உள்ளமைவை நகலெடுக்க முடியவில்லை",
|
||||
"configPasted": "உள்ளமைவு வெற்றிகரமாக பயன்படுத்தப்பட்டது",
|
||||
"configPasteFailed": "உள்ளமைவைப் பயன்படுத்துவதில் தோல்வி. தயவுசெய்து வடிவமைப்பைச் சரிபார்க்கவும்.",
|
||||
"configPasteReadFailed": "கிளிப்போர்டில் இருந்து படிக்க முடியவில்லை",
|
||||
"presetName": "முன்னமைக்கப்பட்ட பெயர்",
|
||||
"presetNamePlaceholder": "முன்னமைக்கப்பட்ட பெயரை உள்ளிடவும்",
|
||||
"general": "பொது",
|
||||
"mode": "பயன்முறை",
|
||||
"mode1To8": "முறை 1 - 8",
|
||||
"mode10": "முறை 10",
|
||||
"barSpace": "பார் இடம்",
|
||||
"lineWidth": "வரி அகலம்",
|
||||
"fillAlpha": "ஆல்ஃபாவை நிரப்பவும்",
|
||||
"channelLayout": "சேனல் தளவமைப்பு",
|
||||
"maxFPS": "அதிகபட்ச FPS",
|
||||
"opacity": "ஒளிபுகாநிலை",
|
||||
"customGradients": "தனிப்பயன் சாய்வு",
|
||||
"addCustomGradient": "தனிப்பயன் சாய்வு சேர்க்கவும்",
|
||||
"gradientName": "சாய்வு பெயர்",
|
||||
"gradientNamePlaceholder": "சாய்வு பெயர்",
|
||||
"vertical": "செங்குத்து",
|
||||
"horizontal": "கிடைமட்ட",
|
||||
"colorStops": "வண்ண நிறுத்தங்கள்",
|
||||
"addColor": "வண்ணத்தைச் சேர்க்கவும்",
|
||||
"position": "பதவி",
|
||||
"level": "நிலை",
|
||||
"remove": "அகற்று",
|
||||
"pasteGradient": "சாய்வு ஒட்டவும்",
|
||||
"pasteGradientPlaceholder": "இங்கே சாய்வு சாதொபொகு ஒட்டவும்...",
|
||||
"custom": "தனிப்பயன்",
|
||||
"builtIn": "உள்ளமைக்கப்பட்ட",
|
||||
"colors": "நிறங்கள்",
|
||||
"colorMode": "வண்ண முறை",
|
||||
"gradient": "சரிவு",
|
||||
"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": "ரிஃப்ளெக்ச் ஆல்பா",
|
||||
"reflexBrightness": "ரிஃப்ளெக்ச் ஒளி",
|
||||
"mirror": "கண்ணாடி",
|
||||
"miscellaneousSettings": "இதர அமைப்புகள்",
|
||||
"alphaBars": "ஆல்பா பார்கள்",
|
||||
"ansiBands": "ANSI பட்டைகள்",
|
||||
"ledBars": "LED பார்கள்",
|
||||
"trueLeds": "உண்மையான எல்.ஈ",
|
||||
"lumiBars": "லுமி பார்கள்",
|
||||
"outlineBars": "அவுட்லைன் பார்கள்",
|
||||
"roundBars": "சுற்று பார்கள்",
|
||||
"lowResolution": "குறைந்த தெளிவுத்திறன்",
|
||||
"splitGradient": "பிளவு சாய்வு",
|
||||
"showFPS": "FPS ஐக் காட்டு",
|
||||
"showScaleX": "ஃச் அளவைக் காட்டு",
|
||||
"noteLabels": "குறிப்பு லேபிள்கள்",
|
||||
"showScaleY": "ஒய் அளவைக் காட்டு",
|
||||
"options": {
|
||||
"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": "பார்-இண்டெக்ச்",
|
||||
"barLevel": "பட்டை-நிலை"
|
||||
},
|
||||
"gradient": {
|
||||
"classic": "கிளாசிக்",
|
||||
"prism": "அரியம், பட்டகம்",
|
||||
"rainbow": "வானவில்",
|
||||
"steelblue": "இரும்புநீலம்",
|
||||
"orangered": "ஆரஞ்சுசிவப்பு"
|
||||
},
|
||||
"channelLayout": {
|
||||
"single": "ஒற்றை",
|
||||
"dualCombined": "இரட்டை-இணைந்த",
|
||||
"dualHorizontal": "இரட்டை-கிடைமட்ட",
|
||||
"dualVertical": "இரட்டை-செங்குத்து"
|
||||
},
|
||||
"frequencyScale": {
|
||||
"none": "எதுவுமில்லை",
|
||||
"bark": "பட்டை அளவு",
|
||||
"linear": "நேரியல் அளவுகோல்",
|
||||
"log": "பதிவு அளவுகோல்",
|
||||
"mel": "மெல் அளவுகோல்"
|
||||
},
|
||||
"weightingFilter": {
|
||||
"none": "எதுவுமில்லை",
|
||||
"a": "ஏ",
|
||||
"b": "பி",
|
||||
"c": "சி",
|
||||
"d": "டி",
|
||||
"z": "சட்"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"action": {
|
||||
"addToFavorites": "Idagdag sa $t(entity.favorite, {\"count\": 2})",
|
||||
"addToPlaylist": "Idagdag sa $t(entity.playlist, {\"count\": 1})",
|
||||
"addOrRemoveFromSelection": "Idagdag o alisin sa pinili",
|
||||
"collapseAllFolders": "Isara lahat ng mga folder",
|
||||
"expandAllFolders": "Buksan lahat ng mga folder",
|
||||
"createPlaylist": "Gumawa $t(entity.playlist, {\"count\": 1})",
|
||||
"createRadioStation": "Gumawa $t(entity.radioStation, {\"count\": 1})",
|
||||
"selectAll": "Piliin lahat",
|
||||
"deselectAll": "Huwag piliin lahat",
|
||||
"downloadStarted": "Nagsimulang mag-dowload ng {{count}} (mga) aytem"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,605 @@
|
||||
{
|
||||
"action": {
|
||||
"addToFavorites": "додати до $t(entity.favorite, {\"count\": 2})"
|
||||
"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",
|
||||
"listenbrainz": "Відкрити у ListenBrainz",
|
||||
"qobuz": "Відкрити у Qobuz",
|
||||
"spotify": "Відкрити у Spotify"
|
||||
}
|
||||
},
|
||||
"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": "Прогалина",
|
||||
"grouping": "Групування",
|
||||
"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}} більше",
|
||||
"numberOfResults": "{{numberOfResults}} результатів",
|
||||
"newVersionAvailable": "Доступна нова версія",
|
||||
"back": "Повернутися"
|
||||
},
|
||||
"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": "Виявлено розбіжності між налаштуваннями в рендерері та основним процесом. перезапустіть програму, щоб застосувати зміни",
|
||||
"invalidJson": "Недійсний JSON",
|
||||
"playbackPausedDueToError": "Відтворення було призупинено через помилку"
|
||||
},
|
||||
"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)",
|
||||
"matchAnd": "І",
|
||||
"matchOr": "Або"
|
||||
},
|
||||
"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 з якоїсь причини не показує, чи є плейлист публічним чи ні. Якщо ви хочете, щоб він залишався публічним, виберіть варіант нижче",
|
||||
"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": "Не вдалося створити спільний доступ (чи ввімкнено спільний доступ?)",
|
||||
"copyToClipboard": "Скопіювати до буфера обміну: Ctrl+C, enter",
|
||||
"successMustClick": "Посилання успішно створено, натисніть сюди, щоб відкрити"
|
||||
},
|
||||
"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": "Приватний режим"
|
||||
},
|
||||
"editRadioStation": {
|
||||
"success": "Радіо станція успішно оновлена"
|
||||
}
|
||||
},
|
||||
"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": "Отримати інформацію"
|
||||
},
|
||||
"fullscreenPlayer": {
|
||||
"config": {
|
||||
"dynamicBackground": "Динамічний фон",
|
||||
"dynamicImageBlur": "Розмір розмиття зображення",
|
||||
"dynamicIsImage": "Включити фонове зображення",
|
||||
"followCurrentLyric": "Слідкувати за поточним рядком",
|
||||
"lyricAlignment": "Вирівнювання тексту",
|
||||
"lyricOffset": "Затримка тексту (мс)",
|
||||
"lyricGap": "Розмір між рядками",
|
||||
"lyricSize": "Розмір тексту",
|
||||
"opacity": "Непрозорість",
|
||||
"showLyricMatch": "Показувати збіг тексту пісень",
|
||||
"showLyricProvider": "Показувати джерело тексту пісень",
|
||||
"synchronized": "Синхронізовано",
|
||||
"unsynchronized": "Несинхронізовано",
|
||||
"useImageAspectRatio": "Використовувати співвідношення сторін зображення"
|
||||
},
|
||||
"lyrics": "Текст пісні",
|
||||
"related": "Пов'язані",
|
||||
"upNext": "Далі",
|
||||
"visualizer": "Візуалізатор",
|
||||
"noLyrics": "Текст пісні не знайдено"
|
||||
},
|
||||
"genreList": {
|
||||
"showAlbums": "Показати $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
|
||||
"showTracks": "Показати $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
|
||||
"title": "$t(entity.genre, {\"count\": 2})"
|
||||
},
|
||||
"folderList": {
|
||||
"title": "$t(entity.folder, {\"count\": 2})"
|
||||
},
|
||||
"globalSearch": {
|
||||
"commands": {
|
||||
"goToPage": "Перейти до сторінки",
|
||||
"searchFor": "Шукати на {{query}}",
|
||||
"serverCommands": "Команди сервера"
|
||||
},
|
||||
"title": "Команди"
|
||||
},
|
||||
"home": {
|
||||
"explore": "Дослідити з вашої бібліотеки",
|
||||
"genres": "$t(entity.genre, {\"count\": 2})",
|
||||
"mostPlayed": "Найбільш відтворені",
|
||||
"newlyAdded": "Нещодавно додані релізи",
|
||||
"recentlyPlayed": "Нещодавно відтворені"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,10 @@
|
||||
"goToPage": "前往页面",
|
||||
"openIn": {
|
||||
"lastfm": "在 Last.fm 中打开",
|
||||
"musicbrainz": "在 MusicBrainz 中打开"
|
||||
"musicbrainz": "在 MusicBrainz 中打开",
|
||||
"listenbrainz": "在 ListenBrainz 中打开",
|
||||
"qobuz": "在 Qobuz 中打开",
|
||||
"spotify": "在 Spotify 中打开"
|
||||
},
|
||||
"moveToNext": "移至下一首",
|
||||
"downloadStarted": "开始下载 {{count}} 个项目",
|
||||
@@ -37,12 +40,13 @@
|
||||
"selectAll": "全选",
|
||||
"createRadioStation": "创建$t(entity.radioStation, {\"count\": 1})",
|
||||
"deleteRadioStation": "删除$t(entity.radioStation, {\"count\": 1})",
|
||||
"openApplicationDirectory": "打开应用程序目录"
|
||||
"openApplicationDirectory": "打开应用程序目录",
|
||||
"goToCurrent": "转到当前项目"
|
||||
},
|
||||
"common": {
|
||||
"increase": "增高",
|
||||
"rating": "评分",
|
||||
"bpm": "bpm",
|
||||
"bpm": "BPM",
|
||||
"refresh": "刷新",
|
||||
"unknown": "未知",
|
||||
"edit": "编辑",
|
||||
@@ -74,7 +78,7 @@
|
||||
"forward": "前进",
|
||||
"delete": "删除",
|
||||
"cancel": "取消",
|
||||
"forceRestartRequired": "重启应用使更改生效…关闭通知即可重启",
|
||||
"forceRestartRequired": "重启应用以使更改生效…关闭通知即可重启",
|
||||
"setting_other": "设置",
|
||||
"version": "版本",
|
||||
"title": "标题",
|
||||
@@ -107,7 +111,7 @@
|
||||
"duration": "时长",
|
||||
"ok": "好",
|
||||
"no": "否",
|
||||
"playerMustBePaused": "播放器必须暂停",
|
||||
"playerMustBePaused": "播放器必须先暂停",
|
||||
"channel_other": "频道",
|
||||
"none": "无",
|
||||
"disc": "碟片",
|
||||
@@ -155,7 +159,10 @@
|
||||
"filter_single": "单项",
|
||||
"mood": "氛围",
|
||||
"rename": "重命名",
|
||||
"filter_multiple": "多项"
|
||||
"filter_multiple": "多项",
|
||||
"newVersionAvailable": "新版本现已可用",
|
||||
"numberOfResults": "{{numberOfResults}} 结果",
|
||||
"grouping": "分组"
|
||||
},
|
||||
"entity": {
|
||||
"albumArtist_other": "专辑艺术家",
|
||||
@@ -201,8 +208,8 @@
|
||||
"queue_clear": "清空播放队列",
|
||||
"muted": "已静音",
|
||||
"unfavorite": "取消收藏",
|
||||
"queue_moveToTop": "将所选项移至底部",
|
||||
"queue_moveToBottom": "将所选项移至顶部",
|
||||
"queue_moveToTop": "将所选项移至顶部",
|
||||
"queue_moveToBottom": "将所选项移至底部",
|
||||
"shuffle_off": "禁用随机播放",
|
||||
"addLast": "最后",
|
||||
"mute": "静音",
|
||||
@@ -218,18 +225,27 @@
|
||||
"addNextShuffled": "下一个(随机)",
|
||||
"artistRadio": "艺术家电台",
|
||||
"holdToShuffle": "按住即可随机",
|
||||
"trackRadio": "追踪广播"
|
||||
"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": "选择用于音频播放器的淡入淡出风格",
|
||||
"hotkey_favoriteCurrentSong": "收藏$t(common.currentSong)",
|
||||
"audioExclusiveMode_description": "启用独占输出模式。在此模式下,系统通常被锁定为只有 mpv 能够输出音频",
|
||||
"audioExclusiveMode_description": "启用独占输出模式。在此模式下,系统通常被锁定为只有 MPV 能够输出音频",
|
||||
"disableLibraryUpdateOnStartup": "禁用启动时查询新版本",
|
||||
"gaplessAudio": "无缝音频",
|
||||
"audioPlayer_description": "选择用于播放的音频播放器",
|
||||
"globalMediaHotkeys": "全局媒体快捷键",
|
||||
"gaplessAudio_description": "调整 mpv 无缝音频设置",
|
||||
"disableAutomaticUpdates": "禁用自动更新",
|
||||
"gaplessAudio_description": "调整 MPV 无缝音频设置",
|
||||
"followLyric_description": "滚动歌词到当前播放位置",
|
||||
"audioExclusiveMode": "音频独占模式",
|
||||
"font": "字体",
|
||||
@@ -245,12 +261,12 @@
|
||||
"followLyric": "跟随当前歌词",
|
||||
"crossfadeDuration": "淡入淡出持续时间",
|
||||
"audioPlayer": "音频播放器",
|
||||
"discordApplicationId": "{{discord}} 应用 id",
|
||||
"discordApplicationId": "{{discord}} 应用 ID",
|
||||
"applicationHotkeys_description": "配置应用快捷键。勾选设为全局快捷键(仅桌面端)",
|
||||
"customFontPath_description": "设置应用使用的自定义字体路径",
|
||||
"gaplessAudio_optionWeak": "弱(推荐)",
|
||||
"font_description": "设置应用使用的字体",
|
||||
"audioDevice_description": "选择用于播放的音频设备(仅 web 播放器)",
|
||||
"audioDevice_description": "选择用于播放的音频设备",
|
||||
"enableRemote_description": "启用远程控制服务器,以允许其他设备控制此应用",
|
||||
"remotePort_description": "设置远程服务器端口",
|
||||
"hotkey_skipBackward": "向后跳过",
|
||||
@@ -269,7 +285,7 @@
|
||||
"scrobble": "记录播放信息",
|
||||
"skipDuration_description": "设置每次按下跳过按钮将会跳过的时长",
|
||||
"fontType_optionSystem": "系统字体",
|
||||
"mpvExecutablePath_description": "设置 mpv 可执行文件的路径。如果留空,则使用默认路径",
|
||||
"mpvExecutablePath_description": "设置 MPV 可执行文件的路径。如果留空,则使用默认路径",
|
||||
"sampleRate": "采样率",
|
||||
"sidePlayQueueStyle_optionAttached": "吸附",
|
||||
"sidebarConfiguration": "侧边栏设定",
|
||||
@@ -318,7 +334,7 @@
|
||||
"hotkey_toggleShuffle": "切换随机",
|
||||
"theme": "主题",
|
||||
"playbackStyle_description": "选择音频播放器的播放风格",
|
||||
"mpvExecutablePath": "mpv 可执行文件路径",
|
||||
"mpvExecutablePath": "MPV 可执行文件路径",
|
||||
"hotkey_rate2": "评为 2 星",
|
||||
"playButtonBehavior_description": "设置将歌曲添加到播放队列时播放按钮的默认行为",
|
||||
"minimumScrobblePercentage_description": "歌曲被记录为已播放所需的最小播放百分比",
|
||||
@@ -328,7 +344,7 @@
|
||||
"savePlayQueue": "保存播放队列",
|
||||
"minimumScrobbleSeconds_description": "歌曲被记录为已播放所需的最小播放时间",
|
||||
"skipPlaylistPage_description": "打开歌单时,直接查看歌曲列表而非查看默认页面",
|
||||
"fontType_description": "内置字体可以选择 feishin 提供的字体之一。系统字体允许您选择操作系统提供的任何字体。自定义选项允许您使用自己的字体",
|
||||
"fontType_description": "内置字体可以选择 Feishin 提供的字体之一。系统字体允许您选择操作系统提供的任何字体。自定义选项允许您使用自己的字体",
|
||||
"playButtonBehavior": "播放按钮行为",
|
||||
"volumeWheelStep": "音量滚轮分度",
|
||||
"sidebarPlaylistList_description": "显示或隐藏侧边栏歌单列表",
|
||||
@@ -369,20 +385,20 @@
|
||||
"replayGainClipping_description": "自动降低增益以防止{{ReplayGain}}造成削波",
|
||||
"replayGainPreamp": "{{ReplayGain}}前置放大(分贝)",
|
||||
"replayGainClipping": "{{ReplayGain}}削波",
|
||||
"discordUpdateInterval": "{{discord}} rich presence 更新间隔",
|
||||
"discordApplicationId_description": "{{discord}} rich presence 应用 id(默认为 {{defaultId}})",
|
||||
"discordUpdateInterval": "{{discord}} Rich Presence 更新间隔",
|
||||
"discordApplicationId_description": "{{discord}} Rich Presence 应用 ID(默认为 {{defaultId}})",
|
||||
"discordUpdateInterval_description": "更新间隔秒数(至少 15 秒)",
|
||||
"discordRichPresence_description": "在 {{discord}} rich presence 中显示播放状态。图片键为:{{icon}}、{{playing}} 和 {{paused}}",
|
||||
"discordRichPresence_description": "在 {{discord}} Rich Presence 中显示播放状态。图片键为:{{icon}}、{{playing}} 和 {{paused}}",
|
||||
"accentColor": "强调色",
|
||||
"accentColor_description": "设置应用的强调色",
|
||||
"replayGainPreamp_description": "调整应用在{{ReplayGain}}值上的前置放大增益",
|
||||
"discordIdleStatus": "显示 rich presence 闲置状态",
|
||||
"discordIdleStatus": "显示 Rich Presence 闲置状态",
|
||||
"clearCache": "清除浏览器缓存",
|
||||
"buttonSize": "播放器栏按钮大小",
|
||||
"buttonSize_description": "播放器栏按钮大小",
|
||||
"clearCache_description": "feishin的“硬清除”。除了清除feishin的缓存,清空浏览器缓存(保存的图像和其他资源)。服务器凭据和设置会被保留",
|
||||
"clearQueryCache_description": "feishin的“软清除”。这将会刷新播放列表、元数据并重置保存的歌词。设置、服务器凭据和缓存图像会被保留",
|
||||
"clearQueryCache": "清除feishin缓存",
|
||||
"clearCache_description": "Feishin的“硬清除”。除了清除Feishin的缓存,清空浏览器缓存(保存的图像和其他资源)。服务器凭据和设置会被保留",
|
||||
"clearQueryCache_description": "Feishin的“软清除”。这将会刷新播放列表、元数据并重置保存的歌词。设置、服务器凭据和缓存图像会被保留",
|
||||
"clearQueryCache": "清除Feishin缓存",
|
||||
"externalLinks": "显示外部链接",
|
||||
"externalLinks_description": "允许在艺术家/专辑页面上显示外部链接(Last.fm、MusicBrainz)",
|
||||
"mpvExtraParameters_help": "每行一个",
|
||||
@@ -404,10 +420,10 @@
|
||||
"contextMenu_description": "允许您隐藏右键单击项目时显示在菜单中的项目。未选中的项目将被隐藏",
|
||||
"customCssEnable_description": "允许编写自定义 css",
|
||||
"customCss": "自定义css",
|
||||
"customCss_description": "自定义css内容。注意:内容和远程url是不允许的属性。内容预览展示如下。出于安全考虑,您未设置的其它字段也会显示",
|
||||
"customCss_description": "自定义css内容。注意:内容和远程URL是不允许的属性。内容预览展示如下。出于安全考虑,您未设置的其它字段也会显示",
|
||||
"contextMenu": "上下文菜单(右键单击)配置",
|
||||
"customCssEnable": "启用自定义 css",
|
||||
"customCssNotice": "警告:虽然预设了一些安全限制(不允许 url() 和 content:),但使用自定义 css 仍然会因更改界面而带来风险",
|
||||
"customCssNotice": "警告:虽然预设了一些安全限制(不允许 URL() 和 content:),但使用自定义 css 仍然会因更改界面而带来风险",
|
||||
"transcode_description": "可以转码为不同的格式",
|
||||
"transcodeBitrate": "转码比特率",
|
||||
"albumBackground": "专辑背景图片",
|
||||
@@ -435,14 +451,14 @@
|
||||
"lastfmApiKey": "{{lastfm}} API 密钥",
|
||||
"lastfmApiKey_description": "{{lastfm}} 的 API 密钥。封面艺术图所需",
|
||||
"discordServeImage": "从服务器提供 {{discord}} 图像",
|
||||
"discordServeImage_description": "从服务器本身分享 {{discord}} rich presence 的封面艺术,仅适用于 Jellyfin 和 Navidrome。 {{discord}} 使用机器人来获取图像,因此您的服务器必须可通过公共互联网访问",
|
||||
"discordServeImage_description": "从服务器本身分享 {{discord}} Rich Presence 的封面艺术,仅适用于 Jellyfin 和 Navidrome。 {{discord}} 使用机器人来获取图像,因此您的服务器必须可通过公共互联网访问",
|
||||
"musicbrainz": "显示 MusicBrainz 链接",
|
||||
"musicbrainz_description": "在存在 MusicBrainz ID 的艺术家/专辑页面上显示 MusicBrainz 的链接",
|
||||
"lastfm": "显示 last.fm 链接",
|
||||
"musicbrainz_description": "在艺术家/专辑页面上显示 MusicBrainz 链接(如果存在 MusicBrainz ID)",
|
||||
"lastfm": "显示 Last.fm 链接",
|
||||
"lastfm_description": "在艺术家/专辑页面上显示 Last.fm 的链接",
|
||||
"preferLocalLyrics_description": "优先选择本地歌词(如有),而不是远程歌词",
|
||||
"preferLocalLyrics": "首选本地歌词",
|
||||
"discordPausedStatus": "暂停时显示rich presence",
|
||||
"discordPausedStatus": "暂停时显示Rich Presence",
|
||||
"discordPausedStatus_description": "启用后将在播放器暂停时显示状态",
|
||||
"preservePitch": "保持音高",
|
||||
"preservePitch_description": "在调整播放速度时保持音高",
|
||||
@@ -464,7 +480,7 @@
|
||||
"releaseChannel_optionLatest": "最新的",
|
||||
"releaseChannel_optionBeta": "测试版",
|
||||
"releaseChannel": "发布通道",
|
||||
"releaseChannel_description": "选择稳定版本或测试版以进行自动更新",
|
||||
"releaseChannel_description": "选择稳定版、测试版或 Alpha(夜间构建版)以启用自动更新",
|
||||
"mediaSession": "启用媒体会话",
|
||||
"mediaSession_description": "启用媒体会话集成,在系统音量叠加层和锁屏界面显示媒体控件和元数据",
|
||||
"exportImportSettings_control_description": "通过 JSON 导出和导入设置",
|
||||
@@ -473,7 +489,7 @@
|
||||
"exportImportSettings_control_title": "导入/导出设置",
|
||||
"exportImportSettings_destructiveWarning": "导入设置会破坏现有设置,请在点击下方“导入”按钮前仔细阅读以上内容!",
|
||||
"exportImportSettings_importBtn": "导入设置",
|
||||
"exportImportSettings_importModalTitle": "导入 feishin 设置",
|
||||
"exportImportSettings_importModalTitle": "导入 Feishin 设置",
|
||||
"exportImportSettings_importSuccess": "设置已成功导入!",
|
||||
"exportImportSettings_notValidJSON": "传递的文件不是有效的 JSON 文件",
|
||||
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" 不正确 - {{reason}}",
|
||||
@@ -492,16 +508,15 @@
|
||||
"combinedLyricsAndVisualizer_description": "将歌词和可视化界面合并到同一面板中",
|
||||
"queryBuilderCustomFields_description": "在查询构建器添加自定义字段",
|
||||
"combinedLyricsAndVisualizer": "在播放器侧边栏合并歌词和可视化界面",
|
||||
"autoDJ_description": "自动添加相似歌曲到队列中",
|
||||
"notify_description": "歌曲变更时显示通知",
|
||||
"mpvExtraParameters_description": "向mpv传递额外参数",
|
||||
"mpvExtraParameters_description": "向MPV传递额外参数",
|
||||
"audioFadeOnStatusChange": "音频改变时淡入淡出",
|
||||
"showVisualizerInSidebar": "在播放器侧边栏显示可视化效果",
|
||||
"showLyricsInSidebar": "在播放器侧边栏显示歌词",
|
||||
"analyticsDisable": "退出使用情况的分析",
|
||||
"artistReleaseTypeConfiguration": "艺术家发行类型设置",
|
||||
"useThemeAccentColor": "使用主题强调色",
|
||||
"mpvExtraParameters": "mpv额外参数",
|
||||
"mpvExtraParameters": "MPV额外参数",
|
||||
"showRatings": "显示星级评分",
|
||||
"followCurrentSong": "跟随当前歌曲",
|
||||
"logLevel": "日志等级",
|
||||
@@ -536,7 +551,7 @@
|
||||
"autoDJ_timing": "定时",
|
||||
"autoDJ_timing_description": "自动 DJ 触发前队列中剩余的歌曲数量",
|
||||
"crossfadeStyle": "交叉渐变风格",
|
||||
"discordRichPresence": "{{discord}} rich presence",
|
||||
"discordRichPresence": "{{discord}} Rich Presence",
|
||||
"homeFeatureStyle_description": "控制首页特色轮播图的样式",
|
||||
"homeFeatureStyle": "首页特色旋转样式",
|
||||
"homeFeatureStyle_optionMultiple": "多样",
|
||||
@@ -563,7 +578,40 @@
|
||||
"sidebarPlaylistListFilterRegex_placeholder": "例如:^每日精选*",
|
||||
"sidebarPlaylistListFilterRegex": "播放列表筛选正则表达式",
|
||||
"queryBuilder": "查询构建器",
|
||||
"queryBuilderCustomFields": "自定义字段"
|
||||
"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": "播放器项目配置",
|
||||
"listenbrainz_description": "在艺术家/专辑页面上显示 ListenBrainz 链接",
|
||||
"listenbrainz": "显示 ListenBrainz 链接",
|
||||
"qobuz_description": "在艺术家/专辑页面上显示 Qobuz 链接",
|
||||
"qobuz": "显示 Qobuz 链接",
|
||||
"spotify_description": "在艺术家/专辑页面上显示 Spotify 链接",
|
||||
"spotify": "显示 Spotify 链接",
|
||||
"nativeSpotify_description": "在 Spotify 应用中打开,而不是在浏览器中打开",
|
||||
"nativeSpotify": "使用 Spotify 应用",
|
||||
"sidePlayQueueLayout": "侧边播放队列布局",
|
||||
"sidePlayQueueLayout_description": "设置附加侧边播放队列的布局",
|
||||
"sidePlayQueueLayout_optionHorizontal": "水平",
|
||||
"sidePlayQueueLayout_optionVertical": "垂直",
|
||||
"waveformLoadingDelay": "波形加载延迟",
|
||||
"waveformLoadingDelay_description": "加载波形前的延迟时间(秒)。如果在使用网页播放器时遇到卡顿现象,请增加此值。"
|
||||
},
|
||||
"error": {
|
||||
"remotePortWarning": "重启服务器使新端口生效",
|
||||
@@ -594,7 +642,10 @@
|
||||
"noNetwork": "服务器不可用",
|
||||
"noNetworkDescription": "无法连接到该服务器",
|
||||
"saveQueueFailed": "播放列表保存失败",
|
||||
"settingsSyncError": "渲染器设置与主进程中存在差异,请重启程序以应用更改"
|
||||
"settingsSyncError": "渲染器设置与主进程中存在差异,请重启程序以应用更改",
|
||||
"invalidJson": "无效的 JSON",
|
||||
"serverLockSingleServer": "服务器锁定时,只允许一台服务器运行",
|
||||
"playbackPausedDueToError": "发生错误,播放已暂停"
|
||||
},
|
||||
"filter": {
|
||||
"mostPlayed": "最多播放过",
|
||||
@@ -621,7 +672,7 @@
|
||||
"fromYear": "起始年份",
|
||||
"criticRating": "评论家评分",
|
||||
"trackNumber": "曲目",
|
||||
"bpm": "bpm",
|
||||
"bpm": "BPM",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"comment": "评论",
|
||||
"isCompilation": "为合辑",
|
||||
@@ -635,12 +686,14 @@
|
||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||
"note": "注释",
|
||||
"albumCount": "$t(entity.album, {\"count\": 2})数",
|
||||
"id": "id",
|
||||
"id": "ID",
|
||||
"disc": "碟片",
|
||||
"duration": "时长",
|
||||
"album": "$t(entity.album, {\"count\": 1})",
|
||||
"explicitStatus": "$t(common.explicitStatus)",
|
||||
"sortName": "排序名称"
|
||||
"sortName": "排序名称",
|
||||
"matchAnd": "和",
|
||||
"matchOr": "或"
|
||||
},
|
||||
"page": {
|
||||
"sidebar": {
|
||||
@@ -809,7 +862,11 @@
|
||||
"appearsOn": "出现在",
|
||||
"viewAll": "查看全部",
|
||||
"groupingTypeAll": "所有发行类型",
|
||||
"groupingTypePrimary": "首选发布类型"
|
||||
"groupingTypePrimary": "首选发布类型",
|
||||
"favoriteSongs": "收藏的歌曲",
|
||||
"favoriteSongsFrom": "来自 {{title}} 收藏的歌曲",
|
||||
"topSongsCommunity": "社区",
|
||||
"topSongsPersonal": "个人"
|
||||
},
|
||||
"itemDetail": {
|
||||
"copyPath": "将路径复制到剪贴板",
|
||||
@@ -843,6 +900,11 @@
|
||||
"collections": {
|
||||
"overrideExisting": "覆盖现有",
|
||||
"saveAsCollection": "保存为集合"
|
||||
},
|
||||
"releasenotes": {
|
||||
"commitsSinceStable": "自 {{stable}} 以来的提交",
|
||||
"noNewCommits": "此范围内没有新的提交",
|
||||
"noStableReleaseToCompare": "目前没有稳定版本可供比较"
|
||||
}
|
||||
},
|
||||
"form": {
|
||||
@@ -862,12 +924,12 @@
|
||||
"ignoreSsl": "忽略 ssl $t(common.restartRequired)",
|
||||
"ignoreCors": "忽略 cors $t(common.restartRequired)",
|
||||
"error_savePassword": "保存密码时出现错误",
|
||||
"input_url": "url",
|
||||
"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}} })",
|
||||
@@ -901,8 +963,7 @@
|
||||
"editPlaylist": {
|
||||
"title": "编辑$t(entity.playlist, {\"count\": 1})",
|
||||
"publicJellyfinNote": "Jellyfin 出于某种原因不会显示播放列表是否公开。如果您希望保持公开,请选择以下输入",
|
||||
"success": "$t(entity.playlist, {\"count\": 1})更新成功",
|
||||
"editNote": "不建议对大型播放列表进行手动编辑,你确定接受新播放列表覆盖已有播放列表可能导致的数据丢失风险吗?"
|
||||
"success": "$t(entity.playlist, {\"count\": 1})更新成功"
|
||||
},
|
||||
"lyricSearch": {
|
||||
"title": "搜索歌词",
|
||||
@@ -915,7 +976,9 @@
|
||||
"allowDownloading": "允许下载",
|
||||
"description": "描述",
|
||||
"setExpiration": "设置过期时间",
|
||||
"success": "共享链接已复制到剪贴板(或单击此处打开)"
|
||||
"success": "共享链接已复制到剪贴板(或单击此处打开)",
|
||||
"copyToClipboard": "复制到剪贴板:Ctrl+C,Enter",
|
||||
"successMustClick": "分享创建成功。点击此处打开"
|
||||
},
|
||||
"privateMode": {
|
||||
"enabled": "启用私人模式,播放状态现在对外部集成隐藏",
|
||||
@@ -951,6 +1014,9 @@
|
||||
"input_played_optionPlayed": "仅已播放的曲目",
|
||||
"input_limit": "有多少首歌?",
|
||||
"input_played": "播放筛选器"
|
||||
},
|
||||
"editRadioStation": {
|
||||
"success": "电台更新成功"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
@@ -990,7 +1056,8 @@
|
||||
"view": {
|
||||
"table": "表格",
|
||||
"grid": "网格",
|
||||
"list": "列表"
|
||||
"list": "列表",
|
||||
"detail": "详情"
|
||||
},
|
||||
"label": {
|
||||
"releaseDate": "发布日期",
|
||||
@@ -998,7 +1065,7 @@
|
||||
"duration": "$t(common.duration)",
|
||||
"dateAdded": "添加日期",
|
||||
"size": "$t(common.size)",
|
||||
"bpm": "$t(common.bpm)",
|
||||
"bpm": "$t(common.BPM)",
|
||||
"lastPlayed": "最后播放",
|
||||
"trackNumber": "音轨编号",
|
||||
"rowIndex": "行索引",
|
||||
@@ -1027,7 +1094,8 @@
|
||||
"sampleRate": "$t(common.sampleRate)",
|
||||
"genreBadge": "$t(entity.genre, {\"count\": 1})(徽章)",
|
||||
"composer": "作曲家",
|
||||
"titleArtist": "$t(common.title) (艺术家)"
|
||||
"titleArtist": "$t(common.title) (艺术家)",
|
||||
"albumGroup": "专辑分组"
|
||||
}
|
||||
},
|
||||
"column": {
|
||||
@@ -1043,7 +1111,7 @@
|
||||
"releaseDate": "发布日期",
|
||||
"bitrate": "比特率",
|
||||
"title": "标题",
|
||||
"bpm": "bpm",
|
||||
"bpm": "BPM",
|
||||
"dateAdded": "添加日期",
|
||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||
"songCount": "$t(entity.track, {\"count\": 2})",
|
||||
@@ -1163,21 +1231,41 @@
|
||||
"miscellaneousSettings": "杂项设置",
|
||||
"options": {
|
||||
"channelLayout": {
|
||||
"single": "单项"
|
||||
"single": "单项",
|
||||
"dualCombined": "双重组合",
|
||||
"dualHorizontal": "双水平",
|
||||
"dualVertical": "双垂直"
|
||||
},
|
||||
"mode": {
|
||||
"0": "[0] 离散频率"
|
||||
"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": "渐变"
|
||||
"gradient": "渐变",
|
||||
"barIndex": "Bar-Index",
|
||||
"barLevel": "Bar-Level"
|
||||
},
|
||||
"gradient": {
|
||||
"classic": "经典",
|
||||
"prism": "棱镜",
|
||||
"rainbow": "彩虹"
|
||||
"rainbow": "彩虹",
|
||||
"steelblue": "钢蓝色",
|
||||
"orangered": "橙红色"
|
||||
},
|
||||
"frequencyScale": {
|
||||
"none": "无"
|
||||
"none": "无",
|
||||
"bark": "树皮鳞片",
|
||||
"linear": "线性刻度",
|
||||
"log": "对数刻度",
|
||||
"mel": "梅尔刻度"
|
||||
},
|
||||
"weightingFilter": {
|
||||
"none": "无",
|
||||
@@ -1235,7 +1323,14 @@
|
||||
"splitGradient": "渐变分割",
|
||||
"showScaleX": "显示比例尺 X",
|
||||
"noteLabels": "笔记标签",
|
||||
"showScaleY": "显示比例尺 Y"
|
||||
"showScaleY": "显示比例尺 Y",
|
||||
"alphaBars": "Alpha 条",
|
||||
"ansiBands": "ANSI 频段",
|
||||
"ledBars": "LED 灯条",
|
||||
"trueLeds": "真正的LED",
|
||||
"lumiBars": "Lumi 条",
|
||||
"outlineBars": "轮廓栏",
|
||||
"roundBars": "圆条"
|
||||
},
|
||||
"queryBuilder": {
|
||||
"standardTags": "标准标签",
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
export const disableAutoUpdates = () => {
|
||||
return process.env['DISABLE_AUTO_UPDATES'];
|
||||
};
|
||||
|
||||
export const isMacOS = () => {
|
||||
return process.platform === 'darwin';
|
||||
};
|
||||
|
||||
export const isWindows = () => {
|
||||
return process.platform === 'win32';
|
||||
};
|
||||
|
||||
export const isLinux = () => {
|
||||
return process.platform === 'linux';
|
||||
};
|
||||
@@ -4,3 +4,4 @@ import './player';
|
||||
import './remote';
|
||||
import './settings';
|
||||
import './discord-rpc';
|
||||
import './visualizer';
|
||||
|
||||
@@ -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,12 +71,14 @@ 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;
|
||||
@@ -191,6 +198,7 @@ const searchRemoteLyrics = async (params: LyricSearchQuery) => {
|
||||
[LyricSource.GENIUS]: [],
|
||||
[LyricSource.LRCLIB]: [],
|
||||
[LyricSource.NETEASE]: [],
|
||||
[LyricSource.SIMPMUSIC]: [],
|
||||
};
|
||||
for (const item of allSearchResults) {
|
||||
results[item.source].push(item);
|
||||
|
||||