Compare commits

..

2 Commits

Author SHA1 Message Date
9e97699e6c fix: seek 2023-11-03 10:09:40 +09:00
a810621762 feat: http api 2023-11-03 10:09:40 +09:00
491 changed files with 17811 additions and 88526 deletions

3
.eslintignore Normal file
View File

@ -0,0 +1,3 @@
.eslintrc.js
rollup.main.config.ts
rollup.preload.config.ts

69
.eslintrc.js Normal file
View File

@ -0,0 +1,69 @@
module.exports = {
extends: [
'eslint:recommended',
'plugin:import/recommended',
'plugin:import/typescript',
'plugin:@typescript-eslint/eslint-recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
],
plugins: ['@typescript-eslint', 'import'],
parser: '@typescript-eslint/parser',
parserOptions: {
project: './tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
ecmaVersion: 'latest'
},
rules: {
'arrow-parens': ['error', 'always'],
'object-curly-spacing': ['error', 'always'],
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': ['off', { checksVoidReturn: false }],
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
"@typescript-eslint/no-non-null-assertion": "off",
'import/first': 'error',
'import/newline-after-import': 'error',
'import/no-default-export': 'off',
'import/no-duplicates': 'error',
'import/order': [
'error',
{
'groups': ['builtin', 'external', ['internal', 'index', 'sibling'], 'parent', 'type'],
'newlines-between': 'always-and-inside-groups',
'alphabetize': {order: 'ignore', caseInsensitive: false}
}
],
'import/prefer-default-export': 'off',
'camelcase': ['error', {properties: 'never'}],
'class-methods-use-this': 'off',
'lines-around-comment': [
'error',
{
beforeBlockComment: false,
afterBlockComment: false,
beforeLineComment: false,
afterLineComment: false,
},
],
'max-len': 'off',
'no-mixed-operators': 'error',
'no-multi-spaces': ['error', {ignoreEOLComments: true}],
'no-tabs': 'error',
'no-void': 'error',
'no-empty': 'off',
'prefer-promise-reject-errors': 'off',
'quotes': ['error', 'single', {
avoidEscape: true,
allowTemplateLiterals: false,
}],
'quote-props': ['error', 'consistent'],
'semi': ['error', 'always'],
},
env: {
browser: true,
node: true,
es6: true,
},
ignorePatterns: ['dist', 'node_modules'],
};

View File

@ -1,5 +1,5 @@
name: Bug Report
description: Report a Pear Desktop bug
description: Report a YouTube Music bug
title: "[Bug]: "
labels: "bug :beetle:"
body:
@ -8,28 +8,22 @@ body:
label: Preflight Checklist
description: Please ensure you've completed all of the following.
options:
- label: I use the latest version of Pear Desktop (Application).
- label: I use the latest version of YouTube Music (Application).
required: true
- label: I have searched the [issue tracker](https://github.com/pear-devs/pear-desktop/issues) for a bug report that matches the one I want to file, without success.
- label: I have searched the [issue tracker](https://github.com/th-ch/youtube-music/issues) for a bug report that matches the one I want to file, without success.
required: true
- label: I understand that **pear-devs/pear-desktop has NO affiliation with Google or YouTube**
- label: I understand that **th-ch/youtube-music has NO affiliation with Google or YouTube**
required: true
- type: input
attributes:
label: Pear Desktop (Application) Version
label: YouTube Music (Application) Version
description: |
What version of the Pear Desktop Application are you using?
What version of the YouTube Music Application are you using?
Note: Please check if this issue is reproducible with the latest stable release.
placeholder: 2.0.0
validations:
required: true
- type: checkboxes
attributes:
label: Checklists
options:
- label: I use the portable version of the Pear Desktop Application.
- label: I can reproduce this issue in the [official version of (WEB) YTM](https://music.youtube.com).
- type: dropdown
attributes:
label: What operating system are you using?
@ -50,7 +44,7 @@ body:
required: true
- type: dropdown
attributes:
label: What CPU architecture are you using?
label: What arch are you using?
options:
- x64
- ia32
@ -60,20 +54,13 @@ body:
required: true
- type: input
attributes:
label: Last Known Working Pear Desktop (Application) version
description: (If applicable) What is the last version of Pear Desktop this worked in?
label: Last Known Working YouTube Music (Application) version
description: (If applicable) What is the last version of YouTube Music this worked in?
placeholder: 1.20.0
- type: textarea
attributes:
label: Reproduction steps
description: Provide steps to reproduce the issue.
placeholder: 1. Enable the X plugin.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
description: A clear and concise description of what you expected to happen. (Add a replication step if applicable)
validations:
required: true
- type: textarea
@ -82,14 +69,7 @@ body:
description: A clear description of what actually happens.
validations:
required: true
- type: textarea
attributes:
label: Enabled plugins
description: Provide the list of plugins you enabled.
placeholder: 1. Album Color Theme
validations:
required: true
- type: textarea
attributes:
label: Additional Information
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.

View File

@ -1,5 +1,5 @@
name: Feature Request
description: Suggest an idea for Pear Desktop
description: Suggest an idea for YouTube Music
title: "[Feature Request]: "
labels: "enhancement :sparkles:"
body:
@ -8,14 +8,14 @@ body:
label: Preflight Checklist
description: Please ensure you've completed all of the following.
options:
- label: I use the latest version of Pear Desktop (Application).
- label: I use the latest version of YouTube Music (Application).
required: true
- label: I have searched the [issue tracker](https://github.com/pear-devs/pear-desktop/issues) for a feature request that matches the one I want to file, without success.
- label: I have searched the [issue tracker](https://github.com/th-ch/youtube-music/issues) for a feature request that matches the one I want to file, without success.
required: true
- type: textarea
attributes:
label: Problem Description
description: A clear and concise description of the problem you are seeking to solve with this feature request.
description: Please add a clear and concise description of the problem you are seeking to solve with this feature request.
validations:
required: true
- type: textarea
@ -33,6 +33,6 @@ body:
- type: textarea
attributes:
label: Additional Information
description: Any other context about the problem.
description: Add any other context about the problem here.
validations:
required: false

View File

@ -1,4 +1,4 @@
name: Build Pear Desktop
name: Build YouTube Music
on:
push:
@ -6,12 +6,11 @@ on:
pull_request:
env:
NODE_VERSION: "22.x"
NODE_VERSION: "20.x"
jobs:
build:
if: github.event.pull_request.draft == false
name: Build Pear Desktop
name: Build YouTube Music
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
@ -19,60 +18,53 @@ jobs:
os: [ macos-latest, ubuntu-latest, windows-latest ]
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v2
with:
version: 10
version: 8
run_install: false
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v5
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Setup NodeJS for macOS
if: startsWith(matrix.os, 'macOS')
uses: actions/setup-node@v5
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
# Only vite build without release if it is a fork, or it is a pull-request
- name: Vite Build
if: github.repository == 'pear-devs/pear-desktop' && github.event_name == 'pull_request'
# Only rollup build without release if it is a fork
- name: Rollup Build
if: github.repository == 'th-ch/youtube-music' && github.event_name == 'pull_request'
run: |
pnpm build
# Build and release if it's the main repository and is not pull-request
- name: Build and release on Mac
if: startsWith(matrix.os, 'macOS') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
if: startsWith(matrix.os, 'macOS') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request')
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pnpm release:mac
- name: Build and release on Linux
if: startsWith(matrix.os, 'ubuntu') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
if: startsWith(matrix.os, 'ubuntu') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request')
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
sudo snap install snapcraft --classic
sudo apt update
sudo apt install -y flatpak flatpak-builder
sudo flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub org.freedesktop.Platform/x86_64/24.08
sudo flatpak install -y flathub org.freedesktop.Sdk/x86_64/24.08
sudo flatpak install -y flathub org.electronjs.Electron2.BaseApp/x86_64/24.08
pnpm release:linux
- name: Build and release on Windows
if: startsWith(matrix.os, 'windows') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
if: startsWith(matrix.os, 'windows') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request')
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
@ -88,30 +80,30 @@ jobs:
release:
runs-on: ubuntu-latest
name: Release Pear Desktop
if: github.repository == 'pear-devs/pear-desktop' && github.ref == 'refs/heads/master'
name: Release YouTube Music
if: github.repository == 'th-ch/youtube-music' && github.ref == 'refs/heads/master'
needs: build
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v2
with:
version: 10
version: 8
run_install: false
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v5
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Setup NodeJS for macOS
if: startsWith(matrix.os, 'macOS')
uses: actions/setup-node@v5
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
@ -150,12 +142,10 @@ jobs:
name: ${{ env.VERSION_TAG }}
replacebody: true
body: |
See [changelog](https://github.com/pear-devs/pear-desktop/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff.
See [changelog](https://github.com/th-ch/youtube-music/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff.
Thanks to all contributors! 🏅
(Note for Windows: `Pear-Desktop-Web-Setup-${{ env.VERSION_TAG }}.exe` is an installer, and `Pear-Desktop-${{ env.VERSION_TAG }}.exe` is a portable version)
- name: Update changelog
if: ${{ env.VERSION_HASH == '' }}
run: |
@ -163,7 +153,7 @@ jobs:
- name: Commit changelog
if: ${{ env.VERSION_HASH == '' }}
uses: stefanzweifel/git-auto-commit-action@v6
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Update changelog for ${{ env.VERSION_TAG }}
file_pattern: "changelog.md"

View File

@ -12,11 +12,9 @@ permissions:
jobs:
dependency-review:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: "Checkout Repository"
uses: actions/checkout@v5
uses: actions/checkout@v4
- name: "Dependency Review"
uses: actions/dependency-review-action@v4
uses: actions/dependency-review-action@v3

View File

@ -1,147 +0,0 @@
name: Build PR Artifacts
on:
pull_request:
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "22.x"
jobs:
check-permissions:
if: github.event.pull_request.draft == false
name: Check if user has write access
runs-on: ubuntu-latest
outputs:
has-write-access: ${{ steps.check.outputs.require-result }}
steps:
- name: Check user permission
id: check
uses: actions-cool/check-user-permission@v2
with:
require: write
username: ${{ github.event.pull_request.user.login }}
build:
name: Build ${{ matrix.os }}
needs: check-permissions
if: needs.check-permissions.outputs.has-write-access == 'true'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v5
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Setup NodeJS for macOS
if: startsWith(matrix.os, 'macOS')
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build on macOS
if: startsWith(matrix.os, 'macOS')
run: |
pnpm dist:mac
pnpm dist:mac:arm64
- name: Install Linux dependencies
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo snap install snapcraft --classic
sudo apt update
sudo apt install -y flatpak flatpak-builder
sudo flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub org.freedesktop.Platform/x86_64/24.08
sudo flatpak install -y flathub org.freedesktop.Sdk/x86_64/24.08
sudo flatpak install -y flathub org.electronjs.Electron2.BaseApp/x86_64/24.08
- name: Build on Linux
if: startsWith(matrix.os, 'ubuntu')
run: |
pnpm dist:linux
pnpm dist:linux:deb-arm64
pnpm dist:linux:rpm-arm64
- name: Build on Windows
if: startsWith(matrix.os, 'windows')
run: |
pnpm dist:win
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-${{ matrix.os }}
path: pack/
retention-days: 7
if-no-files-found: error
comment:
name: Comment on PR
needs: [check-permissions, build]
if: always() && needs.check-permissions.outputs.has-write-access == 'true'
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Create comment
uses: actions/github-script@v7
with:
script: |
const runId = context.runId;
const runUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}`;
const buildResult = '${{ needs.build.result }}';
let comment;
if (buildResult === 'success') {
comment = `## 🚀 Build Artifacts Ready!
The builds have completed successfully. You can download the artifacts from the workflow run:
**[📦 Download Artifacts](${runUrl})**
### Available builds:
- **Windows**: \`build-artifacts-windows-latest\`
- **macOS**: \`build-artifacts-macos-latest\`
- **Linux**: \`build-artifacts-ubuntu-latest\`
*Note: Artifacts are available for 7 days.*`;
} else if (buildResult === 'failure') {
comment = `## ❌ Build Failed
Unfortunately, one or more builds failed. Please check the workflow run for details:
**[View Workflow Run](${runUrl})**`;
} else {
comment = `## ⚠️ Build Status: ${buildResult}
The build process completed with status: **${buildResult}**
**[View Workflow Run](${runUrl})**`;
}
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
});

View File

@ -1,42 +0,0 @@
name: reviewdog
on: [pull_request_target]
env:
NODE_VERSION: "22.x"
jobs:
eslint:
if: github.event.pull_request.draft == false
name: runner / eslint
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
checks: write
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- name: Setup NodeJS
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- uses: reviewdog/action-eslint@v1.34.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review # Change reporter.
eslint_flags: './src'
fail_level: error

View File

@ -15,16 +15,12 @@ jobs:
name: Publish winget package
runs-on: ubuntu-latest
steps:
- name: Set winget version env
env:
TAG_NAME: ${{ inputs.tag_name || github.event.release.tag_name }}
run: echo "WINGET_TAG_NAME=$(echo ${TAG_NAME#v})" >> $GITHUB_ENV
- name: Submit package to Windows Package Manager Community Repository
uses: vedantmgoyal2009/winget-releaser@main
uses: vedantmgoyal2009/winget-releaser@v2
with:
identifier: pear-devs.PearDesktop
installers-regex: '^Pear-Desktop-Web-Setup-[\d\.]+\.exe$'
version: ${{ env.WINGET_TAG_NAME }}
identifier: th-ch.YouTubeMusic
installers-regex: '^YouTube-Music-Web-Setup-[\d\.]+\.exe$'
version: ${{ inputs.tag_name || github.event.release.tag_name }}
release-tag: ${{ inputs.tag_name || github.event.release.tag_name }}
token: ${{ secrets.WINGET_ACC_TOKEN }}
fork-user: pear-desktop-winget
fork-user: youtube-music-winget

4
.gitignore vendored
View File

@ -1,6 +1,7 @@
node_modules
/dist
/pack
electron-builder.yml
.vscode/settings.json
.idea
@ -11,6 +12,3 @@ node_modules
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.vite-inspect
.DS_Store

View File

@ -1,7 +1,5 @@
{
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"trailingComma": "all",
"quoteProps": "consistent"
"singleQuote": true
}

291
README.md
View File

@ -1,291 +0,0 @@
<div align="center">
# :pear: Pear Desktop
[![GitHub release](https://img.shields.io/github/release/pear-devs/pear-desktop.svg?style=for-the-badge)](https://github.com/pear-devs/pear-desktop/releases/)
[![GitHub license](https://img.shields.io/github/license/pear-devs/pear-desktop.svg?style=for-the-badge)](https://github.com/pear-devs/pear-desktop/blob/master/license)
[![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/pear-devs/pear-desktop/blob/master/eslint.config.mjs)
[![Build status](https://img.shields.io/github/actions/workflow/status/pear-devs/pear-desktop/build.yml?branch=master&style=for-the-badge)](https://GitHub.com/pear-devs/pear-desktop/releases/)
[![GitHub All Releases](https://img.shields.io/github/downloads/pear-devs/pear-desktop/total?style=for-the-badge)](https://GitHub.com/pear-devs/pear-desktop/releases/)
<!--[![AUR](https://img.shields.io/aur/version/pear-desktop-bin?color=blueviolet&style=for-the-badge)](https://aur.archlinux.org/packages/pear-desktop-bin)-->
[![Known Vulnerabilities](https://snyk.io/test/github/pear-devs/pear-desktop/badge.svg)](https://snyk.io/test/github/pear-devs/pear-desktop)
</div>
<!--![Screenshot](web/screenshot.png "Screenshot")-->
- Native look & feel extension
> [!IMPORTANT]
> ⚠️ Disclaimer
>
> **No Affiliation**
>
> This project, and its contributors, are not affiliated with, authorized by, endorsed by, or in any way officially connected with Google LLC, YouTube, or any of their subsidiaries or affiliates. **This is an independent, non-profit, and unofficial extension developed by a team of volunteers with the goal of providing a desktop experience.**
>
> **Trademarks**
>
> The names "Google" and "YouTube Music", as well as related names, marks, emblems, and images, are registered trademarks of their respective owners. Any use of these trademarks is for identification and reference purposes only and does not imply any association with the trademark holder. We have no intention of infringing upon these trademarks or causing harm to the trademark holders.
>
> **Limitation of Liability**
>
> This application (extension) is provided "AS IS", and you use it at your own risk. In no event shall the developers or contributors be liable for any claim, damages, or other liability, including any legal consequences, arising from, out of, or in connection with the software or the use or other dealings in the software. The responsibility for any and all outcomes of using this software rests entirely with the user.
## Content
- [Features](#features)
- [Translation](#translation)
- [Download](#download)
- [Arch Linux](#arch-linux)
- [MacOS](#macos)
- [Windows](#windows)
- [How to install without a network connection? (in Windows)](#how-to-install-without-a-network-connection-in-windows)
- [Themes](#themes)
- [Dev](#dev)
- [Build your own plugins](#build-your-own-plugins)
- [Creating a plugin](#creating-a-plugin)
- [Common use cases](#common-use-cases)
- [Build](#build)
- [Production Preview](#production-preview)
- [Tests](#tests)
- [License](#license)
- [FAQ](#faq)
## Translation
You can help with translation on [Hosted Weblate](https://bit.ly/48n5YF7).
<a href="https://bit.ly/48n5YF7/">
<img src="https://bit.ly/4q83L6S" alt="translation status" />
<img src="https://bit.ly/4h3zBxo" alt="translation status 2" />
</a>
## Download
You can check out the [latest release](https://github.com/pear-devs/pear-desktop/releases/latest) to quickly find the
latest version.
### Arch Linux
Install the [`pear-desktop`](https://aur.archlinux.org/packages/pear-desktop) package from the AUR. For AUR installation instructions, take a look at
this [wiki page](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
### macOS
You can install the app using Homebrew (see the [cask definition](https://github.com/pear-devs/pear-desktop-homebrew)):
```bash
brew install pear-devs/pear-desktop
```
If you install the app manually and get an error "is damaged and cant be opened." when launching the app, run the following in the Terminal:
```bash
/usr/bin/xattr -cr /Applications/Pear\ Desktop.app
```
### Windows
You can use the [Scoop package manager](https://scoop.sh) to install the `pear-desktop` package from
the [`extras` bucket](https://github.com/ScoopInstaller/Extras).
```bash
scoop bucket add extras
scoop install extras/pear-desktop
```
Alternately you can use [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), Windows 11s
official CLI package manager to install the `pear-devs.pear-desktop` package.
*Note: Microsoft Defender SmartScreen might block the installation since it is from an "unknown publisher". This is also
true for the manual installation when trying to run the executable(.exe) after a manual download here on github (same
file).*
```bash
winget install pear-devs.pear-desktop
```
#### How to install without a network connection? (in Windows)
- Download the `*.nsis.7z` file for _your device architecture_ in [release page](https://github.com/pear-devs/pear-desktop/releases/latest).
- `x64` for 64-bit Windows
- `ia32` for 32-bit Windows
- `arm64` for ARM64 Windows
- Download installer in release page. (`*-Setup.exe`)
- Place them in the **same directory**.
- Run the installer.
## Themes
You can load CSS files to change the look of the application (Options > Visual Tweaks > Themes).
Some predefined themes are available in https://github.com/kerichdev/themes-for-ytmdesktop-player.
## Dev
```bash
git clone https://github.com/pear-devs/pear-desktop
cd pear-desktop
pnpm install --frozen-lockfile
pnpm dev
```
## Build your own plugins
Using plugins, you can:
- manipulate the app - the `BrowserWindow` from electron is passed to the plugin handler
- change the front by manipulating the HTML/CSS
### Creating a plugin
Create a folder in `src/plugins/YOUR-PLUGIN-NAME`:
- `index.ts`: the main file of the plugin
```typescript
import style from './style.css?inline'; // import style as inline
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // if value is true, ytmusic show restart dialog
config: {
enabled: false,
}, // your custom config
stylesheets: [style], // your custom style,
menu: async ({ getConfig, setConfig }) => {
// All *Config methods are wrapped Promise<T>
const config = await getConfig();
return [
{
label: 'menu',
submenu: [1, 2, 3].map((value) => ({
label: `value ${value}`,
type: 'radio',
checked: config.value === value,
click() {
setConfig({ value });
},
})),
},
];
},
backend: {
start({ window, ipc }) {
window.maximize();
// you can communicate with renderer plugin
ipc.handle('some-event', () => {
return 'hello';
});
},
// it fired when config changed
onConfigChange(newConfig) { /* ... */ },
// it fired when plugin disabled
stop(context) { /* ... */ },
},
renderer: {
async start(context) {
console.log(await context.ipc.invoke('some-event'));
},
// Only renderer available hook
onPlayerApiReady(api, context) {
// set plugin config easily
context.setConfig({ myConfig: api.getVolume() });
},
onConfigChange(newConfig) { /* ... */ },
stop(_context) { /* ... */ },
},
preload: {
async start({ getConfig }) {
const config = await getConfig();
},
onConfigChange(newConfig) {},
stop(_context) {},
},
});
```
### Common use cases
- injecting custom CSS: create a `style.css` file in the same folder then:
```typescript
// index.ts
import style from './style.css?inline'; // import style as inline
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // if value is true, pear-desktop will show a restart dialog
config: {
enabled: false,
}, // your custom config
stylesheets: [style], // your custom style
renderer() {} // define renderer hook
});
```
- If you want to change the HTML:
```typescript
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // if value is true, ytmusic will show the restart dialog
config: {
enabled: false,
}, // your custom config
renderer() {
console.log('hello from renderer');
} // define renderer hook
});
```
- communicating between the front and back: can be done using the ipcMain module from electron. See `index.ts` file and
example in `sponsorblock` plugin.
## Build
1. Clone the repo
2. Follow [this guide](https://pnpm.io/installation) to install `pnpm`
3. Run `pnpm install --frozen-lockfile` to install dependencies
4. Run `pnpm build:OS`
- `pnpm dist:win` - Windows
- `pnpm dist:linux` - Linux (amd64)
- `pnpm dist:linux:deb-arm64` - Linux (arm64 for Debian)
- `pnpm dist:linux:rpm-arm64` - Linux (arm64 for Fedora)
- `pnpm dist:mac` - macOS (amd64)
- `pnpm dist:mac:arm64` - macOS (arm64)
Builds the app for macOS, Linux, and Windows,
using [electron-builder](https://github.com/electron-userland/electron-builder).
## Production Preview
```bash
pnpm start
```
## Tests
```bash
pnpm test
```
Uses [Playwright](https://playwright.dev/) to test the app.
## License
MIT © [pear-devs](https://github.com/pear-devs/pear-desktop)
## FAQ
### Why apps menu isn't showing up?
If `Hide Menu` option is on - you can show the menu with the <kbd>alt</kbd> key (or <kbd>\`</kbd> [backtick] if using
the in-app-menu plugin)

View File

@ -1,50 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Cannot load Pear Desktop</title>
<style>
body {
background: #000;
}
.container {
margin: 0;
font-family: Roboto, Arial, sans-serif;
font-size: 20px;
font-weight: 500;
color: rgba(255, 255, 255, 0.5);
position: absolute;
top: 50%;
left: 50%;
margin-right: -50%;
transform: translate(-50%, -50%);
text-align: center;
}
.button {
background: #065fd4;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: white;
font: inherit;
text-transform: uppercase;
text-decoration: none;
border-radius: 2px;
font-size: 16px;
font-weight: normal;
text-align: center;
padding: 8px 22px;
display: inline-block;
}
</style>
</head>
<body>
<div class="container">
<p>Cannot load Pear Desktop… Internet disconnected?</p>
<a class="button" href="#" onclick="reload()">Retry</a>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 KiB

View File

@ -1,607 +0,0 @@
:root {
--mdui-breakpoint-xs: 0px;
--mdui-breakpoint-sm: 600px;
--mdui-breakpoint-md: 840px;
--mdui-breakpoint-lg: 1080px;
--mdui-breakpoint-xl: 1440px;
--mdui-breakpoint-xxl: 1920px;
}
:root {
--mdui-color-primary-light: 103, 80, 164;
--mdui-color-primary-container-light: 234, 221, 255;
--mdui-color-on-primary-light: 255, 255, 255;
--mdui-color-on-primary-container-light: 33, 0, 94;
--mdui-color-inverse-primary-light: 208, 188, 255;
--mdui-color-secondary-light: 98, 91, 113;
--mdui-color-secondary-container-light: 232, 222, 248;
--mdui-color-on-secondary-light: 255, 255, 255;
--mdui-color-on-secondary-container-light: 30, 25, 43;
--mdui-color-tertiary-light: 125, 82, 96;
--mdui-color-tertiary-container-light: 255, 216, 228;
--mdui-color-on-tertiary-light: 255, 255, 255;
--mdui-color-on-tertiary-container-light: 55, 11, 30;
--mdui-color-surface-light: 254, 247, 255;
--mdui-color-surface-dim-light: 222, 216, 225;
--mdui-color-surface-bright-light: 254, 247, 255;
--mdui-color-surface-container-lowest-light: 255, 255, 255;
--mdui-color-surface-container-low-light: 247, 242, 250;
--mdui-color-surface-container-light: 243, 237, 247;
--mdui-color-surface-container-high-light: 236, 230, 240;
--mdui-color-surface-container-highest-light: 230, 224, 233;
--mdui-color-surface-variant-light: 231, 224, 236;
--mdui-color-on-surface-light: 28, 27, 31;
--mdui-color-on-surface-variant-light: 73, 69, 78;
--mdui-color-inverse-surface-light: 49, 48, 51;
--mdui-color-inverse-on-surface-light: 244, 239, 244;
--mdui-color-background-light: 254, 247, 255;
--mdui-color-on-background-light: 28, 27, 31;
--mdui-color-error-light: 179, 38, 30;
--mdui-color-error-container-light: 249, 222, 220;
--mdui-color-on-error-light: 255, 255, 255;
--mdui-color-on-error-container-light: 65, 14, 11;
--mdui-color-outline-light: 121, 116, 126;
--mdui-color-outline-variant-light: 196, 199, 197;
--mdui-color-shadow-light: 0, 0, 0;
--mdui-color-surface-tint-color-light: 103, 80, 164;
--mdui-color-scrim-light: 0, 0, 0;
--mdui-color-primary-dark: 208, 188, 255;
--mdui-color-primary-container-dark: 79, 55, 139;
--mdui-color-on-primary-dark: 55, 30, 115;
--mdui-color-on-primary-container-dark: 234, 221, 255;
--mdui-color-inverse-primary-dark: 103, 80, 164;
--mdui-color-secondary-dark: 204, 194, 220;
--mdui-color-secondary-container-dark: 74, 68, 88;
--mdui-color-on-secondary-dark: 51, 45, 65;
--mdui-color-on-secondary-container-dark: 232, 222, 248;
--mdui-color-tertiary-dark: 239, 184, 200;
--mdui-color-tertiary-container-dark: 99, 59, 72;
--mdui-color-on-tertiary-dark: 73, 37, 50;
--mdui-color-on-tertiary-container-dark: 255, 216, 228;
--mdui-color-surface-dark: 20, 18, 24;
--mdui-color-surface-dim-dark: 20, 18, 24;
--mdui-color-surface-bright-dark: 59, 56, 62;
--mdui-color-surface-container-lowest-dark: 15, 13, 19;
--mdui-color-surface-container-low-dark: 29, 27, 32;
--mdui-color-surface-container-dark: 33, 31, 38;
--mdui-color-surface-container-high-dark: 43, 41, 48;
--mdui-color-surface-container-highest-dark: 54, 52, 59;
--mdui-color-surface-variant-dark: 73, 69, 79;
--mdui-color-on-surface-dark: 230, 225, 229;
--mdui-color-on-surface-variant-dark: 202, 196, 208;
--mdui-color-inverse-surface-dark: 230, 225, 229;
--mdui-color-inverse-on-surface-dark: 49, 48, 51;
--mdui-color-background-dark: 20, 18, 24;
--mdui-color-on-background-dark: 230, 225, 229;
--mdui-color-error-dark: 242, 184, 181;
--mdui-color-error-container-dark: 140, 29, 24;
--mdui-color-on-error-dark: 96, 20, 16;
--mdui-color-on-error-container-dark: 249, 222, 220;
--mdui-color-outline-dark: 147, 143, 153;
--mdui-color-outline-variant-dark: 68, 71, 70;
--mdui-color-shadow-dark: 0, 0, 0;
--mdui-color-surface-tint-color-dark: 208, 188, 255;
--mdui-color-scrim-dark: 0, 0, 0;
}
.mdui-theme-dark,
:root {
color-scheme: dark;
--mdui-color-primary: var(--mdui-color-primary-dark);
--mdui-color-primary-container: var(--mdui-color-primary-container-dark);
--mdui-color-on-primary: var(--mdui-color-on-primary-dark);
--mdui-color-on-primary-container: var(
--mdui-color-on-primary-container-dark
);
--mdui-color-inverse-primary: var(--mdui-color-inverse-primary-dark);
--mdui-color-secondary: var(--mdui-color-secondary-dark);
--mdui-color-secondary-container: var(--mdui-color-secondary-container-dark);
--mdui-color-on-secondary: var(--mdui-color-on-secondary-dark);
--mdui-color-on-secondary-container: var(
--mdui-color-on-secondary-container-dark
);
--mdui-color-tertiary: var(--mdui-color-tertiary-dark);
--mdui-color-tertiary-container: var(--mdui-color-tertiary-container-dark);
--mdui-color-on-tertiary: var(--mdui-color-on-tertiary-dark);
--mdui-color-on-tertiary-container: var(
--mdui-color-on-tertiary-container-dark
);
--mdui-color-surface: var(--mdui-color-surface-dark);
--mdui-color-surface-dim: var(--mdui-color-surface-dim-dark);
--mdui-color-surface-bright: var(--mdui-color-surface-bright-dark);
--mdui-color-surface-container-lowest: var(
--mdui-color-surface-container-lowest-dark
);
--mdui-color-surface-container-low: var(
--mdui-color-surface-container-low-dark
);
--mdui-color-surface-container: var(--mdui-color-surface-container-dark);
--mdui-color-surface-container-high: var(
--mdui-color-surface-container-high-dark
);
--mdui-color-surface-container-highest: var(
--mdui-color-surface-container-highest-dark
);
--mdui-color-surface-variant: var(--mdui-color-surface-variant-dark);
--mdui-color-on-surface: var(--mdui-color-on-surface-dark);
--mdui-color-on-surface-variant: var(--mdui-color-on-surface-variant-dark);
--mdui-color-inverse-surface: var(--mdui-color-inverse-surface-dark);
--mdui-color-inverse-on-surface: var(--mdui-color-inverse-on-surface-dark);
--mdui-color-background: var(--mdui-color-background-dark);
--mdui-color-on-background: var(--mdui-color-on-background-dark);
--mdui-color-error: var(--mdui-color-error-dark);
--mdui-color-error-container: var(--mdui-color-error-container-dark);
--mdui-color-on-error: var(--mdui-color-on-error-dark);
--mdui-color-on-error-container: var(--mdui-color-on-error-container-dark);
--mdui-color-outline: var(--mdui-color-outline-dark);
--mdui-color-outline-variant: var(--mdui-color-outline-variant-dark);
--mdui-color-shadow: var(--mdui-color-shadow-dark);
--mdui-color-surface-tint-color: var(--mdui-color-surface-tint-color-dark);
--mdui-color-scrim: var(--mdui-color-scrim-dark);
color: rgb(var(--mdui-color-on-background));
background-color: rgb(var(--mdui-color-background));
}
:root {
--mdui-elevation-level0: none;
--mdui-elevation-level1: 0 0.5px 1.5px 0 rgba(var(--mdui-color-shadow), 19%),
0 0 1px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level2: 0 0.85px 3px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.25px 1px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level3: 0 1.25px 5px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.3333px 1.5px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level4: 0 1.85px 6.25px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.5px 1.75px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level5: 0 2.75px 9px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.25px 3px 0 rgba(var(--mdui-color-shadow), 3.9%);
}
:root {
--mdui-motion-easing-linear: cubic-bezier(0, 0, 1, 1);
--mdui-motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
--mdui-motion-easing-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);
--mdui-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
--mdui-motion-easing-emphasized: var(--mdui-motion-easing-standard);
--mdui-motion-easing-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);
--mdui-motion-easing-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
--mdui-motion-duration-short1: 50ms;
--mdui-motion-duration-short2: 100ms;
--mdui-motion-duration-short3: 150ms;
--mdui-motion-duration-short4: 200ms;
--mdui-motion-duration-medium1: 250ms;
--mdui-motion-duration-medium2: 300ms;
--mdui-motion-duration-medium3: 350ms;
--mdui-motion-duration-medium4: 400ms;
--mdui-motion-duration-long1: 450ms;
--mdui-motion-duration-long2: 500ms;
--mdui-motion-duration-long3: 550ms;
--mdui-motion-duration-long4: 600ms;
--mdui-motion-duration-extra-long1: 700ms;
--mdui-motion-duration-extra-long2: 800ms;
--mdui-motion-duration-extra-long3: 900ms;
--mdui-motion-duration-extra-long4: 1000ms;
}
.mdui-prose {
line-height: 1.75;
word-wrap: break-word;
}
.mdui-prose :first-child {
margin-top: 0;
}
.mdui-prose :last-child {
margin-bottom: 0;
}
.mdui-prose code,
.mdui-prose kbd,
.mdui-prose pre,
.mdui-prose pre tt,
.mdui-prose samp {
font-family: Consolas, Courier, 'Courier New', monospace;
}
.mdui-prose caption {
text-align: left;
}
.mdui-prose [draggable='true'],
.mdui-prose [draggable] {
cursor: move;
}
.mdui-prose [draggable='false'] {
cursor: inherit;
}
.mdui-prose dl,
.mdui-prose form,
.mdui-prose ol,
.mdui-prose p,
.mdui-prose ul {
margin-top: 1.25em;
margin-bottom: 1.25em;
}
.mdui-prose a {
text-decoration: none;
outline: 0;
color: rgb(var(--mdui-color-primary));
}
.mdui-prose a:focus,
.mdui-prose a:hover {
border-bottom: 0.0625rem solid rgb(var(--mdui-color-primary));
}
.mdui-prose small {
font-size: 0.875em;
}
.mdui-prose strong {
font-weight: 600;
}
.mdui-prose blockquote {
margin: 1.6em 2em;
padding-left: 1em;
border-left: 0.25rem solid rgb(var(--mdui-color-surface-variant));
}
@media only screen and (max-width: 599.98px) {
.mdui-prose blockquote {
margin: 1.6em 0;
}
}
.mdui-prose blockquote footer {
font-size: 86%;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose mark {
color: inherit;
background-color: rgb(var(--mdui-color-secondary-container));
border-bottom: 0.0625rem solid rgb(var(--mdui-color-secondary));
margin: 0 0.375rem;
padding: 0.125rem;
}
.mdui-prose h1,
.mdui-prose h2,
.mdui-prose h3,
.mdui-prose h4,
.mdui-prose h5,
.mdui-prose h6 {
font-weight: 400;
}
.mdui-prose h1 small,
.mdui-prose h2 small,
.mdui-prose h3 small,
.mdui-prose h4 small,
.mdui-prose h5 small,
.mdui-prose h6 small {
font-weight: inherit;
font-size: 65%;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose h1 strong,
.mdui-prose h2 strong,
.mdui-prose h3 strong,
.mdui-prose h4 strong,
.mdui-prose h5 strong,
.mdui-prose h6 strong {
font-weight: 600;
}
.mdui-prose h1 {
font-size: 2.5em;
margin-top: 0;
margin-bottom: 1.25em;
line-height: 1.1111;
}
.mdui-prose h2 {
font-size: 1.875em;
margin-top: 2.25em;
margin-bottom: 1.125em;
line-height: 1.3333;
}
.mdui-prose h3 {
font-size: 1.5em;
margin-top: 2em;
margin-bottom: 1em;
line-height: 1.6;
}
.mdui-prose h4 {
font-size: 1.25em;
margin-top: 1.875em;
margin-bottom: 0.875em;
line-height: 1.5;
}
.mdui-prose h2 + *,
.mdui-prose h3 + *,
.mdui-prose h4 + *,
.mdui-prose hr + * {
margin-top: 0;
}
.mdui-prose code,
.mdui-prose kbd {
font-size: 0.875em;
color: rgb(var(--mdui-color-on-surface-container));
background-color: rgba(var(--mdui-color-surface-variant), 0.28);
padding: 0.125rem 0.375rem;
border-radius: var(--mdui-shape-corner-extra-small);
}
.mdui-prose kbd {
font-size: 0.9em;
}
.mdui-prose abbr[title] {
text-decoration: none;
cursor: help;
border-bottom: 0.0625rem dotted rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose ins,
.mdui-prose u {
text-decoration: none;
border-bottom: 0.0625rem solid rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose del {
text-decoration: line-through;
}
.mdui-prose hr {
margin-top: 3em;
margin-bottom: 3em;
border: none;
border-bottom: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose pre {
margin-top: 1.7143em;
margin-bottom: 1.7143em;
}
.mdui-prose pre code {
padding: 0.8571em 1.1429em;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
background-color: rgb(var(--mdui-color-surface-container));
color: rgb(var(--mdui-color-on-surface-container));
border-radius: var(--mdui-shape-corner-extra-small);
}
.mdui-prose ol,
.mdui-prose ul {
padding-left: 1.625em;
}
.mdui-prose ul {
list-style-type: disc;
}
.mdui-prose ol {
list-style-type: decimal;
}
.mdui-prose ol[type='A'] {
list-style-type: upper-alpha;
}
.mdui-prose ol[type='a'] {
list-style-type: lower-alpha;
}
.mdui-prose ol[type='I'] {
list-style-type: upper-roman;
}
.mdui-prose ol[type='i'] {
list-style-type: lower-roman;
}
.mdui-prose ol[type='1'] {
list-style-type: decimal;
}
.mdui-prose li {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.mdui-prose ol > li,
.mdui-prose ul > li {
padding-left: 0.375em;
}
.mdui-prose ol > li > p,
.mdui-prose ul > li > p {
margin-top: 0.75em;
margin-bottom: 0.75em;
}
.mdui-prose ol > li > :first-child,
.mdui-prose ul > li > :first-child {
margin-top: 1.25em;
}
.mdui-prose ol > li > :last-child,
.mdui-prose ul > li > :last-child {
margin-bottom: 1.25em;
}
.mdui-prose ol > li::marker {
font-weight: 400;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose ul > li::marker {
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose ol ol,
.mdui-prose ol ul,
.mdui-prose ul ol,
.mdui-prose ul ul {
margin-top: 0.75em;
margin-bottom: 0.75em;
}
.mdui-prose fieldset,
.mdui-prose img {
border: none;
}
.mdui-prose figure,
.mdui-prose img,
.mdui-prose video {
margin-top: 2em;
margin-bottom: 2em;
max-width: 100%;
}
.mdui-prose figure > * {
margin-top: 0;
margin-bottom: 0;
}
.mdui-prose figcaption {
font-size: 0.875em;
line-height: 1.4286;
margin-top: 0.8571em;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose figcaption:empty::before {
z-index: -1;
cursor: text;
content: attr(placeholder);
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose table {
margin-top: 2em;
margin-bottom: 2em;
border: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
border-radius: var(--mdui-shape-corner-large);
}
.mdui-table {
width: 100%;
overflow-x: auto;
margin-top: 2em;
margin-bottom: 2em;
border: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
border-radius: var(--mdui-shape-corner-large);
}
.mdui-table table {
margin-top: 0;
margin-bottom: 0;
border: none;
border-radius: 0;
}
.mdui-prose table,
.mdui-table table {
width: 100%;
text-align: left;
border-collapse: collapse;
border-spacing: 0;
}
.mdui-prose td,
.mdui-prose th,
.mdui-table td,
.mdui-table th {
border-top: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose td:not(:first-child),
.mdui-prose th:not(:first-child),
.mdui-table td:not(:first-child),
.mdui-table th:not(:first-child) {
border-left: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose td:not(:last-child),
.mdui-prose th:not(:last-child),
.mdui-table td:not(:last-child),
.mdui-table th:not(:last-child) {
border-right: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose tfoot td,
.mdui-prose tfoot th,
.mdui-prose thead td,
.mdui-prose thead th,
.mdui-table tfoot td,
.mdui-table tfoot th,
.mdui-table thead td,
.mdui-table thead th {
position: relative;
vertical-align: middle;
padding: 1.125rem 1rem;
font-weight: var(--mdui-typescale-title-medium-weight);
letter-spacing: var(--mdui-typescale-title-medium-tracking);
line-height: var(--mdui-typescale-title-medium-line-height);
color: rgb(var(--mdui-color-on-surface-variant));
box-shadow: var(--mdui-elevation-level1);
}
.mdui-prose tbody td,
.mdui-prose tbody th,
.mdui-table tbody td,
.mdui-table tbody th {
padding: 0.875rem 1rem;
}
.mdui-prose tbody th,
.mdui-table tbody th {
vertical-align: middle;
font-weight: inherit;
}
.mdui-prose tbody td,
.mdui-table tbody td {
vertical-align: baseline;
}
.mdui-prose tbody:first-child tr:first-child td,
.mdui-prose thead:first-child tr:first-child th,
.mdui-table tbody:first-child tr:first-child td,
.mdui-table thead:first-child tr:first-child th {
border-top: 0;
}
:root {
--mdui-shape-corner-none: 0;
--mdui-shape-corner-extra-small: 0.25rem;
--mdui-shape-corner-small: 0.5rem;
--mdui-shape-corner-medium: 0.75rem;
--mdui-shape-corner-large: 1rem;
--mdui-shape-corner-extra-large: 1.75rem;
--mdui-shape-corner-full: 1000rem;
}
:root {
--mdui-state-layer-hover: 0.08;
--mdui-state-layer-focus: 0.12;
--mdui-state-layer-pressed: 0.12;
--mdui-state-layer-dragged: 0.16;
}
:root {
--mdui-typescale-display-large-weight: 400;
--mdui-typescale-display-medium-weight: 400;
--mdui-typescale-display-small-weight: 400;
--mdui-typescale-display-large-line-height: 4rem;
--mdui-typescale-display-medium-line-height: 3.25rem;
--mdui-typescale-display-small-line-height: 2.75rem;
--mdui-typescale-display-large-size: 3.5625rem;
--mdui-typescale-display-medium-size: 2.8125rem;
--mdui-typescale-display-small-size: 2.25rem;
--mdui-typescale-display-large-tracking: 0rem;
--mdui-typescale-display-medium-tracking: 0rem;
--mdui-typescale-display-small-tracking: 0rem;
--mdui-typescale-headline-large-weight: 400;
--mdui-typescale-headline-medium-weight: 400;
--mdui-typescale-headline-small-weight: 400;
--mdui-typescale-headline-large-line-height: 2.5rem;
--mdui-typescale-headline-medium-line-height: 2.25rem;
--mdui-typescale-headline-small-line-height: 2rem;
--mdui-typescale-headline-large-size: 2rem;
--mdui-typescale-headline-medium-size: 1.75rem;
--mdui-typescale-headline-small-size: 1.5rem;
--mdui-typescale-headline-large-tracking: 0rem;
--mdui-typescale-headline-medium-tracking: 0rem;
--mdui-typescale-headline-small-tracking: 0rem;
--mdui-typescale-title-large-weight: 400;
--mdui-typescale-title-medium-weight: 500;
--mdui-typescale-title-small-weight: 500;
--mdui-typescale-title-large-line-height: 1.75rem;
--mdui-typescale-title-medium-line-height: 1.5rem;
--mdui-typescale-title-small-line-height: 1.25rem;
--mdui-typescale-title-large-size: 1.375rem;
--mdui-typescale-title-medium-size: 1rem;
--mdui-typescale-title-small-size: 0.875rem;
--mdui-typescale-title-large-tracking: 0rem;
--mdui-typescale-title-medium-tracking: 0.009375rem;
--mdui-typescale-title-small-tracking: 0.00625rem;
--mdui-typescale-label-large-weight: 500;
--mdui-typescale-label-medium-weight: 500;
--mdui-typescale-label-small-weight: 500;
--mdui-typescale-label-large-line-height: 1.25rem;
--mdui-typescale-label-medium-line-height: 1rem;
--mdui-typescale-label-small-line-height: 0.375rem;
--mdui-typescale-label-large-size: 0.875rem;
--mdui-typescale-label-medium-size: 0.75rem;
--mdui-typescale-label-small-size: 0.6875rem;
--mdui-typescale-label-large-tracking: 0.00625rem;
--mdui-typescale-label-medium-tracking: 0.03125rem;
--mdui-typescale-label-small-tracking: 0.03125rem;
--mdui-typescale-body-large-weight: 400;
--mdui-typescale-body-medium-weight: 400;
--mdui-typescale-body-small-weight: 400;
--mdui-typescale-body-large-line-height: 1.5rem;
--mdui-typescale-body-medium-line-height: 1.25rem;
--mdui-typescale-body-small-line-height: 1rem;
--mdui-typescale-body-large-size: 1rem;
--mdui-typescale-body-medium-size: 0.875rem;
--mdui-typescale-body-small-size: 0.75rem;
--mdui-typescale-body-large-tracking: 0.009375rem;
--mdui-typescale-body-medium-tracking: 0.015625rem;
--mdui-typescale-body-small-tracking: 0.025rem;
}
.mdui-lock-screen {
overflow: hidden !important;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
assets/youtube-music.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

6
assets/youtube-music.svg Normal file
View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 176 176" width="32" height="32">
<circle fill="red" cx="88" cy="88" r="88"/>
<path fill="#FFF"
d="M88 46c23.1 0 42 18.8 42 42s-18.8 42-42 42-42-18.8-42-42 18.9-42 42-42m0-4c-25.4 0-46 20.6-46 46s20.6 46 46 46 46-20.6 46-46-20.6-46-46-46z"/>
<path fill="#FFF" d="M72 111l39-24-39-22z"/>
</svg>

After

Width:  |  Height:  |  Size: 353 B

File diff suppressed because it is too large Load Diff

BIN
docs/favicon/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
docs/favicon/favicon_32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

BIN
docs/favicon/favicon_48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

BIN
docs/favicon/favicon_96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

9
docs/img/adblock.svg Normal file
View File

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400">
<g transform="translate(183.604 196.396)" stroke="#fff" stroke-width="2.23">
<path
style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none"
d="M-116.99 106.245l31.82 31.82 236.31-236.31-31.82-31.82z" color="#000" font-weight="400"
font-family="Sans" overflow="visible" fill="#fff" stroke="none"/>
<circle r="171.304" cy="4" cx="16" fill="none" stroke-width="44.6"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 588 B

23
docs/img/bg-bottom.svg Normal file
View File

@ -0,0 +1,23 @@
<svg width="1440" height="347" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="a">
<stop stop-color="#606483" stop-opacity="0" offset="0%"/>
<stop stop-color="#0B0D19" stop-opacity=".72" offset="100%"/>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="39.334%" y2="79.282%" id="b">
<stop stop-color="#0B0D19" offset="0%"/>
<stop stop-color="#0B0D19" stop-opacity="0" offset="100%"/>
</linearGradient>
</defs>
<g fill="none" fill-rule="evenodd">
<path
d="M177.486 208.219c78.18 89.285 218.65-81.067 218.65-119.337 0-38.27-86.408-69.295-193-69.295-106.59 0-193 31.024-193 69.295 0 38.27 89.17 30.051 167.35 119.337z"
transform="rotate(6 -140.175 3980.948)" fill="url(#a)"/>
<path
d="M252.464 335.471c101.27 115.965 283.227-105.29 283.227-154.996 0-49.705-111.929-90-250-90s-250 40.295-250 90c0 49.706 115.503 39.032 216.773 154.996z"
fill="url(#a)" transform="rotate(24 321.92 -247.724)"/>
<path
d="M302.512 242.909c88.025 32.428 156-25.04 156-55.93 0-30.888-69.844-55.928-156-55.928-86.157 0-156 25.04-156 55.929 0 30.888 67.974 23.5 156 55.929z"
fill="url(#b)" transform="rotate(24 338.741 -285.505)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

32
docs/img/bg-top.svg Normal file
View File

@ -0,0 +1,32 @@
<svg width="1440" height="318" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient x1="38.706%" y1="-187.115%" x2="18.675%" y2="110.984%" id="a">
<stop stop-color="#FFF" stop-opacity="0" offset="0%"/>
<stop stop-color="#c3352e" offset="100%"/>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="c">
<stop stop-color="#606483" stop-opacity="0" offset="0%"/>
<stop stop-color="#0B0D19" stop-opacity=".72" offset="100%"/>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="39.334%" y2="79.282%" id="d">
<stop stop-color="#0B0D19" stop-opacity=".32" offset="0%"/>
<stop stop-color="#0B0D19" stop-opacity="0" offset="100%"/>
</linearGradient>
<filter id="b">
<feTurbulence type="fractalNoise" numOctaves="2" baseFrequency=".3" result="turb"/>
<feComposite in="turb" operator="arithmetic" k1=".1" k2=".1" k3=".1" k4=".1" result="result1"/>
<feComposite operator="in" in="result1" in2="SourceGraphic" result="finalFilter"/>
<feBlend mode="multiply" in="finalFilter" in2="SourceGraphic"/>
</filter>
</defs>
<g fill="none" fill-rule="evenodd">
<path d="M88.494 90c67.04 7.177 161.094-24.753 224.996-90H.2c25.3 48.079 42.361 85.083 88.294 90z"
transform="translate(1051)" fill="url(#a)" filter="url(#b)"/>
<path
d="M250.464 367.471c101.27 115.965 283.227-105.29 283.227-154.996 0-49.705-111.929-90-250-90s-250 40.295-250 90c0 49.706 115.503 39.032 216.773 154.996z"
fill="url(#c)" transform="rotate(143 810.285 354.367)"/>
<path
d="M373.408 256.178c88.026 32.429 156-25.04 156-55.929 0-30.888-69.843-55.929-156-55.929-86.156 0-156 25.04-156 55.93 0 30.888 67.975 23.5 156 55.928z"
fill="url(#d)" transform="rotate(136 905.21 332.676)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

5
docs/img/code.svg Normal file
View File

@ -0,0 +1,5 @@
<svg width="96" height="48" xmlns="http://www.w3.org/2000/svg">
<text y="35" x="48" fill="#fff" stroke-width="0" font-size="36" font-family="Monospace" text-anchor="middle"
stroke="#fff">&lt;/&gt;
</text>
</svg>

After

Width:  |  Height:  |  Size: 224 B

8
docs/img/download.svg Normal file
View File

@ -0,0 +1,8 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" class="style-scope yt-icon" style="width:100%;height:100%"
pointer-events="none" display="block" fill="#fff">
<g class="style-scope yt-icon">
<path
d="M25.462 19.105v6.848H4.515v-6.848H.489v8.861c0 1.111.9 2.012 2.016 2.012h24.967c1.115 0 2.016-.9 2.016-2.012v-8.861h-4.026zM14.62 18.426l-5.764-6.965s-.877-.828.074-.828h3.248V9.217.494S12.049 0 12.793 0h4.572c.536 0 .524.416.524.416V10.424h2.998c1.154 0 .285.867.285.867s-4.904 6.51-5.588 7.193c-.492.495-.964-.058-.964-.058z"
class="style-scope yt-icon"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 634 B

35
docs/img/footer.svg Normal file
View File

@ -0,0 +1,35 @@
<svg width="1440" height="582" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="a">
<stop stop-color="#606483" stop-opacity="0" offset="0%"/>
<stop stop-color="#363636" stop-opacity=".72" offset="100%"/>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="39.334%" y2="79.282%" id="b">
<stop stop-color="#363636" offset="0%"/>
<stop stop-color="#363636" stop-opacity="0" offset="100%"/>
</linearGradient>
<radialGradient cx="33.3%" cy="43.394%" fx="33.3%" fy="43.394%" r="57.93%"
gradientTransform="matrix(.24796 -.96592 .92535 .25883 -.151 .643)" id="c">
<stop stop-color="#c3352e" stop-opacity="0" offset="0%"/>
<stop stop-color="#c3352e" stop-opacity=".64" offset="51.712%"/>
<stop stop-color="#c3352e" stop-opacity=".24" offset="100%"/>
</radialGradient>
<filter id="d">
<feTurbulence type="fractalNoise" numOctaves="2" baseFrequency=".3" result="turb"/>
<feComposite in="turb" operator="arithmetic" k1=".1" k2=".1" k3=".1" k4=".1" result="result1"/>
<feComposite operator="in" in="result1" in2="SourceGraphic" result="finalFilter"/>
<feBlend mode="multiply" in="finalFilter" in2="SourceGraphic"/>
</filter>
</defs>
<g fill="none" fill-rule="evenodd">
<path
d="M252.464 335.471c101.27 115.965 283.227-105.29 283.227-154.996 0-49.705-111.929-90-250-90s-250 40.295-250 90c0 49.706 115.503 39.032 216.773 154.996z"
fill="url(#a)" transform="rotate(24 -272.272 -82.087)"/>
<path
d="M302.512 242.909c88.025 32.428 156-25.04 156-55.93 0-30.888-69.844-55.928-156-55.928-86.157 0-156 25.04-156 55.929 0 30.888 67.974 23.5 156 55.929z"
fill="url(#b)" transform="rotate(24 -255.451 -119.868)"/>
<path
d="M103.064 315.218c128.156 12.998 192.38 157.059 218.627 106.632 26.247-50.427-44.059-106.456 60.397-202.707 104.457-96.252-143.2-285.785-172.392-122.551C180.503 259.825-25.091 302.22 103.064 315.218z"
transform="translate(1176 -33)" fill="url(#c)" filter="url(#d)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

6
docs/img/plugins.svg Normal file
View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60" fill="#fff">
<path
d="M45.563 29.174l-22-15A1 1 0 0022 15v30a.999.999 0 001.563.826l22-15a1 1 0 000-1.652zM24 43.107V16.893L43.225 30 24 43.107z"/>
<path
d="M30 0C13.458 0 0 13.458 0 30s13.458 30 30 30 30-13.458 30-30S46.542 0 30 0zm0 58C14.561 58 2 45.439 2 30S14.561 2 30 2s28 12.561 28 28-12.561 28-28 28z"/>
</svg>

After

Width:  |  Height:  |  Size: 391 B

BIN
docs/img/youtube-music.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 176 176" width="32" height="32">
<circle fill="red" cx="88" cy="88" r="88"/>
<path fill="#FFF"
d="M88 46c23.1 0 42 18.8 42 42s-18.8 42-42 42-42-18.8-42-42 18.9-42 42-42m0-4c-25.4 0-46 20.6-46 46s20.6 46 46 46 46-20.6 46-46-20.6-46-46-46z"/>
<path fill="#FFF" d="M72 111l39-24-39-22z"/>
</svg>

After

Width:  |  Height:  |  Size: 360 B

490
docs/index.html Normal file
View File

@ -0,0 +1,490 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<meta content="IE=edge" http-equiv="X-UA-Compatible"/>
<meta content="width=device-width, initial-scale=1" name="viewport"/>
<title>YouTube Music Desktop App (Unofficial)</title>
<link
href="./favicon/favicon.ico"
rel="icon"
sizes="16x16"
type="image/x-icon"
/>
<link
href="./favicon/favicon_32.png"
rel="icon"
sizes="32x32"
type="image/png"
/>
<link
href="./favicon/favicon_48.png"
rel="icon"
sizes="48x48"
type="image/png"
/>
<link
href="./favicon/favicon_96.png"
rel="icon"
sizes="96x96"
type="image/png"
/>
<link
href="./favicon/favicon_144.png"
rel="icon"
sizes="144x144"
type="image/png"
/>
<meta content="#131313" name="theme-color"/>
<meta
content="YouTube Music Unofficial Desktop App with built-in ad blocker and downloader"
name="description"
/>
<meta
content="YouTube&nbsp;Music&nbsp;Desktop&nbsp;App"
property="og:site_name"
/>
<meta
class="meta-url"
content="https://th-ch.github.io/youtube-music"
property="og:url"
/>
<meta content="website" property="og:type"/>
<meta
class="meta-url"
content="https://th-ch.github.io/youtube-music"
name="twitter:url"
/>
<link href="./style/fonts.css" rel="stylesheet"/>
<link href="./style/style.css" rel="stylesheet"/>
<script src="https://unpkg.com/scrollreveal"></script>
</head>
<body class="has-animations vsc-initialized" style="height: 100%;">
<div class="body-wrap boxed-container">
<header class="site-header text-light">
<div class="container">
<div class="site-header-inner">
<div class="brand header-brand">
<h1 class="m-0">
<a href="https://github.com/th-ch/youtube-music">
<img
alt="YouTube Music"
class="header-logo-image"
src="./img/youtube-music.svg"
/>
</a>
</h1>
</div>
</div>
</div>
</header>
<main>
<section class="hero text-center text-light">
<div class="hero-bg"></div>
<div class="hero-particles-container">
<canvas id="hero-particles"></canvas>
</div>
<div class="container-sm">
<div class="hero-inner">
<div class="hero-copy">
<h1 class="hero-title mt-0">
Custom YouTube Music Desktop App
</h1>
<p class="hero-paragraph">
Open source, cross-platform, unofficial YouTube Music Desktop
App with built-in <strong>ad blocker</strong> and
<strong>downloader</strong>
</p>
<div class="hero-cta">
<a
class="button button-primary button-wide-mobile"
href="https://github.com/th-ch/youtube-music/releases/latest"
>Download</a
>
</div>
</div>
<div class="mockup-container">
<div class="mockup-bg">
<img
alt="YouTube Music"
id="mockup-header-img"
src="./img/youtube-music.png"
/>
</div>
</div>
</div>
</div>
</section>
<section class="features-extended section">
<div class="features-extended-inner section-inner">
<div class="features-extended-wrap">
<div class="container">
<div class="feature-extended">
<div class="feature-extended-image">
<img
alt="Adblocker"
class="device-mockup"
data-sr-id="0"
src="./img/adblock.svg"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
width="100px"
/>
</div>
<div
class="feature-extended-body"
data-sr-id="5"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
>
<h3 class="mt-0 mb-16">Built-in adblocker</h3>
<p class="m-0">Block all ads and tracking out of the box</p>
</div>
</div>
<div class="feature-extended">
<div class="feature-extended-image">
<img
alt="Downloader"
class="device-mockup"
data-sr-id="2"
src="./img/download.svg"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
/>
</div>
<div
class="feature-extended-body"
data-sr-id="6"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
>
<h3 class="mt-0 mb-16">Built-in downloader</h3>
<p class="m-0">
Download (like youtube-dl) to custom formats (mp3, opus,
etc) directly from the interface
</p>
</div>
</div>
<div class="feature-extended">
<div class="feature-extended-image">
<img
alt="Plugins"
class="device-mockup"
data-sr-id="3"
src="./img/plugins.svg"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
/>
</div>
<div
class="feature-extended-body"
data-sr-id="7"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
>
<h3 class="mt-0 mb-16">Many other plugins in one click</h3>
<p class="m-0">
Enhance your user experience with media keys, integrations
(Discord), cosmetic filters, notifications, TouchBar,
auto-unpause and many more! Every plugin can be enabled or
disabled in one click.
</p>
</div>
</div>
<div class="feature-extended">
<div class="feature-extended-image">
<img
alt="Code"
class="device-mockup"
data-sr-id="4"
src="./img/code.svg"
style="
visibility: visible;
width: 200%;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
/>
</div>
<div
class="feature-extended-body"
data-sr-id="8"
style="
visibility: visible;
opacity: 1;
transform: matrix3d(
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
);
transition: opacity 0.6s
cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
transform 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
"
>
<h3 class="mt-0 mb-16">Open source & Cross platform</h3>
<p class="m-0">
Available for Windows (installer and portable), Mac and
Linux (AppImage, deb, etc)
</p>
</div>
</div>
</div>
</div>
</div>
<div class="main-particles-container">
<canvas id="main-particles"></canvas>
</div>
</section>
</main>
<footer class="site-footer">
<div class="footer-particles-container">
<canvas id="footer-particles"></canvas>
</div>
<div class="site-footer-top">
<section class="cta section text-light">
<div class="container-sm">
<div class="cta-inner section-inner">
<div class="cta-header text-center">
<h2 class="section-title mt-0">Download and/or contribute</h2>
<p class="section-paragraph">Pull requests welcome!</p>
<div class="cta-cta">
<a
class="button button-primary button-wide-mobile"
href="https://github.com/th-ch/youtube-music"
>Go to code</a
>
</div>
</div>
</div>
</div>
</section>
</div>
<div class="site-footer-bottom">
<div class="container">
<div class="site-footer-inner">
<div class="brand footer-brand">
<a href="https://github.com/th-ch/youtube-music">
<img alt="YouTube Music logo" src="./img/youtube-music.svg"/>
</a>
</div>
<ul class="footer-links list-reset">
<li>
<a href="https://github.com/th-ch/youtube-music">Main page</a>
</li>
<li>
<a href="https://github.com/th-ch/youtube-music/issues"
>Issues</a
>
</li>
<li>
<a href="https://github.com/th-ch/youtube-music/pulls"
>Pull requests</a
>
</li>
</ul>
<ul class="footer-social-links list-reset">
<li>
<a href="https://github.com/th-ch/youtube-music">
<span class="screen-reader-text">GitHub</span>
<svg
height="16"
viewBox="0 0 1792 1792"
width="16"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M896 128q209 0 385.5 103t279.5 279.5 103 385.5q0 251-146.5 451.5t-378.5 277.5q-27 5-40-7t-13-30q0-3 .5-76.5t.5-134.5q0-97-52-142 57-6 102.5-18t94-39 81-66.5 53-105 20.5-150.5q0-119-79-206 37-91-8-204-28-9-81 11t-92 44l-38 24q-93-26-192-26t-192 26q-16-11-42.5-27t-83.5-38.5-85-13.5q-45 113-8 204-79 87-79 206 0 85 20.5 150t52.5 105 80.5 67 94 39 102.5 18q-39 36-49 103-21 10-45 15t-57 5-65.5-21.5-55.5-62.5q-19-32-48.5-52t-49.5-24l-20-3q-21 0-29 4.5t-5 11.5 9 14 13 12l7 5q22 10 43.5 38t31.5 51l10 23q13 38 44 61.5t67 30 69.5 7 55.5-3.5l23-4q0 38 .5 88.5t.5 54.5q0 18-13 30t-40 7q-232-77-378.5-277.5t-146.5-451.5q0-209 103-385.5t279.5-279.5 385.5-103zm-477 1103q3-7-7-12-10-3-13 2-3 7 7 12 9 6 13-2zm31 34q7-5-2-16-10-9-16-3-7 5 2 16 10 10 16 3zm30 45q9-7 0-19-8-13-17-6-9 5 0 18t17 7zm42 42q8-8-4-19-12-12-20-3-9 8 4 19 12 12 20 3zm57 25q3-11-13-16-15-4-19 7t13 15q15 6 19-6zm63 5q0-13-17-11-16 0-16 11 0 13 17 11 16 0 16-11zm58-10q-2-11-18-9-16 3-14 15t18 8 14-14z"
fill="#fff"
/>
</svg>
</a>
</li>
</ul>
<div class="footer-copyright">© 2021 th-ch</div>
</div>
</div>
</div>
</footer>
</div>
<script src="./js/main.js"></script>
</body>
</html>

268
docs/js/main.js Normal file
View File

@ -0,0 +1,268 @@
/* eslint-disable */
// Constants
const element = document.documentElement;
const { body } = document;
const revealOnScroll = (window.sr = ScrollReveal({ mobile: false }));
// Load animations
element.classList.remove('no-js');
element.classList.add('js');
window.addEventListener('load', () => {
body.classList.add('is-loaded');
});
if (body.classList.contains('has-animations')) {
window.addEventListener('load', () => {
revealOnScroll.reveal('.feature-extended .device-mockup', {
duration: 600,
distance: '100px',
easing: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
origin: 'bottom',
viewFactor: 0.6,
});
revealOnScroll.reveal('.feature-extended .feature-extended-body', {
duration: 600,
distance: '40px',
easing: 'cubic-bezier(0.215, 0.61, 0.355, 1)',
origin: 'top',
viewFactor: 0.6,
});
});
}
// Bubble canvas
const bubbleCanvas = function (t) {
const e = this;
e.parentNode = t;
e.setCanvasSize();
window.addEventListener('resize', () => {
e.setCanvasSize();
});
e.mouseX = 0;
e.mouseY = 0;
window.addEventListener('mousemove', (t) => {
e.mouseX = t.clientX;
e.mouseY = t.clientY;
});
e.randomise();
};
bubbleCanvas.prototype.setCanvasSize = function () {
this.canvasWidth = this.parentNode.clientWidth;
this.canvasHeight = this.parentNode.clientHeight;
};
bubbleCanvas.prototype.generateDecimalBetween = function (start, end) {
return (Math.random() * (start - end) + end).toFixed(2);
};
bubbleCanvas.prototype.update = function () {
const t = this;
t.translateX -= t.movementX;
t.translateY -= t.movementY;
t.posX += (t.mouseX / (t.staticity / t.magnetism) - t.posX) / t.smoothFactor;
t.posY += (t.mouseY / (t.staticity / t.magnetism) - t.posY) / t.smoothFactor;
if (
t.translateY + t.posY < 0
|| t.translateX + t.posX < 0
|| t.translateX + t.posX > t.canvasWidth
) {
t.randomise();
t.translateY = t.canvasHeight;
}
};
bubbleCanvas.prototype.randomise = function () {
this.colors = ['195,53,46', '172,54,46'];
this.velocity = 20;
this.smoothFactor = 50;
this.staticity = 30;
this.magnetism = 0.1 + 4 * Math.random();
this.color = this.colors[Math.floor(Math.random() * this.colors.length)];
this.alpha = this.generateDecimalBetween(5, 10) / 10;
this.size = this.generateDecimalBetween(1, 4);
this.posX = 0;
this.posY = 0;
this.movementX = this.generateDecimalBetween(-2, 2) / this.velocity;
this.movementY = this.generateDecimalBetween(1, 20) / this.velocity;
this.translateX = this.generateDecimalBetween(0, this.canvasWidth);
this.translateY = this.generateDecimalBetween(0, this.canvasHeight);
};
const drawBubbleCanvas = function (t) {
this.canvas = document.getElementById(t);
this.ctx = this.canvas.getContext('2d');
this.dpr = window.devicePixelRatio;
};
drawBubbleCanvas.prototype.start = function (bubbleDensity) {
const t = this;
t.bubbleDensity = bubbleDensity;
t.setCanvasSize();
window.addEventListener('resize', () => {
t.setCanvasSize();
});
t.bubblesList = [];
t.generateBubbles();
t.animate();
};
drawBubbleCanvas.prototype.setCanvasSize = function () {
this.container = this.canvas.parentNode;
this.w = this.container.offsetWidth;
this.h = this.container.offsetHeight;
this.wdpi = this.w * this.dpr;
this.hdpi = this.h * this.dpr;
this.canvas.width = this.wdpi;
this.canvas.height = this.hdpi;
this.canvas.style.width = this.w + 'px';
this.canvas.style.height = this.h + 'px';
this.ctx.scale(this.dpr, this.dpr);
};
drawBubbleCanvas.prototype.animate = function () {
const t = this;
t.ctx.clearRect(0, 0, t.canvas.clientWidth, t.canvas.clientHeight);
for (const e of t.bubblesList) {
e.update();
t.ctx.translate(e.translateX, e.translateY);
t.ctx.beginPath();
t.ctx.arc(e.posX, e.posY, e.size, 0, 2 * Math.PI);
t.ctx.fillStyle = 'rgba(' + e.color + ',' + e.alpha + ')';
t.ctx.fill();
t.ctx.setTransform(t.dpr, 0, 0, t.dpr, 0, 0);
}
requestAnimationFrame(this.animate.bind(this));
};
drawBubbleCanvas.prototype.addBubble = function (t) {
return this.bubblesList.push(t);
};
drawBubbleCanvas.prototype.generateBubbles = function () {
const t = this;
for (let e = 0; e < t.bubbleDensity; e++) {
t.addBubble(new bubbleCanvas(t.canvas.parentNode));
}
};
// Night sky with stars canvas
const starCanvas = function (t) {
this.canvas = document.getElementById(t);
this.ctx = this.canvas.getContext('2d');
this.dpr = window.devicePixelRatio;
};
starCanvas.prototype.start = function () {
let w;
let h;
const setCanvasExtents = () => {
w = this.canvas.parentNode.clientWidth;
h = this.canvas.parentNode.clientHeight;
this.canvas.width = w;
this.canvas.height = h;
};
setCanvasExtents();
window.addEventListener('resize', () => {
setCanvasExtents();
});
const makeStars = (count) => {
const out = [];
for (let i = 0; i < count; i++) {
const s = {
x: Math.random() * w - w / 2,
y: Math.random() * h - h / 2,
z: Math.random() * 1000,
};
out.push(s);
}
return out;
};
const stars = makeStars(10_000);
const clear = () => {
this.ctx.fillStyle = '#212121';
this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);
};
const putPixel = (x, y, brightness) => {
const intensity = brightness * 255;
const rgb = 'rgb(' + intensity + ',' + intensity + ',' + intensity + ')';
this.ctx.beginPath();
this.ctx.arc(x, y, 0.9, 0, 2 * Math.PI);
this.ctx.fillStyle = rgb;
this.ctx.fill();
};
const moveStars = (distance) => {
const count = stars.length;
for (let i = 0; i < count; i++) {
const s = stars[i];
s.z -= distance;
while (s.z <= 1) {
s.z += 1000;
}
}
};
let previousTime;
const init = (time) => {
previousTime = time;
requestAnimationFrame(tick);
};
const tick = (time) => {
const elapsed = time - previousTime;
previousTime = time;
moveStars(elapsed * 0.1);
clear();
const cx = w / 2;
const cy = h / 2;
const count = stars.length;
for (let i = 0; i < count; i++) {
const star = stars[i];
const x = cx + star.x / (star.z * 0.001);
const y = cy + star.y / (star.z * 0.001);
if (x < 0 || x >= w || y < 0 || y >= h) {
continue;
}
const d = star.z / 1000;
const b = 1 - d * d;
putPixel(x, y, b);
}
requestAnimationFrame(tick);
};
requestAnimationFrame(init);
};
// Start canvas animations
window.addEventListener('load', () => {
// Stars
const headCanvas = new starCanvas('hero-particles');
// Bubbles
const footerCanvas = new drawBubbleCanvas('footer-particles');
const mainCanvas = new drawBubbleCanvas('main-particles');
headCanvas.start();
footerCanvas.start(30);
mainCanvas.start(200);
});

53
docs/style/fonts.css Normal file
View File

@ -0,0 +1,53 @@
/* hebrew */
@font-face {
font-family: 'Heebo';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/heebo/v9/NGS6v5_NC0k9P9H0TbFhsqMA6aw.woff2) format('woff2');
unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* latin */
@font-face {
font-family: 'Heebo';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/heebo/v9/NGS6v5_NC0k9P9H2TbFhsqMA.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* hebrew */
@font-face {
font-family: 'Heebo';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/heebo/v9/NGS6v5_NC0k9P9H0TbFhsqMA6aw.woff2) format('woff2');
unicode-range: U+0590-05FF, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* latin */
@font-face {
font-family: 'Heebo';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/heebo/v9/NGS6v5_NC0k9P9H2TbFhsqMA.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'Oxygen';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/oxygen/v10/2sDcZG1Wl4LcnbuCNWgzZmW5Kb8VZBHR.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Oxygen';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/oxygen/v10/2sDcZG1Wl4LcnbuCNWgzaGW5Kb8VZA.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

1890
docs/style/style.css Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,125 +0,0 @@
appId: com.github.th-ch.pear-desktop
productName: Pear Desktop
files:
- '!*'
- dist
- assets
- license
- '!node_modules'
- 'node_modules/custom-electron-prompt/**'
- 'node_modules/@ghostery/adblocker-electron-preload/**'
- 'node_modules/@ffmpeg.wasm/core-mt/**'
- '!node_modules/**/*.map'
- '!node_modules/**/*.ts'
asarUnpack:
- assets
mac:
identity: null
target:
- target: dmg
arch:
- x64
- arm64
icon: assets/generated/icons/mac/icon.icns
compression: maximum
win:
icon: assets/generated/icons/win/icon.ico
target:
- target: nsis-web
arch:
- x64
- ia32
- arm64
- target: portable
arch:
- x64
- ia32
- arm64
compression: maximum
nsisWeb:
runAfterFinish: false
linux:
icon: assets/generated/icons/png
category: AudioVideo
desktop:
entry:
StartupWMClass: com.github.th_ch.pear_desktop
target:
- target: AppImage
arch:
- x64
- arm64
- armv7l
- target: flatpak
arch:
- x64
- target: deb
arch:
- x64
- arm64
- armv7l
- target: rpm
arch:
- x64
- arm64
- target: snap
arch:
- x64
- target: freebsd
arch:
- x64
- arm64
- armv7l
- target: tar.gz
arch:
- x64
- arm64
- armv7l
appImage:
description: >-
Pear Desktop App bundled with custom plugins (and built-in ad
blocker / downloader)
category: AudioVideo
flatpak:
description: >-
Pear Desktop App bundled with custom plugins (and built-in ad
blocker / downloader)
category: AudioVideo
runtimeVersion: '24.08'
baseVersion: '24.08'
finishArgs:
- '--socket=wayland'
- '--socket=x11'
- '--share=ipc'
- '--device=dri'
- '--socket=pulseaudio'
- '--share=network'
- '--filesystem=xdg-music:rw'
- '--talk-name=org.freedesktop.Notifications'
- '--talk-name=org.gnome.SessionManager'
- '--talk-name=org.kde.StatusNotifierWatcher'
- '--own-name=org.mpris.MediaPlayer2.PearDesktop.*'
deb:
depends:
- libgtk-3-0
- libnotify4
- libnss3
- libxss1
- libxtst6
- xdg-utils
- libatspi2.0-0
- libuuid1
- libasound2
- libgbm1
rpm:
depends:
- /usr/lib64/libuuid.so.1
fpm:
- '--rpm-rpmbuild-define'
- _build_id_links none
snap:
slots:
- mpris:
interface: mpris
directories:
output: ./pack/

View File

@ -1,188 +0,0 @@
import { dirname, join, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { defineConfig, defineViteConfig } from 'electron-vite';
import builtinModules from 'builtin-modules';
import Inspect from 'vite-plugin-inspect';
import solidPlugin from 'vite-plugin-solid';
import viteResolve from 'vite-plugin-resolve';
import { withFilter, type UserConfig } from 'vite';
import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer.mjs';
import pluginLoader from './vite-plugins/plugin-loader.mjs';
import { i18nImporter } from './vite-plugins/i18n-importer.mjs';
const __dirname = dirname(fileURLToPath(import.meta.url));
const resolveAlias = {
'@': resolve(__dirname, './src'),
'@assets': resolve(__dirname, './assets'),
};
export default defineConfig({
main: defineViteConfig(({ mode }) => {
const commonConfig: UserConfig = {
experimental: {
enableNativePlugin: true,
},
plugins: [
pluginLoader('backend'),
viteResolve({
'virtual:i18n': i18nImporter(),
'virtual:plugins': pluginVirtualModuleGenerator('main'),
}),
],
publicDir: 'assets',
define: {
'__dirname': 'import.meta.dirname',
'__filename': 'import.meta.filename',
},
build: {
lib: {
entry: 'src/index.ts',
formats: ['es'],
},
outDir: 'dist/main',
rolldownOptions: {
external: ['electron', 'custom-electron-prompt', ...builtinModules],
input: './src/index.ts',
},
},
resolve: {
alias: resolveAlias,
},
};
if (mode === 'development') {
commonConfig.build!.sourcemap = 'inline';
commonConfig.plugins?.push(
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/backend'),
}),
);
return commonConfig;
}
return {
...commonConfig,
build: {
...commonConfig.build,
minify: true,
cssMinify: true,
},
};
}),
preload: defineViteConfig(({ mode }) => {
const commonConfig: UserConfig = {
experimental: {
enableNativePlugin: true,
},
plugins: [
pluginLoader('preload'),
viteResolve({
'virtual:i18n': i18nImporter(),
'virtual:plugins': pluginVirtualModuleGenerator('preload'),
}),
],
build: {
lib: {
entry: 'src/preload.ts',
formats: ['cjs'],
},
outDir: 'dist/preload',
commonjsOptions: {
ignoreDynamicRequires: true,
},
rolldownOptions: {
external: ['electron', 'custom-electron-prompt', ...builtinModules],
input: './src/preload.ts',
},
},
resolve: {
alias: resolveAlias,
},
};
if (mode === 'development') {
commonConfig.build!.sourcemap = 'inline';
commonConfig.plugins?.push(
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/preload'),
}),
);
return commonConfig;
}
return {
...commonConfig,
build: {
...commonConfig.build,
minify: true,
cssMinify: true,
},
};
}),
renderer: defineViteConfig(({ mode }) => {
const commonConfig: UserConfig = {
experimental: {
enableNativePlugin: mode !== 'development', // Disable native plugin in development mode to avoid issues with HMR (bug in rolldown-vite)
},
plugins: [
pluginLoader('renderer'),
viteResolve({
'virtual:i18n': i18nImporter(),
'virtual:plugins': pluginVirtualModuleGenerator('renderer'),
}),
withFilter(solidPlugin(), {
load: { id: [/\.(tsx|jsx)$/, '/@solid-refresh'] },
}),
],
root: './src/',
build: {
lib: {
entry: 'src/index.html',
formats: ['iife'],
name: 'renderer',
},
outDir: 'dist/renderer',
rolldownOptions: {
external: ['electron', ...builtinModules],
input: './src/index.html',
},
},
resolve: {
alias: resolveAlias,
},
server: {
cors: {
origin:
'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
},
},
};
if (mode === 'development') {
commonConfig.build!.sourcemap = 'inline';
commonConfig.plugins?.push(
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/renderer'),
}),
);
return commonConfig;
}
return {
...commonConfig,
build: {
...commonConfig.build,
minify: true,
cssMinify: true,
},
};
}),
});

View File

@ -1,90 +0,0 @@
//@ts-check
import eslint from '@eslint/js';
import prettier from 'eslint-plugin-prettier/recommended';
import solid from 'eslint-plugin-solid/configs/recommended';
import stylistic from '@stylistic/eslint-plugin';
import tsEslint from 'typescript-eslint';
import * as importPlugin from 'eslint-plugin-import';
export default tsEslint.config(
eslint.configs.recommended,
tsEslint.configs.eslintRecommended,
...tsEslint.configs.recommendedTypeChecked,
prettier,
solid,
{ ignores: ['dist', 'node_modules', '*.config.*js', '*.test.*js'] },
{
plugins: {
stylistic,
importPlugin
},
languageOptions: {
parser: tsEslint.parser,
parserOptions: {
project: true,
sourceType: 'module',
ecmaVersion: 'latest'
}
},
rules: {
'stylistic/arrow-parens': ['error', 'always'],
'stylistic/object-curly-spacing': ['error', 'always'],
'stylistic/jsx-pascal-case': 'error',
'stylistic/jsx-curly-spacing': ['error', { when: 'never', children: true }],
'stylistic/jsx-sort-props': 'error',
'prettier/prettier': ['error', { singleQuote: true, semi: true, tabWidth: 2, trailingComma: 'all', quoteProps: 'preserve' }],
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': ['off', { checksVoidReturn: false }],
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/consistent-type-imports': ['error', {
fixStyle: 'inline-type-imports',
prefer: 'type-imports',
disallowTypeAnnotations: false,
}],
'importPlugin/first': 'error',
'importPlugin/newline-after-import': 'off',
'importPlugin/no-default-export': 'off',
'importPlugin/no-duplicates': 'error',
'importPlugin/no-unresolved': ['error', { ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack'] }],
'importPlugin/order': ['error', {
'groups': ['builtin', 'external', ['internal', 'index', 'sibling'], 'parent', 'type'],
'newlines-between': 'always-and-inside-groups',
'alphabetize': { order: 'ignore', caseInsensitive: false }
}],
'importPlugin/prefer-default-export': 'off',
'camelcase': ['error', { properties: 'never' }],
'class-methods-use-this': 'off',
'stylistic/lines-around-comment': ['error', {
beforeBlockComment: false,
afterBlockComment: false,
beforeLineComment: false,
afterLineComment: false,
}],
'stylistic/max-len': 'off',
'stylistic/no-mixed-operators': 'warn', // prettier does not support no-mixed-operators
'stylistic/no-multi-spaces': ['error', { ignoreEOLComments: true }],
'stylistic/no-tabs': 'error',
'no-void': 'error',
'no-empty': 'off',
'prefer-promise-reject-errors': 'off',
'stylistic/quotes': ['error', 'single', {
avoidEscape: true,
allowTemplateLiterals: false,
}],
'stylistic/quote-props': ['error', 'consistent'],
'stylistic/semi': ['error', 'always'],
},
settings: {
'import/parsers': {
'@typescript-eslint/parser': ['.ts']
},
'import/resolver': {
typescript: {},
exports: {},
},
},
},
);

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) th-ch <th-ch@users.noreply.github.com> (https://github.com/pear-devs/pear-desktop)
Copyright (c) th-ch <th-ch@users.noreply.github.com> (https://github.com/th-ch/youtube-music)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,188 +1,203 @@
{
"name": "pear-music",
"desktopName": "com.github.th_ch.pear_music",
"productName": "Pear Desktop",
"version": "3.11.0",
"description": "Pear Desktop App - including custom plugins",
"main": "./dist/main/index.js",
"type": "module",
"name": "youtube-music",
"productName": "YouTube Music",
"version": "2.2.0",
"description": "YouTube Music Desktop App - including custom plugins",
"main": "./dist/index.js",
"license": "MIT",
"repository": "pear-devs/pear-desktop",
"repository": "th-ch/youtube-music",
"author": {
"name": "th-ch",
"email": "th-ch@users.noreply.github.com",
"url": "https://github.com/pear-devs/pear-desktop"
"url": "https://github.com/th-ch/youtube-music"
},
"build": {
"appId": "com.github.th-ch.youtube-music",
"productName": "YouTube Music",
"files": [
"!*",
"dist",
"license",
"!node_modules",
"node_modules/custom-electron-prompt/**",
"node_modules/@cliqz/adblocker-electron-preload/**",
"node_modules/@ffmpeg.wasm/core-mt/**",
"!node_modules/**/*.map",
"!node_modules/**/*.ts"
],
"mac": {
"identity": null,
"target": [
{
"target": "dmg",
"arch": [
"x64",
"arm64"
]
}
],
"icon": "assets/generated/icons/mac/icon.icns"
},
"win": {
"icon": "assets/generated/icons/win/icon.ico",
"target": [
{
"target": "nsis-web",
"arch": [
"x64",
"ia32",
"arm64"
]
},
{
"target": "portable",
"arch": [
"x64",
"ia32",
"arm64"
]
}
]
},
"nsisWeb": {
"runAfterFinish": false
},
"linux": {
"icon": "assets/generated/icons/png",
"category": "AudioVideo",
"target": [
"AppImage",
"snap",
"freebsd",
"deb",
"rpm"
]
},
"snap": {
"slots": [
{
"mpris": {
"interface": "mpris"
}
}
]
},
"directories": {
"output": "./pack/"
}
},
"scripts": {
"test": "pnpm playwright test",
"test:debug": "pnpm cross-env DEBUG=pw:*,-pw:test:protocol playwright test",
"build": "pnpm electron-vite build",
"vite:inspect": "pnpm clean && electron-vite build --mode development && pnpm exec serve .vite-inspect",
"start": "pnpm electron-vite preview",
"start:debug": "pnpm cross-env ELECTRON_ENABLE_LOGGING=1 pnpm start",
"dev": "pnpm cross-env NODE_ENV=development NODE_OPTIONS=--enable-source-maps electron-vite dev --watch",
"dev:renderer": "pnpm cross-env NODE_ENV=development NODE_OPTIONS=--enable-source-maps electron-vite dev",
"dev:debug": "pnpm cross-env ELECTRON_ENABLE_LOGGING=1 pnpm dev",
"clean": "pnpm del-cli dist && pnpm del-cli pack && pnpm del-cli .vite-inspect",
"dist": "pnpm clean && pnpm build && pnpm electron-builder --win --mac --linux -p never",
"dist:linux": "pnpm clean && pnpm build && pnpm electron-builder --linux -p never",
"dist:linux:deb-arm64": "pnpm clean && pnpm build && pnpm electron-builder --linux deb:arm64 -p never",
"dist:linux:rpm-arm64": "pnpm clean && pnpm build && pnpm electron-builder --linux rpm:arm64 -p never",
"dist:mac": "pnpm clean && pnpm build && pnpm electron-builder --mac dmg:x64 -p never",
"dist:mac:arm64": "pnpm clean && pnpm build && pnpm electron-builder --mac dmg:arm64 -p never",
"dist:win": "pnpm clean && pnpm build && pnpm electron-builder --win -p never",
"dist:win:x64": "pnpm clean && pnpm build && pnpm electron-builder --win nsis-web:x64 -p never",
"lint": "pnpm eslint ./src",
"changelog": "pnpm dlx auto-changelog",
"release:linux": "pnpm clean && pnpm build && pnpm electron-builder --linux -p always -c.snap.publish=github",
"release:mac": "pnpm clean && pnpm build && pnpm electron-builder --mac -p always",
"release:win": "pnpm clean && pnpm build && pnpm electron-builder --win -p always",
"typecheck": "pnpm tsc -p tsconfig.json --noEmit"
"test": "playwright test",
"test:debug": "cross-env DEBUG=pw:*,-pw:test:protocol playwright test",
"rollup:preload": "rollup -c rollup.preload.config.ts --configPlugin @rollup/plugin-typescript --bundleConfigAsCjs",
"rollup:main": "rollup -c rollup.main.config.ts --configPlugin @rollup/plugin-typescript --bundleConfigAsCjs",
"build": "yarpm-pnpm run rollup:preload && yarpm-pnpm run rollup:main",
"start": "yarpm-pnpm run build && electron ./dist/index.js",
"start:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 yarpm-pnpm run start",
"clean": "del-cli dist && del-cli pack",
"dist": "yarpm-pnpm run clean && yarpm-pnpm run build && electron-builder --win --mac --linux -p never",
"dist:linux": "yarpm-pnpm run clean && yarpm-pnpm run build && electron-builder --linux -p never",
"dist:mac": "yarpm-pnpm run clean && yarpm-pnpm run build && electron-builder --mac dmg:x64 -p never",
"dist:mac:arm64": "yarpm-pnpm run clean && yarpm-pnpm run build && electron-builder --mac dmg:arm64 -p never",
"dist:win": "yarpm-pnpm run clean && yarpm-pnpm run build && electron-builder --win -p never",
"dist:win:x64": "yarpm-pnpm run clean && yarpm-pnpm run build && electron-builder --win nsis-web:x64 -p never",
"lint": "eslint .",
"changelog": "npx --yes auto-changelog",
"release:linux": "yarpm-pnpm run clean && yarpm-pnpm run build && electron-builder --linux -p always -c.snap.publish=github",
"release:mac": "yarpm-pnpm run clean && yarpm-pnpm run build && electron-builder --mac -p always",
"release:win": "yarpm-pnpm run clean && yarpm-pnpm run build && electron-builder --win -p always",
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"engines": {
"node": ">=22",
"pnpm": ">=10"
"node": ">=16.0.0"
},
"pnpm": {
"overrides": {
"vite": "npm:rolldown-vite@7.1.8",
"node-gyp": "11.4.2",
"rollup": "4.2.0",
"node-gyp": "10.0.1",
"xml2js": "0.6.2",
"node-fetch": "3.3.2",
"@electron/universal": "3.0.1",
"@babel/runtime": "7.28.4"
},
"patchedDependencies": {
"vudio@2.1.1": "patches/vudio@2.1.1.patch",
"@malept/flatpak-bundler@0.4.0": "patches/@malept__flatpak-bundler@0.4.0.patch",
"kuromoji@0.1.2": "patches/kuromoji@0.1.2.patch",
"file-type@16.5.4": "patches/file-type@16.5.4.patch",
"electron-is@3.0.0": "patches/electron-is@3.0.0.patch",
"mdui@2.1.4": "patches/mdui@2.1.4.patch"
},
"neverBuiltDependencies": []
"@electron/universal": "1.4.4",
"@babel/runtime": "7.23.2"
}
},
"overrides": {
"rollup": "4.2.0",
"node-gyp": "10.0.1",
"xml2js": "0.6.2",
"node-fetch": "3.3.2",
"@electron/universal": "1.4.4",
"@babel/runtime": "7.23.2"
},
"dependencies": {
"@dehoist/romanize-thai": "1.0.0",
"@electron-toolkit/tsconfig": "1.0.1",
"@electron/remote": "2.1.3",
"@ffmpeg.wasm/core-mt": "0.13.2",
"@cliqz/adblocker-electron": "1.26.10",
"@cliqz/adblocker-electron-preload": "1.26.10",
"@ffmpeg.wasm/core-mt": "0.12.0",
"@ffmpeg.wasm/main": "0.12.0",
"@floating-ui/dom": "1.7.4",
"@foobar404/wave": "2.0.5",
"@ghostery/adblocker-electron": "2.11.6",
"@ghostery/adblocker-electron-preload": "2.11.6",
"@hono/node-server": "1.19.1",
"@hono/node-ws": "1.2.0",
"@hono/swagger-ui": "0.5.2",
"@hono/zod-openapi": "1.1.0",
"@hono/zod-validator": "0.7.2",
"@jellybrick/dbus-next": "0.10.3",
"@foobar404/wave": "2.0.4",
"@jellybrick/electron-better-web-request": "1.0.4",
"@jellybrick/mpris-service": "2.1.5",
"@jimp/plugin-color": "1.6.0",
"@mdui/icons": "^1.0.3",
"@skyra/jaro-winkler": "1.1.1",
"@xhayper/discord-rpc": "1.3.0",
"async-mutex": "0.5.0",
"bgutils-js": "3.2.0",
"butterchurn": "3.0.0-beta.5",
"@jellybrick/mpris-service": "2.1.4",
"@xhayper/discord-rpc": "1.0.24",
"async-mutex": "0.4.0",
"butterchurn": "3.0.0-beta.4",
"butterchurn-presets": "3.0.0-beta.4",
"color": "5.0.0",
"conf": "14.0.0",
"custom-electron-prompt": "1.5.8",
"deepmerge-ts": "7.1.5",
"delay": "6.0.0",
"electron-debug": "4.1.0",
"conf": "10.2.0",
"custom-electron-prompt": "1.5.7",
"electron-debug": "3.2.0",
"electron-is": "3.0.0",
"electron-localshortcut": "3.2.1",
"electron-store": "10.1.0",
"electron-unhandled": "5.0.0",
"electron-updater": "6.6.2",
"es-hangul": "2.3.5",
"fast-average-color": "9.5.0",
"fast-equals": "5.2.2",
"fflate": "0.8.2",
"electron-store": "8.1.0",
"electron-unhandled": "4.0.1",
"electron-updater": "6.1.4",
"fast-average-color": "9.4.0",
"filenamify": "6.0.0",
"hanja": "1.1.5",
"happy-dom": "18.0.1",
"hono": "4.9.6",
"howler": "2.2.4",
"html-to-text": "9.0.5",
"i18next": "25.5.2",
"jimp": "1.6.0",
"keyboardevent-from-electron-accelerator": "2.0.0",
"keyboardevents-areequal": "0.2.2",
"kuromoji": "0.1.2",
"kuroshiro": "1.2.0",
"kuroshiro-analyzer-kuromoji": "1.1.0",
"lazy-var": "2.2.2",
"mdui": "2.1.4",
"node-html-parser": "7.0.1",
"node-id3": "0.2.9",
"peerjs": "1.5.5",
"semver": "7.7.2",
"serve": "14.2.5",
"socks": "2.8.7",
"solid-element": "1.9.1",
"solid-floating-ui": "0.3.1",
"solid-js": "1.9.9",
"solid-styled-components": "0.28.5",
"solid-transition-group": "0.3.0",
"tiny-pinyin": "1.3.2",
"tinyld": "1.3.4",
"virtua": "0.42.3",
"node-id3": "0.2.6",
"simple-youtube-age-restriction-bypass": "git+https://github.com/organization/Simple-YouTube-Age-Restriction-Bypass.git#v2.5.8",
"vudio": "2.1.1",
"x11": "2.3.0",
"youtubei.js": "^16.0.1",
"zod": "4.1.5"
"youtubei.js": "7.0.0"
},
"devDependencies": {
"@electron-toolkit/tsconfig": "1.0.1",
"@eslint/js": "9.35.0",
"@malept/flatpak-bundler": "0.4.0",
"@playwright/test": "1.55.0",
"@stylistic/eslint-plugin": "5.3.1",
"@total-typescript/ts-reset": "0.6.1",
"@types/electron-localshortcut": "3.1.3",
"@types/howler": "2.2.12",
"@types/html-to-text": "9.0.4",
"@types/semver": "7.7.1",
"@types/trusted-types": "2.0.7",
"bufferutil": "4.0.9",
"builtin-modules": "5.0.0",
"cross-env": "10.0.0",
"del-cli": "6.0.0",
"discord-api-types": "0.38.23",
"electron": "38.2.0",
"electron-builder": "26.0.12",
"electron-builder-squirrel-windows": "26.0.12",
"electron-devtools-installer": "4.0.0",
"electron-vite": "4.0.0",
"eslint": "9.35.0",
"eslint-config-prettier": "10.1.8",
"eslint-import-resolver-exports": "1.0.0-beta.5",
"eslint-import-resolver-typescript": "4.4.4",
"eslint-plugin-import": "2.32.0",
"eslint-plugin-prettier": "5.5.4",
"eslint-plugin-solid": "0.14.5",
"glob": "11.0.3",
"node-gyp": "11.4.2",
"playwright": "1.55.0",
"ts-morph": "27.0.0",
"typescript": "5.9.2",
"typescript-eslint": "8.43.0",
"utf-8-validate": "6.0.5",
"vite": "npm:rolldown-vite@7.1.8",
"vite-plugin-inspect": "11.3.3",
"vite-plugin-resolve": "2.5.2",
"vite-plugin-solid": "2.11.8",
"ws": "8.18.3"
"@playwright/test": "1.39.0",
"@rollup/plugin-commonjs": "25.0.7",
"@rollup/plugin-image": "3.0.3",
"@rollup/plugin-json": "6.0.1",
"@rollup/plugin-node-resolve": "15.2.3",
"@rollup/plugin-terser": "0.4.4",
"@rollup/plugin-typescript": "11.1.5",
"@rollup/plugin-wasm": "6.2.2",
"@total-typescript/ts-reset": "0.5.1",
"@types/electron-localshortcut": "3.1.2",
"@types/howler": "2.2.10",
"@types/html-to-text": "9.0.3",
"@typescript-eslint/eslint-plugin": "6.9.1",
"builtin-modules": "^3.3.0",
"cross-env": "7.0.3",
"del-cli": "5.1.0",
"electron": "27.0.3",
"electron-builder": "24.6.4",
"electron-devtools-installer": "3.2.0",
"eslint": "8.52.0",
"eslint-plugin-import": "2.29.0",
"eslint-plugin-prettier": "5.0.1",
"node-gyp": "10.0.1",
"playwright": "1.39.0",
"rollup": "4.2.0",
"rollup-plugin-copy": "3.5.0",
"rollup-plugin-import-css": "3.3.5",
"rollup-plugin-string": "3.0.0",
"typescript": "5.2.2",
"yarpm": "1.2.0"
},
"auto-changelog": {
"hideCredit": true,
"package": true,
"unreleased": true,
"output": "changelog.md"
}
},
"packageManager": "pnpm@8.10.2"
}

View File

@ -1,29 +0,0 @@
diff --git a/index.js b/index.js
index 5968fcf47b69094993b0f861c03f5560e4a6a9b7..0fe16d4f40612c0abfa57898909ce0083f56944c 100644
--- a/index.js
+++ b/index.js
@@ -56,19 +56,23 @@ function getOptionsWithDefaults (options, manifest) {
async function spawnWithLogging (options, command, args, allowFail) {
return new Promise((resolve, reject) => {
logger(`$ ${command} ${args.join(' ')}`)
+ const output = []
const child = childProcess.spawn(command, args, { cwd: options['working-dir'] })
child.stdout.on('data', (data) => {
+ output.push(data)
logger(`1> ${data}`)
})
child.stderr.on('data', (data) => {
+ output.push(data)
logger(`2> ${data}`)
})
child.on('error', (error) => {
+ logger(`error - ${error.message} ${error.stack}`)
reject(error)
})
child.on('close', (code) => {
if (!allowFail && code !== 0) {
- reject(new Error(`${command} failed with status code ${code}`))
+ reject(new Error(`${command} ${args.join(' ')} failed with status code ${code} ${output.join(' ')}`))
}
resolve(code === 0)
})

View File

@ -1,27 +0,0 @@
diff --git a/is.d.ts b/is.d.ts
index fb861f7b401914f0f89cb4edf25c51df5cb05812..82144733cd34d88e2deb2e4713b104418e673f2e 100644
--- a/is.d.ts
+++ b/is.d.ts
@@ -5,6 +5,7 @@ declare namespace is {
export function macOS(): boolean;
export function windows(): boolean;
export function linux(): boolean;
+ export function freebsd(): boolean;
export function x86(): boolean;
export function x64(): boolean;
export function production(): boolean;
diff --git a/is.js b/is.js
index a76bb1755a2728bde185b35d847031d3b8ea4ab0..f6b03406c17342f5af078de069e5bbbd2246e152 100644
--- a/is.js
+++ b/is.js
@@ -39,6 +39,10 @@ module.exports = {
linux: function () {
return process.platform === 'linux'
},
+ // Checks if we are under FreeBSD OS
+ freebsd: function () {
+ return process.platform === "freebsd"
+ },
// Checks if we are the processor's arch is x86
x86: function () {
return process.arch === 'ia32'

View File

@ -1,14 +0,0 @@
diff --git a/core.js b/core.js
index d653e66a4056c27cca777d4e25222acae3b2ec85..a91741d67df85fd9627889a6c7197ac4e6a3a813 100644
--- a/core.js
+++ b/core.js
@@ -1415,8 +1415,7 @@ async function _fromTokenizer(tokenizer) {
}
const stream = readableStream => new Promise((resolve, reject) => {
- // Using `eval` to work around issues when bundling with Webpack
- const stream = eval('require')('stream'); // eslint-disable-line no-eval
+ const stream = require('node:stream');
readableStream.on('error', reject);
readableStream.once('readable', async () => {

File diff suppressed because it is too large Load Diff

View File

@ -1,40 +0,0 @@
diff --git a/jsx.en.d.ts b/jsx.en.d.ts
index 514d455dcdb436aaf7b2ee88deaefe01943c8b4b..48dff045dead4315936afd931336198996c88217 100644
--- a/jsx.en.d.ts
+++ b/jsx.en.d.ts
@@ -1,12 +1,8 @@
-import React from 'react';
import { JQ } from '@mdui/jq';
-type HTMLElementProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
+type HTMLElementProps = import("solid-js").JSX.HTMLAttributes<HTMLElement>;
-declare global {
- namespace React {
- namespace JSX {
- interface IntrinsicElements {
+export interface IntrinsicElements {
/**
* Avatar Component
*
@@ -3296,7 +3292,4 @@ declare global {
*/
'order'?: number;
} & HTMLElementProps;
- }
- }
- }
}
diff --git a/package.json b/package.json
index 3fa3eeb471ce4c31d7ac1c9bcb2d6823947e91ca..c4b062020bf20b8db34ccfea500fa682a4af19a6 100644
--- a/package.json
+++ b/package.json
@@ -60,5 +60,8 @@
"tslib": "^2.8.1",
"@mdui/shared": "^1.0.8",
"@mdui/jq": "^3.0.3"
+ },
+ "peerDependencies": {
+ "solid-js": "^1.9.7"
}
}

View File

@ -1,20 +0,0 @@
diff --git a/umd/vudio.js b/umd/vudio.js
index d0d1127e57125ad4e77442af2db4a26998c7b385..c0b66bd4327c65c31dc6e588bfa4ae6ec70bd3b8 100644
--- a/umd/vudio.js
+++ b/umd/vudio.js
@@ -147,7 +147,6 @@
source.connect(this.analyser);
this.analyser.fftSize = this.option.accuracy * 2;
- this.analyser.connect(audioContext.destination);
this.freqByteData = new Uint8Array(this.analyser.frequencyBinCount);
@@ -207,7 +206,6 @@
source.connect(this.analyser);
this.analyser.fftSize = this.option.accuracy * 2;
- this.analyser.connect(audioContext.destination);
},
__rebuildData : function (freqByteData, horizontalAlign) {

12465
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

301
readme.md Normal file
View File

@ -0,0 +1,301 @@
# YouTube Music
<div align="center">
[![GitHub release](https://img.shields.io/github/release/th-ch/youtube-music.svg?style=for-the-badge&logo=youtube-music)](https://github.com/th-ch/youtube-music/releases/)
[![GitHub license](https://img.shields.io/github/license/th-ch/youtube-music.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/LICENSE)
[![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/th-ch/youtube-music/blob/master/.eslintrc.js)
[![Build status](https://img.shields.io/github/actions/workflow/status/th-ch/youtube-music/build.yml?branch=master&style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![Known Vulnerabilities](https://img.shields.io/snyk/vulnerabilities/github/th-ch/youtube-music?style=for-the-badge)](https://snyk.io/test/github/th-ch/youtube-music)
[![GitHub All Releases](https://img.shields.io/github/downloads/th-ch/youtube-music/total?style=for-the-badge&logo=youtube-music)](https://GitHub.com/th-ch/youtube-music/releases/)
[![AUR](https://img.shields.io/aur/version/youtube-music-bin?color=blueviolet&style=for-the-badge&logo=youtube-music)](https://aur.archlinux.org/packages/youtube-music-bin)
</div>
![Screenshot](web/screenshot.jpg "Screenshot")
<div align="center">
<a href="https://github.com/th-ch/youtube-music/releases/latest">
<img src="web/youtube-music.svg" width="400" height="100" alt="YouTube Music SVG">
</a>
</div>
**Electron wrapper around YouTube Music featuring:**
- Native look & feel, aims at keeping the original interface
- Framework for custom plugins: change YouTube Music to your needs (style, content, features), enable/disable plugins in
one click
## Download
You can check out the [latest release](https://github.com/th-ch/youtube-music/releases/latest) to quickly find the
latest version.
### Arch Linux
Install the `youtube-music-bin` package from the AUR. For AUR installation instructions, take a look at
this [wiki page](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
### MacOS
You can install the app using Homebrew:
```bash
brew install --cask https://raw.githubusercontent.com/th-ch/youtube-music/master/youtube-music.rb
```
If you install the app manually and get an error "is damaged and cant be opened." when launching the app, run the following in the Terminal:
```bash
xattr -cr /Applications/YouTube\ Music.app
```
### Windows
You can use the [Scoop package manager](https://scoop.sh) to install the `youtube-music` package from
the [`extras` bucket](https://github.com/ScoopInstaller/Extras).
```bash
scoop bucket add extras
scoop install extras/youtube-music
```
Alternately you can use [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), Windows 11s
official CLI package manager to install the `th-ch.YouTubeMusic` package.
*Note: Microsoft Defender SmartScreen might block the installation since it is from an "unknown publisher". This is also
true for the manual installation when trying to run the executable(.exe) after a manual download here on github (same
file).*
```bash
winget install th-ch.YouTubeMusic
```
#### How to install without a network connection? (in Windows)
- Download the `*.nsis.7z` file for _your device architecture_ in [release page](https://github.com/th-ch/youtube-music/releases/latest).
- `x64` for 64-bit Windows
- `ia32` for 32-bit Windows
- `arm64` for ARM64 Windows
- Download installer in release page. (`*-Setup.exe`)
- Place them in the **same directory**.
- Run the installer.
## Available plugins:
- **Ad Blocker**: Block all ads and tracking out of the box
- **Album Color Theme**: Applies a dynamic theme and visual effects based on the album color palette
- **Ambient Mode**: Applies a lighting effect by casting gentle colors from the video, into your screens background.
- **Audio Compressor**: Apply compression to audio (lowers the volume of the loudest parts of the signal and raises the
volume of the softest parts)
- **Blur Nav Bar**: makes navigation bar transparent and blurry
- **Bypass age restrictions**: bypass YouTube's age verification
- **Captions selector**: Enable captions
- **Compact sidebar**: Always set the sidebar in compact mode
- **Crossfade**: Crossfade between songs
- **Disable Autoplay**: Makes every song start in "paused" mode
- [**Discord**](https://discord.com/): Show your friends what you listen to
with [Rich Presence](https://user-images.githubusercontent.com/28219076/104362104-a7a0b980-5513-11eb-9744-bb89eabe0016.png)
- **Downloader**: downloads
MP3 [directly from the interface](https://user-images.githubusercontent.com/61631665/129977677-83a7d067-c192-45e1-98ae-b5a4927393be.png) [(youtube-dl)](https://github.com/ytdl-org/youtube-dl)
- **Exponential Volume**: Makes the volume
slider [exponential](https://greasyfork.org/en/scripts/397686-youtube-music-fix-volume-ratio/) so it's easier to
select lower volumes.
- **In-App Menu**: [gives bars a fancy, dark look](https://user-images.githubusercontent.com/78568641/112215894-923dbf00-8c29-11eb-95c3-3ce15db27eca.png)
> (see [this post](https://github.com/th-ch/youtube-music/issues/410#issuecomment-952060709) if you have problem
accessing the menu after enabling this plugin and hide-menu option)
- [**Last.fm**](https://www.last.fm/): Scrobbles support
- **Lumia Stream**: Adds [Lumia Stream](https://lumiastream.com/) support
- **Lyrics Genius**: Adds lyrics support for most songs
- **Navigation**: Next/Back navigation arrows directly integrated in the interface, like in your favorite browser
- **No Google Login**: Remove Google login buttons and links from the interface
- **Notifications**: Display a notification when a song starts
playing ([interactive notifications](https://user-images.githubusercontent.com/78568641/114102651-63ce0e00-98d0-11eb-9dfe-c5a02bb54f9c.png)
are available on windows)
- **Picture in picture**: allows to switch the app to picture-in-picture mode
- **Playback Speed**: Listen fast, listen
slow! [Adds a slider that controls song speed](https://user-images.githubusercontent.com/61631665/129976003-e55db5ba-bf42-448c-a059-26a009775e68.png)
- **Precise Volume**: Control the volume precisely using mousewheel/hotkeys, with a custom hud and customizable volume
steps
- **Quality Changer**: Allows changing the video quality with
a [button](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png) on
the video overlay
- **Shortcuts**: Allows setting global hotkeys for playback (play/pause/next/previous) +
disable [media osd](https://user-images.githubusercontent.com/84923831/128601225-afa38c1f-dea8-4209-9f72-0f84c1dd8b54.png)
by overriding media keys + enable Ctrl/CMD + F to search + enable linux mpris support for
mediakeys + [custom hotkeys](https://github.com/Araxeus/youtube-music/blob/1e591d6a3df98449bcda6e63baab249b28026148/providers/song-controls.js#L13-L50)
for [advanced users](https://github.com/th-ch/youtube-music/issues/106#issuecomment-952156902)
- **Skip-Silences** - Automatically skip silenced sections
- [**SponsorBlock**](https://github.com/ajayyy/SponsorBlock): Automatically Skips non-music parts like intro/outro or
parts of music videos where the song isn't playing
- **Taskbar Media Control**: Control playback from
your [Windows taskbar](https://user-images.githubusercontent.com/78568641/111916130-24a35e80-8a82-11eb-80c8-5021c1aa27f4.png)
- **Touchbar**: Custom TouchBar layout for macOS
- **Tuna-OBS**: Integration with [OBS](https://obsproject.com/)'s
plugin [Tuna](https://obsproject.com/forum/resources/tuna.843/)
- **Video Toggle**: Adds
a [button](https://user-images.githubusercontent.com/28893833/173663950-63e6610e-a532-49b7-9afa-54cb57ddfc15.png) to
switch between Video/Song mode. can also optionally remove the whole video tab
- **Visualizer**: Different music visualizers
---
- **Auto confirm when paused** (Always Enabled): disable
the ["Continue Watching?"](https://user-images.githubusercontent.com/61631665/129977894-01c60740-7ec6-4bf0-9a2c-25da24491b0e.png)
popup that pause music after a certain time
> If `Hide Menu` option is on - you can show the menu with the <kbd>alt</kbd> key (or <kbd>\`</kbd> [backtick] if using
> the in-app-menu plugin)
## Themes
You can load CSS files to change the look of the application (Options > Visual Tweaks > Themes).
Some predefined themes are available in https://github.com/kerichdev/themes-for-ytmdesktop-player.
## Dev
```bash
git clone https://github.com/th-ch/youtube-music
cd youtube-music
pnpm install --frozen-lockfile
pnpm start
```
## Build your own plugins
Using plugins, you can:
- manipulate the app - the `BrowserWindow` from electron is passed to the plugin handler
- change the front by manipulating the HTML/CSS
### Creating a plugin
Create a folder in `plugins/YOUR-PLUGIN-NAME`:
- if you need to manipulate the BrowserWindow, create a file with the following template:
```typescript
// file: back.ts
export default (win: Electron.BrowserWindow, config: ConfigType<'YOUR-PLUGIN-NAME'>) => {
// something
};
```
then, register the plugin in `index.ts`:
```typescript
import yourPlugin from './plugins/YOUR-PLUGIN-NAME/back';
// ...
const mainPlugins = {
// ...
'YOUR-PLUGIN-NAME': yourPlugin,
};
```
- if you need to change the front, create a file with the following template:
```typescript
// file: front.ts
export default (config: ConfigType<'YOUR-PLUGIN-NAME'>) => {
// This function will be called as a preload script
// So you can use front features like `document.querySelector`
};
```
then, register the plugin in `preload.ts`:
```typescript
import yourPlugin from './plugins/YOUR-PLUGIN-NAME/front';
const rendererPlugins: PluginMapper<'renderer'> = {
// ...
'YOUR-PLUGIN-NAME': yourPlugin,
};
```
### Common use cases
- injecting custom CSS: create a `style.css` file in the same folder then:
```typescript
import path from 'node:path';
import { injectCSS } from '../utils';
// back.ts
export default (win: Electron.BrowserWindow) => {
injectCSS(win.webContents, path.join(__dirname, 'style.css'));
};
```
- changing the HTML:
```typescript
// front.ts
export default () => {
// Remove the login button
document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
};
```
- communicating between the front and back: can be done using the ipcMain module from electron. See `utils.js` file and
example in `navigation` plugin.
## Build
1. Clone the repo
2. Follow [this guide](https://pnpm.io/installation) to install `pnpm`
3. Run `pnpm install --frozen-lockfile` to install dependencies
4. Run `pnpm build:OS`
- `pnpm dist:win` - Windows
- `pnpm dist:linux` - Linux
- `pnpm dist:mac` - MacOS
Builds the app for macOS, Linux, and Windows,
using [electron-builder](https://github.com/electron-userland/electron-builder).
## Tests
```bash
pnpm test
```
Uses [Playwright](https://playwright.dev/) to test the app.
## License
MIT © [th-ch](https://github.com/th-ch/youtube-music)

View File

@ -1,6 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"labels": ["dependencies"],
"postUpdateOptions": ["pnpmDedupe"]
}

60
rollup.main.config.ts Normal file
View File

@ -0,0 +1,60 @@
import { defineConfig } from 'rollup';
import builtinModules from 'builtin-modules';
import typescript from '@rollup/plugin-typescript';
import commonjs from '@rollup/plugin-commonjs';
import nodeResolvePlugin from '@rollup/plugin-node-resolve';
import json from '@rollup/plugin-json';
import terser from '@rollup/plugin-terser';
import { string } from 'rollup-plugin-string';
import css from 'rollup-plugin-import-css';
import wasmPlugin from '@rollup/plugin-wasm';
import copy from 'rollup-plugin-copy';
export default defineConfig({
plugins: [
typescript({
module: 'ESNext',
}),
nodeResolvePlugin({
browser: false,
preferBuiltins: true,
exportConditions: ['node', 'default', 'module', 'import'],
}),
commonjs({
ignoreDynamicRequires: true,
}),
wasmPlugin({
maxFileSize: 0,
targetEnv: 'browser',
}),
json(),
string({
include: '**/*.html',
}),
css(),
copy({
targets: [
{ src: 'src/error.html', dest: 'dist/' },
{ src: 'assets', dest: 'dist/' },
],
}),
terser({
ecma: 2020,
}),
{
closeBundle() {
if (!process.env.ROLLUP_WATCH) {
setTimeout(() => process.exit(0));
}
},
name: 'force-close',
},
],
input: './src/index.ts',
output: {
format: 'cjs',
name: '[name].js',
dir: './dist',
},
external: ['electron', 'custom-electron-prompt', ...builtinModules],
});

54
rollup.preload.config.ts Normal file
View File

@ -0,0 +1,54 @@
import { defineConfig } from 'rollup';
import builtinModules from 'builtin-modules';
import typescript from '@rollup/plugin-typescript';
import commonjs from '@rollup/plugin-commonjs';
import nodeResolvePlugin from '@rollup/plugin-node-resolve';
import json from '@rollup/plugin-json';
import terser from '@rollup/plugin-terser';
import { string } from 'rollup-plugin-string';
import css from 'rollup-plugin-import-css';
import wasmPlugin from '@rollup/plugin-wasm';
import image from '@rollup/plugin-image';
export default defineConfig({
plugins: [
typescript({
module: 'ESNext',
}),
nodeResolvePlugin({
browser: false,
preferBuiltins: true,
}),
commonjs({
ignoreDynamicRequires: true,
}),
json(),
string({
include: '**/*.html',
}),
css(),
wasmPlugin({
maxFileSize: 0,
targetEnv: 'browser',
}),
image({ dom: true }),
terser({
ecma: 2020,
}),
{
closeBundle() {
if (!process.env.ROLLUP_WATCH) {
setTimeout(() => process.exit(0));
}
},
name: 'force-close',
},
],
input: './src/preload.ts',
output: {
format: 'cjs',
name: '[name].js',
dir: './dist',
},
external: ['electron', 'custom-electron-prompt', ...builtinModules],
});

View File

@ -1,20 +1,24 @@
import { blockers } from '../plugins/adblocker/blocker-types';
import { DefaultPresetList } from '../plugins/downloader/types';
export interface WindowSizeConfig {
width: number;
height: number;
}
export interface WindowPositionConfig {
x: number;
y: number;
}
export interface DefaultConfig {
'window-size': WindowSizeConfig;
'window-size': {
width: number;
height: number;
}
'window-maximized': boolean;
'window-position': WindowPositionConfig;
'url': string;
'options': {
language?: string;
'window-position': {
x: number;
y: number;
}
url: string;
options: {
tray: boolean;
appVisible: boolean;
autoUpdates: boolean;
@ -31,16 +35,12 @@ export interface DefaultConfig {
likeButtons: string;
proxy: string;
startingPage: string;
backgroundMaterial?: 'none' | 'mica' | 'acrylic' | 'tabbed';
overrideUserAgent: boolean;
usePodcastParticipantAsArtist: boolean;
themes: string[];
customWindowTitle?: string;
};
'plugins': Record<string, unknown>;
}
}
export const defaultConfig: DefaultConfig = {
const defaultConfig = {
'window-size': {
width: 1100,
height: 550,
@ -50,7 +50,7 @@ export const defaultConfig: DefaultConfig = {
x: -1,
y: -1,
},
'url': 'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
'url': 'https://music.youtube.com',
'options': {
tray: false,
appVisible: true,
@ -69,8 +69,230 @@ export const defaultConfig: DefaultConfig = {
proxy: '',
startingPage: '',
overrideUserAgent: false,
usePodcastParticipantAsArtist: false,
themes: [],
themes: [] as string[],
},
/** please order alphabetically */
'plugins': {
'adblocker': {
enabled: true,
cache: true,
blocker: blockers.InPlayer as string,
additionalBlockLists: [], // Additional list of filters, e.g "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt"
disableDefaultLists: false,
},
'album-color-theme': {},
'ambient-mode': {
enabled: false,
quality: 50,
buffer: 30,
interpolationTime: 1500,
blur: 100,
size: 100,
opacity: 1,
fullscreen: false,
},
'audio-compressor': {},
'blur-nav-bar': {},
'bypass-age-restrictions': {},
'captions-selector': {
enabled: false,
disableCaptions: false,
autoload: false,
lastCaptionsCode: '',
},
'compact-sidebar': {},
'crossfade': {
enabled: false,
fadeInDuration: 1500, // Ms
fadeOutDuration: 5000, // Ms
secondsBeforeEnd: 10, // S
fadeScaling: 'linear', // 'linear', 'logarithmic' or a positive number in dB
},
'disable-autoplay': {
applyOnce: false,
},
'discord': {
enabled: false,
autoReconnect: true, // If enabled, will try to reconnect to discord every 5 seconds after disconnecting or failing to connect
activityTimoutEnabled: true, // If enabled, the discord rich presence gets cleared when music paused after the time specified below
activityTimoutTime: 10 * 60 * 1000, // 10 minutes
playOnYouTubeMusic: true, // Add a "Play on YouTube Music" button to rich presence
hideGitHubButton: false, // Disable the "View App On GitHub" button
hideDurationLeft: false, // Hides the start and end time of the song to rich presence
},
'downloader': {
enabled: false,
downloadFolder: undefined as string | undefined, // Custom download folder (absolute path)
selectedPreset: 'mp3 (256kbps)', // Selected preset
customPresetSetting: DefaultPresetList['mp3 (256kbps)'], // Presets
skipExisting: false,
playlistMaxItems: undefined as number | undefined,
},
'http-api': {},
'exponential-volume': {},
'in-app-menu': {
/**
* true in Windows, false in Linux and macOS (see youtube-music/config/store.ts)
*/
enabled: false,
hideDOMWindowControls: false,
},
'last-fm': {
enabled: false,
token: undefined as string | undefined, // Token used for authentication
session_key: undefined as string | undefined, // Session key used for scrobbling
api_root: 'http://ws.audioscrobbler.com/2.0/',
api_key: '04d76faaac8726e60988e14c105d421a', // Api key registered by @semvis123
secret: 'a5d2a36fdf64819290f6982481eaffa2',
},
'lumiastream': {},
'lyrics-genius': {
romanizedLyrics: false,
},
'navigation': {
enabled: true,
},
'no-google-login': {},
'notifications': {
enabled: false,
unpauseNotification: false,
urgency: 'normal', // Has effect only on Linux
// the following has effect only on Windows
interactive: true,
toastStyle: 1, // See plugins/notifications/utils for more info
refreshOnPlayPause: false,
trayControls: true,
hideButtonText: false,
},
'picture-in-picture': {
'enabled': false,
'alwaysOnTop': true,
'savePosition': true,
'saveSize': false,
'hotkey': 'P',
'pip-position': [10, 10],
'pip-size': [450, 275],
'isInPiP': false,
'useNativePiP': false,
},
'playback-speed': {},
'precise-volume': {
enabled: false,
steps: 1, // Percentage of volume to change
arrowsShortcut: true, // Enable ArrowUp + ArrowDown local shortcuts
globalShortcuts: {
volumeUp: '',
volumeDown: '',
},
savedVolume: undefined as number | undefined, // Plugin save volume between session here
},
'quality-changer': {},
'shortcuts': {
enabled: false,
overrideMediaKeys: false,
global: {
previous: '',
playPause: '',
next: '',
} as Record<string, string>,
local: {
previous: '',
playPause: '',
next: '',
} as Record<string, string>,
},
'skip-silences': {
onlySkipBeginning: false,
},
'sponsorblock': {
enabled: false,
apiURL: 'https://sponsor.ajay.app',
categories: [
'sponsor',
'intro',
'outro',
'interaction',
'selfpromo',
'music_offtopic',
],
},
'taskbar-mediacontrol': {},
'touchbar': {},
'tuna-obs': {},
'video-toggle': {
enabled: false,
hideVideo: false,
mode: 'custom',
forceHide: false,
align: '',
},
'visualizer': {
enabled: false,
type: 'butterchurn',
// Config per visualizer
butterchurn: {
preset: 'martin [shadow harlequins shape code] - fata morgana',
renderingFrequencyInMs: 500,
blendTimeInSeconds: 2.7,
},
vudio: {
effect: 'lighting',
accuracy: 128,
lighting: {
maxHeight: 160,
maxSize: 12,
lineWidth: 1,
color: '#49f3f7',
shadowBlur: 2,
shadowColor: 'rgba(244,244,244,.5)',
fadeSide: true,
prettify: false,
horizontalAlign: 'center',
verticalAlign: 'middle',
dottify: true,
},
},
wave: {
animations: [
{
type: 'Cubes',
config: {
bottom: true,
count: 30,
cubeHeight: 5,
fillColor: { gradient: ['#FAD961', '#F76B1C'] },
lineColor: 'rgba(0,0,0,0)',
radius: 20,
},
},
{
type: 'Cubes',
config: {
top: true,
count: 12,
cubeHeight: 5,
fillColor: { gradient: ['#FAD961', '#F76B1C'] },
lineColor: 'rgba(0,0,0,0)',
radius: 10,
},
},
{
type: 'Circles',
config: {
lineColor: {
gradient: ['#FAD961', '#FAD961', '#F76B1C'],
rotate: 90,
},
lineWidth: 4,
diameter: 20,
count: 10,
frequencyBand: 'base',
},
},
],
},
},
},
'plugins': {},
};
export default defaultConfig;

241
src/config/dynamic.ts Normal file
View File

@ -0,0 +1,241 @@
/* eslint-disable @typescript-eslint/require-await */
import { ipcMain, ipcRenderer } from 'electron';
import defaultConfig from './defaults';
import { getOptions, setMenuOptions, setOptions } from './plugins';
import { sendToFront } from '../providers/app-controls';
import { Entries } from '../utils/type-utils';
export type DefaultPluginsConfig = typeof defaultConfig.plugins;
export type OneOfDefaultConfigKey = keyof DefaultPluginsConfig;
export type OneOfDefaultConfig = typeof defaultConfig.plugins[OneOfDefaultConfigKey];
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const activePlugins: { [key in OneOfDefaultConfigKey]?: PluginConfig<any> } = {};
/**
* [!IMPORTANT!]
* The method is **sync** in the main process and **async** in the renderer process.
*/
export const getActivePlugins
= process.type === 'renderer'
? async () => ipcRenderer.invoke('get-active-plugins')
: () => activePlugins;
if (process.type === 'browser') {
ipcMain.handle('get-active-plugins', getActivePlugins);
}
/**
* [!IMPORTANT!]
* The method is **sync** in the main process and **async** in the renderer process.
*/
export const isActive
= process.type === 'renderer'
? async (plugin: string) =>
plugin in (await ipcRenderer.invoke('get-active-plugins'))
: (plugin: string): boolean => plugin in activePlugins;
interface PluginConfigOptions {
enableFront: boolean;
initialOptions?: OneOfDefaultConfig;
}
/**
* This class is used to create a dynamic synced config for plugins.
*
* [!IMPORTANT!]
* The methods are **sync** in the main process and **async** in the renderer process.
*
* @param {string} name - The name of the plugin.
* @param {boolean} [options.enableFront] - Whether the config should be available in front.js. Default: false.
* @param {object} [options.initialOptions] - The initial options for the plugin. Default: loaded from store.
*
* @example
* const { PluginConfig } = require("../../config/dynamic");
* const config = new PluginConfig("plugin-name", { enableFront: true });
* module.exports = { ...config };
*
* // or
*
* module.exports = (win, options) => {
* const config = new PluginConfig("plugin-name", {
* enableFront: true,
* initialOptions: options,
* });
* setupMyPlugin(win, config);
* };
*/
export type ConfigType<T extends OneOfDefaultConfigKey> = typeof defaultConfig.plugins[T];
type ValueOf<T> = T[keyof T];
type Mode<T, Mode extends 'r' | 'm'> = Mode extends 'r' ? Promise<T> : T;
export class PluginConfig<T extends OneOfDefaultConfigKey> {
private readonly name: string;
private readonly config: ConfigType<T>;
private readonly defaultConfig: ConfigType<T>;
private readonly enableFront: boolean;
private subscribers: { [key in keyof ConfigType<T>]?: (config: ConfigType<T>) => void } = {};
private allSubscribers: ((config: ConfigType<T>) => void)[] = [];
constructor(
name: T,
options: PluginConfigOptions = {
enableFront: false,
},
) {
const pluginDefaultConfig = defaultConfig.plugins[name] ?? {};
const pluginConfig = options.initialOptions || getOptions(name) || {};
this.name = name;
this.enableFront = options.enableFront;
this.defaultConfig = pluginDefaultConfig;
this.config = { ...pluginDefaultConfig, ...pluginConfig };
if (this.enableFront) {
this.setupFront();
}
activePlugins[name] = this;
}
get<Key extends keyof ConfigType<T> = keyof ConfigType<T>>(key: Key): ConfigType<T>[Key] {
return this.config?.[key];
}
set(key: keyof ConfigType<T>, value: ValueOf<ConfigType<T>>) {
this.config[key] = value;
this.onChange(key);
this.save();
}
getAll(): ConfigType<T> {
return { ...this.config };
}
setAll(options: Partial<ConfigType<T>>) {
if (!options || typeof options !== 'object') {
throw new Error('Options must be an object.');
}
let changed = false;
for (const [key, value] of Object.entries(options) as Entries<typeof options>) {
if (this.config[key] !== value) {
if (value !== undefined) this.config[key] = value;
this.onChange(key, false);
changed = true;
}
}
if (changed) {
for (const fn of this.allSubscribers) {
fn(this.config);
}
}
this.save();
}
getDefaultConfig() {
return this.defaultConfig;
}
/**
* Use this method to set an option and restart the app if `appConfig.restartOnConfigChange === true`
*
* Used for options that require a restart to take effect.
*/
setAndMaybeRestart(key: keyof ConfigType<T>, value: ValueOf<ConfigType<T>>) {
this.config[key] = value;
setMenuOptions(this.name, this.config);
this.onChange(key);
}
subscribe(valueName: keyof ConfigType<T>, fn: (config: ConfigType<T>) => void) {
this.subscribers[valueName] = fn;
}
subscribeAll(fn: (config: ConfigType<T>) => void) {
this.allSubscribers.push(fn);
}
/** Called only from back */
private save() {
setOptions(this.name, this.config);
}
private onChange(valueName: keyof ConfigType<T>, single: boolean = true) {
this.subscribers[valueName]?.(this.config[valueName] as ConfigType<T>);
if (single) {
for (const fn of this.allSubscribers) {
fn(this.config);
}
}
}
private setupFront() {
const ignoredMethods = ['subscribe', 'subscribeAll'];
if (process.type === 'renderer') {
for (const [fnName, fn] of Object.entries(this) as Entries<this>) {
if (typeof fn !== 'function' || fn.name in ignoredMethods) {
return;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-return
this[fnName] = (async (...args: any) => await ipcRenderer.invoke(
`${this.name}-config-${String(fnName)}`,
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
...args,
)) as typeof this[keyof this];
this.subscribe = (valueName, fn: (config: ConfigType<T>) => void) => {
if (valueName in this.subscribers) {
console.error(`Already subscribed to ${String(valueName)}`);
}
this.subscribers[valueName] = fn;
ipcRenderer.on(
`${this.name}-config-changed-${String(valueName)}`,
(_, value: ConfigType<T>) => {
fn(value);
},
);
ipcRenderer.send(`${this.name}-config-subscribe`, valueName);
};
this.subscribeAll = (fn: (config: ConfigType<T>) => void) => {
ipcRenderer.on(`${this.name}-config-changed`, (_, value: ConfigType<T>) => {
fn(value);
});
ipcRenderer.send(`${this.name}-config-subscribe-all`);
};
}
} else if (process.type === 'browser') {
for (const [fnName, fn] of Object.entries(this) as Entries<this>) {
if (typeof fn !== 'function' || fn.name in ignoredMethods) {
return;
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-return
ipcMain.handle(`${this.name}-config-${String(fnName)}`, (_, ...args) => fn(...args));
}
ipcMain.on(`${this.name}-config-subscribe`, (_, valueName: keyof ConfigType<T>) => {
this.subscribe(valueName, (value) => {
sendToFront(`${this.name}-config-changed-${String(valueName)}`, value);
});
});
ipcMain.on(`${this.name}-config-subscribe-all`, () => {
this.subscribeAll((value) => {
sendToFront(`${this.name}-config-changed`, value);
});
});
}
}
}

View File

@ -1,90 +1,53 @@
import { deepmergeCustom } from 'deepmerge-ts';
import Store from 'electron-store';
import { store, type IStore } from './store';
import { restart } from '@/providers/app-controls';
import defaultConfig from './defaults';
import plugins from './plugins';
import store from './store';
import type { defaultConfig } from './defaults';
import { restart } from '../providers/app-controls';
const deepmerge = deepmergeCustom({
mergeArrays: false,
});
export { defaultConfig } from './defaults';
export * as plugins from './plugins';
export const set = (key: string, value: unknown) => {
const set = (key: string, value: unknown) => {
store.set(key, value);
};
export const setPartial = (
key: string,
value: object,
defaultValue?: object,
) => {
const newValue = deepmerge(defaultValue ?? {}, store.get(key) ?? {}, value);
store.set(key, newValue);
};
export const setMenuOption = (key: string, value: unknown) => {
function setMenuOption(key: string, value: unknown) {
set(key, value);
if (store.get('options.restartOnConfigChanges')) {
restart();
}
};
}
// MAGIC OF TYPESCRIPT
type Prev = [
never,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
...0[],
];
type Join<K, P> = K extends string | number
? P extends string | number
? `${K}${'' extends P ? '' : '.'}${P}`
type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...0[]]
type Join<K, P> = K extends string | number ?
P extends string | number ?
`${K}${'' extends P ? '' : '.'}${P}`
: never : never;
type Paths<T, D extends number = 10> = [D] extends [never] ? never : T extends object ?
{ [K in keyof T]-?: K extends string | number ?
`${K}` | Join<K, Paths<T[K], Prev[D]>>
: never
: never;
type Paths<T, D extends number = 10> = [D] extends [never]
? never
: T extends object
? {
[K in keyof T]-?: K extends string | number
? `${K}` | Join<K, Paths<T[K], Prev[D]>>
: never;
}[keyof T]
: '';
}[keyof T] : ''
type SplitKey<K> = K extends `${infer A}.${infer B}` ? [A, B] : [K, string];
type PathValue<T, K extends string> =
SplitKey<K> extends [infer A extends keyof T, infer B extends string]
? PathValue<T[A], B>
: T;
const get = <Key extends Paths<typeof defaultConfig>>(key: Key) => store.get(key) as PathValue<typeof defaultConfig, typeof key>;
export const get = <Key extends Paths<typeof defaultConfig>>(key: Key) =>
store.get(key) as PathValue<typeof defaultConfig, typeof key>;
export const edit = () => store.openInEditor();
export const watch = (cb: Parameters<IStore['onDidAnyChange']>[0]) => {
store.onDidAnyChange(cb);
export default {
defaultConfig,
get,
set,
setMenuOption,
edit: () => store.openInEditor(),
watch(cb: Parameters<Store['onDidChange']>[1]) {
store.onDidChange('options', cb);
store.onDidChange('plugins', cb);
},
plugins,
};

View File

@ -1,21 +1,24 @@
import { deepmerge } from 'deepmerge-ts';
import { allPlugins } from 'virtual:plugins';
import store from './store';
import defaultConfig from './defaults';
import { store } from './store';
import { restart } from '../providers/app-controls';
import { Entries } from '../utils/type-utils';
import { restart } from '@/providers/app-controls';
import type { PluginConfig } from '@/types/plugins';
export function getPlugins() {
return store.get('plugins') as Record<string, PluginConfig>;
interface Plugin {
enabled: boolean;
}
export async function isEnabled(plugin: string) {
const pluginConfig = deepmerge(
(await allPlugins())[plugin]?.config ?? { enabled: false },
(store.get('plugins') as Record<string, PluginConfig>)[plugin] ?? {},
type DefaultPluginsConfig = typeof defaultConfig.plugins;
export function getEnabled() {
const plugins = store.get('plugins') as DefaultPluginsConfig;
return (Object.entries(plugins) as Entries<DefaultPluginsConfig>).filter(([plugin]) =>
isEnabled(plugin),
);
}
export function isEnabled(plugin: string) {
const pluginConfig = (store.get('plugins') as Record<string, Plugin>)[plugin];
return pluginConfig !== undefined && pluginConfig.enabled;
}
@ -25,11 +28,7 @@ export async function isEnabled(plugin: string) {
* @param options Options to set
* @param exclude Options to exclude from the options object
*/
export function setOptions<T>(
plugin: string,
options: T,
exclude: string[] = ['enabled'],
) {
export function setOptions<T>(plugin: string, options: T, exclude: string[] = ['enabled']) {
const plugins = store.get('plugins') as Record<string, T>;
// HACK: This is a workaround for preventing changed options from being overwritten
exclude.forEach((key) => {
@ -46,11 +45,7 @@ export function setOptions<T>(
});
}
export function setMenuOptions<T>(
plugin: string,
options: T,
exclude: string[] = ['enabled'],
) {
export function setMenuOptions<T>(plugin: string, options: T, exclude: string[] = ['enabled']) {
setOptions(plugin, options, exclude);
if (store.get('options.restartOnConfigChanges')) {
restart();
@ -68,3 +63,13 @@ export function enable(plugin: string) {
export function disable(plugin: string) {
setMenuOptions(plugin, { enabled: false }, []);
}
export default {
isEnabled,
getEnabled,
enable,
disable,
setOptions,
setMenuOptions,
getOptions,
};

View File

@ -1,152 +1,59 @@
import Store from 'electron-store';
import Conf from 'conf';
import is from 'electron-is';
import { defaultConfig as defaults } from './defaults';
import defaults from './defaults';
import { DefaultPresetList, type Preset } from '@/plugins/downloader/types';
import { DefaultPresetList, type Preset } from '../plugins/downloader/types';
import type { SyncedLyricsPluginConfig } from '@/plugins/synced-lyrics/types';
const getDefaults = () => {
if (is.windows()) {
defaults.plugins['in-app-menu'].enabled = true;
}
return defaults;
};
export type IStore = InstanceType<
typeof import('conf').default<Record<string, unknown>>
>;
const setDefaultPluginOptions = (store: Conf<Record<string, unknown>>, plugin: keyof typeof defaults.plugins) => {
if (!store.get(`plugins.${plugin}`)) {
store.set(`plugins.${plugin}`, defaults.plugins[plugin]);
}
};
const migrations = {
'>=3.10.0'(store: IStore) {
const lyricGeniusConfig = store.get('plugins.lyrics-genius') as
| {
enabled?: boolean;
romanizedLyrics?: boolean;
}
| undefined;
if (lyricGeniusConfig) {
const syncedLyricsConfig = store.get('plugins.synced-lyrics') as
| SyncedLyricsPluginConfig
| undefined;
if (
!syncedLyricsConfig ||
syncedLyricsConfig?.enabled !== lyricGeniusConfig?.enabled
) {
store.set('plugins.synced-lyrics', {
...syncedLyricsConfig,
enabled: lyricGeniusConfig.enabled,
});
}
store.delete('plugins.lyrics-genius');
}
},
'>=3.3.0'(store: IStore) {
const lastfmConfig = store.get('plugins.lastfm') as {
enabled?: boolean;
token?: string;
session_key?: string;
api_root?: string;
api_key?: string;
secret?: string;
};
if (lastfmConfig) {
let scrobblerConfig = store.get('plugins.scrobbler') as
| {
enabled?: boolean;
scrobblers?: {
lastfm?: {
enabled?: boolean;
token?: string;
sessionKey?: string;
apiRoot?: string;
apiKey?: string;
secret?: string;
};
};
}
| undefined;
if (!scrobblerConfig) {
scrobblerConfig = {
enabled: lastfmConfig.enabled,
};
}
if (!scrobblerConfig.scrobblers) {
scrobblerConfig.scrobblers = {
lastfm: {},
};
}
scrobblerConfig.scrobblers.lastfm = {
enabled: lastfmConfig.enabled,
token: lastfmConfig.token,
sessionKey: lastfmConfig.session_key,
apiRoot: lastfmConfig.api_root,
apiKey: lastfmConfig.api_key,
secret: lastfmConfig.secret,
};
store.set('plugins.scrobbler', scrobblerConfig);
store.delete('plugins.lastfm');
}
},
'>=3.0.0'(store: IStore) {
const discordConfig = store.get('plugins.discord') as Record<
string,
unknown
>;
if (discordConfig) {
const oldActivityTimoutEnabled = store.get(
'plugins.discord.activityTimoutEnabled',
) as boolean | undefined;
const oldActivityTimoutTime = store.get(
'plugins.discord.activityTimoutTime',
) as number | undefined;
if (oldActivityTimoutEnabled !== undefined) {
discordConfig.activityTimeoutEnabled = oldActivityTimoutEnabled;
store.set('plugins.discord', discordConfig);
}
if (oldActivityTimoutTime !== undefined) {
discordConfig.activityTimeoutTime = oldActivityTimoutTime;
store.set('plugins.discord', discordConfig);
}
}
},
'>=2.1.3'(store: IStore) {
'>=2.1.3'(store: Conf<Record<string, unknown>>) {
const listenAlong = store.get('plugins.discord.listenAlong');
if (listenAlong !== undefined) {
store.set('plugins.discord.playOnPearMusic', listenAlong);
store.set('plugins.discord.playOnYouTubeMusic', listenAlong);
store.delete('plugins.discord.listenAlong');
}
},
'>=2.1.0'(store: IStore) {
const originalPreset = store.get('plugins.downloader.preset') as
| string
| undefined;
'>=2.1.0'(store: Conf<Record<string, unknown>>) {
const originalPreset = store.get('plugins.downloader.preset') as string | undefined;
if (originalPreset) {
if (originalPreset !== 'opus') {
store.set('plugins.downloader.selectedPreset', 'Custom');
store.set('plugins.downloader.customPresetSetting', {
extension: 'mp3',
ffmpegArgs:
(store.get('plugins.downloader.ffmpegArgs') as string[]) ??
DefaultPresetList['mp3 (256kbps)'].ffmpegArgs,
ffmpegArgs: store.get('plugins.downloader.ffmpegArgs') as string[] ?? DefaultPresetList['mp3 (256kbps)'].ffmpegArgs,
} satisfies Preset);
} else {
store.set('plugins.downloader.selectedPreset', 'Source');
store.set('plugins.downloader.customPresetSetting', {
extension: null,
ffmpegArgs:
(store.get('plugins.downloader.ffmpegArgs') as string[]) ?? [],
ffmpegArgs: store.get('plugins.downloader.ffmpegArgs') as string[] ?? [],
} satisfies Preset);
}
store.delete('plugins.downloader.preset');
store.delete('plugins.downloader.ffmpegArgs');
}
},
'>=1.20.0'(store: IStore) {
store.delete('plugins.visualizer'); // default value is now in the plugin
'>=1.20.0'(store: Conf<Record<string, unknown>>) {
setDefaultPluginOptions(store, 'visualizer');
if (store.get('plugins.notifications.toastStyle') === undefined) {
const pluginOptions = store.get('plugins.notifications') || {};
store.set('plugins.notifications', {
...defaults.plugins.notifications,
...pluginOptions,
});
}
@ -156,14 +63,14 @@ const migrations = {
store.set('options.likeButtons', 'force');
}
},
'>=1.17.0'(store: IStore) {
store.delete('plugins.picture-in-picture'); // default value is now in the plugin
'>=1.17.0'(store: Conf<Record<string, unknown>>) {
setDefaultPluginOptions(store, 'picture-in-picture');
if (store.get('plugins.video-toggle.mode') === undefined) {
store.set('plugins.video-toggle.mode', 'custom');
}
},
'>=1.14.0'(store: IStore) {
'>=1.14.0'(store: Conf<Record<string, unknown>>) {
if (
typeof store.get('plugins.precise-volume.globalShortcuts') !== 'object'
) {
@ -175,55 +82,45 @@ const migrations = {
store.set('plugins.video-toggle.enabled', true);
}
},
'>=1.13.0'(store: IStore) {
'>=1.13.0'(store: Conf<Record<string, unknown>>) {
if (store.get('plugins.discord.listenAlong') === undefined) {
store.set('plugins.discord.listenAlong', true);
}
},
'>=1.12.0'(store: IStore) {
const options = store.get('plugins.shortcuts') as
| Record<
string,
| {
action: string;
shortcut: unknown;
}[]
| Record<string, unknown>
>
| undefined;
if (options) {
let updated = false;
for (const optionType of ['global', 'local']) {
if (
Object.hasOwn(options, optionType) &&
Array.isArray(options[optionType])
) {
const optionsArray = options[optionType] as {
action: string;
shortcut: unknown;
}[];
const updatedOptions: Record<string, unknown> = {};
for (const optionObject of optionsArray) {
if (optionObject.action && optionObject.shortcut) {
updatedOptions[optionObject.action] = optionObject.shortcut;
}
'>=1.12.0'(store: Conf<Record<string, unknown>>) {
const options = store.get('plugins.shortcuts') as Record<string, {
action: string;
shortcut: unknown;
}[] | Record<string, unknown>>;
let updated = false;
for (const optionType of ['global', 'local']) {
if (Array.isArray(options[optionType])) {
const optionsArray = options[optionType] as {
action: string;
shortcut: unknown;
}[];
const updatedOptions: Record<string, unknown> = {};
for (const optionObject of optionsArray) {
if (optionObject.action && optionObject.shortcut) {
updatedOptions[optionObject.action] = optionObject.shortcut;
}
options[optionType] = updatedOptions;
updated = true;
}
}
if (updated) {
store.set('plugins.shortcuts', options);
options[optionType] = updatedOptions;
updated = true;
}
}
if (updated) {
store.set('plugins.shortcuts', options);
}
},
'>=1.11.0'(store: IStore) {
'>=1.11.0'(store: Conf<Record<string, unknown>>) {
if (store.get('options.resumeOnStart') === undefined) {
store.set('options.resumeOnStart', true);
}
},
'>=1.7.0'(store: IStore) {
'>=1.7.0'(store: Conf<Record<string, unknown>>) {
const enabledPlugins = store.get('plugins') as string[];
if (!Array.isArray(enabledPlugins)) {
console.warn('Plugins are not in array format, cannot migrate');
@ -257,11 +154,8 @@ const migrations = {
},
};
export const store = new Store({
defaults: {
...defaults,
// README: 'plugin' uses deepmerge to populate the default values, so it is not necessary to include it here
},
export default new Store({
defaults: getDefaults(),
clearInvalidConfig: false,
migrations,
}) as Store & IStore;
});

View File

@ -1,5 +1,5 @@
declare module 'custom-electron-prompt' {
import { type BrowserWindow } from 'electron';
import { BrowserWindow } from 'electron';
export type SelectOptions = Record<string, string>;
@ -53,45 +53,33 @@ declare module 'custom-electron-prompt' {
export interface CounterPromptOptions extends BasePromptOptions<'counter'> {
counterOptions: CounterOptions;
}
export interface MultiInputPromptOptions
extends BasePromptOptions<'multiInput'> {
export interface MultiInputPromptOptions extends BasePromptOptions<'multiInput'> {
multiInputOptions: InputOptions[];
}
export interface KeybindPromptOptions extends BasePromptOptions<'keybind'> {
keybindOptions: KeybindOptions[];
}
export type PromptOptions<T extends string> = T extends 'input'
? InputPromptOptions
: T extends 'select'
? SelectPromptOptions
: T extends 'counter'
? CounterPromptOptions
: T extends 'keybind'
? KeybindPromptOptions
: T extends 'multiInput'
? MultiInputPromptOptions
: never;
export type PromptOptions<T extends string> = (
T extends 'input' ? InputPromptOptions :
T extends 'select' ? SelectPromptOptions :
T extends 'counter' ? CounterPromptOptions :
T extends 'keybind' ? KeybindPromptOptions :
T extends 'multiInput' ? MultiInputPromptOptions :
never
);
type PromptResult<T extends string> = T extends 'input'
? string
: T extends 'select'
? string
: T extends 'counter'
? number
: T extends 'keybind'
? {
value: string;
accelerator: string;
}[]
: T extends 'multiInput'
? string[]
: never;
type PromptResult<T extends string> = T extends 'input' ? string :
T extends 'select' ? string :
T extends 'counter' ? number :
T extends 'keybind' ? {
value: string;
accelerator: string
}[] :
T extends 'multiInput' ? string[] :
never;
const prompt: <T extends Type>(
options?: PromptOptions<T> & { type: T },
parent?: BrowserWindow,
) => Promise<PromptResult<T> | null>;
const prompt: <T extends Type>(options?: PromptOptions<T> & { type: T }, parent?: BrowserWindow) => Promise<PromptResult<T> | null>;
export default prompt;
}

50
src/error.html Normal file
View File

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Cannot load YouTube Music</title>
<style>
body {
background: #000;
}
.container {
margin: 0;
font-family: Roboto, Arial, sans-serif;
font-size: 20px;
font-weight: 500;
color: rgba(255, 255, 255, 0.5);
position: absolute;
top: 50%;
left: 50%;
margin-right: -50%;
transform: translate(-50%, -50%);
text-align: center;
}
.button {
background: #065fd4;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: white;
font: inherit;
text-transform: uppercase;
text-decoration: none;
border-radius: 2px;
font-size: 16px;
font-weight: normal;
text-align: center;
padding: 8px 22px;
display: inline-block;
}
</style>
</head>
<body>
<div class="container">
<p>Cannot load YouTube Music… Internet disconnected?</p>
<a class="button" href="#" onclick="reload()">Retry</a>
</div>
</body>
</html>

View File

@ -1,18 +0,0 @@
import i18next, { init, t as i18t, changeLanguage } from 'i18next';
import { languageResources } from 'virtual:i18n';
export const loadI18n = async () =>
await init({
resources: await languageResources(),
lng: 'en',
fallbackLng: 'en',
interpolation: {
escapeValue: false,
},
});
export const setLanguage = async (language: string) =>
await changeLanguage(language);
export const t = i18t.bind(i18next);

View File

@ -1,11 +0,0 @@
export interface LanguageResources {
[lang: string]: {
translation: Record<string, unknown> & {
language?: {
'name': string;
'local-name': string;
'code': string;
};
};
};
}

View File

@ -1,950 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "فشل بدأ الاضافة {{pluginName}}::{{contextName}}",
"executed-at-ms": "تم بدأ الاضافة {{pluginName}}::{{contextName}} خلال {{ms}} جزء من الثانية",
"initialize-failed": "فشل تشغيل الاضافة \"{{pluginName}}\"",
"load-all": "جار تحميل جميع الاضافات",
"load-failed": "فشل في تحميل الاضافة \"{{pluginName}}\"",
"loaded": "تم تحميل الاضافة \"{{pluginName}}\"",
"unload-failed": "فشل ازالة الاضافة \"{{pluginName}}\"",
"unloaded": "تم ازالة الاضافة \"{{pluginName}}\""
}
}
},
"language": {
"code": "ar",
"local-name": "العربية",
"name": "Arabic"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "انتهى التحميل, تم فتح قائمة المطور"
},
"i18n": {
"loaded": "تم تحميل i18n"
},
"second-instance": {
"receive-command": "تم الحصول على أمر عن طريق: \"{{command}}\""
},
"theme": {
"css-file-not-found": "ملف \"{{cssFile}}\" غير متواجد، سيتم التجاهل"
},
"unresponsive": {
"details": "خطء عدم استجابة!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "ازالة ذاكرة التخزين المؤقت للتطبيق"
},
"window": {
"tried-to-render-offscreen": "تم محاولة فتح الصفحة خارج الشاشة, حجم الصفحة={{windowSize}}, حجم النافذة={{displaySize}}, المكان={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "تم اخفاء القائمة, استخدم 'Alt' لاظهار القائمة (أو 'Escape' اذا كنت تستخدم القائمة التي داخل التطبيق)",
"message": "اخفاء القائمة مفعل",
"title": "تم تفعيل اخفاء القائمة"
},
"need-to-restart": {
"buttons": {
"later": "لاحقاً",
"restart-now": "اعادة التشغيل الأن"
},
"detail": "\"{{pluginName}}\" هذه الاضافة تتطلب اعادة التشغيل ليتم تفعيلها",
"message": "\"{{pluginName}}\" بحاجة الى اعادة التشغيل",
"title": "مطلوب اعادة التشغيل"
},
"unresponsive": {
"buttons": {
"quit": "خروج",
"relaunch": "اعادة التشغيل",
"wait": "انتظار"
},
"detail": "نأسف على الإزعاج! يرجى اختيار ما يجب القيام به:",
"message": "التطبيق لا يستجيب",
"title": "النافذة لا تستجيب"
},
"update-available": {
"buttons": {
"disable": "ايقاف التحديثات",
"download": "تنزيل",
"ok": "حسنا"
},
"detail": "يوجد نسخة جديدة يمكن تنزيلها من {{downloadLink}}",
"message": "يوجد نسخة جديدة",
"title": "يوجد تحديث"
}
},
"menu": {
"about": "عنا",
"navigation": {
"label": "شريط التنقل",
"submenu": {
"copy-current-url": "نسخ الرابط الحالي",
"go-back": "عودة",
"go-forward": "تقدم",
"quit": "الخروج",
"restart": "اعادة تشغيل التطبيق"
}
},
"options": {
"label": "الاعدادات",
"submenu": {
"advanced-options": {
"label": "الاعدادات المتقدمة",
"submenu": {
"auto-reset-app-cache": "إعادة ضبط ذاكرة التخزين المؤقت للتطبيق عند بدء التشغيل",
"disable-hardware-acceleration": "اطفاء تسريع الأجهزة",
"edit-config-json": "تعديل ملف الاعدادات",
"override-user-agent": "تجاوز وكيل المستخدم",
"restart-on-config-changes": "اعادة التشغيل بعد تعديل الاعدادات",
"set-proxy": {
"label": "تعيين الوكيل",
"prompt": {
"label": "أدخل عنوان الوكيل: (اتركه فارغًا لإطفائه)",
"placeholder": "مثال: SOCKS5://127.0.0.1:9999",
"title": "ضع proxy"
}
},
"toggle-dev-tools": "تثبيت أدوات التطوير"
}
},
"always-on-top": "دائما في المقدمة",
"auto-update": "تحديث تلقائي",
"hide-menu": {
"dialog": {
"message": "سيتم إخفاء القائمة عند التشغيل التالي، استخدم [Alt] لإظهارها (أو اضغط [`] في حالة استخدام القائمة التي داخل التطبيق)",
"title": "إخفاء القائمة مفعل"
},
"label": "إخفاء القائمة"
},
"language": {
"dialog": {
"message": "سيتم تغيير اللغة بعد اعادة التشغيل",
"title": "تم تغير اللغة"
},
"label": "اللغة",
"submenu": {
"to-help-translate": "تريد المساعدة في الترجمة؟ اضغط هنا"
}
},
"resume-on-start": "استأنف الأغنية الأخيرة عند بدأ التشغيل",
"single-instance-lock": "قفل مثيل واحد",
"start-at-login": "‎ابدأ عند تسجيل الدخول",
"starting-page": {
"label": "صفحة البداية",
"unset": "عدم تعيين"
},
"tray": {
"label": "قائمة",
"submenu": {
"disabled": "غير مفعل",
"enabled-and-hide-app": "مفعل وإخفاء التطبيق",
"enabled-and-show-app": "مفعل وأظهر التطبيق",
"play-pause-on-click": "تشغيل/إيقاف عند النقر"
}
},
"visual-tweaks": {
"label": "تعديلات المظهر",
"submenu": {
"custom-window-title": {
"label": "عنوان نافذة مخصص",
"prompt": {
"label": "ادخل عنوان مخصص للنافذة: (اتركه فارغًا إلغاء التفعيل)",
"placeholder": "مثال: Pear Desktop"
}
},
"like-buttons": {
"default": "الافتراضي",
"force-show": "اجبار الظهور",
"hide": "اخفاء",
"label": "أزرار الاعجاب"
},
"remove-upgrade-button": "ازالة زر التطوير",
"theme": {
"dialog": {
"button": {
"cancel": "إلغاء",
"remove": "ازالة"
},
"remove-theme": "هل أنت متأكد أنك تريد إزالة السمة المخصصة؟",
"remove-theme-message": "سيؤدي هذا إلى إزالة السمة المخصصة"
},
"label": "السمة",
"submenu": {
"import-css-file": "استيراد ملف CSS مخصص",
"no-theme": "بدون سمة"
}
}
}
}
}
},
"plugins": {
"enabled": "مفعل",
"label": "الاضافات",
"new": "جديد"
},
"view": {
"label": "اظهار",
"submenu": {
"force-reload": "اجبار اعادة التحميل",
"reload": "اعادة التحميل",
"reset-zoom": "الحجم الحقيقي",
"toggle-fullscreen": "ملء الشاشة",
"zoom-in": "تكبير",
"zoom-out": "تصغير"
}
}
},
"tray": {
"next": "التالي",
"play-pause": "تشغيل/إيقاف",
"previous": "السابق",
"quit": "خروج",
"restart": "إعادة تشغيل التطبيق",
"show": "عرض النافدة",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "إذا تم عرض إعلان, فإن الصوت سيتم كتمانه وسيتم وضع سرعة التشغيل الى 16x",
"name": "تسريع الإعلان"
},
"adblocker": {
"description": "حجب جميع الإعلانات والمتتبعات جاهز للأستخدام",
"menu": {
"blocker": "حاجب الإعلانات"
},
"name": "حاجب الإعلانات"
},
"album-actions": {
"description": "يضيف أزرار \"إلغاء عدم الاعجاب\" و\"عدم الاعجاب\" و\"الإعجاب\" و\"إلغاء الإعجاب\" لتطبيق ذلك على جميع الأغاني في قائمة تشغيل أو ألبوم",
"name": "إجراءات الألبوم"
},
"album-color-theme": {
"description": "يطبق ثيمًا ديناميكيًا وتأثيرات بصرية بناء على ألوان الألبوم",
"menu": {
"color-mix-ratio": {
"label": "‬نسبة قوة مزيج الألوان",
"submenu": {
"percent": "{{ratio}}٪"
}
}
},
"name": "سمة ألوان الألبوم"
},
"ambient-mode": {
"description": "يطبق تأثير إضاءة عن طريق إسقاط ألوان ناعمة من الفيديو على خلفية شاشتك",
"menu": {
"blur-amount": {
"label": "مقدار الطمس",
"submenu": {
"pixels": "{{blurAmount}} بكسل"
}
},
"buffer": {
"label": "تخزين الصوت المؤقت",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "الشفافية",
"submenu": {
"percent": "{{opacity}}٪"
}
},
"quality": {
"label": "الجودة",
"submenu": {
"pixels": "{{quality}} بكسل"
}
},
"size": {
"label": "الحجم",
"submenu": {
"percent": "{{size}}٪"
}
},
"smoothness-transition": {
"label": "انتقال السلاسة",
"submenu": {
"during": "خلال {{interpolationTime}} ثانيه"
}
},
"use-fullscreen": {
"label": "استخدام شاشه كامله"
}
},
"name": "الوضع المحيطي"
},
"amuse": {
"description": "تكامل دعم Pear Desktop مع ويدجت Amuse لعرض الأغنية التي قيد التشغيل، من إنتاج 6K Labs",
"name": "تلسيه",
"response": {
"query": "خادم Amuse API قيد التشغيل. استخدم GET /query للحصول على معلومات الأغنية."
}
},
"api-server": {
"description": "يضيف API للتحكم في المشغل",
"dialog": {
"request": {
"buttons": {
"allow": "سماح",
"deny": "رفض"
},
"message": "السماح لـ {{ID}} ({{origin}}) بالوصول إلى الAPI؟",
"title": "طلب السماح بالوصول إلى الAPI"
}
},
"menu": {
"auth-strategy": {
"label": "استراتيجية التفويض",
"submenu": {
"auth-at-first": {
"label": "التفويض عند الطلب الأول"
},
"none": {
"label": "بدون تفويض"
}
}
},
"hostname": {
"label": "اسم المضيف"
},
"port": {
"label": "المنفذ"
}
},
"name": "خادم API [تجريبي]",
"prompt": {
"hostname": {
"label": "أدخل اسم المضيف (مثل 0.0.0.0) لخادم API:",
"title": "اسم الخادم"
},
"port": {
"label": "أدخل المنفذ لخادم API:",
"title": "منفذ"
}
}
},
"audio-compressor": {
"description": "تطبيق الضغط على الصوت (يخفض مستوى صوت الأجزاء الأعلى من الإشارة ويرفع مستوى صوت الأجزاء الأكثر نعومة)",
"name": "ضاغط الصوت"
},
"auth-proxy-adapter": {
"description": "دعم استخدام خدمات proxy للإثبات",
"menu": {
"disable": "تعطيل مكيف الوكيل",
"enable": "تفعيل مكيف proxy للصداقة",
"hostname": {
"label": "إسم المستضيف"
},
"port": {
"label": "المدخل"
}
},
"name": "مكيّف proxy للمصادقة",
"prompt": {
"hostname": {
"label": "أدخل اسم المستضيف لخادم proxy المحلي (يتطلب إعادة التشغيل):",
"title": "إسم مستضيف proxy"
},
"port": {
"label": "أدخل مدخلًا لخادم proxy المحلي (يتطلب إعادة التشغيل):",
"title": "مدخل proxy"
}
}
},
"blur-nav-bar": {
"description": "يجعل شريط التنقل شفاف و مطموس",
"name": "طمس شريط التنقل"
},
"bypass-age-restrictions": {
"description": "تجاوز تَحَقّق مشغل الموسيقى من السن",
"name": "تجاوز التحقق من السن"
},
"captions-selector": {
"description": "محدد ترجمات المقاطع الصوتية لPear Desktop",
"menu": {
"autoload": "اختار اخر ترجمة مستخدمة تلقائيا",
"disable-captions": "لا توجد ترجمات بشكل افتراضي"
},
"name": "محدد الترجمة",
"prompt": {
"selector": {
"label": "لغة الترجمة الحالية: {{language}}",
"none": "لا شيء",
"title": "اختار لغة الترجمة"
}
},
"templates": {
"title": "فتح محدد الترجمة"
},
"toast": {
"caption-changed": "تم تغيير الترجمة الى {{language}}",
"caption-disabled": "الترجمة غير مفعلة",
"no-captions": "الترجمة لهاته الأغنية غير متاحة"
}
},
"compact-sidebar": {
"description": "قم دائمًا بتعيين الشريط الجانبي في الوضع الملموم",
"name": "شريط جانبي ملموم"
},
"crossfade": {
"description": "التداخل بين الأغاني",
"menu": {
"advanced": "متقدم"
},
"name": "التداخل بين الأغاني [تجريبي]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "مدة التداخل (بأجزاء الثانية)",
"fade-out-duration": "مدة التلاشي (بأجزاء الثانية)",
"fade-scaling": {
"label": "توسيع التداخل",
"linear": "خطي",
"logarithmic": "لوغاريتمي"
},
"seconds-before-end": "التداخل قبل النهاية بـ N ثوانٍ"
},
"title": "خيارات التداخل"
}
}
},
"custom-output-device": {
"description": "ضبط مخرج جهاز وسائط مخصص للأغاني",
"menu": {
"device-selector": "اختر جهاز"
},
"name": "جهاز اخراج مخصص",
"prompt": {
"device-selector": {
"label": "اختر جهاز الوسائط الذي سيتم استخدامه للاخراج",
"title": "اختر الجهاز الإخراج"
}
}
},
"disable-autoplay": {
"description": "يجعل الأغنية تبدأ في وضع \"الإيقاف\"",
"menu": {
"apply-once": "ينطبق فقط عند بدء التشغيل"
},
"name": "تعطيل التشغيل التلقائي"
},
"discord": {
"backend": {
"already-connected": "تمت محاولة الاتصال بالاتصال النشط",
"connected": "متصل بDiscord",
"disconnected": "انقطع الاتصال بDiscord"
},
"description": "أظهر لأصدقائك ما تستمع إليه من خلال Rich Presence",
"menu": {
"auto-reconnect": "إعادة اتصال تلقائي",
"clear-activity": "مسح النشاط",
"clear-activity-after-timeout": "مسح النشاط بعد انتهاء المهلة",
"connected": "متصل",
"disconnected": "غير متصل",
"hide-duration-left": "إخفاء المدة المتبقية",
"hide-github-button": "إخفاء زر رابط GitHub",
"play-on-pear-desktop": "شغل في Pear Desktop",
"set-inactivity-timeout": "ضبط مهلة عدم النشاط",
"set-status-display-type": {
"label": "نص الحالة",
"submenu": {
"artist": "جار السمع ل{artist}",
"pear-desktop": "جار السمع لPear Desktop",
"title": "جار السمع ل{song title}"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "أدخل مهلة عدم النشاط بالثواني:",
"title": "ضبط مهلة عدم النشاط"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "حسنا"
},
"message": "اه! نعتذر، فشل التنزيل…",
"title": "خطأ في التنزيل!"
},
"start-download-playlist": {
"buttons": {
"ok": "حسنا"
},
"detail": "({{playlistSize}} أغنية)",
"message": "تنزيل القائمة {{playlistTitle}}",
"title": "تم بدأ التنزيل"
}
},
"feedback": {
"conversion-progress": "التحويل: {{percent}}٪",
"converting": "جارٍ التحويل…",
"done": "تم: {{filePath}}",
"download-info": "تنزيل {{artist}} - {{title}} {{videoId}}",
"download-progress": "تنزيل: {{percent}}٪",
"downloading": "جار التنزيل…",
"downloading-counter": "جار التنزيل {{current}}/{{total}}…",
"downloading-playlist": "جار تنزيل القائمة \"{{playlistTitle}}\" - {{playlistSize}} أغاني ({{playlistId}})",
"error-while-downloading": "خطأ في تنزيل \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "الملف {{playlistFolder}} موجود بالفعل",
"getting-playlist-info": "جار الحصول على معلومات القائمة…",
"loading": "جارِ التنزيل…",
"playlist-has-only-one-song": "تحتوي قائمة التشغيل على عنصر واحد فقط، جار تنزيله الأن",
"playlist-id-not-found": "لم يتم العثور على معرف قائمة التشغيل",
"playlist-is-empty": "قائمة التشغيل فارغة",
"playlist-is-mix-or-private": "حدث خطأ أثناء الحصول على معلومات قائمة التشغيل: تأكد من أنها ليست قائمة تشغيل خاصة أو قائمة تشغيل \"مختلطة لك\"\n\n{{error}}",
"preparing-file": "جار تجهيز الملف…",
"saving": "جار الحفظ…",
"trying-to-get-playlist-id": "جار محاولة الحصول على معرف قائمة التشغيل: {{playlistId}}",
"video-id-not-found": "لم يتم ايجاد الفيديو",
"writing-id3": "جار كتابة علامات ID3…"
}
},
"description": "يقوم بتنزيل ملفات MP3/مصدر الصوت مباشرة من الواجهة",
"menu": {
"choose-download-folder": "اختر مكان التنزيل",
"download-finish-settings": {
"label": "تنزيل عند الانتهاء",
"prompt": {
"last-percent": "بعد x بالمئة",
"last-seconds": "آخر x ثانية",
"title": "تكوين وقت التنزيل"
},
"submenu": {
"advanced": "متقدم",
"enabled": "مفعل",
"mode": "وضع الوقت",
"percent": "نسبة",
"seconds": "ثواني"
}
},
"download-playlist": "تنزيل قائمة التشغيل",
"presets": "الإعدادات المسبقة",
"skip-existing": "تخطي الملفات الموجودة بالفعل"
},
"name": "أداة التنزيل",
"renderer": {
"can-not-update-progress": "لا يمكن تحديث التقدم"
},
"templates": {
"button": "تنزيل"
}
},
"equalizer": {
"description": "يضيف معادل صوتي للمشغل",
"menu": {
"presets": {
"label": "إعدادات مسبقة",
"list": {
"bass-booster": "مزود البيس"
}
}
},
"name": "معادل صوتي"
},
"exponential-volume": {
"description": "يجعل شريط تمرير مستوى الصوت أسيًا بحيث يسهل تحديد مستويات الصوت الأقل.",
"name": "الصوت الأسي"
},
"in-app-menu": {
"description": "يعطي أشرطة القوائم مظهرًا أنيقًا و داكنًا أو بلون الألبوم",
"menu": {
"hide-dom-window-controls": "إخفاء عناصر التحكم في نافذة DOM"
},
"name": "قائمة التي داخل التطبيق"
},
"lumiastream": {
"description": "يضيف دعم Lumia Stream",
"name": "Lumia Stream [تجريبي]"
},
"lyrics-genius": {
"description": "يضيف دعم الكلمات لمعظم الأغاني",
"menu": {
"romanized-lyrics": "كلمات مكتوبة بحروف رومانية"
},
"name": "كلمات الأغاني من Genius",
"renderer": {
"fetched-lyrics": "تم جلب الكلمات من Genius"
}
},
"music-together": {
"description": "مشاركة قائمة تشغيل مع الآخرين. عندما يقوم المضيف بتشغيل أغنية، سيسمع الجميع نفس الأغنية",
"dialog": {
"enter-host": "أدخل معرف المضيف"
},
"internal": {
"save": "حفظ",
"track-source": "تتبع مصدر الاغنية",
"unknown-user": "مستخدم مجهول"
},
"menu": {
"click-to-copy-id": "نسخ معرف المستضيف",
"close": "إغلاق الموسيقى معًا",
"connected-users": "المستخدمون المتصلون",
"disconnect": "قطع اتصال من الموسيقى معًا",
"empty-user": "لا يوجد مستعملون متصلون",
"host": "مضيف الموسيقى معًا",
"join": "الانضمام إلى الموسيقى معا",
"permission": {
"all": "السماح للضيوف بالتحكم في قائمة التشغيل والمشغل",
"host-only": "فقط المضيف يستطيع التحكم بالقائمة و المشغل",
"playlist": "السماح للضيوف بالتحكم بقائمة التشغيل"
},
"set-permission": "تغيير إذن التحكم",
"status": {
"disconnected": "غير متصل",
"guest": "متصل كضيف",
"host": "متصل كمضيف"
}
},
"name": "الموسيقى معا [تجريبي]",
"toast": {
"add-song-failed": "فشل في إضافة أغنية",
"closed": "تم إغلاق الموسيقى معا",
"disconnected": "تم قطع اتصال الموسيقى معًا",
"host-failed": "فشل في استضافة الموسيقى معا",
"id-copied": "تم نسخ معرف المضيف",
"id-copy-failed": "فشل نسخ معرف المضيف",
"join-failed": "فشل الانضمام إلى الموسيقى معا",
"joined": "تم الانضمام إلى الموسيقى معا",
"permission-changed": "تم تغيير إذن الموسيقى معًا إلى \"{{permission}}\"",
"remove-song-failed": "فشل في إزالة الأغنية",
"user-connected": "{{name}} انضم إلى الموسيقى معًا",
"user-disconnected": "{{name}} غادر الموسيقى معًا"
}
},
"navigation": {
"description": "أسهم التنقل \"التالي/السابق\" مدمجة مباشرة في الواجهة، كما في متصفحك المفضل",
"name": "التنقل",
"templates": {
"back": {
"title": "العودة إلى الصفحة السابقة"
},
"forward": {
"title": "إذهب إلى الصفحة المقبلة"
}
}
},
"no-google-login": {
"description": "إزالة أزرار وروابط تسجيل الدخول بجوجل من الواجهة",
"name": "لا يوجد تسجيل دخول بجوجل"
},
"notifications": {
"description": "عرض إشعار عندما تبدأ الأغنية (الإشعارات التفاعلية متوفرة على ويندوز)",
"menu": {
"interactive": "إشعارات تفاعلية",
"interactive-settings": {
"label": "إعدادات تفاعلية",
"submenu": {
"hide-button-text": "إخفاء نص الزر",
"refresh-on-play-pause": "اعادة تحميل عند التشغيل/الإيقاف",
"tray-controls": "فتح/إغلاق عند النقر على علامة الشريط"
}
},
"priority": "أولوية الإشعار",
"toast-style": "تنسيق النخب",
"unpause-notification": "إظهار إشعار عند استئناف التشغيل"
},
"name": "الإشعارات"
},
"performance-improvement": {
"description": "تحسين الأداء عبر تفعيل السكربتات التجريبية",
"name": "تحسين الأداء [تجريبي]"
},
"picture-in-picture": {
"description": "يسمح بتحويل التطبيق إلى وضع الصورة داخل الصورة",
"menu": {
"always-on-top": "دائمًا في المقدمة",
"hotkey": {
"label": "مفتاح اختصار",
"prompt": {
"keybind-options": {
"hotkey": "مفتاح اختصار"
},
"label": "اختر مفتاح اختصار لتبديل وضع الصورة داخل الصورة",
"title": "مفتاح اختصار الصورة داخل الصورة"
}
},
"save-window-position": "حفظ موقع النافذة",
"save-window-size": "حفظ حجم النافذة",
"use-native-pip": "استخدام وضع الصورة داخل الصورة الأصلي للمتصفح"
},
"name": "وضع الصورة داخل الصورة",
"templates": {
"button": "وضع الصورة داخل الصورة"
}
},
"playback-speed": {
"description": "استمع بسرعة، استمع ببطء! يضيف شريط تمرير يتحكم في سرعة الأغنية",
"name": "سرعة التشغيل",
"templates": {
"button": "السرعة"
}
},
"precise-volume": {
"description": "التحكم في مستوى الصوت بدقة باستخدام عجلة الفأرة/مفاتيح الاختصار، مع واجهة مستخدم مخصصة وخطوات صوتية قابلة للتخصيص",
"menu": {
"arrows-shortcuts": "عناصر التحكم بأسهم المفاتيح",
"custom-volume-steps": "تعيين خطوات صوتية خاصة",
"global-shortcuts": "مفاتيح اختصار عام"
},
"name": "مستوى صوت دقيق",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "تقليل مستوى الصوت",
"increase": "زيادة مستوى الصوت"
},
"label": "اختر اختصارات لوحة المفاتيح للتحكم بمستوى الصوت:",
"title": "اختصارات لوحة المفاتيح للتحكم بمستوى الصوت"
},
"volume-steps": {
"label": "اختر خطوات زيادة/تقليل مستوى الصوت",
"title": "خطوات زيادة الصوت"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "الجودة الحالية: {{quality}}",
"message": "اختر جودة الفيديو:",
"title": "اختر جودة الفيديو"
}
}
},
"description": "يسمح بتغيير جودة الفيديو باستخدام زر على صورة الفيديو",
"name": "مغير جودة الفيديو",
"renderer": {
"quality-settings-button": {
"label": "إفتح مغير الجودة"
}
}
},
"scrobbler": {
"description": "إضافة دعم Scrobbling (مثل Last.fm، ListenBrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "فشل التفويض مع Last.fm\nإخفاء النافذة المصغرة حتى إعادة التشغيل التالية.",
"title": "فشل التفويض"
}
}
},
"menu": {
"lastfm": {
"api-settings": "إعدادات Last.fm API"
},
"listenbrainz": {
"token": "أدخل رمز مستخدم ListenBrainz"
},
"scrobble-alternative-artist": "استخدم فنانين بديلين",
"scrobble-alternative-title": "استخدم عناوين بديلة",
"scrobble-other-media": "Scrobble الوسائط الأخرى"
},
"name": "أداة تتبع الاستماع",
"prompt": {
"lastfm": {
"api-key": "مفتاح Last.fm API",
"api-secret": "الرمز السري لـ Last.fm API"
},
"listenbrainz": {
"token": {
"label": "أدخل رمز مستخدم ListenBrainz الخاص بك:",
"title": "رمز ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "يسمح بضبط اختصارات لوحة المفاتيح للتحكم في التشغيل (تشغيل/إيقاف/التالي/السابق) وإيقاف تشغيل OSD الوسائط عن طريق تجاوز مفاتيح الوسائط، وتشغيل Ctrl/CMD + F للبحث، وتفعيل دعم Linux MPRIS لمفاتيح الوسائط، واختصارات مخصصة للمستخدمين المتقدمين",
"menu": {
"override-media-keys": "تجاوز مفاتيح الوسائط",
"set-keybinds": "تعيين عناصر التحكم بالأغاني"
},
"name": "الاختصارات (و MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "التالي",
"play-pause": "تشغيل/ إيقاف",
"previous": "السابق"
},
"label": "اختر اختصارات لوحة المفاتيح للتحكم في الأغاني:",
"title": "اختصارات لوحة المفاتيح"
}
}
},
"skip-disliked-songs": {
"description": "يتخطى الأغاني الغير معجب فيها",
"name": "تخطي الأغاني الغير معجب فيها"
},
"skip-silences": {
"description": "تخطي أقسام التي ليس لها صوت تلقائيًا في الأغاني",
"name": "تخطي الفترات التي ليس لها صوت"
},
"sponsorblock": {
"description": "تخطي تلقائيًا الأجزاء غير الموسيقية مثل المقدمة/الختام أو أجزاء مقاطع الفيديو الموسيقية حيث لا يتم تشغيل الأغنية",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "يوفر كلمات الأغاني المتزامنة باستخدام مزودين مثل LRClib.",
"errors": {
"fetch": "⚠️ حدث خطأ أثناء جلب كلمات الأغنية.\nيرجى المحاولة مرة أخرى لاحقًا.",
"not-found": "⚠️ لم يتم العثور على كلمات لهذه الأغنية."
},
"menu": {
"default-text-string": {
"label": "المسافة الافتراضية بين كلمات الأغاني",
"tooltip": "اختر الحرف الافتراضي لاستخدامه في الفجوة بين كلمات الأغنية"
},
"line-effect": {
"label": "تأثير الخط",
"submenu": {
"fancy": {
"label": "فاخر",
"tooltip": "استخدم تأثيرات كبيرة تشبه التطبيقات على السطر الحالي"
},
"focus": {
"label": "تركيز",
"tooltip": "اجعل السطر الحالي فقط باللون الأبيض"
},
"offset": {
"label": "مزاح",
"tooltip": "مزاح الى يمين السطر الحالي"
},
"scale": {
"label": "تحجيم",
"tooltip": "حجم السطر الحالي"
}
},
"tooltip": "اختر التأثير لتطبيقه على السطر الحالي"
},
"precise-timing": {
"label": "اجعل كلمات الأغنية متزامنة بشكل مثالي",
"tooltip": "احسب بدقة الملي ثانية عرض السطر التالي (قد يكون له تأثير صغير على الأداء)"
},
"preferred-provider": {
"label": "المزود المفضل",
"none": {
"label": "لا شيء",
"tooltip": "لا يوجد مزود مفضل"
},
"tooltip": "اختر المزود المفضل للإستخدام"
},
"romanization": {
"label": "اجعل الكلمات رومانية",
"tooltip": "إذا كانت كلمات الأغنية بلغة مختلفة، حاول عرض نسخة بالحروف اللاتينية."
},
"show-lyrics-even-if-inexact": {
"label": "أظهر كلمات الأغنية حتى لو كانت غير دقيقة",
"tooltip": "إذا لم يتم العثور على الأغنية، سوف يتم البحث مرة أخرى باستخدام استعلام بحث مختلف.\nقد لا تكون النتيجة من المحاولة الثانية دقيقة."
},
"show-time-codes": {
"label": "أظهر الرموز الزمنية",
"tooltip": "أظهر الرموز الزمنية بجانب كلمات الأغنية"
}
},
"name": "كلمات متزامنة",
"refetch-btn": {
"fetching": "جارٍ الجلب...",
"normal": "إعادة جلب كلمات الأغنية"
},
"warnings": {
"duration-mismatch": "⚠️ - قد تكون الكلمات غير متزامنة بسبب عدم تطابق المدة.",
"inexact": "⚠️ - قد لا تكون كلمات هذه الأغنية دقيقة",
"instrumental": "⚠️ - هذه أغنية آلية (بدون كلمات)"
}
},
"taskbar-mediacontrol": {
"description": "التحكم في المشغل من شريط مهام ويندوز",
"name": "التحكم بالوسائط من شريط المهام"
},
"touchbar": {
"description": "يضيف أداة TouchBar لمستخدمي macOS",
"name": "شريط اللمس (TouchBar)"
},
"transparent-player": {
"description": "يجعل نافذة التطبيق شفافة",
"menu": {
"opacity": {
"label": "الشفافية",
"submenu": {
"percent": "{{opacity}}٪"
}
},
"type": {
"label": "النوع",
"submenu": {
"acrylic": "أكريليك",
"mica": "ميكا",
"none": "لاشيء",
"tabbed": "بديل ميكا"
}
}
},
"name": "مشغل شفاف"
},
"tuna-obs": {
"description": "التكامل مع الإضافة\" Tuna\" الخاصة بـ OBS",
"name": "إضافة Tuna OBS"
},
"unobtrusive-player": {
"description": "يمنع المشغل من الظهور عند تشغيل أغنية",
"name": "مشغل غير مزعج"
},
"video-toggle": {
"description": "يضيف زرًا للتبديل بين وضع الفيديو/الأغنية. يمكن أيضًا اختياريًا إزالة علامة الفيديو بالكامل",
"menu": {
"align": {
"label": "المحاذاة",
"submenu": {
"left": "يسار",
"middle": "المنتصف",
"right": "يمين"
}
},
"force-hide": "إزالة علامة تبويب الفيديو",
"mode": {
"label": "وضع",
"submenu": {
"custom": "زر مخصص",
"disabled": "غير مفعل",
"native": "زر طبيعي"
}
}
},
"name": "زر الفيديو",
"templates": {
"button-song": "أغنية",
"button-video": "فيديو"
}
},
"visualizer": {
"description": "يضيف معاينًا بصريًا للمشغل",
"menu": {
"visualizer-type": "نوع المعاين البصري"
},
"name": "معاين بصري"
}
}
}

View File

@ -1,173 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Plagini icra etmək mümkün olmadı {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plagin {{pluginName}}::{{contextName}} {{ms}} millisaniyədə icra edildi",
"initialize-failed": "\"{{pluginName}}\" plaginini başlatmaq mümkün olmadı",
"load-all": "Bütün plaginlər yüklənir",
"load-failed": "\"{{pluginName}}\" plaginini yükləmək mümkün olmadı",
"loaded": "\"{{pluginName}}\" plagini yükləndi",
"unload-failed": "\"{{pluginName}}\" plaqinini yükləmək mümkün olmadı",
"unloaded": "\"{{pluginName}}\" plaqini yükləmədən çıxarıldı"
}
}
},
"language": {
"code": "az",
"local-name": "Azərbaycan dili",
"name": "Azerbaijani"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Yükləmə tamamlandı. DevTools açıldı"
},
"i18n": {
"loaded": "i18n yükləndi"
},
"second-instance": {
"receive-command": "Protokol üzərindən əmr alındı: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS faylı \"{{cssFile}}\" mövcud deyil, nəzərə alınmır"
},
"unresponsive": {
"details": "Cavabsız Səhv!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Proqram keşi təmizlənir"
},
"window": {
"tried-to-render-offscreen": "Pəncərə ekran kənarında göstərilməyə çalışıldı, PəncərəÖlçüsü={{windowSize}}, EkranÖlçüsü={{displaySize}}, Vəziyyət={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menu gizlədildi, yenidən göstərmək üçün 'Alt' istifadə edin (Proqramiçi menu üçün 'Esc')",
"message": "Gizlət menusu aktivləşdirildi",
"title": "Gizlət menusu aktivləşdirildi"
},
"need-to-restart": {
"buttons": {
"later": "Sonra",
"restart-now": "Yenidən başlat"
},
"detail": "\"{{pluginName}}\" plaginin işləməsi üçün proqramı yenidən başladın",
"message": "\"{{pluginName}}\" üçün proqram yenidən başlamalıdır",
"title": "Yenidən başlatmaq tələb edilir"
},
"unresponsive": {
"buttons": {
"quit": "Tərk et",
"relaunch": "Yenidən işə sal",
"wait": "Gözləyin"
},
"detail": "Narahatçılıq üçün üzr istəyirik! Nə etməli olduğumuzu seçin:",
"message": "Proqram cavab vermir",
"title": "Pəncərə Cavab vermir"
},
"update-available": {
"buttons": {
"disable": "Yeniləmələri deaktiv et",
"download": "Yüklə",
"ok": "Oldu"
},
"detail": "Yeni versiya mövcuddur və bu linkdən yüklənə bilər {{downloadLink}}",
"message": "Yeni versiya mövcuddur",
"title": "Yeniləmə mövcuddur"
}
},
"menu": {
"about": "Haqqında",
"navigation": {
"label": "İstiqamət",
"submenu": {
"copy-current-url": "Hazırkı linki kopyala",
"go-back": "Geri qayıt",
"go-forward": "İrəli get",
"quit": ıx",
"restart": "Proqramı Yenidən Başlat"
}
},
"options": {
"label": "Seçimlər",
"submenu": {
"advanced-options": {
"label": "Əlavə seçimlər",
"submenu": {
"auto-reset-app-cache": "Proqram başlayanda keşi təmizlə",
"disable-hardware-acceleration": "Aparat təminatı sürətlənməsini deaktiv et",
"edit-config-json": "Config.json dəyiş",
"override-user-agent": "User-Agent dəyişdirildi",
"restart-on-config-changes": "Konfiqurasiya dəyişikliklərində yenidən başladılır",
"set-proxy": {
"label": "Proxy təyin et",
"prompt": {
"label": "Proxy Ünvanını daxil edin: (deaktiv etmək üçün boş buraxın)",
"placeholder": "Nümunə: SOCKS5://127.0.0.1:9999",
"title": "Proxy təyin et"
}
},
"toggle-dev-tools": "DevTools-u açıb bağla"
}
},
"always-on-top": "Həmişə üst tərəfdə",
"auto-update": "Avtomatik Yeniləmə",
"hide-menu": {
"dialog": {
"message": "Menyu növbəti açılışda gizlədiləcək, göstərmək üçün [Alt] düyməsini basın (proqramdaxili menyudan istifadə edildikdə isə, [`] düyməsi).",
"title": "Menyu gizlətmə aktivdir"
},
"label": "Menyunu gizlət"
},
"language": {
"dialog": {
"message": "Dil yenidən başlatmadan sonra dəyişiləcək",
"title": "Dil dəyişdirildi"
},
"label": "Dil",
"submenu": {
"to-help-translate": "Tərcüməyə kömək etmək istəyirsiniz? Buraya basın"
}
},
"resume-on-start": "Tətbiq başladıqda son mahnıdan davam et",
"single-instance-lock": "Tək proqram kilidi",
"start-at-login": "Giriş səhifəsində başlat",
"starting-page": {
"label": "Giriş səhifəsi",
"unset": "Təyin edilməyib"
},
"tray": {
"submenu": {
"disabled": "Deaktiv edilib"
}
},
"visual-tweaks": {
"label": "Vizual düzəlişlər",
"submenu": {
"custom-window-title": {
"prompt": {
"placeholder": "Nümunə: Pear Desktop"
}
},
"like-buttons": {
"default": "Standart",
"hide": "Gizlət"
},
"remove-upgrade-button": "Yeniləmə düyməsini sil",
"theme": {
"dialog": {
"button": {
"cancel": "Ləğv et",
"remove": "Sil"
}
}
}
}
}
}
}
}
}
}

View File

@ -1 +0,0 @@
{}

View File

@ -1,950 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Неуспешно изпълнение на плъгин {{pluginName}}::{{contextName}}",
"executed-at-ms": "Плъгинът {{pluginName}}::{{contextName}} беше изпълнен на {{ms}}ms",
"initialize-failed": "Неуспешна инициализация на плъгин \"{{pluginName}}\"",
"load-all": "Зареждане на всички плъгини",
"load-failed": "Неуспешно зареждане на плъгин \"{{pluginName}}\"",
"loaded": "Плъгин \"{{pluginName}}\" зареден",
"unload-failed": "Неуспешне разрездане на плъгин \"{{pluginName}}\"",
"unloaded": "Плъгин \"{{pluginName}}\" разреден"
}
}
},
"language": {
"code": "bg",
"local-name": "Български",
"name": "Bulgarian"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Завърши зареждането. DevTools отворени"
},
"i18n": {
"loaded": "i18n заредено"
},
"second-instance": {
"receive-command": "Получена команда чрез протокол: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS файл \"{{cssFile}}\" не съществува, ингнорира се"
},
"unresponsive": {
"details": "Грешка без отговор!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Изчистване на кешът на аппа"
},
"window": {
"tried-to-render-offscreen": "Прозореца се опита да се изрисува извън екрана, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Менюто е скрито. Използвайте \"Alt\", за да го покажете, или \"Escape\", ако използвате менюто в приложението",
"message": "\"Скриване на менюто\" е активирано",
"title": "\"Скриване на менюто\" активирано"
},
"need-to-restart": {
"buttons": {
"later": "По-късно",
"restart-now": "Рестартиране сега"
},
"detail": "\"{{pluginName}}\" плъгинът изисква рестартиране, за да влезе в сила",
"message": "\"{{pluginName}}\" трябва да рестартира",
"title": "Изисква се рестартиране"
},
"unresponsive": {
"buttons": {
"quit": "Прекратяване",
"relaunch": "Повторно стартиране",
"wait": "Изчакване"
},
"detail": "Съжаляваме за неудобството! Моля, изберете какво да направите:",
"message": "Приложението не реагира",
"title": "Прозорецът не реагира"
},
"update-available": {
"buttons": {
"disable": "Деактивиране на актуализациите",
"download": "Изтегляне",
"ok": "Добре"
},
"detail": "Налична е нова версия, която можете да изтеглите от {{downloadLink}}",
"message": "Налична е нова версия",
"title": "Налична е актуализация"
}
},
"menu": {
"about": "За нас",
"navigation": {
"label": "Навигация",
"submenu": {
"copy-current-url": "Копиране на текущия URL адрес",
"go-back": "Назад",
"go-forward": "Напред",
"quit": "Изход",
"restart": "Рестартиране на приложението"
}
},
"options": {
"label": "Опции",
"submenu": {
"advanced-options": {
"label": "Разширени опции",
"submenu": {
"auto-reset-app-cache": "Нулиране на кеша на приложението при стартиране на приложението",
"disable-hardware-acceleration": "Деактивиране на хардуерното ускорение",
"edit-config-json": "Редактиране на config.json",
"override-user-agent": "Замяна на User-Agent",
"restart-on-config-changes": "Рестартиране при промени в конфигурацията",
"set-proxy": {
"label": "Задаване на прокси",
"prompt": {
"label": "Въведете адрес на прокси: (оставете празно, за да деактивирате)",
"placeholder": "Пример: SOCKS5://127.0.0.1:9999",
"title": "Задаване на прокси"
}
},
"toggle-dev-tools": "Активиране на DevTools"
}
},
"always-on-top": "Винаги отгоре",
"auto-update": "Автоматично актуализиране",
"hide-menu": {
"dialog": {
"message": "Менюто ще бъде скрито при следващото стартиране, използвайте [Alt], за да го покажете, или задния бутон [`], ако използвате менюто в приложението",
"title": "\"Скриване на менюто\" активирано"
},
"label": "Скриване на менюто"
},
"language": {
"dialog": {
"message": "Езикът ще бъде променен след рестартиране",
"title": "Езикът беше променен"
},
"label": "Език",
"submenu": {
"to-help-translate": "Искате да помогнете с езиковия превод? Кликнете тук"
}
},
"resume-on-start": "Възобновяване на последната песен при стартиране на приложението",
"single-instance-lock": "Заключване до една инстанция",
"start-at-login": "Стартиране при вход",
"starting-page": {
"label": "Начална страница",
"unset": "Неустановена"
},
"tray": {
"label": "Панел",
"submenu": {
"disabled": "Деактивирано",
"enabled-and-hide-app": "Активиране и скриване на приложението",
"enabled-and-show-app": "Активиране и показване на приложението",
"play-pause-on-click": "Възпроизвеждане/Спиране при кликване"
}
},
"visual-tweaks": {
"label": "Визуални настройки",
"submenu": {
"custom-window-title": {
"label": "Персонализирано заглавие на прозорец",
"prompt": {
"label": "Въведи персонализирано заглавие: (остави празно за да изключиш)",
"placeholder": "Пример: Pear Desktop"
}
},
"like-buttons": {
"default": "По подразбиране",
"force-show": "Принудително показване",
"hide": "Скриване",
"label": "Показване на \"Харесвам\" бутони"
},
"remove-upgrade-button": "Премахване на \"Ъпгрейд\" бутона",
"theme": {
"dialog": {
"button": {
"cancel": "Отказ",
"remove": "Премахни"
},
"remove-theme": "Сигурни ли сте, че искате да премахнете персонализираната тема?",
"remove-theme-message": "Това ще премахне персонализираната тема"
},
"label": "Тема",
"submenu": {
"import-css-file": "Импортиране на потребителски CSS файл",
"no-theme": "Без тема"
}
}
}
}
}
},
"plugins": {
"enabled": "Активирани",
"label": "Плъгини",
"new": "НОВО"
},
"view": {
"label": "Преглед",
"submenu": {
"force-reload": "Принудително презареждане",
"reload": "Презареди",
"reset-zoom": "Действителен размер",
"toggle-fullscreen": "Превключване на цял екран",
"zoom-in": "Увеличаване",
"zoom-out": "Намаляване"
}
}
},
"tray": {
"next": "Следващ",
"play-pause": "Възпроизвеждане/Пауза",
"previous": "Предишен",
"quit": "Изход",
"restart": "Рестартирай приложението",
"show": "Покажи прозорец",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Ако се пусне реклама, заглушава аудиото и задава скорост на възпроизвеждане 16x",
"name": "Ускоряване на рекламите"
},
"adblocker": {
"description": "Блокиране на всички реклами и проследяване по подразбиране",
"menu": {
"blocker": "Блокировач"
},
"name": "Блокировач на реклами"
},
"album-actions": {
"description": "Добавя бутони „Не харесвам“, „Харесвам“, „Харесано“ и „Премахване на харесване“, за да приложите това към всички песни в плейлист или албум",
"name": "Действия за албум"
},
"album-color-theme": {
"description": "Прилага динамична тема и визуални ефекти въз основа на цветовата палитра на албума",
"menu": {
"color-mix-ratio": {
"label": "Съотношение на смесване на цветовете",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Цветова тема на албума"
},
"ambient-mode": {
"description": "Прилага светлинен ефект, като проектира нежни цветове от видеото върху фона на екрана",
"menu": {
"blur-amount": {
"label": "Степен на замъгляване",
"submenu": {
"pixels": "{{blurAmount}} пиксела"
}
},
"buffer": {
"label": "Буферизация",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Непрозрачност",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Качество",
"submenu": {
"pixels": "{{quality}} пиксела"
}
},
"size": {
"label": "Размер",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Плавен преход",
"submenu": {
"during": "{{interpolationTime}} секунди"
}
},
"use-fullscreen": {
"label": "Използване на цял екран"
}
},
"name": "Атмосферен режим"
},
"amuse": {
"description": "Добавя поддръжка на Pear Desktop за джаджата Amuse Now Play от 6K Labs",
"name": "Забавление",
"response": {
"query": "Сървърът на Amuse API работи. Изпратете GET /query за информация за песента."
}
},
"api-server": {
"description": "Добавя API сървър за контрол на плейъра",
"dialog": {
"request": {
"buttons": {
"allow": "Разрешавам",
"deny": "Отказвам"
},
"message": "Позволяваш ли {{ID}} {{origin}} да достъпва API-то?",
"title": "Заявка за авторизация на API"
}
},
"menu": {
"auth-strategy": {
"label": "Стратегия за авторизация",
"submenu": {
"auth-at-first": {
"label": "Авторизиране при първата заявка"
},
"none": {
"label": "Без авторизация"
}
}
},
"hostname": {
"label": "Име на хост"
},
"port": {
"label": "Порт"
}
},
"name": "API сървър [Бета]",
"prompt": {
"hostname": {
"label": "Въведете името на хоста (като 0.0.0.0) за API сървъра:",
"title": "Име на хост"
},
"port": {
"label": "Въведете порта за API сървъра:",
"title": "Порт"
}
}
},
"audio-compressor": {
"description": "Прилага компресия на аудиото (намалява обема на най-силните части от сигнала и увеличава обема на най-тихите части)",
"name": "Аудио компресор"
},
"auth-proxy-adapter": {
"description": "Поддръжка за използване на услуги за удостоверяване чрез прокси",
"menu": {
"disable": "Деактивирай адаптера за удостоверяване чрез прокси",
"enable": "Активирай адаптера за удостоверяване чрез прокси",
"hostname": {
"label": "Име на хост"
},
"port": {
"label": "Порт"
}
},
"name": "Адаптер за удостоверяване чрез прокси",
"prompt": {
"hostname": {
"label": "Въведи име за локалния прокси сървър (необходимо е рестартиране):",
"title": "Име на прокси хост"
},
"port": {
"label": "Въведи порт за локалния прокси сървър (необходимо е рестартиране):",
"title": "Прокси порт"
}
}
},
"blur-nav-bar": {
"description": "Прави навигационната лента прозрачна и размазана",
"name": "Размазанa навигационна лента"
},
"bypass-age-restrictions": {
"description": "Избягване на възрастова верификация на Music Player",
"name": "Избягване на възрастови ограничения"
},
"captions-selector": {
"description": "Избор на надписи за аудио тракове в Pear Desktop",
"menu": {
"autoload": "Автоматично избиране на последно използвания надпис",
"disable-captions": "Без надписи по подразбиране"
},
"name": "Избор на надписи",
"prompt": {
"selector": {
"label": "Език на надписи: {{language}}",
"none": "Нищо",
"title": "Избери език на надписите"
}
},
"templates": {
"title": "Отвори избора на надписи"
},
"toast": {
"caption-changed": "Надписите са сменени на {{language}}",
"caption-disabled": "Надписите са деактивирани",
"no-captions": "Няма налични надписи за тази песен"
}
},
"compact-sidebar": {
"description": "Винаги настройвай страничната лента в компактен режим",
"name": "Компактна странична лента"
},
"crossfade": {
"description": "Плавно преминаване през песните",
"menu": {
"advanced": "Разширено"
},
"name": "Плавно преминаване [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Продължителност на преливането (милисекунди)",
"fade-out-duration": "Продължителност на затихването (милисекунди)",
"fade-scaling": {
"label": "Скалиране на избледняването",
"linear": "Линейно",
"logarithmic": "Логаритмично"
},
"seconds-before-end": "Преливане N секунди преди края"
},
"title": "Опции за преливане"
}
}
},
"custom-output-device": {
"description": "Конфигуриране на изходно медийно устройство за песни",
"menu": {
"device-selector": "Избери устройство"
},
"name": "Персонализирано изходно устройство",
"prompt": {
"device-selector": {
"label": "Избери изходното медийно устройство",
"title": "Избери изходно устройство"
}
}
},
"disable-autoplay": {
"description": "Започва песента в паузиран режим",
"menu": {
"apply-once": "Важи само на стартиране"
},
"name": "Изключи автоматичното пускане"
},
"discord": {
"backend": {
"already-connected": "Опит за свързване с активна връзка",
"connected": "Свързано с Discord",
"disconnected": "Прекъсната връзка с Discord"
},
"description": "Покажи на приятелите си какво слушате с Rich Presence",
"menu": {
"auto-reconnect": "Автоматично повторно свързване",
"clear-activity": "Изчистване на активността",
"clear-activity-after-timeout": "Изчистване на активността след изтичане на времето",
"connected": "Свързано",
"disconnected": "Прекъснато",
"hide-duration-left": "Скрий оставащото време",
"hide-github-button": "Скрий бутона за линк към GitHub",
"play-on-pear-desktop": "Възпроизведи в Pear Desktop",
"set-inactivity-timeout": "Задай таймаут за неактивност",
"set-status-display-type": {
"label": "Статус текст",
"submenu": {
"artist": "Слушам {artist}",
"title": "Слушам {song title}",
"pear-desktop": "Слушам Pear Desktop"
}
}
},
"name": "Дискорд Разширен статус",
"prompt": {
"set-inactivity-timeout": {
"label": "Въведете таймаута за неактивност в секунди:",
"title": "Задайте таймаут за неактивност"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "ОК"
},
"message": "Ох! Извинявайте, изтеглянето не успя…",
"title": "Грешка при изтегляне!"
},
"start-download-playlist": {
"buttons": {
"ok": "ОК"
},
"detail": "({{playlistSize}} песни)",
"message": "Изтегляне на плейлист {{playlistTitle}}",
"title": "Изтеглянето започна"
}
},
"feedback": {
"conversion-progress": "Конвертиране: {{percent}}%",
"converting": "Превръщане…",
"done": "Готово: {{filePath}}",
"download-info": "Изтегляне на {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Изтегляне: {{percent}}%",
"downloading": "Изтегляне…",
"downloading-counter": "Изтегляне {{current}}/{{total}}…",
"downloading-playlist": "Изтегляне на плейлист \"{{playlistTitle}}\" - {{playlistSize}} песни ({{playlistId}})",
"error-while-downloading": "Грешка при изтегляне на \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Папката {{playlistFolder}} вече съществува",
"getting-playlist-info": "Получаване на информация за плейлист…",
"loading": "Зареждане…",
"playlist-has-only-one-song": "Плейлистът съдържа само един елемент, изтегля се директно",
"playlist-id-not-found": "Не е намерен ID на плейлист",
"playlist-is-empty": "Плейлистът е празен",
"playlist-is-mix-or-private": "Грешка при получаване на информация за плейлист: уверете се, че не е частен или \"Смесено за вас\" плейлист\n\n{{error}}",
"preparing-file": "Подготвяне на файла…",
"saving": "Записване…",
"trying-to-get-playlist-id": "Опитвам се да получа ID на плейлист: {{playlistId}}",
"video-id-not-found": "Видео не е намерено",
"writing-id3": "Записване на ID3 тагове…"
}
},
"description": "Изтегля MP3 / източниково аудио директно от интерфейса",
"menu": {
"choose-download-folder": "Изберете папка за изтегляне",
"download-finish-settings": {
"label": "Изтегляне при завършване",
"prompt": {
"last-percent": "След x процента",
"last-seconds": "Последни x секунди",
"title": "Конфигурирайте кога да изтеглите"
},
"submenu": {
"advanced": "Разширени настройки",
"enabled": "Активирано",
"mode": "Режим на време",
"percent": "Процент",
"seconds": "Секунди"
}
},
"download-playlist": "Изтегляне на плейлист",
"presets": "Предварително зададени настройки",
"skip-existing": "Пропусни съществуващите файлове"
},
"name": "Изтегляч",
"renderer": {
"can-not-update-progress": "Не може да се актуализира напредъкът"
},
"templates": {
"button": "Изтегляне"
}
},
"equalizer": {
"description": "Добавя еквалайзер към плеъра",
"menu": {
"presets": {
"label": "Предварителни настройки",
"list": {
"bass-booster": "Усилвател на басове"
}
}
},
"name": "Еквалайзер"
},
"exponential-volume": {
"description": "Прави плъзгача за сила на звука експоненциален, така че да е по-лесно да се избират по-ниски нива на звук.",
"name": "Експоненциален звук"
},
"in-app-menu": {
"description": "Придава на меню баровете стилен, тъмен или с цвят на албума вид",
"menu": {
"hide-dom-window-controls": "Скрий контролните елементи на DOM прозореца"
},
"name": "Меню в приложението"
},
"lumiastream": {
"description": "Добавя поддръжка за Lumia Stream",
"name": "Lumia Stream [Бета]"
},
"lyrics-genius": {
"description": "Добавя поддръжка за текстове за повечето песни",
"menu": {
"romanized-lyrics": "Романизирани текстове"
},
"name": "Текстове от Genius",
"renderer": {
"fetched-lyrics": "Изтеглени текстове от Genius"
}
},
"music-together": {
"description": "Сподели плейлист с други. Когато хостът пусне песен, всички останали ще чуят същата песен",
"dialog": {
"enter-host": "Въведи ID на хоста"
},
"internal": {
"save": "Запазване",
"track-source": "Източник на трак",
"unknown-user": "Неизвестен потребител"
},
"menu": {
"click-to-copy-id": "Копирай ID на хост",
"close": "Затвори Music Together",
"connected-users": "Свързани потребители",
"disconnect": "Прекъсни Music Together",
"empty-user": "Няма свързани потребители",
"host": "Хост на Music Together",
"join": "Присъедини се към Music Together",
"permission": {
"all": "Позволи на гостите да управляват плейлист и плеър",
"host-only": "Само хостът може да управлява плейлист и плеър",
"playlist": "Позволи на гостите да управляват плейлист"
},
"set-permission": "Промени разрешението за управление",
"status": {
"disconnected": "Прекъснато",
"guest": "Свързан като гост",
"host": "Свързан като хост"
}
},
"name": "Music Together [Бета]",
"toast": {
"add-song-failed": "Неуспешно добавяне на песен",
"closed": "Music Together е затворена",
"disconnected": "Music Together е прекъсната",
"host-failed": "Неуспешно хостване на Music Together",
"id-copied": "ID на хоста е копиран в клипборда",
"id-copy-failed": "Неуспешно копиране на ID на хоста в клипборда",
"join-failed": "Неуспешно присъединяване към Music Together",
"joined": "Присъединен към Music Together",
"permission-changed": "Разрешението за Music Together е променено на \"{{permission}}\"",
"remove-song-failed": "Неуспешно премахване на песен",
"user-connected": "{{name}} се присъедини към Music Together",
"user-disconnected": "{{name}} напусна Music Together"
}
},
"navigation": {
"description": "Навигационни стрелки Напред/Назад, директно интегрирани в интерфейса, както в любимия ви браузър",
"name": "Навигация",
"templates": {
"back": {
"title": "Предишна страница"
},
"forward": {
"title": "Следваща страница"
}
}
},
"no-google-login": {
"description": "Премахни бутоните за вход с Google и връзките от интерфейса",
"name": "Няма вход с Google"
},
"notifications": {
"description": "Показване на известие при стартиране на песен (интерактивни известия са налични за Windows)",
"menu": {
"interactive": "Интерактивни известия",
"interactive-settings": {
"label": "Интерактивни настройки",
"submenu": {
"hide-button-text": "Скрий текста на бутоните",
"refresh-on-play-pause": "Обновяване при Възпроизвеждане/Пауза",
"tray-controls": "Отваряне/Затваряне при клик в тавата"
}
},
"priority": "Приоритет на известията",
"toast-style": "Стил на toast (кратки изскачащи известия)",
"unpause-notification": "Показване на известие при възобновяване"
},
"name": "Известия"
},
"performance-improvement": {
"description": "Подобри производителността като пуснеш експериментални скриптове",
"name": "Производителни подобрения"
},
"picture-in-picture": {
"description": "Позволява превключване на приложението в режим картинка във картинка",
"menu": {
"always-on-top": "Винаги на преден план",
"hotkey": {
"label": "Клавишна комбинация",
"prompt": {
"keybind-options": {
"hotkey": "Клавишна комбинация"
},
"label": "Изберете клавишна комбинация за превключване на картинка във картинка",
"title": "Клавишна комбинация за картинка във картинка"
}
},
"save-window-position": "Запомняне на позицията на прозореца",
"save-window-size": "Запомняне на размера на прозореца",
"use-native-pip": "Използвайте вградения картинка във картинка на браузера"
},
"name": "Картинка във картинка",
"templates": {
"button": "Картинка във картинка"
}
},
"playback-speed": {
"description": "Слушай бързо, слушай бавно! Добавя плъзгач, който управлява скоростта на песните",
"name": "Скорост на възпроизвеждане",
"templates": {
"button": "Скорост"
}
},
"precise-volume": {
"description": "Управлявайте прецизно силата на звука чрез колелото на мишката или бързи клавиши, с персонализиран HUD и настройвани нива на звука",
"menu": {
"arrows-shortcuts": "Локални контроли със стрелки",
"custom-volume-steps": "Задайте персонализирани нива на звука",
"global-shortcuts": "Глобални бързи клавиши"
},
"name": "Точна сила на звука",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Намаляване на звука",
"increase": "Усилване на звука"
},
"label": "Изберете глобални клавишни комбинации за сила на звука:",
"title": "Глобални клавишни комбинации за звук"
},
"volume-steps": {
"label": "Изберете стъпки за увеличаване/намаляване на звука",
"title": "Стъпки на звука"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Текущо качество: {{quality}}",
"message": "Изберете качество на видеото:",
"title": "Изберете качество на видеото"
}
}
},
"description": "Позволява промяна на качеството на видеото с бутон върху видеото",
"name": "Промяна на качеството на видеото",
"renderer": {
"quality-settings-button": {
"label": "Отвори настройките за качество на плейъра"
}
}
},
"scrobbler": {
"description": "Добавяне на скробблинг поддръжка (last.fm, Listenbrainz и т.н.)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Грешка при удостоверяване с Last.fm\nСкрий изкачащия прозорец до следващо пускане.",
"title": "Грешка при удостоверяване"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Настройки за Last.fm API"
},
"listenbrainz": {
"token": "Въведете ListenBrainz потребителски токен"
},
"scrobble-alternative-artist": "Използвай алтернативни изпълнители",
"scrobble-alternative-title": "Използвай алтернативни заглавия",
"scrobble-other-media": "Скробъл на други медии"
},
"name": "Скробълър",
"prompt": {
"lastfm": {
"api-key": "Last.fm API ключ",
"api-secret": "Last.fm API тайна"
},
"listenbrainz": {
"token": {
"label": "Въведете вашия ListenBrainz потребителски токен:",
"title": "ListenBrainz токен"
}
}
}
},
"shortcuts": {
"description": "Позволява задаване на глобални бързи клавиши за възпроизвеждане (пускане/пауза/следваща/предишна), изключване на медиен OSD чрез презаписване на медийни клавиши, включване на Ctrl/CMD + F за търсене, включване на Linux MPRIS поддръжка за медийни клавиши и персонализирани бързи клавиши за напреднали потребители",
"menu": {
"override-media-keys": "Презаписване на медийни клавиши",
"set-keybinds": "Задайте глобални контроли за песни"
},
"name": "Клавишни комбинации (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Следваща",
"play-pause": "Пусни / Пауза",
"previous": "Предишна"
},
"label": "Изберете глобални клавишни комбинации за контрол на песните:",
"title": "Глобални клавишни комбинации"
}
}
},
"skip-disliked-songs": {
"description": "Прескача нехаресаните песни",
"name": "Прескачане на нехаресани песни"
},
"skip-silences": {
"description": "Автоматично прескачане на тихи участъци в песните",
"name": "Прескачане на тишини"
},
"sponsorblock": {
"description": "Автоматично прескача не-музикални части като встъпление/изход или части от музикални клипове, където песента не се пуска",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Предоставя синхронизирани текстове на песни, използвайки доставчици като LRClib.",
"errors": {
"fetch": "⚠️\tВъзникна грешка при извличане на текста.\n\tМоля, опитайте по-късно.",
"not-found": "⚠️ За тази песен не са намерени текстове."
},
"menu": {
"default-text-string": {
"label": "Подразбиращ се знак между текстовете",
"tooltip": "Изберете знака, който да се използва за интервала между текстовете"
},
"line-effect": {
"label": "Линеен ефект",
"submenu": {
"fancy": {
"label": "Украсено",
"tooltip": "Използвайте големи, приложно-подобни ефекти на текущия ред"
},
"focus": {
"label": "Фокус",
"tooltip": "Направете само текущия ред бял"
},
"offset": {
"label": "Отместване",
"tooltip": "Отместване на текущия ред вдясно"
},
"scale": {
"label": "Мащаб",
"tooltip": "Мащабирайте текущия ред"
}
},
"tooltip": "Изберете ефекта, който да се приложи към текущия ред"
},
"precise-timing": {
"label": "Направете текстовете перфектно синхронизирани",
"tooltip": "Изчислете до милисекунда показването на следващия ред (може да има малък ефект върху производителността)"
},
"preferred-provider": {
"label": "Предпочитан доставчик",
"none": {
"label": "Празно",
"tooltip": "Без предпочитан доставчик"
},
"tooltip": "Изберете доставчик по подразбиране"
},
"romanization": {
"label": "Романизиране на текстовете",
"tooltip": "Ако текстовете са на друг език, опитайте да покажете латинска версия."
},
"show-lyrics-even-if-inexact": {
"label": "Показване на текстовете, дори ако са неточни",
"tooltip": "Ако песента не бъде намерена, добавката се опитва отново с различен поисков запрос.\nРезултатът от втория опит може да не е точен."
},
"show-time-codes": {
"label": "Показване на временни кодове",
"tooltip": "Показване на временни кодове до текстовете"
}
},
"name": "Синхронизирани текстове",
"refetch-btn": {
"fetching": "Извличане...",
"normal": "Повторно извличане на текстовете"
},
"warnings": {
"duration-mismatch": "⚠️ - Текстовете може да не са синхронизирани поради несъответствие в продължителността.",
"inexact": "⚠️ - Текстовете за тази песен може да не са точни",
"instrumental": "⚠️ - Това е инструментална песен"
}
},
"taskbar-mediacontrol": {
"description": "Управление на възпроизвеждането от лентата с задачи на Windows",
"name": "Управление на медията от лентата със задачи"
},
"touchbar": {
"description": "Добавя уиджет за TouchBar за потребители на macOS",
"name": "TouchBar"
},
"transparent-player": {
"description": "Прави прозореца на приложението прозрачен",
"menu": {
"opacity": {
"label": "Прозрачност",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Тип",
"submenu": {
"acrylic": "Акрил",
"mica": "Слюда",
"none": "Празно",
"tabbed": "С раздели"
}
}
},
"name": "Прозрачен плейър"
},
"tuna-obs": {
"description": "Интеграция с плъгина Tuna за OBS",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Предотвратява изскачането на плеъра при възпроизвеждане на песен",
"name": "Неназойлив плеър"
},
"video-toggle": {
"description": "Добавя бутон за превключване между видео/песен режим. Също така може по избор да премахва целия раздел за видео",
"menu": {
"align": {
"label": "Подравняване",
"submenu": {
"left": "Ляво",
"middle": "В средата",
"right": "Дясно"
}
},
"force-hide": "Принудително премахване на раздела за видео",
"mode": {
"label": "Режим",
"submenu": {
"custom": "Персонализиран превключвател",
"disabled": "Изключено",
"native": "Вграден превключвател"
}
}
},
"name": "Превключване на видео",
"templates": {
"button-song": "Песен",
"button-video": "Видео"
}
},
"visualizer": {
"description": "Добавя визуализатор към плеъра",
"menu": {
"visualizer-type": "Тип визуализатор"
},
"name": "Визуализатор"
}
}
}

View File

@ -1,899 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "প্লাগইন {{pluginName}}::{{contextName}} কার্যকর করতে ব্যর্থ হয়েছে",
"executed-at-ms": "প্লাগইন {{pluginName}}::{{contextName}} {{ms}}মিলিসেকেন্ডে কার্যকর হয়েছে",
"initialize-failed": "প্লাগইন \"{{pluginName}}\" চালু করতে ব্যর্থ হয়েছে",
"load-all": "সকল প্লাগইন লোড করা হচ্ছে",
"load-failed": "প্লাগইন \"{{pluginName}}\" লোড হতে ব্যর্থ হয়েছে",
"loaded": "প্লাগইন \"{{pluginName}}\" লোড হয়েছে",
"unload-failed": "প্লাগইন \"{{pluginName}}\" আনলোড করতে ব্যর্থ হয়েছে",
"unloaded": "প্লাগইন \"{{pluginName}}\" আনলোড হয়েছে"
}
}
},
"language": {
"code": "bn",
"local-name": "বাংলা",
"name": "Bengali"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "লোড সম্পন্ন হয়েছে। ডেভটুলস খোলা হয়েছে"
},
"i18n": {
"loaded": "i18n লোড হয়েছে"
},
"second-instance": {
"receive-command": "প্রোটোকলের মাধ্যমে কমান্ড গ্রহণ করা হয়েছে: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS ফাইল \"{{cssFile}}\" পাওয়া যায়নি, ইগনোর করা হয়েছে"
},
"unresponsive": {
"details": "অকার্যকর ত্রুটি!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "অ্যাপ ক্যাশ মুছে ফেলা হচ্ছে"
},
"window": {
"tried-to-render-offscreen": "উইন্ডোটি স্ক্রিনের বাইরে রেন্ডার করার চেষ্টা করেছে, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "মেনু লুকানো রয়েছে, দেখতে 'Alt' চাপুন ( অথবা ইন-অ্যাপ মেনু ব্যবহার করে থাকলে 'Escape' চাপুন )",
"message": "মেনু লুকান সক্রিয় করা হয়েছে",
"title": "মেনু লুকান সক্রিয় হয়েছে"
},
"need-to-restart": {
"buttons": {
"later": "পরে",
"restart-now": "রিস্টার্ট করুন"
},
"detail": "\"{{pluginName}}\" প্লাগইন কার্যকর করতে পুনরারম্ভ করতে হবে",
"message": "\"{{pluginName}}\" পুনরায় চালু করা প্রয়োজন",
"title": "পুনরায় চালু করা প্রয়োজন"
},
"unresponsive": {
"buttons": {
"quit": "বন্ধ করুন",
"relaunch": "পুনরায় চালু করুন",
"wait": "অপেক্ষা করুন"
},
"detail": "অসুবিধার জন্য আমরা দুঃখিত! অনুগ্রহ করে কী করতে চান তা নির্বাচন করুন:",
"message": "অ্যাপ্লিকেশনটি কাজ করছে না",
"title": "উইন্ডোটি কাজ করছে না"
},
"update-available": {
"buttons": {
"disable": "আপডেট বন্ধ করুন",
"download": "ডাউনলোড",
"ok": "ওকে"
},
"detail": "একটি নতুন ভার্সন এসেছে এবং এটি {{downloadLink}} থেকে ডাউনলোড করতে পারেন",
"message": "একটি নতুন ভার্সন এসেছে",
"title": "আপডেট করতে পারেন"
}
},
"menu": {
"about": "সম্পর্কে",
"navigation": {
"label": "নেভিগেশন",
"submenu": {
"copy-current-url": "বর্তমান URL কপি করুন",
"go-back": "পেছনে যান",
"go-forward": "সামনে যান",
"quit": "বন্ধ",
"restart": "অ্যাপ পুনরায় চালু করুন"
}
},
"options": {
"label": "অপশন",
"submenu": {
"advanced-options": {
"label": "এডভ্যান্স অপশন",
"submenu": {
"auto-reset-app-cache": "অ্যাপ চালুর সময় ক্যাশ রিসেট করুন",
"disable-hardware-acceleration": "হার্ডওয়্যার অ্যাকসেলারেশন নিষ্ক্রিয় করুন",
"edit-config-json": "config.json এডিট করুন",
"override-user-agent": "ইউজার এজেন্ট বদলান",
"restart-on-config-changes": "কনফিগ পরিবর্তন হলে আবার চালু করুন",
"set-proxy": {
"label": "প্রক্সি সেট করুন",
"prompt": {
"label": "প্রক্সি ঠিকানা দিন: (বন্ধ করতে ফাকা রাখুন)",
"placeholder": "যেমন: SOCKS5://127.0.0.1:9999",
"title": "প্রক্সি সেট করুন"
}
},
"toggle-dev-tools": "ডেভ টুল চালু/বন্ধ"
}
},
"always-on-top": "সবসময় উপরে রাখুন",
"auto-update": "স্বয়ংক্রিয় আপডেট চালু করুন",
"hide-menu": {
"dialog": {
"message": "পরবর্তী চালুর সময় মেনু লুকানো থাকবে, দেখতে [Alt] চাপুন (অথবা ইন-অ্যাপ মেনু হলে [`] ব্যবহার করুন)",
"title": "মেনু লুকানো হয়েছে"
},
"label": "মেনু লুকান"
},
"language": {
"dialog": {
"message": "পুনরায় চালু করলে ভাষা পরিবর্তন হয়ে যাবে",
"title": "ভাষা নির্বাচন করুন"
},
"label": "ভাষা",
"submenu": {
"to-help-translate": "অনুবাদে সাহায্য করতে চান? এখানে চাপ দিন"
}
},
"resume-on-start": "অ্যাপ চালু হলে শেষ গানটি আবার চালু করুন",
"single-instance-lock": "একক ইনস্ট্যান্স লক",
"start-at-login": "লগইনের সময় চালু করুন",
"starting-page": {
"label": "শুরুর পেজ",
"unset": "নির্ধারণ করা হয়নি"
},
"tray": {
"label": "ট্রে",
"submenu": {
"disabled": "ট্রে বন্ধ",
"enabled-and-hide-app": "ট্রে চালু ও অ্যাপ লুকান",
"enabled-and-show-app": "ট্রে চালু ও অ্যাপ দেখান",
"play-pause-on-click": "ট্রে ক্লিক করলে প্লে/পজ"
}
},
"visual-tweaks": {
"label": "দৃষ্টিনন্দন পরিবর্তন",
"submenu": {
"custom-window-title": {
"label": "কাস্টম উইন্ডো টাইটেল",
"prompt": {
"label": "নিজস্ব উইন্ডোর টাইটেল দিন (বন্ধ করতে ফাঁকা রাখুন)",
"placeholder": "উদাহরণস্বরূপ: Pear Desktop"
}
},
"like-buttons": {
"default": "ডিফল্ট লাইক বাটন",
"force-show": "সবসময় লাইক বাটন দেখান",
"hide": "লাইক বাটন লুকান",
"label": "লাইক বাটনের নিয়ন্ত্রণ"
},
"remove-upgrade-button": "আপগ্রেড বাটন সরান",
"theme": {
"dialog": {
"button": {
"cancel": "বাতিল",
"remove": "থিম সরান"
},
"remove-theme": "থিম সরাতে চান?",
"remove-theme-message": "এটি কাস্টম থিমটি বাদ দিয়ে দিবে"
},
"label": "থিম",
"submenu": {
"import-css-file": "CSS ফাইল ইমপোর্ট করুন",
"no-theme": "কোন থিম নেই"
}
}
}
}
}
},
"plugins": {
"enabled": "প্লাগইন চালু",
"label": "প্লাগইন",
"new": "নতুন প্লাগইন"
},
"view": {
"label": "দেখুন",
"submenu": {
"force-reload": "জোর করে রিফ্রেশ করুন",
"reload": "রিফ্রেশ করুন",
"reset-zoom": "জুম রিসেট করুন",
"toggle-fullscreen": "ফুলস্ক্রিন চালু/বন্ধ",
"zoom-in": "বড় করুন",
"zoom-out": "ছোট করুন"
}
}
},
"tray": {
"next": "নেক্সট",
"play-pause": "চালু/বন্ধ",
"previous": "পূর্ববর্তী",
"quit": "বন্ধ",
"restart": "অ্যাপ পুনরায় চালু করুন",
"show": "উইন্ডো দেখান",
"tooltip": {
"default": "ইউটিউব মিউজিক",
"with-song-info": "ইউটিউব মিউজিক: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "বিজ্ঞাপন চললে, এটি অডিও বন্ধ করে দেয় এবং প্লেব্যাক গতি ১৬ গুণ করে দেয়",
"name": "বিজ্ঞাপন দ্রুত করুন"
},
"adblocker": {
"description": "সব বিজ্ঞাপন ও ট্র্যাকিং শুরু থেকেই ব্লক করুন",
"menu": {
"blocker": "ব্লকার"
},
"name": "এড ব্লকার"
},
"album-actions": {
"description": "প্লেলিস্ট বা অ্যালবামের সব গানেই প্রয়োগ করতে আনডিসলাইক, ডিসলাইক, লাইক ও আনলাইক বাটন যোগ করে",
"name": "অ্যালবাম অ্যাকশনসমূহ"
},
"album-color-theme": {
"description": "অ্যালবামের রঙের উপর ভিত্তি করে ডাইনামিক থিম ও ভিজ্যুয়াল ইফেক্ট প্রয়োগ করুন",
"menu": {
"color-mix-ratio": {
"label": "কালার মিক্স রেশিও",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "এলবাম এর কালার থিম"
},
"ambient-mode": {
"description": "ভিডিও থেকে নরম আলো ছড়িয়ে আপনার স্ক্রিনের ব্যাকগ্রাউন্ডে লাইটিং ইফেক্ট প্রয়োগ করে",
"menu": {
"blur-amount": {
"label": "ব্লার এর পরিমাণ",
"submenu": {
"pixels": "{{blurAmount}} পিক্সেল"
}
},
"buffer": {
"label": "বাফার",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "স্বচ্ছতা",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "কোয়ালিটি",
"submenu": {
"pixels": "{{quality}}পিক্সেল"
}
},
"size": {
"label": "আকার",
"submenu": {
"percent": "{{size}}শতাংশ"
}
},
"smoothness-transition": {
"label": "মসৃণ রূপান্তর",
"submenu": {
"during": "{{interpolationTime}} সেকেন্ড সময়কালে"
}
},
"use-fullscreen": {
"label": "পূর্ণপর্দা ব্যবহার করা"
}
},
"name": "পরিবেষ্টিত মোড"
},
"amuse": {
"description": "ইউটিউব মিউজিকে অ্যামিউজ সমর্থন যোগ করা হয়েছে যা এখন ৬কে ল্যাবস উইজেটে চলছে",
"name": "মনোরঞ্জন",
"response": {
"query": "অ্যামিউজ API সার্ভার চলছে। /query ব্যবহার করে গান সম্পর্কিত তথ্য পান।"
}
},
"api-server": {
"description": "প্লেয়ার নিয়ন্ত্রণের জন্য একটি API সার্ভার যোগ করা হয়েছে",
"dialog": {
"request": {
"buttons": {
"allow": "অনুমতি দিন",
"deny": "অস্বীকার করা"
},
"message": "{{ID}} ({{origin}}) কে API ব্যবহারের অনুমতি দিবেন?",
"title": "API অথোরাইজ এর অনুরোধ"
}
},
"menu": {
"auth-strategy": {
"label": "অথোরাইজেশন স্ট্র্যাটেজি",
"submenu": {
"auth-at-first": {
"label": "প্রথম অনুরোধে অথোরাইজ করুন"
},
"none": {
"label": "কোন অথোরাইজেশন নেই"
}
}
},
"hostname": {
"label": "হোস্টনেম"
},
"port": {
"label": "পোর্ট"
}
},
"name": "API সার্ভার [বেটা]",
"prompt": {
"hostname": {
"label": "API সার্ভারের জন্য হোস্টনেম (যেমন 0.0.0.0) লিখুন:",
"title": "হোস্টনেম"
},
"port": {
"label": "API সার্ভারের জন্য পোর্ট লিখুন:",
"title": "পোর্ট"
}
}
},
"audio-compressor": {
"description": "অডিওতে কম্প্রেশন প্রয়োগ করুন (উচ্চতর শব্দের অংশগুলোর ভলিউম কমিয়ে দেয় এবং নীরবতম অংশগুলোর ভলিউম বাড়িয়ে দেয়)",
"name": "অডিও কম্প্রেসর"
},
"auth-proxy-adapter": {
"description": "অথেনটিকেশন প্রক্সি সার্ভিস ব্যবহারের সাপোর্ট",
"menu": {
"disable": "প্রক্সি অ্যাডাপ্টার বন্ধ করুন",
"enable": "প্রক্সি অ্যাডাপ্টার চালু করুন",
"hostname": {
"label": "হোস্টনেম"
},
"port": {
"label": "পোর্ট"
}
},
"name": "অথেনটিকেশন প্রক্সি অ্যাডাপ্টার",
"prompt": {
"hostname": {
"label": "লোকাল প্রক্সি সার্ভারের জন্য হোস্টনেম লিখুন (পুনরায় চালু করতে হবে):",
"title": "প্রক্সি হোস্টনেম"
},
"port": {
"label": "লোকাল প্রক্সি সার্ভারের জন্য পোর্ট লিখুন (পুনরায় চালু করতে হবে):",
"title": "প্রক্সি পোর্ট"
}
}
},
"blur-nav-bar": {
"description": "নেভিগেশন বারকে স্বচ্ছ এবং ঝাপসা করে",
"name": "নেভিগেশন বার ঝাপসা করুন"
},
"bypass-age-restrictions": {
"description": "ইউটিউবের বয়স যাচাইকরণ এড়িয়ে যান",
"name": "বয়স সীমাবদ্ধতা এড়ান"
},
"captions-selector": {
"description": "ইউটিউব মিউজিক অডিও ট্র্যাকের জন্য ক্যাপশন নির্বাচক",
"menu": {
"autoload": "সর্বশেষ ব্যবহৃত ক্যাপশন স্বয়ংক্রিয়ভাবে নির্বাচন করুন",
"disable-captions": "ডিফল্টভাবে কোন ক্যাপশন নেই"
},
"name": "ক্যাপশন নির্বাচক",
"prompt": {
"selector": {
"label": "বর্তমান ক্যাপশন ভাষা: {{language}}",
"none": "কোনোটি নয়",
"title": "ক্যাপশন ভাষা নির্বাচন করুন"
}
},
"templates": {
"title": "ক্যাপশন নির্বাচক খুলুন"
},
"toast": {
"caption-changed": "ক্যাপশন {{language}} ভাষায় পরিবর্তিত হয়েছে",
"caption-disabled": "ক্যাপশন বন্ধ করা হয়েছে",
"no-captions": "এই গানটির জন্য কোনো ক্যাপশন উপলব্ধ নেই"
}
},
"compact-sidebar": {
"description": "সাইডবারকে সবসময় কম্প্যাক্ট মোডে সেট করুন",
"name": "কম্প্যাক্ট সাইডবার"
},
"crossfade": {
"description": "গানগুলির মধ্যে ক্রসফেড করুন",
"menu": {
"advanced": "এডভান্স"
},
"name": "ক্রসফেড [বেটা]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "ফেড-ইন সময়কাল (ms)",
"fade-out-duration": "ফেড-আউট সময়কাল (ms)",
"fade-scaling": {
"label": "ফেড স্কেলিং",
"linear": "রৈখিক",
"logarithmic": "লগারিদমিক"
},
"seconds-before-end": "শেষ হওয়ার N সেকেন্ড আগে ক্রসফেড করুন"
},
"title": "ক্রসফেড অপশনসমূহ"
}
}
},
"disable-autoplay": {
"description": "গান \"পজ\" মোডে শুরু করে",
"menu": {
"apply-once": "শুধুমাত্র স্টার্টআপে প্রয়োগ হয়"
},
"name": "অটোপ্লে বন্ধ করুন"
},
"discord": {
"backend": {
"already-connected": "একটিভ সংযোগের সাথে সংযোগ করার চেষ্টা করা হয়েছে",
"connected": "ডিসকর্ডের সাথে সংযুক্ত",
"disconnected": "ডিসকর্ড থেকে সংযোগ বিচ্ছিন্ন"
},
"description": "রিচ প্রেজেন্স ব্যবহার করে আপনি কি শুনছেন তা আপনার বন্ধুদের দেখান",
"menu": {
"auto-reconnect": "স্বয়ংক্রিয় রিকানেক্ট",
"clear-activity": "কার্যকলাপ মুছুন",
"clear-activity-after-timeout": "সময়সীমা শেষ হওয়ার পরে কার্যকলাপ মুছুন",
"connected": "সংযুক্ত",
"disconnected": "সংযোগ বিচ্ছিন্ন",
"hide-duration-left": "অবশিষ্ট সময় লুকান",
"hide-github-button": "গিটহাব লিঙ্ক বাটন লুকান",
"play-on-pear-desktop": "ইউটিউব মিউজিকে চালান",
"set-inactivity-timeout": "নিষ্ক্রিয়তার সময়সীমা সেট করুন"
},
"name": "ডিসকর্ড রিচ প্রেজেন্স",
"prompt": {
"set-inactivity-timeout": {
"label": "নিষ্ক্রিয়তার সময়সীমা সেকেন্ডে লিখুন:",
"title": "নিষ্ক্রিয়তার সময়সীমা সেট করুন"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "ঠিক আছে"
},
"message": "আহ! দুঃখিত, ডাউনলোড ব্যর্থ হয়েছে…",
"title": "ডাউনলোডে সমস্যা!"
},
"start-download-playlist": {
"buttons": {
"ok": "ঠিক আছে"
},
"detail": "({{playlistSize}} টি গান)",
"message": "প্লেলিস্ট {{playlistTitle}} ডাউনলোড করা হচ্ছে",
"title": "ডাউনলোড শুরু হয়েছে"
}
},
"feedback": {
"conversion-progress": "রূপান্তর: {{percent}}%",
"converting": "রূপান্তর করা হচ্ছে…",
"done": "সম্পন্ন: {{filePath}}",
"download-info": "ডাউনলোড হচ্ছে {{artist}} - {{title}} [{{videoId}}",
"download-progress": "ডাউনলোড: {{percent}}%",
"downloading": "ডাউনলোড হচ্ছে…",
"downloading-counter": "ডাউনলোড হচ্ছে {{current}}/{{total}}…",
"downloading-playlist": "প্লেলিস্ট \"{{playlistTitle}}\" - {{playlistSize}}টি গান ({{playlistId}}) ডাউনলোড হচ্ছে",
"error-while-downloading": "\"{{author}} - {{title}}\" ডাউনলোড করতে সমস্যা: {{error}}",
"folder-already-exists": "{{playlistFolder}} ফোল্ডারটি ইতিমধ্যে বিদ্যমান",
"getting-playlist-info": "প্লেলিস্ট তথ্য নেওয়া হচ্ছে…",
"loading": "লোড হচ্ছে…",
"playlist-has-only-one-song": "প্লেলিস্টে শুধুমাত্র একটি আইটেম আছে, সরাসরি ডাউনলোড করা হচ্ছে",
"playlist-id-not-found": "কোনো প্লেলিস্ট আইডি পাওয়া যায়নি",
"playlist-is-empty": "প্লেলিস্ট খালি",
"playlist-is-mix-or-private": "প্লেলিস্ট তথ্য পেতে সমস্যা: নিশ্চিত করুন এটি প্রাইভেট বা \"আপনার জন্য মিক্সড\" প্লেলিস্ট নয়\n\n{{error}}",
"preparing-file": "ফাইল প্রস্তুত করা হচ্ছে…",
"saving": "সংরক্ষণ করা হচ্ছে…",
"trying-to-get-playlist-id": "প্লেলিস্ট আইডি পাওয়ার চেষ্টা করা হচ্ছে: {{playlistId}}",
"video-id-not-found": "ভিডিও পাওয়া যায়নি",
"writing-id3": "ID3 ট্যাগ লেখা হচ্ছে…"
}
},
"description": "ইন্টারফেস থেকে সরাসরি MP3 / উৎস অডিও ডাউনলোড করে",
"menu": {
"choose-download-folder": "ডাউনলোড ফোল্ডার বেছে নিন",
"download-finish-settings": {
"label": "শেষ হলে ডাউনলোড করুন",
"prompt": {
"last-percent": "x শতাংশ পরে",
"last-seconds": "শেষ x সেকেন্ড",
"title": "কখন ডাউনলোড করবেন তা কনফিগার করুন"
},
"submenu": {
"advanced": "উন্নত",
"enabled": "সক্রিয়",
"mode": "টাইম মোড",
"percent": "শতাংশ",
"seconds": "সেকেন্ড"
}
},
"download-playlist": "প্লেলিস্ট ডাউনলোড করুন",
"presets": "প্রিসেট",
"skip-existing": "বিদ্যমান ফাইলগুলি এড়িয়ে যান"
},
"name": "ডাউনলোডার",
"renderer": {
"can-not-update-progress": "প্রগ্রেস আপডেট করা যাচ্ছে না"
},
"templates": {
"button": "ডাউনলোড"
}
},
"equalizer": {
"description": "প্লেয়ারে একটি ইকুয়ালাইজার যোগ করে",
"menu": {
"presets": {
"label": "প্রিসেট",
"list": {
"bass-booster": "বেস বুস্টার"
}
}
},
"name": "ইকুয়ালাইজার"
},
"exponential-volume": {
"description": "ভলিউম স্লাইডারকে এক্সপোটেনশিয়াল করে তোলে যাতে কম ভলিউম নির্বাচন করা সহজ হয়।",
"name": "এক্সপোটেনশিয়াল ভলিউম"
},
"in-app-menu": {
"description": "মেনু-বারগুলোকে আকর্ষণীয়, গাঢ় বা অ্যালবাম-রঙের চেহারা দেয়",
"menu": {
"hide-dom-window-controls": "DOM উইন্ডো কন্ট্রোলগুলো লুকান"
},
"name": "অ্যাপ-ভিতরের মেনু"
},
"lumiastream": {
"description": "লুমিয়া স্ট্রিম সমর্থন যোগ করে",
"name": "লুমিয়া স্ট্রিম [বেটা]"
},
"lyrics-genius": {
"description": "বেশিরভাগ গানের জন্য লিরিক্স সমর্থন যোগ করে",
"menu": {
"romanized-lyrics": "রোমানাইজড লিরিক্স"
},
"name": "লিরিক্স জিনিয়াস",
"renderer": {
"fetched-lyrics": "জিনিয়াসের জন্য লিরিক্স সংগ্রহ করা হয়েছে"
}
},
"music-together": {
"description": "অন্যদের সাথে প্লেলিস্ট শেয়ার করুন। যখন হোস্ট একটি গান বাজায়, অন্য সবাই একই গানটি শুনবে",
"dialog": {
"enter-host": "হোস্ট আইডি লিখুন"
},
"internal": {
"save": "সংরক্ষণ করুন",
"track-source": "ট্র্যাক উৎস",
"unknown-user": "অজানা ব্যবহারকারী"
},
"menu": {
"click-to-copy-id": "হোস্ট আইডি কপি করুন",
"close": "মিউজিক টুগেদার বন্ধ করুন",
"connected-users": "সংযুক্ত ব্যবহারকারীরা",
"disconnect": "মিউজিক টুগেদার সংযোগ বিচ্ছিন্ন করুন",
"empty-user": "কোন সংযুক্ত ব্যবহারকারী নেই",
"host": "মিউজিক টুগেদার হোস্ট",
"join": "মিউজিক টুগেদারে যোগ দিন",
"permission": {
"all": "অতিথিদের প্লেলিস্ট এবং প্লেয়ার নিয়ন্ত্রণ করতে দিন",
"host-only": "শুধুমাত্র হোস্ট প্লেলিস্ট এবং প্লেয়ার নিয়ন্ত্রণ করতে পারবেন",
"playlist": "অতিথিদের প্লেলিস্ট নিয়ন্ত্রণ করতে দিন"
},
"set-permission": "নিয়ন্ত্রণ অনুমতি পরিবর্তন করুন",
"status": {
"disconnected": "সংযোগ বিচ্ছিন্ন",
"guest": "অতিথি হিসাবে সংযুক্ত",
"host": "হোস্ট হিসাবে সংযুক্ত"
}
},
"name": "মিউজিক টুগেদার [বেটা]",
"toast": {
"add-song-failed": "গান যোগ করা ব্যর্থ হয়েছে",
"closed": "মিউজিক টুগেদার বন্ধ হয়েছে",
"disconnected": "মিউজিক টুগেদার সংযোগ বিচ্ছিন্ন হয়েছে",
"host-failed": "মিউজিক টুগেদার হোস্ট করা ব্যর্থ হয়েছে",
"id-copied": "হোস্ট আইডি ক্লিপবোর্ডে কপি করা হয়েছে",
"id-copy-failed": "হোস্ট আইডি ক্লিপবোর্ডে কপি করা ব্যর্থ হয়েছে",
"join-failed": "মিউজিক টুগেদারে যোগদান ব্যর্থ হয়েছে",
"joined": "মিউজিক টুগেদারে যোগ দেওয়া হয়েছে",
"permission-changed": "মিউজিক টুগেদার অনুমতি \"{{permission}}\" এ পরিবর্তন করা হয়েছে",
"remove-song-failed": "গান সরানো ব্যর্থ হয়েছে",
"user-connected": "{{name}} মিউজিক টুগেদারে যোগ দিয়েছেন",
"user-disconnected": "{{name}} মিউজিক টুগেদার ছেড়ে চলে গেছেন"
}
},
"navigation": {
"description": "পরবর্তী/পূর্ববর্তী নেভিগেশন তীরগুলি আপনার প্রিয় ব্রাউজারের মতো সরাসরি ইন্টারফেসে অন্তর্ভুক্ত করা হয়েছে",
"name": "নেভিগেশন",
"templates": {
"back": {
"title": "আগের পাতায় যান"
},
"forward": {
"title": "পরের পাতায় যান"
}
}
},
"no-google-login": {
"description": "ইন্টারফেস থেকে Google লগইন বাটন এবং লিঙ্কগুলি সরান",
"name": "গুগল লগইন নয়"
},
"notifications": {
"description": "একটি গান বাজতে শুরু হলে একটি বিজ্ঞপ্তি প্রদর্শন করে (উইন্ডোজে ইন্টারঅ্যাকটিভ বিজ্ঞপ্তিগুলি উপলব্ধ)",
"menu": {
"interactive": "ইন্টারঅ্যাকটিভ বিজ্ঞপ্তিসমূহ",
"interactive-settings": {
"label": "ইন্টারঅ্যাকটিভ সেটিংস",
"submenu": {
"hide-button-text": "বাটন টেক্সট লুকান",
"refresh-on-play-pause": "প্লে/পজে রিফ্রেশ করুন",
"tray-controls": "ট্রে ক্লিকে খুলুন/বন্ধ করুন"
}
},
"priority": "বিজ্ঞপ্তি অগ্রাধিকার",
"toast-style": "টোস্ট স্টাইল",
"unpause-notification": "বিরতি থেকে ফিরলে বিজ্ঞপ্তি দেখান"
},
"name": "বিজ্ঞপ্তিসমূহ"
},
"performance-improvement": {
"description": "পরীক্ষামূলক স্ক্রিপ্টগুলি সক্ষম করে পারফরম্যান্স উন্নত করুন",
"name": "পারফরম্যান্স উন্নতিকরণ [বেটা]"
},
"picture-in-picture": {
"description": "অ্যাপকে পিকচার-ইন-পিকচার মোডে স্যুইচ করতে অনুমতি দেয়",
"menu": {
"always-on-top": "সবসময় উপরে",
"hotkey": {
"label": "হটকি",
"prompt": {
"keybind-options": {
"hotkey": "হটকি"
},
"label": "পিকচার-ইন-পিকচার টগল করার জন্য একটি হটকি নির্বাচন করুন",
"title": "পিকচার-ইন-পিকচার হটকি"
}
},
"save-window-position": "উইন্ডো অবস্থান সংরক্ষণ করুন",
"save-window-size": "উইন্ডো আকার সংরক্ষণ করুন",
"use-native-pip": "ব্রাউজারের নেটিভ PiP ব্যবহার করুন"
},
"name": "পিকচার-ইন-পিকচার",
"templates": {
"button": "পিকচার-ইন-পিকচার"
}
},
"playback-speed": {
"description": "দ্রুত শুনুন, ধীরে শুনুন! গানের গতি নিয়ন্ত্রণ করার জন্য একটি স্লাইডার যোগ করে",
"name": "প্লেব্যাক স্পিড",
"templates": {
"button": "গতি"
}
},
"precise-volume": {
"description": "মাউসহুইল/হটকি ব্যবহার করে সঠিকভাবে ভলিউম নিয়ন্ত্রণ করুন, কাস্টম HUD এবং কাস্টমাইজযোগ্য ভলিউম স্টেপ সহ",
"menu": {
"arrows-shortcuts": "লোকাল অ্যারো-কি কন্ট্রোল",
"custom-volume-steps": "কাস্টম ভলিউম স্টেপ সেট করুন",
"global-shortcuts": "গ্লোবাল হটকি"
},
"name": "নির্ভুল ভলিউম",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "ভলিউম কমান",
"increase": "ভলিউম বাড়ান"
},
"label": "গ্লোবাল ভলিউম কিবাইন্ড নির্বাচন করুন:",
"title": "গ্লোবাল ভলিউম কিবাইন্ড"
},
"volume-steps": {
"label": "ভলিউম বৃদ্ধি/হ্রাস স্টেপ নির্বাচন করুন",
"title": "ভলিউম স্টেপস"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "বর্তমান কোয়ালিটি: {{quality}}",
"message": "ভিডিও কোয়ালিটি নির্বাচন করুন:",
"title": "ভিডিও কোয়ালিটি নির্বাচন করুন"
}
}
},
"description": "ভিডিও ওভারলেতে একটি বাটনের মাধ্যমে ভিডিও কোয়ালিটি পরিবর্তন করতে দেয়",
"name": "ভিডিও কোয়ালিটি পরিবর্তক",
"renderer": {
"quality-settings-button": {
"label": "প্লেয়ারের মান পরিবর্তনের অপশন খুলুন"
}
}
},
"scrobbler": {
"description": "স্ক্রবলিং সমর্থন যোগ করুন (যেমন last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Last.fm এর সাথে প্রমাণীকরণ ব্যর্থ হয়েছে\nপরবর্তী পুনরায় চালু না হওয়া পর্যন্ত পপআপ লুকান।",
"title": "প্রমাণীকরণ ব্যর্থ হয়েছে"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API সেটিংস"
},
"listenbrainz": {
"token": "ListenBrainz ব্যবহারকারী টোকেন লিখুন"
},
"scrobble-alternative-title": "বিকল্প শিরোনাম ব্যবহার করুন",
"scrobble-other-media": "অন্যান্য মিডিয়া স্ক্রবল করুন"
},
"name": "স্ক্রবলার",
"prompt": {
"lastfm": {
"api-key": "Last.fm API কি",
"api-secret": "Last.fm API সিক্রেট"
},
"listenbrainz": {
"token": {
"label": "আপনার ListenBrainz ব্যবহারকারী টোকেন লিখুন:",
"title": "ListenBrainz টোকেন"
}
}
}
},
"shortcuts": {
"description": "প্লেব্যাকের জন্য গ্লোবাল হটকি (প্লে/পজ/পরবর্তী/পূর্ববর্তী) সেট করতে এবং মিডিয়া কী ওভাররাইড করে মিডিয়া OSD বন্ধ করতে, Ctrl/CMD + F চালু করে অনুসন্ধান করতে, মিডিয়া কীগুলির জন্য Linux MPRIS সমর্থন চালু করতে এবং অ্যাডভান্সড ব্যবহারকারীদের জন্য কাস্টম হটকি সেট করতে অনুমতি দেয়",
"menu": {
"override-media-keys": "মিডিয়া কী ওভাররাইড করুন",
"set-keybinds": "গ্লোবাল গান কন্ট্রোল সেট করুন"
},
"name": "শর্টকাট (এবং MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "পরবর্তী",
"play-pause": "চালান / বিরতি",
"previous": "পূর্ববর্তী"
},
"label": "গান নিয়ন্ত্রণের জন্য গ্লোবাল কিবাইন্ড নির্বাচন করুন:",
"title": "গ্লোবাল কিবাইন্ড"
}
}
},
"skip-disliked-songs": {
"description": "পছন্দ হয়নি এমন গানগুলো এড়িয়ে যায়",
"name": "অপছন্দ গান এড়ান"
},
"skip-silences": {
"description": "স্বয়ংক্রিয়ভাবে গানের নীরব অংশগুলো এড়িয়ে যান",
"name": "নীরবতা এড়িয়ে যান"
},
"sponsorblock": {
"description": "স্বয়ংক্রিয়ভাবে ইন্ট্রো/আউটট্রো বা মিউজিক ভিডিওর যেসব অংশে গান বাজছে না সেগুলি এড়িয়ে যায়",
"name": "স্পনসরব্লক"
},
"synced-lyrics": {
"description": "LRClib এর মত প্রোভাইডার ব্যবহার করে গানের সাথে সিঙ্ক করা লিরিক্স প্রদান করে।",
"errors": {
"fetch": "⚠️\tলিরিক্স আনার সময় একটি ত্রুটি ঘটেছে।\n\tঅনুগ্রহ করে পরে আবার চেষ্টা করুন।",
"not-found": "⚠️ এই গানের জন্য কোন লিরিক্স পাওয়া যায়নি।"
},
"menu": {
"default-text-string": {
"label": "লিরিক্সের মাঝে ডিফল্ট অক্ষর",
"tooltip": "লিরিক্সের মধ্যে ফাঁকের জন্য ব্যবহৃত ডিফল্ট অক্ষর নির্বাচন করুন"
},
"line-effect": {
"label": "লাইন ইফেক্ট",
"submenu": {
"fancy": {
"label": "ফ্যান্সি",
"tooltip": "বর্তমান লাইনে বড়, অ্যাপের মত ইফেক্ট ব্যবহার করুন"
},
"focus": {
"label": "ফোকাস",
"tooltip": "শুধুমাত্র বর্তমান লাইনটি সাদা করুন"
},
"offset": {
"label": "অফসেট",
"tooltip": "বর্তমান লাইনকে ডানদিকে অফসেট করুন"
},
"scale": {
"label": "স্কেল",
"tooltip": "বর্তমান লাইন স্কেল করুন"
}
},
"tooltip": "বর্তমান লাইনে প্রয়োগ করার জন্য ইফেক্ট নির্বাচন করুন"
},
"precise-timing": {
"label": "লিরিক্স পুরোপুরি সিঙ্ক করুন",
"tooltip": "পরবর্তী লাইন প্রদর্শনের মিলিসেকেন্ড পর্যন্ত গণনা করুন (পারফরম্যান্সে সামান্য প্রভাব পড়তে পারে)"
},
"romanization": {
"label": "লিরিক্স রোমানাইজ করুন",
"tooltip": "যদি লিরিক্স ভিন্ন ভাষায় হয়, তাহলে একটি ল্যাটিন সংস্করণ প্রদর্শন করার চেষ্টা করুন।"
},
"show-lyrics-even-if-inexact": {
"label": "অনির্ভুল হলেও লিরিক্স দেখান",
"tooltip": "যদি গানটি না পাওয়া যায়, প্লাগইনটি একটি ভিন্ন অনুসন্ধান কোয়েরি দিয়ে আবার চেষ্টা করে।\nদ্বিতীয় প্রচেষ্টার ফলাফল সঠিক নাও হতে পারে।"
},
"show-time-codes": {
"label": "টাইম কোড দেখান",
"tooltip": "লিরিক্সের পাশে টাইম কোড দেখান"
}
},
"name": "সিঙ্ক করা লিরিক্স",
"refetch-btn": {
"fetching": "আনছে..।",
"normal": "লিরিক্স পুনরায় আনুন"
},
"warnings": {
"duration-mismatch": "⚠️ - সময়কাল মিলে না যাওয়ার কারণে লিরিক্স সিঙ্ক হতে নাও পারে।",
"inexact": "⚠️ - এই গানের লিরিক্স সঠিক নাও হতে পারে",
"instrumental": "⚠️ - এটি একটি ইনস্ট্রুমেন্টাল গান"
}
},
"taskbar-mediacontrol": {
"description": "উইন্ডোজ টাস্কবার থেকে প্লেব্যাক নিয়ন্ত্রণ করুন",
"name": "টাস্কবার মিডিয়া কন্ট্রোল"
},
"touchbar": {
"description": "macOS ব্যবহারকারীদের জন্য একটি টাচবার উইজেট যোগ করে",
"name": "টাচবার"
},
"tuna-obs": {
"description": "OBS এর প্লাগইন টুনার সাথে সংযোগ",
"name": "টুনা OBS"
},
"unobtrusive-player": {
"description": "গান চালানোর সময় প্লেয়ারকে পপ আপ হওয়া থেকে বিরত রাখে",
"name": "অনাড়ম্বর প্লেয়ার"
},
"video-toggle": {
"description": "ভিডিও/গান মোডের মধ্যে স্যুইচ করার জন্য একটি বাটন যোগ করে। ঐচ্ছিকভাবে সম্পূর্ণ ভিডিও ট্যাবও সরাতে পারে",
"menu": {
"align": {
"label": "সারিবদ্ধকরণ",
"submenu": {
"left": "বাম",
"middle": "মাঝখানে",
"right": "ডান"
}
},
"force-hide": "জোর করে ভিডিও ট্যাব সরান",
"mode": {
"label": "মোড",
"submenu": {
"custom": "কাস্টম টগল",
"disabled": "নিষ্ক্রিয়",
"native": "নেটিভ টগল"
}
}
},
"name": "ভিডিও টগল",
"templates": {
"button-song": "গান",
"button-video": "ভিডিও"
}
},
"visualizer": {
"description": "প্লেয়ারে একটি ভিজ্যুয়ালাইজার যোগ করে",
"menu": {
"visualizer-type": "ভিজ্যুয়ালাইজার প্রকার"
},
"name": "ভিজ্যুয়ালাইজার"
}
}
}

View File

@ -1,202 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Greška u izvršavanju dodatka {{pluginName}}::{{contextName}}",
"executed-at-ms": "Dodatak {{pluginName}}::{{contextName}} se izvršio za {{ms}}ms",
"initialize-failed": "Greška prilikom inicijalizacije dodatka \"{{pluginName}}\"",
"load-all": "Učitavanje svih dodataka",
"load-failed": "Greška u učitavanju dodatka \"{{pluginName}}\"",
"loaded": "Dodatak \"{{pluginName}}\" učitan",
"unload-failed": "Greška prilikom onesposobljavanja dodatka \"{{pluginName}}\"",
"unloaded": "Dodatak \"{{pluginName}}\" ugašen"
}
}
},
"language": {
"code": "ba",
"local-name": "Bosanski",
"name": "Bosnian"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Završeno učitavanje. DevTools otvoren"
},
"i18n": {
"loaded": "i18n učitan"
},
"second-instance": {
"receive-command": "Comanda primljena preko protokola \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS datoteka \"{{cssFile}}\" ne postoji, ignorišem"
},
"unresponsive": {
"details": "Greška u aplikaciji!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Čistim predmemoriju aplikacije"
},
"window": {
"tried-to-render-offscreen": "Prozor se pokušao prikazati van okvira ekrana, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Meni je sakriven, koristite 'Alt' da ga prikazete (ili 'ESC' ako koristite meni u aplikaciji)",
"message": "Sakrivanje menija je uključeno",
"title": "Meni sakriven"
},
"need-to-restart": {
"buttons": {
"later": "Kasnije",
"restart-now": "Pokreni ponovo odmah"
},
"detail": "\"{{pluginName}}\" dodatak zahtjeva ponovno pokretanje kako bi se uključio",
"message": "\"{{pluginName}}\" potrebno je resetovat",
"title": "Restart je potreban"
},
"unresponsive": {
"buttons": {
"quit": "Napusti",
"relaunch": "Ponovo otvori",
"wait": "Pricekajte"
},
"detail": "Izvinjavamo se zbog zabune! molimo vas da odaberete sta zelite uciniti",
"message": "Aplikacija ne reagira",
"title": "Prozor ne reagira"
},
"update-available": {
"buttons": {
"disable": "Ugasite Nadogradnje",
"download": "Skinuti",
"ok": "OK"
},
"detail": "Nova verzija je dostupna i može biti skinuta na {{downloadLink}}",
"message": "Nova verzija je dostupna",
"title": "Azuriranje dostupno"
}
},
"menu": {
"about": "O nama",
"navigation": {
"label": "Plejer",
"submenu": {
"copy-current-url": "Kopirajte trenutni link",
"go-back": "Idi Nazad",
"go-forward": "Idi Naprijed",
"quit": "Izadji",
"restart": "Restartujte Aplikaciju"
}
},
"options": {
"label": "Opcije",
"submenu": {
"advanced-options": {
"label": "Napredne opcije",
"submenu": {
"auto-reset-app-cache": "Resetuje kes memoriju kad se aplikacija pokrene",
"disable-hardware-acceleration": "Ugasite hardversko ubrzanje",
"edit-config-json": "Uredite config.json",
"override-user-agent": "Nadjacaj User-Agent",
"restart-on-config-changes": "Ponovno pokretanje nakon promjena konfiguracije",
"set-proxy": {
"label": "Postavi proxy",
"prompt": {
"label": "Unesite adresu proxyja: (ostavite prazno za onemogućavanje)",
"placeholder": "Primjer: SOCKS5://127.0.0.1:9999",
"title": "Postavi proxy"
}
},
"toggle-dev-tools": "Uključi/isključi DevTools"
}
},
"always-on-top": "Uvijek na vrhu",
"auto-update": "Automatski Update",
"hide-menu": {
"dialog": {
"message": "Meni će biti skriven pri sljedećem pokretanju, koristite [Alt] da ga prikažete (ili upotrijebite [`] ako koristite meni u aplikaciji)",
"title": "Sakrij meni omogućen"
},
"label": "Sakrij meni"
},
"language": {
"dialog": {
"message": "Jezik će se promijeniti nakon ponovnog pokretanja",
"title": "Jezik je uspješno promjenjen"
},
"label": "Jezik",
"submenu": {
"to-help-translate": "Želite da pomognete s prijevodom? Kliknite ovdje"
}
},
"resume-on-start": "Nastavi posljednju pjesmu pri sljedećem pokretaju",
"single-instance-lock": "Sprječavanje višestrukog pokretanja",
"start-at-login": "Pokreni čim se prijavite",
"starting-page": {
"label": "Početna stranica",
"unset": "Ukinite postavu"
},
"tray": {
"label": "Tacna",
"submenu": {
"disabled": "Onemogućeno",
"enabled-and-hide-app": "Tacna je uključena, i prozor aplikacije skrijte",
"enabled-and-show-app": "Tacna je uključena, i prozor aplikacije prikažite",
"play-pause-on-click": "Pokreni/Zaustavi na klik"
}
},
"visual-tweaks": {
"label": "Vizualne postavke",
"submenu": {
"custom-window-title": {
"label": "Prilagođeni naslov prozora",
"prompt": {
"label": "Unesite vlastiti naslov prozora: (ostavite prazno za isključenje)",
"placeholder": "Primjer: Pear Desktop"
}
},
"like-buttons": {
"default": "Zadano",
"force-show": "Prinudno prikaži",
"hide": "Sakrij",
"label": "'Sviđa mi se' dugmadi"
},
"remove-upgrade-button": "Ukloni dugme za nadogradnju",
"theme": {
"dialog": {
"button": {
"cancel": "Otkaži",
"remove": "Ukloni"
},
"remove-theme": "Jeste li sigurni da želite ukloniti prilagođenu temu?",
"remove-theme-message": "Ovo će ukloniti prilagođenu temu"
},
"label": "Tema",
"submenu": {
"import-css-file": "Uvoz prilagođene CSS datoteke",
"no-theme": "Bez teme"
}
}
}
}
}
},
"plugins": {
"enabled": "Omogući",
"label": "Dodaci",
"new": "Novo"
}
}
},
"plugins": {
"ambient-mode": {
"menu": {
"quality": {
"label": "Kvalitet"
}
}
}
}
}

View File

@ -1,950 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Ha fallat l'execució de l'extensió {{pluginName}}::{{contextName}}",
"executed-at-ms": "L'extensió {{pluginName}}::{{contextName}} s'ha executat als {{ms}}ms",
"initialize-failed": "Ha fallat la inicialització de l'extensió \"{{pluginName}}\"",
"load-all": "Carregant totes les extensions",
"load-failed": "Error en carregar l'extensió «{{pluginName}}»",
"loaded": "L'extensió «{{pluginName}}» s'ha carregat",
"unload-failed": "Error en deshabilitar l'extensió «{{pluginName}}»",
"unloaded": "Extensió «{{pluginName}}» deshabilitada"
}
}
},
"language": {
"code": "ca",
"local-name": "Català",
"name": "Catalan"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Càrrega finalitzada. S'han obert les DevTools"
},
"i18n": {
"loaded": "i18n carregat"
},
"second-instance": {
"receive-command": "Comanda rebuda a través del protocol: «{{command}}»"
},
"theme": {
"css-file-not-found": "L'arxiu CSS «{{cssFile}}» no existeix, s'ha ignorat"
},
"unresponsive": {
"details": "Error sense resposta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Netejant la memòria cau de l'aplicació"
},
"window": {
"tried-to-render-offscreen": "La finestra s'ha intentat mostrar fora de la pantalla, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "El menú es troba amagat, premi «Alt» per mostrar-lo (o «Escapament» si utilitza el menú integrat In-App)",
"message": "S'ha habilitat l'amagament del menú",
"title": "Amagament del menú habilitat"
},
"need-to-restart": {
"buttons": {
"later": "Més tard",
"restart-now": "Reinicia ara"
},
"detail": "L'extensió «{{pluginName}}» requereix reiniciar l'aplicació per fer tenir efecte",
"message": "\"{{pluginName}}\" necessita reiniciar-se",
"title": "Es requereix reiniciar"
},
"unresponsive": {
"buttons": {
"quit": "Marxar",
"relaunch": "Rellançar",
"wait": "Espera"
},
"detail": "Ho sentim per les molèsties! si us plau, tria què fer:",
"message": "L'aplicació ha deixat de respondre",
"title": "La finestra ha deixat de respondre"
},
"update-available": {
"buttons": {
"disable": "Deshabilita les actualitzacions",
"download": "Descarrega",
"ok": "D'acord"
},
"detail": "Hi ha una nova versió disponible i pot ser descarregada a {{downloadLink}}",
"message": "Hi ha una nova versió disponible",
"title": "Actualització disponible"
}
},
"menu": {
"about": "Quant a",
"navigation": {
"label": "Navegació",
"submenu": {
"copy-current-url": "Copia l'URL actual",
"go-back": "Ves enrere",
"go-forward": "Ves endavant",
"quit": "Surt",
"restart": "Reinicia l'aplicació"
}
},
"options": {
"label": "Opcions",
"submenu": {
"advanced-options": {
"label": "Opcions avançades",
"submenu": {
"auto-reset-app-cache": "Reinicialitza la memòria cau de l'aplicació quan es reiniciï",
"disable-hardware-acceleration": "Deshabilita l'acceleració per hardware",
"edit-config-json": "Edita el config.json",
"override-user-agent": "Sobreescriu l'agent d'usuari (User-Agent)",
"restart-on-config-changes": "Reinicia quan es canviï la configuració",
"set-proxy": {
"label": "Definir servidor intermediari (proxy)",
"prompt": {
"label": "Introduir l'adreça del servidor intermediari: (deixar en blanc per deshabilitar)",
"placeholder": "Exemple: SOCKS5://127.0.0.1:9999",
"title": "Definir servidor intermediari (proxy)"
}
},
"toggle-dev-tools": "Commuta les DevTools"
}
},
"always-on-top": "Mostra sempre per sobre",
"auto-update": "Actualitza automàticament",
"hide-menu": {
"dialog": {
"message": "El menú s'amagarà la següent vegada que s'iniciï l'aplicació, prem «Alt» per mostrar-lo (o accent obert « ` » si utilitza el menú integrat In-App)",
"title": "Amagament del menú habilitat"
},
"label": "Amaga el menú"
},
"language": {
"dialog": {
"message": "L'idioma es canviarà un cop es reiniciï",
"title": "Idioma canviat"
},
"label": "Idioma",
"submenu": {
"to-help-translate": "Vols ajudar a traduir? Clica aquí"
}
},
"resume-on-start": "Reprèn l'última cançó quan s'inicia l'aplicació",
"single-instance-lock": "Bloqueja en una única instància",
"start-at-login": "Obre a l'iniciar sessió",
"starting-page": {
"label": "Pàgina d'inici",
"unset": "Sense establir"
},
"tray": {
"label": "Safata d'icones",
"submenu": {
"disabled": "Deshabilitat",
"enabled-and-hide-app": "Mostra la icona i amaga l'aplicació",
"enabled-and-show-app": "Mostra la icona i mostra l'aplicació",
"play-pause-on-click": "Reprodueix / pausa en clicar"
}
},
"visual-tweaks": {
"label": "Opcions visuals",
"submenu": {
"custom-window-title": {
"label": "Títol personalitzat de la finestra",
"prompt": {
"label": "Introdueix un títol personalitzat per a la finestra (deixa-ho buit per deshabilitar-ho)",
"placeholder": "Exemple: Pear Desktop"
}
},
"like-buttons": {
"default": "Per defecte",
"force-show": "Força que es mostri",
"hide": "Amaga",
"label": "Botons de «m'agrada»"
},
"remove-upgrade-button": "Elimina el botó «Actualitza a Music Premium»",
"theme": {
"dialog": {
"button": {
"cancel": "Cancel·la",
"remove": "Elimina"
},
"remove-theme": "De debó vols eliminar el tema personalitzat?",
"remove-theme-message": "Això eliminarà el tema personalitzat"
},
"label": "Tema",
"submenu": {
"import-css-file": "Importa un arxiu CSS personalitzat",
"no-theme": "Cap tema"
}
}
}
}
}
},
"plugins": {
"enabled": "Habilitat",
"label": "Extensions",
"new": "NOU"
},
"view": {
"label": "Veure",
"submenu": {
"force-reload": "Força la recàrrega",
"reload": "Recarrega",
"reset-zoom": "Mida real",
"toggle-fullscreen": "Commuta la pantalla completa",
"zoom-in": "Apropa el zoom",
"zoom-out": "Allunya el zoom"
}
}
},
"tray": {
"next": "Següent",
"play-pause": "Reprodueix/Pausa",
"previous": "Anterior",
"quit": "Tanca",
"restart": "Reinicia l'aplicació",
"show": "Mostra la finestra",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Si es reprodueix un anunci, silencia l'àudio i el reprodueix a la velocitat 16x",
"name": "Accelera els anuncis"
},
"adblocker": {
"description": "Bloqueja tots els anuncis i el seguiment",
"menu": {
"blocker": "Bloquejador"
},
"name": "Bloquejador d'anuncis"
},
"album-actions": {
"description": "Afegeix botons de «no m'agrada / retirar el no m'agrada» i «m'agrada / retirar el m'agrada» per aplicar-ho a totes les cançons en una llista de reproducció o àlbum",
"name": "Accions a l'àlbum"
},
"album-color-theme": {
"description": "Aplica un tema dinàmic i efectes visuals basats en la paleta de colors de l'àlbum",
"menu": {
"color-mix-ratio": {
"label": "Proporció de la barreja de colors",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Tema de color de l'àlbum"
},
"ambient-mode": {
"description": "Aplica un efecte d'il·luminació que projecta colors difusos del vídeo al fons de la pantalla",
"menu": {
"blur-amount": {
"label": "Quantitat de desenfocament",
"submenu": {
"pixels": "{{blurAmount}} píxels"
}
},
"buffer": {
"label": "Buffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Opacitat",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Qualitat",
"submenu": {
"pixels": "{{quality}} píxels"
}
},
"size": {
"label": "Mida",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Transició suau",
"submenu": {
"during": "Durant {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Utilitza en pantalla completa"
}
},
"name": "Mode ambient"
},
"amuse": {
"description": "Afegeix suport a Pear Desktop per el widget \"now playing\" d'Amuse per 6K Labs",
"name": "Amuse",
"response": {
"query": "L'API del servidor de Amuse està funcionant. GET /query per tenir informació de la cançó."
}
},
"api-server": {
"description": "Afegeix un servidor API per controlar el reproductor",
"dialog": {
"request": {
"buttons": {
"allow": "Permet",
"deny": "Denegar"
},
"message": "Permetre que {{ID}} ({{origin}}) accedeixi a l'API?",
"title": "Petició d'autorització API"
}
},
"menu": {
"auth-strategy": {
"label": "Estratègia d'autorització",
"submenu": {
"auth-at-first": {
"label": "Autoritza a la primera petició"
},
"none": {
"label": "Sense autorització"
}
}
},
"hostname": {
"label": "Nom del host"
},
"port": {
"label": "Port"
}
},
"name": "Servidor API [Beta]",
"prompt": {
"hostname": {
"label": "Introdueix el nom del host (per exemple 0.0.0.0) pel servidor API:",
"title": "Nom del host"
},
"port": {
"label": "Introdueix el port pel servidor API:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Aplica compressió a l'àudio (baixa el volum de les parts més sorolloses de la senyal d'àudio i puja el volum de les parts més fluixes)",
"name": "Compressió d'àudio"
},
"auth-proxy-adapter": {
"description": "Suport per l'ús de servidors d'autenticació proxy",
"menu": {
"disable": "Desactivar adaptador Proxy",
"enable": "Activar adaptador Proxy",
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "Adaptador de proxy d'autenticació",
"prompt": {
"hostname": {
"label": "Posa hostname pel servidor del proxy local (requereix reiniciar):",
"title": "Hostname del proxy"
},
"port": {
"label": "Entra un port pel servidor local del proxy (requereix reiniciar):",
"title": "Port proxy"
}
}
},
"blur-nav-bar": {
"description": "Desenfoca i aplica transparència a la barra de navegació",
"name": "Desenfoca la barra de navegació"
},
"bypass-age-restrictions": {
"description": "Esquiva la verificació d'edat de Music Player",
"name": "Esquiva les restriccions d'edat"
},
"captions-selector": {
"description": "Selector de subtítols per les pistes d'àudio de Pear Desktop",
"menu": {
"autoload": "Selecciona automàticament l'últim subtítol emprat",
"disable-captions": "Sense subtítols per defecte"
},
"name": "Selector de subtítols",
"prompt": {
"selector": {
"label": "Idioma actual dels subtítols: {{language}}",
"none": "Cap",
"title": "Selecciona l'idioma dels subtítols"
}
},
"templates": {
"title": "Obra el selector de subtítols"
},
"toast": {
"caption-changed": "Subtítols canviats a {{language}}",
"caption-disabled": "Subtítols desactivats",
"no-captions": "Subtítols no disponibles per aquesta cançó"
}
},
"compact-sidebar": {
"description": "Sempre mostrar la barra lateral en mode compacte",
"name": "Barra lateral compacta"
},
"crossfade": {
"description": "Transició creuada (crossfade) entre cançons",
"menu": {
"advanced": "Avançat"
},
"name": "Transició creuada [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Durada de la transició d'entrada (ms)",
"fade-out-duration": "Durada de la transició de sortida (ms)",
"fade-scaling": {
"label": "Escala de la transició",
"linear": "Linear",
"logarithmic": "Logarítmica"
},
"seconds-before-end": "Transiciona N segons abans del final"
},
"title": "Opcions de transició creuada"
}
}
},
"custom-output-device": {
"description": "Configura un dispositiu multimèdia de sortida personalitzat per a cançons",
"menu": {
"device-selector": "Selecciona un dispositiu"
},
"name": "Dispositiu de sortida personalitzat",
"prompt": {
"device-selector": {
"label": "Trieu el dispositiu de sortida que s'utilitzarà",
"title": "Escull el dispositiu de sortida"
}
}
},
"disable-autoplay": {
"description": "Fa que la cançó comenci en mode «pausat»",
"menu": {
"apply-once": "Tan sols s'aplica a l'inici"
},
"name": "Deshabilita la reproducció automàtica"
},
"discord": {
"backend": {
"already-connected": "S'ha intentat connectar amb una connexió activa",
"connected": "Connectat a Discord",
"disconnected": "Desconnectat de Discord"
},
"description": "Mostra als teus amics allò que escoltes a l'estat d'activitat",
"menu": {
"auto-reconnect": "Reconnecta automàticament",
"clear-activity": "Esborra l'activitat",
"clear-activity-after-timeout": "Esborra l'activitat al cap d'un temps",
"connected": "Connectat",
"disconnected": "Desconnectat",
"hide-duration-left": "Amaga la durada restant",
"hide-github-button": "Amaga el botó de l'enllaç a GitHub",
"play-on-pear-desktop": "Reprodueix a Pear Desktop",
"set-inactivity-timeout": "Estableix temps d'espera d'inactivitat",
"set-status-display-type": {
"label": "Text d'estat",
"submenu": {
"artist": "Escoltant {artist}",
"title": "Escoltant {song title}",
"pear-desktop": "Escoltant Pear Desktop"
}
}
},
"name": "Estat d'activitat de Discord",
"prompt": {
"set-inactivity-timeout": {
"label": "Introdueix el temps d'espera d'inactivitat en segons:",
"title": "Estableix el temps d'espera d'inactivitat"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "D'acord"
},
"message": "Caram! Ho sentim, ha fallat la descàrrega…",
"title": "Error a la descàrrega!"
},
"start-download-playlist": {
"buttons": {
"ok": "D'acord"
},
"detail": "({{playlistSize}} cançons)",
"message": "Descarregant llista de reproducció {{playlistTitle}}",
"title": "Descàrrega començada"
}
},
"feedback": {
"conversion-progress": "Conversió: {{percent}}%",
"converting": "Convertint…",
"done": "Fet: {{filePath}}",
"download-info": "Descarregant {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Descàrrega: {{percent}}%",
"downloading": "Descarregant…",
"downloading-counter": "Descarregant {{current}}/{{total}}…",
"downloading-playlist": "Descarregant la llista de reproducció «{{playlistTitle}}» - {{playlistSize}} cançons ({{playlistId}})",
"error-while-downloading": "Error al descarregar «{{author}} - {{title}}»: {{error}}",
"folder-already-exists": "La carpeta {{playlistFolder}} ja existeix",
"getting-playlist-info": "Obtenint la informació de la llista de reproducció…",
"loading": "Carregant…",
"playlist-has-only-one-song": "La llista de reproducció té un sol element, descarregant-lo directament",
"playlist-id-not-found": "No s'ha trobat cap ID de llista de reproducció",
"playlist-is-empty": "La llista de reproducció és buida",
"playlist-is-mix-or-private": "Error obtenint la informació de la llista de reproducció: assegura't que no és una llista de reproducció privada o de «Mixos per a tu»\n\n{{error}}",
"preparing-file": "Preparant arxiu…",
"saving": "Desant…",
"trying-to-get-playlist-id": "Intentant obtenir l'ID de la llista de reproducció: {{playlistId}}",
"video-id-not-found": "Vídeo no trobat",
"writing-id3": "Escrivint les etiquetes ID3…"
}
},
"description": "Descarrega el MP3 / àudio d'origen directament des de la interfície",
"menu": {
"choose-download-folder": "Tria la carpeta de descàrrega",
"download-finish-settings": {
"label": "Descarrega en finalitzar",
"prompt": {
"last-percent": "Desprès del x percent",
"last-seconds": "Últims x segons",
"title": "Configura quan descarregar"
},
"submenu": {
"advanced": "Avançat",
"enabled": "Habilitat",
"mode": "Mode de temps",
"percent": "Percentatge",
"seconds": "Segons"
}
},
"download-playlist": "Descarrega la llista de reproducció",
"presets": "Configuracions predefinides",
"skip-existing": "Omet els arxius existents"
},
"name": "Descàrregues",
"renderer": {
"can-not-update-progress": "No es pot actualitzar el progrés"
},
"templates": {
"button": "Descarrega"
}
},
"equalizer": {
"description": "Afegeix un equalitzador al reproductor",
"menu": {
"presets": {
"label": "Predefinits",
"list": {
"bass-booster": "Augmentar baixos"
}
}
},
"name": "Equalitzador"
},
"exponential-volume": {
"description": "Fa que el control lliscant del volum sigui exponencial per que sigui més fàcil seleccionar volums més baixos.",
"name": "Volum exponencial"
},
"in-app-menu": {
"description": "Fa que la barra de menú superior tingui un elegant aspecte fosc o basat en el color de l'àlbum",
"menu": {
"hide-dom-window-controls": "Amaga els controls de la finestra del DOM"
},
"name": "Menú integrat In-App"
},
"lumiastream": {
"description": "Afegeix suport pel Lumia Stream",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Afegeix suport per la lletra de la majoria de cançons",
"menu": {
"romanized-lyrics": "Lletra romanitzada"
},
"name": "Lletres de Genius",
"renderer": {
"fetched-lyrics": "S'ha buscat la lletra a Genius"
}
},
"music-together": {
"description": "Comparteix una llista de reproducció amb els demés. Quan l'amfitrió reprodueix una cançó, la resta també sentiran la mateixa",
"dialog": {
"enter-host": "Introdueix l'ID de l'amfitrió"
},
"internal": {
"save": "Desa",
"track-source": "Origen de la pista",
"unknown-user": "Usuari desconegut"
},
"menu": {
"click-to-copy-id": "Copia l'ID d'amfitrió",
"close": "Tanca el Music Together",
"connected-users": "Usuaris connectats",
"disconnect": "Desconnecta el Music Together",
"empty-user": "No hi ha usuaris connectats",
"host": "Amfitrió de Music Together",
"join": "Uneix-te a Music Together",
"permission": {
"all": "Permet que els convidats controlin la llista de reproducció i el reproductor",
"host-only": "Tan sols l'amfitrió pot controlar la llista de reproducció i el reproductor",
"playlist": "Permet que els convidats controlin la llista de reproducció"
},
"set-permission": "Canvia els permisos de control",
"status": {
"disconnected": "Desconnectat",
"guest": "Connectat com a convidat",
"host": "Connectat com amfitrió"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Error al afegir la cançó",
"closed": "Music Together tancat",
"disconnected": "Music Together desconnectat",
"host-failed": "No s'ha pogut començar el Music Together",
"id-copied": "L'ID d'amfitrió s'ha copiat al porta-retalls",
"id-copy-failed": "Error al copiar l'ID d'amfitrió al porta-retalls",
"join-failed": "Error al unir-se al Music Together",
"joined": "T'has unit al Music Together",
"permission-changed": "Els permisos de Music Together han canviat a «{{permission}}»",
"remove-song-failed": "Error al eliminar la cançó",
"user-connected": "{{name}} s'ha unit al Music Together",
"user-disconnected": "{{name}} s'ha desconnectat del Music Together"
}
},
"navigation": {
"description": "Fletxes de navegació Següent / Enrere integrades directament a la interfície, com al teu navegador preferit",
"name": "Navegació",
"templates": {
"back": {
"title": "Pàgina anterior"
},
"forward": {
"title": "Pàgina següent"
}
}
},
"no-google-login": {
"description": "Elimina els botons d'inici de sessió de Google de la interfície",
"name": "Amaga l'inici de sessió de Google"
},
"notifications": {
"description": "Mostra una notificació quan una cançó es comença a reproduir (les notificacions interactives estan disponibles a Windows)",
"menu": {
"interactive": "Notificacions interactives",
"interactive-settings": {
"label": "Configuració interactiva",
"submenu": {
"hide-button-text": "Amaga text del botó",
"refresh-on-play-pause": "Recarrega al Reproduir/Pausar",
"tray-controls": "Obra/Tanca en clicar a la safata"
}
},
"priority": "Prioritat de les notificacions",
"toast-style": "Estil dels missatges emergents",
"unpause-notification": "Mostra notificació en reprendre la reproducció"
},
"name": "Notificacions"
},
"performance-improvement": {
"description": "Millora el rendiment habilitant scripts experimentals",
"name": "Millora del rendiment [Beta]"
},
"picture-in-picture": {
"description": "Permet commutar el mode d'imatge en imatge (PiP)",
"menu": {
"always-on-top": "Mostra sempre a sobre",
"hotkey": {
"label": "Drecera del teclat",
"prompt": {
"keybind-options": {
"hotkey": "Drecera del teclat"
},
"label": "Tria una drecera per commutar el mode d'imatge en imatge (PiP)",
"title": "Drecera del mode imatge en imatge (PiP)"
}
},
"save-window-position": "Desa la posició de la finestra",
"save-window-size": "Desa la mida de la finestra",
"use-native-pip": "Utilitza l'imatge en imatge (PiP) nativa del navegador"
},
"name": "Imatge en imatge (PiP)",
"templates": {
"button": "Imatge en imatge (PiP)"
}
},
"playback-speed": {
"description": "Escolta-ho ràpid, escolta-ho lent! Afegeix un control lliscant per canviar la velocitat de la cançó",
"name": "Velocitat de la reproducció",
"templates": {
"button": "Velocitat"
}
},
"precise-volume": {
"description": "Controla el volum de manera precisa a través de la rodeta del ratolí / dreceres del teclat, amb una interfície personalitzada i passos de volum personalitzats",
"menu": {
"arrows-shortcuts": "Controls locals de tecles de fletxa",
"custom-volume-steps": "Estableix passos de volum personalitzats",
"global-shortcuts": "Dreceres de teclat globals"
},
"name": "Volum precís",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Baixa el volum",
"increase": "Puja el volum"
},
"label": "Tria les dreceres globals de volum:",
"title": "Dreceres globals de volum"
},
"volume-steps": {
"label": "Tria els passos d'augment o disminució del volum",
"title": "Passos de volum"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Qualitat actual: {{quality}}",
"message": "Tria la qualitat del vídeo:",
"title": "Tria la qualitat del vídeo"
}
}
},
"description": "Permet canviar la qualitat del vídeo amb un botó que s'hi mostra a sobre",
"name": "Botó de qualitat del vídeo",
"renderer": {
"quality-settings-button": {
"label": "Obre les opcions de qualitat del reproductor"
}
}
},
"scrobbler": {
"description": "Afegeix suport per scrobbling (Last.fm, ListenBrainz, etc.)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Error al autenticar amb Last.fm\nAmaga la finestra emergent fins el següent reinici.",
"title": "Error d'autenticació"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Configuració de l'API de Last.fm"
},
"listenbrainz": {
"token": "Introduir token d'usuari de ListenBrainz"
},
"scrobble-alternative-artist": "Utilitza artistes alternatius",
"scrobble-alternative-title": "Useu títols alternatius",
"scrobble-other-media": "Scrobble amb altres mitjans"
},
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Clau d'API de Last.fm",
"api-secret": "Clau secreta de l'API de Last.fm"
},
"listenbrainz": {
"token": {
"label": "Introdueix el teu token de ListenBrainz:",
"title": "Token de ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "Permet l'ús de dreceres globals del teclat per la reproducció (reproduir/pausar/següent/anterior) i desactivar l'OSD dels mitjans en sobreescriure les tecles de control multimèdia, habilita el Ctrl/CMD + F per buscar, habilita el suport MPRIS a Linux per tecles de control multimèdia, i dreceres de teclat personalitzades per usuaris avançats",
"menu": {
"override-media-keys": "Sobreescriu les tecles de control multimèdia",
"set-keybinds": "Estableix controls globals de les cançons"
},
"name": "Dreceres i MPRIS",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Següent",
"play-pause": "Reproduir / Pausar",
"previous": "Anterior"
},
"label": "Tria combinacions de tecles per controlar les cançons:",
"title": "Dreceres globals"
}
}
},
"skip-disliked-songs": {
"description": "Salta les cançons amb «no m'agrada»",
"name": "Salta les cançons que no t'agraden"
},
"skip-silences": {
"description": "Omet automàticament les seccions amb silenci a les cançons",
"name": "Omet els silencis"
},
"sponsorblock": {
"description": "Omet automàticament els segments dels vídeos que no son música, com la intro o el final",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Proporciona lletres sincronitzades amb les cançons, a través de proveïdors com LRClib.",
"errors": {
"fetch": "⚠️\tS'ha produït un error en descarregar la lletra.\n\tSi us plau, intenta-ho més tard.",
"not-found": "⚠️ No s'ha trobat la lletra per aquesta cançó."
},
"menu": {
"default-text-string": {
"label": "Caràcter per defecte entre lletres",
"tooltip": "Tria el caràcter per defecte que es mostrarà a l'espai entre les lletres"
},
"line-effect": {
"label": "Efecte de la línia",
"submenu": {
"fancy": {
"label": "Caprici",
"tooltip": "Utilitza efectes grans \"app-like\" en la línia actual"
},
"focus": {
"label": "Focus",
"tooltip": "Mostra tan sols la línia actual en blanc"
},
"offset": {
"label": "Desplaçament",
"tooltip": "Desplaçament a la dreta de la línia actual"
},
"scale": {
"label": "Escala",
"tooltip": "Redimensiona la línia actual"
}
},
"tooltip": "Tria l'efecte a aplicar a la línia actual"
},
"precise-timing": {
"label": "Fes que les lletres es sincronitzin a la perfecció",
"tooltip": "Calcula al mil·lisegon l'aparició de la següent línia (pot tenir un petit impacte en el rendiment)"
},
"preferred-provider": {
"label": "Proveïdor preferit",
"none": {
"label": "Cap",
"tooltip": "Cap proveïdor preferit"
},
"tooltip": "Trieu el proveïdor predeterminat que voleu utilitzar"
},
"romanization": {
"label": "Romanitza les lletres",
"tooltip": "Si les lletres són en un idioma diferent, intenta mostrar la versió amb alfabet llatí."
},
"show-lyrics-even-if-inexact": {
"label": "Mostra la lletra tot i que sigui inexacta",
"tooltip": "Si no es troba la cançó, el plugin torna a intentar obtenir la lletra amb una cerca diferent.\nEl resultat d'aquesta segona cerca podria no ser exacte."
},
"show-time-codes": {
"label": "Mostra els codis de temps",
"tooltip": "Mostra els codis de temps al costat de la lletra"
}
},
"name": "Lletres sincronitzades",
"refetch-btn": {
"fetching": "Obtenint...",
"normal": "Tornar a obtenir la lletra"
},
"warnings": {
"duration-mismatch": "⚠️ - La lletra podria no estar ben sincronitzada, la durada no és coincident.",
"inexact": "⚠️ - La lletra d'aquesta cançó podria no ser exacta",
"instrumental": "⚠️ - Aquesta cançó és instrumental"
}
},
"taskbar-mediacontrol": {
"description": "Controla la reproducció des de la barra de tasques del Windows",
"name": "Control multimèdia a la barra de tasques"
},
"touchbar": {
"description": "Afegeix un giny a la Touch Bar per usuaris de macOS",
"name": "TouchBar"
},
"transparent-player": {
"description": "Fa la finestra de l'aplicació transparent",
"menu": {
"opacity": {
"label": "Opacitat",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Tipus",
"submenu": {
"acrylic": "Acrílic",
"mica": "Mica",
"none": "Cap",
"tabbed": "En pestanyes"
}
}
},
"name": "Reproductor Transparent"
},
"tuna-obs": {
"description": "Integració amb l'extensió «Tuna» del OBS",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Impedeix que salti el reproductor mentre se sent una cançó",
"name": "Reproductor Discret"
},
"video-toggle": {
"description": "Afegeix un botó per commutar entre el mode de vídeo o de cançó. Opcionalment, es pot eliminar la pestanya de vídeo per complet",
"menu": {
"align": {
"label": "Alineament",
"submenu": {
"left": "Esquerra",
"middle": "Mig",
"right": "Dreta"
}
},
"force-hide": "Força amagar la pestanya de vídeo",
"mode": {
"label": "Mode",
"submenu": {
"custom": "Commutador personalitzat",
"disabled": "Deshabilitat",
"native": "Commutador nadiu"
}
}
},
"name": "Botó de vídeo",
"templates": {
"button-song": "Cançó",
"button-video": "Vídeo"
}
},
"visualizer": {
"description": "Afegeix un visualitzador al reproductor",
"menu": {
"visualizer-type": "Tipus de visualitzador"
},
"name": "Visualitzador"
}
}
}

View File

@ -1,950 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Selhalo spuštění pluginu {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} spuštěn za {{ms}}ms",
"initialize-failed": "Selhalo zapnutí \"{{pluginName}}\" pluginu",
"load-all": "Načítání všech pluginů",
"load-failed": "Selhalo načtení \"{{pluginName}}\" pluginu",
"loaded": "Plugin \"{{pluginName}}\" načten",
"unload-failed": "Selhalo vypnutí \"{{pluginName}}\" pluginu",
"unloaded": "Plugin {{pluginName}} byl odnačten"
}
}
},
"language": {
"code": "cs",
"local-name": "Čeština",
"name": "Czech"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Načítání dokončeno. Vývojářské nástroje se otevřely"
},
"i18n": {
"loaded": "i18n načteno"
},
"second-instance": {
"receive-command": "Přijmut příkaz přes protokol: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS soubor \"{{cssFile}}\" neexistuje, ignorováno"
},
"unresponsive": {
"details": "Chyba - Aplikace nereaguje!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Čištění mezipaměti aplikace"
},
"window": {
"tried-to-render-offscreen": "Okno se pokusilo vykreslit na pozadí, velikost okna = {{windowSize}}, zobrazovací velikost = {{displaySize}}, pozice = {{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menu je skryté, stiskněte 'Alt' k jeho zobrazení (nebo 'ESC', pokud používáte vestavěné menu)",
"message": "Skrýt menu je povoleno",
"title": "Skrýt menu Povolené"
},
"need-to-restart": {
"buttons": {
"later": "Později",
"restart-now": "Restartovat nyní"
},
"detail": "\"{{pluginName}}\" plugin vyžaduje restart, aby se projevil",
"message": "\"{{pluginName}}\" potřebuje restartovat",
"title": "Restart vyžadován"
},
"unresponsive": {
"buttons": {
"quit": "Ukončit",
"relaunch": "Spustit znovu",
"wait": "Počkat"
},
"detail": "Omlouváme se za způsobené nepříjemnosti! prosím vyberte, co dělat:",
"message": "Aplikace nereaguje",
"title": "Okno nereaguje"
},
"update-available": {
"buttons": {
"disable": "Vypnout aktualizace",
"download": "Stáhnout",
"ok": "OK"
},
"detail": "Nová verze je k dispozici a lze ji stáhnout na {{downloadLink}}",
"message": "Nová verze je dostupná",
"title": "Aktualizace je k dispozici"
}
},
"menu": {
"about": "O Aplikaci",
"navigation": {
"label": "Navigace",
"submenu": {
"copy-current-url": "Zkopírovat aktuální URL adresu",
"go-back": "Jít zpátky",
"go-forward": "Jít dopředu",
"quit": "Ukončit",
"restart": "Restartovat aplikaci"
}
},
"options": {
"label": "Možnosti",
"submenu": {
"advanced-options": {
"label": "Pokročilé možnosti",
"submenu": {
"auto-reset-app-cache": "Při spuštění aplikace se resetuje její mezipaměť",
"disable-hardware-acceleration": "Vypnout hardware zrychlení",
"edit-config-json": "Upravit config.json",
"override-user-agent": "Přepsat uživatelského agenta",
"restart-on-config-changes": "Restartovat aplikaci na změny v konfiguraci",
"set-proxy": {
"label": "Nastavit proxy",
"prompt": {
"label": "Zadejte adresu proxy: (k vypnutí nechte pole prázdné)",
"placeholder": "Příklad: SOCKS5://127.0.0.1:9999",
"title": "Nastavit proxy"
}
},
"toggle-dev-tools": "Přepínat vývojářské nástroje"
}
},
"always-on-top": "Vždy na vrchu",
"auto-update": "Automatické aktualizace",
"hide-menu": {
"dialog": {
"message": "Menu bude skryto na dalším spuštěním, použijte [Alt] k jeho zobrazení (nebo backtick [`] pokud používáte in-app-menu)",
"title": "Skrýt menu Povoleno"
},
"label": "Skrýt menu"
},
"language": {
"dialog": {
"message": "Jazyk bude změněn po restartu",
"title": "Jazyk změněn"
},
"label": "Jazyk",
"submenu": {
"to-help-translate": "Chcete pomoc s překladem? Klikněte zde"
}
},
"resume-on-start": "Při spuštění aplikace, pokračovat na poslední písničce",
"single-instance-lock": "Zámek pro jednu instanci",
"start-at-login": "Zapnutí aplikace po přihlášení",
"starting-page": {
"label": "Úvodní stránka",
"unset": "Nenastaveno"
},
"tray": {
"label": "Tray",
"submenu": {
"disabled": "Vypnuto",
"enabled-and-hide-app": "Povolit a skrýt aplikaci",
"enabled-and-show-app": "Enabled a show aplikaci",
"play-pause-on-click": "Přehrát/Pozastavit na kliknutí"
}
},
"visual-tweaks": {
"label": "Vzhledové vylepšení",
"submenu": {
"custom-window-title": {
"label": "Vlastní název okna",
"prompt": {
"label": "Zadejte vlastní název okna: (zanechejte prázdné pro zakázání)",
"placeholder": "Příklad: Pear Desktop"
}
},
"like-buttons": {
"default": "Výchozí",
"force-show": "Vynutit zobrazení",
"hide": "Skrýt",
"label": "Like tlačítka"
},
"remove-upgrade-button": "Odebrat upgrade tlačítko",
"theme": {
"dialog": {
"button": {
"cancel": "zrušit",
"remove": "Odstranit"
},
"remove-theme": "Jste si jisti že chcete odstranit tento vlastní motiv?",
"remove-theme-message": "Tohle odstraní vlastní motiv"
},
"label": "Motiv",
"submenu": {
"import-css-file": "Vložit vlastní CSS soubor",
"no-theme": "Žádný motiv"
}
}
}
}
}
},
"plugins": {
"enabled": "Povoleno",
"label": "Pluginy",
"new": "NOVÉ"
},
"view": {
"label": "Zobrazení",
"submenu": {
"force-reload": "Vynutit znovu načtení",
"reload": "Obnovit",
"reset-zoom": "Skutečná velikost",
"toggle-fullscreen": "Přepnout režim celé obrazovky",
"zoom-in": "Přiblížit",
"zoom-out": "Oddálit"
}
}
},
"tray": {
"next": "Další",
"play-pause": "Přehrát/Pozastavit",
"previous": "Minulý",
"quit": "Ukončit",
"restart": "Restartovat aplikaci",
"show": "Zobrazit okno",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Pokud se přehraje reklama tak ztlumí zvuk a nastaví rychlost přehrávání na 16x",
"name": "Zrychlovač Reklam"
},
"adblocker": {
"description": "Blokuje všechny reklamy a sledování ihned od začátku",
"menu": {
"blocker": "Blokátor"
},
"name": "Blokátor reklam"
},
"album-actions": {
"description": "Přidává Undislike, Dislike, Like, a Unlike tlačítka k aplikování tohoto ke všem písničkám v seznamu písniček nebo albumu",
"name": "Možnosti Alba"
},
"album-color-theme": {
"description": "Používá dynamický motiv a vizuální efekty na základě palety barev alba",
"menu": {
"color-mix-ratio": {
"label": "Poměr míchání barev",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Motiv podle barvy Alba"
},
"ambient-mode": {
"description": "Aplikuje světelné efekty pomocí vrhání jemných barev z videa, do vašeho pozadí obrazovky",
"menu": {
"blur-amount": {
"label": "Množství rozmazání",
"submenu": {
"pixels": "{{blurAmount}} pixelů"
}
},
"buffer": {
"label": "Vyrovnávací paměť",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Neprůhlednost",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Kvalita",
"submenu": {
"pixels": "{{quality}} pixelů"
}
},
"size": {
"label": "Velikost",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Plynulý přechod",
"submenu": {
"during": "Během {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Používání režimu celé obrazovky"
}
},
"name": "Ambientní režim"
},
"amuse": {
"description": "Přídá Pear Desktop podporu pro Amuse právě hraje widget od 6K Labs",
"name": "Amuse",
"response": {
"query": "Server Amuse API běží. Pošli požadavek typu GET na /query, aby ses dozvěděl info o písničce."
}
},
"api-server": {
"description": "Vlož API server abys mohl ovládat přehrávač",
"dialog": {
"request": {
"buttons": {
"allow": "Povolit",
"deny": "Zakázat"
},
"message": "Povolit {{ID}} ({{origin}}) přístup k API?",
"title": "dotaz na přihlášení k API"
}
},
"menu": {
"auth-strategy": {
"label": "Možnosti přihlášení",
"submenu": {
"auth-at-first": {
"label": "Ověřit při prvním dotazu"
},
"none": {
"label": "Bez ověření"
}
}
},
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "API server [Beta]",
"prompt": {
"hostname": {
"label": "Zadej hostname API serveru (ve tvaru 0.0.0.0):",
"title": "Hostname"
},
"port": {
"label": "Zadej port API serveru:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Aplikuje kompresi k audiu (snižuje hlasitost nejhlasitěších částí signálu a zvyšuje hlasitost nejjemnějších částí)",
"name": "Audio kompresor"
},
"auth-proxy-adapter": {
"description": "Podpora pro použití ověřovacích proxy služeb",
"menu": {
"disable": "Vypnout Proxy Adaptér",
"enable": "Zapnout Proxy Adaptér",
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "Autorizační Proxy adaptér",
"prompt": {
"hostname": {
"label": "Zadejte hostname lokálního proxy serveru (vyžaduje restart):",
"title": "Proxy Hostname"
},
"port": {
"label": "Zadejte port lokálního proxy serveru (vyžaduje restart):",
"title": "Proxy Port"
}
}
},
"blur-nav-bar": {
"description": "Udělá navigační panel průhledný a rozmazaný",
"name": "Rozmazaný navigační panel"
},
"bypass-age-restrictions": {
"description": "Obejít ověření věku na Music Player",
"name": "Obejít věková omezení"
},
"captions-selector": {
"description": "Titulkový selector pro zvukové stopy v Pear Desktop",
"menu": {
"autoload": "Automaticky vybrat naposledy použité titulky",
"disable-captions": "Žádné titulky ve vychozím nastavení"
},
"name": "Titulkový selector",
"prompt": {
"selector": {
"label": "Aktuální jazyk titulků: {{language}}",
"none": "Žádný",
"title": "Vybrat jazyk titulků"
}
},
"templates": {
"title": "Otevřít titulový selector"
},
"toast": {
"caption-changed": "Titulky změněny na {{language}}",
"caption-disabled": "Titulky vypnuty",
"no-captions": "K této skladbě nejsou titulky dostupné"
}
},
"compact-sidebar": {
"description": "Vždy nastavit postranní panel do kompaktního režimu",
"name": "Kompaktní postranní panel"
},
"crossfade": {
"description": "Prolínání mezi písničkami",
"menu": {
"advanced": "Pokročilý"
},
"name": "Prolínání [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Délka Sílení (ms)",
"fade-out-duration": "Délka Slábnutí (ms)",
"fade-scaling": {
"label": "Škálování Přechodu",
"linear": "Lineární",
"logarithmic": "Logaritmické"
},
"seconds-before-end": "Crossfade N sekund před koncem"
},
"title": "Možnosti prolínání"
}
}
},
"custom-output-device": {
"description": "Nastavte vlastní výstupní zařízení pro skladby",
"menu": {
"device-selector": "Vyberte zařízení"
},
"name": "Vlastní výstupní zařízení",
"prompt": {
"device-selector": {
"label": "Vyberte zařízení pro výstup zvuku",
"title": "Vyberte výstupní zařízení"
}
}
},
"disable-autoplay": {
"description": "Spustí písničku v režimu \"pozastaveno\"",
"menu": {
"apply-once": "Applies jenom na spuštění aplikace"
},
"name": "Vypnout automatické přehrávání"
},
"discord": {
"backend": {
"already-connected": "Pokusilo se spojit s aktivním spojením",
"connected": "Připojeno k Discordu",
"disconnected": "Odpojeno od Discordu"
},
"description": "Ukažte svým přátelům, co posloucháte pomocí Rich Persence",
"menu": {
"auto-reconnect": "Automaticky znovu připojit",
"clear-activity": "Vymazat aktivitu",
"clear-activity-after-timeout": "Vymazat aktivitu po timeout",
"connected": "Připojeno",
"disconnected": "Odpojeno",
"hide-duration-left": "Skrýt zbývající duration",
"hide-github-button": "Skrýt tlačítko s odkazem na GitHub",
"play-on-pear-desktop": "Hrát na Pear Desktop",
"set-inactivity-timeout": "Nastavit timeout pro neaktivitu",
"set-status-display-type": {
"label": "Text statusu",
"submenu": {
"artist": "Poslouchám: {artist}",
"pear-desktop": "Poslouchám Pear Desktop",
"title": "Poslouchám {song title}"
}
}
},
"name": "Discord Rich Persence",
"prompt": {
"set-inactivity-timeout": {
"label": "Zadejte timeout neaktivity v sekundách:",
"title": "Nastavit timeout pro neaktivitu"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Argh! Omlouvám se, stáhnutí selhalo…",
"title": "Chyba ve stáhování!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} písničky)",
"message": "Stahování seznamu písniček {{playlistTitle}}",
"title": "Stahování začalo"
}
},
"feedback": {
"conversion-progress": "Konverze: {{percent}}%",
"converting": "Převádím…",
"done": "Hotovo: {{filePath}}",
"download-info": "Stahování {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Stahování: {{percent}}%",
"downloading": "Stahování…",
"downloading-counter": "Stahování {{current}}/{{total}}…",
"downloading-playlist": "Stahování seznamu písniček \"{{playlistTitle}}\" - {{playlistSize}} písničky ({{playlistId}})",
"error-while-downloading": "Chyba při stahování \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Složka {{playlistFolder}} již existuje",
"getting-playlist-info": "Získávání informací o seznamu písniček…",
"loading": "Načítání…",
"playlist-has-only-one-song": "Seznam písniček má pouze jednu položku, stahuje se přímo",
"playlist-id-not-found": "Žádné ID seznamu písnček nenalezeno",
"playlist-is-empty": "Seznam písniček je prázdný",
"playlist-is-mix-or-private": "Chyba při získávání informací o seznamu písniček: ujistite se, že se nejedná o soukromý nebo \"Namíchaný pro vás\" seznam písniček\n\n{{error}}",
"preparing-file": "Připravování souboru…",
"saving": "Ukládání…",
"trying-to-get-playlist-id": "Trying se získat ID seznamu písniček: {{playlistId}}",
"video-id-not-found": "Video nebylo nalezeno",
"writing-id3": "Psaní ID3 značek…"
}
},
"description": "Stahuje MP3 / source audio přímo z rozhraní",
"menu": {
"choose-download-folder": "Vybrat složku pro stahování",
"download-finish-settings": {
"label": "Stáhnout po dokončení",
"prompt": {
"last-percent": "Po x procentech",
"last-seconds": "Posledních x vteřin",
"title": "Nastavit kdy stahovat"
},
"submenu": {
"advanced": "Pokoročile",
"enabled": "Povoleno",
"mode": "Časový režim",
"percent": "Procent",
"seconds": "Sekundy"
}
},
"download-playlist": "Stáhnout seznam písniček",
"presets": "Předvolby",
"skip-existing": "Přeskočit existující soubory"
},
"name": "Stahovač",
"renderer": {
"can-not-update-progress": "Progress nemůže být aktualizován"
},
"templates": {
"button": "Stáhnout"
}
},
"equalizer": {
"description": "Přidá do přehrávače ekvalizér",
"menu": {
"presets": {
"label": "Předvolby",
"list": {
"bass-booster": "Zesílení basů"
}
}
},
"name": "Ekvalizér"
},
"exponential-volume": {
"description": "Dělá posuvník hlasitosti exponenciální, takže je snazší vybrat nižší hlasitost.",
"name": "Exponenciální hlasitost"
},
"in-app-menu": {
"description": "Dává menu panelům fancy, tmavý nebo album-color vzhled",
"menu": {
"hide-dom-window-controls": "Skrýt DOM window controls"
},
"name": "Vestavěné Menu"
},
"lumiastream": {
"description": "Přidává Lumia Stream podporu",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Přidává lyrics podporu pro většinu písniček",
"menu": {
"romanized-lyrics": "Romanizované Lyrics"
},
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Fetched lyrics pro Genius"
}
},
"music-together": {
"description": "Sdílejte playlist s ostatními. Když hostitel přehrává skladbu, uslyší jí i všichni ostatní",
"dialog": {
"enter-host": "Zadejte Host ID"
},
"internal": {
"save": "Uložit",
"track-source": "Zdroj Písně",
"unknown-user": "Neznámý uživatel"
},
"menu": {
"click-to-copy-id": "Zkopírovat ID Hosta",
"close": "Zavřít Hudba Spolu",
"connected-users": "Připojení uživatelé",
"disconnect": "Odpojit od Hudby Spolu",
"empty-user": "Žadní připojení uživatelé",
"host": "Hudba Spolu Host",
"join": "Připojit se k Hudbě Spolu",
"permission": {
"all": "Povolit hostům ovládat seznam písniček a přehrávač",
"host-only": "Jenom hostitel může ovládat seznam písniček a přehrávač",
"playlist": "Povolit hostům ovládat seznam písniček"
},
"set-permission": "Změnit ovládací oprávnění",
"status": {
"disconnected": "Odpojen",
"guest": "Připojený/á jako Guest",
"host": "Připojený/á jako Host"
}
},
"name": "Hudba Spolu [Beta]",
"toast": {
"add-song-failed": "Selhalo přidání písničky",
"closed": "Hudba Spolu zavřena",
"disconnected": "Hudba Spolu odpojena",
"host-failed": "Selhalo hostování Hudby Spolu",
"id-copied": "Host ID zkopírováno do schránky",
"id-copy-failed": "Kopírování ID Hosta do schránky selhalo",
"join-failed": "Selhalo připojení k Hudba Spolu",
"joined": "Připojil/a jste se k Hudbě Spolu",
"permission-changed": "Oprávnění Hudby Spolu se změnilo na \"{{permission}}\"",
"remove-song-failed": "Selhalo odstranění písničky",
"user-connected": "{{name}} se připojil/a k Hudbě Spolu",
"user-disconnected": "{{name}} odpustil/a Hudba Spolu"
}
},
"navigation": {
"description": "Další/Zpátky navigační šipky přímo integrovány do rozhraní, jako ve vašem oblíbeném prohlížeči",
"name": "Navigace",
"templates": {
"back": {
"title": "Přejít na předchozí stránku"
},
"forward": {
"title": "Přejít na další stránku"
}
}
},
"no-google-login": {
"description": "Odstranit tlačítka Google přihlášení a odkazy z rozhraní",
"name": "Žádné Google přihlášení"
},
"notifications": {
"description": "Zobrazit oznámení, když písnička začne hrát (interaktivní notifikace jsou dostupné na Windows)",
"menu": {
"interactive": "Interaktivní oznámení",
"interactive-settings": {
"label": "Interactive Nastavení",
"submenu": {
"hide-button-text": "Skrýt text tlačítka",
"refresh-on-play-pause": "Refresh na Přehrát/Pozastavit",
"tray-controls": "Otevřít/Zavřít aplikaci na kliknutí na tray ikonu"
}
},
"priority": "Priorita Oznámení",
"toast-style": "Toast Styl",
"unpause-notification": "Zobrazit oznámení na unpause"
},
"name": "Oznámení"
},
"performance-improvement": {
"description": "Zlepšit výkon povolením experimentálních skriptů",
"name": "Zlepšení výkonu [Beta]"
},
"picture-in-picture": {
"description": "Povoluje switch aplikaci do režimu obrázek v obrázku",
"menu": {
"always-on-top": "Vždy na vrchu",
"hotkey": {
"label": "Klávesová zkratka",
"prompt": {
"keybind-options": {
"hotkey": "Klávesová zkratka"
},
"label": "Vybrat klávesovou zkratku pro přepínání obrázek v obrázku",
"title": "klávesová zkratka pro obrázek v obrázku"
}
},
"save-window-position": "Uložit pozici okna",
"save-window-size": "Uložit velikost okna",
"use-native-pip": "Použít browser native PiP"
},
"name": "Obrázek v obrázku",
"templates": {
"button": "Obrázek v obrázku"
}
},
"playback-speed": {
"description": "Poslouchej rychle, poslouchej pomalu! Přidává slider, který kontroluje rychlost písníčky",
"name": "Rychlost přehrávání",
"templates": {
"button": "Rychlost"
}
},
"precise-volume": {
"description": "Přesná kontrola hlasitosti pomocí kolečka myši/klávesnicových zkratek, s vlastní HUD a customizable hlasitostních steps",
"menu": {
"arrows-shortcuts": "Ovádání Šipkami",
"custom-volume-steps": "Nastavit vlastní hlasitostní steps",
"global-shortcuts": "Globální klávesové zkratky"
},
"name": "Přesná hlasitost",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Snížit hlasitost",
"increase": "Zvýšit hlasitost"
},
"label": "Vybrat globální klávesnicové zkratky:",
"title": "Globální klávesnicové zkratky hlasitosti"
},
"volume-steps": {
"label": "Vybrat Zvýšení/Snížení hlasitost Steps",
"title": "Hlasitostní steps"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Aktuální kvalita: {{quality}}",
"message": "Vybrat kvalitu videa:",
"title": "Vybrat kvalitu videa"
}
}
},
"description": "Umožňuje měnit kvalitu videa pomocí tlačítka na video overlay",
"name": "Měnič kvality videa",
"renderer": {
"quality-settings-button": {
"label": "Otevřít volbu kvality přehrávače"
}
}
},
"scrobbler": {
"description": "Přidat scrobbing podporu (např .last.fm , Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Selhalo ověření s Last.fm\nSchovat vyskakovací okno do dalšího restartu.",
"title": "Ověření Selhalo"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API nastavení"
},
"listenbrainz": {
"token": "Vložte Listenbrainz user token"
},
"scrobble-alternative-artist": "Použij alternativní umělce",
"scrobble-alternative-title": "Používat alternativní názvy",
"scrobble-other-media": "Scrobble jiné média"
},
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Last,fm API klíč",
"api-secret": "Tajný klíč API Last.fm"
},
"listenbrainz": {
"token": {
"label": "Vložte svůj Listenbrainz user token:",
"title": "ListenBrainz token"
}
}
}
},
"shortcuts": {
"description": "Dovoluje nastavit globální klávesové zkratky pro playback (přehrát/pozastavit/další/předchozí) a vypínání media OSD pomocí přepisování media klíčů, zapínání Ctrl/CMD + F k vyhledávání, zapínání Linux MPRIS podporu pro media klíče, a vlastní klávesové zkratky pro pokročilé uživatele.",
"menu": {
"override-media-keys": "Přepsat media klíče",
"set-keybinds": "Nastavit globální Controls písniček"
},
"name": "Zkratky (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Další",
"play-pause": "Přehrát / Pozastavit",
"previous": "Předchozí"
},
"label": "Vybrat globální klávesnicové zkratky pro ovládání písniček:",
"title": "Globální klávesnicové zkratky"
}
}
},
"skip-disliked-songs": {
"description": "Přeskakovat disliked písničky",
"name": "Přeskočit Disliked písničky"
},
"skip-silences": {
"description": "Automaticky přeskakovat tichá místa v písničkách",
"name": "Přeskakovat Tichá místa"
},
"sponsorblock": {
"description": "Automaticky přeskakuje nehudební části jako intro/outro nebo části hudebních videí, kde nehraje písnčka",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Poskytuje synchronizaci textů do písní, pomocí poskytovatelů, jako je LRClib.",
"errors": {
"fetch": "⚠️ Při hledání textu došlo k chybě.\n \tProsím zkuste to znovu později.",
"not-found": "⚠️ Pro tuto skladbu nebyl nalezen žádný text."
},
"menu": {
"default-text-string": {
"label": "Výchozí znak mezi texty",
"tooltip": "Vyberte výchozí znak pro mezeru mezi texty"
},
"line-effect": {
"label": "Efekt řádku",
"submenu": {
"fancy": {
"label": "Luxusní",
"tooltip": "Použijte velké, aplikací inspirované efekty na aktuální řádek"
},
"focus": {
"label": "Soustředění",
"tooltip": "Nechat pouze aktuální řádek bílý"
},
"offset": {
"label": "Posun",
"tooltip": "Posunout aktuální řádek doprava"
},
"scale": {
"label": "Zvětšení",
"tooltip": "Změnit velikost aktuálního řádku"
}
},
"tooltip": "Vyberte efekt pro aktuální řádek"
},
"precise-timing": {
"label": "Dokonale synchronizovat texty",
"tooltip": "Vypočítat zobrazení dalšího řádku na milisekundu (může mít menší dopad na výkon)"
},
"preferred-provider": {
"label": "Preferovaný poskytovatel",
"none": {
"label": "Žádný",
"tooltip": "Žádný preferovaný poskytovatel"
},
"tooltip": "Zvolte výchozího poskytovatele"
},
"romanization": {
"label": "Romanizovat texty",
"tooltip": "Pokud je text v jiném jazyce, zkusit zobrazit verzi v latince."
},
"show-lyrics-even-if-inexact": {
"label": "Zobrazit i nepřesné texty",
"tooltip": "Pokud se píseň nenajde, plugin to zkusí znovu s jiným vyhledávacím výrazem.\nVýsledek druhého pokusu nemusí být přesný."
},
"show-time-codes": {
"label": "Zobrazit časové kódy",
"tooltip": "Zobrazit časové kódy vedle textu"
}
},
"name": "Synchronizované texty",
"refetch-btn": {
"fetching": "Získávání...",
"normal": "Znovu načíst texty"
},
"warnings": {
"duration-mismatch": "⚠️ - Text nemusí být synchronizován kvůli neshodě v délce trvání.",
"inexact": "⚠️ - Text pro tuto skladbu nemusí být přesný",
"instrumental": "⚠️ - Tato skladba je instrumentální"
}
},
"taskbar-mediacontrol": {
"description": "Ovládejte přehrávání z vašeho Windows hlavního panelu",
"name": "Hlavní panel Media Control"
},
"touchbar": {
"description": "Přidává Touch Bar widget pro macOS uživatele",
"name": "Touch Bar"
},
"transparent-player": {
"description": "Zprůhlední okno aplikace",
"menu": {
"opacity": {
"label": "Průhlednost",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Typ",
"submenu": {
"acrylic": "Akryl",
"mica": "Mica",
"none": "Žádné",
"tabbed": "Záložkovaný"
}
}
},
"name": "Průhledný přehrávač"
},
"tuna-obs": {
"description": "Integrace s OBS's plugin Tuna",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Zabrání tomu, aby se přehrávač objevil při hraní písně",
"name": "Nepřekážející přehrávač"
},
"video-toggle": {
"description": "Přidává tlačítko k switch mezi video/písničko režimem. Může také odstranit celou video kartu",
"menu": {
"align": {
"label": "Zarovnání",
"submenu": {
"left": "Vlevo",
"middle": "Uprostřed",
"right": "Pravo"
}
},
"force-hide": "Vynutit odstranění karty videa",
"mode": {
"label": "Režim",
"submenu": {
"custom": "Vlastní přepínač",
"disabled": "Vypnuto",
"native": "Původní přepínač"
}
}
},
"name": "Přepínač videa",
"templates": {
"button-song": "Skladba",
"button-video": "Video"
}
},
"visualizer": {
"description": "Přidá vizualizér do přehrávače",
"menu": {
"visualizer-type": "Typ vizualizéru"
},
"name": "Vizualizér"
}
}
}

View File

@ -1,334 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Fejl ved udføring af plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} udført på {{ms}}ms",
"initialize-failed": "Fejl ved igangsætning af plugin \"{{pluginName}}\"",
"load-all": "Indlæser alle plugins",
"load-failed": "Fejl ved indlæsning af plugin \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" indlæst",
"unload-failed": "Fejl ved aflæsning af plugin \"{{pluginNavn}}\"",
"unloaded": "Plugin \"{{pluginNavn}}\" aflæssede"
}
}
},
"language": {
"code": "dk",
"local-name": "Dansk",
"name": "Danish"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Indlæsning færdig. DevTools åbnet"
},
"i18n": {
"loaded": "i18n indlæst"
},
"second-instance": {
"receive-command": "Modtog kommando over protokol: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS fil \"{{cssFile}}\" eksisterer ikke, ignorere"
},
"unresponsive": {
"details": "Uresponsiv fejl!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Rydder op i appens cache"
},
"window": {
"tried-to-render-offscreen": "Windows forsøgte at indlæse uden for skærmen, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menuen er gemt, brug 'Alt' knappen for at vise den igen (eller 'Escape' hvis In-App menuen bruges)",
"message": "Skjul menuen er aktiveret",
"title": "Skjult menu aktiveret"
},
"need-to-restart": {
"buttons": {
"later": "Senere",
"restart-now": "Genstart nu"
},
"detail": "\"{{pluginName}}\" plugin kræver en genstart for at have en effekt",
"message": "\"{{pluginName}}\" skal genstarte",
"title": "Genstart krævet"
},
"unresponsive": {
"buttons": {
"quit": "Afslut",
"relaunch": "Genåben",
"wait": "Vent"
},
"detail": "Vi undskylder for ubelejligheden! Vælg næste handling:",
"message": "Appen svarer ikke",
"title": "Vindue svarer ikke"
},
"update-available": {
"buttons": {
"disable": "Slå opdateringer fra",
"download": "Hent",
"ok": "OK"
},
"detail": "En ny version er tilgængelig og kan downloades her: {{downloadLink}}",
"message": "En ny version er tilgængelig",
"title": "Opdatering tilgængelig"
}
},
"menu": {
"about": "Om",
"navigation": {
"label": "Navigering",
"submenu": {
"copy-current-url": "Kopier nuværende URL",
"go-back": "Tilbage",
"go-forward": "Frem",
"quit": "Afslut",
"restart": "Genstart Appen"
}
},
"options": {
"label": "Indstillinger",
"submenu": {
"advanced-options": {
"label": "Avancerede indstillinger",
"submenu": {
"auto-reset-app-cache": "Nulstil app cache når appen starter",
"disable-hardware-acceleration": "Deaktiver hardware acceleration",
"edit-config-json": "Rediger config.json",
"override-user-agent": "Erstat Bruger-Agent",
"restart-on-config-changes": "Genstart ved config ændringer",
"set-proxy": {
"label": "Indstil proxy",
"prompt": {
"label": "Skriv proxy adresse: (Efterlad tom for at deaktivere)",
"placeholder": "Eksempel: SOCKS5://127.0.0.1:9999",
"title": "Sæt proxy"
}
},
"toggle-dev-tools": "Skift DevTools"
}
},
"always-on-top": "Altid øverst",
"auto-update": "Automatisk opdatering",
"hide-menu": {
"dialog": {
"message": "Menuen vil være lukket næste gang appen starter. Brug [Alt] for at vise den (Eller backtick [`] hvis in-app-menu bruges)",
"title": "Gemt menu aktiveret"
},
"label": "Skjul menu"
},
"language": {
"dialog": {
"message": "Sproget vil blive ændret efter genstart",
"title": "Sprog ændret"
},
"label": "Sprog",
"submenu": {
"to-help-translate": "Vil du hjælpe med at oversætte? Klik her"
}
},
"resume-on-start": "Genoptag sidste sang når appen starter",
"single-instance-lock": "Enkeltinstans lås",
"start-at-login": "Start ved login",
"starting-page": {
"label": "Startside",
"unset": "Ikke valgt"
},
"tray": {
"label": "Bakke",
"submenu": {
"disabled": "Deaktiveret",
"enabled-and-hide-app": "Bakke aktiveret, og skjul programvindue",
"enabled-and-show-app": "Aktiver og vis app",
"play-pause-on-click": "Start/Stop ved klik"
}
},
"visual-tweaks": {
"label": "Visuelle Justeringer",
"submenu": {
"custom-window-title": {
"label": "Tilpasset vindues titel",
"prompt": {
"label": "Indtast tilpasset vindues titel: (lad være top for deaktiveret)",
"placeholder": "Eksempel: Pear Desktop"
}
},
"like-buttons": {
"default": "Standard",
"force-show": "Tving visning",
"hide": "Skjul",
"label": "Like knapper"
},
"remove-upgrade-button": "Fjern opgrader knappen",
"theme": {
"dialog": {
"button": {
"cancel": "Annuller",
"remove": "Fjern"
},
"remove-theme": "Er du sikker på at du til fjerne det brugerdefinerede tema?",
"remove-theme-message": "Dette vil fjerne det brugerdefinerede tema"
},
"label": "Tema",
"submenu": {
"import-css-file": "Importer brugerdefinerede CSS fil",
"no-theme": "Intet tema"
}
}
}
}
}
},
"plugins": {
"enabled": "Aktiveret",
"label": "Plugins",
"new": "NY"
},
"view": {
"label": "Vis",
"submenu": {
"force-reload": "Tving Genindlæs",
"reload": "Genindlæs",
"zoom-in": "Zoom ind",
"zoom-out": "Zoom ud"
}
}
},
"tray": {
"next": "Næste",
"play-pause": "Afspil",
"previous": "Sidste",
"quit": "Luk",
"restart": "Genstart app",
"show": "Vis vindue",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Hvis en reklame afspilles, slår den lyden fra og sætter hastigheden til 16x",
"name": "Spol igennem reklamen"
},
"adblocker": {
"description": "Bloker alle reklamer og sporing fra starten af",
"menu": {
"blocker": "Bloker"
},
"name": "Bloker reklamer"
},
"album-color-theme": {
"menu": {
"color-mix-ratio": {
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Albummets farve tema"
},
"ambient-mode": {
"menu": {
"blur-amount": {
"label": "Sløringsmængde",
"submenu": {
"pixels": "{{blurAmount}} pixel"
}
},
"buffer": {
"label": "Buffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Gennemsigtighed",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Kvalitet",
"submenu": {
"pixels": "{{quality}} pixel"
}
},
"size": {
"label": "Størrelse",
"submenu": {
"percent": "{{size}}%"
}
},
"use-fullscreen": {
"label": "Bruger fuldskærm"
}
}
},
"api-server": {
"dialog": {
"request": {
"buttons": {
"allow": "Tillad",
"deny": "Afvis"
},
"message": "Tillad at {{ID}} ({{origin}}) får adgang til API'en?"
}
},
"menu": {
"auth-strategy": {
"label": "Godkendelsesstrategi"
},
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "API Server [Beta]",
"prompt": {
"hostname": {
"label": "Skriv API serverens hostname (f. eks. 0.0.0.0):",
"title": "Hostname"
},
"port": {
"label": "Skriv API serverens port:",
"title": "Port"
}
}
},
"audio-compressor": {
"name": "Lyd kompressor"
},
"blur-nav-bar": {
"description": "Gør navigationsbaren gennemsigtig og sløret",
"name": "Slør navigationsbar"
},
"captions-selector": {
"menu": {
"disable-captions": "Ingen undertekster som standard"
},
"name": "Vælg undertekster",
"prompt": {
"selector": {
"label": "Nuværende sprog på undertekster: {{language}}",
"none": "Ingen",
"title": "Vælg underteksternes sprog"
}
}
},
"crossfade": {
"description": "Fade imellem sange",
"menu": {
"advanced": "Avanceret"
},
"name": "Fade [Beta]"
}
}
}

View File

@ -1,950 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Erweiterung {{pluginName}}::{{contextName}} konnte nicht ausgeführt werden",
"executed-at-ms": "Erweiterung {{pluginName}}::{{contextName}} in {{ms}}ms ausgeführt",
"initialize-failed": "Initialisierung der Erweiterung \"{{pluginName}}\" fehlgeschlagen",
"load-all": "Lade alle Erweiterungen",
"load-failed": "Laden der Erweiterung \"{{pluginName}}\" fehlgeschlagen",
"loaded": "Erweiterung \"{{pluginName}}\" geladen",
"unload-failed": "Entladen der Erweiterung \"{{pluginName}}\" fehlgeschlagen",
"unloaded": "Erweiterung \"{{pluginName}}\" entladen"
}
}
},
"language": {
"code": "de",
"local-name": "Deutsch",
"name": "German"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Laden fertiggestellt. Entwicklerwerkzeuge geöffnet"
},
"i18n": {
"loaded": "i18n geladen"
},
"second-instance": {
"receive-command": "Befehl über Protokoll empfangen: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS-Datei \"{{cssFile}}\" existiert nicht, ignoriere"
},
"unresponsive": {
"details": "Nicht reagierender Fehler!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Leere Anwendungscache"
},
"window": {
"tried-to-render-offscreen": "Fenster vesucht außerhalb des Bildschirms zu rendern, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Das Menü ist versteckt, nutze 'Alt', um es zu aufzurufen (oder 'Escape' beim Verwenden des In-App-Menüs)",
"message": "Menü verstecken ist aktiviert",
"title": "Menü verstecken aktiviert"
},
"need-to-restart": {
"buttons": {
"later": "Später",
"restart-now": "Jetzt neustarten"
},
"detail": "\"{{pluginName}}\"-Erweiterung erfordert einen Neustart, um in Kraft zu treten",
"message": "\"{{pluginName}}\" muss neugestartet werden",
"title": "Neustart erforderlich"
},
"unresponsive": {
"buttons": {
"quit": "Verlassen",
"relaunch": "Neustarten",
"wait": "Warten"
},
"detail": "Wir entschuldigen uns für die Unannehmlichkeiten! Bitte entscheide, was du tun möchtest:",
"message": "Die Anwendung reagiert nicht",
"title": "Fenster reagiert nicht"
},
"update-available": {
"buttons": {
"disable": "Aktualisierungen deaktivieren",
"download": "Herunterladen",
"ok": "OK"
},
"detail": "Eine neue Version ist verfügbar und kann unter {{downloadLink}} heruntergeladen werden",
"message": "Eine neue Version ist verfügbar",
"title": "Aktualisierung verfügbar"
}
},
"menu": {
"about": "Über",
"navigation": {
"label": "Navigation",
"submenu": {
"copy-current-url": "Aktuelle URL kopieren",
"go-back": "Zurück gehen",
"go-forward": "Vorwärts gehen",
"quit": "Beenden",
"restart": "Anwendung neustarten"
}
},
"options": {
"label": "Einstellungen",
"submenu": {
"advanced-options": {
"label": "Erweiterte Einstellungen",
"submenu": {
"auto-reset-app-cache": "Anwendungscache beim Start der Anwendung zurücksetzen",
"disable-hardware-acceleration": "Hardware-Beschleunigung deaktivieren",
"edit-config-json": "config.json ändern",
"override-user-agent": "User-Agent außer Kraft setzen",
"restart-on-config-changes": "Neustarten bei Änderungen der Konfiguration",
"set-proxy": {
"label": "Proxy setzen",
"prompt": {
"label": "Proxy-Adresse eingeben: (leer lassen zum Ausschalten)",
"placeholder": "Beispiel: SOCKS5://127.0.0.1:9999",
"title": "Proxy setzen"
}
},
"toggle-dev-tools": "Entwicklerwerkzeuge umschalten"
}
},
"always-on-top": "Immer im Vordergrund",
"auto-update": "Automatisch Aktualisieren",
"hide-menu": {
"dialog": {
"message": "Menü wird beim nächsten Start versteckt, verwende [Alt], um es zu zeigen (oder Backtick [`], wenn du das In-App-Menü benutzt)",
"title": "Menü Verstecken Aktiviert"
},
"label": "Menü Verstecken"
},
"language": {
"dialog": {
"message": "Sprache wird nach Neustart geändert",
"title": "Sprache geändert"
},
"label": "Sprache",
"submenu": {
"to-help-translate": "Willst du beim Übersetzen helfen? Klicke hier"
}
},
"resume-on-start": "Letztes Lied weiter abspielen, wenn Anwendung startet",
"single-instance-lock": "Sperren einer einzelnen Instanz",
"start-at-login": "Start beim Einschalten",
"starting-page": {
"label": "Startseite",
"unset": "Ungesetzt"
},
"tray": {
"label": "Tray",
"submenu": {
"disabled": "Deaktiviert",
"enabled-and-hide-app": "Aktiviert und verstecke Anwendung",
"enabled-and-show-app": "Aktiviert und zeige Anwendung",
"play-pause-on-click": "Abspielen/Pausieren durch Klick"
}
},
"visual-tweaks": {
"label": "Visuelle Optimierungen",
"submenu": {
"custom-window-title": {
"label": "Benutzerdefinierter Fenstertitel",
"prompt": {
"label": "Benutzerdefinierten Fenstertitel eingeben: (zum Deaktivieren leer lassen)",
"placeholder": "Beispiel: Pear Desktop"
}
},
"like-buttons": {
"default": "Standard",
"force-show": "Zeigen erzwungen",
"hide": "Versteckt",
"label": "Gefällt mir-Knopf"
},
"remove-upgrade-button": "Upgrade-Schaltfläche entfernen",
"theme": {
"dialog": {
"button": {
"cancel": "Abbrechen",
"remove": "Entfernen"
},
"remove-theme": "Sind Sie sich sicher, dass Sie das benutzerdefinierte Aussehen ändern wollen?",
"remove-theme-message": "Dies wird das benutzerdefinierte Aussehen löschen"
},
"label": "Thema",
"submenu": {
"import-css-file": "Importiere eigene CSS-Datei",
"no-theme": "Kein Thema"
}
}
}
}
}
},
"plugins": {
"enabled": "Aktiviert",
"label": "Erweiterungen",
"new": "NEU"
},
"view": {
"label": "Ansicht",
"submenu": {
"force-reload": "Neuladen erzwingen",
"reload": "Neu laden",
"reset-zoom": "Tatsächliche Größe",
"toggle-fullscreen": "Vollbild umschalten",
"zoom-in": "Vergrößern",
"zoom-out": "Verkleinern"
}
}
},
"tray": {
"next": "Nächstes",
"play-pause": "Weiter/Pause",
"previous": "Vorheriges",
"quit": "Beenden",
"restart": "Anwendung neu starten",
"show": "Fenster anzeigen",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Wenn eine Werbung spielt, stummt es das Audio und setzt die Wiedergabegeschwindigkeit auf 16x",
"name": "Werbungsbeschleunigung"
},
"adblocker": {
"description": "Blockiere jegliche Werbung und Tracker",
"menu": {
"blocker": "Abfangmethode"
},
"name": "Werbeblocker"
},
"album-actions": {
"description": "Fügt Undislike, Dislike, Like und Unlike-Knöpfe hinzu, welche sich auf alle Lieder in einer Playlist oder Album auswirken",
"name": "Album-Aktionen"
},
"album-color-theme": {
"description": "Wendet ein dynamisches Farbthema und visuelle Effekte auf Basis der Farbpalette des Albumcovers an",
"menu": {
"color-mix-ratio": {
"label": "Farbmischungsverhältnis",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Thema aus Albumfarbe"
},
"ambient-mode": {
"description": "Fügt einen Lichteffekt durch sanftes Abstreifen der Farben des Videos in deinen Bildschirmhintergrund hinzu",
"menu": {
"blur-amount": {
"label": "Unschärfemenge",
"submenu": {
"pixels": "{{blurAmount}} Pixel"
}
},
"buffer": {
"label": "Puffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Transparenz",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Qualität",
"submenu": {
"pixels": "{{quality}} Pixel"
}
},
"size": {
"label": "Größe",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Glatter Übergang",
"submenu": {
"during": "Während {{interpolationTime}}s"
}
},
"use-fullscreen": {
"label": "Vollbild nutzen"
}
},
"name": "Ambiente-Modus"
},
"amuse": {
"description": "Fügt Unterstützung für das Amuse \"Spielt gerade\"-Widget von 6K Labs hinzu",
"name": "Amuse",
"response": {
"query": "Amuse API-Server läuft. /query für Liedinformationen."
}
},
"api-server": {
"description": "Fügt einen API-Server hinzu, um die Wiedergabe zu steuern",
"dialog": {
"request": {
"buttons": {
"allow": "Erlauben",
"deny": "Ablehnen"
},
"message": "{{ID}} ({{origin}}) den Zugriff zur API erlauben?",
"title": "API-Autorisierungs-Anfrage"
}
},
"menu": {
"auth-strategy": {
"label": "Autorisations-Methode",
"submenu": {
"auth-at-first": {
"label": "Beim ersten Zugriff autorisieren"
},
"none": {
"label": "Keine Autorisierung"
}
}
},
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "API-Server [Beta]",
"prompt": {
"hostname": {
"label": "Hostname des API-Servers vergeben (z. B. 0.0.0.0):",
"title": "Hostname"
},
"port": {
"label": "Port des API-Server:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Kompressor auf Audio anwenden (senkt die Lautstärke der lautesten Teile des Signals und hebt die Lautstärke der leisesten Teile an)",
"name": "Audio-Komprimierer"
},
"auth-proxy-adapter": {
"description": "Unterstützung für Proxy-Authentifizierungsdienste",
"menu": {
"disable": "Proxy-Adapter deaktivieren",
"enable": "Proxy-Adapter aktivieren",
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "Authentifizierungs-Proxyadapter",
"prompt": {
"hostname": {
"label": "Hostnamen eingeben für lokalen Proxy-Server (Neustart erforderlich):",
"title": "Proxy Hostname"
},
"port": {
"label": "Geben Sie den Port für den lokalen Proxyserver ein (Neustart erforderlich):",
"title": "Proxy Port"
}
}
},
"blur-nav-bar": {
"description": "Macht Navigationsleiste durchsichtig und unscharf",
"name": "Verschwommene Navigationsleiste"
},
"bypass-age-restrictions": {
"description": "Music Player Altersbestätigung umgehen",
"name": "Altersbeschränkungen umgehen"
},
"captions-selector": {
"description": "Untertitelwähler für Pear Desktop-Audio-Lieder",
"menu": {
"autoload": "Wähle automatisch den zuletzt verwendeten Untertitel",
"disable-captions": "Standardmäßig keine Untertitel"
},
"name": "Untertitelwähler",
"prompt": {
"selector": {
"label": "Aktuelle Untertitelsprache: {{language}}",
"none": "Keine",
"title": "Wähle Untertitelsprache"
}
},
"templates": {
"title": "Untertitelwähler öffnen"
},
"toast": {
"caption-changed": "Untertitel gewechselt zu {{language}}",
"caption-disabled": "Untertitel deaktiviert",
"no-captions": "Keine Untertitel für dieses Lied verfügbar"
}
},
"compact-sidebar": {
"description": "Seitenleiste immer in den kompakten Modus setzen",
"name": "Kompakte Seitenleiste"
},
"crossfade": {
"description": "Übergang zwischen Liedern",
"menu": {
"advanced": "Erweitert"
},
"name": "Übergang [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Einblendezeit (Millisekunden)",
"fade-out-duration": "Ausblendezeit (Millisekunden)",
"fade-scaling": {
"label": "Übergangsskalierung",
"linear": "Linear",
"logarithmic": "Logarithmisch"
},
"seconds-before-end": "Übergang N Sekunden vor dem Ende starten"
},
"title": "Übergangseinstellungen"
}
}
},
"custom-output-device": {
"description": "Einen maßgeschneiderten Ausgabemedienträger für Lieder einrichten",
"menu": {
"device-selector": "Gerät auswählen"
},
"name": "Benutzerdefiniertes Ausgabegerät",
"prompt": {
"device-selector": {
"label": "Wähle das Ausgabegerät, welches benutzt werden soll",
"title": "Wähle ein Ausgabegerät"
}
}
},
"disable-autoplay": {
"description": "Startet Lied im pausierten Modus",
"menu": {
"apply-once": "Nur beim Start der Anwendung anwenden"
},
"name": "Deaktiviere automatisches Abspielen"
},
"discord": {
"backend": {
"already-connected": "Verbindungsaufbau bei aktiver Verbindung versucht",
"connected": "Mit Discord verbunden",
"disconnected": "Verbindung zu Discord getrennt"
},
"description": "Zeige deinen Freunden, was du hörst mit Discords Aktivitätsstatus",
"menu": {
"auto-reconnect": "Automatisch erneut verbinden",
"clear-activity": "Aktivität leeren",
"clear-activity-after-timeout": "Aktivität nach Timeout leeren",
"connected": "Verbunden",
"disconnected": "Getrennt",
"hide-duration-left": "Verbleibende Zeit verstecken",
"hide-github-button": "Knopf mit Link zu GitHub ausblenden",
"play-on-pear-desktop": "Auf Pear Desktop abspielen",
"set-inactivity-timeout": "Inaktivitätstimeout setzen",
"set-status-display-type": {
"label": "Status Text",
"submenu": {
"artist": "Hört {artist} zu",
"pear-desktop": "Hört Pear Desktop",
"title": "Du hörst {song title}"
}
}
},
"name": "Discords Aktivitätsstatus",
"prompt": {
"set-inactivity-timeout": {
"label": "Inaktivitätstimeout in Sekunden eingeben:",
"title": "Inaktivitätstimeout setzen"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Argh! Entschuldigung, herunterladen fehlgeschlagen…",
"title": "Fehler beim Herunterladen!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} Lieder)",
"message": "Lade Playlist {{playlistTitle}} herunter",
"title": "Download begonnen"
}
},
"feedback": {
"conversion-progress": "Konvertieren: {{percent}}%",
"converting": "Konvertiere…",
"done": "Abgeschlossen: {{filePath}}",
"download-info": "Lade {{artist}} - {{title}} [{{videoId}} herunter",
"download-progress": "Herunterladen: {{percent}}%",
"downloading": "Lade herunter…",
"downloading-counter": "Lade herunter {{current}}/{{total}}…",
"downloading-playlist": "Lade Playlist \"{{playlistTitle}}\" herunter - {{playlistSize}} Lieder ({{playlistId}})",
"error-while-downloading": "Fehler beim Herunterladen \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Der Ordner {{playlistFolder}} existiert bereits",
"getting-playlist-info": "Hole Playlist-Informationen…",
"loading": "Lade…",
"playlist-has-only-one-song": "Playlist hat nur ein Element, wird direkt heruntergeladen",
"playlist-id-not-found": "Keine Playlist-ID gefunden",
"playlist-is-empty": "Playlist ist leer",
"playlist-is-mix-or-private": "Fehler beim Sammeln der Playlist-Informationen: stelle sicher, dass es keine private oder \"Mixed for you\"-Playlist ist\n\n{{error}}",
"preparing-file": "Bereite Datei vor…",
"saving": "Speichere…",
"trying-to-get-playlist-id": "Versuche Playlist-ID zu bekommen: {{playlistId}}",
"video-id-not-found": "Video nicht gefunden",
"writing-id3": "Schreibe ID3 tags…"
}
},
"description": "Lädt MP3-/Original-Audio direkt von der Schnittstelle herunter",
"menu": {
"choose-download-folder": "Downloadordner wählen",
"download-finish-settings": {
"label": "Song am Ende runterladen",
"prompt": {
"last-percent": "Nach x Prozent",
"last-seconds": "Letzten x Sekunden",
"title": "Konfiguriere wann runtergeladen werden soll"
},
"submenu": {
"advanced": "Erweitert",
"enabled": "Aktiviert",
"mode": "Zeitmodus",
"percent": "Prozent",
"seconds": "Sekunden"
}
},
"download-playlist": "Wiedergabeliste herunterladen",
"presets": "Voreinstellungen",
"skip-existing": "Vorhandene Dateien überspringen"
},
"name": "Downloader",
"renderer": {
"can-not-update-progress": "Fortschritt kann nicht aktualisiert werden"
},
"templates": {
"button": "Herunterladen"
}
},
"equalizer": {
"description": "Fügt einen Equalizer zum Player hinzu",
"menu": {
"presets": {
"label": "Vorgaben",
"list": {
"bass-booster": "Bass-Verstärker"
}
}
},
"name": "Equalizer"
},
"exponential-volume": {
"description": "Macht den Lautstärkeregler exponentiell, damit es einfacher ist leise Lautstärken zu wählen.",
"name": "Exponentielle Lautstärke"
},
"in-app-menu": {
"description": "Verleiht den Menüleisten ein schickes, dunkles oder albumfarbenes Aussehen",
"menu": {
"hide-dom-window-controls": "DOM-Fenster-Steuerelemente ausblenden"
},
"name": "In-App Menü"
},
"lumiastream": {
"description": "Fügt Unterstützung für Lumia Stream hinzu",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Für Songtextunterstützung für die meisten Lieder hinzu",
"menu": {
"romanized-lyrics": "Romanisierte Songtexte"
},
"name": "Songtexte von Genius",
"renderer": {
"fetched-lyrics": "Liedtexte für Genius abgerufen"
}
},
"music-together": {
"description": "Teile eine Wiedergabeliste mit anderen. Wenn der Host ein Lied abspielt, hören alle anderen das gleiche Lied",
"dialog": {
"enter-host": "Host ID eingeben"
},
"internal": {
"save": "Speichern",
"track-source": "Quelle verfolgen",
"unknown-user": "Unbekannter Nutzer"
},
"menu": {
"click-to-copy-id": "Host ID kopieren",
"close": "Music Together schließen",
"connected-users": "Verbundene Benutzer",
"disconnect": "Verbindung zu Music Together trennen",
"empty-user": "Keine verbundenen Benutzer",
"host": "Host für Music Together",
"join": "Music Together beitreten",
"permission": {
"all": "Gästen erlauben, Wiederhabeliste und Player zu bedienen",
"host-only": "Nur der Host kann die Playlist und den Player kontrollieren",
"playlist": "Gäste das Kontrollieren der Playlist erlauben"
},
"set-permission": "Kontrollberechtigung ändern",
"status": {
"disconnected": "Verbindung getrennt",
"guest": "Als Gast verbunden",
"host": "Als Host verbunden"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Song hinzufügen gescheitert",
"closed": "Music Together geschlossen",
"disconnected": "Verbindung zu Music Together getrennt",
"host-failed": "Hosten von Music Together gescheitert",
"id-copied": "Host ID in die Zwischenablage kopiert",
"id-copy-failed": "Kopieren der Host ID in die Zwischenablage gescheitert",
"join-failed": "Beitreten zu Music Together gescheitert",
"joined": "Music Together beigetreten",
"permission-changed": "Music Together-Berechtigung zu \"{{permission}}\" geändert",
"remove-song-failed": "Entfernen des Liedes gescheitert",
"user-connected": "{{name}} ist Music Together beigetreten",
"user-disconnected": "{{name}} hat Music Together verlassen"
}
},
"navigation": {
"description": "Vorwärts/Zurück Navigationspfeile direkt in die Oberfläche integriert - wie in deinem geliebten Browser",
"name": "Navigation",
"templates": {
"back": {
"title": "Zur vorherigen Seite gehen"
},
"forward": {
"title": "Zur nächsten Seite gehen"
}
}
},
"no-google-login": {
"description": "Googles Anmelden-Knöpfe und -Links von der Oberfläche entfernen",
"name": "Keine Google-Anmeldung"
},
"notifications": {
"description": "Zeige eine Benachrichtigung, wenn ein Lied beginnt zu spielen (interaktive Benachrichtigungen sind unter Windows verfügbar)",
"menu": {
"interactive": "Interaktive Benachrichtigungen",
"interactive-settings": {
"label": "Interaktivitätseinstellungen",
"submenu": {
"hide-button-text": "Text der Knöpfe verstecken",
"refresh-on-play-pause": "Aktualisieren bei Wiedergabe/Pause",
"tray-controls": "Öffnen/Schließen beim Klicken des Tray-Icons"
}
},
"priority": "Benachrichtigungspriorität",
"toast-style": "Toast-Stil",
"unpause-notification": "Benachrichtigungen beim Pausieren anzeigen"
},
"name": "Benachrichtigungen"
},
"performance-improvement": {
"description": "Leistung durch Aktivieren experimenteller Skripte verbessern",
"name": "Leistungs Verbesserung [Beta]"
},
"picture-in-picture": {
"description": "Erlaubt die App in den Bild-im-Bild-Modus zu wechseln",
"menu": {
"always-on-top": "Immer im Vordergrund",
"hotkey": {
"label": "Tastenkürzel",
"prompt": {
"keybind-options": {
"hotkey": "Tastenkürzel"
},
"label": "Tastenkürzel für Bild-im-Bild wählen",
"title": "Bild-im-Bild Tastenkürzel"
}
},
"save-window-position": "Fensterposition speichern",
"save-window-size": "Fenstergröße speichern",
"use-native-pip": "Browsereigenes PiP verwenden"
},
"name": "Bild-im-Bild",
"templates": {
"button": "Bild-im-Bild"
}
},
"playback-speed": {
"description": "Schnell hören, langsam hören! Fügt einen Schieberegler zur Steuerung der Songgeschwindigkeit hinzu",
"name": "Wiedergabegeschwindigkeit",
"templates": {
"button": "Geschwindigkeit"
}
},
"precise-volume": {
"description": "Präzise Steuerung der Lautstärke mit dem Mausrad/Numpad mit einem benutzerdefinierten HUD und benutzerdefinierten Lautstärkestufen",
"menu": {
"arrows-shortcuts": "Lokale Pfeiltasten als Steuerung",
"custom-volume-steps": "Eigene Lautstärkestufen setzen",
"global-shortcuts": "Globale Tastenkürzel"
},
"name": "Genaue Lautstärke",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Lautstärke senken",
"increase": "Lautstärke erhöhen"
},
"label": "Wähle globale Tastenkombinationen für Lautstärke:",
"title": "Globale Lautstärketastenbelegungen"
},
"volume-steps": {
"label": "Wähle Schritte zur Lautstärkehebung/-senkung",
"title": "Lautstärkestufen"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Aktuelle Videoqualität: {{quality}}",
"message": "Wähle Videoqualität:",
"title": "Videoqualität wählen"
}
}
},
"description": "Erlaubt die Videoqualität über einen Knopf auf dem Video",
"name": "Videoqualitätsänderer",
"renderer": {
"quality-settings-button": {
"label": "Videoqualität ändern"
}
}
},
"scrobbler": {
"description": "Scrobbling-Unterstützung aktivieren (z.B. für last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Die Authentifizierung von Last.fm ist fehlgeschlagen.\nBlende das Pop-up bis zum nächsten Neustart aus.",
"title": "Authentifizierung fehlgeschlagen"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API Einstellungen"
},
"listenbrainz": {
"token": "ListenBrainz-Benutzer-Token eintragen"
},
"scrobble-alternative-artist": "Benutze Alternative Künstler",
"scrobble-alternative-title": "Nutze alternative Titel",
"scrobble-other-media": "Andere Medien scrobbeln"
},
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Last.fm API-Schlüssel",
"api-secret": "Last.fm API-Kennwort"
},
"listenbrainz": {
"token": {
"label": "ListenBrainz-Benutzer-Token eintragen:",
"title": "ListenBrainz-Token"
}
}
}
},
"shortcuts": {
"description": "Ermöglicht das Festlegen globaler Hotkeys für die Wiedergabe (Abspielen/Pause/Nächster/Vorheriger) + Deaktivieren des Medien-OSD durch Überschreiben der Medientasten + Aktivieren von Strg/CMD + F zum Suchen + Aktivieren der Linux mpris-Unterstützung für Medientasten + Angepasste Tastenkürzel für fortgeschrittene Benutzer",
"menu": {
"override-media-keys": "Medientasten überschreiben",
"set-keybinds": "Globale Liedsteuerung setzen"
},
"name": "Abkürzungen (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Nächstes",
"play-pause": "Weiter / Pause",
"previous": "Vorheriges"
},
"label": "Wähle globale Tastenkombinationen für die Liedsteuerung:",
"title": "Globale Tastenkombinationen"
}
}
},
"skip-disliked-songs": {
"description": "Überspringt Lieder, die ihnen nicht gefallen",
"name": "Überspring Lieder, die ihnen nicht gefallen"
},
"skip-silences": {
"description": "Automatisch stille Abschnitte in Liedern überspringen",
"name": "Stille überspringen"
},
"sponsorblock": {
"description": "Überspringt automatisch nicht-musikalische Teile wie Intro/Outro oder Teile von Musikvideos, in denen der Song nicht gespielt wird",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Bietet synchronisierte Liedtexte zu Songs, verwendet Anbieter wie LRClib.",
"errors": {
"fetch": "⚠️ - \tBeim Abrufen des Liedtexts ist ein Fehler aufgetreten. \n\tBitte versuchen Sie es später nochmal.",
"not-found": "⚠️ Kein Text für diesen Song gefunden."
},
"menu": {
"default-text-string": {
"label": "Standardzeichen zwischen Texten",
"tooltip": "Standardzeichen für die Lücke zwischen Songtexten auswählen"
},
"line-effect": {
"label": "Zeileneffekt",
"submenu": {
"fancy": {
"label": "schick",
"tooltip": "Verwende große, app-ähnliche Effekte in der aktuellen Zeile"
},
"focus": {
"label": "Fokussieren",
"tooltip": "Nur aktive Zeile weiß darstellen"
},
"offset": {
"label": "Versatz",
"tooltip": "Verschiebe die aktuelle Zeile nach rechts"
},
"scale": {
"label": "Skalieren",
"tooltip": "Aktuelle Zeile skalieren"
}
},
"tooltip": "Effekt für aktive Zeile auswählen"
},
"precise-timing": {
"label": "Den Songtext perfekt synchronisieren",
"tooltip": "Auf die Millisekunde genau berechnen, wann die nächste Zeile angezeigt werden soll (Kann Einfluss auf die Leistung haben)"
},
"preferred-provider": {
"label": "bevorzugter Anbieter",
"none": {
"label": "Nichts",
"tooltip": "Kein bevorzugter Anbieter"
},
"tooltip": "Standardanbieter auswählen"
},
"romanization": {
"label": "Lateinische Umschrift anzeigen",
"tooltip": "Wenn der Liedtext in einer anderen Schrift ist, zeige nach Möglichkeit eine Version in lateinischer Schrift an."
},
"show-lyrics-even-if-inexact": {
"label": "Songtext anzeigen, auch wenn er ungenau ist",
"tooltip": "Die Erweiterung sucht mit anderen Suchparameter nochmals, wenn der Song nicht gefunden wurde.\nEs kann sein, dass das Ergebnis von der zweiten Anfrage nicht genau ist."
},
"show-time-codes": {
"label": "Zeitkodierungen anzeigen",
"tooltip": "Zeitkodierungen neben Songtext anzeigen"
}
},
"name": "Synchronisierte Texte",
"refetch-btn": {
"fetching": "Hole Songtext...",
"normal": "Songtext neu holen"
},
"warnings": {
"duration-mismatch": "⚠️ - Es kann sein, dass die Synchronization nicht stimmt, da die Songdauer nicht übereinstimmt.",
"inexact": "⚠️ - Der Songtext stimmt möglicherweise nicht überein",
"instrumental": "⚠️ - Das ist ein instrumentales Lied"
}
},
"taskbar-mediacontrol": {
"description": "Wiedergabe aus der Windows Taskleiste kontrollieren",
"name": "Mediensteuerung in der Taskleiste"
},
"touchbar": {
"description": "Fügt ein TouchBar-Widget für macOS-Benutzer hinzu",
"name": "TouchBar"
},
"transparent-player": {
"description": "Macht das Player-Fenster transparent",
"menu": {
"opacity": {
"label": "Hintergrund-Sichtbarkeit",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Typ",
"submenu": {
"acrylic": "Acryl",
"mica": "Mica",
"none": "Nichts",
"tabbed": "Mit Registerkarten"
}
}
},
"name": "Transparenter Player"
},
"tuna-obs": {
"description": "Integration mit dem OBS-Plugin Tuna",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Verhindert das Aufpoppen des Spielers während ein Song gespielt wird",
"name": "Unauffälliger Player"
},
"video-toggle": {
"description": "Fügt einen Knopf hinzu, um zwischen Video-/Liedmodus zu wechseln. kann auch genutzt werden, um den ganzen Videoabschnitt zu entfernen",
"menu": {
"align": {
"label": "Ausrichtung",
"submenu": {
"left": "Links",
"middle": "Mitte",
"right": "Rechts"
}
},
"force-hide": "Entfernen des Videoabschnitts erzwingen",
"mode": {
"label": "Modus",
"submenu": {
"custom": "Angepasster Schalter",
"disabled": "Deaktiviert",
"native": "Eingebauter Schalter"
}
}
},
"name": "Videoumschalter",
"templates": {
"button-song": "Lied",
"button-video": "Video"
}
},
"visualizer": {
"description": "Fügt einen Visualisierer zum Player hinzu",
"menu": {
"visualizer-type": "Visualisierertyp"
},
"name": "Visualisierer"
}
}
}

View File

@ -1,899 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Απέτυχε η εκτέλεση του πρόσθετου {{pluginName}}::{{contextName}}",
"executed-at-ms": "Το πρόσθετο {{pluginName}}::{{contextName}} εκτελέστηκε σε {{ms}}ms",
"initialize-failed": "Απέτυχε η αρχικοποίηση του πρόσθετου \"{{pluginName}}\"",
"load-all": "Φόρτωση όλων των πρόσθετων",
"load-failed": "Απέτυχε η φόρτωση του πρόσθετου \"{{pluginName}}\"",
"loaded": "Το πρόσθετο \"{{pluginName}}\" φορτώθηκε",
"unload-failed": "Απέτυχε η κατάργηση φόρτωσης του πρόσθετου \"{{pluginName}}\"",
"unloaded": "Η φόρτωση του πρόσθετου \"{{pluginName}}\" καταργήθηκε"
}
}
},
"language": {
"code": "el",
"local-name": "Ελληνικά",
"name": "Greek"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Ολοκληρώθηκε η φόρτωση. Τα DevTools άνοιξαν"
},
"i18n": {
"loaded": "Το i18n φορτώθηκε"
},
"second-instance": {
"receive-command": "Λήφθηκε εντολή μέσω πρωτοκόλλου: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Το αρχείο CSS \"{{cssFile}}\" δεν υπάρχει, αγνόηση"
},
"unresponsive": {
"details": "Σφάλμα απόκρισης!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Εκκαθάριση μνήμης cache εφαρμογής"
},
"window": {
"tried-to-render-offscreen": "Το παράθυρο προσπάθησε να απεικονίσει εκτός οθόνης, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Το μενού είναι κρυμμένο, χρησιμοποιήστε το 'Alt' για να το εμφανίσετε (ή το 'Escape' αν χρησιμοποιείτε το μενού εφαρμογής)",
"message": "Η απόκρυψη μενού είναι ενεργοποιημένη",
"title": "Η απόκρυψη μενού ενεργοποιήθηκε"
},
"need-to-restart": {
"buttons": {
"later": "Αργότερα",
"restart-now": "Επανεκκίνηση τώρα"
},
"detail": "Το πρόσθετο \"{{pluginName}}\" απαιτεί επανεκκίνηση για να ισχύσει",
"message": "Το \"{{pluginName}}\" χρειάζεται επανεκκίνηση",
"title": "Απαιτείται επανεκκίνηση"
},
"unresponsive": {
"buttons": {
"quit": "Τερματισμός",
"relaunch": "Επανεκκίνηση",
"wait": "Αναμονή"
},
"detail": "Λυπούμαστε για την ταλαιπωρία! Παρακαλώ επιλέξτε τι να κάνετε:",
"message": "Η εφαρμογή δεν αποκρίνεται",
"title": "Το παράθυρο δεν αποκρίνεται"
},
"update-available": {
"buttons": {
"disable": "Απενεργοποίηση ενημερώσεων",
"download": "Λήψη",
"ok": "OK"
},
"detail": "Μια νέα έκδοση είναι διαθέσιμη και μπορεί να ληφθεί από το {{downloadLink}}",
"message": "Μια νέα έκδοση είναι διαθέσιμη",
"title": "Διατίθεται ενημέρωση"
}
},
"menu": {
"about": "Πληροφορίες",
"navigation": {
"label": "Πλοήγηση",
"submenu": {
"copy-current-url": "Αντιγραφή τρέχουσας διεύθυνσης URL",
"go-back": "Πίσω",
"go-forward": "Εμπρός",
"quit": "Έξοδος",
"restart": "Επανεκκίνηση εφαρμογής"
}
},
"options": {
"label": "Επιλογές",
"submenu": {
"advanced-options": {
"label": "Επιλογές για προχωρημένους",
"submenu": {
"auto-reset-app-cache": "Επαναφορά μνήμης cache εφαρμογής όταν η εφαρμογή ξεκινά",
"disable-hardware-acceleration": "Απενεργοποίηση επιτάχυνσης υλικού",
"edit-config-json": "Επεξεργασία του config.json",
"override-user-agent": "Αντικατάσταση του User-Agent",
"restart-on-config-changes": "Επανεκκίνηση σε αλλαγές του config",
"set-proxy": {
"label": "Ορισμός μεσολάβησης",
"prompt": {
"label": "Εισαγωγή διεύθυνσης μεσολάβησης: (αφήστε κενό για απενεργοποίηση)",
"placeholder": "Παράδειγμα: SOCKS5://127.0.0.1:9999",
"title": "Ορισμός μεσολάβησης"
}
},
"toggle-dev-tools": "Εναλλαγή DevTools"
}
},
"always-on-top": "Πάντα σε πρώτο πλάνο",
"auto-update": "Αυτόματη ενημέρωση",
"hide-menu": {
"dialog": {
"message": "Το μενού θα κρυφτεί στην επόμενη εκκίνηση, χρησιμοποιήστε [Alt] για να το εμφανίσετε (ή το πλήκτρο backtick [`] αν χρησιμοποιείτε το μενού εφαρμογής)",
"title": "Η απόκρυψη μενού ενεργοποιήθηκε"
},
"label": "Απόκρυψη μενού"
},
"language": {
"dialog": {
"message": "Η γλώσσα θα αλλάξει μετά την επανεκκίνηση",
"title": "Η γλώσσα άλλαξε"
},
"label": "Γλώσσα",
"submenu": {
"to-help-translate": "Θέλετε να βοηθήσετε στη μετάφραση; Κάντε κλικ εδώ"
}
},
"resume-on-start": "Συνέχιση τελευταίου τραγουδιού όταν η εφαρμογή ξεκινά",
"single-instance-lock": "Κλείδωμα μοναδικής εκδοχής",
"start-at-login": "Έναρξη κατά τη σύνδεση",
"starting-page": {
"label": "Αρχική σελίδα",
"unset": "Κατάργηση ορισμού"
},
"tray": {
"label": "Περιοχή συστήματος",
"submenu": {
"disabled": "Απενεργοποιημένο",
"enabled-and-hide-app": "Ενεργοποιημένο και απόκρυψη της εφαρμογής",
"enabled-and-show-app": "Ενεργοποιημένο και εμφάνιση της εφαρμογής",
"play-pause-on-click": "Αναπαραγωγή/Παύση με κλικ"
}
},
"visual-tweaks": {
"label": "Οπτικές προσαρμογές",
"submenu": {
"custom-window-title": {
"label": "Προσαρμοσμένος τίτλος παραθύρου",
"prompt": {
"label": "Εισαγωγή προσαρμοσμένου τίτλου παραθύρου: (κενό για απενεργοποίηση)",
"placeholder": "Παράδειγμα: Pear Desktop"
}
},
"like-buttons": {
"default": "Προεπιλογή",
"force-show": "Επιβολή εμφάνισης",
"hide": "Απόκρυψη",
"label": "Κουμπιά Μου αρέσει"
},
"remove-upgrade-button": "Αφαίρεση κουμπιού αναβάθμισης",
"theme": {
"dialog": {
"button": {
"cancel": "Άκυρο",
"remove": "Αφαίρεση"
},
"remove-theme": "Είστε βέβαιοι ότι θέλετε να αφαιρέσετε το προσαρμοσμένο θέμα;",
"remove-theme-message": "Αυτό θα αφαιρέσει το προσαρμοσμένο θέμα"
},
"label": "Θέμα",
"submenu": {
"import-css-file": "Εισαγωγή προσαρμοσμένου αρχείου CSS",
"no-theme": "Χωρίς θέμα"
}
}
}
}
}
},
"plugins": {
"enabled": "Ενεργοποιημένο",
"label": "Πρόσθετα",
"new": "ΝΕΟ"
},
"view": {
"label": "Προβολή",
"submenu": {
"force-reload": "Επιβολή επαναφόρτωσης",
"reload": "Επαναφόρτωση",
"reset-zoom": "Πραγματικό μέγεθος",
"toggle-fullscreen": "Εναλλαγή πλήρους οθόνης",
"zoom-in": "Μεγέθυνση",
"zoom-out": "Σμίκρυνση"
}
}
},
"tray": {
"next": "Επόμενο",
"play-pause": "Αναπαραγωγή/Παύση",
"previous": "Προηγούμενο",
"quit": "Έξοδος",
"restart": "Επανεκκίνηση εφαρμογής",
"show": "Εμφάνιση παραθύρου",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Εάν ξεκινήσει διαφήμιση, ο ήχος απενεργοποιείται και η ταχύτητα αναπαραγωγής ορίζεται σε 16x",
"name": "Επιτάχυνση διαφημίσεων"
},
"adblocker": {
"description": "Αποκλεισμός όλων των διαφημίσεων και της παρακολούθησης από προεπιλογή",
"menu": {
"blocker": "Πρόγραμμα αποκλεισμού"
},
"name": "Πρόγραμμα αποκλεισμού διαφημίσεων"
},
"album-actions": {
"description": "Προσθέτει κουμπιά Like/Unlike και Dislike/Undislike που δρουν συνολικά σε όλα τα κομμάτια μιας playlist ή ενός άλμπουμ",
"name": "Ενέργειες σε Άλμπουμ"
},
"album-color-theme": {
"description": "Εφαρμόζει ένα δυναμικό θέμα και οπτικά εφέ βάσει της παλέτας χρωμάτων του άλμπουμ",
"menu": {
"color-mix-ratio": {
"label": "Αναλογία ανάμειξης χρωμάτων",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Θέμα χρωμάτων άλμπουμ"
},
"ambient-mode": {
"description": "Εφαρμόζει ένα εφέ φωτισμού ρίχνοντας απαλά χρώματα από το βίντεο στο φόντο της οθόνης σας",
"menu": {
"blur-amount": {
"label": "Ποσότητα θολώματος",
"submenu": {
"pixels": "{{blurAmount}} pixels"
}
},
"buffer": {
"label": "Ενδιάμεση μνήμη",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Αδιαφάνεια",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Ποιότητα",
"submenu": {
"pixels": "{{quality}} pixels"
}
},
"size": {
"label": "Μέγεθος",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Ομαλή μετάβαση",
"submenu": {
"during": "Για {{interpolationTime}} δευτερόλεπτα"
}
},
"use-fullscreen": {
"label": "Σε πλήρη οθόνη"
}
},
"name": "Λειτουργία περιβάλλοντος"
},
"amuse": {
"description": "Προσθέτει υποστήριξη Pear Desktop στο widget Amuse now playing από την 6K Labs",
"name": "Amuse",
"response": {
"query": "Ο διακομιστής Amuse API εκτελείται. GET /query για να λάβετε πληροφορίες για το τραγούδι."
}
},
"api-server": {
"description": "Προσθέτει έναν διακομιστή API για τον έλεγχο του παίκτη",
"dialog": {
"request": {
"buttons": {
"allow": "Αποδοχή",
"deny": "Άρνηση"
},
"message": "Επιτρέψτε {{ID}} ({{origin}}) να έχει πρόσβαση στο API;",
"title": "Αίτημα εξουσιοδότησης API"
}
},
"menu": {
"auth-strategy": {
"label": "Στρατηγική εξουσιοδότησης",
"submenu": {
"auth-at-first": {
"label": "Εξουσιοδότηση στο πρώτο αίτημα"
},
"none": {
"label": "Χωρίς εξουσιοδότηση"
}
}
},
"hostname": {
"label": "Όνομα κεντρικού υπολογιστή"
},
"port": {
"label": "Θύρα"
}
},
"name": "Διακομιστής API [Beta]",
"prompt": {
"hostname": {
"label": "Εισάγετε το όνομα κεντρικού υπολογιστή (όπως 0.0.0.0.0) για τον διακομιστή API:",
"title": "Όνομα κεντρικού υπολογιστή"
},
"port": {
"label": "Εισάγετε τη θύρα για το διακομιστή API:",
"title": "Θύρα"
}
}
},
"audio-compressor": {
"description": "Συμπίεση ήχου (μειώνει την ένταση των πιο δυνατών τμημάτων του κύματος και αυξάνει την ένταση των πιο μαλακών τμημάτων)",
"name": "Συμπιεστής ήχου"
},
"auth-proxy-adapter": {
"description": "Υποστήριξη για τη χρήση υπηρεσιών μεσολάβησης αυθεντικοποίησης",
"menu": {
"disable": "Απενεργοποίηση προσαρμογέα μεσολάβησης",
"enable": "Ενεργοποίηση προσαρμογέα μεσολάβησης",
"hostname": {
"label": "Όνομα οικοδεσπότη"
},
"port": {
"label": "Θύρα"
}
},
"name": "Προσαρμογέας μεσολάβησης Auth",
"prompt": {
"hostname": {
"label": "Εισάγετε το όνομα κεντρικού υπολογιστή για τον τοπικό διακομιστή μεσολάβησης (απαιτείται επανεκκίνηση):",
"title": "Όνομα κεντρικού υπολογιστή μεσολάβησης"
},
"port": {
"label": "Εισάγετε τη θύρα για τον τοπικό διακομιστή μεσολάβησης (απαιτεί επανεκκίνηση):",
"title": "Θύρα διακομιστή μεσολάβησης"
}
}
},
"blur-nav-bar": {
"description": "θέτει τη γραμμή πλοήγησης διαφανή και θολή",
"name": "Θόλωμα γραμμής πλοήγησης"
},
"bypass-age-restrictions": {
"description": "Παράκαμψη επαλήθευσης ηλικίας στο Music Player",
"name": "Παράκαμψη ηλικιακών περιορισμών"
},
"captions-selector": {
"description": "Επιλογέας λεζάντας για μουσικά κομμάτια ήχου του Pear Desktop",
"menu": {
"autoload": "Αυτόματη επιλογή της τελευταίας χρησιμοποιούμενης λεζάντας",
"disable-captions": "Χωρίς λεζάντες από προεπιλογή"
},
"name": "Επιλογέας λεζάντες",
"prompt": {
"selector": {
"label": "Τρέχουσα γλώσσα λεζάντας: {{language}}",
"none": "None",
"title": "Επιλογή γλώσσας λεζάντας"
}
},
"templates": {
"title": "Ανοίξτε τον επιλογέα λεζάντας"
},
"toast": {
"caption-changed": "Λεζάντα άλλαξε σε {{language}}",
"caption-disabled": "Λεζάντες απενεργοποιήθηκαν",
"no-captions": "Λεζάντες μη διαθέσιμες για αυτό το τραγούδι"
}
},
"compact-sidebar": {
"description": "Να είναι πάντα συμπαγές το sidebar",
"name": "Συμπαγής πλευρική μπάρα"
},
"crossfade": {
"description": "Crossfade μεταξύ τραγουδιών",
"menu": {
"advanced": "Για προχωρημένους"
},
"name": "Crossfade [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Διάρκεια εξασθένισης (ms)",
"fade-out-duration": "Διάρκεια σβήσιμου (ms)",
"fade-scaling": {
"label": "Κλιμάκωση εξασθένισης",
"linear": "Γραμμική",
"logarithmic": "Λογαριθμική"
},
"seconds-before-end": "Crossfade N δευτερόλεπτα πριν το τέλος"
},
"title": "Επιλογές Crossfade"
}
}
},
"disable-autoplay": {
"description": "Κάνει τα τραγούδια να είναι αυτόματα σε παύση",
"menu": {
"apply-once": "Εφαρμόζεται μόνο στο πρώτο τραγούδι"
},
"name": "Απενεργοποίηση αυτόματης αναπαραγωγής"
},
"discord": {
"backend": {
"already-connected": "Προσπάθεια σύνδεσης με ενεργή σύνδεση",
"connected": "Συνδεδεμένος με το Discord",
"disconnected": "Αποσυνδεδεμένος από το Discord"
},
"description": "Δείξτε στους φίλους σας τι ακούτε με το Rich Presence",
"menu": {
"auto-reconnect": "Αυτόματη επανασύνδεση",
"clear-activity": "Εκκαθάριση δραστηριότητας",
"clear-activity-after-timeout": "Εκκαθάριση δραστηριότητας μετά από χρονικό όριο",
"connected": "Συνδεδεμένο",
"disconnected": "Αποσυνδεδεμένο",
"hide-duration-left": "Απόκρυψη της διάρκειας που απομένει",
"hide-github-button": "Απόκρυψη κουμπιού συνδέσμου GitHub",
"play-on-pear-desktop": "Αναπαραγωγή στο Pear Desktop",
"set-inactivity-timeout": "Ορισμός χρονικού ορίου αδράνειας"
},
"name": "Discord Πλούσια παρουσία",
"prompt": {
"set-inactivity-timeout": {
"label": "Εισαγωγή χρονικού ορίου αδράνειας σε δευτερόλεπτα:",
"title": "Ορισμός χρονικού ορίου αδράνειας"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Ωχ! Λυπούμαστε, η λήψη απέτυχε…",
"title": "Σφάλμα στη λήψη!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "{{playlistSize}} τραγούδια)",
"message": "Λήψη της λίστας αναπαραγωγής {{playlistTitle}}",
"title": "Η λήψη ξεκίνησε"
}
},
"feedback": {
"conversion-progress": "Μετατροπή: {{percent}}%",
"converting": "Μετατροπή…",
"done": "Τέλος: {{filePath}}",
"download-info": "Λήψη του {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Λήψη: {{percent}}%",
"downloading": "Λήψη…",
"downloading-counter": "Λήψη {{current}}/{{total}}…",
"downloading-playlist": "Λήψη της λίστας αναπαραγωγής \"{{playlistTitle}}\" - {{playlistSize}} τραγούδια ({{playlistId}})",
"error-while-downloading": "Σφάλμα λήψης \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Ο φάκελος {{playlistFolder}} υπάρχει ήδη",
"getting-playlist-info": "Λήψη πληροφοριών λίστας αναπαραγωγής…",
"loading": "Φόρτωση…",
"playlist-has-only-one-song": "Η λίστα αναπαραγωγής έχει μόνο ένα στοιχείο, κατεβάζοντάς το απευθείας",
"playlist-id-not-found": "Δεν βρέθηκε ID λίστας αναπαραγωγής",
"playlist-is-empty": "Η λίστα αναπραγωγής είναι άδεια",
"playlist-is-mix-or-private": "Σφάλμα λήψης πληροφοριών λίστας αναπαραγωγής: βεβαιωθείτε ότι δεν είναι ιδιωτική ή «Μικτή για εσάς» λίστα αναπαραγωγής\n\n{{error}}",
"preparing-file": "Προετοιμασία αρχείου…",
"saving": "Αποθήκευση…",
"trying-to-get-playlist-id": "Προσπαθώ να πάρω το αναγνωριστικό της λίστας αναπαραγωγής: {{playlistId}}",
"video-id-not-found": "Το βίντεο δεν βρέθηκε",
"writing-id3": "Εγγραφή ετικετών ID3…"
}
},
"description": "Λήψεις MP3 / ήχου πηγής απευθείας από τη διεπαφή",
"menu": {
"choose-download-folder": "Επιλογή φακέλου λήψης",
"download-finish-settings": {
"label": "Λήψη στο τέλος",
"prompt": {
"last-percent": "Μετά από x ποσοστό",
"last-seconds": "Τελευταία x δευτερόλεπτα",
"title": "Ρύθμιση του πότε θα γίνεται λήψη"
},
"submenu": {
"advanced": "Για προχωρημένους",
"enabled": "Ενεργοποιημένο",
"mode": "Λειτουργία χρόνου",
"percent": "Ποσοστό",
"seconds": "Δευτερόλεπτα"
}
},
"download-playlist": "Λήψη λίστας αναπαραγωγής",
"presets": "Προεπιλογές",
"skip-existing": "Παράλειψη υπάρχοντων αρχείων"
},
"name": "Κατεβαστής",
"renderer": {
"can-not-update-progress": "Δεν μπορεί να ενημερωθεί η πρόοδος"
},
"templates": {
"button": "Λήψη"
}
},
"equalizer": {
"description": "Προσθέτει έναν ισοσταθμιστή στο πρόγραμμα αναπαραγωγής",
"menu": {
"presets": {
"label": "Προεπιλογές",
"list": {
"bass-booster": "Ενίσχυση μπάσου"
}
}
},
"name": "Ισοσταθμιστής"
},
"exponential-volume": {
"description": "Κάνει το ρυθμιστικό έντασης εκθετικό, ώστε να είναι ευκολότερη η επιλογή χαμηλότερων εντάσεων.",
"name": "Εκθετικός όγκος"
},
"in-app-menu": {
"description": "Δίνει στις γραμμές μενού μια φανταχτερή, σκοτεινή ή άλμπουμ-χρωματική εμφάνιση",
"menu": {
"hide-dom-window-controls": "Απόκρυψη στοιχείων ελέγχου παραθύρου DOM"
},
"name": "Μενού εντός της εφαρμογής"
},
"lumiastream": {
"description": "Προσθέτει υποστήριξη Lumia Stream",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Προσθέτει υποστήριξη στίχων για τα περισσότερα τραγούδια",
"menu": {
"romanized-lyrics": "Ρομαντικοποιημένοι στίχοι"
},
"name": "Στίχοι Genius",
"renderer": {
"fetched-lyrics": "Στίχοι για το Genius"
}
},
"music-together": {
"description": "Μοιραστείτε μια λίστα αναπαραγωγής με άλλους. Όταν ο οικοδεσπότης παίζει ένα τραγούδι, όλοι οι άλλοι θα ακούσουν το ίδιο τραγούδι",
"dialog": {
"enter-host": "Εισαγωγή ID κεντρικού υπολογιστή"
},
"internal": {
"save": "Αποθήκευση",
"track-source": "Πηγή διαδρομής",
"unknown-user": "Άγνωστος χρήστης"
},
"menu": {
"click-to-copy-id": "Αντιγραφή ID κεντρικού υπολογιστή",
"close": "Κλείσιμο Music Together",
"connected-users": "Συνδεδεμένοι χρήστες",
"disconnect": "Αποσύνδεση Music Together",
"empty-user": "Κανένας συνδεδεμένος χρήστης",
"host": "Κεντρικός υπολογιστής Music Together",
"join": "Γίνετε μέλος της Μουσικής Μαζί",
"permission": {
"all": "Επιτρέψτε στους επισκέπτες να ελέγχουν τη λίστα αναπαραγωγής και τον παίκτη",
"host-only": "Μόνο ο οικοδεσπότης μπορεί να ελέγχει τη λίστα αναπαραγωγής και τον παίκτη",
"playlist": "Επιτρέψτε στους επισκέπτες να ελέγχουν τη λίστα αναπαραγωγής"
},
"set-permission": "Άδεια ελέγχου αλλαγής",
"status": {
"disconnected": "Αποσυνδεδεμένο",
"guest": "Συνδεδεμένος ως επισκέπτης",
"host": "Συνδεδεμένος ως οικοδεσπότης"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Απέτυχε η προσθήκη τραγουδιού",
"closed": "Το Music Together έκλεισε",
"disconnected": "Το Music Together αποσυνδέθηκε",
"host-failed": "Απέτυχε να φιλοξενήσει το Μουσική Μαζί",
"id-copied": "Το ID κεντρικού υπολογιστή αντιγράφηκε στο πρόχειρο",
"id-copy-failed": "Απέτυχε η αντιγραφή ID κεντρικού υπολογιστή στο πρόχειρο",
"join-failed": "Απέτυχε να ενταχθεί στη Μουσική Μαζί",
"joined": "Ενωμένη μουσική μαζί",
"permission-changed": "Η άδεια «Μουσική Μαζί» άλλαξε σε «{{permission}}»",
"remove-song-failed": "Απέτυχε η αφαίρεση τραγουδιού",
"user-connected": "{{name}} εντάχθηκε στη Μουσική Μαζί",
"user-disconnected": "{{name}} αριστερά Μουσική Μαζί"
}
},
"navigation": {
"description": "Βέλη πλοήγησης Επόμενο/Πίσω ενσωματωμένα απευθείας στο περιβάλλον εργασίας, όπως στο αγαπημένο σας πρόγραμμα περιήγησης",
"name": "Πλοήγηση",
"templates": {
"back": {
"title": "Μετάβαση στην προηγούμενη σελίδα"
},
"forward": {
"title": "Μετάβαση στην επόμενη σελίδα"
}
}
},
"no-google-login": {
"description": "Αφαίρεση των κουμπιών και των συνδέσμων σύνδεσης Google από το περιβάλλον εργασίας",
"name": "No Google Login"
},
"notifications": {
"description": "Εμφάνιση ειδοποίησης όταν ξεκινάει η αναπαραγωγή ενός τραγουδιού (οι διαδραστικές ειδοποιήσεις είναι διαθέσιμες στα Windows)",
"menu": {
"interactive": "Διαδραστικές ειδοποιήσεις",
"interactive-settings": {
"label": "Διαδραστικές ρυθμίσεις",
"submenu": {
"hide-button-text": "Απόκρυψη κειμένου κουμπιού",
"refresh-on-play-pause": "Ανανέωση σε Αναπαραγωγή/Παύση",
"tray-controls": "Άνοιγμα/κλείσιμο με κλικ στο δίσκο"
}
},
"priority": "Προτεραιότητα κοινοποίησης",
"toast-style": "Στυλ τοστ",
"unpause-notification": "Εμφάνιση ειδοποίησης κατά την κατάργηση της παύσης"
},
"name": "Ειδοποιήσεις"
},
"performance-improvement": {
"description": "Βελτιώστε την απόδοση ενεργοποιώντας πειραματικές δέσμες ενεργειών",
"name": "Βελτίωση της απόδοσης με την ενεργοποίηση επικίνδυνων σεναρίωνΒελτίωση της απόδοσης [Beta]"
},
"picture-in-picture": {
"description": "Επιτρέπει την εναλλαγή της εφαρμογής σε λειτουργία εικόνας σε εικόνα",
"menu": {
"always-on-top": "Πάντα σε πρώτο πλάνο",
"hotkey": {
"label": "Πλήκτρο πρόσβασης",
"prompt": {
"keybind-options": {
"hotkey": "Πλήκτρο πρόσβασης"
},
"label": "Επιλέξτε ένα πλήκτρο συντόμευσης για να ενεργοποιήσετε την εικόνα στην εικόνα",
"title": "Πλήκτρο Hotkey Εικόνα-σε-Εικόνα"
}
},
"save-window-position": "Αποθήκευση θέσης παραθύρου",
"save-window-size": "Αποθήκευση μεγέθους παραθύρου",
"use-native-pip": "Χρήση εγγενούς PiP του προγράμματος περιήγησης"
},
"name": "Εικόνα-στην-εικόνα",
"templates": {
"button": "Εικόνα-στην-εικόνα"
}
},
"playback-speed": {
"description": "Ακούστε γρήγορα, ακούστε αργά! Προσθέτει ένα ρυθμιστικό που ελέγχει την ταχύτητα του τραγουδιού",
"name": "Ταχύτητα αναπαραγωγής",
"templates": {
"button": "Ταχύτητα"
}
},
"precise-volume": {
"description": "Ελέγξτε την ένταση του ήχου με ακρίβεια χρησιμοποιώντας τον τροχό του ποντικιού/τα πλήκτρα, με ένα προσαρμοσμένο HUD και προσαρμόσιμα βήματα έντασης",
"menu": {
"arrows-shortcuts": "Τοπικά πλήκτρα βέλους Έλεγχοι",
"custom-volume-steps": "Ορισμός προσαρμοσμένων βημάτων έντασης ήχου",
"global-shortcuts": "Παγκόσμια πλήκτρα συντόμευσης"
},
"name": "Ακριβής Ήχος",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Μείωση έντασης",
"increase": "Αύξηση έντασης"
},
"label": "Επιλέξτε Παγκόσμια δέσμευση πλήκτρων έντασης ήχου:",
"title": "Επιλέξτε Παγκόσμια δέσμευση πλήκτρων έντασης ήχου"
},
"volume-steps": {
"label": "Επιλέξτε Βήματα αύξησης/μείωσης έντασης ήχου",
"title": "Βήματα έντασης"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Τρέχουσα ποιότητα: {{quality}}",
"message": "Επιλογή ποιότητας βίντεο:",
"title": "Επιλογή ποιότητας βίντεο"
}
}
},
"description": "Επιτρέπει την αλλαγή της ποιότητας βίντεο με ένα κουμπί στην επικάλυψη βίντεο",
"name": "Αλλαγή ποιότητας βίντεο",
"renderer": {
"quality-settings-button": {
"label": "Άνοιγμα ρυθμίσεων ποιότητας αναπαραγωγέα"
}
}
},
"scrobbler": {
"description": "Προσθήκη υποστήριξης scrobbling (κ.λπ. last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Απέτυχε η πιστοποίηση ταυτότητας στο Last.fm\nΚρύψτε το αναδυόμενο παράθυρο μέχρι την επόμενη επανεκκίνηση.",
"title": "Αποτυχία ελέγχου ταυτότητας"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Ρυθμίσεις API Last.fm"
},
"listenbrainz": {
"token": "Εισάγετε το διακριτικό χρήστη ListenBrainz"
},
"scrobble-alternative-title": "Χρήση εναλλακτικών τίτλων",
"scrobble-other-media": "Scrobble άλλα μέσα ενημέρωσης"
},
"name": "Σκρόμπλερ",
"prompt": {
"lastfm": {
"api-key": "Κλειδί API Last.fm",
"api-secret": "Μυστικό API του Last.fm"
},
"listenbrainz": {
"token": {
"label": "Εισάγετε το διακριτικό χρήστη ListenBrainz:",
"title": "Κουπόνι ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "Επιτρέπετε τον καθορισμό παγκόσμιων πλήκτρων άμεσης πρόσβασης για την παρακολούθηση (αναπαραγωγή/παύση/επόμενη/προηγούμενη) και την απενεργοποίηση του OSD πολυμέσων με παράκαμψη των πλήκτρων πολυμέσων, την ενεργοποίηση του Ctrl/CMD + F για αναζήτηση, την ενεργοποίηση της υποστήριξης Linux MPRIS για τα πλήκτρα πολυμέσων και προσαρμοσμένα πλήκτρα άμεσης πρόσβασης για προχωρημένους χρήστες",
"menu": {
"override-media-keys": "Παράκαμψη κλειδιών πολυμέσων",
"set-keybinds": "Ορισμός παγκόσμιων ελέγχων τραγουδιού"
},
"name": "Συντομεύσεις (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Επόμενο",
"play-pause": "Αναπαραγωγή / Παύση",
"previous": "Προηγούμενο"
},
"label": "Επιλέξτε Global Keybinds για το τραγούδι Έλεγχος:",
"title": "Παγκόσμια δέσμευση πλήκτρων"
}
}
},
"skip-disliked-songs": {
"description": "Παραλείπει τα αρεστά τραγούδια",
"name": "Παραλείψτε τα τραγούδια που δεν άρεσαν"
},
"skip-silences": {
"description": "Αυτόματη παράλειψη τμημάτων σιωπής σε τραγούδια",
"name": "Παραλείψτε τις σιωπές"
},
"sponsorblock": {
"description": "Παραλείπει αυτόματα μέρη που δεν είναι μουσικά, όπως intro/outro ή μέρη μουσικών βίντεο όπου δεν παίζεται το τραγούδι",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Παρέχει συγχρονισμένους στίχους σε τραγούδια, χρησιμοποιώντας παρόχους όπως η LRClib.",
"errors": {
"fetch": "⚠️ Προέκυψε σφάλμα κατά την ανάκτηση των στίχων.\n\tΠροσπαθήστε ξανά αργότερα.",
"not-found": "⚠️ Δεν βρέθηκαν στίχοι για αυτό το τραγούδι."
},
"menu": {
"default-text-string": {
"label": "Προεπιλεγμένος χαρακτήρας μεταξύ στίχων",
"tooltip": "Επιλέξτε τον προεπιλεγμένο χαρακτήρα που θα χρησιμοποιηθεί για το κενό μεταξύ των στίχων"
},
"line-effect": {
"label": "Επίδραση γραμμής",
"submenu": {
"fancy": {
"label": "Φανταχτερό",
"tooltip": "Χρήση μεγάλων εφέ που μοιάζουν με εφαρμογές στην τρέχουσα γραμμή"
},
"focus": {
"label": "Εστίαση",
"tooltip": "Κάντε μόνο την τρέχουσα γραμμή λευκή"
},
"offset": {
"label": "Μετατόπιση",
"tooltip": "Μετατόπιση προς τα δεξιά της τρέχουσας γραμμής"
},
"scale": {
"label": "Κλίμακα",
"tooltip": "Κλιμάκωση της τρέχουσας γραμμής"
}
},
"tooltip": "Επιλέξτε το εφέ που θα εφαρμοστεί στην τρέχουσα γραμμή"
},
"precise-timing": {
"label": "Κάντε τους στίχους τέλεια συγχρονισμένους",
"tooltip": "Υπολογίζει με ακρίβεια χιλιοστού του δευτερολέπτου την εμφάνιση της επόμενης γραμμής (μπορεί να έχει μικρή επίπτωση στην απόδοση)"
},
"romanization": {
"label": "Στίχοι Ρομαντικοποίηση",
"tooltip": "Αν οι στίχοι είναι σε διαφορετική γλώσσα, προσπαθήστε να εμφανίσετε μια λατινική έκδοση."
},
"show-lyrics-even-if-inexact": {
"label": "Εμφάνιση στίχων ακόμα και αν είναι ανακριβείς",
"tooltip": "Εάν το τραγούδι δεν βρεθεί, το πρόσθετο προσπαθεί ξανά με διαφορετικό ερώτημα αναζήτησης.\nΤο αποτέλεσμα της δεύτερης προσπάθειας μπορεί να μην είναι ακριβές."
},
"show-time-codes": {
"label": "Εμφάνιση κωδικών ώρας",
"tooltip": "Εμφάνιση των κωδικών ώρας δίπλα στους στίχους"
}
},
"name": "Συγχρονισμένοι στίχοι",
"refetch-btn": {
"fetching": "Φέρνοντας...",
"normal": "Στίχοι Refetch"
},
"warnings": {
"duration-mismatch": "⚠️ - Οι στίχοι ενδέχεται να μην είναι συγχρονισμένοι λόγω αναντιστοιχίας διάρκειας.",
"inexact": "⚠️ - Οι στίχοι για αυτό το τραγούδι μπορεί να μην είναι ακριβείς",
"instrumental": "⚠️ - Αυτό είναι ένα ορχηστρικό τραγούδι"
}
},
"taskbar-mediacontrol": {
"description": "Έλεγχος αναπαραγωγής από τη γραμμή εργασιών των Windows",
"name": "Έλεγχος μέσων γραμμής εργασιών"
},
"touchbar": {
"description": "Προσθέτει ένα γραφικό στοιχείο TouchBar για χρήστες macOS",
"name": "TouchBar"
},
"tuna-obs": {
"description": "Ενσωμάτωση με το plugin Tuna του OBS",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Αποτρέπει την εμφάνιση του προγράμματος αναπαραγωγής κατά την αναπαραγωγή ενός τραγουδιού",
"name": "Ανεπαίσθητος παίκτης"
},
"video-toggle": {
"description": "Προσθέτει ένα κουμπί για εναλλαγή μεταξύ της λειτουργίας βίντεο/τραγουδιού. μπορεί επίσης προαιρετικά να αφαιρέσει ολόκληρη την καρτέλα βίντεο",
"menu": {
"align": {
"label": "Στοίχιση",
"submenu": {
"left": "Αριστερά",
"middle": "Middle",
"right": "Δεξιά"
}
},
"force-hide": "Αναγκαστική αφαίρεση καρτέλας βίντεο",
"mode": {
"label": "Mode",
"submenu": {
"custom": "Προσαρμοσμένη εναλλαγή",
"disabled": "Απενεργοποιημένο",
"native": "Γηγενής εναλλαγή"
}
}
},
"name": "Εναλλαγή βίντεο",
"templates": {
"button-song": "Τραγούδι",
"button-video": "Βίντεο"
}
},
"visualizer": {
"description": "Προσθέτει έναν απεικονιστή στο πρόγραμμα αναπαραγωγής",
"menu": {
"visualizer-type": "Τύπος απεικονιστή"
},
"name": "Απεικονιστής"
}
}
}

View File

@ -1,951 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Failed to execute plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} executed at {{ms}}ms",
"initialize-failed": "Failed to initialize plugin \"{{pluginName}}\"",
"load-all": "Loading all plugins",
"load-failed": "Failed to load plugin \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" loaded",
"unload-failed": "Failed to unload plugin \"{{pluginName}}\"",
"unloaded": "Plugin \"{{pluginName}}\" unloaded"
}
}
},
"language": {
"code": "en",
"local-name": "English",
"name": "English"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Finished loading. DevTools opened"
},
"i18n": {
"loaded": "i18n loaded"
},
"second-instance": {
"receive-command": "Received command over protocol: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS file \"{{cssFile}}\" does not exist, ignoring"
},
"unresponsive": {
"details": "Unresponsive Error!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Clearing app cache"
},
"window": {
"tried-to-render-offscreen": "Window tried to render offscreen, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menu is hidden, use 'Alt' to show it (or 'Escape' if using In-App Menu)",
"message": "Hide Menu is enabled",
"title": "Hide Menu Enabled"
},
"need-to-restart": {
"buttons": {
"later": "Later",
"restart-now": "Restart Now"
},
"detail": "\"{{pluginName}}\" plugin requires a restart to take effect",
"message": "\"{{pluginName}}\" needs to restart",
"title": "Restart Required"
},
"unresponsive": {
"buttons": {
"quit": "Quit",
"relaunch": "Relaunch",
"wait": "Wait"
},
"detail": "We are sorry for the inconvenience! please choose what to do:",
"message": "The Application is Unresponsive",
"title": "Window Unresponsive"
},
"update-available": {
"buttons": {
"disable": "Disable Updates",
"download": "Download",
"ok": "OK"
},
"detail": "A new version is available and can be downloaded at {{downloadLink}}",
"message": "A new version is available",
"title": "Update Available"
}
},
"menu": {
"about": "About",
"navigation": {
"label": "Navigation",
"submenu": {
"copy-current-url": "Copy current URL",
"go-back": "Go back",
"go-forward": "Go forward",
"quit": "Exit",
"restart": "Restart App"
}
},
"options": {
"label": "Options",
"submenu": {
"advanced-options": {
"label": "Advanced options",
"submenu": {
"auto-reset-app-cache": "Reset app cache when app starts",
"disable-hardware-acceleration": "Disable hardware acceleration",
"edit-config-json": "Edit config.json",
"override-user-agent": "Override User-Agent",
"restart-on-config-changes": "Restart on config changes",
"set-proxy": {
"label": "Set proxy",
"prompt": {
"label": "Enter Proxy Address: (leave empty to disable)",
"placeholder": "Example: SOCKS5://127.0.0.1:9999",
"title": "Set proxy"
}
},
"toggle-dev-tools": "Toggle DevTools"
}
},
"always-on-top": "Always on top",
"auto-update": "Auto Update",
"hide-menu": {
"dialog": {
"message": "Menu will be hidden on next launch, use [Alt] to show it (or backtick [`] if using in-app-menu)",
"title": "Hide Menu Enabled"
},
"label": "Hide Menu"
},
"language": {
"dialog": {
"message": "Language will be changed after restart",
"title": "Language Changed"
},
"label": "Language",
"submenu": {
"to-help-translate": "Want to help translate? Click here"
}
},
"resume-on-start": "Resume last song when app starts",
"single-instance-lock": "Single Instance Lock",
"start-at-login": "Start at login",
"starting-page": {
"label": "Starting page",
"unset": "Unset"
},
"tray": {
"label": "Tray",
"submenu": {
"disabled": "Disabled",
"enabled-and-hide-app": "Enabled and hide app",
"enabled-and-show-app": "Enabled and show app",
"play-pause-on-click": "Play/Pause on click"
}
},
"visual-tweaks": {
"label": "Visual Tweaks",
"submenu": {
"like-buttons": {
"default": "Default",
"force-show": "Force show",
"hide": "Hide",
"label": "Like buttons"
},
"custom-window-title": {
"label": "Custom window title",
"prompt": {
"label": "Enter custom window title: (leave empty to disable)",
"placeholder": "Example: Pear Desktop"
}
},
"remove-upgrade-button": "Remove upgrade button",
"theme": {
"dialog": {
"button": {
"cancel": "Cancel",
"remove": "Remove"
},
"remove-theme": "Are you sure you want to remove the custom theme?",
"remove-theme-message": "This will remove the custom theme"
},
"label": "Theme",
"submenu": {
"import-css-file": "Import custom CSS file",
"no-theme": "No theme"
}
}
}
}
}
},
"plugins": {
"enabled": "Enabled",
"label": "Plugins",
"new": "NEW"
},
"view": {
"label": "View",
"submenu": {
"force-reload": "Force Reload",
"reload": "Reload",
"reset-zoom": "Actual Size",
"toggle-fullscreen": "Toggle Full Screen",
"zoom-in": "Zoom In",
"zoom-out": "Zoom Out"
}
}
},
"tray": {
"next": "Next",
"play-pause": "Play/Pause",
"previous": "Previous",
"quit": "Exit",
"restart": "Restart App",
"show": "Show window",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "If an ad play it mutes the audio and sets playback speed to 16x",
"name": "Ad Speedup"
},
"adblocker": {
"description": "Block all ads and tracking out of the box",
"menu": {
"blocker": "Blocker"
},
"name": "Ad Blocker"
},
"album-actions": {
"description": "Adds Undislike, Dislike, Like, and Unlike buttons to apply this to all songs in a playlist or album",
"name": "Album Actions"
},
"album-color-theme": {
"description": "Applies a dynamic theme and visual effects based on the album color palette",
"menu": {
"color-mix-ratio": {
"label": "Color mix ratio",
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Enable seekbar theming"
},
"name": "Album Color Theme"
},
"ambient-mode": {
"description": "Applies a lighting effect by casting gentle colors from the video, into your screens background",
"menu": {
"blur-amount": {
"label": "Blur amount",
"submenu": {
"pixels": "{{blurAmount}} pixels"
}
},
"buffer": {
"label": "Buffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Opacity",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Quality",
"submenu": {
"pixels": "{{quality}} pixels"
}
},
"size": {
"label": "Size",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Smoothness transition",
"submenu": {
"during": "During {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Using fullscreen"
}
},
"name": "Ambient Mode"
},
"amuse": {
"description": "Adds Pear Desktop support for the Amuse now playing widget by 6K Labs",
"name": "Amuse",
"response": {
"query": "Amuse API server is running. GET /query to get song info."
}
},
"api-server": {
"description": "Adds an API server to control the player",
"dialog": {
"request": {
"buttons": {
"allow": "Allow",
"deny": "Deny"
},
"message": "Allow {{ID}} ({{origin}}) to access the API?",
"title": "API authorization request"
}
},
"menu": {
"auth-strategy": {
"label": "Authorization strategy",
"submenu": {
"auth-at-first": {
"label": "Authorize at first request"
},
"none": {
"label": "No authorization"
}
}
},
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "API Server [Beta]",
"prompt": {
"hostname": {
"label": "Enter the hostname (like 0.0.0.0) for the API server:",
"title": "Hostname"
},
"port": {
"label": "Enter the port for the API server:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Apply compression to audio (lowers the volume of the loudest parts of the signal and raises the volume of the softest parts)",
"name": "Audio Compressor"
},
"auth-proxy-adapter": {
"description": "Support for the use of authentication proxy services",
"menu": {
"disable": "Disable Proxy Adapter",
"enable": "Enable Proxy Adapter",
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "Auth Proxy Adapter",
"prompt": {
"hostname": {
"title": "Proxy Hostname",
"label": "Enter hostname for local proxy server (requires restart):"
},
"port": {
"title": "Proxy Port",
"label": "Enter port for local proxy server (requires restart):"
}
}
},
"blur-nav-bar": {
"description": "Makes navigation bar transparent and blurry",
"name": "Blur Navigation Bar"
},
"bypass-age-restrictions": {
"description": "Bypass Music Player's age verification",
"name": "Bypass Age Restrictions"
},
"captions-selector": {
"description": "Caption selector for Pear Desktop audio tracks",
"menu": {
"autoload": "Automatically select last used caption",
"disable-captions": "No captions by default"
},
"name": "Captions Selector",
"prompt": {
"selector": {
"label": "Current caption language: {{language}}",
"none": "None",
"title": "Select caption language"
}
},
"templates": {
"title": "Open captions selector"
},
"toast": {
"caption-changed": "Caption changed to {{language}}",
"caption-disabled": "Captions disabled",
"no-captions": "No captions available for this song"
}
},
"compact-sidebar": {
"description": "Always set the sidebar in compact mode",
"name": "Compact Sidebar"
},
"crossfade": {
"description": "Crossfade between songs",
"menu": {
"advanced": "Advanced"
},
"name": "Crossfade [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Fade in duration (ms)",
"fade-out-duration": "Fade out duration (ms)",
"fade-scaling": {
"label": "Fade scaling",
"linear": "Linear",
"logarithmic": "Logarithmic"
},
"seconds-before-end": "Crossfade N seconds before end"
},
"title": "Crossfade options"
}
}
},
"custom-output-device": {
"description": "Configure a custom output media device for songs",
"menu": {
"device-selector": "Select Device"
},
"name": "Custom Output Device",
"prompt": {
"device-selector": {
"label": "Choose the output media device to be used",
"title": "Select Output Device"
}
}
},
"disable-autoplay": {
"description": "Makes song start in \"paused\" mode",
"menu": {
"apply-once": "Applies only on startup"
},
"name": "Disable Autoplay"
},
"discord": {
"backend": {
"already-connected": "Attempted to connect with active connection",
"connected": "Connected to Discord",
"disconnected": "Disconnected from Discord"
},
"description": "Show your friends what you listen to with Rich Presence",
"menu": {
"auto-reconnect": "Auto reconnect",
"clear-activity": "Clear activity",
"clear-activity-after-timeout": "Clear activity after timeout",
"connected": "Connected",
"disconnected": "Disconnected",
"hide-duration-left": "Hide duration left",
"hide-github-button": "Hide GitHub link Button",
"play-on-pear-desktop": "Play on Pear Desktop",
"set-inactivity-timeout": "Set inactivity timeout",
"set-status-display-type": {
"label": "Status text",
"submenu": {
"pear-desktop": "Listening to Pear Desktop",
"artist": "Listening to {artist}",
"title": "Listening to {song title}"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Enter inactivity timeout in seconds:",
"title": "Set inactivity timeout"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Argh! Apologies, download failed…",
"title": "Error in download!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} songs)",
"message": "Downloading Playlist {{playlistTitle}}",
"title": "Download started"
}
},
"feedback": {
"conversion-progress": "Conversion: {{percent}}%",
"converting": "Converting…",
"done": "Done: {{filePath}}",
"download-info": "Downloading {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Download: {{percent}}%",
"downloading": "Downloading…",
"downloading-counter": "Downloading {{current}}/{{total}}…",
"downloading-playlist": "Downloading playlist \"{{playlistTitle}}\" - {{playlistSize}} songs ({{playlistId}})",
"error-while-downloading": "Error downloading \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "The folder {{playlistFolder}} already exists",
"getting-playlist-info": "Getting playlist info…",
"loading": "Loading…",
"playlist-has-only-one-song": "Playlist has only one item, downloading it directly",
"playlist-id-not-found": "No playlist ID found",
"playlist-is-empty": "Playlist is empty",
"playlist-is-mix-or-private": "Error getting playlist info: make sure it isn't a private or \"Mixed for you\" playlist\n\n{{error}}",
"preparing-file": "Preparing file…",
"saving": "Saving…",
"trying-to-get-playlist-id": "Trying to get playlist ID: {{playlistId}}",
"video-id-not-found": "Video not found",
"writing-id3": "Writing ID3 tags…"
}
},
"description": "Downloads MP3 / source audio directly from the interface",
"menu": {
"choose-download-folder": "Choose download folder",
"download-finish-settings": {
"label": "Download on finish",
"prompt": {
"last-percent": "After x percent",
"last-seconds": "Last x seconds",
"title": "Configure when to download"
},
"submenu": {
"advanced": "Advanced",
"enabled": "Enabled",
"mode": "Time mode",
"percent": "Percent",
"seconds": "Seconds"
}
},
"download-playlist": "Download playlist",
"presets": "Presets",
"skip-existing": "Skip existing files"
},
"name": "Downloader",
"renderer": {
"can-not-update-progress": "Cannot update progress"
},
"templates": {
"button": "Download"
}
},
"equalizer": {
"description": "Adds an equalizer to the player",
"menu": {
"presets": {
"label": "Presets",
"list": {
"bass-booster": "Bass booster"
}
}
},
"name": "Equalizer"
},
"exponential-volume": {
"description": "Makes the volume slider exponential so it's easier to select lower volumes.",
"name": "Exponential Volume"
},
"in-app-menu": {
"description": "Gives menu-bars a fancy, dark or album-color look",
"menu": {
"hide-dom-window-controls": "Hide DOM window controls"
},
"name": "In-App Menu"
},
"lumiastream": {
"description": "Adds Lumia Stream support",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Adds lyrics support for most songs",
"menu": {
"romanized-lyrics": "Romanized Lyrics"
},
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Fetched lyrics for Genius"
}
},
"music-together": {
"description": "Share a playlist with others. When the host plays a song, everyone else will hear the same song",
"dialog": {
"enter-host": "Enter Host ID"
},
"internal": {
"save": "Save",
"track-source": "Track Source",
"unknown-user": "Unknown User"
},
"menu": {
"click-to-copy-id": "Copy Host ID",
"close": "Close Music Together",
"connected-users": "Connected Users",
"disconnect": "Disconnect Music Together",
"empty-user": "No connected users",
"host": "Music Together Host",
"join": "Join Music Together",
"permission": {
"all": "Allow guests to control playlist and player",
"host-only": "Only the host can control playlist and player",
"playlist": "Allow guests to control playlist"
},
"set-permission": "Change Control Permission",
"status": {
"disconnected": "Disconnected",
"guest": "Connected as Guest",
"host": "Connected as Host"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Failed to add song",
"closed": "Music Together closed",
"disconnected": "Music Together disconnected",
"host-failed": "Failed to host Music Together",
"id-copied": "Host ID copied to clipboard",
"id-copy-failed": "Failed to copy Host ID to clipboard",
"join-failed": "Failed to join Music Together",
"joined": "Joined Music Together",
"permission-changed": "Music Together permission changed to \"{{permission}}\"",
"remove-song-failed": "Failed to remove song",
"user-connected": "{{name}} joined Music Together",
"user-disconnected": "{{name}} left Music Together"
}
},
"navigation": {
"description": "Next/Back navigation arrows directly integrated in the interface, like in your favorite browser",
"name": "Navigation",
"templates": {
"back": {
"title": "Go to previous page"
},
"forward": {
"title": "Go to next page"
}
}
},
"no-google-login": {
"description": "Remove Google login buttons and links from the interface",
"name": "No Google Login"
},
"notifications": {
"description": "Display a notification when a song starts playing (interactive notifications are available on Windows)",
"menu": {
"interactive": "Interactive Notifications",
"interactive-settings": {
"label": "Interactive Settings",
"submenu": {
"hide-button-text": "Hide button text",
"refresh-on-play-pause": "Refresh on Play/Pause",
"tray-controls": "Open/Close on tray click"
}
},
"priority": "Notification Priority",
"toast-style": "Toast style",
"unpause-notification": "Show notification on unpause"
},
"name": "Notifications"
},
"performance-improvement": {
"description": "Improve performance by enabling experimental scripts",
"name": "Performance improvement [Beta]"
},
"picture-in-picture": {
"description": "Allows to switch the app to picture-in-picture mode",
"menu": {
"always-on-top": "Always on top",
"hotkey": {
"label": "Hotkey",
"prompt": {
"keybind-options": {
"hotkey": "Hotkey"
},
"label": "Choose a hotkey to toggle picture-in-picture",
"title": "Picture-in-picture Hotkey"
}
},
"save-window-position": "Save window position",
"save-window-size": "Save window size",
"use-native-pip": "Use browser native PiP"
},
"name": "Picture-in-picture",
"templates": {
"button": "Picture-in-picture"
}
},
"playback-speed": {
"description": "Listen fast, listen slow! Adds a slider that controls song speed",
"name": "Playback Speed",
"templates": {
"button": "Speed"
}
},
"precise-volume": {
"description": "Control the volume precisely using mousewheel/hotkeys, with a custom HUD and customizable volume steps",
"menu": {
"arrows-shortcuts": "Local Arrow-keys Controls",
"custom-volume-steps": "Set Custom Volume Steps",
"global-shortcuts": "Global Hotkeys"
},
"name": "Precise Volume",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Decrease Volume",
"increase": "Increase Volume"
},
"label": "Choose Global Volume Keybinds:",
"title": "Global Volume Keybinds"
},
"volume-steps": {
"label": "Choose Volume Increase/Decrease Steps",
"title": "Volume Steps"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Current Quality: {{quality}}",
"message": "Choose Video Quality:",
"title": "Choose Video Quality"
}
}
},
"description": "Allows changing the video quality with a button on the video overlay",
"name": "Video Quality Changer",
"renderer": {
"quality-settings-button": {
"label": "Open player quality changer"
}
}
},
"scrobbler": {
"description": "Add scrobbling support (etc. last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Failed to authenticate with Last.fm\nHide the popup until the next restart.",
"title": "Authentication Failed"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API Settings"
},
"listenbrainz": {
"token": "Enter ListenBrainz user token"
},
"scrobble-alternative-title": "Use alternative titles",
"scrobble-alternative-artist": "Use alternative artists",
"scrobble-other-media": "Scrobble other media"
},
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Last.fm API key",
"api-secret": "Last.fm API secret"
},
"listenbrainz": {
"token": {
"label": "Enter your ListenBrainz user token:",
"title": "ListenBrainz token"
}
}
}
},
"shortcuts": {
"description": "Allows setting global hotkeys for playback (play/pause/next/previous) and turning off media OSD by overriding media keys, turning on Ctrl/CMD + F to search, turning on Linux MPRIS support for media keys, and custom hotkeys for advanced users",
"menu": {
"override-media-keys": "Override Media Keys",
"set-keybinds": "Set Global Song Controls"
},
"name": "Shortcuts (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Next",
"play-pause": "Play / Pause",
"previous": "Previous"
},
"label": "Choose Global Keybinds for Songs Control:",
"title": "Global Keybinds"
}
}
},
"skip-disliked-songs": {
"description": "Skips disliked songs",
"name": "Skip Disliked Songs"
},
"skip-silences": {
"description": "Automatically skip silences sections in songs",
"name": "Skip Silences"
},
"sponsorblock": {
"description": "Automatically Skips non-music parts like intro/outro or parts of music videos where the song isn't playing",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Provides synced lyrics to songs, using providers like LRClib.",
"errors": {
"fetch": "⚠️\tAn error occurred while fetching the lyrics.\n\tPlease try again later.",
"not-found": "⚠️ No lyrics found for this song."
},
"menu": {
"preferred-provider": {
"label": "Preferred Provider",
"tooltip": "Choose the default provider to use",
"none": {
"label": "None",
"tooltip": "No preferred provider"
}
},
"default-text-string": {
"label": "Default character between lyrics",
"tooltip": "Choose the default character to use for the gap between lyrics"
},
"line-effect": {
"label": "Line effect",
"submenu": {
"fancy": {
"label": "Fancy",
"tooltip": "Use large, app-like effects on the current line"
},
"focus": {
"label": "Focus",
"tooltip": "Make only the current line white"
},
"offset": {
"label": "Offset",
"tooltip": "Offset on the right the current line"
},
"scale": {
"label": "Scale",
"tooltip": "Scale the current line"
}
},
"tooltip": "Choose the effect to apply to the current line"
},
"precise-timing": {
"label": "Make the lyrics perfectly synced",
"tooltip": "Calculate to the milisecond the display of the next line (can have a small impact on performance)"
},
"romanization": {
"label": "Romanize lyrics",
"tooltip": "If the lyrics are in a different language, try to display a latin version."
},
"show-lyrics-even-if-inexact": {
"label": "Show lyrics even if inexact",
"tooltip": "If the song is not found, the plugin tries again with a different search query.\nThe result from the second attempt may not be exact."
},
"show-time-codes": {
"label": "Show time codes",
"tooltip": "Show the time codes next to the lyrics"
}
},
"name": "Synced Lyrics",
"refetch-btn": {
"fetching": "Fetching...",
"normal": "Refetch lyrics"
},
"warnings": {
"duration-mismatch": "⚠️ - The lyrics may be out of sync due to a duration mismatch.",
"inexact": "⚠️ - The lyrics for this song may not be exact",
"instrumental": "⚠️ - This is an instrumental song"
}
},
"taskbar-mediacontrol": {
"description": "Control playback from your Windows taskbar",
"name": "Taskbar Media Control"
},
"touchbar": {
"description": "Adds a TouchBar widget for macOS users",
"name": "TouchBar"
},
"transparent-player": {
"description": "Makes the app window transparent",
"name": "Transparent Player",
"menu": {
"opacity": {
"label": "Opacity",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Type",
"submenu": {
"acrylic": "Acrylic",
"mica": "Mica",
"tabbed": "Tabbed",
"none": "None"
}
}
}
},
"tuna-obs": {
"description": "Integration with OBS's plugin Tuna",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Prevents the player from popping up when playing a song",
"name": "Unobtrusive Player"
},
"video-toggle": {
"description": "Adds a button to switch between Video/Song mode. can also optionally remove the whole video tab",
"menu": {
"align": {
"label": "Alignment",
"submenu": {
"left": "Left",
"middle": "Middle",
"right": "Right"
}
},
"force-hide": "Force remove video tab",
"mode": {
"label": "Mode",
"submenu": {
"custom": "Custom toggle",
"disabled": "Disabled",
"native": "Native toggle"
}
}
},
"name": "Video Toggle",
"templates": {
"button-song": "Song",
"button-video": "Video"
}
},
"visualizer": {
"description": "Adds a visualizer to the player",
"menu": {
"visualizer-type": "Visualizer Type"
},
"name": "Visualizer"
}
}
}

View File

@ -1,950 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Error al ejecutar el complemento {{pluginName}}::{{contextName}}",
"executed-at-ms": "Complemento {{pluginName}}::{{contextName}} Ejecutó en {{ms}}ms",
"initialize-failed": "Error al inicializar el complemento \"{{pluginName}}\"",
"load-all": "Cargando todos los complementos",
"load-failed": "Error al cargar el complemento \"{{pluginName}}\"",
"loaded": "Complementos \"{{pluginName}}\" cargado",
"unload-failed": "No se ha podido descargar el complemento \"{{pluginName}}\"",
"unloaded": "Complemento \"{{pluginName}}\" descargado"
}
}
},
"language": {
"code": "es",
"local-name": "Español",
"name": "Spanish"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Carga finalizada. DevTools abierto"
},
"i18n": {
"loaded": "i18n cargado"
},
"second-instance": {
"receive-command": "Comando recibido sobre el protocolo: \"{{command}}\""
},
"theme": {
"css-file-not-found": "El archivo CSS \"{{cssFile}}\" no existe, ignorando"
},
"unresponsive": {
"details": "¡Error sin repuesta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Borrando caché de la aplicación"
},
"window": {
"tried-to-render-offscreen": "La ventana intentó mostrarse fuera de la pantalla, windowSize={{windowSize}}, displaySize={{displaySize}}, posicion={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "El menú está oculto, utiliza \"Alt\" para mostrarlo (o \"Escape\" si utilizas el menú integrado en la aplicación)",
"message": "El \"Menú Oculto\" está habilitado",
"title": "\"Menú oculto\" habilitado"
},
"need-to-restart": {
"buttons": {
"later": "Más tarde",
"restart-now": "Reiniciar ahora"
},
"detail": "El complemento \"{{pluginName}}\" requiere reiniciar para tomar efecto",
"message": "\"{{pluginName}}\" necesita reiniciar",
"title": "Se requiere reinicio"
},
"unresponsive": {
"buttons": {
"quit": "Salir",
"relaunch": "Volver a abrir",
"wait": "Espera"
},
"detail": "Sentimos las molestias. Por favor, elija qué hacer:",
"message": "La aplicación no responde",
"title": "La ventana no responde"
},
"update-available": {
"buttons": {
"disable": "Desactivar actualizaciones",
"download": "Descargar",
"ok": "OK"
},
"detail": "Una nueva versión está disponible y puede descargarse en {{downloadLink}}",
"message": "Hay una nueva versión disponible",
"title": "Actualización disponible"
}
},
"menu": {
"about": "Acerca de",
"navigation": {
"label": "Navegación",
"submenu": {
"copy-current-url": "Copiar la URL actual",
"go-back": "Atrás",
"go-forward": "Adelante",
"quit": "Salir",
"restart": "Reiniciar la aplicación"
}
},
"options": {
"label": "Opciones",
"submenu": {
"advanced-options": {
"label": "Opciones avanzadas",
"submenu": {
"auto-reset-app-cache": "Restablecer la caché de la aplicación al iniciarla",
"disable-hardware-acceleration": "Desactivar la aceleración por hardware",
"edit-config-json": "Editar config.json",
"override-user-agent": "Sobrescribir User-Agent",
"restart-on-config-changes": "Reiniciar al modificar la configuración",
"set-proxy": {
"label": "Establecer proxy",
"prompt": {
"label": "Introduzca la dirección del proxy: (déjela vacía para desactivarla)",
"placeholder": "Ejemplo: SOCKS5://127.0.0.1:9999",
"title": "Establecer proxy"
}
},
"toggle-dev-tools": "Activar DevTools"
}
},
"always-on-top": "Siempre al frente",
"auto-update": "Actualización automática",
"hide-menu": {
"dialog": {
"message": "El menú se ocultará la próxima vez que inicies la aplicación, usa [Alt] para mostrarlo (o pulsa [`] si usas el menú dentro de la aplicación)",
"title": "Menú oculto habilitado"
},
"label": "Ocultar menú"
},
"language": {
"dialog": {
"message": "El idioma se cambiará después de reiniciar",
"title": "Se cambió el idioma"
},
"label": "Idioma",
"submenu": {
"to-help-translate": "¿Quieres ayudar a traducir? Haz clic aquí"
}
},
"resume-on-start": "Reanudar la última canción reproducida al iniciar la aplicación",
"single-instance-lock": "Limitar a una única instancia",
"start-at-login": "Iniciar al iniciar sesión",
"starting-page": {
"label": "Página de inicio",
"unset": "Sin configurar"
},
"tray": {
"label": "Bandeja",
"submenu": {
"disabled": "Desactivado",
"enabled-and-hide-app": "Habilitado y ocultar la aplicación",
"enabled-and-show-app": "Habilitado y mostrar aplicación",
"play-pause-on-click": "Reproducir/Pausar al hacer clic"
}
},
"visual-tweaks": {
"label": "Ajustes visuales",
"submenu": {
"custom-window-title": {
"label": "Título de ventana personalizado",
"prompt": {
"label": "Ingresa un título de ventana personalizado: (déjalo vacío para desactivar)",
"placeholder": "Ejemplo: Pear Desktop"
}
},
"like-buttons": {
"default": "Predeterminado",
"force-show": "Forzar la visualización",
"hide": "Ocultar",
"label": "Botones de \"Me Gusta\""
},
"remove-upgrade-button": "Eliminar el botón de Actualización",
"theme": {
"dialog": {
"button": {
"cancel": "Cancelar",
"remove": "Quitar"
},
"remove-theme": "¿Estás seguro de que quieres eliminar el tema personalizado?",
"remove-theme-message": "Esto eliminará el tema personalizado"
},
"label": "Tema",
"submenu": {
"import-css-file": "Importar archivo CSS personalizado",
"no-theme": "Sin temas"
}
}
}
}
}
},
"plugins": {
"enabled": "Habilitado",
"label": "Complementos",
"new": "NUEVO"
},
"view": {
"label": "Ver",
"submenu": {
"force-reload": "Forzar la recarga",
"reload": "Recargar",
"reset-zoom": "Tamaño actual",
"toggle-fullscreen": "Alternar pantalla completa",
"zoom-in": "Acercar",
"zoom-out": "Alejar"
}
}
},
"tray": {
"next": "Siguiente",
"play-pause": "Reproducir/Pausar",
"previous": "Anterior",
"quit": "Salir",
"restart": "Reiniciar la aplicación",
"show": "Mostrar ventana",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Si se reproduce un anuncio, silencia el audio y fija la velocidad de reproducción en 16x",
"name": "Aumento de la velocidad de anuncios"
},
"adblocker": {
"description": "Bloquear todos los anuncios y el rastreo por defecto",
"menu": {
"blocker": "Bloqueador"
},
"name": "Bloqueador de anuncios"
},
"album-actions": {
"description": "Añade los botones \"Quitar no me gusta\", \"No me gusta\", \"Me gusta\" y \"Quitar me gusta\" para aplicarlos a todas las canciones de una lista de reproducción o un álbum",
"name": "Acciones en el álbum"
},
"album-color-theme": {
"description": "Aplica un tema dinámico y efectos visuales basados en la paleta de colores del álbum",
"menu": {
"color-mix-ratio": {
"label": "Proporción de la mezcla de colores",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Tema de color del álbum"
},
"ambient-mode": {
"description": "Aplica un efecto de iluminación mediante la proyección de colores suaves extraídos del vídeo sobre el fondo de pantalla",
"menu": {
"blur-amount": {
"label": "Cantidad de desenfoque",
"submenu": {
"pixels": "{{blurAmount}} píxeles"
}
},
"buffer": {
"label": "Buffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Opacidad",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Calidad",
"submenu": {
"pixels": "{{quality}} píxeles"
}
},
"size": {
"label": "Tamaño",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Transición suave",
"submenu": {
"during": "Durante {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Usando Pantalla Completa"
}
},
"name": "Modo ambiente"
},
"amuse": {
"description": "Agrega soporte a Pear Desktop para el widget \"reproduciendo\" de Amuse por 6K Labs",
"name": "Amuse",
"response": {
"query": "El servidor API de Amuse se está ejecutando. Usa GET /query para obtener información de la canción."
}
},
"api-server": {
"description": "Añade un servidor API para controlar el reproductor",
"dialog": {
"request": {
"buttons": {
"allow": "Permitir",
"deny": "Denegar"
},
"message": "¿Permitir que {{ID}} ({{origin}}) acceda a la API?",
"title": "Petición de autorización API"
}
},
"menu": {
"auth-strategy": {
"label": "Estrategia de autorización",
"submenu": {
"auth-at-first": {
"label": "Autorizar a la primera solicitud"
},
"none": {
"label": "Sin autorización"
}
}
},
"hostname": {
"label": "Nombre del host"
},
"port": {
"label": "Puerto"
}
},
"name": "Servidor API [Beta]",
"prompt": {
"hostname": {
"label": "Introduzca el nombre de host (como 0.0.0.0) para el servidor API:",
"title": "Nombre de host"
},
"port": {
"label": "Introduzca el puerto para el servidor API:",
"title": "Puerto"
}
}
},
"audio-compressor": {
"description": "Aplicar compresión al audio (reduce la diferencia entre las partes más fuertes y más suaves de una pista para que tenga un nivel más consistente)",
"name": "Compresor de audio"
},
"auth-proxy-adapter": {
"description": "Soporte para el uso de servicios de proxy de autenticación",
"menu": {
"disable": "Deshabilitar el adaptador proxy",
"enable": "Habilitar el adaptador proxy",
"hostname": {
"label": "Nombre de host"
},
"port": {
"label": "Puerto"
}
},
"name": "Adaptador de proxy de autenticación",
"prompt": {
"hostname": {
"label": "Ingrese el nombre de host del servidor proxy local (requiere reinicio):",
"title": "Nombre de host del proxy"
},
"port": {
"label": "Ingrese el puerto para el servidor de proxy local (requiere reinicio):",
"title": "Puerto de proxy"
}
}
},
"blur-nav-bar": {
"description": "Hace que la barra de navegación se vea transparente y borrosa",
"name": "Desenfocar barra de navegación"
},
"bypass-age-restrictions": {
"description": "Saltarse la verificación de edad de Music Player",
"name": "Saltarse las restricciones de edad"
},
"captions-selector": {
"description": "Selector de subtítulos para pistas de audio de Pear Desktop",
"menu": {
"autoload": "Seleccionar automáticamente el último subtítulo utilizado",
"disable-captions": "Sin subtítulos por defecto"
},
"name": "Selector de subtítulos",
"prompt": {
"selector": {
"label": "Idioma actual de los subtítulos: {{language}}",
"none": "Ninguno",
"title": "Seleccionar idioma de los subtítulos"
}
},
"templates": {
"title": "Abrir el selector de subtítulos"
},
"toast": {
"caption-changed": "Subtítulos cambiados a {{language}}",
"caption-disabled": "Subtítulos desactivados",
"no-captions": "Sin subtítulos para ésta canción"
}
},
"compact-sidebar": {
"description": "Establecer siempre la barra lateral en modo compacto",
"name": "Barra lateral compacta"
},
"crossfade": {
"description": "Crossfade entre canciones",
"menu": {
"advanced": "Avanzado"
},
"name": "Crossfade [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Duración del fundido de entrada (ms)",
"fade-out-duration": "Duración del fundido de salida (ms)",
"fade-scaling": {
"label": "Escala del fundido",
"linear": "Lineal",
"logarithmic": "Logarítmico"
},
"seconds-before-end": "Activar Crossfade N segundos antes del final"
},
"title": "Opciones de Crossfade"
}
}
},
"custom-output-device": {
"description": "Configura un dispositivo de salida de audio personalizado para las canciones",
"menu": {
"device-selector": "Seleccionar un dispositivo"
},
"name": "Dispositivo de audio personalizado",
"prompt": {
"device-selector": {
"label": "Escoge el dispositivo de salida de audio que se va a usar",
"title": "Seleccionar un dispositivo de audio"
}
}
},
"disable-autoplay": {
"description": "Hace que la canción comience en modo \"pausado\"",
"menu": {
"apply-once": "Sólo se aplica al inicio"
},
"name": "Desactivar reproducción automática"
},
"discord": {
"backend": {
"already-connected": "Se intentó conectar con una conexión activa",
"connected": "Conectado a Discord",
"disconnected": "Desconectado de Discord"
},
"description": "Muestra a tus amigos lo que escuchas con Rich Presence",
"menu": {
"auto-reconnect": "Reconectar automáticamente",
"clear-activity": "Borrar actividad",
"clear-activity-after-timeout": "Borrar actividad después de un tiempo",
"connected": "Conectado",
"disconnected": "Desconectado",
"hide-duration-left": "Ocultar la duración restante",
"hide-github-button": "Ocultar el botón de enlace a GitHub",
"play-on-pear-desktop": "Reproducir en Pear Desktop",
"set-inactivity-timeout": "Establecer tiempo de inactividad",
"set-status-display-type": {
"label": "Texto de estado",
"submenu": {
"artist": "Escuchando a {artist}",
"title": "Escuchando {song title}",
"pear-desktop": "Escuchando Pear Desktop"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Introduzca el tiempo de inactividad en segundos:",
"title": "Establecer tiempo de inactividad"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "¡Argh! Lo siento, la descarga falló…",
"title": "¡Error en la descarga!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} canciones)",
"message": "Descargando lista de reproducción {{playlistTitle}}",
"title": "Descarga iniciada"
}
},
"feedback": {
"conversion-progress": "Conversión: {{percent}}%",
"converting": "Convirtiendo…",
"done": "Listo: {{filePath}}",
"download-info": "Descargando {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Descarga: {{percent}}%",
"downloading": "Descargando…",
"downloading-counter": "Descargando {{current}}/{{total}}…",
"downloading-playlist": "Descargando lista de reproducción \"{{playlistTitle}}\" - {{playlistSize}} canciones ({{playlistId}})",
"error-while-downloading": "Error al descargar \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "La carpeta {{playlistFolder}} ya existe",
"getting-playlist-info": "Obteniendo información de la lista de reproducción…",
"loading": "Cargando…",
"playlist-has-only-one-song": "La lista de reproducción sólo tiene un elemento, descargándolo directamente",
"playlist-id-not-found": "No se ha encontrado la ID de la lista de reproducción",
"playlist-is-empty": "La lista de reproducción está vacía",
"playlist-is-mix-or-private": "Error obteniendo la información de la lista de reproducción: asegúrese de que no es una lista privada o \"Mixed for you\"\n\n{{error}}",
"preparing-file": "Preparando archivo…",
"saving": "Guardando…",
"trying-to-get-playlist-id": "Intentando obtener la ID de la lista de reproducción: {{playlistId}}",
"video-id-not-found": "Video no encontrado",
"writing-id3": "Escribiendo las etiquetas ID3…"
}
},
"description": "Descarga audio MP3 / fuente directamente desde la interfaz",
"menu": {
"choose-download-folder": "Elija la carpeta de descarga",
"download-finish-settings": {
"label": "Descargar al finalizar",
"prompt": {
"last-percent": "Después de x porcentaje",
"last-seconds": "Últimos x segundos",
"title": "Configurar cuándo descargar"
},
"submenu": {
"advanced": "Avanzado",
"enabled": "Habilitado",
"mode": "Modo de tiempo",
"percent": "Porcentaje",
"seconds": "Segundos"
}
},
"download-playlist": "Descargar lista de reproducción",
"presets": "Ajustes preestablecidos",
"skip-existing": "Saltar archivos existentes"
},
"name": "Gestor de descargas",
"renderer": {
"can-not-update-progress": "No se puede actualizar el progreso"
},
"templates": {
"button": "Descargar"
}
},
"equalizer": {
"description": "Añade un ecualizador al reproductor",
"menu": {
"presets": {
"label": "Ajustes preestablecidos",
"list": {
"bass-booster": "Amplificador de graves"
}
}
},
"name": "Ecualizador"
},
"exponential-volume": {
"description": "Hace que la barra de volumen sea exponencial para que sea más fácil seleccionar volúmenes más bajos.",
"name": "Volumen exponencial"
},
"in-app-menu": {
"description": "Da a las barras de menú un aspecto elegante, oscuro o del color de un álbum",
"menu": {
"hide-dom-window-controls": "Ocultar controles de ventana DOM"
},
"name": "Menú de aplicación"
},
"lumiastream": {
"description": "Agrega soporte para Lumia Stream",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Añade soporte para letras para la mayoría de las canciones",
"menu": {
"romanized-lyrics": "Letras Romanizadas"
},
"name": "Letras Genius",
"renderer": {
"fetched-lyrics": "Letras obtenidas de Genius"
}
},
"music-together": {
"description": "Comparte una lista de reproducción con los demás. Cuando el anfitrión reproduzca una canción, todos los demás escucharán la misma",
"dialog": {
"enter-host": "Introduzca la ID del host"
},
"internal": {
"save": "Guardar",
"track-source": "Fuente de la pista",
"unknown-user": "Usuario desconocido"
},
"menu": {
"click-to-copy-id": "Copiar la ID del host",
"close": "Cerrar Music Together",
"connected-users": "Usuarios conectados",
"disconnect": "Desactivar Music Together",
"empty-user": "No hay usuarios conectados",
"host": "Host de Music Together",
"join": "Únase a Music Together",
"permission": {
"all": "Permite a los invitados controlar la lista de reproducción y el reproductor",
"host-only": "Sólo el anfitrión puede controlar la lista de reproducción y el reproductor",
"playlist": "Permitir que los invitados controlen la lista de reproducción"
},
"set-permission": "Permiso de control de cambios",
"status": {
"disconnected": "Desconectado",
"guest": "Conectado como invitado",
"host": "Conectado como anfitrión"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "No se puede añadir la canción",
"closed": "Music Together cerrado",
"disconnected": "Music Together desconectado",
"host-failed": "Fallo al hostear Music Together",
"id-copied": "ID del host copiada al portapapeles",
"id-copy-failed": "No se ha podido copiar la ID del host al portapapeles",
"join-failed": "Fallo al unirse a Music Together",
"joined": "Unido a Music Together",
"permission-changed": "Permiso de Music Together cambiado a \"{{permission}}\"",
"remove-song-failed": "Error al eliminar la canción",
"user-connected": "{{name}} se unió a Music Together",
"user-disconnected": "{{name}} dejó Music Together"
}
},
"navigation": {
"description": "Flechas de navegación Siguiente/Atrás directamente integradas en la interfaz, como en tu navegador favorito",
"name": "Navegación",
"templates": {
"back": {
"title": "Volver a la página anterior"
},
"forward": {
"title": "Ir a la siguiente página"
}
}
},
"no-google-login": {
"description": "Eliminar los botones y enlaces de inicio de sesión de Google de la interfaz",
"name": "Sin inicio de sesión de Google"
},
"notifications": {
"description": "Mostrar una notificación cuando empiece a sonar una canción (las notificaciones interactivas están disponibles en Windows)",
"menu": {
"interactive": "Notificaciones interactivas",
"interactive-settings": {
"label": "Ajustes interactivos",
"submenu": {
"hide-button-text": "Ocultar el texto del botón",
"refresh-on-play-pause": "Actualizar al reproducir/pausar",
"tray-controls": "Abrir/Cerrar al hacer clic en la bandeja"
}
},
"priority": "Prioridad de notificación",
"toast-style": "Estilo de mensaje emergente",
"unpause-notification": "Mostrar notificación al reanudar"
},
"name": "Notificaciones"
},
"performance-improvement": {
"description": "Mejore el rendimiento habilitando scripts experimentales",
"name": "Mejora del rendimiento [Beta]"
},
"picture-in-picture": {
"description": "Permite cambiar la aplicación al modo picture-in-picture",
"menu": {
"always-on-top": "Siempre encima",
"hotkey": {
"label": "Tecla de acceso rápido",
"prompt": {
"keybind-options": {
"hotkey": "Tecla de acceso rápido"
},
"label": "Elige una tecla de acceso rápido para activar la función picture-in-picture",
"title": "Tecla de acceso directo a picture-in-picture"
}
},
"save-window-position": "Guardar la posición de la ventana",
"save-window-size": "Guardar tamaño de la ventana",
"use-native-pip": "Utilizar PiP nativo del navegador"
},
"name": "Picture-in-picture",
"templates": {
"button": "Picture-in-picture"
}
},
"playback-speed": {
"description": "Escucha rápido, escucha despacio! Añade un control deslizante que ajusta la velocidad de la canción",
"name": "Velocidad de reproducción",
"templates": {
"button": "Velocidad"
}
},
"precise-volume": {
"description": "Controla el volumen de manera precisa utilizando la rueda del ratón/teclas de acceso rápido, con una interfaz personalizada y niveles de volumen personalizables",
"menu": {
"arrows-shortcuts": "Controles de teclas de flechas locales",
"custom-volume-steps": "Establecer niveles de volumen personalizados",
"global-shortcuts": "Teclas de acceso rápido globales"
},
"name": "Volumen preciso",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Disminuir el volumen",
"increase": "Aumentar el volumen"
},
"label": "Elija combinaciones de teclas para el volumen:",
"title": "Combinaciones de teclas para el volumen"
},
"volume-steps": {
"label": "Escoge los niveles de aumento o disminución del volumen",
"title": "Niveles de volumen"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Calidad actual: {{quality}}",
"message": "Elija la calidad de vídeo:",
"title": "Elija la calidad de vídeo"
}
}
},
"description": "Permite cambiar la calidad del vídeo con un botón sobre puesto en el vídeo",
"name": "Ajustador de calidad de vídeo",
"renderer": {
"quality-settings-button": {
"label": "Abrir selector de calidad del reproductor"
}
}
},
"scrobbler": {
"description": "Añadir soporte para scrobbling (last.fm, Listenbrainz, etc.)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Error al autenticar con Last.fm\nOcultar la ventana emergente hasta el próximo reinicio.",
"title": "Error de autenticación"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Ajustes de la API de Last.fm"
},
"listenbrainz": {
"token": "Introduzca el token de usuario de ListenBrainz"
},
"scrobble-alternative-artist": "Usar artistas alternativos",
"scrobble-alternative-title": "Usar títulos alternativos",
"scrobble-other-media": "Hacer Scrobble sobre otros medios"
},
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Clave de la API de Last.fm",
"api-secret": "Clave secreta de la API de Last.fm"
},
"listenbrainz": {
"token": {
"label": "Introduzca su token de usuario de ListenBrainz:",
"title": "Token de ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "Permite configurar teclas de acceso rápido globales para la reproducción (reproducir/pausa/siguiente/anterior) y desactivar el OSD multimedia anulando las teclas multimedia, activar Ctrl/CMD + F para buscar, activar la compatibilidad con MPRIS de Linux para las teclas multimedia y teclas de acceso rápido personalizadas para usuarios avanzados",
"menu": {
"override-media-keys": "Anular teclas de medios",
"set-keybinds": "Configurar controles globales de canciones"
},
"name": "Atajos (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Siguiente",
"play-pause": "Reproducir / Pausa",
"previous": "Anterior"
},
"label": "Elija combinaciones de teclas para el control de las canciones:",
"title": "Atajos de teclado globales"
}
}
},
"skip-disliked-songs": {
"description": "Omite las canciones que no le gustan",
"name": "Saltar canciones que no me gustan"
},
"skip-silences": {
"description": "Salta automáticamente las secciones silenciosas de las canciones",
"name": "Saltar silencios"
},
"sponsorblock": {
"description": "Salta automáticamente las partes no musicales como la introducción/final o secciones de videos musicales donde la canción no está sonando",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Proporciona letras de canciones sincronizadas, utilizando proveedores como LRClib.",
"errors": {
"fetch": "⚠️\tSe produjo un error al obtener la letra.\n\tPor favor, inténtelo de nuevo más tarde.",
"not-found": "⚠️ No se han encontrado letras para esta canción."
},
"menu": {
"default-text-string": {
"label": "Carácter predeterminado entre letras",
"tooltip": "Elige el carácter predeterminado que se utilizará para el espacio entre letras"
},
"line-effect": {
"label": "Efecto de la línea",
"submenu": {
"fancy": {
"label": "Elegante",
"tooltip": "Usar efectos grandes, similares a los de una aplicación, en la línea actual"
},
"focus": {
"label": "Enfoque",
"tooltip": "Mostrar solo la línea actual en blanco"
},
"offset": {
"label": "Desplazamiento",
"tooltip": "Desplazamiento a la derecha de la línea actual"
},
"scale": {
"label": "Escala",
"tooltip": "Escalar la línea actual"
}
},
"tooltip": "Elige el efecto que deseas aplicar a la línea actual"
},
"precise-timing": {
"label": "Haz que la letra esté perfectamente sincronizada",
"tooltip": "Calcular al milisegundo la visualización de la siguiente línea (puede tener un pequeño impacto en el rendimiento)"
},
"preferred-provider": {
"label": "Proveedor preferido",
"none": {
"label": "Ninguno",
"tooltip": "Ningún proveedor preferido"
},
"tooltip": "Elige el proveedor predeterminado que deseas usar"
},
"romanization": {
"label": "Romanizar letras",
"tooltip": "Si la letra está en un idioma diferente, intenta mostrar una versión en latín."
},
"show-lyrics-even-if-inexact": {
"label": "Mostrar la letra aunque sea inexacta",
"tooltip": "Si no se encuentra la canción, el plugin vuelve a intentarlo con una búsqueda diferente.\nEl resultado del segundo intento puede no ser exacto."
},
"show-time-codes": {
"label": "Visualización del código de tiempo",
"tooltip": "Mostrar los códigos de tiempo junto a la letra"
}
},
"name": "Letras sincronizadas",
"refetch-btn": {
"fetching": "Obteniendo...",
"normal": "Volver a buscar letras"
},
"warnings": {
"duration-mismatch": "⚠️ - La letra puede estar desincronizada debido a un desajuste en la duración.",
"inexact": "⚠️ - La letra de esta canción puede no ser exacta",
"instrumental": "⚠️ - Esta es una canción instrumental"
}
},
"taskbar-mediacontrol": {
"description": "Controla la reproducción desde la barra de tareas de Windows",
"name": "Control de medios desde la barra de tareas"
},
"touchbar": {
"description": "Añade un widget TouchBar para los usuarios de macOS",
"name": "TouchBar"
},
"transparent-player": {
"description": "Hace que la ventana de la aplicación sea transparente",
"menu": {
"opacity": {
"label": "Opacidad",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Tipo",
"submenu": {
"acrylic": "Acrílico",
"mica": "Mica",
"none": "Ninguno",
"tabbed": "Con pestañas"
}
}
},
"name": "Reproductor transparente"
},
"tuna-obs": {
"description": "Integración con el complemento Tuna de OBS",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Evita que el reproductor aparezca al reproducir una canción",
"name": "Reproductor discreto"
},
"video-toggle": {
"description": "Añade un botón para cambiar entre el modo Vídeo/Canción. También puede eliminar opcionalmente toda la pestaña de vídeo",
"menu": {
"align": {
"label": "Alineación",
"submenu": {
"left": "Izquierda",
"middle": "Centro",
"right": "Derecha"
}
},
"force-hide": "Forzar eliminación de la pestaña de vídeo",
"mode": {
"label": "Modo",
"submenu": {
"custom": "Alternador personalizado",
"disabled": "Desactivado",
"native": "Alternador nativo"
}
}
},
"name": "Alternador de vídeo",
"templates": {
"button-song": "Canción",
"button-video": "Vídeo"
}
},
"visualizer": {
"description": "Añadir un visualizador al reproductor",
"menu": {
"visualizer-type": "Tipo de visualizador"
},
"name": "Visualizador"
}
}
}

View File

@ -1,347 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "{{pluginName}}::{{contextName}} lisamooduli käivitamine ei õnnestunud",
"executed-at-ms": "{{pluginName}}::{{contextName}} lisamoodul käivitus {{ms}} millisekundiga",
"initialize-failed": "„{{pluginName}}“ lisamooduli töö alustamine ei õnnestunud",
"load-all": "Laadime kõiki lisamooduleid",
"load-failed": "„{{pluginName}}“ lisamooduli laadimine ei õnnestunud",
"loaded": "„{{pluginName}}“ lisamoodul on laaditud",
"unload-failed": "„{{pluginName}}“ lisamooduli mälust eemaldamine ei õnnestunud",
"unloaded": "„{{pluginName}}“ lisamoodul on mälust eemaldatud"
}
}
},
"language": {
"code": "et",
"local-name": "Eesti",
"name": "Estonian"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Laadimine lõppes, arendaja tarvikud on avatud"
},
"i18n": {
"loaded": "i18n on laaditud"
},
"second-instance": {
"receive-command": "„{{command}}“ käsk on vastu võetud"
},
"theme": {
"css-file-not-found": "CSS faili „{{cssFile}}“ pole olemas, seega eirame eelistust"
},
"unresponsive": {
"details": "Tõrge ei vasta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Programmi vahemälu kustutamine"
},
"window": {
"tried-to-render-offscreen": "Akent prooviti renderdada väljaspool ekraani, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menüü on peidetud ja „Alt“ klahviga saad ta nähtavaks (rakenduse-siseses menüüs „Esc“ klahviga)",
"message": "Menüü peitmine on sisselülitatud",
"title": "Menüü peitmine on sisselülitatud"
},
"need-to-restart": {
"buttons": {
"later": "Hiljem",
"restart-now": "Taaskäivita kohe"
},
"detail": "„{{pluginName}}“ lisamooduli sisselülitamine eeldab rakenduse taaskäivitamist",
"message": "„{{pluginName}}“ lisamoodul eeldab rakenduse taaskäivitamist",
"title": "Palun käivita rakendus uuesti"
},
"unresponsive": {
"buttons": {
"quit": "Välju",
"relaunch": "Käivita uuesti",
"wait": "Oota"
},
"detail": "Vabandame ebamugavuste pärast! Palun vali kuidas jätkata:",
"message": "Rakendus ei vasta ega reageeri",
"title": "Aken ei vasta ega reageeri"
},
"update-available": {
"buttons": {
"disable": "Lülita uuendused välja",
"download": "Laadi alla",
"ok": "Sobib"
},
"detail": "Saadaval on uus versioon, ning seda saad alla laadida siit {{downloadLink}}",
"message": "Uus versioon on saadaval",
"title": "Rakenduse uuendus on saadaval"
}
},
"menu": {
"about": "Rakenduse teave",
"navigation": {
"label": "Liikumine",
"submenu": {
"copy-current-url": "Kopeeri esitamisel oleva pala URL",
"go-back": "Mine tagasi",
"go-forward": "Mine edasi",
"quit": "Välju",
"restart": "Käivita rakendus uuesti"
}
},
"options": {
"label": "Seadistused",
"submenu": {
"advanced-options": {
"label": "Lisaseadistused",
"submenu": {
"auto-reset-app-cache": "Rakenduse käivitamisel lähtesta puhverdatud andmed",
"disable-hardware-acceleration": "Lülita raudvaraline kiirendamine välja",
"edit-config-json": "Muuda config.json faili",
"override-user-agent": "Jõudlusta User-Agent",
"restart-on-config-changes": "Taaskäivita pärast konfiguratsiooni muutmist",
"set-proxy": {
"label": "Määra proxy",
"prompt": {
"label": "Sisesta proxy aadress: (jäta täitmata, et välja lülitada)",
"placeholder": "Näide: SOCKS5://127.0.0.1:9999",
"title": "Määra proxy"
}
},
"toggle-dev-tools": "Lülita sisse arendaja tööriistad"
}
},
"always-on-top": "Alati esiplaanil",
"auto-update": "Automaatsed uuendused",
"hide-menu": {
"dialog": {
"message": "Järgmisel käivitamisel jääb menüü peidetuks, kasutage [Alt] klahvi, et näidata (või [`], kui kasutate rakendusesisest menüüd)",
"title": "Menüü peitmine on sisse lülitatud"
},
"label": "Peida menüü"
},
"language": {
"dialog": {
"message": "Keele muutmine jõustub peale uuesti käivitamist",
"title": "Keel on muutunud"
},
"label": "Keel",
"submenu": {
"to-help-translate": "Soovid aidata tõlkimisel? Klõpsi siin"
}
},
"resume-on-start": "Rakenduse käivitamisel jätka viimatiesitatud loo esitamist",
"single-instance-lock": "Ühe instantsi lukk",
"start-at-login": "Käivita sisselogimisel",
"starting-page": {
"label": "Avaleht",
"unset": "Määramata"
},
"tray": {
"label": "Trey",
"submenu": {
"disabled": "Välja lülitatud",
"enabled-and-hide-app": "Sisse lülitatud ja rakendus peidetud",
"enabled-and-show-app": "Sisse lülitatud ja rakendus nähtav",
"play-pause-on-click": "Mängi/Peata klõpsates"
}
},
"visual-tweaks": {
"label": "Visuaalsed muudatused",
"submenu": {
"custom-window-title": {
"label": "Kohandatud akna tiitel",
"prompt": {
"label": "Sisesta kohandatud akna tiitel: (jäta täitmata, et välja lülitada)",
"placeholder": "Näide: Pear Desktop"
}
},
"like-buttons": {
"default": "Vaikimisi",
"force-show": "Sunni näitama",
"hide": "Peida",
"label": "Meeldib nupud"
},
"remove-upgrade-button": "Eemalda upgrade nupp",
"theme": {
"dialog": {
"button": {
"cancel": "Katkesta",
"remove": "Eemalda"
},
"remove-theme": "Kas oled kindel, et soovid enda loodud kujunduse eemaldada?",
"remove-theme-message": "Sellega saab sinu loodud kujundus eemdladatud"
},
"label": "Kujundus",
"submenu": {
"import-css-file": "Impordi kohandatud CSS fail",
"no-theme": "Ilma kujunduseta"
}
}
}
}
}
},
"plugins": {
"enabled": "Kasutusel",
"label": "Lisamoodulid",
"new": "UUS"
},
"view": {
"label": "Vaata",
"submenu": {
"force-reload": "Laadi sundkorras uuesti",
"reload": "Laadi uuesti",
"reset-zoom": "Tegelik suurus",
"toggle-fullscreen": "Lülita täisekraanivaade sisse/välja",
"zoom-in": "Suumi sisse",
"zoom-out": "Suumi välja"
}
}
},
"tray": {
"next": "Edasi",
"play-pause": "Esita/Peata esitus",
"previous": "Eelmine",
"quit": "Välju",
"restart": "Käivita rakendus uuesti",
"show": "Näita akent",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Reklaami esitamisel summutatakse heli ja keritakse edasi 16-kordse kiirusega",
"name": "Reklaamikiirendaja"
},
"adblocker": {
"description": "Blokeeri kõik reklaamid ja jälitajad",
"menu": {
"blocker": "Blokeerijad"
},
"name": "Reklaamiblokeerija"
},
"album-actions": {
"description": "Lisab Undislike, Ebameeldiv, Meeldiv ja Unlike nupud selle rakendamiseks kõikidele loendisse või albumisse kuuluvatele lauludele.",
"name": "Albumi aktsioonid"
},
"album-color-theme": {
"description": "Rakendab dünaamilist teemat ja visuaalseid efekte, mis põhinevad albumi värvipalettil",
"menu": {
"color-mix-ratio": {
"label": "Värvide segamissuhe",
"submenu": {
"percent": "{{suhe}}%"
}
}
},
"name": "Albumi värviteema"
},
"ambient-mode": {
"description": "Rakendab valgusefekti, projitseerides videost õrnad värvid ekraani taustale",
"menu": {
"blur-amount": {
"label": "Hägusus"
},
"opacity": {
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Kvaliteet",
"submenu": {
"pixels": "{{quality}} pikslit"
}
},
"size": {
"label": "Suurus",
"submenu": {
"percent": "{{size}}%"
}
}
}
},
"blur-nav-bar": {
"description": "Muudab navigatsiooniriba läbipaistavaks ja hägusaks",
"name": "Hägus navigatsiooniriba"
},
"lyrics-genius": {
"description": "Lisa enamustele lugudele laulusõnad",
"menu": {
"romanized-lyrics": "Latiniseeritud laulusõnad"
},
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Leidsime Geeniuse jaoks ühed laulusõnad"
}
},
"navigation": {
"name": "Liikumine"
},
"no-google-login": {
"description": "Eemalda kasutajaliidesest Google'i sisselogimisnupud",
"name": "Elu ilma Google'i sisselogimiseta"
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Praegune kvaliteet: {{quality}}",
"message": "Vali video kvaliteet:",
"title": "Videokvaliteedi valik"
}
}
},
"description": "Võimaldab muuta video kvaliteeti nupust, mis asub video ülekattes",
"name": "Videokvaliteedi muutja"
},
"scrobbler": {
"description": "Lisa kraasimise tugi (last.fm, Listenbrainz, jne)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Last.fm'i autentimine ei õnnestunud\nPeida hüpikaken järgmise taaskäivituseni.",
"title": "Autentimine ei õnnestunud"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API seadistused"
},
"listenbrainz": {
"token": "Sisesta ListenBrainz'i kasutaja tunnusluba"
},
"scrobble-other-media": "Kraasi muud meediat"
},
"name": "Kraasija",
"prompt": {
"lastfm": {
"api-key": "Last.fm API võti",
"api-secret": "Last.fm API saladus"
},
"listenbrainz": {
"token": {
"label": "Sisesta oma ListenBrainz'i tunnusluba:",
"title": "ListenBrainz'i tunnusluba"
}
}
}
},
"synced-lyrics": {
"menu": {
"show-lyrics-even-if-inexact": {
"tooltip": "Kui lugu ei leidu, siis lisamoodul üritab uut otsingut teistsuguse päringuga.\nTeise katse puhul tulemused ei pruugi olla väga täpsed."
}
}
},
"tuna-obs": {
"description": "Lõimimine OBSi Tuna lisamooduliga"
}
}
}

View File

@ -1,7 +0,0 @@
{
"language": {
"code": "eu",
"local-name": "Euskara",
"name": "Basque"
}
}

View File

@ -1,950 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "اجراى {{اسمزمىنه}}::{{اسمپلاگىن}} با خطا مواجه شد",
"executed-at-ms": "افزونه {{pluginName}}::{{contextName}} در {{ms}} میلی‌ثانیه اجرا شد",
"initialize-failed": "افزونه \"{{pluginName}}\" با خطا در حین مقداردهی اولیه مواجه شد",
"load-all": "در حال بارگذاری تمامی افزونه‌ها",
"load-failed": "افزونه \"{{pluginName}}\" بارگیری نشد",
"loaded": "افزونه \"{{pluginName}}\" بارگیری شد",
"unload-failed": "افزونه \"{{pluginName}}\" بارگذاری نشد",
"unloaded": "افزونه \"{{pluginName}}\" بارگذاری شد"
}
}
},
"language": {
"code": "fa",
"local-name": "فارسی",
"name": "Persian"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "بارگذاری کامل شد. DevTools باز شد"
},
"i18n": {
"loaded": "i18n بارگذاری شد"
},
"second-instance": {
"receive-command": "دریافت فرمان از طریق پروتکل: \"{{command}}\""
},
"theme": {
"css-file-not-found": "فایل CSS \"{{cssFile}}\" وجود ندارد، نادیده گرفته شد"
},
"unresponsive": {
"details": "خطای عدم پاسخگویی!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "پاکسازی حافظه کش برنامه"
},
"window": {
"tried-to-render-offscreen": "پنجره تلاش کرد خارج از صفحه نمایش داده شود، اندازه پنجره={{windowSize}}، اندازه نمایشگر={{displaySize}}، موقعیت={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "منو مخفی است، از 'Alt' برای نمایش آن استفاده کنید (یا 'Escape' اگر از منوی داخل برنامه استفاده می‌کنید)",
"message": "پنهان‌سازی منو فعال است",
"title": "پنهان کردن منو فعال شد"
},
"need-to-restart": {
"buttons": {
"later": "بعداً",
"restart-now": "هم‌اکنون راه‌اندازی مجدد کنید"
},
"detail": "افزونه \"{{pluginName}}\" برای اعمال تغییرات نیاز به راه‌اندازی مجدد دارد",
"message": "\"{{pluginName}}\" نیاز به راه‌اندازی مجدد دارد",
"title": "نیاز به راه‌اندازی مجدد"
},
"unresponsive": {
"buttons": {
"quit": "خروج",
"relaunch": "راه‌اندازی مجدد",
"wait": "منتظر بمانید"
},
"detail": "از بابت این مشکل متأسفیم! لطفاً انتخاب کنید که چه کاری انجام دهید:",
"message": "برنامه پاسخی نمی‌دهد",
"title": "پنجره بدون پاسخ"
},
"update-available": {
"buttons": {
"disable": "غیرفعال کردن به‌روزرسانی‌ها",
"download": "دانلود",
"ok": "تأیید"
},
"detail": "نسخه جدیدی در دسترس است و می‌توان آن را از {{downloadLink}} دانلود کرد",
"message": "نسخه جدیدی در دسترس است",
"title": "به‌روزرسانی موجود است"
}
},
"menu": {
"about": "درباره",
"navigation": {
"label": "کنترل‌های رابط",
"submenu": {
"copy-current-url": "کپی کردن لینک صفحه فعلی",
"go-back": "صفحه قبل",
"go-forward": "صفحه بعدی",
"quit": "خروج از برنامه",
"restart": "راه‌اندازی مجدد برنامه"
}
},
"options": {
"label": "گزینه‌ها",
"submenu": {
"advanced-options": {
"label": "گزینه‌های پیشرفته",
"submenu": {
"auto-reset-app-cache": "ریست کردن حافظه کش برنامه هنگام شروع",
"disable-hardware-acceleration": "غیرفعال کردن شتاب سخت‌افزاری",
"edit-config-json": "config.json ویرایش",
"override-user-agent": "User-Agent تغییر",
"restart-on-config-changes": "راه‌اندازی مجدد در صورت تغییرات در پیکربندی",
"set-proxy": {
"label": "تنظیم پراکسی",
"prompt": {
"label": "آدرس پراکسی را وارد کنید: (برای غیرفعال کردن، خالی بگذارید)",
"placeholder": "مثال: SOCKS5://127.0.0.1:9999",
"title": "تنظیم پراکسی"
}
},
"toggle-dev-tools": "DevTools باز کردن"
}
},
"always-on-top": "همیشه در بالا",
"auto-update": "به‌روزرسانی خودکار",
"hide-menu": {
"dialog": {
"message": "منو در اجرای بعدی مخفی خواهد بود، از [Alt] برای نمایش استفاده کنید (یا [`] اگر از منوی داخل برنامه استفاده می‌کنید)",
"title": "پنهان‌سازی منو فعال شد"
},
"label": "پنهان کردن منو"
},
"language": {
"dialog": {
"message": "زبان پس از راه‌اندازی مجدد تغییر خواهد کرد",
"title": "زبان تغییر کرد"
},
"label": "زبان",
"submenu": {
"to-help-translate": "می‌خواهید به ترجمه کمک کنید؟ اینجا کلیک کنید"
}
},
"resume-on-start": "ادامه آخرین آهنگ هنگام شروع برنامه",
"single-instance-lock": "قفل تنها یک نمونه",
"start-at-login": "شروع هنگام ورود",
"starting-page": {
"label": "صفحه شروع",
"unset": "لغو تنظیم"
},
"tray": {
"label": "نوار",
"submenu": {
"disabled": "غیرفعال",
"enabled-and-hide-app": "فعال و پنهان کردن برنامه",
"enabled-and-show-app": "فعال و نمایش برنامه",
"play-pause-on-click": "پخش/توقف با کلیک"
}
},
"visual-tweaks": {
"label": "تغییرات ظاهری",
"submenu": {
"custom-window-title": {
"label": "عنوان پنجره سفارشى",
"prompt": {
"label": "عنوان پنجره سفارشى را وارد کنىد: (خالى بزارىد تا غىرفعال شود)",
"placeholder": "مثال :Pear Desktop"
}
},
"like-buttons": {
"default": "پیش‌فرض",
"force-show": "اجبار به نمایش",
"hide": "پنهان کردن",
"label": "دکمه‌های پسندیدن"
},
"remove-upgrade-button": "حذف دکمه ارتقا",
"theme": {
"dialog": {
"button": {
"cancel": "لغو",
"remove": "حذف"
},
"remove-theme": "آیا مطمئن هستید که می‌خواهید تم سفارشی را حذف کنید؟",
"remove-theme-message": "این کار تم سفارشی را حذف خواهد کرد"
},
"label": "تم",
"submenu": {
"import-css-file": "سفارشی CSS وارد کردن فایل",
"no-theme": "بدون تم"
}
}
}
}
}
},
"plugins": {
"enabled": "فعال/غیرفعال کردن",
"label": "افزونه‌ها",
"new": "جدید"
},
"view": {
"label": "مشاهده",
"submenu": {
"force-reload": "اجبار به بارگذاری مجدد",
"reload": "بارگذاری مجدد",
"reset-zoom": "اندازه واقعی",
"toggle-fullscreen": "تغییر به تمام‌ صفحه",
"zoom-in": "بزرگنمایی",
"zoom-out": "کوچکنمایی"
}
}
},
"tray": {
"next": "بعدی",
"play-pause": "پخش/توقف",
"previous": "قبلی",
"quit": "خروج",
"restart": "راه‌اندازی مجدد برنامه",
"show": "نمایش پنجره",
"tooltip": {
"default": "پىر دسکتاپ",
"with-song-info": "پىر دسکتاپ: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "اگر تبلیغ پخش شود، صدا را بی‌صدا کرده و سرعت پخش را به 16 برابر افزایش می‌دهد",
"name": "سرعت‌دهی به تبلیغ"
},
"adblocker": {
"description": "مسدود کردن تمامی تبلیغات و ردیابی‌ها از ابتدا",
"menu": {
"blocker": "مسدودکننده"
},
"name": "مسدودکننده تبلیغات"
},
"album-actions": {
"description": "اضافه کردن دکمه‌های عدم پسندیدن، پسندیدن و لغو پسندیدن برای اعمال این تغییرات به تمامی آهنگ‌های یک فهرست پخش یا آلبوم",
"name": "عملیات آلبوم"
},
"album-color-theme": {
"description": "اعمال یک تم پویا و جلوه‌های بصری بر اساس پالت رنگ آلبوم",
"menu": {
"color-mix-ratio": {
"label": "نسبت ترکیب رنگ",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "تم رنگ آلبوم"
},
"ambient-mode": {
"description": "اعمال یک اثر نوری با پخش رنگ‌های ملایم از ویدئو به پس‌زمینه صفحه نمایش شما",
"menu": {
"blur-amount": {
"label": "میزان تاری",
"submenu": {
"pixels": "{{blurAmount}} پیکسل"
}
},
"buffer": {
"label": "بافر",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "شفافیت",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "کیفیت",
"submenu": {
"pixels": "{{quality}} پیکسل"
}
},
"size": {
"label": "اندازه",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "انتقال نرمی",
"submenu": {
"during": "در طول {{interpolationTime}} ثانیه"
}
},
"use-fullscreen": {
"label": "استفاده از تمام‌صفحه"
}
},
"name": "حالت محیطی"
},
"amuse": {
"description": "حالا ویجت Amuse از Pear Desktop هم پشتیبانی می‌کنه! (توسط 6K Labs)",
"name": "Amuse",
"response": {
"query": "سرور Amuse فعال است. برای دریافت اطلاعات آهنگ، از آدرس /query استفاده کنید."
}
},
"api-server": {
"description": "برای کنترل پخش‌کننده API افزودن یک سرور",
"dialog": {
"request": {
"buttons": {
"allow": "اجازه",
"deny": "رد کردن"
},
"message": "اجازه دادن به {{ID}} ({{origin}}) برای دسترسی به API؟",
"title": "درخواست مجوز API"
}
},
"menu": {
"auth-strategy": {
"label": "استراتژی مجوز",
"submenu": {
"auth-at-first": {
"label": "مجوز در اولین درخواست"
},
"none": {
"label": "بدون نیاز به مجوز"
}
}
},
"hostname": {
"label": "نام میزبان"
},
"port": {
"label": "پورت"
}
},
"name": "[بتا]API سرور",
"prompt": {
"hostname": {
"label": "وارد کنید (مثل 0.0.0.0): API نام میزبان را برای سرور",
"title": "نام میزبان"
},
"port": {
"label": "وارد کنید: API پورت را برای سرور",
"title": "پورت"
}
}
},
"audio-compressor": {
"description": "اعمال فشرده‌سازی به صدا (کاهش حجم بلندترین بخش‌های سیگنال و افزایش حجم بخش‌های نرم‌تر)",
"name": "فشرده‌ساز صدا"
},
"auth-proxy-adapter": {
"description": "پشتیبانی برای استفاده از سرویس‌های پروکسی احراز هویت",
"menu": {
"disable": "غیرفعال کردن آداپتور پروکسی",
"enable": "فعال کردن آداپتور پروکسی",
"hostname": {
"label": "نام میزبان"
},
"port": {
"label": "پورت"
}
},
"name": "آداپتور پروکسی احراز هویت",
"prompt": {
"hostname": {
"label": "نام میزبان را برای سرور پروکسی محلی وارد کنید (نیاز به راه اندازی مجدد دارد):",
"title": "پروکسی نام میزبان"
},
"port": {
"label": "پورت مربوط به پروکسی سرور محلی را وارد کنید(نیاز به راه اندازی مجدد دارد):",
"title": "پورت پروکسی"
}
}
},
"blur-nav-bar": {
"description": "شفاف و محو کردن نوار کنترل",
"name": "محو کردن نوار کنترل"
},
"bypass-age-restrictions": {
"description": "دور زدن تأیید سن مىوزىک پلىر",
"name": "دور زدن محدودیت‌های سنی"
},
"captions-selector": {
"description": "انتخاب زیرنویس برای آهنگ‌های پىر دسکتاپ",
"menu": {
"autoload": "به طور خودکار انتخاب آخرین زیرنویس استفاده شده",
"disable-captions": "بدون زیرنویس به صورت پیش‌فرض"
},
"name": "انتخاب‌کننده زیرنویس",
"prompt": {
"selector": {
"label": "زبان زیرنویس فعلی: {{language}}",
"none": "هیچ‌کدام",
"title": "انتخاب زبان زیرنویس"
}
},
"templates": {
"title": "باز کردن انتخاب‌کننده زیرنویس"
},
"toast": {
"caption-changed": "زیرنویس تغییر کرد به {{language}}",
"caption-disabled": "زیرنویس غیرفعال شده",
"no-captions": "برای این آهنگ زیرنویسی موجود نیست"
}
},
"compact-sidebar": {
"description": "همیشه نوار کناری را در حالت فشرده تنظیم کن",
"name": "نوار کناری فشرده"
},
"crossfade": {
"description": "تداخل بین آهنگ‌ها",
"menu": {
"advanced": "پیشرفته"
},
"name": "تداخل [بتا]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "مدت زمان ورود تدریجی (میلی‌ثانیه)",
"fade-out-duration": "مدت زمان خروج تدریجی (میلی‌ثانیه)",
"fade-scaling": {
"label": "مقیاس‌بندی ورود تدریجی",
"linear": "خطی",
"logarithmic": "لگاریتمی"
},
"seconds-before-end": "تداخل N ثانیه قبل از پایان"
},
"title": "گزینه‌های تداخل"
}
}
},
"custom-output-device": {
"description": "ىک اسپىکر براى پخش آهنگها انتخاب کنىد",
"menu": {
"device-selector": "دستگاه را انتخاب کنىد"
},
"name": "اسپىکر دلخواه",
"prompt": {
"device-selector": {
"label": "اسپىکر دلخواه را انتخاب کنىد",
"title": "اسپىکر دلخواهتان را انتخاب کنىد"
}
}
},
"disable-autoplay": {
"description": "شروع آهنگ در حالت \"توقف\"",
"menu": {
"apply-once": "فقط در شروع اعمال می‌شود"
},
"name": "غیرفعال کردن پخش خودکار"
},
"discord": {
"backend": {
"already-connected": "تلاش برای برقراری ارتباط با اتصال فعال",
"connected": "متصل به دیسکورد",
"disconnected": "ارتباط با دیسکورد قطع شد"
},
"description": "Rich Presence نمایش آنچه گوش می‌دهید به دوستان با",
"menu": {
"auto-reconnect": "اتصال خودکار",
"clear-activity": "پاک کردن فعالیت",
"clear-activity-after-timeout": "حذف فعالیت پس از اتمام زمان تعیین‌شده",
"connected": "اتصال برقرار شد",
"disconnected": "اتصال قطع شد",
"hide-duration-left": "مخفی کردن مدت زمان باقی‌مانده",
"hide-github-button": "مخفی کردن دکمه لینک گیت هاب",
"play-on-pear-desktop": "پخش در یوتیوب موزیک",
"set-inactivity-timeout": "تنظیم زمان عدم فعالیت",
"set-status-display-type": {
"label": "متن وضعىت",
"submenu": {
"artist": "به {artist} گوش مىکند",
"pear-desktop": "به پىر دسکتاپ گوش مىکند",
"title": "به {song title} گوش مىکند"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "محدودیت زمان عدم فعالیت را به ثانیه وارد کنید:",
"title": "تنظیم زمان عدم فعالیت"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "تأیید"
},
"message": "اوه! متاسفیم، دانلود شکست خورد…",
"title": "خطا در دانلود!"
},
"start-download-playlist": {
"buttons": {
"ok": "تأیید"
},
"detail": "({{playlistSize}} آهنگ)",
"message": "دانلود فهرست پخش {{playlistTitle}}",
"title": "دانلود شروع شد"
}
},
"feedback": {
"conversion-progress": "تبدیل: {{percent}}%",
"converting": "در حال تبدیل…",
"done": "انجام شد: {{filePath}}",
"download-info": "در حال دانلود {{artist}} - {{title}} [{{videoId}}",
"download-progress": "دانلود: {{percent}}%",
"downloading": "در حال دانلود…",
"downloading-counter": "در حال دانلود {{current}}/{{total}}…",
"downloading-playlist": "در حال دانلود فهرست پخش \"{{playlistTitle}}\" - {{playlistSize}} آهنگ ({{playlistId}})",
"error-while-downloading": "خطا در دانلود \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "پوشه {{playlistFolder}} از قبل وجود دارد",
"getting-playlist-info": "در حال دریافت اطلاعات فهرست پخش…",
"loading": "در حال بارگذاری…",
"playlist-has-only-one-song": "فهرست پخش فقط یک آیتم دارد، به طور مستقیم دانلود می‌شود",
"playlist-id-not-found": "شناسه فهرست پخش یافت نشد",
"playlist-is-empty": "فهرست پخش خالی است",
"playlist-is-mix-or-private": "خطا در دریافت اطلاعات فهرست پخش: اطمینان حاصل کنید که فهرست پخش خصوصی یا \"مختص شما\" نباشد\n\n{{error}}",
"preparing-file": "در حال آماده‌سازی فایل…",
"saving": "در حال ذخیره‌سازی…",
"trying-to-get-playlist-id": "تلاش برای دریافت شناسه فهرست پخش: {{playlistId}}",
"video-id-not-found": "ویدئو یافت نشد",
"writing-id3": "در حال نوشتن تگ‌های ID3…"
}
},
"description": "دانلود MP3 / صدای منبع به طور مستقیم از رابط",
"menu": {
"choose-download-folder": "انتخاب پوشه دانلود",
"download-finish-settings": {
"label": "دانلود پس از پایان",
"prompt": {
"last-percent": "پس از x درصد",
"last-seconds": "آخرین x ثانیه",
"title": "پیکربندی زمان دانلود"
},
"submenu": {
"advanced": "پیشرفته",
"enabled": "فعال",
"mode": "حالت زمان",
"percent": "درصد",
"seconds": "ثانیه"
}
},
"download-playlist": "دانلود فهرست پخش",
"presets": "پیش‌تنظیم‌ها",
"skip-existing": "رد کردن فایل‌های موجود"
},
"name": "دانلودر",
"renderer": {
"can-not-update-progress": "امکان به‌روزرسانی پیشرفت نیست"
},
"templates": {
"button": "دانلود"
}
},
"equalizer": {
"description": "اضافه کردن یک اکولایزر به پخش‌کننده",
"menu": {
"presets": {
"label": "تنظیمات از پیش تعیین شده",
"list": {
"bass-booster": "تقویت‌کننده باس صدا"
}
}
},
"name": "اکولایزر"
},
"exponential-volume": {
"description": "نوار لغزنده حجم را به صورت نمایی می‌سازد تا انتخاب حجم‌های پایین‌تر آسان‌تر شود.",
"name": "حجم نمایی"
},
"in-app-menu": {
"description": "منوها را به صورت جذاب، تاریک یا با رنگ آلبوم نمایش می‌دهد",
"menu": {
"hide-dom-window-controls": "کنترل‌های پنجره DOM را مخفی کن"
},
"name": "منوی داخل برنامه"
},
"lumiastream": {
"description": "Lumia Stream افزودن پشتیبانی از",
"name": "Lumia Stream [بتا]"
},
"lyrics-genius": {
"description": "افزودن متن ترانه پشتیبان برای اکثر ترانه ها",
"menu": {
"romanized-lyrics": "الفبای لاتین برای آهنگ‌هایی با الفبای شرقی (فینگلیش)"
},
"name": "Genius متن آهنگ",
"renderer": {
"fetched-lyrics": "بازیابی شد Genius متن ترانه توسط"
}
},
"music-together": {
"description": "اشتراک‌گذاری فهرست پخش با دیگران. وقتی میزبان آهنگی را پخش می‌کند، همه بقیه همان آهنگ را می‌شنوند",
"dialog": {
"enter-host": "شناسه میزبان را وارد کنید"
},
"internal": {
"save": "ذخیره",
"track-source": "منبع آهنگ",
"unknown-user": "کاربر ناشناس"
},
"menu": {
"click-to-copy-id": "کپی کردن شناسه میزبان",
"close": "بستن Music Together",
"connected-users": "کاربران متصل",
"disconnect": "قطع اتصال Music Together",
"empty-user": "هیچ کاربر متصلی وجود ندارد",
"host": "میزبان Music Together",
"join": "پیوستن به Music Together",
"permission": {
"all": "اجازه دادن به مهمانان برای کنترل فهرست پخش و پخش‌کننده",
"host-only": "فقط میزبان می‌تواند فهرست پخش و پخش‌کننده را کنترل کند",
"playlist": "اجازه دادن به مهمانان برای کنترل فهرست پخش"
},
"set-permission": "تغییر مجوز کنترل",
"status": {
"disconnected": "قطع اتصال",
"guest": "متصل به عنوان مهمان",
"host": "متصل به عنوان میزبان"
}
},
"name": "Music Together [بتا]",
"toast": {
"add-song-failed": "افزودن آهنگ با شکست مواجه شد",
"closed": "بسته شد Music Together",
"disconnected": "Music Together قطع اتصال",
"host-failed": "با شکست مواجه شد Music Together میزبانی",
"id-copied": "شناسه میزبان به کلیپ‌بورد کپی شد",
"id-copy-failed": "کپی شناسه میزبان به کلیپ‌بورد با شکست مواجه شد",
"join-failed": "با شکست مواجه شد Music Together پیوستن به",
"joined": "پیوست Music Together به",
"permission-changed": "مجوز Music Together به \"{{permission}}\" تغییر یافت",
"remove-song-failed": "حذف آهنگ با شکست مواجه شد",
"user-connected": "{{name}} به Music Together پیوست",
"user-disconnected": "{{name}} Music Together را ترک کرد"
}
},
"navigation": {
"description": "بعدی/قبلی به طور مستقیم در رابط یکپارچه شده‌اند، مانند مرورگر مورد علاقه شما",
"name": "کنترل های رابط",
"templates": {
"back": {
"title": "برو به صفحه قبل"
},
"forward": {
"title": "برو به صفحه بعد"
}
}
},
"no-google-login": {
"description": "حذف دکمه‌ها و لینک‌های ورود به گوگل از رابط کاربری",
"name": "بدون ورود به گوگل"
},
"notifications": {
"description": "نمایش اعلان هنگامی که آهنگی شروع به پخش می‌کند (اعلان‌های تعاملی در ویندوز در دسترس هستند)",
"menu": {
"interactive": "اعلان‌های تعاملی",
"interactive-settings": {
"label": "تنظیمات تعاملی",
"submenu": {
"hide-button-text": "مخفی کردن متن دکمه",
"refresh-on-play-pause": "تازه‌سازی در پخش/توقف",
"tray-controls": "باز/بسته شدن با کلیک روی آیکون در نوار وظیفه"
}
},
"priority": "اولویت اعلان",
"toast-style": "Toast سبک",
"unpause-notification": "نمایش اعلان هنگام از سرگیری پخش"
},
"name": "اعلان‌ها"
},
"performance-improvement": {
"description": "بهبود عملکرد با فعال کردن اسکریپت‌های آزمایشی",
"name": "بهبود عملکرد [بتا]"
},
"picture-in-picture": {
"description": "اجازه می‌دهد تا برنامه به حالت تصویر در تصویر تغییر کند",
"menu": {
"always-on-top": "همیشه در بالا",
"hotkey": {
"label": "کلید میانبر",
"prompt": {
"keybind-options": {
"hotkey": "کلید میانبر"
},
"label": "یک کلید میانبر انتخاب کنید برای فعال/غیرفعال کردن حالت تصویر در تصویر",
"title": "کلید میانبر برای حالت تصویر در تصویر"
}
},
"save-window-position": "ذخیره موقعیت پنجره",
"save-window-size": "ذخیره اندازه پنجره",
"use-native-pip": "استفاده از حالت تصویر در تصویر اصلی مرورگر"
},
"name": "تصویر در تصویر",
"templates": {
"button": "تصویر در تصویر"
}
},
"playback-speed": {
"description": "به سرعت گوش بده، به آرامی گوش بده! یک دکمه کشویی برای تنظیم سرعت آهنگ اضافه شد",
"name": "سرعت پخش",
"templates": {
"button": "سرعت"
}
},
"precise-volume": {
"description": "کنترل دقیق صدا با استفاده از چرخ موس/میانبرها، همراه با HUD سفارشی و مراحل تنظیم حجم قابل تنظیم",
"menu": {
"arrows-shortcuts": "میانبرهای کلیدهای فلشی",
"custom-volume-steps": "مراحل تنظیم صدای دلخواه",
"global-shortcuts": "کلید های میانبر جهانی"
},
"name": "صدای دقیق",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "کاهش صدا",
"increase": "افزایش صدا"
},
"label": "انتخاب کلیدهای میانبر سراسری صدا:",
"title": "میانبرهای کلید سراسری صدا"
},
"volume-steps": {
"label": "مراحل انتخاب افزایش/کاهش صدا",
"title": "سطح صدا"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "کیفیت کنونی: {{quality}}",
"message": "انتخاب کیفیت ویدیو:",
"title": "انتخاب کیفیت ویدیو"
}
}
},
"description": "امکان تغییر کیفیت ویدیو با استفاده از دکمه در رابط پخش ویدیو",
"name": "تغییر دهنده کیفیت ویدیو",
"renderer": {
"quality-settings-button": {
"label": "باز کردن تغییر دهنده کیفیت پخش کننده"
}
}
},
"scrobbler": {
"description": "اضافه کردن پشتیبانی از اسکرابلینگ (etc. last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "احراز هویت با Last.fm ناموفق بود\nپنجره شناور را تا راه‌اندازی مجدد بعدی مخفی کن.",
"title": "احراز هویت ناموفق بود"
}
}
},
"menu": {
"lastfm": {
"api-settings": "تنظیمات \"Last.fm \"API"
},
"listenbrainz": {
"token": "توکن کاربری ListenBrainz را وارد کنید"
},
"scrobble-alternative-artist": "از هنرمند دىگرى استفاده کنىد",
"scrobble-alternative-title": "از عناوین جایگزین استفاده کنید",
"scrobble-other-media": "ردیابی رسانه‌های دیگر"
},
"name": "ابزار ثبت‌کننده‌ی آهنگ",
"prompt": {
"lastfm": {
"api-key": "کلید Last.fm API",
"api-secret": "API مخفی Last.fm"
},
"listenbrainz": {
"token": {
"label": "توکن کاربری ListenBrainz خود را وارد کنید:",
"title": "توکن ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "امکان تنظیم میانبرهای سراسری برای کنترل (پخش/توقف/بعدی/قبلی) و خاموش کردن OSD رسانه با بازنویسی کلیدهای رسانه‌ای، فعال‌سازی Ctrl/CMD + F برای جستجو، فعال‌سازی پشتیبانی MPRIS در لینوکس برای کلیدهای رسانه‌ای، و میانبرهای سفارشی برای کاربران پیشرفته",
"menu": {
"override-media-keys": "تغییر عملکرد کلیدهای رسانه‌",
"set-keybinds": "تنظیم کنترل‌های سراسری آهنگ"
},
"name": "میانبرها (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "بعدی",
"play-pause": "پخش / توقف",
"previous": "قبلی"
},
"label": "انتخاب میانبرهای سراسری برای کنترل آهنگ‌ها:",
"title": "میانبرهای کلیدی سراسری"
}
}
},
"skip-disliked-songs": {
"description": "خودکار آهنگ های غیر موردعلاقه رد میشن",
"name": "رد آهنگ‌های غیر مورد علاقه"
},
"skip-silences": {
"description": "رد خودکار بخش‌های بی صدا آهنگ ها",
"name": "رد بخش‌های بی‌صدا"
},
"sponsorblock": {
"description": "به‌طور خودکار بخش‌های غیرموسیقی مانند مقدمه/پایان یا قسمت‌هایی از ویدیوهای موسیقی که آهنگ در آن پخش نمی‌شود را رد می‌کند",
"name": "مسدودکننده اسپانسر"
},
"synced-lyrics": {
"description": "ارائه متن ترانه‌ها به صورت هماهنگ با آهنگ‌ها، با استفاده از ارائه‌دهندگانی مانند LRClib.",
"errors": {
"fetch": "⚠️هنگام بارگیری متن ترانه خطایی رخ داده است.\n\tلطفاً بعداً دوباره تلاش کنید.",
"not-found": "⚠️ متنی برای این ترانه پیدا نشد."
},
"menu": {
"default-text-string": {
"label": "حرف/کاراکتر پیش‌فرض بین متن‌های ترانه",
"tooltip": "حرف/کاراکتر پیش‌فرض را برای فاصله بین متن‌های ترانه انتخاب کنید"
},
"line-effect": {
"label": "افکت خط متن",
"submenu": {
"fancy": {
"label": "شیک",
"tooltip": "استفاده از افکت‌های بزرگ و شبیه به اپلیکیشن‌ها برای خط فعلی"
},
"focus": {
"label": "تمرکز",
"tooltip": "فقط خط فعلی رو سفید کن"
},
"offset": {
"label": "جابجایی",
"tooltip": "جابجایی خط فعلی به سمت راست"
},
"scale": {
"label": "مقیاس",
"tooltip": "تغییر اندازه خط فعلی"
}
},
"tooltip": "افکت مورد نظر را برای خط فعلی انتخاب کنید"
},
"precise-timing": {
"label": "هماهنگ‌سازی کامل متن ترانه‌",
"tooltip": "محاسبه دقیق نمایش خط بعدی تا میلی‌ثانیه (ممکن است تاثیر کمی بر عملکرد داشته باشد)"
},
"preferred-provider": {
"label": "منبع دلخواه",
"none": {
"label": "هىچکدام",
"tooltip": "منبح دلخواهى انتخاب نشده"
},
"tooltip": "منبع دلخواهتان را انتخاب کنىد"
},
"romanization": {
"label": "اشعار رومی شده",
"tooltip": "اگر اشعار به زبانی متفاوت هستند، سعی کنید نسخه لاتین را نمایش دهید."
},
"show-lyrics-even-if-inexact": {
"label": "نمایش متن ترانه ها حتی اگر دقیق نباشد",
"tooltip": "اگر آهنگ پیدا نشد، افزونه دوباره با یک جستجوی متفاوت امتحان می‌کند.\nنتیجهی این تلاش ممکن است دقیق نباشد."
},
"show-time-codes": {
"label": "نمایش زمان‌بندی‌ها",
"tooltip": "نمایش زمان‌بندی‌ها کنار متن ترانه‌"
}
},
"name": "متن ترانه هماهنگ شد",
"refetch-btn": {
"fetching": "در حال بارگذاری...",
"normal": "دریافت مجدد متن ترانه"
},
"warnings": {
"duration-mismatch": "⚠️ - ممکن است متن ترانه به دلیل عدم تطابق زمان با مشکل هماهنگی مواجه شود.",
"inexact": "⚠️ - ممکن است متن ترانه برای این آهنگ دقیق نباشد",
"instrumental": "⚠️ - این آهنگ بی کلام است"
}
},
"taskbar-mediacontrol": {
"description": "کنترل پخش از نوار وظیفه ویندوز(taskbar)",
"name": "کنترل رسانه از نوار وظیفه (taskbar)"
},
"touchbar": {
"description": "افزودن ویجت TouchBar برای کاربران macOS",
"name": "نوار لمسی"
},
"transparent-player": {
"description": "پنجره برنامه را شفاف مىکند",
"menu": {
"opacity": {
"label": "تارى",
"submenu": {
"percent": "%{{تارى}}"
}
},
"type": {
"label": "نوع",
"submenu": {
"acrylic": "اکرىلىک",
"mica": "مىکا",
"none": "هىچکدام",
"tabbed": "نوار دار"
}
}
},
"name": "پلىر شفاف"
},
"tuna-obs": {
"description": "ادغام با پلاگین Tuna در OBS",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "هنگام پخش یک آهنگ از پخش کننده جلوگیری می کند",
"name": "پخش‌کننده بی نظیر"
},
"video-toggle": {
"description": "دکمه‌ای اضافه می‌کند برای جابجایی بین حالت ویدیو/آهنگ. همچنین به صورت اختیاری می‌تواند تب ویدیو را حذف کند",
"menu": {
"align": {
"label": "چینش",
"submenu": {
"left": "چپ",
"middle": "میانه",
"right": "راست"
}
},
"force-hide": "حذف اجباری تب ویدیو",
"mode": {
"label": "حالت",
"submenu": {
"custom": "حالت شخصی‌سازی شده",
"disabled": "غیرفعال",
"native": "حالت پیشفرض"
}
}
},
"name": "ویدیو به آهنگ",
"templates": {
"button-song": "ترانه",
"button-video": "ویدیو"
}
},
"visualizer": {
"description": "اضافه کردن نمایش‌دهنده تصویری به پخش‌کننده",
"menu": {
"visualizer-type": "نوع نمایش‌دهنده تصویری"
},
"name": "نمایش‌دهنده تصویری"
}
}
}

View File

@ -1,779 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Virhe pluginin lataamisessa: {{pluginName}}, koska {{contextName}}",
"executed-at-ms": "Lisäosa: {{pluginName}} ja {{contextName}} on ladattu/liitetty {{ms}}",
"initialize-failed": "Laajennuksen alustaminen epäonnistui kohteelle \"{{pluginName}}\"",
"load-all": "Ladataan kaikkia lisäosia",
"load-failed": "Virhe lisäosan lataamisessa kohteelle: {{pluginName}}",
"loaded": "Lisäosa {{pluginName}} on ladattu",
"unload-failed": "Laajennuksen purkaminen epäonnistui kohtelle: {{pluginName}}",
"unloaded": "Lisäosa {{pluginName}} on purettu"
}
}
},
"language": {
"code": "fi",
"local-name": "Suomi",
"name": "Finnish"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Onnistuneesti ladattu. Devtools avautuu"
},
"i18n": {
"loaded": "i18n ladattu"
},
"second-instance": {
"receive-command": "Komento \"{{command}}\" on vastaanotettu"
},
"theme": {
"css-file-not-found": "{{cssFile}} on jätetty väliin, koska tiedosto on virheellinen"
},
"unresponsive": {
"details": "Reagoimaton virhe\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Puhdista välimuisti"
},
"window": {
"tried-to-render-offscreen": "Näyttö yritti renderöidä näyttöäsi asetuksilla: {{windowSize}}, {{displaySize}} sekä {{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Valikko on piilotettu, avaa valikko uudestaan painamalla \"Alt\" näppäintä tai \"Escape\" näppäintä",
"message": "Valikon piilotus on nyt päällä",
"title": "Piilota valikko päällä"
},
"need-to-restart": {
"buttons": {
"later": "Myöhemmin",
"restart-now": "Uudelleen käynnistä NYT"
},
"detail": "{{pluginName}} lisäosa vaatii uudelleen käynnistyksen YT musicille",
"message": "{{pluginName}} vaatii uudelleen käynnistyksen YT musicille",
"title": "Uudelleen käynnistä sovellus"
},
"unresponsive": {
"buttons": {
"quit": "Poistu",
"relaunch": "Uudelleen käynnistä",
"wait": "Odotas vähän"
},
"detail": "Pahoittelemme häiriötä! ole hyvä ja valitse mitä teet:",
"message": "Sovellus ei ole saataville eli tapahtui virhe",
"title": "Ikkuna ei vastaa"
},
"update-available": {
"buttons": {
"disable": "Poista päivitykset käytöstä",
"download": "Lataa",
"ok": "Selvä"
},
"detail": "Uusin versio sovelluksesta on nyt saatavilla, lataa se tästä {{downloadLink}}",
"message": "Uusin versio on nyt saatavilla",
"title": "Päivitys saatavilla"
}
},
"menu": {
"about": "Tietoa",
"navigation": {
"label": "Selaa",
"submenu": {
"copy-current-url": "Kopio URL osoite",
"go-back": "Takaisin",
"go-forward": "Eteenpäin",
"quit": "Poistu alustalta",
"restart": "Uudelleen käynnistä aplikaatio"
}
},
"options": {
"label": "Asetukset",
"submenu": {
"advanced-options": {
"label": "Lisäasetukset",
"submenu": {
"auto-reset-app-cache": "Puhdista sovelluksen välimuisti aina sovelluksen käynnistyksen aikana",
"disable-hardware-acceleration": "Poista laitteistokiihdytys käytöstä",
"edit-config-json": "Muokkaa \"config.json\" tiedostoa",
"override-user-agent": "Ohita käyttäjäagentti",
"restart-on-config-changes": "Käynnistä uudelleen asetusten muuton jälkeen",
"set-proxy": {
"label": "Aseta välityspalvelin (proxy)",
"prompt": {
"label": "Aseta välityspalvelimen IP-osoite: (jos jätät tyhjäksi, palvelin ei käynnisty)",
"placeholder": "Esimerkki osoite: penapertti://127.0.0.0:6969",
"title": "Aseta välityspalvelin (proxy)"
}
},
"toggle-dev-tools": "Ota DevTools käyttöön"
}
},
"always-on-top": "Aina päällä",
"auto-update": "Automaattisest päivitykset",
"hide-menu": {
"dialog": {
"message": "Valikko piilotetaan seuraavan käynnistyksen yhteydessä. Saat sen päälle painamalla [Alt] näppäintä (tai merkitse takaisin [`], jos käytät sovelluksen sisäistä valikkoa)",
"title": "Piilota valikko (päällä)"
},
"label": "Piilota valikko"
},
"language": {
"dialog": {
"message": "Kieli vaihtuu uudelleen käynnistyksen jälkeen (Language will be changed after restart)",
"title": "Kieli vaihdettu (Language Changed)"
},
"label": "Kieli (languages)",
"submenu": {
"to-help-translate": "Haluatko kääntää puuttuvan kielen? Klkkaa tästä! (Want to help translate? Click here)"
}
},
"resume-on-start": "Jatka kappaleesta, johon jäin aikaisemmin",
"single-instance-lock": "Yhden instanssin lukko",
"start-at-login": "Aloita kirjautuminen",
"starting-page": {
"label": "Etusivu",
"unset": "Valitsematta"
},
"tray": {
"label": "Suositukset",
"submenu": {
"disabled": "Pois päältä",
"enabled-and-hide-app": "Suositukset ovat käytössä ja piilota valikko",
"enabled-and-show-app": "Päällä ja sovellus näkyvissä",
"play-pause-on-click": "Soita/pysäytä klikkaamalla"
}
},
"visual-tweaks": {
"label": "Visuaalisia tehosteita",
"submenu": {
"custom-window-title": {
"label": "Mukautettu ikkunan otsikko",
"prompt": {
"label": "Syötä mukautettu ikkunan otsikko: (jätä tyhjäksi poistaaksesi päältä)",
"placeholder": "Esimerkki: Pear Desktop"
}
},
"like-buttons": {
"default": "Vakio",
"force-show": "Pakota näyttämään",
"hide": "Piilota",
"label": "Tykkäys nappula"
},
"remove-upgrade-button": "Poista päivitys nappula",
"theme": {
"dialog": {
"button": {
"cancel": "Peruuta",
"remove": "Poista"
},
"remove-theme": "Oletko aivan varma, että haluat poistaa kustomoidun teeman?",
"remove-theme-message": "Tämä poistaa kustomoidun teeman"
},
"label": "Teema",
"submenu": {
"import-css-file": "Liitä kustomoitu CSS tiedosto",
"no-theme": "Ei teemaa"
}
}
}
}
}
},
"plugins": {
"enabled": "Päällä",
"label": "Lisäosat",
"new": "UUSI"
},
"view": {
"label": "Katso",
"submenu": {
"force-reload": "pakota uudelleen lataamaan",
"reload": "Uudelleen lataa",
"reset-zoom": "Todellinen koko",
"toggle-fullscreen": "Koko näyttö päälle/pois",
"zoom-in": "Zoomaa lähemmäksi",
"zoom-out": "Zoomaa kauemmaksi"
}
}
},
"tray": {
"next": "Seuraava",
"play-pause": "Soita/pysäytä",
"previous": "Edellinen",
"quit": "Lähde pois",
"restart": "Uudelleen käynnistä appi",
"show": "Näytä ikkuna",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Jos mainos toistuu, mykistä ääni ja aseta toistonopeus 16x:een",
"name": "Mainoksen nopeutus"
},
"adblocker": {
"description": "Estä kaikki mainokset ja seuranta",
"menu": {
"blocker": "Estäjät (blockerit)"
},
"name": "Mainos estäjä"
},
"album-actions": {
"description": "Lisää tykkäysnappulat, joilla voit lisätä tai poistaa tykkäyksiä kerralla kaikille soittolistan tai albumin kappaleille",
"name": "Albumin Toiminnot"
},
"album-color-theme": {
"description": "Käyttää dynaamista teemaa ja visuaalisia tehosteita albumin väripaletin perusteella",
"menu": {
"color-mix-ratio": {
"label": "Värien sekoitussuhde",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Albumin Värinen Teema"
},
"ambient-mode": {
"description": "Antaa valaistustehosteen heittämällä videosta lempeitä värejä näytön taustalle",
"menu": {
"blur-amount": {
"label": "Sumennuksen voimakkuus",
"submenu": {
"pixels": "{{blurAmount}} pikseliä"
}
},
"buffer": {
"label": "Puskurointi",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Läpinäkyvyys",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Laatu",
"submenu": {
"pixels": "{{quality}} pikseliä"
}
},
"size": {
"label": "Koko",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Siirtymän sujuvuus",
"submenu": {
"during": "Kesto {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Käytetään koko näytön tilaa"
}
},
"name": "Tunnelmallinen Tila"
},
"amuse": {
"description": "Lisää Pear Desktop tuen Amusen nyt soitetaan -widgetille, kehittäjänä 6K Labs",
"name": "Amuse",
"response": {
"query": "Amuse API-palvelin on päällä. Käytä GET /query-rajapintaa saadaksesi kappaleen tiedot."
}
},
"api-server": {
"description": "Lisää API-palvelimen hallitsemaan soitinta",
"dialog": {
"request": {
"buttons": {
"allow": "Hyväksy",
"deny": "Kiellä"
},
"message": "Sallitaanko {{ID}} ({{origin}}) pääsy API:in?",
"title": "API vahvistuspyyntö"
}
},
"menu": {
"auth-strategy": {
"label": "Valtuutus-strategia",
"submenu": {
"auth-at-first": {
"label": "Valtuuta ensimmäisellä kyselyllä"
},
"none": {
"label": "Ei valtuuksia"
}
}
},
"hostname": {
"label": "Isäntänimi"
},
"port": {
"label": "Portti"
}
},
"name": "API Serveri [Beta]",
"prompt": {
"hostname": {
"label": "Syötä isäntänimi (esimerkiksi 0.0.0.0) API-palvelimelle:",
"title": "Isäntänimi"
},
"port": {
"label": "Syötä API-palvelimen portti:",
"title": "Portti"
}
}
},
"audio-compressor": {
"description": "Lisää äänen kompressointia (hiljentää voimakkaimpien äänien voimakkuutta ja tehostaa pehmeämpien äänien voimakkuutta)",
"name": "Äänen Kompressoija"
},
"auth-proxy-adapter": {
"description": "Tukee todennusvälipalvelinten käyttöä",
"menu": {
"disable": "Poista välipalvelimen adapteri pois käytöstä",
"enable": "Aseta välipalvelimen adapteri käyttöön",
"hostname": {
"label": "Isäntänimi"
},
"port": {
"label": "Portti"
}
},
"name": "Todennusvälipalvelinadapteri",
"prompt": {
"hostname": {
"label": "Syötä paikallisen välipalvelimen isäntänimi (vaatii uudelleenkäynnistyksen):",
"title": "Välipalvelimen isäntänimi"
},
"port": {
"label": "Syötä paikallisen välipalvelimen portti (vaatii uudelleenkäynnistyksen):",
"title": "Välipalvelimen portti"
}
}
},
"blur-nav-bar": {
"description": "Tekee siirtymäpalkista läpikuultavan ja sumean",
"name": "Sumenna Siirtymäpalkki"
},
"bypass-age-restrictions": {
"description": "Ohita Music Player iän vahvistus",
"name": "Ohita Ikään Perustuvat Rajoitukset"
},
"captions-selector": {
"description": "Pear Desktop ääniraitojen tekstitysten valitsin",
"menu": {
"autoload": "Valitse automaattisesti viimeksi käytetty tekstitys",
"disable-captions": "Tekstitys ei oletusarvoisesti käytössä"
},
"name": "Tekstitysten valinta",
"prompt": {
"selector": {
"label": "Tekstitysten nykyinen kieli: {{language}}",
"none": "Ei mitään",
"title": "Valitse tekstitysten kieli"
}
},
"templates": {
"title": "Avaa tekstitysten valitsin"
},
"toast": {
"caption-changed": "Tekstitys vaihdettu kieleksi {{language}}",
"caption-disabled": "Tekstitykset pois päältä",
"no-captions": "Tekstityksiä ei ole saatavilla tälle kappaleelle"
}
},
"compact-sidebar": {
"description": "Asettaa sivupalkin aina kompaktiin tilaan",
"name": "Kompakti sivupalkki"
},
"crossfade": {
"description": "Ristihäivytä kappaleet",
"menu": {
"advanced": "Edistynyt"
},
"name": "Ristihäivytys [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Sisään häivytyksen kesto (ms)",
"fade-out-duration": "Ulos häivytyksen kesto (ms)",
"fade-scaling": {
"label": "Häivytyksen skaalaus",
"linear": "Lineaarinen",
"logarithmic": "Logaritminen"
},
"seconds-before-end": "Ristihäivytä N sekuntia ennen loppua"
},
"title": "Ristihäivytyksen asetukset"
}
}
},
"disable-autoplay": {
"description": "Kappaleet alkavat \"pysäytetty\" tilassa",
"menu": {
"apply-once": "Käytetään vain käynnistäessä"
},
"name": "Poista automaattinen toisto käytöstä"
},
"discord": {
"backend": {
"already-connected": "Yritettiin yhdistää vaikka yhteys on jo aktiivinen",
"connected": "Yhdistetty Discordiin",
"disconnected": "Katkaistu yhteys Discordiin"
},
"description": "Näytä ystävillesi mitä kuuntelet \"Rich Presence\":n avulla",
"menu": {
"auto-reconnect": "Automaatinen uudelleenyhdistys",
"clear-activity": "Nollaa toiminta",
"clear-activity-after-timeout": "Nollaa toiminta aikakatkaisun jälkeen",
"connected": "Yhdistetty",
"disconnected": "Yhteys katkaistu",
"hide-duration-left": "Piilota kappaleen jäljellä oleva kesto",
"hide-github-button": "Piilota \"linkki GitHubiin\" -nappi",
"play-on-pear-desktop": "Kuuntele palvelussa Pear Desktop",
"set-inactivity-timeout": "Aseta toimettomuuden aikakatkaisu"
},
"name": "Discord Aktiviteetti (Rich Presence)",
"prompt": {
"set-inactivity-timeout": {
"label": "Anna toimettomuuden aikakatkaisun aika sekunteina:",
"title": "Aseta toimettomuuden aikakatkaisu"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Äh! Pahoittelut, lataus epäonnistui…",
"title": "Virhe latauksessa!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} kappaletta)",
"message": "Lataa Soittolista {{playlistTitle}}",
"title": "Lataus aloitettu"
}
},
"feedback": {
"conversion-progress": "Muunnetaan: {{percent}}%",
"converting": "Muuntaa…",
"done": "Valmis: {{filePath}}",
"download-info": "Ladataan {{artist}} -{{title}} [{{videoId}}",
"download-progress": "Latauksen edistyminen: {{percent}}%",
"downloading": "Ladataan…",
"downloading-counter": "Ladataan {{current}}/{{total}}…",
"downloading-playlist": "Ladataan soittolistaa \"{{playlistTitle}}\" {{playlistSize}} kappaletta ({{playlistId}})",
"error-while-downloading": "Virhe ladattaessa \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Kansio {{playlistFolder}} on jo olemassa",
"getting-playlist-info": "Haetaan soittolistan tietoja…",
"loading": "Ladataan…",
"playlist-has-only-one-song": "Soittolistalla on vain yksi kappale, se ladataan suoraan",
"playlist-id-not-found": "Soittolistan tunnistetta ei löytynyt",
"playlist-is-empty": "Soittolista on tyhjä",
"playlist-is-mix-or-private": "Virhe haettaessa soittolista tietoja: varmista ettei soittolista ole yksityinen tai \"Miksattu sinulle\" soittolista\n\n{{error}}",
"preparing-file": "Valmistellaan tiedostoa…",
"saving": "Tallennetaan…",
"trying-to-get-playlist-id": "Yritetään hakea soittolistan tunnistetta: {{playlistId}}",
"video-id-not-found": "Videota ei löytynyt",
"writing-id3": "Kirjoitetaan ID3-tunnisteita…"
}
},
"description": "Lataa MP3- tai lähdetiedoston suoraan käyttöliittymästä",
"menu": {
"choose-download-folder": "Valitse latauskansio",
"download-finish-settings": {
"label": "Lataa toiston päätyttyä",
"prompt": {
"last-percent": "x prosentin jälkeen",
"last-seconds": "Viimeiset x sekuntia",
"title": "Määritä milloin ladata"
},
"submenu": {
"advanced": "Edistynyt",
"enabled": "Päällä",
"mode": "Aikatila",
"percent": "Prosentti",
"seconds": "Sekuntia"
}
},
"download-playlist": "Lataa soittolista",
"presets": "Esiasetukset",
"skip-existing": "Ohita olemassa olevat tiedostot"
},
"name": "Lataaja",
"renderer": {
"can-not-update-progress": "Edistystä ei voida päivittää"
},
"templates": {
"button": "Lataa"
}
},
"equalizer": {
"description": "Lisää taajuuskorjaimen toistimeen",
"menu": {
"presets": {
"label": "Pohjat",
"list": {
"bass-booster": "Bassonlisääjä"
}
}
},
"name": "Taajuuskorjain"
},
"exponential-volume": {
"description": "Tekee äänenvoimakkuuden säätimestä eksponentiaalisen, jotta matalampien äänenvoimakkuuksien valinta on helpompaa.",
"name": "Eksponentiaalinen Äänenvoimakkuus"
},
"in-app-menu": {
"description": "Antaa valikkopalkeille hienon tumman tai albumin värisen ulkonäön",
"menu": {
"hide-dom-window-controls": "Piilota ikkunan DOM ohjaimet"
},
"name": "Sovelluksen sisäinen valikko"
},
"lumiastream": {
"description": "Lisää tuen Lumia Stream -palvelulle",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Lisää tuen useimpien kappaleiden sanoituksille",
"menu": {
"romanized-lyrics": "Latinaistetut sanoitukset"
},
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Sanoitukset haettu Geniukselle"
}
},
"music-together": {
"description": "Jaa soittolista muiden kanssa. Kun isäntä soittaa kappaleen, kaikki muut kuulevat saman kappaleen",
"dialog": {
"enter-host": "Anna Istunnon tunniste"
},
"internal": {
"save": "Tallenna",
"track-source": "Kappaleen lähde",
"unknown-user": "Tuntematon käyttäjä"
},
"menu": {
"click-to-copy-id": "Kopioi Istunnon tunniste",
"close": "Sulje \"Music Together\"",
"connected-users": "Yhdistetyt käyttäjät",
"disconnect": "Katkaise yhteys \"Music Together\" -istuntoon",
"empty-user": "Ei yhdistyneitä käyttäjiä",
"host": "\"Music Together\" -istunnon isäntä",
"join": "Yhdistä \"Music Together\" -istuntoon",
"permission": {
"all": "Salli vieraiden hallita soittolistaa ja soitinta",
"host-only": "Vain isäntä voi hallita soittolistaa ja soitinta",
"playlist": "Salli vieraiden hallita soittolistaa"
},
"set-permission": "Muuta hallintaoikeuksia",
"status": {
"disconnected": "Yhteys katkaistu",
"guest": "Yhdistetty vieraana",
"host": "Yhdistetty isäntänä"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Kappaleen lisääminen epäonnistui",
"closed": "Music Together suljettu",
"disconnected": "\"Music Together\" yhteys katkaistu",
"host-failed": "Music Together -istunnon isännöinti epäonnistui",
"id-copied": "Istunnon tunnus kopioitu leikepöydälle",
"id-copy-failed": "Istunnon tunnisteen kopioiminen epäonnistui",
"join-failed": "Music Together -istuntoon liittyminen epäonnistui",
"joined": "Liityttiin Music Together -istuntoon",
"permission-changed": "Music Together -istunnon oikeuksia muutettiin \"{{permission}}\"",
"remove-song-failed": "Kappaleen poistaminen epäonnistui",
"user-connected": "{{name}} liittyi Music Together -istuntoon",
"user-disconnected": "{{name}} poistui Music Together -istunnosta"
}
},
"navigation": {
"description": "Eteen- ja taaksepäin vievät nuolet suoraan integroituna käyttöliittymään. Juuri niin kuin lempiselaimessasi",
"name": "Siirtyminen",
"templates": {
"back": {
"title": "Palaa edelliselle sivulle"
},
"forward": {
"title": "Siirry seuraavalle sivulle"
}
}
},
"no-google-login": {
"description": "Poista Googlen kirjautumispainikkeet ja linkit käyttöliittymästä",
"name": "Ei Google kirjautumista"
},
"notifications": {
"description": "Näytä ilmoitus, kun kappale alkaa soida (interaktiiviset ilmoitukset ovat käytettävissä Windowsilla)",
"menu": {
"interactive": "Interaktiiviset Ilmoitukset",
"interactive-settings": {
"label": "Interaktiiviset Asetukset",
"submenu": {
"hide-button-text": "Piilota painikkeen teksti",
"refresh-on-play-pause": "Päivitä Toistamisen/Tauottamisen yhteydessä",
"tray-controls": "Avaa/Sulje tehtäväpalkista"
}
},
"priority": "Ilmoitusten tärkeys",
"toast-style": "Ponnahdusilmoitusten tyyli",
"unpause-notification": "Näytä ilmoitus toistamisen yhteydessä"
},
"name": "Ilmoitukset"
},
"performance-improvement": {
"description": "Paranna suorituskykyä käyttämällä kokeellisia skriptejä",
"name": "Suorituskykyparannus [Beta]"
},
"picture-in-picture": {
"description": "Sallii sovelluksen vaihtamisen \"kuva kuvassa\" tilaan",
"menu": {
"always-on-top": "Aina päällimmäisenä",
"hotkey": {
"label": "Pikanäppäin",
"prompt": {
"keybind-options": {
"hotkey": "Pikanäppäin"
},
"label": "Valitse pikanäppäin \"kuva kuvassa\" -tilan kytkemiseksi",
"title": "\"Kuva kuvassa\" -tilan pikanäppäin"
}
},
"save-window-position": "Tallenna ikkunan sijainti",
"save-window-size": "Tallenna ikkunan koko",
"use-native-pip": "Käytä selaimen natiivia \"Kuva kuvassa\" -tilaa"
},
"name": "Kuva kuvassa",
"templates": {
"button": "Kuva kuvassa"
}
},
"playback-speed": {
"description": "Kuuntele nopeasti, kuuntele hitaasti! Lisää säätimen, jolla voit säätää kappaleen toistonopeutta",
"name": "Toistonopeus",
"templates": {
"button": "Nopeus"
}
},
"precise-volume": {
"description": "Säädä äänenvoimakkuutta tarkasti hiiren rullaa tai pikanäppäimiä käyttäen. Kustomoidulla käyttöliittymällä ja säädettävällä äänenvoimakkuuden porrastuksella",
"menu": {
"arrows-shortcuts": "Paikallinen nuolinäppäinohjaus",
"custom-volume-steps": "Aseta mukautettu äänenvoimakkuuden porrastus",
"global-shortcuts": "Yleiset pikanäppäimet"
},
"name": "Tarkka äänenvoimakkuus",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Vähennä äänenvoimakkuutta",
"increase": "Lisää äänenvoimakkuutta"
},
"label": "Valitse yleiset äänenvoimakkuuden pikanäppäimet:",
"title": "Globaalit äänenvoimakkuusnäppäimet"
},
"volume-steps": {
"label": "Valitse äänenvoimakkuuden suurennus-/pienennysaskeleet",
"title": "Äänenvoimakkuusaskeleet"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Nykyinen laatu: {{quality}}",
"message": "Valitse videon laatu:",
"title": "Valitse videon laatu"
}
}
},
"description": "Salli videon laadun muuttaminen videon päällä näkyvällä painikkeella",
"name": "Videonlaadunmuuttaja",
"renderer": {
"quality-settings-button": {
"label": "Avaa toistimen laadun muuttaja"
}
}
},
"scrobbler": {
"description": "Lisää jakamistuki (esim. last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Last.fm-varmennus epäonnistui\nPiilota ponnahdusikkuna kunnes käynnistät ohjelman uudelleen.",
"title": "Todennus epäonnistui"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API:n asetukset"
},
"listenbrainz": {
"token": "Syötä ListenBrainz-käyttötunnus (token)"
},
"scrobble-alternative-title": "Käytä vaihtoehtoisia otsikoita",
"scrobble-other-media": "Jaa muuta mediaa"
},
"name": "Jakaja",
"prompt": {
"lastfm": {
"api-key": "Last.fm:n API-avain",
"api-secret": "Last.fm:n API-salaisuus"
},
"listenbrainz": {
"token": {
"label": "Syötä ListenBrainz käyttötunnuksesi (token):",
"title": "ListenBrainz-käyttötunnus"
}
}
}
},
"shortcuts": {
"prompt": {
"keybind": {
"keybind-options": {
"previous": "Edellinen"
}
}
}
},
"tuna-obs": {
"name": "Tuna OBS"
},
"video-toggle": {
"menu": {
"align": {
"submenu": {
"left": "Vasen",
"right": "Oikea"
}
}
}
}
}
}

View File

@ -1,912 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Nabigong patakbuin ang plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Ang plugin na {{pluginName}}::{{contextName}} ay pinatakbo sa loob ng {{ms}}ms",
"initialize-failed": "Nabigo ang pagsimula ng plugin na \"{{pluginName}}\"",
"load-all": "Nilo-load lahat ng mga plugin",
"load-failed": "Nabigong i-load ang plugin na \"{{pluginName}}\"",
"loaded": "Na-load ang \"{{pluginName}}\" na plugin",
"unload-failed": "Nabigong i-unload ang plugin na \"{{pluginName}}\"",
"unloaded": "Na-unload ang \"{{pluginName}}\" na plugin"
}
}
},
"language": {
"code": "fil",
"local-name": "Tagalog",
"name": "Filipino"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Natapos ang pag-load. Nabuksan ang DevTools"
},
"i18n": {
"loaded": "na-load ang i18n"
},
"second-instance": {
"receive-command": "Natanggap ang command sa pamamagitan ng protocol: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Ang CSS file na \"{{cssFile}}\" ay hindi umiiral, hindi papansin"
},
"unresponsive": {
"details": "Hindi tumutugon na Error!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Naglilinis ng app cache"
},
"window": {
"tried-to-render-offscreen": "Nasubukan ng window na mag-render sa labas ng screen, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Nakatago ang menu, gamitin ang 'Alt' para makita ito (o 'Escape' kung gagamitin ang In-App na Menu)",
"message": "Ang Pagtatago ng Menu ay napagana na",
"title": "Napagana ang Pagtatago ng Menu"
},
"need-to-restart": {
"buttons": {
"later": "Mamaya",
"restart-now": "Mag-restart na"
},
"detail": "Ang plugin na \"{{pluginName}}\" ay kinakailangan ng restart para gumana ito",
"message": "Kinakailangan ng \"{{pluginName}}\" na mag-restart",
"title": "Kinakailangan ng Restart"
},
"unresponsive": {
"buttons": {
"quit": "Umalis",
"relaunch": "Muling patakbuhin",
"wait": "Maghintay"
},
"detail": "Ikinalulungkot namin ang abala! piliin kung ano ang gagawin:",
"message": "Ang Application ay Hindi Tumutugon",
"title": "Di tumutugon ang Window"
},
"update-available": {
"buttons": {
"disable": "Di-paganahin ang mga Update",
"download": "I-download",
"ok": "OK"
},
"detail": "Ang isang bagong bersyon ay available at maaaring i-download sa {{downloadLink}}",
"message": "Mayroong bagong version ay available",
"title": "Available ang Update"
}
},
"menu": {
"about": "Patungkol",
"navigation": {
"label": "Nabigasyon",
"submenu": {
"copy-current-url": "Kopyahin ang kasalukuyang URL",
"go-back": "Bumalik",
"go-forward": "Pasulong",
"quit": "Lumabas",
"restart": "I-restart ang App"
}
},
"options": {
"label": "Mga Opsyon",
"submenu": {
"advanced-options": {
"label": "Mga advance na opsyon",
"submenu": {
"auto-reset-app-cache": "I-reset ang app cache kapag nagsisimula ang app",
"disable-hardware-acceleration": "Di-paganahin ang pagpapabilis ng hardware",
"edit-config-json": "I-edit ang config.json",
"override-user-agent": "I-override ang User-Agent",
"restart-on-config-changes": "I-restart kada may pagbabago sa config",
"set-proxy": {
"label": "I-set ang proxy",
"prompt": {
"label": "Ilagay ang Proxy Address: (iwanang walang laman para di-paganahin)",
"placeholder": "Halimbawa: SOCKS5://127.0.0.1:9999",
"title": "I-set ang proxy"
}
},
"toggle-dev-tools": "I-toggle ang DevTools"
}
},
"always-on-top": "Laging nasa ibabaw",
"auto-update": "Awto Update",
"hide-menu": {
"dialog": {
"message": "Ang menu ay itatago sa susunod na pag-launch, gamitin ang [Alt] upang ipakita ito (o backtick [`] kung gumagamit ng in-app-menu)",
"title": "Pinagana ang Pagtatago ng Menu"
},
"label": "Pagtatago ng Menu"
},
"language": {
"dialog": {
"message": "Ang wika ay mababago pagkatapos mag-restart",
"title": "Napalitan ang Wika"
},
"label": "Wika",
"submenu": {
"to-help-translate": "Gusto mong tumulong sa pagsasalin? Mag-click dito"
}
},
"resume-on-start": "Ipagpatuloy ang huling kanta kapag nagsisimula ang app",
"single-instance-lock": "I-lock sa isang Instance",
"start-at-login": "Magsimula sa pag-login",
"starting-page": {
"label": "Simulang page",
"unset": "I-unset"
},
"tray": {
"label": "Tray",
"submenu": {
"disabled": "Di-napagana",
"enabled-and-hide-app": "Napagana at natago ang app",
"enabled-and-show-app": "Napagana at napakita ang app",
"play-pause-on-click": "Mag play/pause kada click"
}
},
"visual-tweaks": {
"label": "Mga Biswal na Tweak",
"submenu": {
"custom-window-title": {
"label": "Custom na window title",
"prompt": {
"label": "I-enter ang custom na window tile: (iwanang blanko para di-mapagana)",
"placeholder": "Halimbawa: Pear Desktop"
}
},
"like-buttons": {
"default": "Default",
"force-show": "Pilitang ipakita",
"hide": "Itago",
"label": "Mga Like na button"
},
"remove-upgrade-button": "Tanggalin ang upgrade na button",
"theme": {
"dialog": {
"button": {
"cancel": "Kanselahin",
"remove": "Tanggalin"
},
"remove-theme": "Sigurado ka bang gusto mong alisin ang custom na tema?",
"remove-theme-message": "Aalisin nito ang custom na tema"
},
"label": "Tema",
"submenu": {
"import-css-file": "Mag-import ng custom na CSS file",
"no-theme": "Walang tema"
}
}
}
}
}
},
"plugins": {
"enabled": "Napagana",
"label": "Mga Plugin",
"new": "BAGO"
},
"view": {
"label": "View",
"submenu": {
"force-reload": "Pilitang I-reload",
"reload": "I-reload",
"reset-zoom": "Aktuwal na Size",
"toggle-fullscreen": "I-toggle ang Full Screen",
"zoom-in": "Mag-zoom in",
"zoom-out": "Mag-zoom out"
}
}
},
"tray": {
"next": "Susunod",
"play-pause": "Mag-play/Mag-pause",
"previous": "Nakaraan",
"quit": "Lumabas",
"restart": "I-restart ang App",
"show": "Ipakita ang window",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Pag mag-play ng ad, I-mute ang audio at i-set ang bilis ng playback ng 16x",
"name": "Pagbilis ng Ad"
},
"adblocker": {
"description": "I-block ang lahat ng ad at tracking",
"menu": {
"blocker": "Blocker"
},
"name": "Pag-block ng Ad"
},
"album-actions": {
"description": "Idadagdag ang Undislike, Dislike, Like, at Unlike na button para ilapat ito sa lahat ng kanta sa isang playlist o album",
"name": "Mga aksyon sa Album"
},
"album-color-theme": {
"description": "Naglalapat ng dynamic na tema at visual effect batay sa color palette ng album",
"menu": {
"color-mix-ratio": {
"label": "Ratio ng paghahalo ng kulay",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Tema ng Kulay ng Album"
},
"ambient-mode": {
"description": "Naglalapat ng lighting effect sa pamamagitan ng pag-cast ng mga magiliw na kulay mula sa video, sa background ng iyong screen",
"menu": {
"blur-amount": {
"label": "Dami ng blur",
"submenu": {
"pixels": "{{blurAmount}} na pixel"
}
},
"buffer": {
"label": "Buffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Kalabuan (Opacity)",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Kalidad",
"submenu": {
"pixels": "{{quality}} na pixel"
}
},
"size": {
"label": "Laki",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Ayos ng Transisyon",
"submenu": {
"during": "Habang {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Gumamit ng fullscreen"
}
},
"name": "Ambient Mode"
},
"amuse": {
"description": "Nagdaragdag ng suporta sa Pear Desktop para sa Amuse now playing widget ng 6K Labs",
"response": {
"query": "Tumatakbo ang Amuse API server. Gamitin ang GET /query para makuha ang impo ng kanta."
}
},
"api-server": {
"description": "Nagdadagdag ng API Server upang kontrolin ang player",
"dialog": {
"request": {
"buttons": {
"allow": "Payagan",
"deny": "Tanggihan"
},
"message": "Payagan ang {{ID}} ({{origin}}) upang ma-access ang API?",
"title": "Awtorisasyon ng API request"
}
},
"menu": {
"auth-strategy": {
"label": "Estratehiya ng awtorisasyon",
"submenu": {
"auth-at-first": {
"label": "Mag-autorisa sa unang request"
},
"none": {
"label": "Walang awtorisasyon"
}
}
},
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "API Server [Beta]",
"prompt": {
"hostname": {
"label": "Itala ang hostname (tulad ng 0.0.0.0) para sa API server:",
"title": "Hostname"
},
"port": {
"label": "Itala ang port para sa API server:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Ilapat ang compression sa audio (pinababa ang volume ng pinakamalakas na bahagi ng signal at pinapataas ang volume ng pinakamalambot na bahagi)",
"name": "Compressor ng Audio"
},
"auth-proxy-adapter": {
"description": "Suporta para sa paggamit ng authentication proxy services",
"menu": {
"disable": "Huwag paganahin ang Proxy Adapter",
"enable": "Paganahin ang Proxy Adapter",
"port": {
"label": "Port"
}
},
"name": "Auth Proxy Adapter",
"prompt": {
"hostname": {
"label": "Ilagay ang pangalan ng host para sa local proxy server (kinailangang mag-restart):",
"title": "Hostname ng Proxy"
},
"port": {
"label": "Ilagay ang port para sa local proxy server (kinailangang mag-restart):",
"title": "Port ng Proxy"
}
}
},
"blur-nav-bar": {
"description": "Gawing transparent at malabo ang bar ng nabigasyon",
"name": "Palabuin ang Bar ng Nabigasyon"
},
"bypass-age-restrictions": {
"description": "I-bypass ang pag-verify ng edad ng Music Player",
"name": "I-bypass ang Restriksyon sa Edad"
},
"captions-selector": {
"description": "Tagapili ng caption para sa mga audio track ng Pear Desktop",
"menu": {
"autoload": "Awtomatikong piliin ang huling ginamit na caption",
"disable-captions": "Walang mga caption bilang default"
},
"name": "Tagapili ng Caption",
"prompt": {
"selector": {
"label": "Kasalukuyang wika ng caption:{{language}}",
"none": "Wala",
"title": "Pumili ng wika ng caption"
}
},
"templates": {
"title": "Bumukas ng pagpilian ng caption"
},
"toast": {
"caption-changed": "Binago ang caption sa {{language}}",
"caption-disabled": "Di-napagana ang mga caption",
"no-captions": "Walang captions ay available para sa kantang ito"
}
},
"compact-sidebar": {
"description": "Laging i-set ang sidebar sa compact mode",
"name": "Pinaliit na Sidebar"
},
"crossfade": {
"description": "I-crossfade kada kanta",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Tagal ng pag-fade in (ms)",
"fade-out-duration": "Tagal ng pag-fade out (ms)",
"fade-scaling": {
"label": "Scaling ng pag-fade"
},
"seconds-before-end": "I-crossfade sa loob ng N segundo bago ang katapusan"
},
"title": "Pagpipilian sa crossfade"
}
}
},
"custom-output-device": {
"description": "I-configure ang custom na output media device para sa mga kanta",
"menu": {
"device-selector": "Pumili ng Device"
},
"name": "Custom na Output Device",
"prompt": {
"device-selector": {
"label": "Pumili ng output media device na gagamitin",
"title": "Pumili ng Output Device"
}
}
},
"disable-autoplay": {
"description": "Gawing simulan ang kanta sa \"naka-pause\" na mode",
"menu": {
"apply-once": "Nalalapat lamang sa startup"
},
"name": "Di-paganahin ang Autoplay"
},
"discord": {
"backend": {
"already-connected": "Sinubukang kumonekta sa aktibong koneksyon",
"connected": "Nakakonekta sa Discord",
"disconnected": "Nadiskonekta sa Discord"
},
"description": "Ipakita sa iyong mga kaibigan kung ano ang pinapakinggan mo gamit ang Rich Presence",
"menu": {
"auto-reconnect": "Awtomatikong kumonekta muli",
"clear-activity": "I-clear ang aktibidad",
"clear-activity-after-timeout": "I-clear ang aktibidad pagkatapos ng timeout",
"connected": "Nakakonekta",
"disconnected": "Nadiskonekta",
"hide-duration-left": "Itago ang natitirang oras",
"hide-github-button": "Itago ang button na GitHub link",
"play-on-pear-desktop": "Patugtugin sa Pear Desktop",
"set-inactivity-timeout": "I-set ang inactivity timeout",
"set-status-display-type": {
"submenu": {
"artist": "Nakikinig sa {artist}",
"title": "Nakikinig sa {song title}",
"pear-desktop": "Kumikinig sa Pear Desktop"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Ilagay ang inactivity timeout sa ilang segundo:",
"title": "I-set ang inactivity timeout"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Kainis! Paumanhin, nabigo ang pag-download…",
"title": "Nagkaroon ng error sa pag-download!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} na mga kanta)",
"message": "Dina-download ang Playlist na {{playlistTitle}}",
"title": "Nasimulan na ang pag-download"
}
},
"feedback": {
"conversion-progress": "Pag-convert: {{percent}}%",
"converting": "Kino-convert…",
"done": "Natapos na: {{filePath}}",
"download-info": "Dina-download ang {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Dina-download: {{percent}}%",
"downloading": "Dina-download…",
"downloading-counter": "Dina-download {{current}}/{{total}}…",
"downloading-playlist": "Dina-download ang playlist \"{{playlistTitle}}\" - {{playlistSize}} na mga kanta ({{playlistId}})",
"error-while-downloading": "Error sa pag-download \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Ang folder na {{playlistFolder}} ay umiiral na",
"getting-playlist-info": "Kinukuha ang impo ng playlist…",
"loading": "Naglo-load…",
"playlist-has-only-one-song": "May isang aytem lang ang playlist, direktang dina-download na",
"playlist-id-not-found": "Walang playlist ID na nahanap",
"playlist-is-empty": "Walang laman ang playlist",
"playlist-is-mix-or-private": "Error sa pagkuha ng impo ng playlist: tiyaking hindi ito pribado o \"Mixed para sa iyo\" na playlist\n\n{{error}}",
"preparing-file": "Inihahanda ang file…",
"saving": "Sine-save…",
"trying-to-get-playlist-id": "Sinusubukang makuha ang playlist ID: {{playlistId}}",
"video-id-not-found": "Hindi nahanap ang video",
"writing-id3": "Sinusulat ang mga ID3 na tag…"
}
},
"description": "Dina-download ang mga MP3 / source audio direkta mula sa interface",
"menu": {
"choose-download-folder": "Pumili ng download folder",
"download-finish-settings": {
"label": "Kung natapos ang download",
"prompt": {
"last-percent": "Tapos ng x na porsyento",
"last-seconds": "Huling x na segundo",
"title": "I-configure kung kailan magda-download"
},
"submenu": {
"enabled": "Napagana na",
"mode": "Sukatan ng oras",
"percent": "Porsyento",
"seconds": "Segundo"
}
},
"download-playlist": "Dina-download ang playlist",
"presets": "Mga preset",
"skip-existing": "Laktawan ang mga kasalukuyang file"
},
"name": "Taga-download",
"renderer": {
"can-not-update-progress": "Hindi ma-update ang progress"
},
"templates": {
"button": "I-download"
}
},
"equalizer": {
"description": "Nagdaragdag ng equalizer sa player",
"menu": {
"presets": {
"label": "Mga Preset",
"list": {
"bass-booster": "Taga-boost ng Bass"
}
}
},
"name": "Equalizer"
},
"exponential-volume": {
"description": "Ginagawang exponential ang volume slider para mas madaling pumili ng mas mababang volume.",
"name": "Exponential na Volume"
},
"in-app-menu": {
"description": "Nagbibigay sa mga menu-bar ng magarbo, madilim o kulay ng album",
"menu": {
"hide-dom-window-controls": "Itago ang mga DOM window control"
},
"name": "In-App na Menu"
},
"lumiastream": {
"description": "Nabibigay suporta sa Lumia Stream",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Nagdaragdag ng suporta sa lyrics para sa karamihan ng kanta",
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Kinuha ang lyrics para sa Genius"
}
},
"music-together": {
"description": "Magbahagi ng playlist sa iba. Kapag nagpatugtog ang host ng isang kanta, maririnig ng lahat ang parehong kanta",
"dialog": {
"enter-host": "Ilagay ang Host ID"
},
"internal": {
"save": "I-save",
"track-source": "Source ng Track",
"unknown-user": "Di-kilalang User"
},
"menu": {
"click-to-copy-id": "Kopyahin ang Host ID",
"close": "Isara ang Music Together",
"connected-users": "Nakakonektang (mga) User",
"disconnect": "Mag-diskonekta sa Music Together",
"empty-user": "Walang naka-konektang user",
"host": "Host ng Music Together",
"join": "Sumali sa Music Together",
"permission": {
"all": "Payagan ang mga guest na kontrolin ang playlist at player",
"host-only": "Ang host lamang ang maka-kontrol ng playlist at player",
"playlist": "Payagan ang mga guest na kontrolin ang playlist"
},
"set-permission": "Palitan ng permiso ng pag-control",
"status": {
"disconnected": "Nadiskonekta",
"guest": "Nakakonekta bilang Guest",
"host": "Nakakonekta bilang Host"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Nabigong magdagdag ng kanta",
"closed": "Nakasara ang Music Together",
"disconnected": "Nakadiskonekta ang Music Together",
"host-failed": "Nabigong mag-host ng Music Together",
"id-copied": "Nakopya na ang Host ID sa clipboard",
"id-copy-failed": "Nabigong nakopya ang Host ID sa clipboard",
"join-failed": "Nabigong sumali sa Music Together",
"joined": "Nakasali sa Music Together",
"permission-changed": "Ang permiso ng Music Together ay nabago sa \"{{permission}}\"",
"remove-song-failed": "Nabigong natanggal ang kanta",
"user-connected": "{{name}} ay sumali sa Music Together",
"user-disconnected": "{{name}} ay umalis sa Music Together"
}
},
"navigation": {
"description": "Ang Next/Back navigation na arrow ay direktang magamit sa interface, katulad sa iyong paboritong browser",
"name": "Nabigasyon",
"templates": {
"back": {
"title": "Pumunta sa nakaraang page"
},
"forward": {
"title": "Pumunta sa susunod na page"
}
}
},
"no-google-login": {
"description": "Tanggalin ang mga Google login na button at mga link mula sa interface",
"name": "Walang Google na Login"
},
"notifications": {
"description": "Magpakita ng notification kapag nagsimulang tumugtog ang kanta (magagamit ang mga interactive na notification sa Windows)",
"menu": {
"interactive": "Interactive na Notification",
"interactive-settings": {
"label": "Mga Interactive na Setting",
"submenu": {
"hide-button-text": "Itago ang button na texto",
"refresh-on-play-pause": "I-refresh sa Pag-play/Pag-pause",
"tray-controls": "Buksan/Isara sa pag-click sa tray"
}
},
"priority": "Prioridad ng Notification",
"toast-style": "Estilo ng toast",
"unpause-notification": "Ipakita ang notification sa pag-unpause"
},
"name": "Mga Abiso"
},
"performance-improvement": {
"description": "Pagbutihin ang performance sa pamamagitan ng pagpapagana ng mga mapanganib na script",
"name": "Pagpapabuti ng performance [Beta]"
},
"picture-in-picture": {
"description": "Payagan ang pag-palit ng app sa picture-in-picture mode",
"menu": {
"always-on-top": "Laging sa itaas",
"hotkey": {
"prompt": {
"label": "Pumili ng hotkey sa pag-toggle ng picture-in-picture",
"title": "Hotkey ng Picture-in-picture"
}
},
"save-window-position": "I-save ang posisyon ng window",
"save-window-size": "I-save ang laki ng window",
"use-native-pip": "Gamitin ang browser native na PiP"
},
"name": "Picture-na-picture",
"templates": {
"button": "Picture-na-picture"
}
},
"playback-speed": {
"description": "Makinig na mabilisan, makinig na mabagalan! Nagdaragdag ito ng slider upang makontrol ang bilis ng kanta",
"name": "Bilis ng Playback",
"templates": {
"button": "Bilis"
}
},
"precise-volume": {
"description": "Kontrolin nang wasto ang volume gamit ang mousewheel/mga hotkey, na may custom HUD at customizable na volume step",
"menu": {
"arrows-shortcuts": "Lokal na Arrow-key na Kontrol",
"custom-volume-steps": "I-set ang custom na Volume Step",
"global-shortcuts": "Global na mga Hotkey"
},
"name": "Eksaktong Volume",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Bawasan ang Volume",
"increase": "Dagdagan ang Volume"
},
"label": "Pumili ng Keybind para sa Global Volume:"
},
"volume-steps": {
"label": "Pumili ng Dagdagan/Bawasan ang volume step"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Kasalukuyang Kalidad: {{quality}}",
"message": "Pumili ng Kalidad ng Video:",
"title": "Pumili ng Kalidad ng Video"
}
}
},
"description": "Payagang mapapalitan ang kalidad ng video na may button sa video overlay",
"name": "Taga-palit sa quality ng video",
"renderer": {
"quality-settings-button": {
"label": "Buksan ang taga-palit ng quality"
}
}
},
"scrobbler": {
"description": "Idagdag ang scrobbling support (last.fm, Listenbrains, atbp.)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Nabigong mag-authenticate sa Last.fm\nItago ang popup hanggang sa susunod na pag-restart.",
"title": "Nabigo ang Authentication"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Mga setting ng API para sa Last.fm"
},
"listenbrainz": {
"token": "Ilagay ang user token ng ListenBrainz"
},
"scrobble-alternative-artist": "Gumamit ng mga alternatibong artist",
"scrobble-alternative-title": "Gumamit ng alternatibong mga title",
"scrobble-other-media": "Mag-Scrobble ng ibang media"
},
"prompt": {
"lastfm": {
"api-key": "API key ng Last.fm",
"api-secret": "API secret ng Last.fm"
},
"listenbrainz": {
"token": {
"label": "Ilagay ang ListenBrainz user token:",
"title": "Token ng ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "Nagbibigay-daan sa pagtatakda ng mga global hotkey para sa playback (play/pause/susunod/nakaraan) at pag-off ng media OSD sa pamamagitan ng pag-override sa mga media key, pag-on sa Ctrl/CMD + F para maghanap, pag-on sa suporta ng Linux MPRIS para sa mga media key, at mga custom na hotkey para sa mga advanced na user",
"menu": {
"override-media-keys": "I-override ang mga Media Key",
"set-keybinds": "I-set ang Global Song Control"
},
"name": "Mga shortcut (at MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Susunod",
"play-pause": "Mag-play / Mag-pause",
"previous": "Nakaraan"
},
"label": "Pumili ng Global na Keybind para sa Songs Control:",
"title": "Global na mga Keybind"
}
}
},
"skip-disliked-songs": {
"description": "Laktawan ang na-dislike na kanta",
"name": "I-skip ang mga Na-dislike na Kanta"
},
"skip-silences": {
"description": "Automatikong laktawan ang mga tahimik na mga seksyon sa kanta",
"name": "I-skip ang mga Katahimikan"
},
"sponsorblock": {
"description": "Automatikong Laktawan ang di part ng kanta tulad ng intro/outro o part ng mga music video na ang kanta ay di nagple-play"
},
"synced-lyrics": {
"description": "Nagbibigay ng naka-sync na lyrics sa mga kanta, gamit ang mga provider tulad ng LRClib.",
"errors": {
"fetch": "⚠️\t Nagkaroon ng error habang kinukuha ang lyrics.\n\t Subukang muli mamaya.",
"not-found": "⚠️ Walang nakitang lyrics para sa kantang ito."
},
"menu": {
"default-text-string": {
"label": "Default na character sa pagitan ng lyrics",
"tooltip": "Pumili ng default na character na gagamitin sa pagitan ng lyrics"
},
"line-effect": {
"label": "Effect ng Linya",
"submenu": {
"fancy": {
"label": "Magarbo",
"tooltip": "Gumamit ng malaki, mala-app na effect sa kasalukuyang linya"
},
"focus": {
"label": "Focus",
"tooltip": "Gawing puti lamang ang kasalukuyang linya"
},
"offset": {
"label": "Offset",
"tooltip": "I-offset sa kanan ang kasalukuyang linya"
},
"scale": {
"label": "Scale",
"tooltip": "I-scale ang kasalukuyang linya"
}
},
"tooltip": "Pumili ng effect na ilalapat sa kasalukuyang linya"
},
"precise-timing": {
"label": "Gawing perpektong naka-sync ang lyrics",
"tooltip": "Kalkulahin sa millisecond ang pagpapakita ng susunod na linya (maaaring magkaroon ng maliit na epekto sa performance)"
},
"preferred-provider": {
"label": "Napiling Provider",
"none": {
"label": "Wala",
"tooltip": "Walang napiling provider"
},
"tooltip": "Pumili ng default na provider para gagamitin"
},
"romanization": {
"label": "I-romanize ang lyrics",
"tooltip": "Kung ang lyrics ay nasa ibang wika, subukang magpakita ng latin na bersyon."
},
"show-lyrics-even-if-inexact": {
"label": "Ipakita ang lyrics kahit di-eksakto",
"tooltip": "Kung hindi matagpuan ang kanta, susubukan muli ng plugin gamit ang ibang query sa paghahanap.\nAng resulta mula sa pangalawang pagsubok ay maaaring hindi eksakto."
},
"show-time-codes": {
"label": "Ipakita ang mga time code",
"tooltip": "Ipakita ang mga time code kasunod sa lyrics"
}
},
"name": "Pag-sync ng Lyrics",
"refetch-btn": {
"fetching": "Nag-fe-fetch...",
"normal": "I-fetch muli ang lyrics"
},
"warnings": {
"duration-mismatch": "⚠️ - Maaaring hindi naka-sync ang lyrics dahil sa hindi pagkakatugma ng duration.",
"inexact": "⚠️ - Maaaring hindi eksakto ang lyrics para sa kantang ito",
"instrumental": "⚠️ - Ito ay isang instrumental na kanta"
}
},
"taskbar-mediacontrol": {
"description": "Kontrolin ang pag-play mula sa iyong taskbar ng Windows"
},
"touchbar": {
"description": "Idaragdag ang TouchBar na widget para sa mga user ng macOS"
},
"transparent-player": {
"description": "Gawing transparent ang app window",
"menu": {
"type": {
"label": "Uri",
"submenu": {
"none": "Wala",
"tabbed": "Naka-tab"
}
}
},
"name": "Transparent na Player"
},
"tuna-obs": {
"description": "Integrasyon kasama ang Tuna na OBS plugin"
},
"unobtrusive-player": {
"description": "Pinipigilan ang player na mag-pop up kapag nagpe-play ng kanta",
"name": "Hindi mapanghimasok na Player"
},
"video-toggle": {
"description": "Idaragdag ng button na magpalit sa Video/Kanta na mode. maaari ding opsyonal na alisin ang tab ng video",
"menu": {
"align": {
"label": "Pag-align",
"submenu": {
"left": "Kaliwa",
"middle": "Gitna",
"right": "Kanan"
}
},
"force-hide": "Piliting tanggalin ang video tab",
"mode": {
"submenu": {
"disabled": "Di-napagana"
}
}
},
"name": "Pag-toggle ng Video",
"templates": {
"button-song": "Kanta"
}
},
"visualizer": {
"description": "Idaragdag ng visualizer sa player",
"menu": {
"visualizer-type": "Uri ng Visualizer"
},
"name": "Taga-visualize"
}
}
}

View File

@ -1,950 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Échec de l'exécution du plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} exécuté en {{ms}}ms",
"initialize-failed": "Échec de l'initialisation du plugin \"{{pluginName}}\"",
"load-all": "Chargement de tous les plugins",
"load-failed": "Échec du chargement du plugin \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" chargé",
"unload-failed": "Échec du déchargement du plugin \"{{pluginName}}\"",
"unloaded": "Plugin \"{{pluginName}}\" déchargé"
}
}
},
"language": {
"code": "fr",
"local-name": "Français",
"name": "French"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Chargement terminé. DevTools ouvert"
},
"i18n": {
"loaded": "i18n chargé"
},
"second-instance": {
"receive-command": "Received command over protocol : \"{{command}}\""
},
"theme": {
"css-file-not-found": "Le fichier de CSS \"{{cssFile}}\" n'existe pas, ignorer"
},
"unresponsive": {
"details": "Erreur : Aucune réponse!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Effacement du cache de l'application"
},
"window": {
"tried-to-render-offscreen": "La fenêtre a essayé d'effectuer un rendu hors écran, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Le menu est masqué, utilisez 'Alt' pour l'afficher (ou 'Échap' si vous utilisez le menu de l'application)",
"message": "Le masquage du menu est activé",
"title": "Masquer le menu activé"
},
"need-to-restart": {
"buttons": {
"later": "Plus tard",
"restart-now": "Redémarrer maintenant"
},
"detail": "\"{{pluginName}}\" plugin nécessite un redémarrage pour qu'il soit pris en compte",
"message": "\"{{pluginName}}\" a besoin d'un redémarrage",
"title": "Redémarrage requis"
},
"unresponsive": {
"buttons": {
"quit": "Quitter",
"relaunch": "Relancer",
"wait": "Attendre"
},
"detail": "Nous sommes désolés du dérangement! veuillez choisir quoi faire:",
"message": "L'application ne répond pas",
"title": "La fenêtre ne répond pas"
},
"update-available": {
"buttons": {
"disable": "Désactiver les mises à jour",
"download": "Télécharger",
"ok": "Ok"
},
"detail": "Une nouvelle version est disponible et peut-être télécharger sur {{downloadLink}}",
"message": "Une nouvelle version est disponible",
"title": "Mise à jour disponible"
}
},
"menu": {
"about": "À propos",
"navigation": {
"label": "Navigation",
"submenu": {
"copy-current-url": "Copier l'URL actuelle",
"go-back": "Retour",
"go-forward": "Avancer",
"quit": "Quitter",
"restart": "Redémarrer l'application"
}
},
"options": {
"label": "Paramètres",
"submenu": {
"advanced-options": {
"label": "Options avancées",
"submenu": {
"auto-reset-app-cache": "Réinitialiser le cache de l'application au démarrage",
"disable-hardware-acceleration": "Désactiver les accélérations matérielles",
"edit-config-json": "Modifier config.json",
"override-user-agent": "Remplacer le User-Agent",
"restart-on-config-changes": "Redémarrer quand la configuration change",
"set-proxy": {
"label": "Définir un proxy",
"prompt": {
"label": "Entrez l'adresse proxy : (laissez vide pour désactiver)",
"placeholder": "Exemple: SOCKS5://127.0.0.1:9999",
"title": "Définir un proxy"
}
},
"toggle-dev-tools": "Ouvrir/fermer les outils de développement"
}
},
"always-on-top": "Toujours au dessus",
"auto-update": "Mise à jour automatique",
"hide-menu": {
"dialog": {
"message": "Le menu sera masqué au prochain lancement, utilisez [Alt] pour l'afficher (ou backtick [`] si vous utilisez le menu intégré à l'application)",
"title": "Masquer le menu activé"
},
"label": "Cacher le menu"
},
"language": {
"dialog": {
"message": "La langue sera changée après le redémarrage",
"title": "Langue modifiée"
},
"label": "Langue",
"submenu": {
"to-help-translate": "Envie d'aider à la traduction ? Cliquer ici"
}
},
"resume-on-start": "Reprendre la dernière chanson quand l'application démarre",
"single-instance-lock": "Verrouillage d'instance unique",
"start-at-login": "Démarrer à la connexion",
"starting-page": {
"label": "Page de démarrage",
"unset": "Définir à vide"
},
"tray": {
"label": "Plateau",
"submenu": {
"disabled": "Désactivé",
"enabled-and-hide-app": "Activé et cacher l'app",
"enabled-and-show-app": "Activé et afficher l'application",
"play-pause-on-click": "Lecture/Pause au clic"
}
},
"visual-tweaks": {
"label": "Ajustements visuels",
"submenu": {
"custom-window-title": {
"label": "Titre de fenêtre personnalisé",
"prompt": {
"label": "Entrés un titre de fenêtre : (Laissé vide pour déactiver)",
"placeholder": "Exemple : Pear Desktop"
}
},
"like-buttons": {
"default": "Par défaut",
"force-show": "Forcer à apparaître",
"hide": "Cacher",
"label": "Boutons « J'aime »"
},
"remove-upgrade-button": "Supprimer le bouton de mise à niveau",
"theme": {
"dialog": {
"button": {
"cancel": "Annuler",
"remove": "Supprimer"
},
"remove-theme": "Êtes-vous sûr de supprimer le thème personnalisé?",
"remove-theme-message": "Cela va supprimer le thème personnalisé"
},
"label": "Thème",
"submenu": {
"import-css-file": "Importer fichier CSS personnalisé",
"no-theme": "Pas de thème"
}
}
}
}
}
},
"plugins": {
"enabled": "Activé",
"label": "Extensions",
"new": "NOUVEAU"
},
"view": {
"label": "Fenêtre",
"submenu": {
"force-reload": "Forcer l'actualisation",
"reload": "Actualiser",
"reset-zoom": "Taille réelle",
"toggle-fullscreen": "Basculer en plein écran",
"zoom-in": "Zoom avant",
"zoom-out": "Zoom arrière"
}
}
},
"tray": {
"next": "Suivant",
"play-pause": "Lecture/Pause",
"previous": "Précédent",
"quit": "Quitter",
"restart": "Redémarrer l'application",
"show": "Afficher la fenêtre",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Si une publicité apparaît, le son est coupé et la vitesse de lecture est réglée sur 16x",
"name": "Accélérer les publicités"
},
"adblocker": {
"description": "Bloquer toutes les annonces et le suivi par défaut",
"menu": {
"blocker": "Bloqueur"
},
"name": "Bloqueur de publicités"
},
"album-actions": {
"description": "Ajoute les boutons Dislike, Undislike, Like, et Unlike à appliquer sur toutes les chansons dans un playlist ou un album.",
"name": "Actions d'Album"
},
"album-color-theme": {
"description": "Applique un thème dynamique et des effets visuels basés sur la palette des couleurs de l'album",
"menu": {
"color-mix-ratio": {
"label": "Ratio de mélange des couleurs",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Thème de couleur d'album"
},
"ambient-mode": {
"description": "Applique un effet d'éclairage en jetant des couleurs douces de la vidéo, dans le fond de votre écran",
"menu": {
"blur-amount": {
"label": "Quantité de flou",
"submenu": {
"pixels": "{{blurAmount}} pixels"
}
},
"buffer": {
"label": "Tampon",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Opacité",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Qualité",
"submenu": {
"pixels": "{{quality}} pixels"
}
},
"size": {
"label": "Taille",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Transition en douceur",
"submenu": {
"during": "Pendant {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Utilisation du mode plein écran"
}
},
"name": "Mode ambiant"
},
"amuse": {
"description": "Ajout de la prise en charge de Pear Desktop pour le widget Amuse now playing de 6K Labs",
"name": "Amuse",
"response": {
"query": "Le serveur API Amuse est en cours d'exécution. Envoyez une requête GET /query pour obtenir des informations sur la chanson."
}
},
"api-server": {
"description": "Ajouter un serveur API pour contrôler le lecteur",
"dialog": {
"request": {
"buttons": {
"allow": "Autoriser",
"deny": "Interdire"
},
"message": "Autoriser {{ID}} ({{origin}}) à accéder à l'API?",
"title": "Requête d'autorisation d'API"
}
},
"menu": {
"auth-strategy": {
"label": "Plan d'autorisation",
"submenu": {
"auth-at-first": {
"label": "Autoriser à la première requête"
},
"none": {
"label": "Pas d'autorisation"
}
}
},
"hostname": {
"label": "Nom de l'hôte"
},
"port": {
"label": "Port"
}
},
"name": "Serveur API [Beta]",
"prompt": {
"hostname": {
"label": "Entrer le nom de l'hôte (par exemple : 0.0.0.0) pour le serveur API :",
"title": "Nom d'hôte"
},
"port": {
"label": "Entrez le port du serveur de l'API :",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Appliquer une compression à l'audio (diminue le volume des parties les plus fortes du signal et augmente le volume des parties les plus faibles)",
"name": "Compresseur audio"
},
"auth-proxy-adapter": {
"description": "Prise en charge de l'utilisation des services de proxy d'authentification",
"menu": {
"disable": "Désactiver l'Adaptateur Proxy",
"enable": "Activer l'Adaptateur Proxy",
"hostname": {
"label": "Nom d'hôte"
},
"port": {
"label": "Port"
}
},
"name": "Adaptateur de Proxy d'Authentification",
"prompt": {
"hostname": {
"label": "Saisir le nom d'hôte pour le serveur proxy local (nécessite un redémarrage) :",
"title": "Nom d'hôte du proxy"
},
"port": {
"label": "Saisir le port pour le serveur proxy local (nécessite un redémarrage) :",
"title": "Port du proxy"
}
}
},
"blur-nav-bar": {
"description": "Rend la barre de navigation transparente et floue",
"name": "Barre de navigation floue"
},
"bypass-age-restrictions": {
"description": "Contourner la vérification de l'âge de Music Player",
"name": "Contourner les restrictions dâge"
},
"captions-selector": {
"description": "Sélecteur de sous-titres pour les pistes audio Pear Desktop",
"menu": {
"autoload": "Sélectionner automatiquement la dernière légende utilisée",
"disable-captions": "Pas de sous-titres par défaut"
},
"name": "Sélecteur de sous-titres",
"prompt": {
"selector": {
"label": "Langue de sous-titrage actuelle : {{language}}",
"none": "Aucun",
"title": "Sélectionnez la langue des sous-titres"
}
},
"templates": {
"title": "Ouvrir le sélecteur de sous-titres"
},
"toast": {
"caption-changed": "Sous-titres changés en {{language}}",
"caption-disabled": "Sous-titres désactivés",
"no-captions": "Aucun sous-titre disponible pour cette chanson"
}
},
"compact-sidebar": {
"description": "Toujours définir la barre latérale en mode compact",
"name": "Barre latérale compacte"
},
"crossfade": {
"description": "Fondu enchaîné entre les chansons",
"menu": {
"advanced": "Avancé"
},
"name": "Fondu enchaîné [Bêta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Durée du début du fondu (ms)",
"fade-out-duration": "Durée de sortie du fondu (ms)",
"fade-scaling": {
"label": "Mise à l'échelle du fondu",
"linear": "Linéaire",
"logarithmic": "Logarithmique"
},
"seconds-before-end": "Fondu enchaîné N secondes avant la fin"
},
"title": "Options de fondu enchaîné"
}
}
},
"custom-output-device": {
"description": "Configurer un périphérique de sortie personnalisé pour les morceaux",
"menu": {
"device-selector": "Sélectionner un appareil"
},
"name": "Périphérique de sortie personnalisé",
"prompt": {
"device-selector": {
"label": "Choisissez le périphérique de sortie à utiliser",
"title": "Sélectionner le périphérique de sortie"
}
}
},
"disable-autoplay": {
"description": "Fait démarrer la chanson en mode \"pause\"",
"menu": {
"apply-once": "S'applique seulement au démarrage"
},
"name": "Désactiver la lecture automatique"
},
"discord": {
"backend": {
"already-connected": "Tentative de connexion avec une connexion active",
"connected": "Connecté à Discord",
"disconnected": "Déconnecté de Discord"
},
"description": "Montrez à vos amis ce que vous écoutez avec Rich Presence",
"menu": {
"auto-reconnect": "Reconnexion automatique",
"clear-activity": "Effacer l'activité",
"clear-activity-after-timeout": "Effacer lactivité après un délai dattente",
"connected": "Connecté",
"disconnected": "Déconnecté",
"hide-duration-left": "Masquer la durée restante",
"hide-github-button": "Masquer le bouton du lien GitHub",
"play-on-pear-desktop": "Jouer sur Pear Desktop",
"set-inactivity-timeout": "Définir le délai d'inactivité",
"set-status-display-type": {
"label": "Texte d'état",
"submenu": {
"artist": "Écoute {artiste}",
"title": "Écoute {titre de la chanson}",
"pear-desktop": "Écoute Pear Desktop"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Entrez le délai d'inactivité en secondes :",
"title": "Définir le délai d'inactivité"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "Ok"
},
"message": "Argh ! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement !"
},
"start-download-playlist": {
"buttons": {
"ok": "Ok"
},
"detail": "({{playlistSize}} chansons)",
"message": "Téléchargement de la playlist {{playlistTitle}}",
"title": "Téléchargement a commencé"
}
},
"feedback": {
"conversion-progress": "Conversion : {{percent}} %",
"converting": "Conversion…",
"done": "Terminé : {{filePath}}",
"download-info": "Téléchargement {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Téléchargé: {{percent}}%",
"downloading": "Télécharge…",
"downloading-counter": "Télécharge {{current}}/{{total}}…",
"downloading-playlist": "Téléchargement de la playlist \"{{playlistTitle}}\"  {{playlistSize}} chansons ({{playlistId}})",
"error-while-downloading": "Erreur lors du téléchargement de \"{{author}} - {{title}}\" : {{error}}",
"folder-already-exists": "Le dossier {{playlistFolder}} existe déjà",
"getting-playlist-info": "Obtention d'informations sur la liste de lecture…",
"loading": "Chargement…",
"playlist-has-only-one-song": "La liste de lecture ne contient qu'un seul élément, téléchargement du morceau seul",
"playlist-id-not-found": "Aucun ID de liste de lecture trouvé",
"playlist-is-empty": "La liste de lecture est vide",
"playlist-is-mix-or-private": "Erreur lors de l'obtention des informations sur la liste de lecture: assurez-vous qu'il ne s'agit pas d'une liste privée ou \"Mixée pour vous\"\n\n{{error}}",
"preparing-file": "Péparer des fichier…",
"saving": "Sauvegarde…",
"trying-to-get-playlist-id": "Obtention de l'ID de la liste de lecture: {{playlistId}}",
"video-id-not-found": "Vidéo non trouvée",
"writing-id3": "Écriture des balises ID3…"
}
},
"description": "Télécharge les fichiers MP3/source audio directement depuis l'interface",
"menu": {
"choose-download-folder": "Choisissez le dossier de téléchargement",
"download-finish-settings": {
"label": "Télécharger une fois terminé",
"prompt": {
"last-percent": "Après x pour cent",
"last-seconds": "Dernières x secondes",
"title": "Configurer quand télécharger"
},
"submenu": {
"advanced": "Avancé",
"enabled": "Activé",
"mode": "Mode de temps",
"percent": "Pourcent",
"seconds": "Secondes"
}
},
"download-playlist": "Télécharger la liste de lecture",
"presets": "Préconfigurations",
"skip-existing": "Passer les fichiers existants"
},
"name": "Téléchargeur",
"renderer": {
"can-not-update-progress": "Impossible de mettre à jour la progression"
},
"templates": {
"button": "Télécharger"
}
},
"equalizer": {
"description": "Ajoute un égaliseur au lecteur",
"menu": {
"presets": {
"label": "Préréglages",
"list": {
"bass-booster": "Amplificateur de basses"
}
}
},
"name": "Égaliseur"
},
"exponential-volume": {
"description": "Rend le curseur de volume exponentiel afin qu'il soit plus facile de sélectionner des volumes plus faibles.",
"name": "Volume exponentiel"
},
"in-app-menu": {
"description": "Donne aux barres de menus un aspect élégant, sombre ou aux couleurs de l'album",
"menu": {
"hide-dom-window-controls": "Masquer les contrôles de la fenêtre DOM"
},
"name": "Menu intégré à l'application"
},
"lumiastream": {
"description": "Ajoute la prise en charge de Lumia Stream",
"name": "Lumia Stream [Bêta]"
},
"lyrics-genius": {
"description": "Ajoute la prise en charge des paroles pour la plupart des chansons",
"menu": {
"romanized-lyrics": "Paroles romanisées"
},
"name": "Paroles Genius",
"renderer": {
"fetched-lyrics": "Paroles récupérées pour Genius"
}
},
"music-together": {
"description": "Partage une playlist avec d'autres personnes. Quand l'hôte joue un son, tout les participants entendront le même son",
"dialog": {
"enter-host": "Entrer l'identifiant de l'hôte"
},
"internal": {
"save": "Enregistrer",
"track-source": "Source de la piste audio",
"unknown-user": "Utilisateur inconnu"
},
"menu": {
"click-to-copy-id": "Copier l'identifiant de l'hôte",
"close": "Fermer Music Together",
"connected-users": "Utilisateurs connectés",
"disconnect": "Déconnecter Music Together",
"empty-user": "Aucun utilisateur connecté",
"host": "Hôte du Music Together",
"join": "Rejoindre le Music Together",
"permission": {
"all": "Autorisez les invités à contrôler la musique et le player",
"host-only": "Seulement l'hôte peut contrôler les playlists et le lecteur",
"playlist": "Autoriser les invités à contrôler les playlists"
},
"set-permission": "Changer les permissions de contrôle",
"status": {
"disconnected": "Déconnecté",
"guest": "Connecté en tant qu'invité",
"host": "Connecté en tant qu'hôte"
}
},
"name": "Music Together [BETA]",
"toast": {
"add-song-failed": "Echec d'ajout de musique",
"closed": "Music Together fermé",
"disconnected": "Music Together déconnecté",
"host-failed": "Echec de l'hébergement du Music Together",
"id-copied": "Identifiant de l'hôte copié dans le presse papier",
"id-copy-failed": "Echec de la copie de l'identifiant de l'hôte dans le presse papier",
"join-failed": "Echec en rejoignant le Music Together",
"joined": "Rejoint le Music Together",
"permission-changed": "Permission du Music Together changé à \"{{permission}}\"",
"remove-song-failed": "Echec du retrait de la piste",
"user-connected": "{{name}} à rejoint le Music Together",
"user-disconnected": "{{name}} à quitté le Music Together"
}
},
"navigation": {
"description": "Flèches de navigation Suivant/Retour directement intégrées dans l'interface, comme dans votre navigateur préféré",
"name": "Navigation",
"templates": {
"back": {
"title": "Revenir à la page précédente"
},
"forward": {
"title": "Aller à la page suivante"
}
}
},
"no-google-login": {
"description": "Supprimer les boutons et liens de connexion Google de l'interface",
"name": "Pas de connexion Google"
},
"notifications": {
"description": "Afficher une notification quand une chanson commence à jouer (les notifications interactives sont disponibles sur Windows)",
"menu": {
"interactive": "Notifications interactives",
"interactive-settings": {
"label": "Paramètres interactifs",
"submenu": {
"hide-button-text": "Masquer le texte du bouton",
"refresh-on-play-pause": "Actualiser lors de la lecture/pause",
"tray-controls": "Ouvrir/Fermer sur le plateau, cliquez"
}
},
"priority": "Priorité des notifications",
"toast-style": "Style des notifications \"Toast\"",
"unpause-notification": "Afficher la notification lors de la reprise"
},
"name": "Notifications"
},
"performance-improvement": {
"description": "Améliorer les performances en activant les scripts expérimentaux",
"name": "Amélioration des performances [Beta]"
},
"picture-in-picture": {
"description": "Permet de basculer lapplication en mode image dans image",
"menu": {
"always-on-top": "Toujours en haut",
"hotkey": {
"label": "Raccourci clavier",
"prompt": {
"keybind-options": {
"hotkey": "Raccourci clavier"
},
"label": "Choisissez un raccourci clavier pour activer le mode Image dans l'image",
"title": "Touche de raccourci Image dans l'image"
}
},
"save-window-position": "Enregistrer la position de la fenêtre",
"save-window-size": "Enregistrer la taille de la fenêtre",
"use-native-pip": "Utiliser le mode image dans image natif du navigateur"
},
"name": "Image dans l'image",
"templates": {
"button": "Image dans l'image"
}
},
"playback-speed": {
"description": "Écoutez vite, écoutez lentement ! Ajoute un curseur qui contrôle la vitesse de la chanson",
"name": "Vitesse de lecture",
"templates": {
"button": "Vitesse"
}
},
"precise-volume": {
"description": "Contrôlez le volume avec précision à l'aide de la molette de la souris/des raccourcis clavier, avec une interface personnalisée et des étapes de volume personnalisables",
"menu": {
"arrows-shortcuts": "Contrôles avec les touches fléchées",
"custom-volume-steps": "Définir des étapes de volume personnalisées",
"global-shortcuts": "Raccourcis clavier globaux"
},
"name": "Volume précis",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Diminuer le volume",
"increase": "Augmenter le volume"
},
"label": "Choisissez les raccourcis clavier du volume global :",
"title": "Raccourcis clavier de volume global"
},
"volume-steps": {
"label": "Choisissez les étapes d'augmentation/diminution du volume",
"title": "Étapes de volume"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Qualité actuelle: {{quality}}",
"message": "Choisissez la qualité vidéo :",
"title": "Choisissez la qualité vidéo"
}
}
},
"description": "Permet de changer la qualité vidéo avec un bouton sur la vidéo",
"name": "Changeur de qualité vidéo",
"renderer": {
"quality-settings-button": {
"label": "Ouvrir le sélecteur de qualité du lecteur"
}
}
},
"scrobbler": {
"description": "Ajouter le support de scrobbling (ex. last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Erreur lors de l'authetification avec Last.fm\nCachez la popup jusqu'au prochain redémarrage.",
"title": "Authentification échouée"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Paramètres API de Last.fm"
},
"listenbrainz": {
"token": "Entrer le token utilisateur de ListenBrainz"
},
"scrobble-alternative-artist": "Utilisez d'autres artistes",
"scrobble-alternative-title": "Utiliser des titres alternatifs",
"scrobble-other-media": "Scrobbler d'autres médias"
},
"name": "Scrobble",
"prompt": {
"lastfm": {
"api-key": "Clé API de Last.fm",
"api-secret": "Secret de l'API de Last.fm"
},
"listenbrainz": {
"token": {
"label": "Entrez votre token utilisateur ListenBrainz:",
"title": "Token ListenBrainz"
}
}
}
},
"shortcuts": {
"description": "Permet de définir des raccourcis clavier globaux pour la lecture (lecture/pause/suivant/précédent) + désactiver l'OSD multimédia en remplaçant les touches multimédias + activer Ctrl/CMD + F pour rechercher + activer la prise en charge Linux MPRIS pour les touches multimédias + raccourcis clavier personnalisés pour les utilisateurs avancés.",
"menu": {
"override-media-keys": "Remplacer les touches multimédias",
"set-keybinds": "Définir les contrôles globaux des morceaux"
},
"name": "Raccourcis (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Suivant",
"play-pause": "Lecture / Pause",
"previous": "Précédent"
},
"label": "Choisissez les raccourcis clavier globaux pour le contrôle des morceaux :",
"title": "Raccourcis clavier globaux"
}
}
},
"skip-disliked-songs": {
"description": "Passer les musiques que je n'aime pas",
"name": "Passer les chansons « Je n'aime pas »"
},
"skip-silences": {
"description": "Ignorer automatiquement les sections de silence dans les chansons",
"name": "Passer les silences"
},
"sponsorblock": {
"description": "Saute automatiquement les parties non musicales comme l'intro/outro ou les parties de clips vidéo où la chanson n'est pas lue",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "Ajoute des paroles synchronisées aux chansons, grâce à LRClib par exemple.",
"errors": {
"fetch": "⚠️\tUne erreur s'est produite en allant chercher les paroles.\n\tMerci de réessayer plus tard.",
"not-found": "⚠️ Aucune paroles trouvées pour cette musique."
},
"menu": {
"default-text-string": {
"label": "Caractère par défaut entre les paroles",
"tooltip": "Choisi le caractère par défaut à utiliser pour l'espace entre les paroles"
},
"line-effect": {
"label": "Effet de ligne",
"submenu": {
"fancy": {
"label": "Raffiné",
"tooltip": "Utilise de grands effets de type application sur la ligne actuelle"
},
"focus": {
"label": "Focus",
"tooltip": "Rend seulement la ligne actuelle blanche"
},
"offset": {
"label": "Décalage",
"tooltip": "Décale sur la droite la ligne actuelle"
},
"scale": {
"label": "Grossissement",
"tooltip": "Agrandis la ligne actuelle"
}
},
"tooltip": "Choisi l'effet à appliquer sur la ligne actuelle"
},
"precise-timing": {
"label": "Rend les paroles parfaitement synchronisées",
"tooltip": "Calcul à la milliseconde près l'affichage de la ligne suivante (peut avoir un faible impact sur les performances)"
},
"preferred-provider": {
"label": "Fournisseur privilégié",
"none": {
"label": "Aucun",
"tooltip": "Aucun fournisseur privilégié"
},
"tooltip": "Choisissez le fournisseur par défaut à utiliser"
},
"romanization": {
"label": "Romaniser les paroles",
"tooltip": "Si les paroles sont dans une autre langue, essayez de les afficher dans une version latine."
},
"show-lyrics-even-if-inexact": {
"label": "Afficher les paroles même si inexactes",
"tooltip": "Si la musique n'est pas trouvé, le plugin essaye à nouveau avec une différence requête.\nLe résultat du deuxième essais peut ne pas être exacte."
},
"show-time-codes": {
"label": "Afficher les timecodes",
"tooltip": "Affiche à côté de chaque paroles son timecode"
}
},
"name": "Paroles Synchronisées",
"refetch-btn": {
"fetching": "Chargement...",
"normal": "Rafraîchir les paroles"
},
"warnings": {
"duration-mismatch": "⚠️ - Les paroles peuvent ne pas être synchronisées à cause d'une différence de durée.",
"inexact": "⚠️ - Les paroles de cette chanson peuvent ne pas être exactes",
"instrumental": "⚠️ - Cette musique n'a pas de paroles"
}
},
"taskbar-mediacontrol": {
"description": "Contrôlez la lecture depuis votre barre des tâches Windows",
"name": "Contrôle multimédia de la barre des tâches"
},
"touchbar": {
"description": "Ajoute un widget TouchBar pour les utilisateurs de macOS",
"name": "TouchBar"
},
"transparent-player": {
"description": "Rend la fenêtre de l'application transparente",
"menu": {
"opacity": {
"label": "Opacité",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Type",
"submenu": {
"acrylic": "Acrylique",
"mica": "Mica",
"none": "Aucun",
"tabbed": "À onglets"
}
}
},
"name": "Lecteur transparent"
},
"tuna-obs": {
"description": "Intégration avec le plugin OBS Tuna",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Empêche le lecteur de s'afficher quand un chanson est en lecture",
"name": "Lecteur Non-Intrusif"
},
"video-toggle": {
"description": "Ajoute un bouton pour basculer entre le mode Vidéo/Chanson. peut également supprimer tout l'onglet vidéo",
"menu": {
"align": {
"label": "Alignement",
"submenu": {
"left": "Gauche",
"middle": "Milieu",
"right": "Droite"
}
},
"force-hide": "Forcer la suppression de l'onglet vidéo",
"mode": {
"label": "Mode",
"submenu": {
"custom": "Bascule personnalisée",
"disabled": "Désactivé",
"native": "Bascule native"
}
}
},
"name": "Basculer la vidéo",
"templates": {
"button-song": "Musique",
"button-video": "Vidéo"
}
},
"visualizer": {
"description": "Ajoute un visualiseur au lecteur",
"menu": {
"visualizer-type": "Type de visualiseur"
},
"name": "Visualiseur"
}
}
}

View File

@ -1,210 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Error ao executar o plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "O plugin {{pluginName}}::{{contextName}} foi executado a {{ms}}milisegundos",
"initialize-failed": "Erro ao iniciar o plugin \"{{pluginName}}\"",
"load-all": "Cargando todos os plugins",
"load-failed": "Erro ao cargar o plugin \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" cargado",
"unload-failed": "Erro descargando o plugin {{pluginName}}",
"unloaded": "Plugin {{pluginName}} decargado"
}
}
},
"language": {
"code": "gl",
"local-name": "Galego",
"name": "Galego"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Carga completada. DevTools aberto"
},
"i18n": {
"loaded": "i18n cargado"
},
"second-instance": {
"receive-command": "Recibido comando sobre protocolo \"{{command}}\""
},
"theme": {
"css-file-not-found": "O arquivo CSS \"{{cssFile}}\" non existe, ignorando"
},
"unresponsive": {
"details": "Error irresponsivo!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Limpando a caché da app"
},
"window": {
"tried-to-render-offscreen": "A ventana tentou de renderizarse fora da pantalla, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "O menú está agochado, use 'Alt' para mostralo (ou 'Escape' se usa o menú dentro da app)",
"message": "Esconder Menú está deshabilitado",
"title": "Esconder Menú Habilitado"
},
"need-to-restart": {
"buttons": {
"later": "Despois",
"restart-now": "Reiniciar Agora"
},
"detail": "O plugin \"{{pluginName}}\" precisa dun reinicio para tomar efecto",
"message": "\"{{pluginName}}\" precisa reiniciar",
"title": "Requírese reinicio"
},
"unresponsive": {
"buttons": {
"quit": "Saír",
"relaunch": "Lanzar de novo",
"wait": "Agardar"
},
"detail": "Desculpa o inconveniente! Por favor escolle que facer:",
"message": "A aplicación non responde",
"title": "A xanela non responde"
},
"update-available": {
"buttons": {
"disable": "Desactivar actualizacións",
"download": "Descarregar",
"ok": "OK"
},
"detail": "Está dispoñíbel unha nova versión que se pode descarregar de {{downloadLink}}",
"message": "Hai una nova versión dispoñíbel",
"title": "Actualización dispoñíbel"
}
},
"menu": {
"about": "Sobre",
"navigation": {
"label": "Navegación",
"submenu": {
"copy-current-url": "Copiar o URL actual",
"go-back": "Atrás",
"go-forward": "Adiante",
"quit": "Saír",
"restart": "Reiniciar a aplicación"
}
},
"options": {
"label": "Opcións",
"submenu": {
"advanced-options": {
"label": "Opcións avanzadas",
"submenu": {
"auto-reset-app-cache": "Reiniciar a caché cando a aplicación arrinque",
"disable-hardware-acceleration": "Desactivar a aceleración hardware",
"edit-config-json": "Editar config.json",
"override-user-agent": "Substituír o User-Agent",
"restart-on-config-changes": "Reiniciar ao alterar a configuración",
"set-proxy": {
"label": "Configurar o proxy",
"prompt": {
"label": "Introducir o enderezo do proxy (deixar baleiro para desactivalo)",
"placeholder": "Exemplo: SOCKS5://127.0.0.1:9999",
"title": "Configurar o proxy"
}
},
"toggle-dev-tools": "Activar ou desactivar as DevTools"
}
},
"always-on-top": "Sempre en primeiro plano",
"auto-update": "Actualización automática",
"hide-menu": {
"dialog": {
"message": "O menú ocultarase no próximo inicio; use [Alt] para mostralo (ou a tecla [`] se emprega o menú integrado)",
"title": "Ocultar Menú activado"
},
"label": "Ocultar Menú"
},
"language": {
"dialog": {
"message": "A lingua hase mudar despois do reinicio",
"title": "Mudouse a lingua"
},
"label": "Lingua",
"submenu": {
"to-help-translate": "Quere axudar a traducir? Prema aquí"
}
},
"resume-on-start": "Retomar a última canción ao iniciar a aplicación",
"single-instance-lock": "Bloqueo de instancia única",
"start-at-login": "Iniciar co inicio de sesión",
"starting-page": {
"label": "Páxina de inicio",
"unset": "Sen definir"
},
"tray": {
"label": "Bandexa",
"submenu": {
"disabled": "Desactivado",
"enabled-and-hide-app": "Activado e ocultar a aplicación",
"enabled-and-show-app": "Activado e mostrar a aplicación",
"play-pause-on-click": "Reproducir/Pausar ao premer"
}
},
"visual-tweaks": {
"label": "Axustes visuais",
"submenu": {
"custom-window-title": {
"label": "Título de xanela personalizado",
"prompt": {
"label": "Introduza o título personalizado da xanela (deixe baleiro para desactivala)",
"placeholder": "Exemplo: Pear Desktop"
}
},
"like-buttons": {
"default": "Predeterminado",
"force-show": "Forzar a visualización",
"hide": "Agochar",
"label": "Botóns de Gústame"
},
"remove-upgrade-button": "Retirar o botón de anovación",
"theme": {
"dialog": {
"button": {
"cancel": "Cancelar",
"remove": "Retirar"
},
"remove-theme": "Estás certo que queres retirar o tema personalizado?",
"remove-theme-message": "Isto ha retirar o tema personalizado"
},
"label": "Tema",
"submenu": {
"import-css-file": "Importar arquivo CSS personalizado",
"no-theme": "Sen tema"
}
}
}
}
}
},
"plugins": {
"enabled": "Activado",
"label": "Complementos",
"new": "NOVO"
},
"view": {
"label": "Vista",
"submenu": {
"force-reload": "Forzar recarga",
"reload": "Recargar",
"reset-zoom": "Tamaño real",
"toggle-fullscreen": "Alternar Pantalla Completa",
"zoom-in": "Achegarse",
"zoom-out": "Afastarse"
}
}
},
"tray": {
"next": "Seguinte",
"play-pause": "Reproducir/Pausar",
"previous": "Anterior",
"quit": "Saír"
}
}
}

View File

@ -1,490 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "שגיאה בהרצת התוסף {{pluginName}}::{{contextName}}",
"executed-at-ms": "התוסף {{pluginName}}:{{contextName}} בוצע ב {{ms}}ms",
"initialize-failed": "טעינת התוסף \"{{pluginName}}\" נכשלה",
"load-all": "טוען את כל התוספים",
"load-failed": "שגיאה בטעינת התוסף \"{{pluginName}}\"",
"loaded": "התוסף \"{{pluginName}}\" נטען",
"unload-failed": "הסרת התוסף \"{{pluginName}} נכשלה",
"unloaded": "תוסף {{pluginName}} הורד"
}
}
},
"language": {
"code": "he",
"local-name": "עברית",
"name": "Hebrew"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "הטעינה הסתיימה. הכלים לפמתחים נפתחו"
},
"i18n": {
"loaded": "i18n נטען"
},
"second-instance": {
"receive-command": "התקבלה פקודה מעבר פרוטוקל: {{command}}"
},
"theme": {
"css-file-not-found": "קובץ ה-CSS \"{{cssFile}}\" לא קיים. מדלג"
},
"unresponsive": {
"details": "שגיאה ללא תגובה\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "מוחק קבצי מתמון"
},
"window": {
"tried-to-render-offscreen": "ווינדוס ניסה להציג תוכן מחוץ למסך, גודל חלון={{windowSize}}, גודל מסך={{displaySize}}, מיקום={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "התפריט מוחבא, השתמש \"Alt\" על להציג אותו (או \"Esacpe\" אם משתמשים בתפריט בתוך האפליקציה)",
"message": "הסתרת התפריט מופעלת",
"title": "הסתרת התפריט הופעלה"
},
"need-to-restart": {
"buttons": {
"later": "אחר כך",
"restart-now": "מתחיל את התוכנה מחדש עכשיו"
},
"detail": "\"{{pluginName}}\" מצריך אתחול",
"message": "\"{{pluginName}}\" דורש אתחול",
"title": "נדרשת הפעלה מחדש"
},
"unresponsive": {
"buttons": {
"quit": "יציאה",
"relaunch": "הפעל מחדש",
"wait": "המתן"
},
"detail": "אנו מצטערים על אי הנוחות! אנא בחר מה לעשות:",
"message": "האפליקציה אינה מגיבה",
"title": "החלון אינו מגיב"
},
"update-available": {
"buttons": {
"disable": "בטל עדכונים",
"download": "הורדה",
"ok": "אוקיי"
},
"detail": "גרסה חדשה זמינה, ניתן להוריד אותה ב-{{downloadLink}}",
"message": "גירסה חדשה זמינה כעת",
"title": "קיים עדכון חדש"
}
},
"menu": {
"about": "אודות",
"navigation": {
"label": "ניווט",
"submenu": {
"copy-current-url": "העתק את כתובת ה-URL",
"go-back": "חזור אחורה",
"go-forward": "לך קדימה",
"quit": "יציאה",
"restart": "הפעל מחדש את היישום"
}
},
"options": {
"label": "אפשרויות",
"submenu": {
"advanced-options": {
"label": "אפשרויות מתקדמות",
"submenu": {
"auto-reset-app-cache": "אפס את מטמון האפליקציה כאשר האפליקציה מתחילה",
"disable-hardware-acceleration": "השבת האצת החומרה",
"edit-config-json": "ערוך את config.json",
"override-user-agent": "עוקף את סוכן המשתמש",
"restart-on-config-changes": "הפעל מחדש בשינויי תצורה",
"set-proxy": {
"label": "הגדר שרת proxy",
"prompt": {
"label": "הזן כתובת פרוקסי: (להשאיר ריק כדי להשבית)",
"placeholder": "דוגמה: SOCKS5://127.0.0.1:9999",
"title": "הגדר שרת proxy"
}
},
"toggle-dev-tools": "שנה את מצב כלי המפתחים"
}
},
"always-on-top": "השאר מקדימה",
"auto-update": "עדכון אוטומטי",
"hide-menu": {
"dialog": {
"message": "התפריט יוסתר בהפעלה הבאה, השתמש ב-[Alt] כדי להציג אותו (או סמן את [`] אם אתה משתמש בתפריט בתוך האפליקציה)",
"title": "הסתר תפריט מופעל"
},
"label": "הסתר את התפריט"
},
"language": {
"dialog": {
"message": "השפה תשתנה לאחר הפעלת היישום מחדש",
"title": "השפה שונתה"
},
"label": "שפה",
"submenu": {
"to-help-translate": "רוצים לעזור לתרגם? לחץ כאן"
}
},
"resume-on-start": "המשך את השיר האחרון עם הפעלת האפליקציה",
"single-instance-lock": "נעילת מופע יחיד",
"start-at-login": "התחל בכניסה",
"starting-page": {
"label": "דף פתיחה",
"unset": "בטל"
},
"tray": {
"label": "מגש",
"submenu": {
"disabled": "מושבת",
"enabled-and-hide-app": "מופעל והסתר אפליקציה",
"enabled-and-show-app": "מופעל והמציג את האפליקציה",
"play-pause-on-click": "הפעל/השהה בלחיצה"
}
},
"visual-tweaks": {
"label": "תיקונים חזותיים",
"submenu": {
"custom-window-title": {
"prompt": {
"placeholder": "לדוגמה: שולחן כתיבה אגסי"
}
},
"like-buttons": {
"default": "ברירת מחדל",
"force-show": "הפעל בכוח",
"hide": "הסתר",
"label": "כפתורי לייק"
},
"remove-upgrade-button": "הסר לחצן שדרוג",
"theme": {
"dialog": {
"button": {
"cancel": "ביטול",
"remove": "הסר"
},
"remove-theme": "האם אתה בטוח שברצונך להסיר את העיצוב המותאם אישית?",
"remove-theme-message": "פעולה זו תסיר את ערכת הנושא המותאמת אישית"
},
"label": "ערכת נושא",
"submenu": {
"import-css-file": "ייבא קובץ CSS מותאם אישית",
"no-theme": "ללא ערכת נושא"
}
}
}
}
}
},
"plugins": {
"enabled": "מופעל",
"label": "פלאגינים",
"new": "חדש"
},
"view": {
"label": "צפה",
"submenu": {
"force-reload": "התחל מחדש בכוח",
"reload": "רענון",
"reset-zoom": "גודל אמיתי",
"toggle-fullscreen": "מסך מלא",
"zoom-in": "התקרב",
"zoom-out": "התרחק"
}
}
},
"tray": {
"next": "הבא",
"play-pause": "נגן/הפסק",
"previous": "הקודם",
"quit": "יציאה",
"restart": "הפעל מחדש",
"show": "הראה חלון",
"tooltip": {
"default": "שולחן כתיבה אגסי",
"with-song-info": "שולחן כתיב אגסי: {{יוצר}} - {{כותרת}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "במקרה של פרסומת, הסאונד מושתק ומהירות הוידאו מוכפלת ב-16",
"name": "הגבר מהירות פרסומת"
},
"adblocker": {
"description": "חסום את כל המודעות והמעקבים",
"menu": {
"blocker": "חוסם"
},
"name": "חוסם פרסומות"
},
"album-actions": {
"description": "מוסיף לחצני ביטול אהבתי, דיסלייק, 'אהבתי' ו'לא אהבתי' כדי להחיל זאת על כל השירים ברשימת השמעה או אלבום",
"name": "פעולות אלבום"
},
"album-color-theme": {
"description": "מחיל נושא דינמי ואפקטים חזותיים המבוססים על לוח הצבעים של האלבום",
"menu": {
"color-mix-ratio": {
"label": "יחס ערבוב צבעים",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "ערכת נושא צבע אלבום"
},
"ambient-mode": {
"description": "מחיל אפקט תאורה על ידי הטלת צבעים עדינים מהסרטון, אל הרקע של המסך",
"menu": {
"blur-amount": {
"label": "כמות טשטוש",
"submenu": {
"pixels": "{{blurAmount}} פיקסלים"
}
},
"buffer": {
"label": "חוצץ",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "אֲטִימוּת",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "אֵיכוּת",
"submenu": {
"pixels": "{{quality}} פיקסלים"
}
},
"size": {
"label": "גוֹדֶל",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "מעבר חלק",
"submenu": {
"during": "במהלך {{interpolationTime}} שניות"
}
},
"use-fullscreen": {
"label": "שימוש במסך מלא"
}
},
"name": "מצב אווירה"
},
"amuse": {
"description": "מוסיף תמיכה ב-Pear Desktop עבור הווידג'ט של Amuse המתנגן כעת על ידי 6K Labs",
"name": "משעשע",
"response": {
"query": "שרת ה-API של Amuse פועל. קבל מידע על השיר באמצעות GET /query."
}
},
"api-server": {
"description": "הוסף כתובת שירות כדי לשלוט בנגן",
"dialog": {
"request": {
"buttons": {
"allow": "מותר",
"deny": "לדחות"
},
"message": "אפשר ל {{ID}}{{origin}} לגשת לשירות?",
"title": "בקשת לאימות השירות"
}
},
"menu": {
"auth-strategy": {
"label": "שיטת אימות",
"submenu": {
"auth-at-first": {
"label": "לאמת בבקשה הראשונה"
},
"none": {
"label": "ללא אימות"
}
}
},
"hostname": {
"label": "שם שרת אחסון"
},
"port": {
"label": "פורט"
}
},
"name": "כתובת שירות (בטא)",
"prompt": {
"hostname": {
"label": "הכנסת את כתובת IP של השרת (לדוגמה 0.0.0.0) לשירות:",
"title": "שם שרת אחסון"
},
"port": {
"label": "הכנסת מספר פורט של השירות:",
"title": "פורט"
}
}
},
"audio-compressor": {
"description": "החל דחיסה על אודיו (מורידה את עוצמת הקול של החלקים הרועשים ביותר של האות ומעלה את עוצמת הקול של החלקים החלשים ביותר)",
"name": "דוחס ומצפין קול"
},
"auth-proxy-adapter": {
"description": "תמיכה בשימוש בשירותי פרוקסי אימות",
"menu": {
"disable": "השבת מתאם פרוקסי",
"enable": "הפעל מתאם פרוקסי",
"hostname": {
"label": "שם שרת מאחסן"
},
"port": {
"label": "פורט"
}
},
"name": "מתאם זיהוי פרוקסי",
"prompt": {
"hostname": {
"label": "הזן שם מארח עבור שרת הפרוקסי המקומי (דורש הפעלה מחדש):",
"title": "שם פרוקסי של שרת מאחסן"
},
"port": {
"label": "הזן פורט עבור שרת הפרוקסי המקומי (דורש הפעלה מחדש):",
"title": "יציאת פרוקסי"
}
}
},
"blur-nav-bar": {
"description": "הפוך את סרגל הניווט לשקוף ומטושטש",
"name": "טשטש את סרגל הניווט"
},
"bypass-age-restrictions": {
"description": "עקוף את אימות גיל המשתמש של יוטיוב",
"name": "עקוף את ההחמרות של הגיל"
},
"captions-selector": {
"description": "בורר כתוביות עבור רצועות אודיו של Pear Desktop",
"menu": {
"autoload": "בחר אוטומטי את הכתובית האחרונה שנבחרה",
"disable-captions": "ברירת מחד ללא כתוביות"
},
"name": "בוחר כתוביות",
"prompt": {
"selector": {
"label": "שפת כתוביות נוכחית: {{language}}",
"none": "ללא",
"title": "בחר שפת כתוביות"
}
},
"templates": {
"title": "פתח בחירת כתוביות"
},
"toast": {
"caption-changed": "תרגום שונה ל {{שפה}}",
"caption-disabled": "תרגום בוטל",
"no-captions": "אין תרגום זמין לשיר הזה"
}
},
"compact-sidebar": {
"description": "הגדר תמיד את סרגל הצד למצב קומפקטי",
"name": "סרגל צד קומפקטי"
},
"crossfade": {
"description": "עמעם בין השירים",
"menu": {
"advanced": "מתקדם"
},
"name": "התפיידות צלב[בית]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "תתפייד בזמן[מילישניות]",
"fade-scaling": {
"linear": "לינארי",
"logarithmic": "לוגריתמי"
}
}
}
}
},
"disable-autoplay": {
"menu": {
"apply-once": "חל רק בהפעלה"
},
"name": "השבתת הפעלה אוטומטית"
},
"discord": {
"backend": {
"connected": "התחבר לדיסקורד",
"disconnected": "התנתק לדיסקורד"
},
"menu": {
"auto-reconnect": "חיבור מחדש אוטומטי",
"clear-activity": "נקה פעילות",
"connected": "מחובר",
"disconnected": "מנותק",
"hide-github-button": "הסתר את לחצן הקישור של GitHub",
"play-on-pear-desktop": "הפעל ביוטיוב מיוזיק",
"set-inactivity-timeout": "הגדר פסק זמן לחוסר פעילות"
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "אוקיי"
},
"message": "אה ! מתנצלים, הורדה נכשלה",
"title": "שגיאה בהורדה!"
},
"start-download-playlist": {
"buttons": {
"ok": "אוקיי"
},
"message": "מוריד פלייליסט {{playlistTitle}}",
"title": "הורדה התחילה"
}
},
"feedback": {
"downloading": "מוריד…",
"loading": "בטְעִינָה…",
"playlist-has-only-one-song": "לפלייליסט יש רק פריט אחד, מוריד אותו ישירות",
"playlist-id-not-found": "לא נמצא מזהה ID פלייליסט",
"preparing-file": "מכין קובץ…",
"saving": "שומר…",
"trying-to-get-playlist-id": "מנסה להשיג מזהה פלייליסט: {{playlistId}}",
"video-id-not-found": "הסרטון לא נמצא"
}
},
"description": "מוריד MP3 / אודיו מקור ישירות מהממשק",
"menu": {
"choose-download-folder": "בחר תיקיית הורדה",
"download-finish-settings": {
"label": "הורדה בסיום",
"prompt": {
"last-percent": "אחרי x אחוזים",
"last-seconds": "נשארו x שניות",
"title": "הגדר מתי להוריד"
},
"submenu": {
"advanced": "מִתקַדֵם",
"enabled": "מופעל",
"percent": "אָחוּז",
"seconds": "שניות"
}
},
"presets": "הגדרות קבועות מראש",
"skip-existing": "דלג על קבצים קיימים"
}
}
}
}

View File

@ -1,828 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "{{pluginName}}::{{contextName}} प्लगइन निष्पादित करने में विफल",
"executed-at-ms": "{{pluginName}}::{{contextName}} प्लगिन {{ms}} में निष्पाशित हुआ",
"initialize-failed": "\"{{pluginName}}\" प्लगिन इनिशियलाइज़ होने में असफल रहा",
"load-all": "सारे प्लगिन लोड हो चुके हैं",
"load-failed": "\"{{pluginName}}\" प्लगिन लोड होने में असफल रहा",
"loaded": "प्लगिन \"{{pluginName}}\" लोड हो चुका है",
"unload-failed": "\"{{pluginName}}\" अनलोड होने में असफल रहा",
"unloaded": "प्लगिन \"{{pluginName}}\" अनलोड हो गया है"
}
}
},
"language": {
"code": "hi",
"local-name": "हिंदी",
"name": "Hindi"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "लोडिंग समाप्त हुई । डेवटूल्स खोले गए हैं"
},
"i18n": {
"loaded": "i18n लोड हो गया है"
},
"second-instance": {
"receive-command": "प्रोटोकॉल पर आदेश प्राप्त हुआ \"{{command}}\""
},
"theme": {
"css-file-not-found": "सीएसएस फाइल \"{{cssFile}}\" मौजूद नही है, अनदेखा किया जा रहा है"
},
"unresponsive": {
"details": "अनरेस्पॉन्सिव एरर\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "एप कैश साफ़ किया जा रहा है"
},
"window": {
"tried-to-render-offscreen": "विंडो ने ऑफस्क्रीन रेंडर करने का प्रयास किया, विंडो साइज={{windowSize}}, डिस्प्ले साइज={{displaySize}}, पोजिशन={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "मेनू छिपा हुआ है, देखने के लिए 'Alt' का इस्तेमाल करें (या 'Escape' अगर आप इन-एप मेनू का उपयोग कर रहे हैं)",
"message": "मेनू छिपाएँ सक्षम है",
"title": "मेनू छिपाएँ सक्षम"
},
"need-to-restart": {
"buttons": {
"later": "बाद में",
"restart-now": "पुनः आरंभ करें"
},
"detail": "\"{{pluginName}}\" प्रभाव लेने के लिए प्लगिन को पुनः शुरू करें",
"message": "\"{{pluginName}}\" पुनः आरंभ करने की आवश्यकता है",
"title": "पुनः आरंभ करने की आवश्यकता है"
},
"unresponsive": {
"buttons": {
"quit": "बंद करें",
"relaunch": "पुनः लॉन्च करें",
"wait": "रुकें"
},
"detail": "असुविधाए के लिए खेद हैं! कृपया चुनें कि क्या करना है:",
"message": "एप्लीकेशन अनुत्तरदायी है",
"title": "विंडो अनुत्तरदायी है"
},
"update-available": {
"buttons": {
"disable": "अपडेट्स बंद करें",
"download": "डाउनलोड",
"ok": "ठीक है"
},
"detail": "एक नया वर्जन उपलब्ध है, {{downloadLink}} से डाउनलोड किया जा सकता है",
"message": "एक नया वर्जन उपलब्ध है",
"title": "अपडेट उपलब्ध है"
}
},
"menu": {
"about": "के बारे में",
"navigation": {
"label": "मार्गदर्शन",
"submenu": {
"copy-current-url": "मौजूदा यूआरएल कापी करें",
"go-back": "पीछे जाएं",
"go-forward": "आगे जाएं",
"quit": "निकास",
"restart": "एप को पुनः शुरू करें"
}
},
"options": {
"label": "विकल्प",
"submenu": {
"advanced-options": {
"label": "उन्नत विकल्प",
"submenu": {
"auto-reset-app-cache": "एप शुरू होते समय कैश रीसेट करें",
"disable-hardware-acceleration": "हार्डवेयर एक्सीलरेशन बंद करें",
"edit-config-json": "config.json को एडिट करें",
"override-user-agent": "यूजर-एजेंट को रद्द करें",
"restart-on-config-changes": "कनफिग बदलने पे पुनः शुरू करें",
"set-proxy": {
"label": "प्रॉक्सी तय करें",
"prompt": {
"label": "प्प्रॉक्सी पता डालें: (बंद करने के लिए खाली छोड़ें)",
"placeholder": "उदाहरण: SOCKS5://127.0.0.1:9999",
"title": "प्रॉक्सी तय करें"
}
},
"toggle-dev-tools": "डेवटूल्स को टॉगल करें"
}
},
"always-on-top": "हमेशा ऊपर",
"auto-update": "ऑटो अपडेट",
"hide-menu": {
"dialog": {
"message": "अगले लॉन्च पे मेनू छुपा दिया जायेगा, देखने के लिए [Alt] का प्रयोग करें (या बैकटिक [`] अगर आप इन एप मेनू का प्रयोग कर रहे हैं)",
"title": "मेनू छुपाना सक्रिय है"
},
"label": "मेनू छुपाएं"
},
"language": {
"dialog": {
"message": "पुनः शुरू करने के बाद भाषा बदल दी जाएगी",
"title": "भाषा बदल दी गई है"
},
"label": "भाषा",
"submenu": {
"to-help-translate": "अनुवाद करने में सहायता करना चाहते हैं? यहां दबाएं"
}
},
"resume-on-start": "एप शुरू होने पर आखरी गाना फिर शुरू करें",
"single-instance-lock": "सिंगल इंस्टेंस लॉक",
"start-at-login": "शुरू होने पे लॉगिन करें",
"starting-page": {
"label": "स्टार्टिंग पेज",
"unset": "अनसेट"
},
"tray": {
"label": "ट्रे",
"submenu": {
"disabled": "बंद किया गया है",
"enabled-and-hide-app": "सक्रिय है और एप छुपाएं",
"enabled-and-show-app": "सक्रिय है और एप दिखाएं",
"play-pause-on-click": "क्लिक पर प्ले/पोज"
}
},
"visual-tweaks": {
"label": "दृश्य परिवर्तन",
"submenu": {
"custom-window-title": {
"label": "कस्टम विंडो टाइटल",
"prompt": {
"label": "कस्टम विंडो टाइटल डालें: (डिसएबल करने के लिए खाली छोड़ें)",
"placeholder": "उदाहरण: पियर डेस्कटॉप"
}
},
"like-buttons": {
"default": "डिफॉल्ट",
"force-show": "बल पूर्वक दिखाएं",
"hide": "छुपाएं",
"label": "लाइक बटंस"
},
"remove-upgrade-button": "अपग्रेड बटन हटाएं",
"theme": {
"dialog": {
"button": {
"cancel": "रद्द करें",
"remove": "हटाएं"
},
"remove-theme": "क्या आप निश्चित है आपको कस्टम थीम हटानी है?",
"remove-theme-message": "यह कस्टम थीम को हटा देगा"
},
"label": "थीम",
"submenu": {
"import-css-file": "कस्टम सीएसएस फाइल को आयात करें",
"no-theme": "कोई थीम नही"
}
}
}
}
}
},
"plugins": {
"enabled": "सक्रिय",
"label": "प्लगिंस",
"new": "नया"
},
"view": {
"label": "देखें",
"submenu": {
"force-reload": "बल पूर्वक रिलोड करें",
"reload": "रिलोड करें",
"reset-zoom": "वास्तविक आकार",
"toggle-fullscreen": "टागल फुल स्क्रीन",
"zoom-in": "ज़ूम इन",
"zoom-out": "ज़ूम आउट"
}
}
},
"tray": {
"next": "अगला",
"play-pause": "चलाएँ/रोकें",
"previous": "पिछला",
"quit": "निकास",
"restart": "ऐप पुनः प्रारंभ करें",
"show": "ऐप दिखाए",
"tooltip": {
"default": "पियर डेस्कटॉप",
"with-song-info": "पियर डेस्कटॉप: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "यदि कोई विज्ञापन चलता है तो यह ऑडियो को म्यूट कर देता है और प्लेबैक गति 16x पर सेट कर देता है",
"name": "विज्ञापन की गति बढ़ाना"
},
"adblocker": {
"description": "डिफ़ॉल्ट रूप से सभी विज्ञापनों और ट्रैकिंग को ब्लॉक करें",
"menu": {
"blocker": "ब्लॉकर"
},
"name": "विज्ञापन अवरोधक"
},
"album-actions": {
"description": "प्लेलिस्ट या एल्बम के सभी गानों पर लागू करने के लिए \"अंडिसलाइक,\" \"डिसलाइक,\" \"लाइक,\" और \"अनलाइक\" बटन जोड़ता है",
"name": "एल्बम एक्शन"
},
"album-color-theme": {
"description": "एल्बम रंग पैलेट के आधार पर एक गतिशील थीम और दृश्य प्रभाव लागू करता है",
"menu": {
"color-mix-ratio": {
"label": "रंग मिश्रण अनुपात",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "एल्बम रंग थीम"
},
"ambient-mode": {
"description": "वीडियो से हल्के रंगों को आपकी स्क्रीन की पृष्ठभूमि में डालकर एक प्रकाश प्रभाव लागू करता है",
"menu": {
"blur-amount": {
"label": "धुंधलापन मात्रा",
"submenu": {
"pixels": "{{blurAmount}} पिक्सल"
}
},
"buffer": {
"label": "बफर",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "अस्पष्टता",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "स्पष्टता",
"submenu": {
"pixels": "{{quality}} पिक्सल"
}
},
"size": {
"label": "माप",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "चिकनाई संक्रमण",
"submenu": {
"during": "दौरान {{interpolationTime}}"
}
},
"use-fullscreen": {
"label": "पूर्णस्क्रीन का उपयोग"
}
},
"name": "अम्बिएन्ट मोड्"
},
"amuse": {
"description": "6K लैब्स द्वारा Amuse now playing विजेट के लिए Music Player म्यूजिक समर्थन जोड़ा गया",
"name": "मन बहलाना",
"response": {
"query": "अमयूस ए.पि.ऐ. चल रहा है। गाने की जान्कारि होने के लिये GET /query कीजिये।"
}
},
"api-server": {
"description": "प्लेयर को नियंत्रित करने के लिए एक API सर्वर जोड़ता है",
"dialog": {
"request": {
"buttons": {
"allow": "अनुमति दें",
"deny": "मना करना"
},
"message": "{{ID}} ({{origin}}) को ए.पि.ऐ. ऐकसेस करने की अनुमति दे?",
"title": "एपीआई अनुमोदन अनुरोध"
}
},
"menu": {
"auth-strategy": {
"label": "अनुमोदन रणनीति",
"submenu": {
"auth-at-first": {
"label": "अधिकार प्रदान प्रारंभिक अनुरोध पर"
},
"none": {
"label": "कोई प्राधिकरण नहीं"
}
}
},
"hostname": {
"label": "होस्टनेम"
},
"port": {
"label": "पोर्ट"
}
},
"name": "एपीआई सर्वर [बीटा]",
"prompt": {
"hostname": {
"label": "एपीआई सर्वर के लिए होस्ट नाम (जैसे 0.0.0.0) दर्ज करें:",
"title": "होस्टनेम"
},
"port": {
"label": "एपीआई सर्वर के लिए पोर्ट दर्ज करें:",
"title": "पोर्ट"
}
}
},
"audio-compressor": {
"description": "ऑडियो पर कम्प्रेशन लागू करें (सिग्नल के सबसे ऊँचे हिस्सों की आवाज़ को कम करता है और सबसे नर्म हिस्सों की आवाज़ को बढ़ाता है)",
"name": "ऑडियो कंप्रेसर"
},
"auth-proxy-adapter": {
"description": "ऑथेंटिकेशन प्रॉक्सी सेवाओं के उपयोग के लिए सपोर्ट",
"menu": {
"disable": "प्रॉक्सी एडाप्टर बंद करें",
"enable": "प्रॉक्सी एडाप्टर शुरू करें",
"hostname": {
"label": "होस्ट का नाम"
},
"port": {
"label": "पोर्ट"
}
},
"name": "ऑथ प्रॉक्सी एडाप्टर",
"prompt": {
"hostname": {
"label": "स्थानीय प्रॉक्सी सर्वर के लिए होस्ट का नाम लिखें (पुनः आरंभ ज़रूरी है):",
"title": "प्रॉक्सी होस्ट का नाम"
},
"port": {
"label": "स्थानीय प्रॉक्सी सर्वर के लिए पोर्ट लिखें (पुनः प्रारंभ जरूरी है):",
"title": "प्रॉक्सी का पोर्ट"
}
}
},
"blur-nav-bar": {
"description": "नेविगेशन बार को पारदर्शी और धुंधला बनाता है",
"name": "नेविगेशन बार को ब्लर करें"
},
"bypass-age-restrictions": {
"description": "Music Player आयु की जांच को बायपास करें",
"name": "आयु प्रतिबंध को बायपास करें"
},
"captions-selector": {
"description": "Pear Desktop म्यूज़िक ऑडियो ट्रैक के लिए कैप्शन चयनकर्ता",
"menu": {
"autoload": "अंतिम बार उपयोग किए गए कैप्शन का ऑटोमैटिक रूप से चयन करें",
"disable-captions": "डिफ़ॉल्ट रूप में कोई कैप्शन नहीं"
},
"name": "कैप्शन चयनकर्ता",
"prompt": {
"selector": {
"label": "वर्तमान कैप्शन भाषा: {{language}}",
"none": "कुछ नहीं",
"title": "कैप्शन भाषा चुनें"
}
},
"templates": {
"title": "कैप्शन चयनकर्ता खोलें"
},
"toast": {
"caption-changed": "कैप्शन {{language}} में बदल दिया गया है",
"caption-disabled": "कैप्शन बंद कर दिए गए हैं",
"no-captions": "इस गाने के लिए कोई कैप्शन उपलब्ध नहीं हैं"
}
},
"compact-sidebar": {
"description": "साइडबार को हमेशा कॉम्पैक्ट मोड में सेट करें",
"name": "कॉम्पैक्ट साइडबार"
},
"crossfade": {
"description": "गानों के बीच क्रॉसफ़ेड करें",
"menu": {
"advanced": "आधुनिक"
},
"name": "क्रॉसफ़ेड [बीटा]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "फ़ेड इन अवधि (मिलीसेकंड)",
"fade-out-duration": "फ़ेड आउट अवधि (मिलीसेकंड)",
"fade-scaling": {
"label": "फेड स्केलिंग",
"linear": "रेखिक",
"logarithmic": "लघुगणक"
},
"seconds-before-end": "अंत से पहले N सेकंड तक क्रॉसफ़ेड करें"
},
"title": "क्रॉसफ़ेड विकल्प"
}
}
},
"custom-output-device": {
"description": "गानों के लिए एक कस्टम आउटपुट मीडिया डिवाइस कॉन्फ़िगर करें",
"menu": {
"device-selector": "डिवाइस चुनें"
},
"name": "अपनी पसंद का आउटपुट डिवाइस",
"prompt": {
"device-selector": {
"label": "उपयोग किए जाने वाला आउटपुट मीडिया चुने",
"title": "आउटपुट डिवाइस चुनें"
}
}
},
"disable-autoplay": {
"description": "गीत को \"रुके हुए \" मोड में शुरू करता है",
"menu": {
"apply-once": "केवल प्रारम्भ पर लागू होता है"
},
"name": "ऑटोप्ले अयोग्य करें"
},
"discord": {
"backend": {
"already-connected": "सक्रिय कनेक्शन से जुड़ने का प्रयास किया गया",
"connected": "डिस्कॉर्ड से कनेक्टेड है",
"disconnected": "डिस्कॉर्ड से कनेक्टेड नहीं है"
},
"description": "Rich Presence के साथ अपने दोस्तों के साथ बाटें कि आप क्या सुनते हैं",
"menu": {
"auto-reconnect": "स्वतः पुनः कनेक्ट करें",
"clear-activity": "Activity साफ़ करें",
"clear-activity-after-timeout": "समय समाप्त होने के बाद एक्टिविटी साफ़ करें",
"connected": "स्थापित",
"disconnected": "डिस्कनेक्ट किया गया",
"hide-duration-left": "शेष अवधि छिपाएँ",
"hide-github-button": "GitHub लिंक के बटन को छिपाएँ",
"play-on-pear-desktop": "Pear Desktop म्यूज़िक पर चलाएँ",
"set-inactivity-timeout": "निष्क्रियता समय समाप्ति सेट करें",
"set-status-display-type": {
"label": "स्टेटस टेक्स्ट",
"submenu": {
"artist": "{artist} को सुन रहे है",
"pear-desktop": "Pear Desktop सुन रहे है",
"title": "{song title} सुन रहे है"
}
}
},
"name": "डिस्कॉर्ड रिच प्रेजेंस",
"prompt": {
"set-inactivity-timeout": {
"label": "निष्क्रियता समय समाप्ति सेकंड में दर्ज करें:",
"title": "निष्क्रियता समय समाप्ति सेट करें"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "ठीक है"
},
"message": "आह! क्षमा करें, डाउनलोड विफल हो गया…",
"title": "डाउनलोड में दिक्कत है !"
},
"start-download-playlist": {
"buttons": {
"ok": "ठीक है"
},
"detail": "({{playlistSize}} गाने)",
"message": "प्लेलिस्ट {{playlistTitle}} डाउनलोड हो रही है",
"title": "डाउनलोड शुरू"
}
},
"feedback": {
"conversion-progress": "कन्वर्ज़न: {{percent}}%",
"converting": "परिवर्तित हो रहा है…",
"done": "हो गया: {{filePath}}",
"download-info": "{{artist}} - {{title}} डाउनलोड हो रहा है [{{videoId}}",
"download-progress": "डाउनलोड करें: {{percent}}%",
"downloading": "डाउनलोड हो रहा है…",
"downloading-counter": "{{current}}/{{total}} डाउनलोड हो रहा है…",
"downloading-playlist": "प्लेलिस्ट \"{{playlistTitle}}\" - {{playlistSize}} गाने ({{playlistId}}) डाउनलोड हो रहे हैं",
"error-while-downloading": "\"{{author}} - {{title}}\" डाउनलोड करते समय दिक्कत: {{error}}",
"folder-already-exists": "फ़ोल्डर {{playlistFolder}} पहले से मौजूद है",
"getting-playlist-info": "प्लेलिस्ट की जानकारी प्राप्त हो रही है…",
"loading": "लोड हो रहा है…",
"playlist-has-only-one-song": "प्लेलिस्ट में केवल एक आइटम है, इसे सीधे डाउनलोड करें",
"playlist-id-not-found": "कोई प्लेलिस्ट आईडी नहीं मिली",
"playlist-is-empty": "प्लेलिस्ट ख़ाली है",
"playlist-is-mix-or-private": "प्लेलिस्ट जानकारी प्राप्त करने में दिक्कत: सुनिश्चित करें कि यह निजी या \"आपके लिए मिश्रित\" प्लेलिस्ट नहीं है\n\n{{error}}",
"preparing-file": "फ़ाइल तैयार की जा रही है…",
"saving": "सेव जा रहा है…",
"trying-to-get-playlist-id": "प्लेलिस्ट आईडी प्राप्त करने का प्रयास किया जा रहा है: {{playlistId}}",
"video-id-not-found": "वीडियो नहीं मिला",
"writing-id3": "ID3 टैग लिख रहे हैं…"
}
},
"description": "इंटरफ़ेस से सीधे MP3 / स्रोत ऑडियो डाउनलोड करता है",
"menu": {
"choose-download-folder": "डाउनलोड फ़ोल्डर चुनें",
"download-finish-settings": {
"label": "समाप्त होने पर डाउनलोड करें",
"prompt": {
"last-percent": "x प्रतिशत के बाद",
"last-seconds": "अंतिम x सेकंड",
"title": "डाउनलोड करने का समय कॉन्फ़िगर करें"
},
"submenu": {
"advanced": "विकसित",
"enabled": "सक्रिय",
"mode": "टाइम मोड",
"percent": "प्रतिशत",
"seconds": "सेकंड"
}
},
"download-playlist": "प्लेलिस्ट डाउनलोड करें",
"presets": "प्रीसेट",
"skip-existing": "मौजूदा फ़ाइलें छोड़ें"
},
"name": "डाउनलोडर",
"renderer": {
"can-not-update-progress": "प्रगति अपडेट नहीं की जा सकती"
},
"templates": {
"button": "डाउनलोड"
}
},
"equalizer": {
"description": "प्लेयर में एक एक्विलाइज़र जोड़ता है",
"menu": {
"presets": {
"label": "प्रीसेट",
"list": {
"bass-booster": "bass वर्धक"
}
}
},
"name": "एक्विलाइज़र"
},
"exponential-volume": {
"description": "वॉल्यूम स्लाइडर को घातांकीय बनाता है ताकि कम वॉल्यूम का चयन करना आसान हो।",
"name": "तीव्र वॉल्यूम"
},
"in-app-menu": {
"description": "मेनू-बार को फैंसी, गहरा या एल्बम-रंग का रूप दें",
"menu": {
"hide-dom-window-controls": "DOM विंडो कंट्रोल को छिपाएँ"
},
"name": "इन-ऐप मेनू"
},
"lumiastream": {
"description": "लूमिया स्ट्रीम सपोर्ट जोड़ा गया",
"name": "लूमिया स्ट्रीम [बीटा]"
},
"lyrics-genius": {
"description": "अधिकांश गानों के लिए गीत के लिरिक्स को जोड़ता है",
"menu": {
"romanized-lyrics": "रोमनकृत लिरिक्स"
},
"name": "लिरिक्स जीनियस",
"renderer": {
"fetched-lyrics": "जीनियस के लिए प्राप्त किये गए लिरिक्स"
}
},
"music-together": {
"description": "दूसरों के साथ प्लेलिस्ट साझा करें। जब होस्ट कोई गाना बजाता है, तो बाकी सभी लोग वही गाना सुनेंगे",
"dialog": {
"enter-host": "होस्ट आईडी दर्ज करें"
},
"internal": {
"save": "सेव",
"track-source": "ट्रैक स्रोत",
"unknown-user": "अज्ञात उपयोगकर्ता"
},
"menu": {
"click-to-copy-id": "होस्ट आईडी कॉपी करें",
"close": "संगीत को एक साथ बंद करें",
"connected-users": "जुड़े हुए उपयोगकर्ता",
"disconnect": "संगीत को एक साथ डिस्कनेक्ट करें",
"empty-user": "कोई जुड़े हुए उपयोगकर्ता नहीं",
"host": "म्यूजिक टुगेदर होस्ट",
"join": "संगीत से साथ में जुड़ें",
"permission": {
"all": "मेहमानों को प्लेलिस्ट और प्लेयर को नियंत्रित करने की अनुमति दें",
"host-only": "केवल होस्ट ही प्लेलिस्ट और प्लेयर को नियंत्रित कर सकता है",
"playlist": "मेहमानों को प्लेलिस्ट नियंत्रित करने की अनुमति दें"
},
"set-permission": "नियंत्रण अनुमति बदलें",
"status": {
"disconnected": "डिस्कनेक्ट किया गया",
"guest": "अतिथि के रूप में जुड़े हुए",
"host": "मेज़बान के रूप में जुड़े हुए"
}
},
"name": "संगीत टुगेदर [बीटा]",
"toast": {
"add-song-failed": "गाना जोड़ने में असफलता",
"closed": "म्यूजिक टुगेदर बंद हुआ",
"disconnected": "म्यूजिक टुगेदर डिस्कनेक्ट हुआ",
"host-failed": "म्यूज़िक टुगेदर होस्ट करने में असफल",
"id-copied": "होस्ट आईडी क्लिपबोर्ड पर कॉपी की गई",
"id-copy-failed": "होस्ट आईडी को क्लिपबोर्ड पर कॉपी करने में असफल",
"join-failed": "म्यूजिक टुगेदर में शामिल होने में विफल",
"joined": "म्यूजिक टुगेदर में शामिल होने में सफल",
"permission-changed": "म्यूजिक टुगेदर की अनुमति बदलकर \"{{permission}}\" कर दी गई है",
"remove-song-failed": "गाना हटाने में विफल",
"user-connected": "{{name}} म्यूजिक टुगेदर में शामिल हुए",
"user-disconnected": "{{name}} ने म्यूजिक टुगेदर छोड़ा"
}
},
"navigation": {
"description": "आगे /पीछे नेविगेशन अर्रोस सीधे इंटरफ़ेस में एकीकृत, जैसे आपके पसंदीदा ब्राउज़र में",
"name": "नेविगेशन",
"templates": {
"back": {
"title": "पिछले पेज पर जाएं"
},
"forward": {
"title": "अगले पेज पर जाएं"
}
}
},
"no-google-login": {
"description": "इंटरफ़ेस से गूगल लॉगिन बटन और लिंक हटाएँ",
"name": "कोई गूगल लॉगिन नहीं"
},
"notifications": {
"description": "जब कोई गाना बजना शुरू हो जाए तो नोटिफ़िकेशन दें (विंडोज़ पर इंटरैक्टिव नोटिफ़िकेशन्स उपलब्ध हैं)",
"menu": {
"interactive": "इंटरैक्टिव नोटिफ़िकेशन्स",
"interactive-settings": {
"label": "इंटरैक्टिव सेटिंग्स",
"submenu": {
"hide-button-text": "बटन टेक्स्ट को छिपाएँ",
"refresh-on-play-pause": "प्ले/पॉज़ पर रिफ्रेश करें",
"tray-controls": "ट्रे क्लिक पर खोलें/बंद करें"
}
},
"priority": "नोटिफ़िकेशन प्राथमिकता",
"toast-style": "टोस्ट स्टाइल",
"unpause-notification": "पॉज हटने पर नोटिफ़िकेशन दिखाएं"
},
"name": "नोटिफ़िकेशन्स"
},
"performance-improvement": {
"description": "प्रयोगात्मक स्क्रिप्ट सक्षम करके प्रदर्शन में सुधार करें",
"name": "प्रदर्शन सुधार [Beta]"
},
"picture-in-picture": {
"description": "ऐप को पिक्चर-इन-पिक्चर मोड में बदलने की अनुमति दें",
"menu": {
"always-on-top": "हमेशा ऊपर",
"hotkey": {
"label": "हॉट की",
"prompt": {
"keybind-options": {
"hotkey": "हॉट की"
},
"label": "पिक्चर-इन-पिक्चर टॉगल करने के लिए हॉट की चुनें",
"title": "पिक्चर-इन-पिक्चर हॉट की"
}
},
"save-window-position": "विंडो पोज़ीशन सेव करें",
"save-window-size": "विंडो के आकार को सेव करें",
"use-native-pip": "ब्राउज़र के नेटिव PiP का उपयोग करें"
},
"name": "पिक्चर-इन-पिक्चर",
"templates": {
"button": "पिक्चर-इन-पिक्चर"
}
},
"playback-speed": {
"description": "तेज़ सुनो, धीरे सुनो! गाने की गति को नियंत्रित करने वाला स्लाइडर जोडें",
"name": "प्लेबैक गति",
"templates": {
"button": "गति"
}
},
"precise-volume": {
"description": "कस्टम HUD और कस्टोमिज़ाबले वॉल्यूम चरणों के साथ, माउसव्हील/हॉट कीज़ का उपयोग करके वॉल्यूम को सटीक रूप से नियंत्रित करें",
"menu": {
"arrows-shortcuts": "लोकल एरो-की नियंत्रण",
"custom-volume-steps": "कस्टम वॉल्यूम चरण सेट करें",
"global-shortcuts": "वैश्विक हॉट कीज़"
},
"name": "सटीक वॉल्यूम",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "वॉल्यूम घटाएँ",
"increase": "वॉल्यूम बढ़ाएँ"
},
"label": "ग्लोबल वॉल्यूम कीबाइंड्स चुनें:",
"title": "ग्लोबल वॉल्यूम कीबाइंड्स"
},
"volume-steps": {
"label": "वॉल्यूम बढ़ाने/घटाने के चरण चुनें",
"title": "वॉल्यूम चरण"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "वर्तमान गुणवत्ता: {{quality}}",
"message": "वीडियो गुणवत्ता चुनें:",
"title": "वीडियो गुणवत्ता चुनें"
}
}
},
"description": "वीडियो ओवरले पर एक बटन के साथ वीडियो की गुणवत्ता बदलने की अनुमति देता है",
"name": "वीडियो गुणवत्ता परिवर्तक",
"renderer": {
"quality-settings-button": {
"label": "प्लेयर क्वालिटी सेटिंग खोलें"
}
}
},
"scrobbler": {
"description": "स्क्रोब्लिंग सपोर्ट जोड़ें (etc. last.fm, listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Last.fm के साथ प्रमाणीकरण विफल\nअगले पुनरारंभ तक पॉपअप छिपाएँ।",
"title": "प्रमाणीकरण विफल"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API सेटिंग्स"
},
"listenbrainz": {
"token": "listenbrainz उपयोगकर्ता टोकन दर्ज करें"
},
"scrobble-alternative-artist": "वैकल्पिक आर्टिस्ट का उपयोग करें",
"scrobble-alternative-title": "वैकल्पिक शीर्षक का उपयोग करें",
"scrobble-other-media": "अन्य मीडिया स्क्रोबल करें"
},
"name": "स्क्रोब्लर",
"prompt": {
"lastfm": {
"api-key": "Last.fm API की",
"api-secret": "Last.fm गुप्त API"
},
"listenbrainz": {
"token": {
"label": "अपना ListenBrainz उपयोगकर्ता टोकन दर्ज करें:",
"title": "ListenBrainz टोकन"
}
}
}
},
"shortcuts": {
"description": "प्लेबैक (प्ले/पॉज़/नेक्स्ट/प्रीवियस) के लिए ग्लोबल हॉटकी सेट करने की सुविधा देता है, मीडिया कुंजियों को ओवरराइड करके मीडिया OSD बंद करता है, Ctrl/CMD + F से खोज चालू करता है, Linux में मीडिया कुंजियों के लिए MPRIS सपोर्ट चालू करता है, और उन्नत उपयोगकर्ताओं के लिए कस्टम हॉटकी की अनुमति देता है",
"menu": {
"override-media-keys": "मीडिया कुंजियों पर नियंत्रण प्राप्त करें",
"set-keybinds": "वैश्विक गीत नियंत्रण सेट करें"
},
"name": "शॉर्टकट कुंजियाँ (और MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "अगला",
"play-pause": "चलाएं / विराम दें",
"previous": "पिछला"
},
"label": "गाने कंट्रोल करने के लिए ग्लोबल कीबाइंड का चयन करें:",
"title": "ग्लोबल कीबाइंडस"
}
}
},
"skip-disliked-songs": {
"description": "डिसलाइकड गानो को स्किप करता है",
"name": "डिसलाइकड गानो को स्किप करें"
},
"skip-silences": {
"description": "साइलेंट सेक्शन को ऑटोमेटिकली स्किप करें",
"name": "साइलेंस स्किप करें"
},
"sponsorblock": {
"description": "गाने के वीडियो में जहाँ म्यूजिक नहीं चलता, जैसे शुरुआत या अंत के हिस्से, उन्हें अपने आप स्किप कर देता है",
"name": "SponsorBlock"
},
"synced-lyrics": {
"description": "LRClib जैसे सोर्सेज के उपयोग से, गानों के लिए सिंक किए गए लिरिक्स देता है।"
},
"video-toggle": {
"menu": {
"align": {
"submenu": {
"left": "बाएं",
"middle": "मध्य",
"right": "दाहिने"
}
},
"force-hide": "वीडियो टैब को बलपूर्वक हटाएं",
"mode": {
"label": "तरीका"
}
}
}
}
}

View File

@ -1,950 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Neuspješno izvršavanje plugina {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} je izvršen za {{ms}}ms",
"initialize-failed": "Neuspješno inicijaliziranje plugina \"{{pluginName}}\"",
"load-all": "Učitavanje svih plugina",
"load-failed": "Neuspješno učitavanje plugina \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" je učitan",
"unload-failed": "Neuspješna deaktivacija plugina \"{{pluginName}}\"",
"unloaded": "Plugin \"{{pluginName}}\" deaktiviran"
}
}
},
"language": {
"code": "hr",
"local-name": "Hrvatski",
"name": "Croatian"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Završeno učitavanje. DevTools je otvoren"
},
"i18n": {
"loaded": "i18n je učitan"
},
"second-instance": {
"receive-command": "Zaprimljena naredba preko protokola: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS datoteka \"{{cssFile}}\" ne postoji, zanemarujem"
},
"unresponsive": {
"details": "Neresponzivna Pogreška!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Brisanje predmemorije aplikacije"
},
"window": {
"tried-to-render-offscreen": "Prozor se pokušao prikazat van ekrana, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Izbornik je sakriven, pritisnite 'Alt' da bi se prikazao (ili 'Escape' ako koristite unutar aplikacijski izbornik)",
"message": "Sakrij Izbornik je uključen",
"title": "Sakrij Izbornik Ukljućen"
},
"need-to-restart": {
"buttons": {
"later": "Kasnije",
"restart-now": "Ponovo Pokreni Sada"
},
"detail": "\"{{pluginName}}\" plugin zahtjeva ponovno pokretanje da bi postao aktivan",
"message": "\"{{pluginName}}\" se treba ponovo pokreniti",
"title": "Potrebno Ponovno Pokretanje"
},
"unresponsive": {
"buttons": {
"quit": "Izađi",
"relaunch": "Ponovno Pokretanje",
"wait": "Čekaj"
},
"detail": "Ispričavamo se zbog neugodnosti! izaberite sljedeću radnju:",
"message": "Aplikacija je Neresponzivna",
"title": "Prozor je Neresponzivan"
},
"update-available": {
"buttons": {
"disable": "Isključi Ažuriranja",
"download": "Preuzmi",
"ok": "OK"
},
"detail": "Nova verzija je dostupna i može se preuzeti preko {{downloadLink}}",
"message": "Nova verzija je dostupna",
"title": "Dostupno Ažuriranje"
}
},
"menu": {
"about": "O programu",
"navigation": {
"label": "Navigacija",
"submenu": {
"copy-current-url": "Kopiraj trenutni URL",
"go-back": "Idi natrag",
"go-forward": "Idi naprijed",
"quit": "Izađi",
"restart": "Ponovno Pokreni Aplikaciju"
}
},
"options": {
"label": "Opcije",
"submenu": {
"advanced-options": {
"label": "Napredne opcije",
"submenu": {
"auto-reset-app-cache": "Resetiraj predmemoriju aplikacije pri pokretanju",
"disable-hardware-acceleration": "Isključi hardversku akceleraciju",
"edit-config-json": "Uredi config.json",
"override-user-agent": "Promijeni User-Agent",
"restart-on-config-changes": "Ponovno pokreni na promjene konfiguracije",
"set-proxy": {
"label": "Postavi proxy",
"prompt": {
"label": "Unesi Adresu za Proxy: (ostavite prazno ako želite onemogućiti)",
"placeholder": "Primjer: SOCKS5://127.0.0.1:9999",
"title": "Postavi proxy"
}
},
"toggle-dev-tools": "Uključi/isključi DevTools"
}
},
"always-on-top": "Uvijek na vrhu",
"auto-update": "Automatsko Ažuriranje",
"hide-menu": {
"dialog": {
"message": "Izbornik će se sakriti pri sljedećem pokretanju, stisnite [Alt] da se prikaže (ili backtick [`] ako koristite meni unutar aplikacije)",
"title": "Sakrij Izbornik Uključen"
},
"label": "Sakrij Izbornik"
},
"language": {
"dialog": {
"message": "Jezik će se promijeniti nakon ponovnog pokretanja",
"title": "Jezik promijenjen"
},
"label": "Jezik",
"submenu": {
"to-help-translate": "Želite pomoći sa prijevodom? Kliknite ovdje"
}
},
"resume-on-start": "Nastavi zadnju pjesmu kad se aplikacija pokrene",
"single-instance-lock": "Sprječavanje višestrukog pokretanja",
"start-at-login": "Počni od prijave",
"starting-page": {
"label": "Početna stranica",
"unset": "Nepostavljeno"
},
"tray": {
"label": "Traka",
"submenu": {
"disabled": "Isključeno",
"enabled-and-hide-app": "Uključena i skrivena aplikacija",
"enabled-and-show-app": "Uključena i prikaži aplikaciju",
"play-pause-on-click": "Reproduciraj/Pauziraj na klik"
}
},
"visual-tweaks": {
"label": "Vizualna podešavanja",
"submenu": {
"custom-window-title": {
"label": "Prilagođeni naslov prozora",
"prompt": {
"label": "Unesi prilagođeni naslov prozora: (ostavi prazno za onemogućiti)",
"placeholder": "Primjer: Pear Desktop"
}
},
"like-buttons": {
"default": "Zadano",
"force-show": "Prisilno prikaži",
"hide": "Sakrij",
"label": "\"Sviđa mi se\" gumbi"
},
"remove-upgrade-button": "Ukloni gumb za nadogradnju",
"theme": {
"dialog": {
"button": {
"cancel": "Odustani",
"remove": "Ukloni"
},
"remove-theme": "Jeste li sigurni da želite ukloniti prilagođenu temu?",
"remove-theme-message": "Ovo će ukloniti prilagođenu temu"
},
"label": "Tema",
"submenu": {
"import-css-file": "Uvezi prilagođenu CSS datoteku",
"no-theme": "Bez teme"
}
}
}
}
}
},
"plugins": {
"enabled": "Uključeno",
"label": "Plugini",
"new": "NOVO"
},
"view": {
"label": "Pogled",
"submenu": {
"force-reload": "Prisilno Ponovo Učitaj",
"reload": "Ponovno učitaj",
"reset-zoom": "Prava Veličina",
"toggle-fullscreen": "Uključi/Isključi Prikaz Preko Cijelog Ekrana",
"zoom-in": "Povećaj",
"zoom-out": "Smanji"
}
}
},
"tray": {
"next": "Sljedeće",
"play-pause": "Reproduciraj/Pauziraj",
"previous": "Prethodni",
"quit": "Izađi",
"restart": "Ponovo Pokreni Aplikaciju",
"show": "Prikaži prozor",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Ako se pokrene oglas, zvuk se isključi i brzina reprodukcije se postavi na 16x",
"name": "Ubrzanje Oglasa"
},
"adblocker": {
"description": "Blokiraj sve oglase i praćenje odmah po pokretanju",
"menu": {
"blocker": "Blokator"
},
"name": "Blokator Oglasa"
},
"album-actions": {
"description": "Dodaje tipke za 'Ne sviđa mi se', 'Sviđa mi se' i 'Dislike'/'Like' za primjenu na sve pjesme u playlisti ili albumu",
"name": "Radnje Albuma"
},
"album-color-theme": {
"description": "Primjenjuje dinamičnu temu i vizualne efekte prema paleti boje albuma",
"menu": {
"color-mix-ratio": {
"label": "Omjer miješanja boja",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Boja teme albuma"
},
"ambient-mode": {
"description": "Primjenjuje efekt osvjetljenja prikazivajući nježne boje iz videa na pozadinu vašeg ekrana",
"menu": {
"blur-amount": {
"label": "Količina zamućenja",
"submenu": {
"pixels": "{{blurAmount}} pikseli"
}
},
"buffer": {
"label": "Predmemorija (Bufer)",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Prozirnost",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Kvaliteta",
"submenu": {
"pixels": "{{quality}} pikseli"
}
},
"size": {
"label": "Veličina",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Glatakoća prijelaza",
"submenu": {
"during": "Tijekom {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Koristi se prikaz preko cijelog ekrana"
}
},
"name": "Ambijentalni Način"
},
"amuse": {
"description": "Dodaje podršku za Pear Desktop za widget \"sada reproducira\" od Amuse od strane 6K Labs",
"name": "Zabavljati",
"response": {
"query": "Amuse API poslužitelj je pokrenut. Koristi GET /query za dohvat informacija o pjesmi."
}
},
"api-server": {
"description": "Dodaje API poslužitelj za kontrolu medija",
"dialog": {
"request": {
"buttons": {
"allow": "Dozvoli",
"deny": "Odbij"
},
"message": "Dozvoli {{ID}} ({{origin}}) pristup API-ju?",
"title": "Zahtjev za autorizaciju API-ja"
}
},
"menu": {
"auth-strategy": {
"label": "Strategija autorizacije",
"submenu": {
"auth-at-first": {
"label": "Autorizacija pri prvom zahjtevu"
},
"none": {
"label": "Bez autorizacije"
}
}
},
"hostname": {
"label": "Naziv hosta"
},
"port": {
"label": "Port"
}
},
"name": "API Poslužitelj [Beta]",
"prompt": {
"hostname": {
"label": "Unesite ime hosta (npr. 0.0.0.0) od API poslužitelja:",
"title": "Naziv hosta"
},
"port": {
"label": "Unesite port od API poslužitelja:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Primijeni kompresiju na zvuk (smanjuje glasnoću najglasnijih dijelova signala i povećava glasnoću najslabijih dijelova)",
"name": "Kompresor Zvuka"
},
"auth-proxy-adapter": {
"description": "Podrška za korištenje usluga autentifikacijskog proxyja",
"menu": {
"disable": "Onemogući proxy adapter",
"enable": "Omogući proxy adapter",
"hostname": {
"label": "Naziv hosta"
},
"port": {
"label": "Port"
}
},
"name": "Proxy adapter za autentifikaciju",
"prompt": {
"hostname": {
"label": "Unesite naziv hosta za lokalnog proxy poslužitelja (zahtijeva ponovno pokretanje):",
"title": "Naziv hosta proxyja"
},
"port": {
"label": "Unesite port za lokalni proxy poslužitelj (zahtijeva ponovno pokretanje):",
"title": "Port proxyja"
}
}
},
"blur-nav-bar": {
"description": "Čini navigacijsku traku prozirnom i zamagljenom",
"name": "Zamagli Navigacijsku Traku"
},
"bypass-age-restrictions": {
"description": "Zaobiđi Music Player provjeru dobi",
"name": "Zaobiđi dobna ograničenja"
},
"captions-selector": {
"description": "Izbornik titlova za audiozapise od Pear Desktopa",
"menu": {
"autoload": "Automatski izaberi posljednje korištene titlove",
"disable-captions": "Bez titlova"
},
"name": "Izbornik za titlove",
"prompt": {
"selector": {
"label": "Trenutni jezik za titlove: {{language}}",
"none": "Ništa",
"title": "Izaberi jezik za titlove"
}
},
"templates": {
"title": "Otvori izbornik za titlove"
},
"toast": {
"caption-changed": "Titlovi su promijenjeni u {{language}}",
"caption-disabled": "Titlovi su isključeni",
"no-captions": "Za ovu pjesmu nisu dostupni titlovi"
}
},
"compact-sidebar": {
"description": "Uvijek postavi bočnu traku na kompaktni način rada",
"name": "Kompaktna bočna traka"
},
"crossfade": {
"description": "Pretapanje (cross-fade) između pjesama",
"menu": {
"advanced": "Napredno"
},
"name": "Pretapanje (cross-fade) [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Trajanje postepenog pojačavanja zvuka (Fade in) (ms)",
"fade-out-duration": "Trajanje postepenog smanjenje zvuka (Fade out) (ms)",
"fade-scaling": {
"label": "Skaliranje postepenog prijelaza (Fade scaling)",
"linear": "Linearno",
"logarithmic": "Logaritamsko"
},
"seconds-before-end": "Pretapanje (cross-fade) N sekundi prije kraja"
},
"title": "Opcije za pretapanje (cross-fade)"
}
}
},
"custom-output-device": {
"description": "Konfiguriraj prilagođeni izlazni medijski uređaj za pjesme",
"menu": {
"device-selector": "Odaberi Uređaj"
},
"name": "Prilagođeni uređaj za izlaz",
"prompt": {
"device-selector": {
"label": "Odaberi izlazni medijski uređaj za korištenje",
"title": "Odaberi izlazni uređaj"
}
}
},
"disable-autoplay": {
"description": "Pokreće pjesmu u pauziranom načinu rada",
"menu": {
"apply-once": "Primjenjuje se samo pri pokretanju aplikacije"
},
"name": "Isključi automatsko reprodukciju"
},
"discord": {
"backend": {
"already-connected": "Pokušano je povezivanje s aktivnom vezom",
"connected": "Spojen na Discord",
"disconnected": "Odspojen od Discorda"
},
"description": "Pokaži svojim prijateljima što slušate sa Rich Presence",
"menu": {
"auto-reconnect": "Automatski se ponovo spoji",
"clear-activity": "Očisti aktivnosti",
"clear-activity-after-timeout": "Očisti aktivnosti nakon isteka vremena",
"connected": "Spojen",
"disconnected": "Odspojen",
"hide-duration-left": "Sakrij preostalo vrijeme",
"hide-github-button": "Sakrij gumb sa GitHub poveznicom",
"play-on-pear-desktop": "Reproduciraj na Pear Desktopu",
"set-inactivity-timeout": "Postavi vremensko ograničenje neaktivnosti (inactivity timeout)",
"set-status-display-type": {
"label": "Tekst statusa",
"submenu": {
"artist": "Slušate {glazbenika}",
"pear-desktop": "Slušate Pear Desktop",
"title": "Slušate {naslov pjesme}"
}
}
},
"name": "Bogata prisutnost Discorda",
"prompt": {
"set-inactivity-timeout": {
"label": "Postavi vremensko ograničenje neaktivnosti u sekundama:",
"title": "Postavi vremensko ograničenje neaktivnosti"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Jao! Oprostite, preuzimanje je bilo neuspješno…",
"title": "Pogreška pri preuzimanju!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} pjesma)",
"message": "Preuzimanje Playliste {{playlistTitle}}",
"title": "Preuzimanje započeto"
}
},
"feedback": {
"conversion-progress": "Konverzija: {{percent}}%",
"converting": "Konvertiranje…",
"done": "Gotov: {{filePath}}",
"download-info": "Preuzimanje {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Preuzimanje: {{percent}}%",
"downloading": "Preuzimanje…",
"downloading-counter": "Preuzimanje {{current}}/{{total}}…",
"downloading-playlist": "Preuzimanje playliste \"{{playlistTitle}}\" - {{playlistSize}} pjesama ({{playlistId}})",
"error-while-downloading": "Pogreška pri preuzimanju \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Mapa {{playlistFolder}} već postoji",
"getting-playlist-info": "Dobavljaju se informacije o playlisti…",
"loading": "Učitavanje…",
"playlist-has-only-one-song": "Playlista ima samo jednu stavku, preuzeti će se direktno",
"playlist-id-not-found": "Nije pronađen ID playliste",
"playlist-is-empty": "Playlista je prazna",
"playlist-is-mix-or-private": "Pogreška pri dobavljanju informacija o playlisti: provjerite da nije privatna ili \"Za vas\" playlista\n\n{{error}}",
"preparing-file": "Priprema se datoteka…",
"saving": "Spremanje…",
"trying-to-get-playlist-id": "Pokušavam dobaviti playlist ID: {{playlistId}}",
"video-id-not-found": "Videozapis nije pronađen",
"writing-id3": "Zapisujem ID3 tagove…"
}
},
"description": "Preuzima MP3 / izvorni audiozapis izravno iz sučelja",
"menu": {
"choose-download-folder": "Odaberite mapu za preuzimanje",
"download-finish-settings": {
"label": "Preuzmi pri završetku",
"prompt": {
"last-percent": "Nakon x posto",
"last-seconds": "Zadnjih x sekundi",
"title": "Podesi kada preuzeti"
},
"submenu": {
"advanced": "Napredno",
"enabled": "Uključeno",
"mode": "Tip vremena",
"percent": "Postotak",
"seconds": "Sekunde"
}
},
"download-playlist": "Preuzmi playlistu",
"presets": "Unaprijed postavljeno",
"skip-existing": "Preskoči datoteke koje već postoje"
},
"name": "Preuzimatelj",
"renderer": {
"can-not-update-progress": "Nemoguće ažuriranje napredka"
},
"templates": {
"button": "Preuzmi"
}
},
"equalizer": {
"description": "Dodaje equalizer reprodukciji",
"menu": {
"presets": {
"label": "Zadane postavke",
"list": {
"bass-booster": "Pojačivač basa"
}
}
},
"name": "Ekvalizator"
},
"exponential-volume": {
"description": "Čini klizač glasnoće (volume slider) eksponencijalnim za lakši odabir niže glasnoće.",
"name": "Eksponencijalna Glasnoća"
},
"in-app-menu": {
"description": "Daje izbornicima fensi, tamni ili prema boji albuma izgled",
"menu": {
"hide-dom-window-controls": "Sakrij kontrole prozora DOM-a"
},
"name": "Izbornik unutar aplikacije"
},
"lumiastream": {
"description": "Dodaje podršku za Lumia Stream",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Dodaje podršku za tekstove pjesama za većinu pjesama",
"menu": {
"romanized-lyrics": "Romanizirani tekstovi pjesme"
},
"name": "Genius tekstovi",
"renderer": {
"fetched-lyrics": "Dobavljen tekst pjesme s Genius-a"
}
},
"music-together": {
"description": "Podijeli playlistu s drugima. Kada domaćin (host) pusti pjesmu, svi ostali će čuti istu pjesmu",
"dialog": {
"enter-host": "Unesi ID hosta"
},
"internal": {
"save": "Spremi",
"track-source": "Izvor Pjesme",
"unknown-user": "Nepoznati Korisnik"
},
"menu": {
"click-to-copy-id": "Kopiraj ID Hosta",
"close": "Zatvori Glazbu Zajedno",
"connected-users": "Spojeni Korisnici",
"disconnect": "Odspoji Glazbu Zajedno",
"empty-user": "Nema spojenih korisnika",
"host": "Host Glazbe Zajedno",
"join": "Pridruži se Glazbi Zajedno",
"permission": {
"all": "Dopusti gostima da kontroliraju playlistu i reprodukciju",
"host-only": "Samo host može kontrolirati playlistu i reprodukciju",
"playlist": "Dozvoli gostima da kontroliraju playlistu"
},
"set-permission": "Promijeni dozvolu za upravljanje",
"status": {
"disconnected": "Odspojen",
"guest": "Spojen kao Gost",
"host": "Spojen kao Host"
}
},
"name": "Glazba Zajedno [Beta]",
"toast": {
"add-song-failed": "Neuspješno dodavanje pjesme",
"closed": "Glazba Zajedno je zatvorena",
"disconnected": "Glazba Zajedno je odspojena",
"host-failed": "Neuspješno hostanje Glazbe Zajedno",
"id-copied": "ID hosta kopiran u međuspremnik",
"id-copy-failed": "Neuspješno kopiranje ID-a hosta u međuspremnik",
"join-failed": "Neuspješno pridruživanje Glazbi Zajedno",
"joined": "Pridružen Glazbi Zajedno",
"permission-changed": "Dozvola Glazbe Zajedno promijenjena na '{{permission}}'",
"remove-song-failed": "Neuspješno uklanjanje pjesme",
"user-connected": "{{name}} se pridružio Glazbi Zajedno",
"user-disconnected": "{{name}} je napustio Glazbu Zajedno"
}
},
"navigation": {
"description": "Naprijed/Nazad navigacijske strelice su izravno integrirane u sučelje, kao i u vašem omiljenom pregledniku",
"name": "Navigacija",
"templates": {
"back": {
"title": "Vrati se na prijethodnu stranicu"
},
"forward": {
"title": "Idi na sljedeću stranicu"
}
}
},
"no-google-login": {
"description": "Ukloni Google prijavne gumbe i linkove iz sučelja",
"name": "Nema Google Prijave"
},
"notifications": {
"description": "Prikažite obavijest kada pjesma počne svirati (interaktivne obavijesti dostupne su na Windowsu)",
"menu": {
"interactive": "Interaktivne Obavijesti",
"interactive-settings": {
"label": "Interaktivne Postavke",
"submenu": {
"hide-button-text": "Sakrij tekst gumba",
"refresh-on-play-pause": "Osvježi pri Reprodukciji/Pauzi",
"tray-controls": "Otvori/Zatvori klikom na traku"
}
},
"priority": "Prioritet Obavijesti",
"toast-style": "Tipa Toast (kao Android obavjest)",
"unpause-notification": "Prikaži notifikaciju pri nastavku"
},
"name": "Obavijesti"
},
"performance-improvement": {
"description": "Poboljšati performanse uključivanjem eksperimentalnih skripti",
"name": "Poboljšanje performansa (Beta)"
},
"picture-in-picture": {
"description": "Dozvoljava aplikaciji da se prebaci u režim slike-u-slici",
"menu": {
"always-on-top": "Uvijek na vrhu",
"hotkey": {
"label": "Prečac",
"prompt": {
"keybind-options": {
"hotkey": "Prečac"
},
"label": "Odaberi prečac za prebacivanje u režim slike-u-slici",
"title": "Prečac za režim slike-u-slici"
}
},
"save-window-position": "Sačuvaj mjesto prozora",
"save-window-size": "Sačuvaj veličinu prozora",
"use-native-pip": "Koristi izvorni režim slike-u-slici za pretraživače"
},
"name": "Slika-u-slici",
"templates": {
"button": "Slika-u-slici"
}
},
"playback-speed": {
"description": "Slušajte brzo, slušajte sporo! Ovo će dodat klizač koji kontrolira brzinu pjesme",
"name": "Brzina pokretanja",
"templates": {
"button": "Brzina"
}
},
"precise-volume": {
"description": "Precizno kontrolirajte jačinu zvuka korištenjem točkih na mišu/prečaca, sa prilagođenim sučeljem i prilagodivim stupnjevima jačine",
"menu": {
"arrows-shortcuts": "Lokalne kontrole tipkih sa strelicama",
"custom-volume-steps": "Postavi prilagođene stope za promjenu jačine",
"global-shortcuts": "Globalni prečaci"
},
"name": "Precizna jačina zvuka",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Snizi jačinu zvuka",
"increase": "Pojačaj jačinu zvuka"
},
"label": "Odaberi globalne prečace na tipkovnici za jačinu zvuka:",
"title": "Globalni prečaci na tipkovnici za jačinu zvuka"
},
"volume-steps": {
"label": "Odaberi stope za povišenje/sniženje jačine zvuka",
"title": "Stope za promjenu jačine zvuka"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Trenutni kvalitet: {{quality}}",
"message": "Odaberi kvalitet videa:",
"title": "Odaberi kvalitet videa"
}
}
},
"description": "Dozvoljava promjenu kvaliteta videa pomoću gumba na video preklopu",
"name": "Promjena kvalitete videa",
"renderer": {
"quality-settings-button": {
"label": "Otvori izbornik za promjenu kvalitete pokretača"
}
}
},
"scrobbler": {
"description": "Dodaj podršku za 'četkanje' (poput last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Autentifikacija sa Last.fm nije uspjela.\nZatvori skočni prozor do sljedećeg ponovnog pokretanja.",
"title": "Autentifikacija je neuspješna"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Postavke za Last.fm API"
},
"listenbrainz": {
"token": "Unesi korisnički žeton za ListenBrainz"
},
"scrobble-alternative-artist": "Izaberite druge glazbenike",
"scrobble-alternative-title": "Koristi alternativne naslove",
"scrobble-other-media": "Učetkaj druge medije"
},
"name": "Četkarnik",
"prompt": {
"lastfm": {
"api-key": "Last.fm API ključ",
"api-secret": "Last.fm API tajna"
},
"listenbrainz": {
"token": {
"label": "Unesi svoj ListenBrainz korisnički žeton:",
"title": "ListenBrainz žeton"
}
}
}
},
"shortcuts": {
"description": "Dozvoljava postavljanje globalnih prečaca na tipkovnici za reproduciranje (pokreni/zaustavi/sljedeće/prijethodno) i isključivanje OSD-a za medije tako što će prebrisati tipke za medije, uključiti Ctrl/CMD + F za pretragu, isključiti MPRIS podršku za medijske tipke na Linux-u, i prilagođene prečace za napredne korisnike",
"menu": {
"override-media-keys": "Prebriši medijske tipke",
"set-keybinds": "Postavi globalne kontrole za pjesme"
},
"name": "Prečaci (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Sljedeće",
"play-pause": "Pokreni / Zaustavi",
"previous": "Prijethodno"
},
"label": "Odaberi globalne prečace za upravljanje pjesmama:",
"title": "Globalni prečaci na tipkovnici"
}
}
},
"skip-disliked-songs": {
"description": "Preskače pjesme koje vam se ne sviđaju",
"name": "Preskočite pjesme koje vam se ne sviđaju"
},
"skip-silences": {
"description": "Automatski preskočite dijelove pjesama gdje nema zvuka",
"name": "Preskoči tišine"
},
"sponsorblock": {
"description": "Automatski preskače dijelove pjesama koji nisu glazba poput uvoda/odjave ili dijelove spotova u kojima nema muzike",
"name": "Bloker sponzora"
},
"synced-lyrics": {
"description": "Obezbjeđava sinkronizirane lirike pjesama, korištenjem dobavljača poput LRClib.",
"errors": {
"fetch": "⚠️\tDošlo je do greške prilikom dobavljanja stihova pjesme.\n\tMolimo vas da probate ponovno kasnije.",
"not-found": "⚠️ Tekst ove pjesme nije pronađen."
},
"menu": {
"default-text-string": {
"label": "Zadani karakteri između stihova pjesama",
"tooltip": "Odaberi zadane karaktere koji će biti korišteni za razmake između stihova pjesama"
},
"line-effect": {
"label": "Efekt crte",
"submenu": {
"fancy": {
"label": "Kitnjast",
"tooltip": "Koristi velike (kao iz aplikacije) efekte na trenutnu crtu"
},
"focus": {
"label": "Fokus",
"tooltip": "Pretvorite samo trenutnu crtu bijelu"
},
"offset": {
"label": "Izmak",
"tooltip": "Izmak na trenutnoj crti"
},
"scale": {
"label": "Razmjera",
"tooltip": "Promjeni razmjeru trenutne crte"
}
},
"tooltip": "Odaberi efekt koji će biti primijenjen na trenutnoj crti"
},
"precise-timing": {
"label": "Napravi da tekst pjesme bude izvrsno usklađen",
"tooltip": "Izračunaj do milisekunde prikaz sljedeće crteteksta (može malo utjecati na učinak)"
},
"preferred-provider": {
"label": "Željeni davatelj usluga",
"none": {
"label": "Nema / prazno",
"tooltip": "Nema željenog pružatelja usluga"
},
"tooltip": "Odaberite zadanog pružatelja usluga kojeg ćete koristiti"
},
"romanization": {
"label": "Romanizuj stihove pjesama",
"tooltip": "Ako je tekst pjesme na drugom jeziku, probajte ga prikazati na latinici."
},
"show-lyrics-even-if-inexact": {
"label": "Prikaži tekst pjesme čak i ako je netačan",
"tooltip": "Ako pjesma nije pronađena, produžetak će probati ponovno sa novim upitom za pretragu.\nRezultat iz drugog pokušaja možda neće biti tačan."
},
"show-time-codes": {
"label": "Prikaži vremenske oznake",
"tooltip": "Prikaži vremenske oznake pored teksta pjesme"
}
},
"name": "Sinkronizirani stihovi pjesama",
"refetch-btn": {
"fetching": "Dobavljanje...",
"normal": "Ponovo dobavite tekst pjesme"
},
"warnings": {
"duration-mismatch": "⚠️ - Tekst pjesme možda nije usklađen zbog neuklapanja u daljini trajanja.",
"inexact": "⚠️ - Tekst ove pjesme možda nije točan",
"instrumental": "⚠️ - Ovo je instrumentalna glazba"
}
},
"taskbar-mediacontrol": {
"description": "Upravljajte reprodukcijom iz Windows radne trake",
"name": "Upravljanje medijima iz radne trake"
},
"touchbar": {
"description": "Dodaje dodatak dodirne trake za macOS korisnike",
"name": "Dodirna Traka"
},
"transparent-player": {
"description": "Učinit će prozor aplikacije prozirnim",
"menu": {
"opacity": {
"label": "Neprozirnost",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Vrsta",
"submenu": {
"acrylic": "Akrilni",
"mica": "Tinjac",
"none": "Nema / prazno",
"tabbed": "U karticama"
}
}
},
"name": "Prozirni Svirač"
},
"tuna-obs": {
"description": "Integracija sa OBS-ovim Tuna dodatkom",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Onemogućava pokretaču da iskoči u toku pokretanja pjesme",
"name": "Nenametljivi pokretač"
},
"video-toggle": {
"description": "Dodaje gumb za šaltanje između režima za video/numeru. Dodatno, može da ukloni cijelu karticu sa videom",
"menu": {
"align": {
"label": "Izravnanje",
"submenu": {
"left": "Lijevo",
"middle": "Sredina",
"right": "Desno"
}
},
"force-hide": "Nasilno uklonite karticu sa videom",
"mode": {
"label": "Režim",
"submenu": {
"custom": "Prilagođeno šaltanje",
"disabled": "Isključeno",
"native": "Izvorno šaltanje"
}
}
},
"name": "Video šaltanje",
"templates": {
"button-song": "Pjesma",
"button-video": "Video"
}
},
"visualizer": {
"description": "Dodaje vizualizator u plejer",
"menu": {
"visualizer-type": "Tip vizualizacije"
},
"name": "Vizualizacija"
}
}
}

View File

@ -1,911 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Nem sikerült futtatni a bővítményt {{pluginName}}::{{contextName}}",
"executed-at-ms": "A {{pluginName}}::{{contextName}} bővítmény végrehajtva {{ms}} ms alatt",
"initialize-failed": "Nem sikerült inicializálni a \"{{pluginName}}\" bővítményt",
"load-all": "Összes bővítmény betöltése",
"load-failed": "Nem sikerült betölteni a \"{{pluginName}}\" bővítményt",
"loaded": "\"{{pluginName}}\" bővítmény betöltve",
"unload-failed": "Nem sikerült a \"{{pluginName}}\" bővítményt kikapcsolni",
"unloaded": "A \"{{pluginName}}\" bővítmény kikapcsolva"
}
}
},
"language": {
"code": "hu",
"local-name": "Magyar",
"name": "Hungarian"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Betöltés befejezve. DevTools megnyitva"
},
"i18n": {
"loaded": "i18n betöltve"
},
"second-instance": {
"receive-command": "Fogadott parancs a protokollon keresztül: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS fájl \"{{cssFile}}\" nem létezik, figyelmen kívül hagyva"
},
"unresponsive": {
"details": "Nem válaszol!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Alkalmazás gyorsítótárának törlése"
},
"window": {
"tried-to-render-offscreen": "Az ablak a képernyőn kívül próbált betölteni, ablakMéret={{windowSize}}, kijelzőMéret={{displaySize}}, pozíció={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "A menü el van rejtve, a megjelenítéshez használd az 'Alt' billentyűt (vagy az 'Escape' billentyűt, ha az alkalmazáson belüli menüt használod)",
"message": "A menü elrejtése engedélyezve",
"title": "Menü elrejtése engedélyezve"
},
"need-to-restart": {
"buttons": {
"later": "Később",
"restart-now": "Újraindítás most"
},
"detail": "A \"{{pluginName}}\" bővítmény bekapcsolása az alkalmazás újraindítását igényli",
"message": "\"{{pluginName}}\" nevű bővítményt újra kell indítani",
"title": "Újraindítás szükséges"
},
"unresponsive": {
"buttons": {
"quit": "Kilépés",
"relaunch": "Újraindítás",
"wait": "Várj"
},
"detail": "Elnézést a kellemetlenségért! Válaszdd ki mi történjen:",
"message": "Az alkalmazás nem válaszol",
"title": "Az ablak nem válaszol"
},
"update-available": {
"buttons": {
"disable": "Frissítések kikapcsolása",
"download": "Letöltés",
"ok": "OK"
},
"detail": "Új verzió elérhető, amely letölthető az alábbi linken {{downloadLink}}",
"message": "Új verzió áll rendelkezésre",
"title": "Frissítés elérhető"
}
},
"menu": {
"about": "Névjegy",
"navigation": {
"label": "Navigáció",
"submenu": {
"copy-current-url": "Jelenlegi URL másolása",
"go-back": "Vissza",
"go-forward": "Előre",
"quit": "Kilépés",
"restart": "Alkalmazás újraindítása"
}
},
"options": {
"label": "Beállítások",
"submenu": {
"advanced-options": {
"label": "Speciális beállítások",
"submenu": {
"auto-reset-app-cache": "Alkalmazás gyorsítótárának törlése indításkor",
"disable-hardware-acceleration": "Hardveres gyorsítás kikapcsolása",
"edit-config-json": "config.json szerkesztése",
"override-user-agent": "Kliens felülírása",
"restart-on-config-changes": "Újraindítás a konfigurációs változtatás után",
"set-proxy": {
"label": "Proxy beállítása",
"prompt": {
"label": "Proxy cím megadása: (Hagyja üresen a kikapcsoláshoz)",
"placeholder": "Példa: SOCKS5://127.0.0.1:9999",
"title": "Proxy beállítása"
}
},
"toggle-dev-tools": "Fejlesztőeszközök BE/KI"
}
},
"always-on-top": "Mindig látható",
"auto-update": "Automatikus frissítés",
"hide-menu": {
"dialog": {
"message": "A menü a következő indításnál rejtve lesz, használja az [Alt] billentyűt a megjelenítéséhez (vagy a backtick [`] billentyűt, ha az alkalmazás belső menüjét használja)",
"title": "Menü elrejtés engedélyezve"
},
"label": "Menü elrejtése"
},
"language": {
"dialog": {
"message": "A nyelv az allkalmazás újraindítása után megváltozik",
"title": "Nyelv megváltoztatva"
},
"label": "Nyelv",
"submenu": {
"to-help-translate": "Szeretnél segíteni a fordításban? Kattints ide"
}
},
"resume-on-start": "Zene folytatása az alkalmazás indításakor",
"single-instance-lock": "Csak egy példány",
"start-at-login": "Futtatás rendszerindításkor",
"starting-page": {
"label": "Induláskor",
"unset": "Visszaállítás"
},
"tray": {
"label": "Tálca ikon",
"submenu": {
"disabled": "Letiltva",
"enabled-and-hide-app": "Engedélyezve és alkalmazás elrejtése",
"enabled-and-show-app": "Engedélyezve és alkalmazás megjelenítése",
"play-pause-on-click": "Lejátszás/Szünet az ikonra kattintással"
}
},
"visual-tweaks": {
"label": "Megjelenési beállítások",
"submenu": {
"custom-window-title": {
"label": "Saját ablak cím",
"prompt": {
"label": "Kérem az egyéni ablak címét: (hagyd üresen a kikapcsoláshoz)",
"placeholder": "Példa: Pear Desktop"
}
},
"like-buttons": {
"default": "Alapértelmezett",
"force-show": "Megjelenítés kényszerítése",
"hide": "Elrejtése",
"label": "Reakció gombok"
},
"remove-upgrade-button": "Előfizetés gombjának eltávolítása",
"theme": {
"dialog": {
"button": {
"cancel": "Mégse",
"remove": "Eltávolít"
},
"remove-theme": "Biztos, hogy el szeretnéd távolítani az egyéni témát?",
"remove-theme-message": "Ez eltávolítja az egyéni témát"
},
"label": "Téma",
"submenu": {
"import-css-file": "Egyéni CSS fájl importálása",
"no-theme": "Nincs téma"
}
}
}
}
}
},
"plugins": {
"enabled": "Bekapcsolva",
"label": "Bővítmények",
"new": "ÚJ"
},
"view": {
"label": "Nézet",
"submenu": {
"force-reload": "Kényszerített újratöltés",
"reload": "Újratöltés",
"reset-zoom": "Alapértelmezett méret visszaállítása",
"toggle-fullscreen": "Teljes képernyő be/ki",
"zoom-in": "Szöveg nagyítása",
"zoom-out": "Szöveg kicsinyítése"
}
}
},
"tray": {
"next": "Következő",
"play-pause": "Lejátszás/Szünet",
"previous": "Előző",
"quit": "Kilépés",
"restart": "YT Music újraindítása",
"show": "Ablak megjelenítése",
"tooltip": {
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Ha egy hirdetés elindul, elnémítja a hangot, és a lejátszási sebességet 16x-ra állítja",
"name": "Hirdetésgyorsítás"
},
"adblocker": {
"description": "Alapértelmezetten minden hirdetés és nyomkövetés blokkolása",
"menu": {
"blocker": "Blokkolási módszer"
},
"name": "Reklámblokkoló"
},
"album-actions": {
"description": "Hozzáadja a Tetszik, Nem tetszik és ezek visszavonására szolgáló gombokat, hogy ezeket az összes dalra alkalmazhasd egy lejátszási listán vagy albumban",
"name": "Album műveletek"
},
"album-color-theme": {
"description": "Dinamikus témát és vizuális effekteket alkalmaz az album színpalettája alapján",
"menu": {
"color-mix-ratio": {
"label": "Színkeverés mértéke",
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"name": "Album színtéma"
},
"ambient-mode": {
"description": "Fényhatás effektust alkalmaz, amely a videóból származó lágy színeket vetíti a képernyő hátterére",
"menu": {
"blur-amount": {
"label": "Elmosódás mértéke",
"submenu": {
"pixels": "{{blurAmount}} pixel"
}
},
"buffer": {
"label": "Puffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Átlátszóság",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Minőség",
"submenu": {
"pixels": "{{quality}} pixel"
}
},
"size": {
"label": "Méret",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Sima átmenet",
"submenu": {
"during": "{{interpolationTime}} másodperc alatt"
}
},
"use-fullscreen": {
"label": "Teljes képernyő használata"
}
},
"name": "Ambient mód"
},
"amuse": {
"description": "Hozzáadja a Pear Desktop támogatását az Amuse \"now playing\" widgethez a 6K Labs által",
"name": "Amuse",
"response": {
"query": "Az Amuse API szerver fut. Használja a GET /query kérést a dalinformációk lekéréséhez."
}
},
"api-server": {
"description": "Hozzáad egy API szervert a lejátszó vezérléséhez",
"dialog": {
"request": {
"buttons": {
"allow": "Engedélyez",
"deny": "Megtagad"
},
"message": "Engedélyezi, hogy {{ID}} ({{origin}}) hozzáférjen az API-hoz?",
"title": "API-hozzáférési kérelem"
}
},
"menu": {
"auth-strategy": {
"label": "Engedélyezési módszer",
"submenu": {
"auth-at-first": {
"label": "Engedélyezés az első kérésnél"
},
"none": {
"label": "Nincs engedélyezés"
}
}
},
"hostname": {
"label": "Kiszolgáló név"
},
"port": {
"label": "Port"
}
},
"name": "API szerver [Béta]",
"prompt": {
"hostname": {
"label": "Adja meg az API szerver kiszolgáló nevét (például 0.0.0.0):",
"title": "Kiszolgáló neve"
},
"port": {
"label": "Adja meg az API szerver portját:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Hang tömörítés alkalmazása (csökkenti a jel legzajosabb részeinek hangerősségét, és emeli a legcsendesebb részek hangerősségét)",
"name": "Hangtömörítő"
},
"auth-proxy-adapter": {
"menu": {
"disable": "Proxy adapder kikapcsolása",
"enable": "Proxy adapter bekapcsolása",
"hostname": {
"label": "Gazdanév"
},
"port": {
"label": "Port"
}
},
"prompt": {
"hostname": {
"label": "Adjon meg egy hosztnevet a lokális proxy szerverhez (újraindítást igényel):",
"title": "Proxy hosztnév"
},
"port": {
"label": "Adjon meg egy portot a lokális proxy szerverhez (újraindátást igényel):",
"title": "Proxy Port"
}
}
},
"blur-nav-bar": {
"description": "Átlátszóvá és elmosódottá teszi a navigációs sávot",
"name": "Navigációs sáv elmosása"
},
"bypass-age-restrictions": {
"description": "A Music Player korellenőrzését kihagyja, ezáltal nem kel meg erősíteni a zene meghallgatása elött. (Automatikusan megerősítve lesz.)",
"name": "Korellenőrzés kihagyása"
},
"captions-selector": {
"description": "Felirat választó a Pear Desktop zenékhez",
"menu": {
"autoload": "Automatikusan kiválasztja az utoljára használt feliratot",
"disable-captions": "Alapértelmezetten nincsenek feliratok"
},
"name": "Feliratválasztó",
"prompt": {
"selector": {
"label": "Jelenlegi feliratnyelv: {{language}}",
"none": "Nincs",
"title": "Felirat nyelvének kiválasztása"
}
},
"templates": {
"title": "Feliratválasztó megnyitása"
},
"toast": {
"caption-changed": "Felirat {{language}} nyelvűre állítva",
"caption-disabled": "Feliratok kikapcsolva",
"no-captions": "Nincsenek elérhető feliratok ehhez a dalhoz"
}
},
"compact-sidebar": {
"description": "Mindig becsukva tartja a bal oldali savót, ahol a Kezdőlap. Felfedezés, Könyvtár és egyebek láthatók. (Amit bármikor ki lehet nyitni)",
"name": "Kompakt oldalsáv"
},
"crossfade": {
"description": "Áttünést biztosít a dalok között, ami folytonossá teszi a zenehallgatást anélkül, hogy érezhető lenne a váltás",
"menu": {
"advanced": "Haladó"
},
"name": "Áttünés [Béta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Áttünés időtartama (ms)",
"fade-out-duration": "Fokozatos halkítás időtartama (ms)",
"fade-scaling": {
"label": "Áttünés mértéke",
"linear": "Lineáris",
"logarithmic": "Logaritmikus"
},
"seconds-before-end": "Áttünés N másodperccel a vége előtt"
},
"title": "Áttünési beállítások"
}
}
},
"custom-output-device": {
"menu": {
"device-selector": "Eszköz kiválasztása"
},
"name": "Saját kimeneti eszköz",
"prompt": {
"device-selector": {
"label": "Válaszd ki a kimeneti eszközt",
"title": "Kimeneti eszköz választása"
}
}
},
"disable-autoplay": {
"description": "Ez a funkció kikapcsolja az automatikus lejátszást, így a zenék nem indulnak el maguktól. Amikor egy album vagy egy dal lejátszása véget ér, a következő szám nem kezdődik el automatikusan. A bővítmény használata során minden zenét manuálisan kell elindítani",
"menu": {
"apply-once": "Csak induláskor alkalmazza"
},
"name": "Automatikus lejátszás letiltása"
},
"discord": {
"backend": {
"already-connected": "Kapcsolódás kísérlete aktív kapcsolattal",
"connected": "Kapcsolódva a Discord-hoz",
"disconnected": "Kapcsolat bontva a Discord-al"
},
"description": "Mutassa meg barátainak, hogy mit hallgat a Rich Presence segítségével. (Ehez a Discord-on is engedélyezve kel lennie a Tevékenységállapot megosztásának [DC Beállítások -> Tevékenyég-adatvédelem -> Megoszthatod az észlelt tevékenységeidet másokkal])",
"menu": {
"auto-reconnect": "Automatikus újracsatlakozás",
"clear-activity": "Tevékenység törlése",
"clear-activity-after-timeout": "Tevékenység törlése időkorlát után",
"connected": "Kapcsolódva",
"disconnected": "Nincs Kapcsolódva",
"hide-duration-left": "Hátralévő idő elrejtése",
"hide-github-button": "GitHub url gombjának elrejtése",
"play-on-pear-desktop": "Lejátszás a Pear Desktop-on",
"set-inactivity-timeout": "Inaktivitási időkorlát beállítása",
"set-status-display-type": {
"label": "Tevékenység szöveg",
"submenu": {
"artist": "Hallgatja: {artist}",
"pear-desktop": "Hallgatja: Pear Desktop",
"title": "Hallgatja: {song title}"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Írja be az inaktivitási időkorlátot másodpercben:",
"title": "Inaktivitási időkorlát beállítása"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "Rendben"
},
"message": "Hoppá! Elnézést, a letöltés sikertelen volt…",
"title": "A letöltés során hiba történt!"
},
"start-download-playlist": {
"buttons": {
"ok": "Rendben"
},
"detail": "({{playlistSize}} dal)",
"message": "A(z) {{playlistTitle}} lejátszási lista letöltése",
"title": "A letöltés elindult"
}
},
"feedback": {
"conversion-progress": "Konvetálás: {{percent}}%",
"converting": "Konvertálás…",
"done": "Kész: {{filePath}}",
"download-info": "Letöltés: {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Letöltés: {{percent}}%",
"downloading": "Letöltés folyamatban…",
"downloading-counter": "Letöltés: {{current}}/{{total}}…",
"downloading-playlist": "Letöltés a lejátszási listáról \"{{playlistTitle}}\" - {{playlistSize}} dal ({{playlistId}})",
"error-while-downloading": "Hiba a \"{{author}} - {{title}}\" letöltésekor: {{error}}",
"folder-already-exists": "A {{playlistFolder}} nevű mappa már létezik",
"getting-playlist-info": "Lejátszási lista információinak lekérése…",
"loading": "Betöltés…",
"playlist-has-only-one-song": "A lejátszási listában csak egy elem van, letöltés közvetlenül",
"playlist-id-not-found": "Nem található lejátszási lista azonosítója",
"playlist-is-empty": "Lejátszási lista üres",
"playlist-is-mix-or-private": "Hiba a lejátszási lista információinak lekérésekor: győződjön meg róla, hogy nem privát vagy \"Saját egyveleg\" lejátszási lista\n\n{{error}}",
"preparing-file": "Fájl előkészítése…",
"saving": "Mentés…",
"trying-to-get-playlist-id": "Playlist ID lekérése: {{playlistId}}",
"video-id-not-found": "Videó nem található",
"writing-id3": "ID3 címkék írása…"
}
},
"description": "MP3 / forrás hanganyag letöltése közvetlenül az interfészről",
"menu": {
"choose-download-folder": "Letöltési mappa kiválasztása",
"download-finish-settings": {
"label": "Letöltés befejezéskor",
"prompt": {
"last-percent": "x százalék után",
"last-seconds": "Utolsó x másodperc",
"title": "Letöltés idejének beállítása"
},
"submenu": {
"advanced": "Speciális",
"enabled": "Engedélyezve",
"mode": "Időmód",
"percent": "Százalék",
"seconds": "Másodpercek"
}
},
"download-playlist": "Lejátszási lista letöltése",
"presets": "Sablonok",
"skip-existing": "Meglévő fájlok kihagyása"
},
"name": "Letöltő",
"renderer": {
"can-not-update-progress": "A haladást nem lehet frissíteni"
},
"templates": {
"button": "Letöltés"
}
},
"equalizer": {
"description": "Hangszínszabályzót ad hozzá a zenelejátszóhoz",
"menu": {
"presets": {
"label": "Hangprofil",
"list": {
"bass-booster": "Basszuskiemelés"
}
}
},
"name": "Hangszínszabályzó"
},
"exponential-volume": {
"description": "Az hangerő csúszka exponenciálissá tételével könnyebbé válik az alacsony hangerő kiválasztása.",
"name": "Exponenciális hangerő"
},
"in-app-menu": {
"description": "Menüsávok stílusos, sötét vagy album-színű megjelenítése",
"menu": {
"hide-dom-window-controls": "DOM ablakvezérlők elrejtése"
},
"name": "Alkalmazáson belüli menü"
},
"lumiastream": {
"description": "Lumia Stream támogatás hozzáadása",
"name": "Lumia Stream [Béta]"
},
"lyrics-genius": {
"description": "Dalszöveg támogatást ad a legtöbb dalhoz",
"menu": {
"romanized-lyrics": "Latin betűs dalszövegek"
},
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Dalszövegek lekérése a Genius-ról"
}
},
"music-together": {
"description": "Lehetővé teszi a lejátszási listák megosztását másokkal. Amikor a házigazda lejátszik egy dalt, mindenki más is ugyanazt a dalt fogja hallani",
"dialog": {
"enter-host": "Adja meg a házigazda azonosítóját"
},
"internal": {
"save": "Mentés",
"track-source": "Zeneszám forrása",
"unknown-user": "Ismeretlen felhasználó"
},
"menu": {
"click-to-copy-id": "Házigazda azonosítójának másolása",
"close": "Zene együtt bezárása",
"connected-users": "Csatlakozott felhasználók",
"disconnect": "Zene együtt kapcsolatának megszakítása",
"empty-user": "Nincs csatlakozva felhasználó",
"host": "Music Together Házigazda",
"join": "Csatlakozás a Zene együtt-höz",
"permission": {
"all": "Engedélyezi a vendégeknek a lejátszási lista és a lejátszó vezérlését",
"host-only": "Csak a házigazda tudja vezérelni a lejátszási listát és a lejátszót",
"playlist": "Engedélyezi a vendégeknek a lejátszási lista vezérlését"
},
"set-permission": "Vezérlési engedély módosítása",
"status": {
"disconnected": "Kapcsolat bontva",
"guest": "Csatlakozva vendégként",
"host": "Csatlakozva házigazdaként"
}
},
"name": "Zene együtt [Béta]",
"toast": {
"add-song-failed": "Sikertelen volt a dal hozzáadása",
"closed": "Zene együtt bezárva",
"disconnected": "Kapcsolat megszakadt a Music Together-el",
"host-failed": "Sikertelen volt a Zene együtt indítása",
"id-copied": "Házigazda azonosító a vágólapra másolva",
"id-copy-failed": "Nem sikerült a Házigazda azonosítóját a vágólapra másolni",
"join-failed": "Nem sikerült csatlakozni a Music Together-hez",
"joined": "Csatlakozott a Music Together-hez",
"permission-changed": "Music Together engedély megváltoztatva \"{{permission}}\" -re",
"remove-song-failed": "A dal eltávolítása sikertelen",
"user-connected": "{{name}} csatlakozott a Music Together-hez",
"user-disconnected": "{{name}} elhagyta a Music Together-t"
}
},
"navigation": {
"description": "Következő/Vissza navigációs nyilak közvetlenül az interfészbe integrálva, mint a kedvenc böngésződben",
"name": "Navigáció",
"templates": {
"back": {
"title": "Előző oldal"
},
"forward": {
"title": "Következő oldal"
}
}
},
"no-google-login": {
"description": "A Bejelentkezés gomb eltávolítása az interfészről (Jobb fentről eltünik a bejelentkezés gomb.)",
"name": "Nincs Google bejelentkezés"
},
"notifications": {
"description": "Értesítés megjelenítése, amikor egy dal elindul (interaktív értesítések elérhetők Windows-on)",
"menu": {
"interactive": "Interaktív Értesítések",
"interactive-settings": {
"label": "Interaktív beállítások",
"submenu": {
"hide-button-text": "Gombok szövegének elrejtése",
"refresh-on-play-pause": "Frissítés lejátszás/szünet megnyomásakor",
"tray-controls": "Megnyitás/Bezárás tálca ikonra kattintva"
}
},
"priority": "Értesítési prioritás",
"toast-style": "Értesítés stílusa",
"unpause-notification": "Értesítés megjelenítése a lejátszás folytatásakor"
},
"name": "Értesítések"
},
"performance-improvement": {
"description": "Teljesítmény fejlesztése kísérleti kódok engedélyezésével",
"name": "Teljesítmény fejlesztése [Béta]"
},
"picture-in-picture": {
"description": "Lehetővé teszi az alkalmazás kép a képben módra váltását",
"menu": {
"always-on-top": "Mindig látható",
"hotkey": {
"label": "Gyorsbillentyű",
"prompt": {
"keybind-options": {
"hotkey": "Gyorsbillentyű"
},
"label": "Válassz egy gyorsbillentyűt a kép a képben mód váltásához",
"title": "Kép a képben gyorsbillentyű"
}
},
"save-window-position": "Ablakpozíciójának mentése",
"save-window-size": "Ablakméretének mentése",
"use-native-pip": "A böngésző natív PiP(Kép a képben) használata"
},
"name": "Kép a képben",
"templates": {
"button": "Kép a képben"
}
},
"playback-speed": {
"description": "Hallgassd gyorsan, hallgassd lassan! Hozzáad egy csúszkát, amely szabályozza a dal sebességét",
"name": "Lejátszás sebessége",
"templates": {
"button": "Sebesség"
}
},
"precise-volume": {
"description": "A hangerő precíz szabályozása egérgörgővel/gyorsbillentyűkkel, egy egyedi HUD és testreszabható hangerő csuszka segítségével",
"menu": {
"arrows-shortcuts": "Helyi nyíl-billentyűkkel való vezérlés",
"custom-volume-steps": "Egyedi hangerőléptetés beállítása",
"global-shortcuts": "Globális Gyorsbillentyűk"
},
"name": "Precíz hangerő",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Hangerő csökkentése",
"increase": "Hangerő növelése"
},
"label": "Válaszd ki a globális hangerő gyorsbillentyűket:",
"title": "Globális hangerő gyorsbillentyűk"
},
"volume-steps": {
"label": "Hangerő növelés/csökkentés léptékének kiválasztása",
"title": "Hangerő lépték"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Jelenlegi minőség: {{quality}}",
"message": "Válaszd ki a videó minőségét:",
"title": "Válaszd ki a videó minőségét"
}
}
},
"description": "Lehetővé teszi a videó minőségének megváltoztatását egy gombbal a videó fedvényen",
"name": "Videóminőség módosító"
},
"scrobbler": {
"description": "Scrobbling támogatás hozzáadása (pl. last.fm, ListenBrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Last.fm hitelesítése nem sikerült\nA felugró ablak elrejtése a következő újraindításig.",
"title": "Hitelesítés sikertelen"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API beállítások"
},
"listenbrainz": {
"token": "Add meg a ListenBrainz felhasználói tokenedet"
},
"scrobble-alternative-title": "Alternatív címek használata",
"scrobble-other-media": "Más média scrobbelése"
},
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Last.fm API kulcs",
"api-secret": "Last.fm titkos API kulcs"
},
"listenbrainz": {
"token": {
"label": "Add meg a ListenBrainz felhasználói tokenedet:",
"title": "ListenBrainz kulcs"
}
}
}
},
"shortcuts": {
"description": "Lehetővé teszi globális gyorsbillentyűk beállítását a lejátszáshoz (lejátszás/szünet/következő/előző), valamint a média OSD kikapcsolását a médiagombok felülírásával. Bekapcsolja a Ctrl/CMD + F billentyűkombinációt a kereséshez, a Linux MPRIS támogatását a médiagombokhoz, és egyedi gyorsbillentyűket a haladó felhasználók számára",
"menu": {
"override-media-keys": "Médiagombok felülírása",
"set-keybinds": "Globális zenevezérlők beállítása"
},
"name": "Gyorsbillentyűk (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Következő",
"play-pause": "Lejátszás / Szünet",
"previous": "Előző"
},
"label": "Globális billentyűparancsok választása a dalok vezérléséhez:",
"title": "Globális gyorsbillentyűk"
}
}
},
"skip-disliked-songs": {
"description": "Kihagyja a nem kedvelt dalokat",
"name": "Nem kedvelt dal kihagyása"
},
"skip-silences": {
"description": "Automatikusan kihagyja a csendes részeket a dalokban",
"name": "Csend kihagyása"
},
"sponsorblock": {
"description": "Automatikusan kihagyja a nem zenés részeket, mint például az intro/outro vagy a zenei videók olyan részeit, ahol a zene nem szól",
"name": "SzponzorBlokk"
},
"synced-lyrics": {
"description": "Szinkronizált dalszövegeket biztosít dalokhoz, LRClib-hez hasonló szolgáltatókat használva.",
"errors": {
"fetch": "⚠️\tHiba történt a dalszöveg lekérése közben.\n\tKérjük, próbálja meg később újra.",
"not-found": "⚠️ - Ehhez a dalhoz nem található dalszöveg."
},
"menu": {
"default-text-string": {
"label": "Alapértelmezett karakter a dalszövegek között",
"tooltip": "Válassza ki az alapértelmezett karaktert, amelyet a dalszövegek közötti szünethez használni szeretne"
},
"line-effect": {
"label": "Soreffekt",
"submenu": {
"fancy": {
"label": "Díszes",
"tooltip": "Használj nagy, alkalmazásszerű effektusokat az aktuális sorhoz"
},
"focus": {
"label": "Fókuszált",
"tooltip": "Az aktuális sor kijelőlése fehérrel"
},
"offset": {
"label": "Eltolás",
"tooltip": "Az aktuális sort jobbra tolja. (mintha tabulálnád)"
},
"scale": {
"label": "Méretezett",
"tooltip": "Az aktuális sort kissé nagyobbra méretezi, kiemelve azt a többi sor közül"
}
},
"tooltip": "Válassza ki az aktuális sorra alkalmazandó effektust"
},
"precise-timing": {
"label": "Dalszöveg tökéletes szinkronizálása",
"tooltip": "Számítsa ki az aktuális sor megjelenítésének idejét ezredmásodperc pontossággal (ez kis mértékben befolyásolhatja a teljesítményt)"
},
"romanization": {
"label": "Latin betűs szöveg",
"tooltip": "Idegennyelvű szöveg esetén próbálkozás a szöveglatin betűs megjelenítésével."
},
"show-lyrics-even-if-inexact": {
"label": "Pontatlan időzítésű dalszövegek megjelenítése",
"tooltip": "Ha a dalt nem találja, a bővítmény újra próbálkozik egy másik keresési lekérdezéssel.\nAz eredmény a második próbálkozás után nem biztos, hogy pontos lesz."
},
"show-time-codes": {
"label": "Időkódok megjelenítése",
"tooltip": "Az időkódok megjelenítése a dalszövegek mellett"
}
},
"name": "Szinkronizált dalszövegek",
"refetch-btn": {
"fetching": "Lekérés folyamatban...",
"normal": "Dalszöveg újra lekérése"
},
"warnings": {
"duration-mismatch": "⚠️ - A dalszövegek időzítése eltérhet a zene hossza miatt.",
"inexact": "⚠️ - Ennek a zenének a dalszövege pontatlan lehet",
"instrumental": "⚠️ - Ez egy hangszerekkel játszott zene"
}
},
"taskbar-mediacontrol": {
"description": "Lejátszás vezérlése a Windows tálcáról",
"name": "Médiavezérlés a tálcán"
},
"touchbar": {
"description": "macOS felhasználók számára hozzáad egy widgetet a TouchBar-hoz",
"name": "TouchBar"
},
"tuna-obs": {
"description": "Integráció az OBS Tuna pluginjával",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Megakadályozza a lejátszó felugrását zenehallgatás közben",
"name": "Rejtett lejátszó"
},
"video-toggle": {
"description": "Hozzáad egy gombot a Videó/Dal mód közötti váltáshoz. Opcionálisan teljesen eltávolíthatja a videó fület is",
"menu": {
"align": {
"label": "Igazítás",
"submenu": {
"left": "Balra",
"middle": "Középre",
"right": "Jobbra"
}
},
"force-hide": "Videó fül kényszeritett eltávolítása",
"mode": {
"label": "Mód",
"submenu": {
"custom": "Egyedi kapcsoló",
"disabled": "Letiltva",
"native": "Natív kapcsoló"
}
}
},
"name": "Videó váltó",
"templates": {
"button-song": "Zeneszám"
}
},
"visualizer": {
"description": "Vizualizációt ad a lejátszóhoz",
"menu": {
"visualizer-type": "Vizualizáció típus"
},
"name": "Vizualizáció"
}
}
}

Some files were not shown because too many files have changed in this diff Show More