Compare commits

..

2 Commits

129 changed files with 3607 additions and 4999 deletions

View File

@ -1,16 +0,0 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
{
"name": "Pear Desktop - Dev Container",
// Keep in sync with `.github/workflows/build.yml`
"image": "mcr.microsoft.com/devcontainers/typescript-node:24",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {},
"postCreateCommand": "pnpm install --frozen-lockfile"
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Configure tool-specific properties.
// "customizations": {},
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}

View File

@ -16,10 +16,10 @@ jobs:
strategy:
fail-fast: true
matrix:
os: [ macos-26, ubuntu-latest, windows-latest ]
os: [ macos-latest, ubuntu-latest, windows-latest ]
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v5
- name: Install pnpm
uses: pnpm/action-setup@v4
@ -29,14 +29,14 @@ jobs:
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v6
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@v6
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
@ -92,7 +92,7 @@ jobs:
if: github.repository == 'pear-devs/pear-desktop' && github.ref == 'refs/heads/master'
needs: build
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v5
with:
fetch-depth: 0
@ -104,14 +104,14 @@ jobs:
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v6
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@v6
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
@ -163,7 +163,7 @@ jobs:
- name: Commit changelog
if: ${{ env.VERSION_HASH == '' }}
uses: stefanzweifel/git-auto-commit-action@v7
uses: stefanzweifel/git-auto-commit-action@v6
with:
commit_message: Update changelog for ${{ env.VERSION_TAG }}
file_pattern: "changelog.md"

View File

@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout Repository"
uses: actions/checkout@v6
uses: actions/checkout@v5
- name: "Dependency Review"
uses: actions/dependency-review-action@v4

View File

@ -33,7 +33,7 @@ jobs:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v5
- name: Install pnpm
uses: pnpm/action-setup@v4
@ -43,14 +43,14 @@ jobs:
- name: Setup NodeJS
if: startsWith(matrix.os, 'macOS') != true
uses: actions/setup-node@v6
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@v6
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
@ -87,7 +87,7 @@ jobs:
pnpm dist:win
- name: Upload artifacts
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: build-artifacts-${{ matrix.os }}
path: pack/
@ -103,7 +103,7 @@ jobs:
pull-requests: write
steps:
- name: Create comment
uses: actions/github-script@v8
uses: actions/github-script@v7
with:
script: |
const runId = context.runId;

View File

@ -15,7 +15,7 @@ jobs:
pull-requests: write
checks: write
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.head.sha }}
@ -26,7 +26,7 @@ jobs:
run_install: false
- name: Setup NodeJS
uses: actions/setup-node@v6
uses: actions/setup-node@v5
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'

1
.gitignore vendored
View File

@ -5,7 +5,6 @@ node_modules
.idea
.pnp.*
.pnpm-store
.yarn/*
!.yarn/patches
!.yarn/plugins

15
.vscode/launch.json vendored
View File

@ -1,15 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node-terminal",
"name": "Run Script: dev (pear-desktop)",
"request": "launch",
"command": "pnpm run dev",
"cwd": "${workspaceFolder}"
}
]
}

View File

@ -1,17 +1,3 @@
<div align="center" markdown="1">
<sup>Special thanks to:</sup>
<br>
<br>
<a href="https://go.warp.dev/pear-desktop">
<img alt="Warp sponsorship" width="400" src="https://github.com/user-attachments/assets/8307ea56-e872-494a-8a9c-de0e296a06ed" />
</a>
### [Warp, built for coding with multiple AI agents](https://go.warp.dev/pear-desktop)
[Available for macOS, Linux, & Windows](https://go.warp.dev/pear-desktop)<br>
</div>
<hr>
<div align="center">
# :pear: Pear Desktop
@ -51,7 +37,6 @@
- [Translation](#translation)
- [Download](#download)
- [Arch Linux](#arch-linux)
- [Solus](#solus)
- [MacOS](#macos)
- [Windows](#windows)
- [How to install without a network connection? (in Windows)](#how-to-install-without-a-network-connection-in-windows)
@ -70,7 +55,7 @@
You can help with translation on [Hosted Weblate](https://bit.ly/48n5YF7).
<a href="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>
@ -85,18 +70,12 @@ latest version.
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).
### [Solus](https://getsol.us/)
```bash
sudo eopkg install pear-desktop
```
### macOS
You can install the app using Homebrew (see the [cask definition](https://github.com/pear-devs/homebrew-pear)):
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/pear-desktop
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:
@ -151,10 +130,6 @@ pnpm install --frozen-lockfile
pnpm dev
```
Instead of installing pnpm on your system, you can also use [devcontainers](https://containers.dev/). You can use devcontainers either as a development environment in VS Code, or as a way to easily build the project without installing dependencies on your host system.
Note that this has it's own limitations (for example, GUI doesn't work on, at least some, Linux hosts).
## Build your own plugins
Using plugins, you can:
@ -290,16 +265,6 @@ export default createPlugin({
Builds the app for macOS, Linux, and Windows,
using [electron-builder](https://github.com/electron-userland/electron-builder).
### Building in devcontainer
1. Clone the repo;
2. Open the folder in VS Code;
3. Reopen in container when prompted;
4. Run `pnpm build` as above (choosing the desired target);
5. Collect the built files from the `dist` folder.
Since devcontainer uses a mount for the workspace, the built files will be available on the host system as well.
## Production Preview
```bash

View File

@ -1,35 +0,0 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_18_2)">
<circle cx="512" cy="512" r="410" fill="url(#paint0_linear_18_2)"/>
<circle cx="512" cy="512" r="402" stroke="url(#paint1_radial_18_2)" stroke-opacity="0.5" stroke-width="16"/>
</g>
<path d="M675 505.072C680.333 508.152 680.333 515.849 675 518.928L436.5 656.626C431.167 659.705 424.5 655.857 424.5 649.698V374.302C424.5 368.24 430.96 364.415 436.249 367.234L436.5 367.374L675 505.072Z" fill="url(#paint2_linear_18_2)" stroke="url(#paint3_linear_18_2)" stroke-width="8" stroke-linejoin="round"/>
<defs>
<filter id="filter0_d_18_2" x="78" y="90" width="868" height="868" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="12"/>
<feGaussianBlur stdDeviation="12"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.866667 0 0 0 0 0.141176 0 0 0 0 0.462745 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_18_2"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_18_2" result="shape"/>
</filter>
<linearGradient id="paint0_linear_18_2" x1="102" y1="102" x2="922" y2="922" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF632F"/>
<stop offset="1" stop-color="#DC148C"/>
</linearGradient>
<radialGradient id="paint1_radial_18_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(512 512) rotate(45) scale(579.828)">
<stop offset="0.68" stop-color="white" stop-opacity="0"/>
<stop offset="0.72" stop-color="white"/>
</radialGradient>
<linearGradient id="paint2_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0.4"/>
</linearGradient>
<linearGradient id="paint3_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0"/>
<stop offset="1" stop-color="white" stop-opacity="0.5"/>
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,67 +0,0 @@
{
"fill" : {
"linear-gradient" : [
"display-p3:1.00000,1.00000,1.00000,1.00000",
"srgb:0.84314,0.84314,0.84314,1.00000"
],
"orientation" : {
"start" : {
"x" : 0.5,
"y" : 0
},
"stop" : {
"x" : 0.5,
"y" : 0.7
}
}
},
"groups" : [
{
"blur-material" : null,
"hidden" : false,
"layers" : [
{
"blend-mode-specializations" : [
{
"appearance" : "dark",
"value" : "normal"
}
],
"image-name" : "SVG Image.svg",
"name" : "transparent-icon",
"opacity-specializations" : [
{
"value" : 1
},
{
"appearance" : "dark",
"value" : 1
}
]
}
],
"name" : "group",
"opacity-specializations" : [
{
"appearance" : "dark",
"value" : 0.8
}
],
"shadow" : {
"kind" : "layer-color",
"opacity" : 0.5
},
"specular" : true,
"translucency" : {
"enabled" : false,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 790 KiB

View File

@ -1,40 +0,0 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_18_2)">
<circle cx="512" cy="512" r="410" fill="url(#paint0_linear_18_2)" />
<circle cx="512" cy="512" r="402" stroke="url(#paint1_radial_18_2)" stroke-opacity="0.5" stroke-width="16" />
</g>
<path
d="M675 505.072C680.333 508.152 680.333 515.849 675 518.928L436.5 656.626C431.167 659.705 424.5 655.857 424.5 649.698V374.302C424.5 368.24 430.96 364.415 436.249 367.234L436.5 367.374L675 505.072Z"
fill="url(#paint2_linear_18_2)" stroke="url(#paint3_linear_18_2)" stroke-width="8" stroke-linejoin="round" />
<defs>
<filter id="filter0_d_18_2" x="78" y="90" width="868" height="868" filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha" />
<feOffset dy="12" />
<feGaussianBlur stdDeviation="12" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0.866667 0 0 0 0 0.141176 0 0 0 0 0.462745 0 0 0 0.4 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_18_2" />
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_18_2" result="shape" />
</filter>
<linearGradient id="paint0_linear_18_2" x1="102" y1="102" x2="922" y2="922" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF632F" />
<stop offset="1" stop-color="#DC148C" />
</linearGradient>
<radialGradient id="paint1_radial_18_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
gradientTransform="translate(512 512) rotate(45) scale(579.828)">
<stop offset="0.68" stop-color="white" stop-opacity="0" />
<stop offset="0.72" stop-color="white" />
</radialGradient>
<linearGradient id="paint2_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" />
<stop offset="1" stop-color="white" stop-opacity="0.4" />
</linearGradient>
<linearGradient id="paint3_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0" />
<stop offset="1" stop-color="white" stop-opacity="0.5" />
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@ -1,5 +1,5 @@
appId: "com.github.th-ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u002d\u006d\u0075\u0073\u0069\u0063"
productName: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063"
appId: com.github.th-ch.pear-desktop
productName: Pear Desktop
files:
- '!*'
- dist
@ -20,7 +20,7 @@ mac:
arch:
- x64
- arm64
icon: assets/generated/icons/mac/icon.icon
icon: assets/generated/icons/mac/icon.icns
compression: maximum
win:
icon: assets/generated/icons/win/icon.ico
@ -43,7 +43,7 @@ linux:
category: AudioVideo
desktop:
entry:
StartupWMClass: "com.github.th_ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u005f\u006d\u0075\u0073\u0069\u0063"
StartupWMClass: com.github.th_ch.pear_desktop
target:
- target: AppImage
arch:
@ -76,10 +76,14 @@ linux:
- arm64
- armv7l
appImage:
description: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App bundled with custom plugins"
description: >-
Pear Desktop App bundled with custom plugins (and built-in ad
blocker / downloader)
category: AudioVideo
flatpak:
description: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App bundled with custom plugins"
description: >-
Pear Desktop App bundled with custom plugins (and built-in ad
blocker / downloader)
category: AudioVideo
runtimeVersion: '24.08'
baseVersion: '24.08'
@ -94,7 +98,7 @@ flatpak:
- '--talk-name=org.freedesktop.Notifications'
- '--talk-name=org.gnome.SessionManager'
- '--talk-name=org.kde.StatusNotifierWatcher'
- "--own-name=org.mpris.MediaPlayer2.\u0059\u006f\u0075\u0074\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063.*"
- '--own-name=org.mpris.MediaPlayer2.PearDesktop.*'
deb:
depends:
- libgtk-3-0
@ -109,7 +113,7 @@ deb:
- libgbm1
rpm:
depends:
- libuuid
- /usr/lib64/libuuid.so.1
fpm:
- '--rpm-rpmbuild-define'
- _build_id_links none

View File

@ -1,7 +1,7 @@
import { dirname, join, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { defineConfig } from 'electron-vite';
import { defineConfig, defineViteConfig } from 'electron-vite';
import builtinModules from 'builtin-modules';
import Inspect from 'vite-plugin-inspect';
@ -21,141 +21,168 @@ const resolveAlias = {
'@assets': resolve(__dirname, './assets'),
};
export default defineConfig(({ mode }) => {
const isDev = mode === 'development';
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,
},
};
const mainConfig: 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',
},
minify: !isDev,
cssMinify: !isDev,
sourcemap: isDev ? 'inline' : undefined,
},
resolve: {
alias: resolveAlias,
},
};
if (mode === 'development') {
commonConfig.build!.sourcemap = 'inline';
commonConfig.plugins?.push(
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/backend'),
}),
);
return commonConfig;
}
const preloadConfig: UserConfig = {
experimental: {
enableNativePlugin: true,
},
plugins: [
pluginLoader('preload'),
viteResolve({
'virtual:i18n': i18nImporter(),
'virtual:plugins': pluginVirtualModuleGenerator('preload'),
}),
],
build: {
lib: {
entry: 'src/preload.ts',
formats: ['cjs'],
return {
...commonConfig,
build: {
...commonConfig.build,
minify: true,
cssMinify: true,
},
outDir: 'dist/preload',
commonjsOptions: {
ignoreDynamicRequires: true,
};
}),
preload: defineViteConfig(({ mode }) => {
const commonConfig: UserConfig = {
experimental: {
enableNativePlugin: true,
},
rolldownOptions: {
external: ['electron', 'custom-electron-prompt', ...builtinModules],
input: './src/preload.ts',
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',
},
},
minify: !isDev,
cssMinify: !isDev,
sourcemap: isDev ? 'inline' : undefined,
},
resolve: {
alias: resolveAlias,
},
};
resolve: {
alias: resolveAlias,
},
};
const rendererConfig: UserConfig = {
experimental: {
enableNativePlugin: !isDev, // 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',
},
minify: !isDev,
cssMinify: !isDev,
sourcemap: isDev ? 'inline' : undefined,
},
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/preload'),
}),
);
return commonConfig;
}
if (isDev) {
mainConfig.plugins?.push(
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/backend'),
}),
);
preloadConfig.plugins?.push(
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/preload'),
}),
);
rendererConfig.plugins?.push(
Inspect({
build: true,
outputDir: join(__dirname, '.vite-inspect/renderer'),
}),
);
}
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',
},
},
};
return {
main: mainConfig,
preload: preloadConfig,
renderer: rendererConfig,
};
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

@ -18,89 +18,51 @@ export default tsEslint.config(
{
plugins: {
stylistic,
importPlugin,
importPlugin
},
languageOptions: {
parser: tsEslint.parser,
parserOptions: {
project: ['tsconfig.json', 'tsconfig.test.json'],
project: true,
sourceType: 'module',
ecmaVersion: 'latest',
},
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-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',
},
],
'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-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,
},
],
'@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/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/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 }],
@ -108,20 +70,16 @@ export default tsEslint.config(
'no-void': 'error',
'no-empty': 'off',
'prefer-promise-reject-errors': 'off',
'stylistic/quotes': [
'error',
'single',
{
avoidEscape: true,
allowTemplateLiterals: 'never',
},
],
'stylistic/quotes': ['error', 'single', {
avoidEscape: true,
allowTemplateLiterals: false,
}],
'stylistic/quote-props': ['error', 'consistent'],
'stylistic/semi': ['error', 'always'],
},
settings: {
'import/parsers': {
'@typescript-eslint/parser': ['.ts'],
'@typescript-eslint/parser': ['.ts']
},
'import/resolver': {
typescript: {},

View File

@ -1,9 +1,9 @@
{
"name": "\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u002d\u006d\u0075\u0073\u0069\u0063",
"desktopName": "com.github.th_ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u005f\u006d\u0075\u0073\u0069\u0063",
"productName": "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063",
"name": "pear-music",
"desktopName": "com.github.th_ch.pear_music",
"productName": "Pear Desktop",
"version": "3.11.0",
"description": "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App - including custom plugins",
"description": "Pear Desktop App - including custom plugins",
"main": "./dist/main/index.js",
"type": "module",
"license": "MIT",
@ -45,12 +45,12 @@
},
"pnpm": {
"overrides": {
"vite": "npm:rolldown-vite@7.3.1",
"node-gyp": "12.2.0",
"vite": "npm:rolldown-vite@7.1.8",
"node-gyp": "11.4.2",
"xml2js": "0.6.2",
"node-fetch": "3.3.2",
"@electron/universal": "3.0.2",
"@babel/runtime": "7.28.6"
"@electron/universal": "3.0.1",
"@babel/runtime": "7.28.4"
},
"patchedDependencies": {
"vudio@2.1.1": "patches/vudio@2.1.1.patch",
@ -64,53 +64,53 @@
},
"dependencies": {
"@dehoist/romanize-thai": "1.0.0",
"@electron-toolkit/tsconfig": "2.0.0",
"@electron-toolkit/tsconfig": "1.0.1",
"@electron/remote": "2.1.3",
"@ffmpeg.wasm/core-mt": "0.12.0",
"@ffmpeg.wasm/main": "0.12.0",
"@floating-ui/dom": "1.7.5",
"@floating-ui/dom": "1.7.4",
"@foobar404/wave": "2.0.5",
"@ghostery/adblocker-electron": "2.13.4",
"@ghostery/adblocker-electron-preload": "2.13.4",
"@hono/node-server": "1.19.9",
"@hono/node-ws": "1.3.0",
"@hono/swagger-ui": "0.5.3",
"@hono/zod-openapi": "1.2.2",
"@hono/zod-validator": "0.7.6",
"@indic-transliteration/sanscript": "1.3.3",
"@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",
"@jellybrick/electron-better-web-request": "2.0.0",
"@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",
"@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",
"butterchurn-presets": "3.0.0-beta.4",
"chinese-conv": "^4.0.0",
"color": "5.0.3",
"conf": "15.1.0",
"custom-electron-prompt": "1.6.1",
"color": "5.0.0",
"conf": "14.0.0",
"crypto-js": "^4.2.0",
"custom-electron-prompt": "1.5.8",
"deepmerge-ts": "7.1.5",
"delay": "6.0.0",
"electron-debug": "4.1.0",
"electron-is": "3.0.0",
"electron-localshortcut": "3.2.1",
"electron-store": "11.0.2",
"electron-store": "10.1.0",
"electron-unhandled": "5.0.0",
"electron-updater": "6.7.3",
"es-hangul": "2.3.8",
"electron-updater": "6.6.2",
"es-hangul": "2.3.5",
"fast-average-color": "9.5.0",
"fast-equals": "6.0.0",
"fast-equals": "5.2.2",
"fflate": "0.8.2",
"filenamify": "7.0.1",
"filenamify": "6.0.0",
"hanja": "1.1.5",
"happy-dom": "20.5.0",
"hono": "4.11.10",
"happy-dom": "18.0.1",
"hono": "4.9.6",
"howler": "2.2.4",
"html-to-text": "9.0.5",
"i18next": "25.8.13",
"i18next": "25.5.2",
"jimp": "1.6.0",
"keyboardevent-from-electron-accelerator": "2.0.0",
"keyboardevents-areequal": "0.2.2",
@ -119,65 +119,67 @@
"kuroshiro-analyzer-kuromoji": "1.1.0",
"lazy-var": "2.2.2",
"mdui": "2.1.4",
"node-html-parser": "7.0.2",
"node-html-parser": "7.0.1",
"node-id3": "0.2.9",
"peerjs": "1.5.5",
"pinyin-pro": "^3.27.0",
"semver": "7.7.4",
"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.11",
"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.48.5",
"virtua": "0.42.3",
"vudio": "2.1.1",
"x11": "2.3.0",
"youtubei.js": "16.0.1",
"zod": "4.3.6"
"youtubei.js": "^16.0.1",
"zod": "4.1.5"
},
"devDependencies": {
"@electron-toolkit/tsconfig": "2.0.0",
"@eslint/js": "9.39.3",
"@electron-toolkit/tsconfig": "1.0.1",
"@eslint/js": "9.35.0",
"@malept/flatpak-bundler": "0.4.0",
"@playwright/test": "1.58.2",
"@stylistic/eslint-plugin": "5.9.0",
"@playwright/test": "1.55.0",
"@stylistic/eslint-plugin": "5.3.1",
"@total-typescript/ts-reset": "0.6.1",
"@types/crypto-js": "^4.2.2",
"@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.1.0",
"bufferutil": "4.0.9",
"builtin-modules": "5.0.0",
"cross-env": "10.1.0",
"del-cli": "7.0.0",
"discord-api-types": "0.38.40",
"electron": "40.1.0",
"electron-builder": "26.7.0",
"electron-builder-squirrel-windows": "26.7.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": "5.0.0",
"eslint": "9.39.3",
"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.5",
"eslint-plugin-prettier": "5.5.4",
"eslint-plugin-solid": "0.14.5",
"glob": "13.0.6",
"node-gyp": "12.2.0",
"ts-morph": "27.0.2",
"typescript": "5.9.3",
"typescript-eslint": "8.54.0",
"utf-8-validate": "6.0.6",
"vite": "npm:rolldown-vite@7.3.1",
"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.10",
"ws": "8.19.0"
"vite-plugin-solid": "2.11.8",
"ws": "8.18.3"
},
"auto-changelog": {
"hideCredit": true,

3764
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,6 @@ export interface DefaultConfig {
autoResetAppCache: boolean;
resumeOnStart: boolean;
likeButtons: string;
swapLikeButtonsOrder: boolean;
proxy: string;
startingPage: string;
backgroundMaterial?: 'none' | 'mica' | 'acrylic' | 'tabbed';
@ -67,7 +66,6 @@ export const defaultConfig: DefaultConfig = {
autoResetAppCache: false,
resumeOnStart: true,
likeButtons: '',
swapLikeButtonsOrder: false,
proxy: '',
startingPage: '',
overrideUserAgent: false,

View File

@ -112,10 +112,7 @@ const migrations = {
'>=2.1.3'(store: IStore) {
const listenAlong = store.get('plugins.discord.listenAlong');
if (listenAlong !== undefined) {
store.set(
'plugins.discord.playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063',
listenAlong,
);
store.set('plugins.discord.playOnPearMusic', listenAlong);
store.delete('plugins.discord.listenAlong');
}
},

View File

@ -2,9 +2,6 @@ import i18next, { init, t as i18t, changeLanguage } from 'i18next';
import { languageResources } from 'virtual:i18n';
export const APPLICATION_NAME =
'\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063';
export const loadI18n = async () =>
await init({
resources: await languageResources(),

View File

@ -154,7 +154,7 @@
"label": "عنوان نافذة مخصص",
"prompt": {
"label": "ادخل عنوان مخصص للنافذة: (اتركه فارغًا إلغاء التفعيل)",
"placeholder": "مثال: {{applicationName}}"
"placeholder": "مثال: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "إعادة تشغيل التطبيق",
"show": "عرض النافدة",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "الوضع المحيطي"
},
"amuse": {
"description": "تكامل دعم {{applicationName}} مع ويدجت Amuse لعرض الأغنية التي قيد التشغيل، من إنتاج 6K Labs",
"description": "تكامل دعم Pear Desktop مع ويدجت Amuse لعرض الأغنية التي قيد التشغيل، من إنتاج 6K Labs",
"name": "تلسيه",
"response": {
"query": "خادم Amuse API قيد التشغيل. استخدم GET /query للحصول على معلومات الأغنية."
@ -373,7 +373,7 @@
"name": "تجاوز التحقق من السن"
},
"captions-selector": {
"description": "محدد ترجمات المقاطع الصوتية ل{{applicationName}}",
"description": "محدد ترجمات المقاطع الصوتية لPear Desktop",
"menu": {
"autoload": "اختار اخر ترجمة مستخدمة تلقائيا",
"disable-captions": "لا توجد ترجمات بشكل افتراضي"
@ -456,13 +456,13 @@
"disconnected": "غير متصل",
"hide-duration-left": "إخفاء المدة المتبقية",
"hide-github-button": "إخفاء زر رابط GitHub",
"play-on-application": "شغل في {{applicationName}}",
"play-on-pear-desktop": "شغل في Pear Desktop",
"set-inactivity-timeout": "ضبط مهلة عدم النشاط",
"set-status-display-type": {
"label": "نص الحالة",
"submenu": {
"artist": "جار السمع ل{artist}",
"application": "جار السمع ل{{applicationName}}",
"pear-desktop": "جار السمع لPear Desktop",
"title": "جار السمع ل{song title}"
}
}

View File

@ -148,7 +148,7 @@
"submenu": {
"custom-window-title": {
"prompt": {
"placeholder": "Nümunə: {{applicationName}}"
"placeholder": "Nümunə: Pear Desktop"
}
},
"like-buttons": {

View File

@ -154,7 +154,7 @@
"label": "Персонализирано заглавие на прозорец",
"prompt": {
"label": "Въведи персонализирано заглавие: (остави празно за да изключиш)",
"placeholder": "Пример: {{applicationName}}"
"placeholder": "Пример: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Рестартирай приложението",
"show": "Покажи прозорец",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Атмосферен режим"
},
"amuse": {
"description": "Добавя поддръжка на {{applicationName}} за джаджата Amuse Now Play от 6K Labs",
"description": "Добавя поддръжка на Pear Desktop за джаджата Amuse Now Play от 6K Labs",
"name": "Забавление",
"response": {
"query": "Сървърът на Amuse API работи. Изпратете GET /query за информация за песента."
@ -373,7 +373,7 @@
"name": "Избягване на възрастови ограничения"
},
"captions-selector": {
"description": "Избор на надписи за аудио тракове в {{applicationName}}",
"description": "Избор на надписи за аудио тракове в Pear Desktop",
"menu": {
"autoload": "Автоматично избиране на последно използвания надпис",
"disable-captions": "Без надписи по подразбиране"
@ -456,14 +456,14 @@
"disconnected": "Прекъснато",
"hide-duration-left": "Скрий оставащото време",
"hide-github-button": "Скрий бутона за линк към GitHub",
"play-on-application": "Възпроизведи в {{applicationName}}",
"play-on-pear-desktop": "Възпроизведи в Pear Desktop",
"set-inactivity-timeout": "Задай таймаут за неактивност",
"set-status-display-type": {
"label": "Статус текст",
"submenu": {
"artist": "Слушам {artist}",
"title": "Слушам {song title}",
"application": "Слушам {{applicationName}}"
"pear-desktop": "Слушам Pear Desktop"
}
}
},

View File

@ -154,7 +154,7 @@
"label": "কাস্টম উইন্ডো টাইটেল",
"prompt": {
"label": "নিজস্ব উইন্ডোর টাইটেল দিন (বন্ধ করতে ফাঁকা রাখুন)",
"placeholder": "উদাহরণস্বরূপ: {{applicationName}}"
"placeholder": "উদাহরণস্বরূপ: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "অ্যাপ পুনরায় চালু করুন",
"show": "উইন্ডো দেখান",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "ইউটিউব মিউজিক",
"with-song-info": "ইউটিউব মিউজিক: {{artist}} - {{title}}"
}
}
},
@ -443,7 +443,7 @@
"disconnected": "সংযোগ বিচ্ছিন্ন",
"hide-duration-left": "অবশিষ্ট সময় লুকান",
"hide-github-button": "গিটহাব লিঙ্ক বাটন লুকান",
"play-on-application": "ইউটিউব মিউজিকে চালান",
"play-on-pear-desktop": "ইউটিউব মিউজিকে চালান",
"set-inactivity-timeout": "নিষ্ক্রিয়তার সময়সীমা সেট করুন"
},
"name": "ডিসকর্ড রিচ প্রেজেন্স",

View File

@ -154,7 +154,7 @@
"label": "Prilagođeni naslov prozora",
"prompt": {
"label": "Unesite vlastiti naslov prozora: (ostavite prazno za isključenje)",
"placeholder": "Primjer: {{applicationName}}"
"placeholder": "Primjer: Pear Desktop"
}
},
"like-buttons": {
@ -184,31 +184,9 @@
}
},
"plugins": {
"enabled": "Omogućeno",
"enabled": "Omogući",
"label": "Dodaci",
"new": "Novo"
},
"view": {
"label": "Pogled",
"submenu": {
"force-reload": "Silom Ponovo Učitaj",
"reload": "Ponovo Učitaj",
"reset-zoom": "Stvarna Veličina",
"toggle-fullscreen": "Uključi/Isključi Prikaz Cijelog Ekrana",
"zoom-in": "Uvećaj",
"zoom-out": "Umanji"
}
}
},
"tray": {
"next": "Slijedeće",
"play-pause": "Plej/Pauza",
"previous": "Prethodno",
"quit": "Izlaz",
"restart": "Ponovo Pokreni Aplikaciju",
"show": "Pokaži prozor",
"tooltip": {
"default": "{{applicationName}}"
}
}
},
@ -219,53 +197,6 @@
"label": "Kvalitet"
}
}
},
"discord": {
"menu": {
"set-status-display-type": {
"submenu": {
"application": "Slušate {{applicationName}}",
"artist": "Slušate {muzičar}",
"title": "Slušate {naziv pesme}"
}
}
},
"name": "Diskord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Unesi ograničenje neaktivnosti u sekundama:",
"title": "Postavi ograničenje neaktivnosti"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Ufff! Izvinite, preuzimanje nije uspelo…",
"title": "Greška u preuzimanju!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{Playlist Size}} pjesme)",
"message": "Preuzimanje Plejliste {{playlist Title}}",
"title": "Preuzimanje počelo"
}
},
"feedback": {
"conversion-progress": "Pretvaranje: {{percent}}%",
"converting": "Pretvaranje…",
"done": "Gotovo: {{file Path}}",
"download-info": "Preuzimanje {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Preuzimanje: {{percent}}%",
"downloading": "Preuzimanje…"
}
}
}
}
}

View File

@ -2,7 +2,7 @@
"common": {
"console": {
"plugins": {
"execute-failed": "Error en l'execució de l'extensió {{pluginName}}::{{contextName}}",
"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",
@ -154,7 +154,7 @@
"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: {{applicationName}}"
"placeholder": "Exemple: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reinicia l'aplicació",
"show": "Mostra la finestra",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Activar el tema en la barra de progrés"
}
},
"name": "Tema de color de l'àlbum"
},
@ -288,7 +287,7 @@
"name": "Mode ambient"
},
"amuse": {
"description": "Afegeix suport a {{applicationName}} per el widget \"now playing\" d'Amuse per 6K Labs",
"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çó."
@ -321,22 +320,6 @@
"hostname": {
"label": "Nom del host"
},
"https": {
"label": "HTTPS i Certificats",
"submenu": {
"cert": {
"dialogTitle": "Seleccionar arxiu de certificat HTTPS",
"label": "Arxiu de certificat (.crt/.pem)"
},
"enable-https": {
"label": "Activa HTTPS"
},
"key": {
"dialogTitle": "Selecciona arxiu de clau HTTPS privada",
"label": "Arxiu de clau privada (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -390,7 +373,7 @@
"name": "Esquiva les restriccions d'edat"
},
"captions-selector": {
"description": "Selector de subtítols per les pistes d'àudio de {{applicationName}}",
"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"
@ -473,14 +456,14 @@
"disconnected": "Desconnectat",
"hide-duration-left": "Amaga la durada restant",
"hide-github-button": "Amaga el botó de l'enllaç a GitHub",
"play-on-application": "Reprodueix a {{applicationName}}",
"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": {
"application": "Escoltant {{applicationName}}",
"artist": "Escoltant {artist}",
"title": "Escoltant {song title}"
"title": "Escoltant {song title}",
"pear-desktop": "Escoltant Pear Desktop"
}
}
},

View File

@ -154,7 +154,7 @@
"label": "Vlastní název okna",
"prompt": {
"label": "Zadejte vlastní název okna: (zanechejte prázdné pro zakázání)",
"placeholder": "Příklad: {{applicationName}}"
"placeholder": "Příklad: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Restartovat aplikaci",
"show": "Zobrazit okno",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Ambientní režim"
},
"amuse": {
"description": "Přídá {{applicationName}} podporu pro Amuse právě hraje widget od 6K Labs",
"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."
@ -373,7 +373,7 @@
"name": "Obejít věková omezení"
},
"captions-selector": {
"description": "Titulkový selector pro zvukové stopy v {{applicationName}}",
"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í"
@ -456,13 +456,13 @@
"disconnected": "Odpojeno",
"hide-duration-left": "Skrýt zbývající duration",
"hide-github-button": "Skrýt tlačítko s odkazem na GitHub",
"play-on-application": "Hrát na {{applicationName}}",
"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}",
"application": "Poslouchám {{applicationName}}",
"pear-desktop": "Poslouchám Pear Desktop",
"title": "Poslouchám {song title}"
}
}

View File

@ -154,7 +154,7 @@
"label": "Tilpasset vindues titel",
"prompt": {
"label": "Indtast tilpasset vindues titel: (lad være top for deaktiveret)",
"placeholder": "Eksempel: {{applicationName}}"
"placeholder": "Eksempel: Pear Desktop"
}
},
"like-buttons": {
@ -206,8 +206,8 @@
"restart": "Genstart app",
"show": "Vis vindue",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},

View File

@ -154,15 +154,14 @@
"label": "Benutzerdefinierter Fenstertitel",
"prompt": {
"label": "Benutzerdefinierten Fenstertitel eingeben: (zum Deaktivieren leer lassen)",
"placeholder": "Beispiel: {{applicationName}}"
"placeholder": "Beispiel: Pear Desktop"
}
},
"like-buttons": {
"default": "Standard",
"force-show": "Zeigen erzwungen",
"hide": "Versteckt",
"label": "Gefällt mir-Knopf",
"swap": "Gefällt mir-Knopf Reihenfolge ändern"
"label": "Gefällt mir-Knopf"
},
"remove-upgrade-button": "Upgrade-Schaltfläche entfernen",
"theme": {
@ -209,8 +208,8 @@
"restart": "Anwendung neu starten",
"show": "Fenster anzeigen",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -238,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Suchleisten-Design aktivieren"
}
},
"name": "Thema aus Albumfarbe"
},
@ -289,7 +287,7 @@
"name": "Ambiente-Modus"
},
"amuse": {
"description": "Fügt {{applicationName}} Unterstützung für das Amuse \"Spielt gerade\"-Widget von 6K Labs hinzu",
"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."
@ -322,22 +320,6 @@
"hostname": {
"label": "Hostname"
},
"https": {
"label": "HTTPS & Zertifikate",
"submenu": {
"cert": {
"dialogTitle": "HTTPS Zertifikat Datei auswählen",
"label": "Zertifikate Datei (.crt/.pem)"
},
"enable-https": {
"label": "HTTPS aktivieren"
},
"key": {
"dialogTitle": "HTTPS privaten Schlüssel Datei auswählen",
"label": "Privater Schlüssel Datei (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -391,7 +373,7 @@
"name": "Altersbeschränkungen umgehen"
},
"captions-selector": {
"description": "Untertitelwähler für {{applicationName}}-Audio-Lieder",
"description": "Untertitelwähler für Pear Desktop-Audio-Lieder",
"menu": {
"autoload": "Wähle automatisch den zuletzt verwendeten Untertitel",
"disable-captions": "Standardmäßig keine Untertitel"
@ -413,17 +395,6 @@
"no-captions": "Keine Untertitel für dieses Lied verfügbar"
}
},
"clock": {
"description": "Füge eine Uhr der Navigationsleiste hinzu",
"menu": {
"format": {
"24-hour-format": "24-Stunden Format",
"display-seconds": "Sekunden anzeigen",
"label": "Format"
}
},
"name": "Uhr"
},
"compact-sidebar": {
"description": "Seitenleiste immer in den kompakten Modus setzen",
"name": "Kompakte Seitenleiste"
@ -485,13 +456,13 @@
"disconnected": "Getrennt",
"hide-duration-left": "Verbleibende Zeit verstecken",
"hide-github-button": "Knopf mit Link zu GitHub ausblenden",
"play-on-application": "Auf {{applicationName}} abspielen",
"play-on-pear-desktop": "Auf Pear Desktop abspielen",
"set-inactivity-timeout": "Inaktivitätstimeout setzen",
"set-status-display-type": {
"label": "Status Text",
"submenu": {
"application": "Hört {{applicationName}}",
"artist": "Hört {artist} zu",
"pear-desktop": "Hört Pear Desktop",
"title": "Du hörst {song title}"
}
}
@ -635,7 +606,7 @@
"permission": {
"all": "Gästen erlauben, Wiederhabeliste und Player zu bedienen",
"host-only": "Nur der Host kann die Playlist und den Player kontrollieren",
"playlist": "Gästen das Kontrollieren der Playlist erlauben"
"playlist": "Gäste das Kontrollieren der Playlist erlauben"
},
"set-permission": "Kontrollberechtigung ändern",
"status": {
@ -842,24 +813,6 @@
"not-found": "⚠️ Kein Text für diesen Song gefunden."
},
"menu": {
"convert-chinese-character": {
"label": "Chinesische Zeichen Umwandeln",
"submenu": {
"disabled": {
"label": "Deaktiviert",
"tooltip": "Chinesische Zeichenkonvertierung deaktivieren"
},
"simplified-to-traditional": {
"label": "Vereinfacht zu Traditionell",
"tooltip": "Vereinfachtes Chinesisch in traditionelles Chinesisch umwandeln"
},
"traditional-to-simplified": {
"label": "Traditionell zu Vereinfacht",
"tooltip": "Traditionelles Chinesisch in vereinfachtes Chinesisch umwandeln"
}
},
"tooltip": "Chinesische Zeichen in traditionell oder vereinfacht umwandeln"
},
"default-text-string": {
"label": "Standardzeichen zwischen Texten",
"tooltip": "Standardzeichen für die Lücke zwischen Songtexten auswählen"
@ -913,12 +866,12 @@
},
"name": "Synchronisierte Texte",
"refetch-btn": {
"fetching": "Laden...",
"normal": "Songtext neu laden"
"fetching": "Hole Songtext...",
"normal": "Songtext neu holen"
},
"warnings": {
"duration-mismatch": "⚠️ - Es kann sein, dass die Synchronization nicht stimmt, da die Songdauer nicht übereinstimmt.",
"inexact": "⚠️ - Es ist möglich, dass der Songtext für diesen Song nicht übereinstimmt.",
"inexact": "⚠️ - Der Songtext stimmt möglicherweise nicht überein",
"instrumental": "⚠️ - Das ist ein instrumentales Lied"
}
},

View File

@ -2,14 +2,14 @@
"common": {
"console": {
"plugins": {
"execute-failed": "Απέτυχε η εκτέλεση του plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Το plugin {{pluginName}}::{{contextName}} εκτελέστηκε σε {{ms}}ms",
"initialize-failed": "Απέτυχε η εκκίνηση του plugin \"{{pluginName}}\"",
"load-all": "Φόρτωση όλων των plugin",
"load-failed": "Απέτυχε η φόρτωση του plugin \"{{pluginName}}\"",
"loaded": "Το plugin \"{{pluginName}}\" φορτώθηκε",
"unload-failed": "Απέτυχε η εκφόρτωση του plugin \"{{pluginName}}\"",
"unloaded": "Το plugin \"{{pluginName}}\" εκφορτώθηκε"
"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}}\" καταργήθηκε"
}
}
},
@ -30,7 +30,7 @@
"receive-command": "Λήφθηκε εντολή μέσω πρωτοκόλλου: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Το αρχείο CSS \"{{cssFile}}\" δεν υπάρχει, θα αγνοηθεί"
"css-file-not-found": "Το αρχείο CSS \"{{cssFile}}\" δεν υπάρχει, αγνόηση"
},
"unresponsive": {
"details": "Σφάλμα απόκρισης!\n{{error}}"
@ -44,7 +44,7 @@
},
"dialog": {
"hide-menu-enabled": {
"detail": "Το μενού είναι κρυμμένο, χρησιμοποιήστε το 'Alt' για να το εμφανίσετε (ή το 'Escape' αν χρησιμοποιείτε το μενού εντός εφαρμογής)",
"detail": "Το μενού είναι κρυμμένο, χρησιμοποιήστε το 'Alt' για να το εμφανίσετε (ή το 'Escape' αν χρησιμοποιείτε το μενού εφαρμογής)",
"message": "Η απόκρυψη μενού είναι ενεργοποιημένη",
"title": "Η απόκρυψη μενού ενεργοποιήθηκε"
},
@ -53,8 +53,8 @@
"later": "Αργότερα",
"restart-now": "Επανεκκίνηση τώρα"
},
"detail": "Το plugin \"{{pluginName}}\" απαιτεί επανεκκίνηση για να ενεργοποιηθεί",
"message": "Το plugin \"{{pluginName}}\" χρειάζεται επανεκκίνηση",
"detail": "Το πρόσθετο \"{{pluginName}}\" απαιτεί επανεκκίνηση για να ισχύσει",
"message": "Το \"{{pluginName}}\" χρειάζεται επανεκκίνηση",
"title": "Απαιτείται επανεκκίνηση"
},
"unresponsive": {
@ -63,7 +63,7 @@
"relaunch": "Επανεκκίνηση",
"wait": "Αναμονή"
},
"detail": "Λυπούμαστε για την ταλαιπωρία! Παρακαλώ επιλέξτε τι να συμβεί:",
"detail": "Λυπούμαστε για την ταλαιπωρία! Παρακαλώ επιλέξτε τι να κάνετε:",
"message": "Η εφαρμογή δεν αποκρίνεται",
"title": "Το παράθυρο δεν αποκρίνεται"
},
@ -71,11 +71,11 @@
"buttons": {
"disable": "Απενεργοποίηση ενημερώσεων",
"download": "Λήψη",
"ok": "Εντάξει"
"ok": "OK"
},
"detail": "Μια νέα έκδοση είναι διαθέσιμη και μπορεί να ληφθεί από τον σύνδεσμο {{downloadLink}}",
"detail": "Μια νέα έκδοση είναι διαθέσιμη και μπορεί να ληφθεί από το {{downloadLink}}",
"message": "Μια νέα έκδοση είναι διαθέσιμη",
"title": "Υπάρχει διαθέσιμη ενημέρωση"
"title": "Διατίθεται ενημέρωση"
}
},
"menu": {
@ -97,26 +97,26 @@
"label": "Επιλογές για προχωρημένους",
"submenu": {
"auto-reset-app-cache": "Επαναφορά μνήμης cache εφαρμογής όταν η εφαρμογή ξεκινά",
"disable-hardware-acceleration": "Απενεργοποίηση επιτάχυνσης από υπολογιστή",
"disable-hardware-acceleration": "Απενεργοποίηση επιτάχυνσης υλικού",
"edit-config-json": "Επεξεργασία του config.json",
"override-user-agent": "Παράκαμψη του User-Agent",
"override-user-agent": "Αντικατάσταση του User-Agent",
"restart-on-config-changes": "Επανεκκίνηση σε αλλαγές του config",
"set-proxy": {
"label": "Ορισμός μεσολβητή",
"label": "Ορισμός μεσολάβησης",
"prompt": {
"label": "Εισαγωγή διεύθυνσης μεσολαβητή: (αφήστε κενό για απενεργοποίηση)",
"label": "Εισαγωγή διεύθυνσης μεσολάβησης: (αφήστε κενό για απενεργοποίηση)",
"placeholder": "Παράδειγμα: SOCKS5://127.0.0.1:9999",
"title": "Ρύθμιση μεσολαβητή"
"title": "Ορισμός μεσολάβησης"
}
},
"toggle-dev-tools": "Ενεργοποίηση/Απενεργοποίηση DevTools"
"toggle-dev-tools": "Εναλλαγή DevTools"
}
},
"always-on-top": "Πάντα σε ανώτερο πλάνο",
"always-on-top": "Πάντα σε πρώτο πλάνο",
"auto-update": "Αυτόματη ενημέρωση",
"hide-menu": {
"dialog": {
"message": "Το μενού θα κρυφτεί στην επόμενη εκκίνηση, χρησιμοποιήστε [Alt] για να το εμφανίσετε (ή το πλήκτρο backtick [`] αν χρησιμοποιείτε το μενού εντός εφαρμογής)",
"message": "Το μενού θα κρυφτεί στην επόμενη εκκίνηση, χρησιμοποιήστε [Alt] για να το εμφανίσετε (ή το πλήκτρο backtick [`] αν χρησιμοποιείτε το μενού εφαρμογής)",
"title": "Η απόκρυψη μενού ενεργοποιήθηκε"
},
"label": "Απόκρυψη μενού"
@ -133,7 +133,7 @@
},
"resume-on-start": "Συνέχιση τελευταίου τραγουδιού όταν η εφαρμογή ξεκινά",
"single-instance-lock": "Κλείδωμα μοναδικής εκδοχής",
"start-at-login": "Έναρξη κατά την είσοδο",
"start-at-login": "Έναρξη κατά τη σύνδεση",
"starting-page": {
"label": "Αρχική σελίδα",
"unset": "Κατάργηση ορισμού"
@ -154,15 +154,14 @@
"label": "Προσαρμοσμένος τίτλος παραθύρου",
"prompt": {
"label": "Εισαγωγή προσαρμοσμένου τίτλου παραθύρου: (κενό για απενεργοποίηση)",
"placeholder": "Παράδειγμα: {{applicationName}}"
"placeholder": "Παράδειγμα: Pear Desktop"
}
},
"like-buttons": {
"default": "Προεπιλογή",
"force-show": "Επιβολή εμφάνισης",
"hide": "Απόκρυψη",
"label": "Κουμπιά like",
"swap": "Εναλλαγή της σειράς των κουμπιών like"
"label": "Κουμπιά Μου αρέσει"
},
"remove-upgrade-button": "Αφαίρεση κουμπιού αναβάθμισης",
"theme": {
@ -209,8 +208,8 @@
"restart": "Επανεκκίνηση εφαρμογής",
"show": "Εμφάνιση παραθύρου",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -288,7 +287,7 @@
"name": "Λειτουργία περιβάλλοντος"
},
"amuse": {
"description": "Προσθέτει υποστήριξη {{applicationName}} στο widget Amuse now playing από την 6K Labs",
"description": "Προσθέτει υποστήριξη Pear Desktop στο widget Amuse now playing από την 6K Labs",
"name": "Amuse",
"response": {
"query": "Ο διακομιστής Amuse API εκτελείται. GET /query για να λάβετε πληροφορίες για το τραγούδι."
@ -374,7 +373,7 @@
"name": "Παράκαμψη ηλικιακών περιορισμών"
},
"captions-selector": {
"description": "Επιλογέας λεζάντας για μουσικά κομμάτια ήχου του {{applicationName}}",
"description": "Επιλογέας λεζάντας για μουσικά κομμάτια ήχου του Pear Desktop",
"menu": {
"autoload": "Αυτόματη επιλογή της τελευταίας χρησιμοποιούμενης λεζάντας",
"disable-captions": "Χωρίς λεζάντες από προεπιλογή"
@ -444,7 +443,7 @@
"disconnected": "Αποσυνδεδεμένο",
"hide-duration-left": "Απόκρυψη της διάρκειας που απομένει",
"hide-github-button": "Απόκρυψη κουμπιού συνδέσμου GitHub",
"play-on-application": "Αναπαραγωγή στο {{applicationName}}",
"play-on-pear-desktop": "Αναπαραγωγή στο Pear Desktop",
"set-inactivity-timeout": "Ορισμός χρονικού ορίου αδράνειας"
},
"name": "Discord Πλούσια παρουσία",

View File

@ -154,14 +154,13 @@
"default": "Default",
"force-show": "Force show",
"hide": "Hide",
"swap": "Swap like buttons order",
"label": "Like buttons"
},
"custom-window-title": {
"label": "Custom window title",
"prompt": {
"label": "Enter custom window title: (leave empty to disable)",
"placeholder": "Example: {{applicationName}}"
"placeholder": "Example: Pear Desktop"
}
},
"remove-upgrade-button": "Remove upgrade button",
@ -209,8 +208,8 @@
"restart": "Restart App",
"show": "Show window",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -289,7 +288,7 @@
"name": "Ambient Mode"
},
"amuse": {
"description": "Adds {{applicationName}} support for the Amuse now playing widget by 6K Labs",
"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."
@ -324,22 +323,6 @@
},
"port": {
"label": "Port"
},
"https": {
"label": "HTTPS & Certificates",
"submenu": {
"enable-https": {
"label": "Enable HTTPS"
},
"cert": {
"label": "Certificate file (.crt/.pem)",
"dialogTitle": "Select HTTPS certificate file"
},
"key": {
"label": "Private key file (.key/.pem)",
"dialogTitle": "Select HTTPS private key file"
}
}
}
},
"name": "API Server [Beta]",
@ -391,7 +374,7 @@
"name": "Bypass Age Restrictions"
},
"captions-selector": {
"description": "Caption selector for {{applicationName}} audio tracks",
"description": "Caption selector for Pear Desktop audio tracks",
"menu": {
"autoload": "Automatically select last used caption",
"disable-captions": "No captions by default"
@ -413,17 +396,6 @@
"no-captions": "No captions available for this song"
}
},
"clock": {
"description": "Add a clock to the navigation bar",
"name": "Clock",
"menu": {
"format": {
"label": "Format",
"display-seconds": "Display Seconds",
"24-hour-format": "24-Hour Format"
}
}
},
"compact-sidebar": {
"description": "Always set the sidebar in compact mode",
"name": "Compact Sidebar"
@ -485,12 +457,12 @@
"disconnected": "Disconnected",
"hide-duration-left": "Hide duration left",
"hide-github-button": "Hide GitHub link Button",
"play-on-application": "Play on {{applicationName}}",
"play-on-pear-desktop": "Play on Pear Desktop",
"set-inactivity-timeout": "Set inactivity timeout",
"set-status-display-type": {
"label": "Status text",
"submenu": {
"application": "Listening to {{applicationName}}",
"pear-desktop": "Listening to Pear Desktop",
"artist": "Listening to {artist}",
"title": "Listening to {song title}"
}
@ -891,24 +863,6 @@
"show-time-codes": {
"label": "Show time codes",
"tooltip": "Show the time codes next to the lyrics"
},
"convert-chinese-character": {
"label": "Convert Chinese character",
"submenu": {
"disabled": {
"label": "Disabled",
"tooltip": "Disable Chinese character conversion"
},
"simplified-to-traditional": {
"label": "Simplified to Traditional",
"tooltip": "Convert Simplified Chinese to Traditional Chinese"
},
"traditional-to-simplified": {
"label": "Traditional to Simplified",
"tooltip": "Convert Traditional Chinese to Simplified Chinese"
}
},
"tooltip": "Convert Chinese character to Traditional or Simplified"
}
},
"name": "Synced Lyrics",

View File

@ -3,11 +3,11 @@
"console": {
"plugins": {
"execute-failed": "Error al ejecutar el complemento {{pluginName}}::{{contextName}}",
"executed-at-ms": "Complemento {{pluginName}}::{{contextName}} se ejecutó en {{ms}}ms",
"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}}\" cargados",
"loaded": "Complementos \"{{pluginName}}\" cargado",
"unload-failed": "No se ha podido descargar el complemento \"{{pluginName}}\"",
"unloaded": "Complemento \"{{pluginName}}\" descargado"
}
@ -154,15 +154,14 @@
"label": "Título de ventana personalizado",
"prompt": {
"label": "Ingresa un título de ventana personalizado: (déjalo vacío para desactivar)",
"placeholder": "Ejemplo: {{applicationName}}"
"placeholder": "Ejemplo: Pear Desktop"
}
},
"like-buttons": {
"default": "Predeterminado",
"force-show": "Forzar la visualización",
"hide": "Ocultar",
"label": "Botones de \"Me Gusta\"",
"swap": "Intercambiar el orden de los botones de \"Me Gusta\""
"label": "Botones de \"Me Gusta\""
},
"remove-upgrade-button": "Eliminar el botón de Actualización",
"theme": {
@ -209,8 +208,8 @@
"restart": "Reiniciar la aplicación",
"show": "Mostrar ventana",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -238,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Habilitar temas a la barra de búsqueda"
}
},
"name": "Tema de color del álbum"
},
@ -289,7 +287,7 @@
"name": "Modo ambiente"
},
"amuse": {
"description": "Agrega soporte a {{applicationName}} para el widget \"reproduciendo\" de Amuse por 6K Labs",
"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."
@ -322,22 +320,6 @@
"hostname": {
"label": "Nombre del host"
},
"https": {
"label": "HTTPS y Certificados",
"submenu": {
"cert": {
"dialogTitle": "Seleccione el archivo de certificado HTTPS",
"label": "Archivo de certificado (.crt/.pem)"
},
"enable-https": {
"label": "Habilitar HTTPS"
},
"key": {
"dialogTitle": "Selecciona el archivo de clave privada HTTPS",
"label": "Archivo de clave privada (.key/.pem)"
}
}
},
"port": {
"label": "Puerto"
}
@ -391,7 +373,7 @@
"name": "Saltarse las restricciones de edad"
},
"captions-selector": {
"description": "Selector de subtítulos para pistas de audio de {{applicationName}}",
"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"
@ -413,17 +395,6 @@
"no-captions": "Sin subtítulos para ésta canción"
}
},
"clock": {
"description": "Añade un reloj a la barra de navegación",
"menu": {
"format": {
"24-hour-format": "Formato 24 horas",
"display-seconds": "Mostrar segundos",
"label": "Formato"
}
},
"name": "Reloj"
},
"compact-sidebar": {
"description": "Establecer siempre la barra lateral en modo compacto",
"name": "Barra lateral compacta"
@ -485,14 +456,14 @@
"disconnected": "Desconectado",
"hide-duration-left": "Ocultar la duración restante",
"hide-github-button": "Ocultar el botón de enlace a GitHub",
"play-on-application": "Reproducir en {{applicationName}}",
"play-on-pear-desktop": "Reproducir en Pear Desktop",
"set-inactivity-timeout": "Establecer tiempo de inactividad",
"set-status-display-type": {
"label": "Texto de estado",
"submenu": {
"application": "Escuchando {{applicationName}}",
"artist": "Escuchando a {artist}",
"title": "Escuchando {song title}"
"title": "Escuchando {song title}",
"pear-desktop": "Escuchando Pear Desktop"
}
}
},
@ -842,24 +813,6 @@
"not-found": "⚠️ No se han encontrado letras para esta canción."
},
"menu": {
"convert-chinese-character": {
"label": "Convertir carácter Chino",
"submenu": {
"disabled": {
"label": "Deshabilitado",
"tooltip": "Deshabilitar conversión de caracteres Chinos"
},
"simplified-to-traditional": {
"label": "Simplificar a Tradicional",
"tooltip": "Convertir Chino Simplifcado en Chino Tradicional"
},
"traditional-to-simplified": {
"label": "Tradicional a Simplificado",
"tooltip": "Convertir Chino Tradicional a Chino Simplificado"
}
},
"tooltip": "Convertir carácter Chino a Tradicional o Simplificado"
},
"default-text-string": {
"label": "Carácter predeterminado entre letras",
"tooltip": "Elige el carácter predeterminado que se utilizará para el espacio entre letras"

View File

@ -128,7 +128,7 @@
},
"label": "Keel",
"submenu": {
"to-help-translate": "Soovid aidata tõlkimisel? Klõpsa siin"
"to-help-translate": "Soovid aidata tõlkimisel? Klõpsi siin"
}
},
"resume-on-start": "Rakenduse käivitamisel jätka viimatiesitatud loo esitamist",
@ -139,7 +139,7 @@
"unset": "Määramata"
},
"tray": {
"label": "Tasku",
"label": "Trey",
"submenu": {
"disabled": "Välja lülitatud",
"enabled-and-hide-app": "Sisse lülitatud ja rakendus peidetud",
@ -154,7 +154,7 @@
"label": "Kohandatud akna tiitel",
"prompt": {
"label": "Sisesta kohandatud akna tiitel: (jäta täitmata, et välja lülitada)",
"placeholder": "Näide: {{applicationName}}"
"placeholder": "Näide: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Käivita rakendus uuesti",
"show": "Näita akent",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -227,7 +227,7 @@
},
"album-actions": {
"description": "Lisab Undislike, Ebameeldiv, Meeldiv ja Unlike nupud selle rakendamiseks kõikidele loendisse või albumisse kuuluvatele lauludele.",
"name": "Albumi toimingud"
"name": "Albumi aktsioonid"
},
"album-color-theme": {
"description": "Rakendab dünaamilist teemat ja visuaalseid efekte, mis põhinevad albumi värvipalettil",
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{suhe}}%"
}
},
"enable-seekbar": "Luba kerimisriba kujundamine"
}
},
"name": "Albumi värviteema"
},
@ -246,19 +245,9 @@
"description": "Rakendab valgusefekti, projitseerides videost õrnad värvid ekraani taustale",
"menu": {
"blur-amount": {
"label": "Hägusus",
"submenu": {
"pixels": "{{blurAmount}} pikslit"
}
},
"buffer": {
"label": "Puhver",
"submenu": {
"buffer": "{{buffer}}"
}
"label": "Hägusus"
},
"opacity": {
"label": "Läbipaistmatus",
"submenu": {
"percent": "{{opacity}}%"
}
@ -274,15 +263,8 @@
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Sujuv üleminek"
},
"use-fullscreen": {
"label": "Kasutamas täisekraani"
}
},
"name": "Ümbritsev režiim"
}
},
"blur-nav-bar": {
"description": "Muudab navigatsiooniriba läbipaistavaks ja hägusaks",

View File

@ -154,7 +154,7 @@
"label": "عنوان پنجره سفارشى",
"prompt": {
"label": "عنوان پنجره سفارشى را وارد کنىد: (خالى بزارىد تا غىرفعال شود)",
"placeholder": "مثال :{{applicationName}}"
"placeholder": "مثال :Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "راه‌اندازی مجدد برنامه",
"show": "نمایش پنجره",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "پىر دسکتاپ",
"with-song-info": "پىر دسکتاپ: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "حالت محیطی"
},
"amuse": {
"description": "حالا ویجت Amuse از {{applicationName}} هم پشتیبانی می‌کنه! (توسط 6K Labs)",
"description": "حالا ویجت Amuse از Pear Desktop هم پشتیبانی می‌کنه! (توسط 6K Labs)",
"name": "Amuse",
"response": {
"query": "سرور Amuse فعال است. برای دریافت اطلاعات آهنگ، از آدرس /query استفاده کنید."
@ -320,22 +320,6 @@
"hostname": {
"label": "نام میزبان"
},
"https": {
"label": "HTTPS و گواهینامه‌ها",
"submenu": {
"cert": {
"dialogTitle": "پرونده گواهینامه HTTPS را انتخاب کنید",
"label": "پرونده گواهینامه (crt/.pem.)"
},
"enable-https": {
"label": "فعال کردن HTTPS"
},
"key": {
"dialogTitle": "پرونده کلید خصوصی HTTPS را انتخاب کنید",
"label": "پرونده کلید خصوصی (key/.pem)"
}
}
},
"port": {
"label": "پورت"
}
@ -472,13 +456,13 @@
"disconnected": "اتصال قطع شد",
"hide-duration-left": "مخفی کردن مدت زمان باقی‌مانده",
"hide-github-button": "مخفی کردن دکمه لینک گیت هاب",
"play-on-application": "پخش در یوتیوب موزیک",
"play-on-pear-desktop": "پخش در یوتیوب موزیک",
"set-inactivity-timeout": "تنظیم زمان عدم فعالیت",
"set-status-display-type": {
"label": "متن وضعىت",
"submenu": {
"application": "به پىر دسکتاپ گوش مىکند",
"artist": "به {artist} گوش مىکند",
"pear-desktop": "به پىر دسکتاپ گوش مىکند",
"title": "به {song title} گوش مىکند"
}
}

View File

@ -154,7 +154,7 @@
"label": "Mukautettu ikkunan otsikko",
"prompt": {
"label": "Syötä mukautettu ikkunan otsikko: (jätä tyhjäksi poistaaksesi päältä)",
"placeholder": "Esimerkki: {{applicationName}}"
"placeholder": "Esimerkki: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Uudelleen käynnistä appi",
"show": "Näytä ikkuna",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Tunnelmallinen Tila"
},
"amuse": {
"description": "Lisää {{applicationName}} tuen Amusen nyt soitetaan -widgetille, kehittäjänä 6K Labs",
"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."
@ -373,7 +373,7 @@
"name": "Ohita Ikään Perustuvat Rajoitukset"
},
"captions-selector": {
"description": "{{applicationName}} ääniraitojen tekstitysten valitsin",
"description": "Pear Desktop ääniraitojen tekstitysten valitsin",
"menu": {
"autoload": "Valitse automaattisesti viimeksi käytetty tekstitys",
"disable-captions": "Tekstitys ei oletusarvoisesti käytössä"
@ -443,7 +443,7 @@
"disconnected": "Yhteys katkaistu",
"hide-duration-left": "Piilota kappaleen jäljellä oleva kesto",
"hide-github-button": "Piilota \"linkki GitHubiin\" -nappi",
"play-on-application": "Kuuntele palvelussa {{applicationName}}",
"play-on-pear-desktop": "Kuuntele palvelussa Pear Desktop",
"set-inactivity-timeout": "Aseta toimettomuuden aikakatkaisu"
},
"name": "Discord Aktiviteetti (Rich Presence)",

View File

@ -154,7 +154,7 @@
"label": "Custom na window title",
"prompt": {
"label": "I-enter ang custom na window tile: (iwanang blanko para di-mapagana)",
"placeholder": "Halimbawa: {{applicationName}}"
"placeholder": "Halimbawa: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "I-restart ang App",
"show": "Ipakita ang window",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Ambient Mode"
},
"amuse": {
"description": "Nagdaragdag ng suporta sa {{applicationName}} para sa Amuse now playing widget ng 6K Labs",
"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."
}
@ -369,7 +369,7 @@
"name": "I-bypass ang Restriksyon sa Edad"
},
"captions-selector": {
"description": "Tagapili ng caption para sa mga audio track ng {{applicationName}}",
"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"
@ -446,13 +446,13 @@
"disconnected": "Nadiskonekta",
"hide-duration-left": "Itago ang natitirang oras",
"hide-github-button": "Itago ang button na GitHub link",
"play-on-application": "Patugtugin sa {{applicationName}}",
"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}",
"application": "Kumikinig sa {{applicationName}}"
"pear-desktop": "Kumikinig sa Pear Desktop"
}
}
},

View File

@ -153,16 +153,15 @@
"custom-window-title": {
"label": "Titre de fenêtre personnalisé",
"prompt": {
"label": "Entrer un titre de fenêtre : (Laissé vide pour désactiver)",
"placeholder": "Exemple : {{applicationName}}"
"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 »",
"swap": "Inverser l'order des boutons like"
"label": "Boutons « J'aime »"
},
"remove-upgrade-button": "Supprimer le bouton de mise à niveau",
"theme": {
@ -209,8 +208,8 @@
"restart": "Redémarrer l'application",
"show": "Afficher la fenêtre",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}} : {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -238,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Activer le thème sur la barre de progression"
}
},
"name": "Thème de couleur d'album"
},
@ -289,10 +287,10 @@
"name": "Mode ambiant"
},
"amuse": {
"description": "Ajout de la prise en charge de {{applicationName}} pour le widget Amuse now playing de 6K Labs",
"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 d'Amuse est en cours d'exécution. GET /query pour obtenir des informations sur les chansons."
"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": {
@ -304,7 +302,7 @@
"deny": "Interdire"
},
"message": "Autoriser {{ID}} ({{origin}}) à accéder à l'API?",
"title": "Demande d'autorisation à l'API"
"title": "Requête d'autorisation d'API"
}
},
"menu": {
@ -312,7 +310,7 @@
"label": "Plan d'autorisation",
"submenu": {
"auth-at-first": {
"label": "Autoriser lors de la première requête"
"label": "Autoriser à la première requête"
},
"none": {
"label": "Pas d'autorisation"
@ -322,22 +320,6 @@
"hostname": {
"label": "Nom de l'hôte"
},
"https": {
"label": "HTTPS & Certificats",
"submenu": {
"cert": {
"dialogTitle": "Sélectionner le fichier de certificat HTTPS",
"label": "Fichier de certificat (.crt/.pem)"
},
"enable-https": {
"label": "Activer HTTPS"
},
"key": {
"dialogTitle": "Sélectionner le fichier de clé privée HTTPS",
"label": "Fichier de clé privée (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -349,7 +331,7 @@
"title": "Nom d'hôte"
},
"port": {
"label": "Entrez le port du serveur API :",
"label": "Entrez le port du serveur de l'API :",
"title": "Port"
}
}
@ -391,7 +373,7 @@
"name": "Contourner les restrictions dâge"
},
"captions-selector": {
"description": "Sélecteur de sous-titres pour les pistes audio {{applicationName}}",
"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"
@ -410,20 +392,9 @@
"toast": {
"caption-changed": "Sous-titres changés en {{language}}",
"caption-disabled": "Sous-titres désactivés",
"no-captions": "Aucun sous-titres disponibles pour cette chanson"
"no-captions": "Aucun sous-titre disponible pour cette chanson"
}
},
"clock": {
"description": "Ajoute une horloge a la barre de navigation",
"menu": {
"format": {
"24-hour-format": "Format 24 heures",
"display-seconds": "Afficher les secondes",
"label": "Format"
}
},
"name": "Horloge"
},
"compact-sidebar": {
"description": "Toujours définir la barre latérale en mode compact",
"name": "Barre latérale compacte"
@ -485,14 +456,14 @@
"disconnected": "Déconnecté",
"hide-duration-left": "Masquer la durée restante",
"hide-github-button": "Masquer le bouton du lien GitHub",
"play-on-application": "Jouer sur {{applicationName}}",
"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": {
"application": "Écoute {{applicationName}}",
"artist": "Écoute {artiste}",
"title": "Écoute {titre de la chanson}"
"title": "Écoute {titre de la chanson}",
"pear-desktop": "Écoute Pear Desktop"
}
}
},
@ -511,8 +482,8 @@
"buttons": {
"ok": "Ok"
},
"message": "Argh! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement!"
"message": "Argh ! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement !"
},
"start-download-playlist": {
"buttons": {
@ -520,30 +491,30 @@
},
"detail": "({{playlistSize}} chansons)",
"message": "Téléchargement de la playlist {{playlistTitle}}",
"title": "Téléchargement commencé"
"title": "Téléchargement a commencé"
}
},
"feedback": {
"conversion-progress": "Conversion : {{percent}}%",
"conversion-progress": "Conversion : {{percent}} %",
"converting": "Conversion…",
"done": "Terminé : {{filePath}}",
"download-info": "Téléchargement {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Téléchargé : {{percent}}%",
"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}})",
"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 des données de la playlist…",
"getting-playlist-info": "Obtention d'informations sur la liste de lecture…",
"loading": "Chargement…",
"playlist-has-only-one-song": "La playlist ne contient qu'un seul élément, téléchargement du morceau seul",
"playlist-id-not-found": "Aucun ID de playlist trouvé",
"playlist-is-empty": "La playlist est vide",
"playlist-is-mix-or-private": "Erreur lors de l'obtention des informations sur la playlist : assurez-vous qu'il ne s'agit pas d'une playlist privée ou \"Mixée pour vous\"\n\n{{error}}",
"preparing-file": "Préparation des fichier…",
"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 playlist : {{playlistId}}",
"video-id-not-found": "Vidéo introuvable",
"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…"
}
},
@ -553,19 +524,19 @@
"download-finish-settings": {
"label": "Télécharger une fois terminé",
"prompt": {
"last-percent": "Après x pourcents",
"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": "Unité de temps",
"mode": "Mode de temps",
"percent": "Pourcent",
"seconds": "Secondes"
}
},
"download-playlist": "Télécharger la playlist",
"download-playlist": "Télécharger la liste de lecture",
"presets": "Préconfigurations",
"skip-existing": "Passer les fichiers existants"
},
@ -602,7 +573,7 @@
},
"lumiastream": {
"description": "Ajoute la prise en charge de Lumia Stream",
"name": "Lumia Stream [Beta]"
"name": "Lumia Stream [Bêta]"
},
"lyrics-genius": {
"description": "Ajoute la prise en charge des paroles pour la plupart des chansons",
@ -633,9 +604,9 @@
"host": "Hôte du Music Together",
"join": "Rejoindre le Music Together",
"permission": {
"all": "Autorisez les invités à contrôler la playlist et le lecteur",
"host-only": "Seulement l'hôte peut contrôler la playlist et le lecteur",
"playlist": "Autoriser les invités à contrôler la playlist"
"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": {
@ -653,7 +624,7 @@
"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": "Music Together rejoint",
"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",
@ -665,7 +636,7 @@
"name": "Navigation",
"templates": {
"back": {
"title": "Aller à la page précédente"
"title": "Revenir à la page précédente"
},
"forward": {
"title": "Aller à la page suivante"
@ -685,7 +656,7 @@
"submenu": {
"hide-button-text": "Masquer le texte du bouton",
"refresh-on-play-pause": "Actualiser lors de la lecture/pause",
"tray-controls": "Ouvrir/Fermer au clic sur licône de la barre des tâches"
"tray-controls": "Ouvrir/Fermer sur le plateau, cliquez"
}
},
"priority": "Priorité des notifications",
@ -699,30 +670,30 @@
"name": "Amélioration des performances [Beta]"
},
"picture-in-picture": {
"description": "Permet de basculer lapplication en mode picture-in-picture",
"description": "Permet de basculer lapplication en mode image dans image",
"menu": {
"always-on-top": "Toujours au dessus",
"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 picture-in-picture",
"title": "Touche de raccourci picture-in-picture"
"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 PiP natif du navigateur"
"use-native-pip": "Utiliser le mode image dans image natif du navigateur"
},
"name": "Picture-in-picture",
"name": "Image dans l'image",
"templates": {
"button": "Picture-in-picture"
"button": "Image dans l'image"
}
},
"playback-speed": {
"description": "Écoutez vite, écoutez lentement! Ajoute un curseur qui contrôle la vitesse de la chanson",
"description": "Écoutez vite, écoutez lentement ! Ajoute un curseur qui contrôle la vitesse de la chanson",
"name": "Vitesse de lecture",
"templates": {
"button": "Vitesse"
@ -755,14 +726,14 @@
"backend": {
"dialog": {
"quality-changer": {
"detail": "Qualité actuelle : {{quality}}",
"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 l'overlay vidéo",
"name": "Sélecteur de 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"
@ -774,7 +745,7 @@
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Erreur lors de l'authetification avec Last.fm\nCacher la popup jusqu'au prochain redémarrage.",
"message": "Erreur lors de l'authetification avec Last.fm\nCachez la popup jusqu'au prochain redémarrage.",
"title": "Authentification échouée"
}
}
@ -790,7 +761,7 @@
"scrobble-alternative-title": "Utiliser des titres alternatifs",
"scrobble-other-media": "Scrobbler d'autres médias"
},
"name": "Scrobbler",
"name": "Scrobble",
"prompt": {
"lastfm": {
"api-key": "Clé API de Last.fm",
@ -798,7 +769,7 @@
},
"listenbrainz": {
"token": {
"label": "Entrez votre token utilisateur ListenBrainz :",
"label": "Entrez votre token utilisateur ListenBrainz:",
"title": "Token ListenBrainz"
}
}
@ -824,8 +795,8 @@
}
},
"skip-disliked-songs": {
"description": "Passe les titres \"Je n'aime pas\"",
"name": "Passer les titres \"Je n'aime pas\""
"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",
@ -839,30 +810,12 @@
"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 ce titre."
"not-found": "⚠️ Aucune paroles trouvées pour cette musique."
},
"menu": {
"convert-chinese-character": {
"label": "Convertir les caractères Chinois",
"submenu": {
"disabled": {
"label": "Désactivé",
"tooltip": "Désactiver la conversion des caractères Chinois"
},
"simplified-to-traditional": {
"label": "Simplifié a Traditionnel",
"tooltip": "Convertir le Chinois Simplifié au Chinois Traditionnel"
},
"traditional-to-simplified": {
"label": "Traditionnel a Simplifié",
"tooltip": "Convertir le Chinois Traditionnel au Chinois Simplifié"
}
},
"tooltip": "Convertir les caractères Chinois en Traditionnel ou Simplifié"
},
"default-text-string": {
"label": "Caractère par défaut entre les paroles",
"tooltip": "Choisi le caractère par défaut à utiliser pour les blancs entre les paroles"
"tooltip": "Choisi le caractère par défaut à utiliser pour l'espace entre les paroles"
},
"line-effect": {
"label": "Effet de ligne",
@ -873,7 +826,7 @@
},
"focus": {
"label": "Focus",
"tooltip": "Rend blanche seulement la ligne actuelle"
"tooltip": "Rend seulement la ligne actuelle blanche"
},
"offset": {
"label": "Décalage",
@ -896,7 +849,7 @@
"label": "Aucun",
"tooltip": "Aucun fournisseur privilégié"
},
"tooltip": "Choisissez le fournisseur à utiliser par défaut"
"tooltip": "Choisissez le fournisseur par défaut à utiliser"
},
"romanization": {
"label": "Romaniser les paroles",
@ -908,7 +861,7 @@
},
"show-time-codes": {
"label": "Afficher les timecodes",
"tooltip": "Affiche le timecode à côté de chaque paroles"
"tooltip": "Affiche à côté de chaque paroles son timecode"
}
},
"name": "Paroles Synchronisées",
@ -919,7 +872,7 @@
"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": "⚠️ - C'est un titre instrumental"
"instrumental": "⚠️ - Cette musique n'a pas de paroles"
}
},
"taskbar-mediacontrol": {
@ -956,7 +909,7 @@
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Empêche le lecteur de s'afficher quand un titre est en cours de lecture",
"description": "Empêche le lecteur de s'afficher quand un chanson est en lecture",
"name": "Lecteur Non-Intrusif"
},
"video-toggle": {
@ -980,7 +933,7 @@
}
}
},
"name": "Bouton de bascule vidéo",
"name": "Basculer la vidéo",
"templates": {
"button-song": "Musique",
"button-video": "Vidéo"

View File

@ -154,7 +154,7 @@
"label": "Título de xanela personalizado",
"prompt": {
"label": "Introduza o título personalizado da xanela (deixe baleiro para desactivala)",
"placeholder": "Exemplo: {{applicationName}}"
"placeholder": "Exemplo: Pear Desktop"
}
},
"like-buttons": {

View File

@ -206,8 +206,8 @@
"restart": "הפעל מחדש",
"show": "הראה חלון",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "שולחן כתיבה אגסי",
"with-song-info": "שולחן כתיב אגסי: {{יוצר}} - {{כותרת}}"
}
}
},
@ -285,7 +285,7 @@
"name": "מצב אווירה"
},
"amuse": {
"description": "מוסיף תמיכה ב-{{applicationName}} עבור הווידג'ט של Amuse המתנגן כעת על ידי 6K Labs",
"description": "מוסיף תמיכה ב-Pear Desktop עבור הווידג'ט של Amuse המתנגן כעת על ידי 6K Labs",
"name": "משעשע",
"response": {
"query": "שרת ה-API של Amuse פועל. קבל מידע על השיר באמצעות GET /query."
@ -371,7 +371,7 @@
"name": "עקוף את ההחמרות של הגיל"
},
"captions-selector": {
"description": "בורר כתוביות עבור רצועות אודיו של {{applicationName}}",
"description": "בורר כתוביות עבור רצועות אודיו של Pear Desktop",
"menu": {
"autoload": "בחר אוטומטי את הכתובית האחרונה שנבחרה",
"disable-captions": "ברירת מחד ללא כתוביות"
@ -432,7 +432,7 @@
"connected": "מחובר",
"disconnected": "מנותק",
"hide-github-button": "הסתר את לחצן הקישור של GitHub",
"play-on-application": "הפעל ביוטיוב מיוזיק",
"play-on-pear-desktop": "הפעל ביוטיוב מיוזיק",
"set-inactivity-timeout": "הגדר פסק זמן לחוסר פעילות"
}
},

View File

@ -208,8 +208,8 @@
"restart": "ऐप पुनः प्रारंभ करें",
"show": "ऐप दिखाए",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "पियर डेस्कटॉप",
"with-song-info": "पियर डेस्कटॉप: {{artist}} - {{title}}"
}
}
},
@ -373,7 +373,7 @@
"name": "आयु प्रतिबंध को बायपास करें"
},
"captions-selector": {
"description": "{{applicationName}} म्यूज़िक ऑडियो ट्रैक के लिए कैप्शन चयनकर्ता",
"description": "Pear Desktop म्यूज़िक ऑडियो ट्रैक के लिए कैप्शन चयनकर्ता",
"menu": {
"autoload": "अंतिम बार उपयोग किए गए कैप्शन का ऑटोमैटिक रूप से चयन करें",
"disable-captions": "डिफ़ॉल्ट रूप में कोई कैप्शन नहीं"
@ -456,13 +456,13 @@
"disconnected": "डिस्कनेक्ट किया गया",
"hide-duration-left": "शेष अवधि छिपाएँ",
"hide-github-button": "GitHub लिंक के बटन को छिपाएँ",
"play-on-application": "{{applicationName}} म्यूज़िक पर चलाएँ",
"play-on-pear-desktop": "Pear Desktop म्यूज़िक पर चलाएँ",
"set-inactivity-timeout": "निष्क्रियता समय समाप्ति सेट करें",
"set-status-display-type": {
"label": "स्टेटस टेक्स्ट",
"submenu": {
"application": "{{applicationName}} सुन रहे है",
"artist": "{artist} को सुन रहे है",
"pear-desktop": "Pear Desktop सुन रहे है",
"title": "{song title} सुन रहे है"
}
}

View File

@ -154,7 +154,7 @@
"label": "Prilagođeni naslov prozora",
"prompt": {
"label": "Unesi prilagođeni naslov prozora: (ostavi prazno za onemogućiti)",
"placeholder": "Primjer: {{applicationName}}"
"placeholder": "Primjer: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Ponovo Pokreni Aplikaciju",
"show": "Prikaži prozor",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Omogući postavljanje teme \"seekbar\"-a"
}
},
"name": "Boja teme albuma"
},
@ -288,7 +287,7 @@
"name": "Ambijentalni Način"
},
"amuse": {
"description": "Dodaje podršku za {{applicationName}} za widget \"sada reproducira\" od Amuse od strane 6K Labs",
"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."
@ -321,22 +320,6 @@
"hostname": {
"label": "Naziv hosta"
},
"https": {
"label": "HTTPS i Sertifikati",
"submenu": {
"cert": {
"dialogTitle": "Biraj HTTPS sertifikat datoteku",
"label": "Sertifikat datoteka (.crt/.pem)"
},
"enable-https": {
"label": "Omogući HTTPS"
},
"key": {
"dialogTitle": "Biraj privatni ključ datoteku za HTTPS",
"label": "Privatni ključ datoteka (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -390,7 +373,7 @@
"name": "Zaobiđi dobna ograničenja"
},
"captions-selector": {
"description": "Izbornik titlova za audiozapise od {{applicationName}}a",
"description": "Izbornik titlova za audiozapise od Pear Desktopa",
"menu": {
"autoload": "Automatski izaberi posljednje korištene titlove",
"disable-captions": "Bez titlova"
@ -473,13 +456,13 @@
"disconnected": "Odspojen",
"hide-duration-left": "Sakrij preostalo vrijeme",
"hide-github-button": "Sakrij gumb sa GitHub poveznicom",
"play-on-application": "Reproduciraj na {{applicationName}}u",
"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": {
"application": "Slušate {{applicationName}}",
"artist": "Slušate {glazbenika}",
"pear-desktop": "Slušate Pear Desktop",
"title": "Slušate {naslov pjesme}"
}
}

View File

@ -154,7 +154,7 @@
"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: {{applicationName}}"
"placeholder": "Példa: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "YT Music újraindítása",
"show": "Ablak megjelenítése",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Ambient mód"
},
"amuse": {
"description": "Hozzáadja a {{applicationName}} támogatását az Amuse \"now playing\" widgethez a 6K Labs által",
"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."
@ -371,7 +371,7 @@
"name": "Korellenőrzés kihagyása"
},
"captions-selector": {
"description": "Felirat választó a {{applicationName}} zenékhez",
"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"
@ -453,13 +453,13 @@
"disconnected": "Nincs Kapcsolódva",
"hide-duration-left": "Hátralévő idő elrejtése",
"hide-github-button": "GitHub url gombjának elrejtése",
"play-on-application": "Lejátszás a {{applicationName}}-on",
"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}",
"application": "Hallgatja: {{applicationName}}",
"pear-desktop": "Hallgatja: Pear Desktop",
"title": "Hallgatja: {song title}"
}
}

View File

@ -154,7 +154,7 @@
"label": "Judul jendela kustom",
"prompt": {
"label": "Masukkan judul jendela kustom (kosongkan untuk menonaktifkan)",
"placeholder": "Contoh: {{applicationName}}"
"placeholder": "Contoh: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Restart aplikasi",
"show": "Tampilkan jendela",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Mode ambient"
},
"amuse": {
"description": "Menambahkan dukungan {{applicationName}} untuk widget Amuse yang sedang diputar oleh 6K Labs",
"description": "Menambahkan dukungan Pear Desktop untuk widget Amuse yang sedang diputar oleh 6K Labs",
"name": "Amuse",
"response": {
"query": "Server API Amuse sedang berjalan. GET /query untuk mendapatkan info lagu."
@ -373,7 +373,7 @@
"name": "Lewati batasan umur"
},
"captions-selector": {
"description": "Pemilih caption untuk trek audio {{applicationName}}",
"description": "Pemilih caption untuk trek audio Pear Desktop",
"menu": {
"autoload": "Pilih caption terakhir secara otomatis",
"disable-captions": "Tidak ada caption secara default"
@ -456,14 +456,14 @@
"disconnected": "Terputus",
"hide-duration-left": "Sembunyikan sisa durasi",
"hide-github-button": "Sembunyikan tombol link GitHub",
"play-on-application": "Mainkan di {{applicationName}}",
"play-on-pear-desktop": "Mainkan di Pear Desktop",
"set-inactivity-timeout": "Tetapkan batas waktu tidak aktif",
"set-status-display-type": {
"label": "Teks status",
"submenu": {
"artist": "Sedang mendengarkan {artist}",
"title": "Sedang mendengarkan {song title}",
"application": "Sedang mendengarkan {{applicationName}}"
"pear-desktop": "Sedang mendengarkan Pear Desktop"
}
}
},

View File

@ -201,8 +201,8 @@
"restart": "Endurræstu Forritið",
"show": "Sýna glugga",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -335,7 +335,7 @@
"name": "Farið Framhjá Aldurstakmörkunum"
},
"captions-selector": {
"description": "Skjátextavali fyrir {{applicationName}} hljóðrásir",
"description": "Skjátextavali fyrir Pear Desktop hljóðrásir",
"menu": {
"autoload": "Veldu sjálfkrafa síðast notaða myndatexta",
"disable-captions": "Engir skjátextar sjálfgefið"
@ -400,7 +400,7 @@
"disconnected": "Aftengt",
"hide-duration-left": "Fela tímalengd til vinstri",
"hide-github-button": "Fela GitHub tengilhnapp",
"play-on-application": "Spilaðu á {{applicationName}}",
"play-on-pear-desktop": "Spilaðu á Pear Desktop",
"set-inactivity-timeout": "Stilltu tímamörk fyrir óvirkni"
},
"name": "Discord Rík Nærvera",

View File

@ -154,15 +154,14 @@
"label": "Personalizza titolo finestra",
"prompt": {
"label": "Inserisci un titolo della finestra personalizzato: (lascia vuoto per disattivare)",
"placeholder": "Esempio: {{applicationName}}"
"placeholder": "Esempio: Pear Desktop"
}
},
"like-buttons": {
"default": "Predefinito",
"force-show": "Forza la visualizzazione",
"hide": "Nascondi",
"label": "Pulsanti Like",
"swap": "Scambia l'ordine dei pulsanti like"
"label": "Pulsanti Like"
},
"remove-upgrade-button": "Rimuovi il pulsante aggiorna",
"theme": {
@ -209,8 +208,8 @@
"restart": "Riavvia l'app",
"show": "Mostra finestra",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -238,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Abilita tematizzazione della seekbar"
}
},
"name": "Tema abbinato a colore album"
},
@ -289,7 +287,7 @@
"name": "Modalità Ambiente"
},
"amuse": {
"description": "Aggiunge il supporto a {{applicationName}} per il widget Amuse Now Playing di 6K Labs",
"description": "Aggiunge il supporto a Pear Desktop per il widget Amuse Now Playing di 6K Labs",
"name": "Amuse",
"response": {
"query": "Il server API di Amuse è in funzione. GET /query per ottenere informazioni sui brani."
@ -322,22 +320,6 @@
"hostname": {
"label": "Hostname"
},
"https": {
"label": "HTTPS & Certificati",
"submenu": {
"cert": {
"dialogTitle": "Seleziona file di certificato HTTPS",
"label": "File di certificato (.crt/.pem)"
},
"enable-https": {
"label": "Abilita HTTPS"
},
"key": {
"dialogTitle": "Seleziona il file della chiave privata HTTPS",
"label": "File della chiave privata (.key/.pem)"
}
}
},
"port": {
"label": "Porta"
}
@ -391,7 +373,7 @@
"name": "Aggira i limiti d'età"
},
"captions-selector": {
"description": "Selettore sottotitolo per le tracce audio di {{applicationName}}",
"description": "Selettore sottotitolo per le tracce audio di Pear Desktop",
"menu": {
"autoload": "Seleziona automaticamente l'ultimo sottotitolo utilizzato",
"disable-captions": "Disattiva i sottotitoli"
@ -413,17 +395,6 @@
"no-captions": "Nessun sottotitolo disponibile per questa canzone"
}
},
"clock": {
"description": "Aggiungi un orologio alla barra di navigazione",
"menu": {
"format": {
"24-hour-format": "Formato in 24 ore",
"display-seconds": "Mostra Secondi",
"label": "Formato"
}
},
"name": "Orologio"
},
"compact-sidebar": {
"description": "Imposta sempre la barra laterale in modalità compatta",
"name": "Barra laterale compatta"
@ -485,14 +456,14 @@
"disconnected": "Disconnesso",
"hide-duration-left": "Nascondi la durata rimasta",
"hide-github-button": "Nascondi il pulsante link a GitHub",
"play-on-application": "Riproduci su {{applicationName}}",
"play-on-pear-desktop": "Riproduci su Pear Desktop",
"set-inactivity-timeout": "Imposta il timeout di inattività",
"set-status-display-type": {
"label": "Testo dello status",
"submenu": {
"application": "Ascoltando {{applicationName}}",
"artist": "Stai ascoltando {artist}",
"title": "Stai ascoltando {song title}"
"title": "Stai ascoltando {song title}",
"pear-desktop": "Ascoltando Pear Desktop"
}
}
},
@ -895,7 +866,7 @@
},
"name": "Testi sincronizzati",
"refetch-btn": {
"fetching": "Caricamento...",
"fetching": "Sto recuperando...",
"normal": "Recupera i testi"
},
"warnings": {

View File

@ -154,7 +154,7 @@
"label": "カスタムウィンドウタイトル",
"prompt": {
"label": "カスタムウィンドウタイトルを入力: (未入力の場合無効になります)",
"placeholder": "例: {{applicationName}}"
"placeholder": "例: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "アプリを再起動",
"show": "ウィンドウを表示",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "アンビエント モード"
},
"amuse": {
"description": "6K LabsのAmuse再生中ウィジェットが{{applicationName}}に対応しました",
"description": "6K LabsのAmuse再生中ウィジェットがPear Desktopに対応しました",
"name": "Amuse",
"response": {
"query": "AmuseのAPIサーバーが稼働中です。GET /query で楽曲情報を取得できます。"
@ -373,7 +373,7 @@
"name": "年齢制限迂回"
},
"captions-selector": {
"description": "{{applicationName}}トラック用字幕選択機",
"description": "Pear Desktopトラック用字幕選択機",
"menu": {
"autoload": "最後の字幕を自動に選択",
"disable-captions": "デフォルトで字幕を無効化"
@ -456,13 +456,13 @@
"disconnected": "切断済み",
"hide-duration-left": "残りの再生時間を隠す",
"hide-github-button": "GitHubリンクボタンを隠す",
"play-on-application": "{{applicationName}}で再生",
"play-on-pear-desktop": "Pear Desktopで再生",
"set-inactivity-timeout": "タイムアウト時間を設定",
"set-status-display-type": {
"label": "ステータステキスト",
"submenu": {
"artist": "{artist}を聴いている",
"application": "{{applicationName}}を聴く",
"pear-desktop": "Pear Desktopを聴く",
"title": "{曲名}を聴いている"
}
}

View File

@ -44,38 +44,25 @@
},
"dialog": {
"hide-menu-enabled": {
"detail": "მენიუ დამალულია, გამოიყენეთ 'Alt', რათა გამოაჩინოთ ის (ან 'Escape' თუ იყენებთ აპლიკაციის შიგნითა მენიუს)",
"message": "მენიუს დამალვა ჩართულია",
"title": "მენიუს დამალვა ჩართულია"
"detail": "მენიუ დამალულია, გამოიყენეთ 'Alt', რათა გამოაჩინოთ ის (ან 'Escape' თუ იყენებთ აპლიკაციის შიგნითა მენიუს)"
},
"need-to-restart": {
"buttons": {
"later": "მოგვიანებით",
"restart-now": "გადატვირთვა ახლავე"
},
"detail": "„{{pluginName}}“ დანამატის ძალაში შესასვლელად გადატვირთვა საჭიროა",
"message": "\"{{pluginName}}\" საჭიროებს გადატვირთვას",
"title": "საჭიროებს გადატვირთვას"
"later": "მოგვიანებით"
}
},
"unresponsive": {
"buttons": {
"quit": "გასვლა",
"relaunch": "თავიდან გაშვება",
"wait": "მოცდა"
},
"detail": "ბოდიშს გიხდით მოუხერხელობისათვის! გთხოვთ აირჩიეთ რა უნდა გაკეთდეს:",
"message": "აპლიკაცია არ პასუხობს",
"title": "ფანჯარა არ პასუხობს"
}
},
"update-available": {
"buttons": {
"disable": "განახლებების გამორთვა",
"download": "გადმოწერა",
"ok": "დიახ"
},
"detail": "ახალი ვერსიაა ხელმისაწვდომი, მისი ჩამოტვირთვა შესაძლებელია {{downloadLink}}-დან",
"message": "ახალი ვერსია ხელმისაწვდომია",
"title": "განახლება ხელმისაწვდომია"
}
}
},
"menu": {
@ -83,63 +70,19 @@
"navigation": {
"label": "ნავიგაცია",
"submenu": {
"copy-current-url": "მიმდინარე URL-ის დაკოპირება",
"go-back": "უკან დაბრუნება",
"go-forward": "წინ გადასვლა",
"quit": "გასვლა",
"restart": "აპლიკაციის გადატვირთვა"
"quit": "გასვლა"
}
},
"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": "DevTools-ის გადართვა"
}
},
"always-on-top": "მუდამ ზემოთ",
"auto-update": "ავტომატური განახლება",
"hide-menu": {
"dialog": {
"message": "მენიუ შემდეგი გაშვებისას დაიმალება, მის საჩვენებლად გამოიყენეთ [Alt] (ან თუ აპლიკაციის მენიუს იყენებთ, უკან დააწკაპუნეთ [`])",
"title": "მენიუს დამალვა ჩაირთო"
},
"label": "მენიუს დამალვა"
},
"language": {
"dialog": {
"message": "გადატვირთვის შემდეგ ენა შეიცვლება",
"title": "ენა შეიცვალა"
},
"label": "ენა",
"submenu": {
"to-help-translate": "გსურთ დაგვეხმაროთ თარგმნაში? დააწკაპუნეთ აქ"
}
"label": "ენა"
},
"resume-on-start": "აპლიკაციის თავიდან გაშვებისას ბოლო სიმღერა დაუკრას",
"single-instance-lock": "ერთჯერადი ინსტანციის საკეტი",
"start-at-login": "შესვლაზე დაწყება",
"starting-page": {
"label": "საწყისი გვერდი",
"unset": "მოხსნა"
},
"tray": {
"label": "უჯრა",
"submenu": {
"disabled": "გამორთულია"
}
@ -219,15 +162,11 @@
"submenu": {
"percent": "{{size}}%"
}
},
"use-fullscreen": {
"label": "სრული ეკრანის გამოყენება"
}
},
"name": "გარემოს რეჟიმი"
}
},
"amuse": {
"name": "გაკვირვება"
"name": "Amuse"
},
"api-server": {
"dialog": {
@ -328,13 +267,6 @@
"status": {
"disconnected": "გათიშული"
}
},
"toast": {
"closed": "Music Together-ის ორგანიზატორი დაიხურა",
"disconnected": "Music Together-ის კავშირი გათიშულია",
"host-failed": "Music Together-ის გამოცხადება ვერ მოხერხდა",
"id-copied": "გამოსაცხადებელი ID დაკოპირებულია ბუფერში",
"id-copy-failed": "გამოსაცხადებელი ID-ის ვერ დაკოპირდა ბუფერში"
}
},
"navigation": {
@ -377,30 +309,6 @@
}
}
}
},
"video-toggle": {
"menu": {
"mode": {
"label": "რეჟიმი",
"submenu": {
"custom": "მორგებული გადამრთველი",
"disabled": "გამორთულია",
"native": "ადგილობრივი გადართვა"
}
}
},
"name": "ვიდეოს გადართვა",
"templates": {
"button-song": "სიმღერა",
"button-video": "ვიდეო"
}
},
"visualizer": {
"description": "პლეიერს ვიზუალიზატორს უმატებს",
"menu": {
"visualizer-type": "ვიზუალიზატორის ტიპი"
},
"name": "ვიზუალიზატორი"
}
}
}

View File

@ -1 +0,0 @@
{}

View File

@ -2,13 +2,13 @@
"common": {
"console": {
"plugins": {
"execute-failed": "확장 {{pluginName}}::{{contextName}}을(를) 실행 실패함",
"execute-failed": "확장 {{pluginName}}::{{contextName}}을(를) 실행하지 못했습니다",
"executed-at-ms": "확장 {{pluginName}}::{{contextName}}이 {{ms}}ms 만에 실행됨",
"initialize-failed": "확장 \"{{pluginName}}\"을(를) 초기화 실패함",
"initialize-failed": "확장 \"{{pluginName}}\"을(를) 초기화하지 못했습니다",
"load-all": "모든 확장 로드 중",
"load-failed": "확장 \"{{pluginName}}\"을(를) 로드하지 못했습니다",
"loaded": "확장 \"{{pluginName}}\" 로드됨",
"unload-failed": "확장 \"{{pluginName}}\"을(를) 언로드 실패함",
"unload-failed": "확장 \"{{pluginName}}\"을(를) 언로드하지 못했습니다",
"unloaded": "확장 \"{{pluginName}}\" 언로드 됨"
}
}
@ -21,7 +21,7 @@
"main": {
"console": {
"did-finish-load": {
"dev-tools": "로드 완료. 개발자 도구 실행됨"
"dev-tools": "로드 완료되었습니다. 개발자 도구가 열렸습니다"
},
"i18n": {
"loaded": "국제화 로드됨"
@ -30,32 +30,32 @@
"receive-command": "프로토콜을 통해 명령을 받았습니다: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS 파일 \"{{cssFile}}\"이(가) 존재하지 않. 무시"
"css-file-not-found": "CSS 파일 \"{{cssFile}}\"이(가) 존재하지 않습니다. 무시합니다"
},
"unresponsive": {
"details": "응답 없음 오류!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "앱 캐시 지우는 중"
"clearing-cache-after-20s": "앱 캐시 지우"
},
"window": {
"tried-to-render-offscreen": "창이 오프스크린 렌더링을 시도했습니다, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
"tried-to-render-offscreen": "창이 오프스크린 렌더링을 시도했습니다. windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "'Alt' 키를 눌러 숨겨진 메뉴를 표시할 수 있습니다 (인앱 메뉴를 사용하는 경우 'Esc' 키를 사용)",
"message": "메뉴 숨기기가 활성화되어 있",
"message": "메뉴 숨기기가 활성화되어 있습니다",
"title": "메뉴 숨기기 활성화됨"
},
"need-to-restart": {
"buttons": {
"later": "나중에",
"later": "나중에 하기",
"restart-now": "지금 재시작하기"
},
"detail": "\"{{pluginName}}\" 확장을 적용하려면 재시작해야 합니다",
"message": "\"{{pluginName}}\"은(는) 재시작이 필요합니다",
"title": "재시작 필요"
"title": "재시작 필요"
},
"unresponsive": {
"buttons": {
@ -63,17 +63,17 @@
"relaunch": "재시작",
"wait": "기다리기"
},
"detail": "불편을 드려 죄송합니다! 다음 중 하나를 선택해 주세요.",
"detail": "불편을 드려 죄송합니다! 방법을 선택해 주세요:",
"message": "애플리케이션이 응답하지 않습니다",
"title": "창이 응답하지 않음"
},
"update-available": {
"buttons": {
"disable": "업데이트 비활성화하기",
"disable": "업데이트 비활성화",
"download": "다운로드",
"ok": "확인"
},
"detail": "새 버전 {{downloadLink}}에서 설치할 수 있습니다",
"detail": "새 버전이 출시되었습니다. {{downloadLink}}에서 다운로드할 수 있습니다",
"message": "새 버전을 사용할 수 있습니다",
"title": "업데이트 사용 가능"
}
@ -96,23 +96,23 @@
"advanced-options": {
"label": "고급 설정",
"submenu": {
"auto-reset-app-cache": "앱 시작 시 앱 캐시 초기화하기",
"auto-reset-app-cache": "앱 시작 시 앱 캐시 초기화",
"disable-hardware-acceleration": "하드웨어 가속 비활성화",
"edit-config-json": "config.json 편집",
"override-user-agent": "User-Agent 재정의하기",
"restart-on-config-changes": "설정 변경 시 재시작하기",
"override-user-agent": "User-Agent 재정의",
"restart-on-config-changes": "설정 변경 시 재시작",
"set-proxy": {
"label": "프록시 설정하기",
"label": "프록시 설정",
"prompt": {
"label": "프록시 주소를 입력하세요: (비어있을 시 비활성화됨)",
"label": "프록시 주소를 입력하세요: (비워두면 비활성화됨)",
"placeholder": "예제: SOCKS5://127.0.0.1:9999",
"title": "프록시 설정하기"
"title": "프록시 설정"
}
},
"toggle-dev-tools": "DevTools 열기"
}
},
"always-on-top": "항상 최상단에 표시하기",
"always-on-top": "항상 최상단에 표시",
"auto-update": "자동 업데이트",
"hide-menu": {
"dialog": {
@ -153,16 +153,15 @@
"custom-window-title": {
"label": "사용자 정의 앱 제목",
"prompt": {
"label": "앱 제목으로 표시할 내용: (빈칸일 시 비활성화)",
"placeholder": "예: {{applicationName}}"
"label": "앱 제목으로 표시할 내용 : (빈 칸 일시 비활성화)",
"placeholder": "예: Pear Desktop"
}
},
"like-buttons": {
"default": "기본",
"force-show": "강제로 표시하기",
"force-show": "강제로 표시",
"hide": "숨기기",
"label": "좋아요 버튼",
"swap": "\"좋아요\" 버튼 순서 변경하기"
"label": "좋아요 버튼"
},
"remove-upgrade-button": "업그레이드 버튼 제거",
"theme": {
@ -172,7 +171,7 @@
"remove": "제거"
},
"remove-theme": "사용자 정의 테마를 제거하시겠습니까?",
"remove-theme-message": "이 설정을 변경하면 커스텀 테마가 삭제됩니다"
"remove-theme-message": "사용자 정의 테마를 제거하시겠습니까?"
},
"label": "테마",
"submenu": {
@ -187,7 +186,7 @@
"plugins": {
"enabled": "활성화",
"label": "확장",
"new": "새 플러그인"
"new": "NEW"
},
"view": {
"label": "보기",
@ -209,14 +208,14 @@
"restart": "앱 재시작",
"show": "창 표시",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "피어 데스크톱",
"with-song-info": "피어 데스크톱: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "광고가 재생될 때 소리를 음소거고 재생 속도 16배로 설정니다",
"description": "광고가 재생될 때, 오디오가 음소거고 재생 속도 16배로 설정니다",
"name": "광고 배속"
},
"adblocker": {
@ -244,7 +243,7 @@
"name": "앨범 컬러 기반 테마"
},
"ambient-mode": {
"description": "영상의 간접 조명을 화면 배경에 투사하여 조명 효과를 적용합니다",
"description": "영상의 간접 조명을 화면 배경에 투사합니다",
"menu": {
"blur-amount": {
"label": "흐림 효과 강도",
@ -253,7 +252,7 @@
}
},
"buffer": {
"label": "버퍼",
"label": "버퍼",
"submenu": {
"buffer": "{{buffer}}"
}
@ -289,8 +288,8 @@
"name": "앰비언트 모드"
},
"amuse": {
"description": "6K Labs Amuse의 'now playing' 위젯에 {{applicationName}} 지원 추가",
"name": "Amuse (어뮤즈)",
"description": "6K Labs Amuse의 'now playing' 위젯에 Pear Desktop 지원 추가",
"name": "Amuse",
"response": {
"query": "Amuse API 서버가 실행 중입니다. GET /query로 노래 정보를 가져오세요."
}
@ -322,22 +321,6 @@
"hostname": {
"label": "호스트 명"
},
"https": {
"label": "HTTPS 및 인증서",
"submenu": {
"cert": {
"dialogTitle": "HTTPS 인증서 파일을 선택해 주세요",
"label": "인증서 파일(.crt/.pem)"
},
"enable-https": {
"label": "HTTPS 활성화"
},
"key": {
"dialogTitle": "HTTPS 개인 키 파일을 선택해 주세요",
"label": "개인 키 파일(.key/.pem)"
}
}
},
"port": {
"label": "포트"
}
@ -359,10 +342,10 @@
"name": "오디오 컴프레서"
},
"auth-proxy-adapter": {
"description": "인증이 필요한 프록시를 지원합니다",
"description": "아이디/패스워드가 필요한 프록시를 지원합니다",
"menu": {
"disable": "프록시 어댑터 비활성화",
"enable": "프록시 어댑터 활성화",
"disable": "프록시 어댑터 차단",
"enable": "프록시 어댑터 허용",
"hostname": {
"label": "호스트 명"
},
@ -373,11 +356,11 @@
"name": "권한 프록시 어댑터",
"prompt": {
"hostname": {
"label": "로컬 프록시 서버의 호스트명을 입력해주세요 (재시이 필요합니다):",
"label": "로컬 프록시 서버의 호스트명 을 입력 해주세요 (재시이 필요합니다):",
"title": "프록시 호스트명"
},
"port": {
"label": "로컬 프록시 서버의 포트를 입력 해주세요 (재시이 필요합니다):",
"label": "로컬 프록시 서버의 포트를 입력 해주세요 (재시이 필요합니다):",
"title": "프록시 포트"
}
}
@ -387,11 +370,11 @@
"name": "탐색 바 흐림 효과"
},
"bypass-age-restrictions": {
"description": "플레이어의 연령 확인 인증 우회",
"description": "음악 플레이어의 연령 확인 우회합니다",
"name": "나이 제한 우회"
},
"captions-selector": {
"description": "{{applicationName}} 트랙용 자막 선택기입니다",
"description": "Pear Desktop 트랙용 자막 선택기입니다",
"menu": {
"autoload": "마지막으로 사용한 자막을 자동으로 선택",
"disable-captions": "기본 자막 제거"
@ -409,21 +392,10 @@
},
"toast": {
"caption-changed": "자막 언어가 {{language}}(으)로 변경되었습니다",
"caption-disabled": "자막 비활성화",
"caption-disabled": "자막 비활성화 되었습니다",
"no-captions": "이 곡에는 자막이 없습니다"
}
},
"clock": {
"description": "네비게이션 바 옆 시계 추가하기",
"menu": {
"format": {
"24-hour-format": "24시간 형식",
"display-seconds": "초 표시하기",
"label": "형식"
}
},
"name": "시계"
},
"compact-sidebar": {
"description": "사이드바를 항상 컴팩트 모드로 설정합니다",
"name": "컴팩트 사이드바"
@ -451,9 +423,9 @@
}
},
"custom-output-device": {
"description": "미디어 출력할­ 장치 구성하기",
"description": "미디어 출력 장치 구성",
"menu": {
"device-selector": "장치 선택하세요"
"device-selector": "장치 선택"
},
"name": "출력 장치 커스텀",
"prompt": {
@ -473,30 +445,30 @@
"discord": {
"backend": {
"already-connected": "활성화 된 연결에 연결을 시도했습니다",
"connected": "Discord에 연결됨",
"disconnected": "Discord에서 연결이 끊김"
"connected": "디스코드에 연결됨",
"disconnected": "디스코드에서 연결이 끊김"
},
"description": "Rich Presence를 사용하여 친구들에게 내가 듣는 음악을 보여주세요",
"description": "활동 상태를 사용하여 친구들에게 내가 듣는 음악을 보여주세요",
"menu": {
"auto-reconnect": "자동 연결",
"auto-reconnect": "자동 연결",
"clear-activity": "활동 제거",
"clear-activity-after-timeout": "시간 초과 시 활동 제거",
"connected": "연결됨",
"disconnected": "연결 해제됨",
"connected": "연결 됨",
"disconnected": "연결 해제 됨",
"hide-duration-left": "남은 재생 시간 숨기기",
"hide-github-button": "GitHub 링크 버튼 숨기기",
"play-on-application": "{{applicationName}} 에서 재생",
"play-on-pear-desktop": "유튜브 뮤직에서 재생",
"set-inactivity-timeout": "비활성 시간 제한 설정",
"set-status-display-type": {
"label": "상태 텍스트",
"submenu": {
"application": "{{applicationName}} 듣는 중",
"artist": "{아티스트} 듣는 중",
"pear-desktop": "Pear Desktop 듣는 중",
"title": "{곡 제목} 듣는 중"
}
}
},
"name": "Discord 활동 상태",
"name": "디스코드 활동 상태",
"prompt": {
"set-inactivity-timeout": {
"label": "비활성 시간 제한을 초 단위로 입력하세요:",
@ -511,7 +483,7 @@
"buttons": {
"ok": "확인"
},
"message": "앗! 죄송합니다. 다운로드가 실패했습니다…",
"message": "죄송합니다. 다운로드가 실패했습니다…",
"title": "다운로드 중 오류 발생!"
},
"start-download-playlist": {
@ -524,7 +496,7 @@
}
},
"feedback": {
"conversion-progress": "변환: {{percent}}%",
"conversion-progress": "변환: {{percent}}%",
"converting": "변환 중…",
"done": "완료: {{filePath}}",
"download-info": "{{artist}} - {{title}} [{{videoId}} 다운로드 중",
@ -539,7 +511,7 @@
"playlist-has-only-one-song": "재생목록에 한 항목만 존재합니다. 직접 다운로드합니다",
"playlist-id-not-found": "재생목록 ID를 찾을 수 없습니다",
"playlist-is-empty": "재생목록이 비어있습니다",
"playlist-is-mix-or-private": "재생목록 정보 가져오는 중 오류 발생: 비공개 재생목록 또는 \"나만을 위한 맞춤 믹스\" 재생목록이 아닌지 확인하세요\n\n{{error}}",
"playlist-is-mix-or-private": "재생목록 정보 가져오는 중 오류 발생: 비공개 재생목록 또는 '유튜브 Mix' 재생목록이 아닌지 확인하세요\n\n{{error}}",
"preparing-file": "파일 준비 중…",
"saving": "저장 중…",
"trying-to-get-playlist-id": "재생목록 ID를 가져오는 중: {{playlistId}}",

View File

@ -21,19 +21,19 @@
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Baigta krauti. DevTools atidaryta"
"dev-tools": "Baigta krauti. \"DevTools\" atidaryta"
},
"i18n": {
"loaded": "i18n užkrauta"
"loaded": "\"i18n\" užkrauta"
},
"second-instance": {
"receive-command": "Gauta komanda per protokolą: {{command}}"
"receive-command": "Gauta komanda per protokolą: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS failas {{cssFile}} neegzistuoja, ignoruojama"
"css-file-not-found": "CSS failas \"{{cssFile}}\" neegzistuoja, ignoruojama"
},
"unresponsive": {
"details": "Nereguojanti klaida!\n{{error}}"
"details": "Nereguojanti paklaida\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Išvaloma programos talpykla"
@ -45,25 +45,25 @@
"dialog": {
"hide-menu-enabled": {
"detail": "Meniu yra paslėpta, naudokite 'Alt', kad ją parodyti (arba 'Escape' jei naudojama programos meniu)",
"message": "Paslėpti Meniu yra įjungta",
"title": "Įjungta Paslėpti Meniu"
"message": "\"Paslėpti Meniu\" yra įjungta",
"title": "Įjungta \"Paslėpti Meniu\""
},
"need-to-restart": {
"buttons": {
"later": "Vėliau",
"restart-now": "Perkrauti Dabar"
},
"detail": "{{pluginName}} įskiepis reikalauja perkrovimą, kad veiktų",
"message": "{{pluginName}} reikia perkrovimo",
"detail": "\"{{pluginName}}\" įskiepis reikalauja perkrovimą, kad veiktų",
"message": "\"{{pluginName}}\" reikia perkrovimo",
"title": "Reikiamas perkrovimas"
},
"unresponsive": {
"buttons": {
"quit": "Baigti",
"quit": "Išeiti",
"relaunch": "Perleisti",
"wait": "Palaukti"
},
"detail": "Mes apgailestaujame dėl nepatogumų! Prašome pasirinkti ką daryti:",
"detail": "Mes apgailestaujame dėl nepatogumų! prašau pasirinkti ką daryti:",
"message": "Programa Neatsako",
"title": "Langas Neatsako"
},
@ -84,7 +84,7 @@
"label": "Navigacija",
"submenu": {
"copy-current-url": "Nukopijuoti dabartinį URL",
"go-back": "Grįžti atgal",
"go-back": "Grįžti Atgal",
"go-forward": "Eiti į priekį",
"quit": "Išeiti",
"restart": "Perkrauti programą"
@ -97,19 +97,19 @@
"label": "Išplėstiniai nustatymai",
"submenu": {
"auto-reset-app-cache": "Perkrauti programos talpyklą, kai programa paleidžiama",
"disable-hardware-acceleration": "Išjungti aparatūros spartinimą",
"edit-config-json": "Redaguoti config.json",
"override-user-agent": "Perrašyti User-Agent",
"restart-on-config-changes": "Perkrauti po config pasikeitimo",
"disable-hardware-acceleration": "Išjungti aparatūros pagreitį",
"edit-config-json": "Redaguoti config.json",
"override-user-agent": "Perrašyti \"User-Agent\"",
"restart-on-config-changes": "Perkrauti po config pasikeitimo",
"set-proxy": {
"label": "Nustatyti proxy serverį",
"label": "Nustatyti įgaliotajį serverį",
"prompt": {
"label": "Įvesti proxy serverio adresą: (palikti tuščią, kad išjungti)",
"label": "Įvesti Įgaliotojo serverio adresą: (palikti tuščią, kad išjungti)",
"placeholder": "Pavyzdys: SOCKS5://127.0.0.1:9999",
"title": "Nustatyti proxy serverį"
"title": "Nustatyti įgaliotajį serverį"
}
},
"toggle-dev-tools": "Įjungti/Išjungti DevTools"
"toggle-dev-tools": "Įjungti/Išjungti DevTools"
}
},
"always-on-top": "Visada viršuje",
@ -117,7 +117,7 @@
"hide-menu": {
"dialog": {
"message": "Meniu bus paslėpta per kitą paleidimą, naudokite [Alt], kad ją parodyti (arba kairinio kirčio ženklą [`] jei naudojama programos meniu)",
"title": "Paslėpti Meniu įjungtas"
"title": "\"Paslėpti Meniu\" įjungtas"
},
"label": "Paslėpti Meniu"
},
@ -131,7 +131,7 @@
"to-help-translate": "Norite padėti išversti? Paspauskite čia"
}
},
"resume-on-start": "Programai pasileidus, tęsti paskutinę dainą",
"resume-on-start": "Tęsti paskutinę dainą, kai programa bus paleista",
"single-instance-lock": "Vienkartinis užraktas",
"start-at-login": "Pradėti nuo prisijungimo",
"starting-page": {
@ -151,20 +151,17 @@
"label": "Vizualiniai patobulinimai",
"submenu": {
"custom-window-title": {
"label": "Pasirinktinis lango pavadinimas",
"prompt": {
"label": "Įveskite pasirinktiną lango pavadinimą: (palikite tuščią kad išjungti)",
"placeholder": "Pavyzdys: {{applicationName}}"
"placeholder": "Pavyzdys: Pear Desktop"
}
},
"like-buttons": {
"default": "Numatytasis",
"force-show": "Priversti rodyti",
"hide": "Slėpti",
"label": "Patinka mygtukai",
"swap": "Sukeisti „Patinka“ mygtukų vietas"
"label": "\"Patinka\" mygtukai"
},
"remove-upgrade-button": "Nerodyti Patobulinti mygtuko",
"remove-upgrade-button": "Nerodyti \"Patobulinti\" mygtuko",
"theme": {
"dialog": {
"button": {
@ -209,14 +206,14 @@
"restart": "Perkrauti programą",
"show": "Rodyti langą",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
"plugins": {
"ad-speedup": {
"description": "Jeigu gros reklama, įrašo garsas bus išjungtas ir pagreitintas 16x",
"description": "Jeigu gros reklama, bus įrašo garsas išjungtas ir pagreitintas 16x",
"name": "Reklamos Pagreitinimas"
},
"adblocker": {
@ -227,7 +224,7 @@
"name": "Reklamų blokuotojas"
},
"album-actions": {
"description": "Prideda mygtukus pažymėti „Nepatinka, Patinka“, „Atžymėti Nepatinka“ bei „Atžymėti Patinka visas dainas grojaraštyje arba albume",
"description": "Prideda Nepatinka, Patinka bei atžymėti Nepatika ir Patinka visoms dainoms grojaraštyje arba albume.",
"name": "Albumo Veiksmai"
},
"album-color-theme": {
@ -238,13 +235,12 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Įjungti paieškos juostos temavimą"
}
},
"name": "Albumo Spalvų Tema"
},
"ambient-mode": {
"description": "Pritaiko apšvietimo efektą, perteikdamas švelnias vaizdo įrašo spalvas į ekrano foną",
"description": "Pritaiko apšvietimo efektą, perteikdamas švelnias vaizdo įrašo spalvas į ekrano foną.",
"menu": {
"blur-amount": {
"label": "Suliejimo kiekis",
@ -289,10 +285,10 @@
"name": "Aplinkos rėžimas"
},
"amuse": {
"description": "Prideda {{applicationName}} palaikyma Amuse grojimo valdikliui pagal 6K Labs",
"name": "Amuse (Platforma Dainininkams)",
"description": "Prideda Pear Desktop palaikyma Amuse grojimo valdikliui pagal 6K Labs",
"name": "Amuse (Platforma Dainininkams)",
"response": {
"query": "Amuse API serveris veikia. Parašykite GET /query kad gautumėte dainos informacija."
"query": "Amuse API serveris yra veikiantis. Parašykite Get /query kad gautumėte dainos informacija."
}
},
"api-server": {
@ -322,22 +318,6 @@
"hostname": {
"label": "Serverio Pavadinimas"
},
"https": {
"label": "HTTPS ir sertifikatai",
"submenu": {
"cert": {
"dialogTitle": "Pasirinkti HTTPS sertifikato failą",
"label": "Sertifikato failas (.crt/.pem)"
},
"enable-https": {
"label": "Įjungti HTTPS"
},
"key": {
"dialogTitle": "Pasirinkti HTTPS privataus rakto failą",
"label": "Privataus rakto failas (.key/.pem)"
}
}
},
"port": {
"label": "Prievadas"
}
@ -358,43 +338,19 @@
"description": "Pritaikyti garso kompresiją (sumažina garsiausių signalo dalių garsumą ir padidina švelniausių dalių garsumą)",
"name": "Garso Kompresorius"
},
"auth-proxy-adapter": {
"description": "autentifikavimo „proxy“ paslaugų naudojimo palaikymas",
"menu": {
"disable": "Išjungti „Proxy“ adapterį",
"enable": "Įjungti „Proxy“ adapterį",
"hostname": {
"label": "Sistemos pavadinimas"
},
"port": {
"label": "Prievadas"
}
},
"name": "Autentifikavimo „Proxy“ adapteris",
"prompt": {
"hostname": {
"label": "Įveskite sistemos vardą vietiniui „Proxy“ serveriui (reikalingas perkrovimas):",
"title": "„Proxy“ Sistemos pavadinimas"
},
"port": {
"label": "Įveskite vietinio „Proxy“ serverio prievadą (reikalingas perkrovimas):",
"title": "„Proxy“ Prievadas"
}
}
},
"blur-nav-bar": {
"description": "Padaro navigacijos lentą permatomą ir susiliejusią",
"name": "Sulieti Navigacijos Lentą"
},
"bypass-age-restrictions": {
"description": "Apeiti muzikos grotuvo amžiaus patikrinimą",
"description": "Apeiti \"Music Player\" amžiaus patikrinimą",
"name": "Apeiti Amžiaus Apribojimus"
},
"captions-selector": {
"description": "„{{applicationName}}“ Garso takelių antraščių parinkiklis",
"description": "„Pear Desktop“ Garso takelių antraščių parinkiklis",
"menu": {
"autoload": "Automatiškai pasirinkti paskutinę naudotą antraštę",
"disable-captions": "Antraštės išjungtos pagal numatytuosius nustatymus"
"disable-captions": "Pagal numatytuosius nustatymus išjungti antraštės"
},
"name": "Antraščių parinkiklis",
"prompt": {
@ -408,22 +364,10 @@
"title": "Atidaryti antraščių parinkiklį"
},
"toast": {
"caption-changed": "Antraštės pakeistos į {{language}}",
"caption-disabled": "Antraštės išjungtos",
"no-captions": "Šiai dainai antraštė nepasiekiama"
"caption-changed": "Subtitrai pakeisti į {{language}}",
"caption-disabled": "Subtitrai išjungti"
}
},
"clock": {
"description": "Pridėti laikrodį prie navigacijos lentos",
"menu": {
"format": {
"24-hour-format": "24Valandų Formatas",
"display-seconds": "Rodyti Sekundes",
"label": "Formatas"
}
},
"name": "Laikrodis"
},
"compact-sidebar": {
"description": "Visada nustatyti šoninę juostą kompaktiniame rėžime",
"name": "Kompaktinė šoninė juosta"
@ -431,13 +375,13 @@
"crossfade": {
"description": "Perliejimas tarp dainų",
"menu": {
"advanced": "Išplėsti Nustatymai"
"advanced": "Išplėsti"
},
"name": "Perliejimas [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Pasirodymo trukmė (ms)",
"fade-in-duration": "Išblukimo trukmė (ms)",
"fade-out-duration": "Išnykimo trukmė (ms)",
"fade-scaling": {
"label": "Išblukimo stiprumas",
@ -451,32 +395,30 @@
}
},
"custom-output-device": {
"description": "Konfigūruoti pasirinktiną medijos išvesties įrenginį dainoms",
"menu": {
"device-selector": "Pasirinkti įrenginį"
},
"name": "Pasirinktinas išvesties įrenginys",
"prompt": {
"device-selector": {
"label": "Pasirinkti naudotiną medijos išvesties įrenginį",
"title": "Pasirinkite išvesties įrenginį"
}
}
},
"disable-autoplay": {
"description": "Pradeda dainą pristabdytame rėžime",
"description": "Pradeda dainą pristabdytame rėžime",
"menu": {
"apply-once": "Pritaiko tik per programos paleidimą"
},
"name": "Išjungti automatinį leidimą"
"name": "Išjungti Automatinį leidimą"
},
"discord": {
"backend": {
"already-connected": "Bandyta prisijungti naudojant aktyvų ryšį",
"connected": "Prisijungta prie Discord",
"disconnected": "Atsijungta nuo Discord"
"connected": "Prisijungta prie \"Discord\"",
"disconnected": "Atsijungta nuo \"Discord\""
},
"description": "Parodyk savo draugams ko tu klausaisi su Rich Presence",
"description": "Parodyk savo draugams ko tu klausaisi su \"Turtingas Buvimas\" (Rich Presence)",
"menu": {
"auto-reconnect": "Automatiškai prisijungti",
"clear-activity": "Išvalyti veiklą",
@ -484,19 +426,18 @@
"connected": "Prisijungta",
"disconnected": "Atsijungta",
"hide-duration-left": "Slėpti kiek liko laiko",
"hide-github-button": "Slėpti GitHub nuorodos mygtuką",
"play-on-application": "Leisti naudojant „{{applicationName}}“",
"hide-github-button": "Slėpti \"GitHub\" nuorodos mygtuką",
"play-on-pear-desktop": "Leisti ant \"Pear Desktop\"",
"set-inactivity-timeout": "Nustatyti neveiklumo laiką",
"set-status-display-type": {
"label": "Būsenos tekstas",
"submenu": {
"application": "Klausosi {{applicationName}}",
"artist": "Klausosi {artist]",
"title": "Klausosi {song title}"
"title": "Klausosi {song title}",
"pear-desktop": "Klausosi Pear Desktop"
}
}
},
"name": "Discord Turtingas Buvimas (Rich Presence)",
"name": "\"Discord\" Turtingas Buvimas (Rich Presence)",
"prompt": {
"set-inactivity-timeout": {
"label": "Įveskite neveiklumo skirtąjį laiką sekundėmis:",
@ -512,13 +453,13 @@
"ok": "Gerai"
},
"message": "Aaa! Apgailestaujame, nepavyko atsisiųsti…",
"title": "Klaida atsisiunčiant!"
"title": "Paklaida atsisiunčiant!"
},
"start-download-playlist": {
"buttons": {
"ok": "Gerai"
},
"detail": "({{playlistSize}} dainų)",
"detail": "({{playlistSize}} dainos)",
"message": "Atsisiunčiama {{playlistTitle}} grojaraštį",
"title": "Prasidėjo atsisiuntimas"
}
@ -531,34 +472,32 @@
"download-progress": "Atsisiuntimas: {{percent}}%",
"downloading": "Atsisiunčiama…",
"downloading-counter": "Atsisiunčiama {{current}}/{{total}}…",
"downloading-playlist": "Atsisiunčiamas grojaraštis {{playlistTitle}} - {{playlistSize}} dainų {{playlistId}}",
"error-while-downloading": "Klaida atsisiunčiant {{author}} - {{title}}: {{error}}",
"downloading-playlist": "Atsisiunčiamas grojaraštis \"{{playlistTitle}}\" - {{playlistSize}} dainų {{playlistId}}",
"error-while-downloading": "Paklaida atsisiunčiant \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Aplankas {{playlistFolder}} jau egzistuoja",
"getting-playlist-info": "Gaunama grojaraščio informacija…",
"loading": "Kraunama…",
"playlist-has-only-one-song": "Grojaraštis turi tik vieną elementą, jis atsisiunčiamas tiesiogiai",
"playlist-id-not-found": "Grojaraščio ID nerastas",
"playlist-is-empty": "Grojaraštis yra tuščias",
"playlist-is-mix-or-private": "Klaida gaunant grojaraščio informaciją: Pasitikrink, ar jis nėra privatus ar \"Surinkta specialiai jums\" grojaraštis\n\n{{error}}",
"preparing-file": "Failas ruošiamas…",
"saving": "Išsaugoma…",
"playlist-is-mix-or-private": "Paklaida gaunant grojaraščio informaciją: Pasitikrink, kad jis nėra privatus ar \"Surinkta specialiai jums\" grojaraštis\n\n{{error}}",
"preparing-file": "Failas paruošiamas…",
"saving": "Išsaugojama…",
"trying-to-get-playlist-id": "Bandoma gauti grojaraščio ID: {{playlistId}}",
"video-id-not-found": "Vaizdo įrašas nerastas",
"writing-id3": "Rašoma ID3 žymes…"
}
},
"description": "Atsisiunčia MP3 / šaltinio garsą tiesiogiai iš sąsajos",
"description": "Atsisiunčia MP3 / šaltinio garsą tiesiogiai iš sąsajos",
"menu": {
"choose-download-folder": "Pasirinkti atsisiuntimų aplanką",
"download-finish-settings": {
"label": "Atsisiųsti pabaigus dainą",
"prompt": {
"last-percent": "Po x procentų",
"last-seconds": "Paskutinės x sekundės",
"title": "Nustatyti kada atsisiųsti"
},
"submenu": {
"advanced": "Išplėsti Nustatymai",
"enabled": "Įjungtas",
"mode": "Laiko rėžimas",
"percent": "Procentai",
@ -566,7 +505,7 @@
}
},
"download-playlist": "Atsisiųsti grojaraštį",
"presets": "Išankstiniai nustatymai",
"presets": "Iš anksto nustatyti nustatymai",
"skip-existing": "Praleisti egzistuojančius failus"
},
"name": "Atsiuntėjas",
@ -578,16 +517,11 @@
}
},
"equalizer": {
"description": "Prideda vienodintuvą į grotuvą",
"menu": {
"presets": {
"label": "Išankstiniai nustatymai",
"list": {
"bass-booster": "Žemų dažnių stiprintuvas"
}
"label": "Išankstiniai nustatymai"
}
},
"name": "Vienodintuvas"
}
},
"exponential-volume": {
"description": "Padaro garsumo slankiklį eksponentinį, kad būtų lengviau pasirinkti mažesnį garsumą.",
@ -596,20 +530,20 @@
"in-app-menu": {
"description": "Duoda meniu lentoms įmantrią, tamsią ar albumo spalvos išvaizdą",
"menu": {
"hide-dom-window-controls": "Slėpti DOM lango kontroles"
"hide-dom-window-controls": "Slėpti DOM lango kontroles"
},
"name": "Programos Meniu"
},
"lumiastream": {
"description": "Prideda Lumia Stream palaikymą",
"name": "Lumia Stream [Beta]"
"description": "Prideda \"Lumia Stream\" palaikymą",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Daugumai dainų prideda jų dainų žodžius",
"description": "Prideda daugumai dainių žodžių tekstus",
"menu": {
"romanized-lyrics": "Romanizuoti dainų tekstai"
},
"name": "„Lyrics Genius“ dainų žodžiai",
"name": "\"Genius\" Žodžių tekstai",
"renderer": {
"fetched-lyrics": "Gauti žodžiai iš „Genius“"
}
@ -621,85 +555,54 @@
},
"internal": {
"save": "Išsaugoti",
"track-source": "Dainos Šaltinis",
"track-source": "Dainos kilmė",
"unknown-user": "Nežinomas Naudotojas"
},
"menu": {
"click-to-copy-id": "Kopijuoti Vedėjo ID",
"close": "Uždaryti „Muzika Kartu“",
"connected-users": "Prisijungę vartotojai",
"disconnect": "Išjungti „Muzika Kartu“",
"empty-user": "Nėra prisijungusių vartotojų",
"host": "„Muzika Kartu“ Vedėjas",
"join": "Prisijungti prie „Muzika Kartu“",
"permission": {
"all": "Leisti svečiams valdyti grojaraštį ir grotuvą",
"host-only": "Tik vedėjas gali valdyti grojaraštį ir grotuvą",
"playlist": "Leisti svečiams valdyti grojaraštį"
},
"set-permission": "Keisti valdymo leidimus",
"status": {
"disconnected": "Atsijungta",
"guest": "Prisijungta kaip Svečias",
"host": "Prisijungta kaip Vedėjas"
"guest": "Prisijungta kaip svečias"
}
},
"name": "„Muzika Kartu“ [Beta]",
"toast": {
"add-song-failed": "Nepavyko pridėti dainos",
"closed": "„Muzika Kartu“ uždaryta",
"disconnected": "„Muzika Kartu“ atsijungė",
"host-failed": "Nepavyko surengti „Muzika Kartu“",
"id-copied": "Vedėjo ID nukopijuota į iškarpinę",
"id-copy-failed": "Nepavyko nukopijuoti vedėjo ID į iškarpinę",
"join-failed": "Nepavyko prisijungti prie „Muzika Kartu“",
"joined": "Prisijungta prie „Muzika Kartu“",
"permission-changed": "„Muzika Kartu“ leidimas pakeistas į „{{permission}}“",
"remove-song-failed": "Nepavyko pašalinti dainos",
"user-connected": "{{name}} prisijungė prie „Muzika Kartu“",
"user-disconnected": "{{name}} išėjo iš „Muzika Kartu“"
"remove-song-failed": "Nepavyko pašalinti dainos"
}
},
"navigation": {
"description": "Kitas/Ankstenis navigacijos rodyklės tiesiogiai integruotos sąsajoje, kaip tavo mėgstamiausioje naršyklėje",
"name": "Navigacija",
"templates": {
"back": {
"title": "Eiti į praeitą puslapį"
},
"forward": {
"title": "Eiti į kitą puslapį"
}
}
"name": "Navigacija"
},
"no-google-login": {
"description": "Pašalinti Google prisijungimo mygtukus ir nuorodas iš sąsajos",
"name": "Be Google Prisijungimo"
"description": "Pašalinti \"Google\" prisijungimo mygtukus ir nuorodas iš sąsjos",
"name": "Be \"Google\" Prisijungimo"
},
"notifications": {
"description": "Rodyti pranešimą, kai pradeda groti daina (interaktyvūs pranešimai pasiekiami sistemoje Windows)",
"description": "Rodyti pranešimą, kai pradeda groti daina (interaktyvūs pranešimai pasiekiami sistemoje \"Windows\")",
"menu": {
"interactive": "Interaktyvūs pranešimai",
"interactive-settings": {
"label": "Interaktyvūs nustatymai",
"submenu": {
"hide-button-text": "Paslėpti mygtuko tekstą",
"refresh-on-play-pause": "Perkrauti po Paleidimo/Pristabdymo",
"tray-controls": "Atidaryti/Uždaryti po paspaudimo ant padėklo"
"refresh-on-play-pause": "Atnaujinti ant Paleidimo/Pristabdymo",
"tray-controls": "Atidaryti/Uždaryti ant padėklo paspaudimo"
}
},
"priority": "Pranešimų pirmenybė",
"toast-style": "įspėjimo pranešimų stilius",
"unpause-notification": "Rodyti pranešimą po dainos paleidimo"
"priority": "Pranešimų pirminybė",
"toast-style": "Skrudintas stilius",
"unpause-notification": "Rodyti pranešimus po dainos paleidimo"
},
"name": "Pranešimai"
},
"performance-improvement": {
"description": "Pagerinkite našumą įjungdami eksperimentinius scenarijus",
"name": "Našumo patobulinimas [Beta]"
},
"picture-in-picture": {
"description": "Leidžia pakeisti programą į „nuotrauka-nuotraukoje“ rėžimą",
"description": "Leidžia pakeisti programą į \"picture-in-picture\" rėžimą",
"menu": {
"always-on-top": "Visada ant viršaus",
"hotkey": {
@ -708,17 +611,17 @@
"keybind-options": {
"hotkey": "Spartusis klavišas"
},
"label": "Pasirinkti spartųjį klavišą, kad įjungti/išjungti „nuotrauka-nuotraukoje“ rėžimą",
"title": "„Nuotrauka-Nuotraukoje“ Spartusis klavišas"
"label": "Pasirinkti spartujį klaviša, kad įjungti/išjungti \"picture-in-picture\"",
"title": "\"Picture-in-picture\" Spartusis klavišas"
}
},
"save-window-position": "Išsaugoti lango poziciją",
"save-window-size": "Išsaugoti lango dydį",
"use-native-pip": "Naudoti naršyklės savąPiP"
"use-native-pip": "Naudoti naršyklės savajį PiP"
},
"name": "Nuotrauka-nuotraukoje",
"name": "Picture-in-picture",
"templates": {
"button": "Nuotrauka-nuotraukoje"
"button": "Picture-in-picture"
}
},
"playback-speed": {
@ -729,10 +632,10 @@
}
},
"precise-volume": {
"description": "Tiksliai valdykite garsumą naudodami pelės ratuką / sparčiuosius klavišus, naudodami pritaikytą HUD ir pritaikomus garsumo žingsnius",
"description": "Tiksliai valdykite garsumą naudodami pelės ratuką / sparčiuosius klavišus, naudodami pritaikytą HUD ir pritaikomus garsumo žingsnius",
"menu": {
"arrows-shortcuts": "Vietiniai rodyklių klavišų valdikliai",
"custom-volume-steps": "Nustatykite Pasirinktinius Garsumo Laiptus",
"arrows-shortcuts": "Vietiniai rodyklių klavišai valdikliai",
"custom-volume-steps": "Nustatykite Pasirinktinius Garsumo Žingsnius",
"global-shortcuts": "Pasauliniai spartieji klavišai"
},
"name": "Tikslus Garsas",
@ -746,8 +649,8 @@
"title": "Pasauliniai Garso Klavišai"
},
"volume-steps": {
"label": "Pasirinkti Garso Didinimo/Mažinimo Laipsnius",
"title": "Garso Laipsniai"
"label": "Pasirinkti Garso Didinimo/Mažinimo Žingsnius",
"title": "Garso Žingsniai"
}
}
},
@ -762,50 +665,21 @@
}
},
"description": "Leidžia pakeisti vaizdo kokybę su mygtuku ant vaizdo perdangos",
"name": "Vaizdo Kokybės Keitėjas",
"renderer": {
"quality-settings-button": {
"label": "Atidaryti grotuvo kokybės keistuvą"
}
}
"name": "Vaizdo Kokybės Pakeitėjas"
},
"scrobbler": {
"description": "Pridėti „scrobbling“ palaikymą (pvz., last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Nepavyko autentifikuotis su Last.fm\nPaslėpkite iššokantį langą iki kito paleidimo.",
"title": "Autentifikacija nepavyko"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API nustatymai"
},
"listenbrainz": {
"token": "Įvesti „ListenBrainz“ vartotojo žetoną"
},
"scrobble-alternative-artist": "Naudoti alternatyvius atlikėjus",
"scrobble-alternative-title": "Naudoti alternatyvius pavadinimus",
"scrobble-other-media": "„Scrobble“ kitas medijas"
"scrobble-alternative-title": "Naudoti alternatyvius pavadinimus"
},
"name": "„Scrobbler“",
"prompt": {
"lastfm": {
"api-key": "Last.fm API raktas",
"api-secret": "Last.fm API paslaptis"
},
"listenbrainz": {
"token": {
"label": "Įveskite savo „ListenBrainz“ vartotojo žetoną:",
"title": "„ListenBrainz“ žetonas"
}
"api-key": "Last.fm API raktas"
}
}
},
"shortcuts": {
"description": "Leidžia nustatyti visuotinius atkūrimo sparčiuosius klavišus (paleisti / pristabdyti / kitą / ankstesnį) ir išjungti medijos OSD nepaisant medijos klavišų, įjungti Ctrl / CMD + F ieškoti, įjungti Linux MPRIS palaikymą medijos klavišams ir pasirinktinius sparčiuosius klavišus pažengusiems vartotojams",
"description": "Leidžia nustatyti visuotinius atkūrimo sparčiuosius klavišus (paleisti / pristabdyti / kitą / ankstesnį) ir išjungti medijos OSD nepaisant medijos klavišų, įjungti Ctrl / CMD + F ieškoti, įjungti Linux MPRIS palaikymą medijos klavišams ir pasirinktinius sparčiuosius klavišus pažengusiems vartotojams.",
"menu": {
"override-media-keys": "Perrašyti Medijos klavišus",
"set-keybinds": "Nustatyti Pasaulines Dainų Kontroles"
@ -836,82 +710,11 @@
"name": "Rėmėjų blokuotojas"
},
"synced-lyrics": {
"description": "Teikia sinchronizuotus dainų žodžius, naudojantis tiekėjais kaip LRClib.",
"description": "Teikia sinchronizuotus dainų žodžius, naudojantis tiekėjais kaip LRClib.",
"errors": {
"fetch": "⚠️\t\tĮvyko klaida gaunant dainos žodžius.\n\tPabandykite dar karta vėliau.",
"not-found": "⚠️ Šiai dainai nerasti dainos tekstai."
},
"menu": {
"convert-chinese-character": {
"label": "Konvertuoti Kinietišką ženklą",
"submenu": {
"disabled": {
"label": "Išjungtas",
"tooltip": "Išjungti Kinietiškų ženklų konvertavimą"
},
"simplified-to-traditional": {
"label": "Supaprastintą į Tradicinę",
"tooltip": "Konvertuoti Supaprastintą Kinų kalbą į Tradicinę Kinų kalbą"
},
"traditional-to-simplified": {
"label": "Tradicionalią į Supaprastintą",
"tooltip": "Konvertuoti Tradicionalią Kinų kalbą į Supaprastintą Kinų kalbą"
}
},
"tooltip": "Konvertuoti Kinietiškus ženklus į Tradicinę arba Supaprastintą"
},
"default-text-string": {
"label": "Numatyti simboliai tarp dainos žodžių",
"tooltip": "Pasirinkite numatytąjį simbolį kurį naudoti tarpui tarp dainos žodžių"
},
"line-effect": {
"label": "Teksto linijos efektas",
"submenu": {
"fancy": {
"label": "Prašmatnus",
"tooltip": "Naudoti didelius, panašius į programos efektus dabartinei eilutei"
},
"focus": {
"label": "Sutelkti dėmesį",
"tooltip": "Padaryti tik dabartinę eilutę baltą"
},
"offset": {
"label": "Nuokrypis",
"tooltip": "Dabartinę eilutę pastumti iš dešinės"
},
"scale": {
"label": "Skalė",
"tooltip": "Padidinti dabartinę eilutę"
}
},
"tooltip": "Pasirinkti efektą, kurį pritaikyti dabartinei linijai"
},
"precise-timing": {
"label": "Tobulai sinchronizuoti dainos žodžius",
"tooltip": "Apskaičiuoti kitos eilutės rodymą milisekundės tikslumu (gali turėti nedidelę įtaką našumui)"
},
"preferred-provider": {
"label": "Pageidaujamas tiekėjas",
"none": {
"label": "Jokio",
"tooltip": "Jokio pageidaujamo tiekėjo"
},
"tooltip": "Pasirinkti numatytąjį tiekėją kurį naudoti"
},
"romanization": {
"label": "Romanizuoti dainos žodžius",
"tooltip": "jei dainos žodžiai yra kita kalba, bandyti pateikti lotyniškų ženklų versiją."
},
"show-lyrics-even-if-inexact": {
"label": "Rodyti dainos žodžius, net jei jie netikslūs",
"tooltip": "Jeigu daina nerasta, įskiepis bando iš naujo su skirtinga paieškos užklausa.\nAntro bandymo rezultatas gali būti netikslus."
},
"show-time-codes": {
"label": "Rodyti laiko žymes",
"tooltip": "Rodyti laiko žymes kartu su dainos žodžiais"
}
},
"name": "„Synced Lyrics“",
"refetch-btn": {
"fetching": "Gaunama...",
"normal": "Atgauti dainos žodžius"
@ -927,40 +730,15 @@
"name": "Užduočių juostos medijos valdymas"
},
"touchbar": {
"description": "Pridedamas jutiklinės juostos valdiklis MacOS vartotojams",
"name": "TouchBar"
},
"transparent-player": {
"description": "Padaro programos langą skaidrų",
"menu": {
"opacity": {
"label": "Skaidrumas",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Tipas",
"submenu": {
"acrylic": "Akrilas",
"mica": "Žėrutis",
"none": "Joks",
"tabbed": "Atskirtas"
}
}
},
"name": "Skaidrus Grotuvas"
"description": "Pridedamas jutiklinės juostos valdiklis MacOS vartotojams",
"name": "TouchBar"
},
"tuna-obs": {
"description": "Integracija su OBS papildiniu Tuna",
"name": "Tuna OBS"
},
"unobtrusive-player": {
"description": "Trukdo grotuvo atsidarymui grojant dainą",
"name": "Netrukdantis Grotuvas"
"description": "Integracija su OBS papildiniu \"Tuna\"",
"name": "Tuna OBS"
},
"video-toggle": {
"description": "Pridedamas mygtukas, skirtas perjungti vaizdo įrašo/dainos režimą. Taip pat galite pasirinktinai pašalinti visą vaizdo įrašo skirtuką",
"description": "Pridedamas mygtukas, skirtas perjungti vaizdo įrašo/dainos režimą. taip pat galite pasirinktinai pašalinti visą vaizdo įrašo skirtuką",
"menu": {
"align": {
"label": "Lygiavimas",
@ -982,8 +760,7 @@
},
"name": "Vaizdo įrašo perjungimas",
"templates": {
"button-song": "Daina",
"button-video": "Vaizdo įrašas"
"button-song": "Daina"
}
},
"visualizer": {

View File

@ -208,8 +208,8 @@
"restart": "Restartēt Lietotni",
"show": "Rādīt logu",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Ambientais Režīms"
},
"amuse": {
"description": "Pievieno {{applicationName}} atblastu priekš Amuse \"tagad spēlē\" no 6K Labs",
"description": "Pievieno Pear Desktop atblastu priekš Amuse \"tagad spēlē\" no 6K Labs",
"name": "Amuse",
"response": {
"query": "Amuse API serveris ir palaists. GET /query lai dabūtu dziesmas info."
@ -373,7 +373,7 @@
"name": "Apiet Vecuma Ierobežojumus"
},
"captions-selector": {
"description": "Subtitru izvēlne priekš {{applicationName}} audio ceļiem",
"description": "Subtitru izvēlne priekš Pear Desktop audio ceļiem",
"menu": {
"autoload": "Automātiski izvēlēties pēdējo izmantotos subtitrus",
"disable-captions": "Bez subtitriem pēc noklusējuma"
@ -456,7 +456,7 @@
"disconnected": "Atvienojies",
"hide-duration-left": "Paslēpt cik palika laika",
"hide-github-button": "Paslēpt GitHub saites pogu",
"play-on-application": "Atskaņot uz {{applicationName}}",
"play-on-pear-desktop": "Atskaņot uz Pear Desktop",
"set-inactivity-timeout": "Iestatīt neaktivitātes taimeru",
"set-status-display-type": {
"label": "Statusa teksts",

View File

@ -154,7 +154,7 @@
"label": "Tajuk tetingkap tersuai",
"prompt": {
"label": "Masukkan tajuk tetingkap tersuai: (biarkan kosong untuk matikan)",
"placeholder": "Contoh: {{applicationName}}"
"placeholder": "Contoh: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Mulakan Semula Aplikasi",
"show": "Papar tetingkap",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop : {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Mod Sekitaran"
},
"amuse": {
"description": "Menambahkan sokongan {{applicationName}} untuk widget sedang dimain Amuse oleh 6K Labs",
"description": "Menambahkan sokongan Pear Desktop untuk widget sedang dimain Amuse oleh 6K Labs",
"name": "Terhibur",
"response": {
"query": "API server Amuse telah berjalan. GET /query untuk mendapatkan maklumat lagu."
@ -373,7 +373,7 @@
"name": "Pintas Sekatan Umur"
},
"captions-selector": {
"description": "Pemilih kapsyen untuk trek audio {{applicationName}}",
"description": "Pemilih kapsyen untuk trek audio Pear Desktop",
"menu": {
"autoload": "Pilih kapsyen terakhir diguna secara automatik",
"disable-captions": "Tiada kapsyen secara lalai"
@ -456,13 +456,13 @@
"disconnected": "Tidak disambungkan",
"hide-duration-left": "Sembunyikan tempoh yang tinggal",
"hide-github-button": "Sembunyikan Butang pautan GitHub",
"play-on-application": "Main di {{applicationName}}",
"play-on-pear-desktop": "Main di Pear Desktop",
"set-inactivity-timeout": "Tetapkan tamat masa tidak aktif",
"set-status-display-type": {
"label": "Teks status",
"submenu": {
"artist": "Sedang mendengar {artist}",
"application": "Mendengar {{applicationName}}",
"pear-desktop": "Mendengar Pear Desktop",
"title": "Sedang mendengar {tajuk lagu}"
}
}

View File

@ -261,7 +261,7 @@
"name": "Omgå aldersgrense"
},
"captions-selector": {
"description": "Undertekstverktøy for lydspor i {{applicationName}}",
"description": "Undertekstverktøy for lydspor i Pear Desktop",
"menu": {
"autoload": "Auto-velg sist brukte undertekst",
"disable-captions": "Ingen undertekst som forvalg"
@ -326,7 +326,7 @@
"disconnected": "Frakoblet",
"hide-duration-left": "Skjul gjenværende tid",
"hide-github-button": "Skjul GitHub-lenkeknapp",
"play-on-application": "Spill på {{applicationName}}",
"play-on-pear-desktop": "Spill på Pear Desktop",
"set-inactivity-timeout": "Sett tid før tidsavbrudd"
},
"name": "Rik tilstedeværelse for Discord",

View File

@ -150,13 +150,6 @@
"visual-tweaks": {
"label": "भिजुअल ट्वीक्स",
"submenu": {
"custom-window-title": {
"label": "अनुकूलन विन्डो शीर्षक",
"prompt": {
"label": "अनुकूलन विन्डो शीर्षक प्रविष्ट गर्नुहोस्: (असक्षम पार्न खाली छोड्नुहोस्)",
"placeholder": "उदाहरण: पियर डेस्कटप"
}
},
"like-buttons": {
"default": "पूर्वनिर्धारित",
"force-show": "देखाउनुहोस",
@ -186,7 +179,7 @@
"plugins": {
"enabled": "सक्षम गरियो",
"label": "प्लगइनहरू",
"new": "नयाँ"
"new": "NEW"
},
"view": {
"label": "हेर्नुहोस्",
@ -208,8 +201,8 @@
"restart": "एप पुनः सुरु गर्नुहोस्",
"show": "विन्डो देखाउनुहोस्",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "युट्युब मिउजिक",
"with-song-info": "युट्युब मिउजिक:{{artist}}-{{title}}"
}
}
},
@ -443,7 +436,7 @@
"disconnected": "डिसकन्एक्टेड",
"hide-duration-left": "बाकी समय लुकाऊ",
"hide-github-button": "GitHub लिंक लुकाऊ",
"play-on-application": "{{applicationName}} मा बजाउ",
"play-on-pear-desktop": "Pear Desktop मा बजाउ",
"set-inactivity-timeout": "इनएक्टिभिटी टाइमआउट राख"
},
"name": "डिसकार्ड रिच प्रीसेंस",

View File

@ -5,10 +5,10 @@
"execute-failed": "Mislukt om plugin {{pluginName}}::{{contextName}} uit te voeren",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} uitgevoerd in {{ms}}ms",
"initialize-failed": "Initialisatie van plugin \"{{pluginName}}\" mislukt",
"load-all": "Alle plugins aan het laden",
"load-all": "Alle plugins laden",
"load-failed": "Mislukt om plugin \"{{pluginName}}\" te laden",
"loaded": "Plugin \"{{pluginName}}\" geladen",
"unload-failed": "Mislukt om plugin \"{{pluginName}}\" te ontladen",
"unload-failed": "Mislukt om plugin \"{{pluginName}}\" te lossen",
"unloaded": "Plugin \"{{pluginName}}\" gelost"
}
}
@ -154,7 +154,7 @@
"label": "Aangepaste venstertitel",
"prompt": {
"label": "Voer aangepaste venstertitel in: (laat leeg om uit te schakelen)",
"placeholder": "Voorbeeld: {{applicationName}}"
"placeholder": "Voorbeeld: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Herstarten App",
"show": "Weergeven Venster",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Schakel thema's voor de schuifbalk in"
}
},
"name": "Albumkleurthema"
},
@ -288,7 +287,7 @@
"name": "Omgevingsmodus"
},
"amuse": {
"description": "Voegt {{applicationName}} ondersteuning toe voor de Amuse now playing widget van 6K Labs",
"description": "Voegt Pear Desktop ondersteuning toe voor de Amuse now playing widget van 6K Labs",
"name": "Amuse",
"response": {
"query": "Amuse API server loopt. Gebruik /query voor nummer informatie."
@ -321,22 +320,6 @@
"hostname": {
"label": "Hostnaam"
},
"https": {
"label": "HTTPS & Certificaten",
"submenu": {
"cert": {
"dialogTitle": "Selecteer HTTPS certificaat",
"label": "Certificaatbestand (.crt/.pem)"
},
"enable-https": {
"label": "HTTPS aanzetten"
},
"key": {
"dialogTitle": "Selecteer HTTPS privésleutel",
"label": "Privésleutelbestand (.key/.pem)"
}
}
},
"port": {
"label": "Poort"
}
@ -390,7 +373,7 @@
"name": "Leeftijdsbeperkingen Omzeilen"
},
"captions-selector": {
"description": "Ondertitelkeuze voor {{applicationName}}-audiotracks",
"description": "Ondertitelkeuze voor Pear Desktop-audiotracks",
"menu": {
"autoload": "Automatisch de laatst gebruikte ondertitel selecteren",
"disable-captions": "Standaard geen ondertitels"
@ -473,14 +456,14 @@
"disconnected": "Verbinding verbroken",
"hide-duration-left": "Verberg resterende tijd",
"hide-github-button": "GitHub-knop verbergen",
"play-on-application": "Afspelen op {{applicationName}}",
"play-on-pear-desktop": "Afspelen op Pear Desktop",
"set-inactivity-timeout": "Inactiviteitstime-out instellen",
"set-status-display-type": {
"label": "Status tekst",
"submenu": {
"application": "Naar {{applicationName}} aan het luisteren",
"artist": "Naar {artist} aan het luisteren",
"title": "Naar {song title} aan het luisteren"
"title": "Naar {song title} aan het luisteren",
"pear-desktop": "Naar Pear Desktop aan het luisteren"
}
}
},

View File

@ -154,7 +154,7 @@
"label": "Niestandardowy tytuł okna",
"prompt": {
"label": "Podaj niestandardowy tytuł okna (zostaw puste, aby to wyłączyć)",
"placeholder": "Przykład: {{applicationName}}"
"placeholder": "Przykład: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Uruchom ponownie aplikację",
"show": "Pokaż okno",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{title}} (autorstwa {{artist}}) - {{applicationName}}"
"default": "Pear Desktop",
"with-song-info": "{{title}} (autorstwa {{artist}}) - Pear Desktop"
}
}
},
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Zezwól stylowanie paska wyszukiwań"
}
},
"name": "Motyw kolorów albumu"
},
@ -288,14 +287,14 @@
"name": "Tryb otoczenia"
},
"amuse": {
"description": "Wspiera integrację {{applicationName}} z widgetami Amuse (od 6K Labs)",
"description": "Wspiera integrację Pear Desktop z widgetami Amuse (od 6K Labs)",
"name": "Amuse",
"response": {
"query": "Serwer API Amuse działa. Użyj metody GET do /query, aby zdobyć informację o utworze."
}
},
"api-server": {
"description": "Steruj odtwarzaczem przez specjalny serwer API",
"description": "Pozwala na kontrolowanie Pear Desktop poprzez podłączenie specjalnego serwera API",
"dialog": {
"request": {
"buttons": {
@ -321,27 +320,11 @@
"hostname": {
"label": "Nazwa hosta (IP)"
},
"https": {
"label": "HTTPS i Certyfikaty",
"submenu": {
"cert": {
"dialogTitle": "Wybierz plik certyfikatu HTTPS",
"label": "Certyfikat (.crt/.pem)"
},
"enable-https": {
"label": "Zezwól HTTPS"
},
"key": {
"dialogTitle": "Wybierz plik prywatnego klucza HTTPS",
"label": "Klucz prywatny (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
},
"name": "{{applicationName}} API",
"name": "Pear Desktop API",
"prompt": {
"hostname": {
"label": "Wpisz nazwę hosta (IP, np. 0.0.0.0), który będzie użyty do serwera API:",
@ -390,7 +373,7 @@
"name": "Omiń ograniczenia wiekowe"
},
"captions-selector": {
"description": "Selektor napisów dla ścieżek audio {{applicationName}}",
"description": "Selektor napisów dla ścieżek audio Pear Desktop",
"menu": {
"autoload": "Automatycznie wybierz ostatnio używanych napisów",
"disable-captions": "Domyślnie, brak napisów"
@ -473,13 +456,13 @@
"disconnected": "Odłączono",
"hide-duration-left": "Ukryj pozostały czas trwania",
"hide-github-button": "Ukryj przycisk do GitHub",
"play-on-application": "Odtwórz w {{applicationName}}",
"play-on-pear-desktop": "Odtwórz w Pear Desktop",
"set-inactivity-timeout": "Ustaw limit czasu bezczynności",
"set-status-display-type": {
"label": "Opis statusu",
"submenu": {
"application": "Słucha {{applicationName}}",
"artist": "Słucha {artist}",
"pear-desktop": "Słucha Pear Desktop",
"title": "Słucha {song title}"
}
}

View File

@ -154,15 +154,14 @@
"label": "Título da janela customizado",
"prompt": {
"label": "Insira título customizado para a janela: (deixe em branco para desabilitar)",
"placeholder": "Exemplo: {{applicationName}}"
"placeholder": "Exemplo: Pear Desktop"
}
},
"like-buttons": {
"default": "Padrão",
"force-show": "Forçar exibir",
"hide": "Ocultar",
"label": "Botões de 'Curtir'",
"swap": "Inverter ordem dos botões de curtir"
"label": "Botões de 'Curtir'"
},
"remove-upgrade-button": "Remover botão de atualização",
"theme": {
@ -209,8 +208,8 @@
"restart": "Reiniciar aplicativo",
"show": "Mostrar janela",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -238,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Ativar personalização da barra de progresso"
}
},
"name": "Tema da cor do álbum"
},
@ -289,7 +287,7 @@
"name": "Modo ambiente"
},
"amuse": {
"description": "Adiciona suporte ao {{applicationName}} ao widget 'Reproduzindo agora' do Amuse da 6K Labs",
"description": "Adiciona suporte ao Pear Desktop ao widget 'Reproduzindo agora' do Amuse da 6K Labs",
"name": "Amuse",
"response": {
"query": "Servidor API do Amuse em execução. GET /query para obter informações da música."
@ -322,22 +320,6 @@
"hostname": {
"label": "Nome do anfitrião"
},
"https": {
"label": "HTTPS & Certificados",
"submenu": {
"cert": {
"dialogTitle": "Selecione o certificado do HTTPS",
"label": "Arquivo de certificado (.crt/.pem)"
},
"enable-https": {
"label": "Habilitar HTTPS"
},
"key": {
"dialogTitle": "Selecione a chave privada do HTTPS",
"label": "Arquivo de chave privada (.key/.pem)"
}
}
},
"port": {
"label": "Porta"
}
@ -391,7 +373,7 @@
"name": "Ignorar restrições de idade"
},
"captions-selector": {
"description": "Seletor de legendas para faixas de áudio do {{applicationName}}",
"description": "Seletor de legendas para faixas de áudio do Pear Desktop",
"menu": {
"autoload": "Selecionar automaticamente a última legenda usada",
"disable-captions": "Sem legendas por padrão"
@ -413,17 +395,6 @@
"no-captions": "Sem legendas disponíveis para essa música"
}
},
"clock": {
"description": "Adicionar relógio na barra de navegação",
"menu": {
"format": {
"24-hour-format": "Formato 24 horas",
"display-seconds": "Mostrar segundos",
"label": "Formato"
}
},
"name": "Relógio"
},
"compact-sidebar": {
"description": "Sempre definir a barra lateral no modo compacto",
"name": "Barra lateral compacta"
@ -485,13 +456,13 @@
"disconnected": "Desconectado",
"hide-duration-left": "Ocultar duração restante",
"hide-github-button": "Ocultar botão do GitHub",
"play-on-application": "Reproduzir no {{applicationName}}",
"play-on-pear-desktop": "Reproduzir no Pear Desktop",
"set-inactivity-timeout": "Definir tempo limite de inatividade",
"set-status-display-type": {
"label": "Texto de status",
"submenu": {
"application": "Ouvindo {{applicationName}}",
"artist": "Ouvindo {artist}",
"pear-desktop": "Ouvindo Pear Desktop",
"title": "Ouvindo {song title}"
}
}
@ -842,24 +813,6 @@
"not-found": "⚠️ Nenhuma letra encontrada para esta música."
},
"menu": {
"convert-chinese-character": {
"label": "Converter caracteres Chineses",
"submenu": {
"disabled": {
"label": "Desativado",
"tooltip": "Desativar conversão de caracteres Chineses"
},
"simplified-to-traditional": {
"label": "Simplificado para Tradicional",
"tooltip": "Converter Chinês Simplificado para Chinês Tradicional"
},
"traditional-to-simplified": {
"label": "Tradicional para Simplificado",
"tooltip": "Converter Chinês Tradicional para Chinês Simplificado"
}
},
"tooltip": "Converter caractere Chinês para Tradicional ou Simplificado"
},
"default-text-string": {
"label": "Caractere padrão entre letras",
"tooltip": "Escolha o caractere padrão a ser usado para o intervalo entre as letras"

View File

@ -154,7 +154,7 @@
"label": "Título de janela personalizado",
"prompt": {
"label": "Introduza um título: (deixe em branco para desativar)",
"placeholder": "Exemplo: {{applicationName}}"
"placeholder": "Exemplo: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reiniciar aplicação",
"show": "Mostrar janela",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Ativar temas na barra de reprodução"
}
},
"name": "Tema de cores do álbum"
},
@ -288,7 +287,7 @@
"name": "Modo ambiente"
},
"amuse": {
"description": "Adiciona suporte ao {{applicationName}} para o widget Amuse now playing de 6K Labs",
"description": "Adiciona suporte ao Pear Desktop para o widget Amuse now playing de 6K Labs",
"name": "Amuse",
"response": {
"query": "O servidor da API Amuse está a ser executado. GET/query para obter informações sobre a faixa."
@ -321,22 +320,6 @@
"hostname": {
"label": "Nome do anfitrião"
},
"https": {
"label": "HTTPS e Certificados",
"submenu": {
"cert": {
"dialogTitle": "Selecionar arquivo do certificado HTTPS",
"label": "Arquivo do certificado (.crt/.pem)"
},
"enable-https": {
"label": "Ativar HTTPS"
},
"key": {
"dialogTitle": "Selecionar arquivo da chave privada HTTPS",
"label": "Arquivo da chave privada (.key/.pen)"
}
}
},
"port": {
"label": "Porta"
}
@ -390,7 +373,7 @@
"name": "Ignorar restrições de idade"
},
"captions-selector": {
"description": "Seletor de legendas para as faixas de áudio do {{applicationName}}",
"description": "Seletor de legendas para as faixas de áudio do Pear Desktop",
"menu": {
"autoload": "Selecionar automaticamente a última legenda utilizada",
"disable-captions": "Sem legendas por omissão"
@ -473,14 +456,14 @@
"disconnected": "Desconectado",
"hide-duration-left": "Ocultar tempo restante",
"hide-github-button": "Ocultar botão GitHub",
"play-on-application": "Reproduzir em {{applicationName}}",
"play-on-pear-desktop": "Reproduzir em Pear Desktop",
"set-inactivity-timeout": "Definir tempo de inatividade",
"set-status-display-type": {
"label": "Texto de estado",
"submenu": {
"application": "A reproduzir {{applicationName}}",
"artist": "A ouvir {artist}",
"title": "A ouvir {song title}"
"title": "A ouvir {song title}",
"pear-desktop": "A reproduzir Pear Desktop"
}
}
},

View File

@ -1,15 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Pluginta mana ruwayta atirqanchu {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin nisqa {{pluginName}}::{{contextName}} ejecutado en {{ms}}ms",
"initialize-failed": "Plugin qallariyta mana atirqanchu \"{{pluginName}}\"",
"load-all": "Llapanta cargaspa",
"load-failed": "Pluginta mana kargayta atirqanchu \"{{pluginName}}\"",
"loaded": "Plugin nisqa \"{{pluginName}}\" cargado",
"unload-failed": "Pluginta mana uraykachiyta atirqanchu \"{{pluginName}}\""
}
}
}
}

View File

@ -154,7 +154,7 @@
"label": "Titlul ferestrei personalizate",
"prompt": {
"label": "Introduceți titlul ferestrei personalizate: (lăsați gol pentru a dezactiva)",
"placeholder": "Exemplu: {{applicationName}}"
"placeholder": "Exemplu: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reporneste aplicatia",
"show": "Arata fereastra",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Mod ambiental"
},
"amuse": {
"description": "Adauga suport {{applicationName}} pentru Amuse se redă acum widget de 6K Labs",
"description": "Adauga suport Pear Desktop pentru Amuse se redă acum widget de 6K Labs",
"name": "Amuse",
"response": {
"query": "Server-ul API-ului Amuse rulează. GET /query pentru a obține informații despre melodie."
@ -373,7 +373,7 @@
"name": "Ignoră restricțiile de vârstă"
},
"captions-selector": {
"description": "Selector de subtitrări pentru piesele audio de pe {{applicationName}}",
"description": "Selector de subtitrări pentru piesele audio de pe Pear Desktop",
"menu": {
"autoload": "Selectează automat ultima subtitrare folosită",
"disable-captions": "Fără subtitrări în mod implicit"
@ -456,14 +456,14 @@
"disconnected": "Deconectat",
"hide-duration-left": "Ascunde timpul rămas",
"hide-github-button": "Ascunde butonul cu link-ul GitHub",
"play-on-application": "Redă pe {{applicationName}}",
"play-on-pear-desktop": "Redă pe Pear Desktop",
"set-inactivity-timeout": "Setează intervalul de inactivitate",
"set-status-display-type": {
"label": "Text stare",
"submenu": {
"artist": "Ascultând {artist}",
"title": "Ascultând {song title}",
"application": "Ascultând {{applicationName}}"
"pear-desktop": "Ascultând Pear Desktop"
}
}
},

View File

@ -2,13 +2,13 @@
"common": {
"console": {
"plugins": {
"execute-failed": "Ошибка при выполнении плагина {{pluginName}}::{{contextName}}",
"execute-failed": "Ошибка загрузки плагина {{pluginName}}::{{contextName}}",
"executed-at-ms": "Плагин {{pluginName}}::{{contextName}} загружен за {{ms}}мс",
"initialize-failed": "Ошибка инициализации плагина \"{{pluginName}}\"",
"load-all": "Загружаем все плагины",
"load-failed": "Ошибка загрузки плагина \"{{pluginName}}\"",
"loaded": "Плагин \"{{pluginName}}\" загружен",
"unload-failed": "Ошибка при выгрузке плагина \"{{pluginName}}\"",
"unload-failed": "Ошибка выгрузки плагина \"{{pluginName}}\"",
"unloaded": "Плагин \"{{pluginName}}\" выгружен"
}
}
@ -44,7 +44,7 @@
},
"dialog": {
"hide-menu-enabled": {
"detail": "Меню скрыто, используйте 'Alt' чтобы показать его ('Escape' если используете внутреннее меню приложения)",
"detail": "Меню скрыто, 'Alt' чтобы показать его ('Escape' если используете внутреннее меню приложения)",
"message": "Скрытие меню включено",
"title": "Включено скрытие меню"
},
@ -53,8 +53,8 @@
"later": "Позже",
"restart-now": "Перезапустить сейчас"
},
"detail": "Для вступления изменений в силу плагину \"{{pluginName}}\" требуется перезапуск",
"message": "Требуется перезапуск плагина \"{{pluginName}}\"",
"detail": "Перезапустите приложение для включения плагина {{pluginName}}",
"message": "Перезапуск для применения плагина {{pluginName}}",
"title": "Нужен перезапуск"
},
"unresponsive": {
@ -100,7 +100,7 @@
"disable-hardware-acceleration": "Отключить аппаратное ускорение",
"edit-config-json": "Редактировать config.json",
"override-user-agent": "Переопределить User-Agent",
"restart-on-config-changes": "Перезапускать при изменениях конфигурации",
"restart-on-config-changes": "Перезапускать при изменениях конфига",
"set-proxy": {
"label": "Задать прокси",
"prompt": {
@ -154,7 +154,7 @@
"label": "Собственное название окна",
"prompt": {
"label": "Введите собственное название окна: (оставьте пустым, чтобы отключить)",
"placeholder": "Например: {{applicationName}}"
"placeholder": "Например: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Перезапустить приложение",
"show": "Показать окно",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Включить тематическое оформление полосы прокрутки"
}
},
"name": "Цветовая тема альбома"
},
@ -288,7 +287,7 @@
"name": "Режим Ambient"
},
"amuse": {
"description": "Добавляет {{applicationName}} поддержку виджета Amuse „сейчас играет“ от 6K Labs",
"description": "Добавляет поддержку виджета Amuse „сейчас играет“ от 6K Labs",
"name": "Amuse",
"response": {
"query": "Сервер Amuse API запущен. GET /query чтобы получить информацию о треке."
@ -321,22 +320,6 @@
"hostname": {
"label": "Имя хоста"
},
"https": {
"label": "HTTPS и сертификаты",
"submenu": {
"cert": {
"dialogTitle": "Выберите файл сертификата HTTPS",
"label": "Файл сертификата (.crt/.pem)"
},
"enable-https": {
"label": "Включить HTTPS"
},
"key": {
"dialogTitle": "Выберите файл приватного ключа HTTPS",
"label": "Файл приватного ключа (.key/.pem)"
}
}
},
"port": {
"label": "Порт"
}
@ -390,7 +373,7 @@
"name": "Обход возрастных ограничений"
},
"captions-selector": {
"description": "Выбор субтитров для аудиотреков в {{applicationName}}",
"description": "Выбор субтитров для аудиотреков в Pear Desktop",
"menu": {
"autoload": "Автоматически выбирать последние использованные субтитры",
"disable-captions": "Без субтитров по умолчанию"
@ -473,13 +456,13 @@
"disconnected": "Отключено",
"hide-duration-left": "Скрыть сколько осталось времени",
"hide-github-button": "Скрыть ссылку на GitHub",
"play-on-application": "Воспроизвести на {{applicationName}}",
"play-on-pear-desktop": "Воспроизвести на Pear Desktop",
"set-inactivity-timeout": "Поставить таймер неактивности",
"set-status-display-type": {
"label": "Текст статуса",
"submenu": {
"application": "Слушает {{applicationName}}",
"artist": "Слушает {исполнитель}",
"pear-desktop": "Слушает Pear Desktop",
"title": "Слушает {название трека}"
}
}

View File

@ -1,12 +0,0 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Плагины толорор кыаҕа суох {{pluginName}}::{{contextName}}",
"executed-at-ms": "Плагин {{pluginName}}::{{contextName}} толоруллубут {{ms}}мс",
"initialize-failed": "\"{{pluginName}}\" плагины инициализациялааһын кыаллыбата",
"load-all": "Плагиннары загрузкалыбыт"
}
}
}
}

View File

@ -201,8 +201,8 @@
"restart": "නැවත ආරම්භ කරන්න",
"show": "තිරය පෙන්වන්න",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},

View File

@ -154,7 +154,7 @@
"label": "Vlastný názov okna",
"prompt": {
"label": "Napíšte vlastný názov okna: (nechajte prázdne pre vypnutie)",
"placeholder": "Napríklad: {{applicationName}}"
"placeholder": "Napríklad: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reštartovať aplikáciu",
"show": "Zobraziť okno",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Povoliť farebnú tému aj v seekbare"
}
},
"name": "Farebná téma albumu"
},
@ -288,7 +287,7 @@
"name": "Ambientný mód"
},
"amuse": {
"description": "Pridáva {{applicationName}} podporu pre Amuse práve prehráva widget od 6K Labs",
"description": "Pridáva Pear Desktop podporu pre Amuse práve prehráva widget od 6K Labs",
"name": "Amuse",
"response": {
"query": "Amuse API server beží. GET /query to get song info."
@ -374,7 +373,7 @@
"name": "Obísť vekové obmedzenia"
},
"captions-selector": {
"description": "Selektor titulkov pre zvukové stopy {{applicationName}}",
"description": "Selektor titulkov pre zvukové stopy Pear Desktop",
"menu": {
"autoload": "Automatický výber naposledy použitých titulkov",
"disable-captions": "Žiadne titulky"
@ -396,17 +395,6 @@
"no-captions": "Pre túto skladbu nie sú dostupné žiadne titulky"
}
},
"clock": {
"description": "Pridať hodiny do navigačnej lišty",
"menu": {
"format": {
"24-hour-format": "24-hodinový formát",
"display-seconds": "Zobraz sekundy",
"label": "Formát"
}
},
"name": "Hodiny"
},
"compact-sidebar": {
"description": "Vždy nastaviť bočný panel do kompaktného režimu",
"name": "Kompaktný bočný panel"
@ -468,13 +456,13 @@
"disconnected": "Odpojené",
"hide-duration-left": "Skryť zostávajúcu dobu trvania",
"hide-github-button": "Skryť tlačidlo s odkazom na GitHub",
"play-on-application": "Spustiť na {{applicationName}}",
"play-on-pear-desktop": "Spustiť na Pear Desktop",
"set-inactivity-timeout": "Nastaviť časový limit nečinnosti",
"set-status-display-type": {
"label": "Text stavu",
"submenu": {
"application": "Počúvať {{applicationName}}",
"artist": "Aktuálne si prehráva {artist}",
"pear-desktop": "Počúvať Pear Desktop",
"title": "Aktuálne si prehráva {song title}"
}
}

View File

@ -201,8 +201,8 @@
"restart": "Ponovni zagon",
"show": "Pokaži okno",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -335,7 +335,7 @@
"name": "Preskoči starostno omejitev"
},
"captions-selector": {
"description": "Izberi podnapise za {{applicationName}} zvočne posnetke",
"description": "Izberi podnapise za Pear Desktop zvočne posnetke",
"menu": {
"autoload": "Avtomatsko uporabi zadnje izbrane podnapise",
"disable-captions": "Avtomatsko brez podnapisov"
@ -400,7 +400,7 @@
"disconnected": "Prekinjena povezava",
"hide-duration-left": "Skrij preostali čas",
"hide-github-button": "Skrij povezavo do GitHub-a",
"play-on-application": "Predvajaj v {{applicationName}}",
"play-on-pear-desktop": "Predvajaj v Pear Desktop",
"set-inactivity-timeout": "Nastavite časovno omejitev neaktivnosti"
},
"name": "Discord bogata prisotnost (Rich Presence)",

View File

@ -3,56 +3,7 @@
"console": {
"plugins": {
"execute-failed": "Dështoi në ekzekutimin e plugin-it {{pluginName}}::{{contextName}}",
"executed-at-ms": "Shtojca {{pluginName}}::{{contextName}} u ekzekutua në {{ms}}ms",
"initialize-failed": "Dështoi ekzekutimi i plugin-it \"{{pluginName}}\"",
"load-all": "Duke ngarkuar të gjithe plugins",
"load-failed": "Dështoi në ngarkimin e plugin-it \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" u ngarkua",
"unload-failed": "Shkarkimi i plugin-it \"{{pluginName}}\" dështoi",
"unloaded": "Plugin \"{{pluginName}}\" u shkarkua"
}
}
},
"language": {
"name": "Emri i gjuhës në anglisht. p.sh. japonisht, koreanisht, anglisht, rusisht"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Ngarkimi përfundoi. DevTools u hap."
},
"i18n": {
"loaded": "i18n i ngarkuar"
},
"second-instance": {
"receive-command": "U mor komanda mbi protokollin: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Skedari CSS \"{{cssFile}}\" nuk ekziston, duke u injoruar"
},
"unresponsive": {
"details": "Gabim i Papërgjigjes!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Duke pastruar memorien e përkohshme të aplikacionit"
},
"window": {
"tried-to-render-offscreen": "Dritarja u përpoq të renderohej jashtë ekranit, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menuja është e fshehur, përdorni 'Alt' për ta shfaqur (ose 'Escape' nëse përdorni Menunë brenda aplikacionit)",
"message": "Fshehja e menusë është aktivizuar",
"title": "Fshih Menunë Aktivizuar"
},
"need-to-restart": {
"buttons": {
"later": "Më vonë",
"restart-now": "Rinisni Tani"
},
"detail": "\"{{pluginName}}\" kërkon një restart që të hyjë në fuqi",
"message": "\"{{pluginName}}\" kerkon restart"
"executed-at-ms": "Shtojca {{pluginName}}::{{contextName}} u ekzekutua në {{ms}}ms"
}
}
}

View File

@ -154,7 +154,7 @@
"label": "Prilagođeni naziv prozora",
"prompt": {
"label": "Unesite prilagođeni naslov prozora: (ostavite prazno da onemogućite)",
"placeholder": "Primer: {{applicationName}}"
"placeholder": "Primer: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Ponovo pokreni aplikaciju",
"show": "Prikaži prozor",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Omogući postavljanje teme \"seekbar\"-a"
}
},
"name": "Paleta boja albuma"
},
@ -288,7 +287,7 @@
"name": "Ambijentalni režim"
},
"amuse": {
"description": "Dodaje podršku za 'Amuse now' vidžet (6K Labs) u {{applicationName}}",
"description": "Dodaje podršku za 'Amuse now' vidžet (6K Labs) u Pear Desktop",
"name": "Zabavi",
"response": {
"query": "Amuse API server je pokrenut. Koristite GET /query da biste dobili informacije o numeri."
@ -321,22 +320,6 @@
"hostname": {
"label": "Ime host-a"
},
"https": {
"label": "HTTPS i Sertifikati",
"submenu": {
"cert": {
"dialogTitle": "Izaberi HTTPS datoteku sertifikata",
"label": "Datoteka sertifikata (.crt/.pem)"
},
"enable-https": {
"label": "Omogući HTTPS"
},
"key": {
"dialogTitle": "Izaberi HTTPS datoteku privatnog ključa",
"label": "Datoteka privatnog ključa (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -390,7 +373,7 @@
"name": "Preskoči starosna ograničenja"
},
"captions-selector": {
"description": "Odabir prevoda za numere/audio trake na {{applicationName}}",
"description": "Odabir prevoda za numere/audio trake na Pear Desktop",
"menu": {
"autoload": "Automatski odaberi prethodno odabrani prevod",
"disable-captions": "Podrazumevano bez prevoda"
@ -473,14 +456,14 @@
"disconnected": "Nije povezano",
"hide-duration-left": "Sakrij preostalo vreme",
"hide-github-button": "Sakrij dugme sa GitHub linkom",
"play-on-application": "Reprodukuj na {{applicationName}}",
"play-on-pear-desktop": "Reprodukuj na Pear Desktop",
"set-inactivity-timeout": "Podesi tajmer za neaktivnost",
"set-status-display-type": {
"label": "Tekst statusa",
"submenu": {
"application": "Slušanje {{applicationName}}",
"artist": "Slušanje {artist}",
"title": "Slušanje {song title}"
"title": "Slušanje {song title}",
"pear-desktop": "Slušanje Pear Desktop"
}
}
},

View File

@ -86,7 +86,7 @@
"copy-current-url": "Kopiera nuvarande länk",
"go-back": "Gå tillbaka",
"go-forward": "Gå framåt",
"quit": "Stäng",
"quit": "Avsluta",
"restart": "Starta om appen"
}
},
@ -154,7 +154,7 @@
"label": "Anpassad titel på fönstret",
"prompt": {
"label": "Ange anpassad fönstertitel: (lämna tomt för att inaktivera)",
"placeholder": "Exempelvis: {{applicationName}}"
"placeholder": "Exempelvis: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Starta om appen",
"show": "Visa fönster",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} {{title}}"
}
}
},
@ -237,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Aktivera temaanpassning av uppspelningsreglaget"
}
},
"name": "Albumfärgtema"
},
@ -288,7 +287,7 @@
"name": "Ambiensläge"
},
"amuse": {
"description": "Lägger till stöd för {{applicationName}} i Amuse Now Playing-widgeten av 6K Labs",
"description": "Lägger till stöd för Pear Desktop i Amuse Now Playing-widgeten av 6K Labs",
"name": "Amuse",
"response": {
"query": "Amuse API-servern körs. Använd GET /query för att hämta information om låt."
@ -321,22 +320,6 @@
"hostname": {
"label": "Värdnamn"
},
"https": {
"label": "HTTPS och certifikat",
"submenu": {
"cert": {
"dialogTitle": "Välj HTTPS-certifikatfil",
"label": "Certifikatfil (.crt/.pem)"
},
"enable-https": {
"label": "Aktivera HTTPS"
},
"key": {
"dialogTitle": "Välj privat nyckelfil (.key/.pem)",
"label": "Privat nyckelfil (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -390,7 +373,7 @@
"name": "Hoppa Över Åldersbegränsningar"
},
"captions-selector": {
"description": "Välj textning för {{applicationName}}-ljudspår",
"description": "Välj textning för Pear Desktop-ljudspår",
"menu": {
"autoload": "Välj automatiskt senast använda textning",
"disable-captions": "Ingen textning som standard"
@ -473,14 +456,14 @@
"disconnected": "Frånkopplad",
"hide-duration-left": "Dölj återstående tid",
"hide-github-button": "Dölj knapp för GitHub-länk",
"play-on-application": "Spela på {{applicationName}}",
"play-on-pear-desktop": "Spela på Pear Desktop",
"set-inactivity-timeout": "Ställ in inaktivitetstid",
"set-status-display-type": {
"label": "Statusmeddelande",
"submenu": {
"application": "Lyssnar på {{applicationName}}",
"artist": "Lyssnar på {artist}",
"title": "Lyssnar på {song title}"
"title": "Lyssnar på {song title}",
"pear-desktop": "Lyssnar på Pear Desktop"
}
}
},

View File

@ -154,7 +154,7 @@
"label": "தனிப்பயன் சாளர தலைப்பு",
"prompt": {
"label": "தனிப்பயன் சாளர தலைப்பை உள்ளிடவும்: (முடக்க காலியாக விடவும்)",
"placeholder": "எடுத்துக்காட்டு: {{applicationName}}"
"placeholder": "எடுத்துக்காட்டு: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "பயன்பாட்டை மறுதொடக்கம் செய்யுங்கள்",
"show": "சாளரத்தைக் காட்டு",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "யூடியூப் இசை",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -373,7 +373,7 @@
"name": "அகவை கட்டுப்பாடுகள் பைபாச்"
},
"captions-selector": {
"description": "{{applicationName}} இசை ஆடியோ டிராக்குகளுக்கான தலைப்பு தேர்வாளர்",
"description": "Pear Desktop இசை ஆடியோ டிராக்குகளுக்கான தலைப்பு தேர்வாளர்",
"menu": {
"autoload": "கடைசியாக பயன்படுத்தப்பட்ட தலைப்பை தானாகத் தேர்ந்தெடுக்கவும்",
"disable-captions": "முன்னிருப்பாக தலைப்புகள் இல்லை"
@ -456,13 +456,13 @@
"disconnected": "துண்டிக்கப்பட்டது",
"hide-duration-left": "காலம் மீதமுள்ளதை மறைக்கவும்",
"hide-github-button": "அறிவிலிமையம் இணைப்பு பொத்தானை மறைக்கவும்",
"play-on-application": "யூடியூப் இசையில் விளையாடுங்கள்",
"play-on-pear-desktop": "யூடியூப் இசையில் விளையாடுங்கள்",
"set-inactivity-timeout": "செயலற்ற நேரம் முடிந்தது",
"set-status-display-type": {
"label": "நிலை உரை",
"submenu": {
"application": "வலையொளி இசையில் கேட்கிறது",
"artist": "{கலைஞர்} பாடலைக் கேட்கிறேன்",
"pear-desktop": "வலையொளி இசையில் கேட்கிறது",
"title": "பாடலைக் கேட்கிறேன்{பாடல் தலைப்பு}"
}
}

View File

@ -1,59 +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": "te",
"local-name": "తెలుగు",
"name": "Telugu"
},
"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' ఉపయోగించండి (లేదా ఒకవేళ In-App Menu ఉపయోగిస్తుంటే 'Escape' ఉపయోగించండి)",
"message": "Hide Menu ఎనేబుల్ చేయబడింది",
"title": "Hide Menu ఎనేబుల్ అయిపోయింది"
},
"need-to-restart": {
"buttons": {
"later": "తర్వాత",
"restart-now": "ఇప్పుడే రీస్టార్ట్ చేయండి"
}
}
}
}
}

View File

@ -154,7 +154,7 @@
"label": "ชื่อหน้าต่างกำหนดเอง",
"prompt": {
"label": "กำหนดชื่อหน้าต่างที่ต้องการ: (ปล่อยว่างเพื่อปิดใช้งาน)",
"placeholder": "ตัวอย่าง: {{applicationName}}"
"placeholder": "ตัวอย่าง: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "รีสตาร์ตแอป",
"show": "แสดงหน้าต่าง",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "โหมดสภาพแวดล้อม"
},
"amuse": {
"description": "เพิ่มการรองรับ {{applicationName}} สำหรับ Widget Amuse Now Playing ของ 6K Labs",
"description": "เพิ่มการรองรับ Pear Desktop สำหรับ Widget Amuse Now Playing ของ 6K Labs",
"name": "Amuse",
"response": {
"query": "API Server ของ Amuse ทำงานอยู่ ส่ง GET ไปที่ /query เพื่อขอข้อมูลเกี่ยวกับเพลง"
@ -373,7 +373,7 @@
"name": "ข้ามข้อจำกัดอายุ"
},
"captions-selector": {
"description": "ตัวเลือกคำบรรยายสำหรับเพลงใน {{applicationName}}",
"description": "ตัวเลือกคำบรรยายสำหรับเพลงใน Pear Desktop",
"menu": {
"autoload": "เลือกคำบรรยายที่ใช้ครั้งล่าสุดโดยอัตโนมัติ",
"disable-captions": "ไม่มีคำบรรยายเป็นค่าเริ่มต้น"
@ -456,14 +456,14 @@
"disconnected": "ตัดการเชื่อมต่อ",
"hide-duration-left": "ซ่อนระยะเวลาที่เหลือ",
"hide-github-button": "ซ่อนปุ่มลิงก์ GitHub",
"play-on-application": "เล่นบน {{applicationName}}",
"play-on-pear-desktop": "เล่นบน Pear Desktop",
"set-inactivity-timeout": "ตั้งระยะเวลาไม่มีกิจกรรม",
"set-status-display-type": {
"label": "ข้อความสถานะ",
"submenu": {
"artist": "กำลังฟัง {ชื่อนักร้อง}",
"title": "กำลังฟัง {ชื่อเพลง}",
"application": "กำลังฟัง {{applicationName}}"
"pear-desktop": "กำลังฟัง Pear Desktop"
}
}
},

View File

@ -53,9 +53,9 @@
"later": "Daha Sonra",
"restart-now": "Şimdi yeniden başlat"
},
"detail": "\"{{pluginName}}\" eklentisinin çalışması için uygulamanın yeniden başlatılması gerekiyor",
"message": "\"{{pluginName}}\" eklentisi için uygulamanın yeniden başlatılması gerekiyor",
"title": "Uygulamanın yeniden başlatılması gerekiyor"
"detail": "\"{{pluginName}}\" eklentisinin çalışabilmesi için yeniden başlatman gerekiyor",
"message": "\"{{pluginName}}\" için yeniden başlatman gerekiyor",
"title": "Uygulamayı yeniden başlatman gerekiyor"
},
"unresponsive": {
"buttons": {
@ -154,15 +154,14 @@
"label": "Özel pencere başlığı",
"prompt": {
"label": "Özel pencere başlığı girin: (devre dışı bırakmak için boş bırakın)",
"placeholder": "Örnek: {{applicationName}}"
"placeholder": "Örnek: Pear Desktop"
}
},
"like-buttons": {
"default": "Varsayılan",
"force-show": "Zorla göster",
"hide": "Gizle",
"label": "Beğenme düğmeleri",
"swap": "Beğenme butonlarının sıralamasını değiştir"
"label": "Beğenme düğmeleri"
},
"remove-upgrade-button": "Yükseltme düğmesini kaldır",
"theme": {
@ -209,8 +208,8 @@
"restart": "Yeniden başlat",
"show": "Pencereyi görüntüle",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -238,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Arama çubuğu temalarını etkinleştir"
}
},
"name": "Albüm Renk Teması"
},
@ -289,7 +287,7 @@
"name": "Ambiyans Modu"
},
"amuse": {
"description": "6K Labs'ın Amuse oynatma widget'ı için {{applicationName}} desteği ekler",
"description": "6K Labs'ın Amuse oynatma widget'ı için Pear Desktop desteği ekler",
"name": "Amuse",
"response": {
"query": "Amuse API sunucusu çalışıyor. Şarkı bilgilerini almak için GET /query kullanabilirsiniz."
@ -322,22 +320,6 @@
"hostname": {
"label": "Ana bilgisayar adı"
},
"https": {
"label": "HTTPS & Sertifikalar",
"submenu": {
"cert": {
"dialogTitle": "HTTPS sertifika dosyası seç",
"label": "Sertifika dosyası (.crt/.pem)"
},
"enable-https": {
"label": "HTTPS'i aktifleştir"
},
"key": {
"dialogTitle": "HTTPS özel anahtar dosyası seç",
"label": "Özel anahtar dosyası (.key/.pem)"
}
}
},
"port": {
"label": "Port"
}
@ -391,7 +373,7 @@
"name": "Yaş doğrulamasını atla"
},
"captions-selector": {
"description": "{{applicationName}} için altyazı seçici",
"description": "Pear Desktop için altyazı seçici",
"menu": {
"autoload": "Son kullanılan altyazıyı otomatik olarak seç",
"disable-captions": "Varsayılan olarak altyazı yok"
@ -413,17 +395,6 @@
"no-captions": "Bu şarkı için altyazı mevcut değil"
}
},
"clock": {
"description": "Navigasyon barına bir saat ekle",
"menu": {
"format": {
"24-hour-format": "24-Saat Formatı, Biçimi",
"display-seconds": "Saniyeleri göster",
"label": "Format, Biçim"
}
},
"name": "Saat"
},
"compact-sidebar": {
"description": "Her zaman kompakt kenar çubugu",
"name": "Kompakt Kenar Çubuğu"
@ -485,14 +456,14 @@
"disconnected": "Bağlantı kesildi",
"hide-duration-left": "Kalan süreyi gizle",
"hide-github-button": "GitHub bağlantısını gizle",
"play-on-application": "{{applicationName}} de oynat",
"play-on-pear-desktop": "Pear Desktop de oynat",
"set-inactivity-timeout": "Hareketsizlik zaman aşımını ayarla",
"set-status-display-type": {
"label": "Durum metni",
"submenu": {
"application": "{{applicationName}} Dinleniyor",
"artist": "{artist} Dinleniyor",
"title": "{song title} Dinleniyor"
"title": "{song title} Dinleniyor",
"pear-desktop": "Pear Desktop Dinleniyor"
}
}
},
@ -842,24 +813,6 @@
"not-found": "⚠️ Bu şarkı için şarkı sözleri bulunamadı."
},
"menu": {
"convert-chinese-character": {
"label": "Çince karakterleri çevir",
"submenu": {
"disabled": {
"label": "Devre dışı bırak",
"tooltip": "Çince karakterleri çevirmeyi devre dışı bırak"
},
"simplified-to-traditional": {
"label": "Basitleştirilmişten Geleneksele",
"tooltip": "Basitleştirilmiş Ç*nceyi Geleneksel Ç*nceye Çevir"
},
"traditional-to-simplified": {
"label": "Gelenekselden Basitleştirilmişe",
"tooltip": "Geleneksel Çince'yi Basitleştirilmiş Çince'ye dönüştür"
}
},
"tooltip": "Çince karakterleri Geleneksel veya Basitleştirilmiş Çinceye dönüştür"
},
"default-text-string": {
"label": "Şarkı sözleri arasında varsayılan karakter",
"tooltip": "Şarkı sözleri arasındaki boşluk için kullanılacak varsayılan karakteri seçin"

View File

@ -154,7 +154,7 @@
"label": "Налаштування заголовка вікна",
"prompt": {
"label": "Введіть власний заголовок вікна: (залиште порожнім, щоб вимкнути)",
"placeholder": "Приклад: {{applicationName}}"
"placeholder": "Приклад: Pear Desktop"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Перезапустити програму",
"show": "Показати вікно",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Режим навколишнього середовища"
},
"amuse": {
"description": "Додає підтримку {{applicationName}} для віджета Amuse now playing від 6K Labs",
"description": "Додає підтримку Pear Desktop для віджета Amuse now playing від 6K Labs",
"name": "Amuse",
"response": {
"query": "Сервер Amuse API запущено. Запит GET /query для отримання інформації про пісню."
@ -373,7 +373,7 @@
"name": "Обхід вікових обмежень"
},
"captions-selector": {
"description": "Вибір субтитрів для аудіодоріжок {{applicationName}}",
"description": "Вибір субтитрів для аудіодоріжок Pear Desktop",
"menu": {
"autoload": "Автоматичний вибір останніх використаних субтитрів",
"disable-captions": "За замовчуванням субтитри відсутні"
@ -456,13 +456,13 @@
"disconnected": "Від'єднано",
"hide-duration-left": "Приховати тривалість, яка залишилася",
"hide-github-button": "Приховати посилання на GitHub",
"play-on-application": "Слухати на {{applicationName}}",
"play-on-pear-desktop": "Слухати на Pear Desktop",
"set-inactivity-timeout": "Встановити тайм-аут бездіяльності",
"set-status-display-type": {
"label": "Статус",
"submenu": {
"artist": "Ви слухаєте {artist}",
"application": "Відтворення з {{applicationName}}",
"pear-desktop": "Відтворення з Pear Desktop",
"title": "Ви слухаєте {song title}"
}
}

View File

@ -154,15 +154,14 @@
"label": "Tiêu đề cửa sổ tùy chỉnh",
"prompt": {
"label": "Nhập tiêu đề cửa sổ tùy chỉnh: (để trống để vô hiệu hóa)",
"placeholder": "Ví dụ: {{applicationName}}"
"placeholder": "Ví dụ: Pear Desktop"
}
},
"like-buttons": {
"default": "Mặc định",
"force-show": "Tập trung hiển thị",
"hide": "Ẩn",
"label": "Nút thích",
"swap": "Hoán đổi thứ tự nút Thích"
"label": "Nút thích"
},
"remove-upgrade-button": "Xóa nút nâng cấp",
"theme": {
@ -209,8 +208,8 @@
"restart": "Khởi động lại ứng dụng",
"show": "Hiện cửa sổ",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{title}} - {{artist}}"
}
}
},
@ -238,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Bật tùy chỉnh giao diện cho thanh trượt"
}
},
"name": "Màu nền album"
},
@ -289,7 +287,7 @@
"name": "Chế độ Môi trường xung quanh"
},
"amuse": {
"description": "Thêm hỗ trợ {{applicationName}} cho tiện ích hiển thị bài hát đang phát Amuse của 6K Labs",
"description": "Thêm hỗ trợ Pear Desktop cho tiện ích hiển thị bài hát đang phát Amuse của 6K Labs",
"name": "Amuse",
"response": {
"query": "Máy chủ API của Amuse đang chạy. GET /query để lấy thông tin về bài hát."
@ -322,22 +320,6 @@
"hostname": {
"label": "Tên máy chủ"
},
"https": {
"label": "HTTPS & Chứng chỉ",
"submenu": {
"cert": {
"dialogTitle": "Chọn tệp chứng chỉ HTTPS",
"label": "Tệp chứng chỉ (.crt/.pem)"
},
"enable-https": {
"label": "Bật HTTPS"
},
"key": {
"dialogTitle": "Chọn tệp khóa riêng HTTPS",
"label": "Tệp khóa riêng (.key/.pem)"
}
}
},
"port": {
"label": "Cổng"
}
@ -391,7 +373,7 @@
"name": "Bỏ qua hạn chế độ tuổi"
},
"captions-selector": {
"description": "Bộ lựa chọn phụ đề cho các bài hát trên {{applicationName}}",
"description": "Bộ lựa chọn phụ đề cho các bài hát trên Pear Desktop",
"menu": {
"autoload": "Tự động chọn phụ đề vừa sử dụng",
"disable-captions": "Không có phụ đề làm mặc định"
@ -413,17 +395,6 @@
"no-captions": "Không có phụ đề nào cho bài hát này"
}
},
"clock": {
"description": "Thêm đồng hồ vào thanh điều hướng",
"menu": {
"format": {
"24-hour-format": "Định dạng 24h",
"display-seconds": "Hiển thị giây",
"label": "Định dạng"
}
},
"name": "Đồng hồ"
},
"compact-sidebar": {
"description": "Luôn đặt thanh bên ở chế độ thu gọn",
"name": "Thanh bên thu gọn"
@ -485,14 +456,14 @@
"disconnected": "Đã ngắt kết nối",
"hide-duration-left": "Ẩn thời lượng còn lại",
"hide-github-button": "Ẩn nút liên kết GitHub",
"play-on-application": "Phát trong {{applicationName}}",
"play-on-pear-desktop": "Phát trong Pear Desktop",
"set-inactivity-timeout": "Đặt thời gian chờ không hoạt động",
"set-status-display-type": {
"label": "Văn bản trạng thái",
"submenu": {
"application": "Đang nghe {{applicationName}}",
"artist": "Đang nghe nhạc của {artist}",
"title": "Đang nghe nhạc {song title}"
"title": "Đang nghe nhạc {song title}",
"pear-desktop": "Đang nghe Pear Desktop"
}
}
},
@ -842,24 +813,6 @@
"not-found": "⚠️ Không tìm thấy lời cho bài hát này."
},
"menu": {
"convert-chinese-character": {
"label": "Chuyển đổi kí tự tiếng Trung",
"submenu": {
"disabled": {
"label": "Vô hiệu hóa",
"tooltip": "Vô hiệu hóa chuyển đổi kí tự tiếng Trung"
},
"simplified-to-traditional": {
"label": "Giản thể sang Phồn thể",
"tooltip": "Chuyển đổi tiếng Trung Giản thể sang tiếng Trung Phồn thể"
},
"traditional-to-simplified": {
"label": "Phồn thể sang Giản thể",
"tooltip": "Chuyển đổi tiếng Trung Phồn thể sang tiếng Trung Giản thể"
}
},
"tooltip": "Chuyển đổi kí tự tiếng Trung sang Phồn thể hoặc Giản thể"
},
"default-text-string": {
"label": "Kí tự giữa các lời bài hát",
"tooltip": "Chọn kí tự mặc định cho khoảng trống giữa các lời bài hát"

View File

@ -154,15 +154,14 @@
"label": "自定义窗口标题",
"prompt": {
"label": "输入自定义窗口标题:(留空表示停用)",
"placeholder": "示例:{{applicationName}}"
"placeholder": "示例:Pear Desktop"
}
},
"like-buttons": {
"default": "默认",
"force-show": "强制显示",
"hide": "隐藏",
"label": "点赞按钮",
"swap": "交换“点赞”按钮顺序"
"label": "点赞按钮"
},
"remove-upgrade-button": "移除升级按钮",
"theme": {
@ -209,8 +208,8 @@
"restart": "重启应用",
"show": "显示窗口",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -289,7 +288,7 @@
"name": "沉浸模式"
},
"amuse": {
"description": "为 6K Labs 的 Amuse 正在播放小部件添加 {{applicationName}} 支持",
"description": "为 6K Labs 的 Amuse 正在播放小部件添加 Pear Desktop 支持",
"name": "Amuse",
"response": {
"query": "Amuse API服务器已在运行。使用 /query 以获取歌曲信息。"
@ -322,22 +321,6 @@
"hostname": {
"label": "主机名"
},
"https": {
"label": "HTTPS & 数字证书",
"submenu": {
"cert": {
"dialogTitle": "选择 HTTPS 证书文件",
"label": "证书文件(.crt/.pem"
},
"enable-https": {
"label": "启用 HTTPS"
},
"key": {
"dialogTitle": "选择 HTTPS 私钥文件",
"label": "私钥文件(.key/.pem"
}
}
},
"port": {
"label": "端口号"
}
@ -391,7 +374,7 @@
"name": "绕过年龄验证"
},
"captions-selector": {
"description": "{{applicationName}} 音轨字幕选择器",
"description": "Pear Desktop 音轨字幕选择器",
"menu": {
"autoload": "自动选择上次使用的字幕",
"disable-captions": "默认无字幕"
@ -413,17 +396,6 @@
"no-captions": "这首歌没有字幕"
}
},
"clock": {
"description": "添加时钟到导航栏",
"menu": {
"format": {
"24-hour-format": "24 小时格式",
"display-seconds": "显示秒数",
"label": "格式"
}
},
"name": "时钟"
},
"compact-sidebar": {
"description": "始终将侧边栏设为紧凑模式",
"name": "紧凑式侧边栏"
@ -485,13 +457,13 @@
"disconnected": "已断开连接",
"hide-duration-left": "隐藏剩余时长",
"hide-github-button": "隐藏 GitHub 链接按钮",
"play-on-application": "转至 {{applicationName}} 播放",
"play-on-pear-desktop": "转至 Pear Desktop 播放",
"set-inactivity-timeout": "设置非活跃时长",
"set-status-display-type": {
"label": "状态文本",
"submenu": {
"application": "在听 {{applicationName}}",
"artist": "在听 {artist}",
"pear-desktop": "在听 Pear Desktop",
"title": "在听 {song title}"
}
}
@ -842,24 +814,6 @@
"not-found": "⚠️ 未找到此歌曲的歌词。"
},
"menu": {
"convert-chinese-character": {
"label": "转换中文字符",
"submenu": {
"disabled": {
"label": "已停用",
"tooltip": "禁用中文字符转换"
},
"simplified-to-traditional": {
"label": "简体到繁体",
"tooltip": "转换简体中文到繁体中文"
},
"traditional-to-simplified": {
"label": "繁体到简体",
"tooltip": "转换繁体中文到简体中文"
}
},
"tooltip": "转换简繁体中文字符"
},
"default-text-string": {
"label": "默认的歌词行间字符",
"tooltip": "选择在歌词间隙期间默认显示的字符"

View File

@ -154,15 +154,14 @@
"label": "自訂窗口標題",
"prompt": {
"label": "輸入自訂視窗標題: (留空將其停用)",
"placeholder": "例如: {{applicationName}}"
"placeholder": "例如: Pear Desktop"
}
},
"like-buttons": {
"default": "預設",
"force-show": "強制顯示",
"hide": "隱藏",
"label": "按讚按鈕",
"swap": "交換讚及倒讚的按鈕位置"
"label": "按讚按鈕"
},
"remove-upgrade-button": "移除升級按鈕",
"theme": {
@ -209,8 +208,8 @@
"restart": "重新啟動應用程式",
"show": "顯示視窗",
"tooltip": {
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
"default": "Pear Desktop",
"with-song-info": "Pear Desktop: {{artist}} - {{title}}"
}
}
},
@ -238,8 +237,7 @@
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "啟用進度條主題樣式"
}
},
"name": "隨歌曲色調變更主題"
},
@ -289,7 +287,7 @@
"name": "微光效果"
},
"amuse": {
"description": "加入支援 6K Labs 的 Amuse OBS 外掛以取得 {{applicationName}} 現正播放資訊",
"description": "加入支援 6K Labs 的 Amuse OBS 外掛以取得 Pear Desktop 現正播放資訊",
"name": "Amuse",
"response": {
"query": "Amuse API 伺服器正在運作中,使用 /query 以取得歌曲資訊。"
@ -322,22 +320,6 @@
"hostname": {
"label": "主機名稱"
},
"https": {
"label": "HTTPS 及 憑證",
"submenu": {
"cert": {
"dialogTitle": "選擇憑證檔案",
"label": "憑證檔案(.crt/.pem"
},
"enable-https": {
"label": "啟用 HTTPS"
},
"key": {
"dialogTitle": "選擇私人金鑰檔案",
"label": "私人金鑰檔案(.key/.pem"
}
}
},
"port": {
"label": "連接埠"
}
@ -391,7 +373,7 @@
"name": "繞過年齡驗證"
},
"captions-selector": {
"description": "{{applicationName}} 音軌字幕選項",
"description": "Pear Desktop 音軌字幕選項",
"menu": {
"autoload": "自動選擇上次使用的字幕",
"disable-captions": "預設無字幕"
@ -413,17 +395,6 @@
"no-captions": "該首歌曲無可用的字幕"
}
},
"clock": {
"description": "新增時鐘至應用程式上方",
"menu": {
"format": {
"24-hour-format": "24 小時制",
"display-seconds": "顯示秒數",
"label": "時間格式"
}
},
"name": "時鐘"
},
"compact-sidebar": {
"description": "永遠讓側邊欄保持收合狀態",
"name": "收合側邊欄"
@ -485,13 +456,13 @@
"disconnected": "已斷開連線",
"hide-duration-left": "隱藏音樂剩餘時間狀態",
"hide-github-button": "隱藏 GitHub 頁面按鈕",
"play-on-application": "顯示 Play on {{applicationName}} 按鈕",
"play-on-pear-desktop": "顯示 Play on Pear Desktop 按鈕",
"set-inactivity-timeout": "設定閒置狀態時長",
"set-status-display-type": {
"label": "狀態樣式",
"submenu": {
"application": "正在聆聽 {{applicationName}}",
"artist": "正在聆聽 {artist} 的歌曲",
"pear-desktop": "正在聆聽 Pear Desktop",
"title": "正在聆聽 {song title}"
}
}
@ -842,24 +813,6 @@
"not-found": "⚠️未找到該首歌曲的歌詞。"
},
"menu": {
"convert-chinese-character": {
"label": "繁簡轉換",
"submenu": {
"disabled": {
"label": "已停用",
"tooltip": "停用繁簡轉換"
},
"simplified-to-traditional": {
"label": "簡體轉繁體",
"tooltip": "轉換簡體中文至繁體中文"
},
"traditional-to-simplified": {
"label": "繁體轉簡體",
"tooltip": "轉換繁體中文至簡體中文"
}
},
"tooltip": "轉換中文字符至繁體或簡體"
},
"default-text-string": {
"label": "預設歌詞中間隔的符號",
"tooltip": "選擇歌詞中間隔要使用的符號"

View File

@ -14,8 +14,7 @@ import {
protocol,
type BrowserWindowConstructorOptions,
} from 'electron';
import {
enhanceWebRequest,
import enhanceWebRequest, {
type BetterSession,
} from '@jellybrick/electron-better-web-request';
import is from 'electron-is';
@ -54,7 +53,7 @@ import {
} from '@/loader/main';
import { LoggerPrefix } from '@/utils';
import { APPLICATION_NAME, loadI18n, setLanguage, t } from '@/i18n';
import { loadI18n, setLanguage, t } from '@/i18n';
import ErrorHtmlAsset from '@assets/error.html?asset';
@ -105,6 +104,11 @@ protocol.registerSchemesAsPrivileged([
{ scheme: 'mailto', privileges: { standard: true } },
]);
// https://github.com/electron/electron/issues/46538#issuecomment-2808806722
if (is.linux()) {
app.commandLine.appendSwitch('gtk-version', '3');
}
// Ozone platform hint: Required for Wayland support
app.commandLine.appendSwitch('ozone-platform-hint', 'auto');
// SharedArrayBuffer: Required for downloader (@ffmpeg/core-mt)
@ -127,9 +131,7 @@ if (config.get('options.disableHardwareAcceleration')) {
if (is.linux()) {
// Overrides WM_CLASS for X11 to correspond to icon filename
app.setName(
'com.github.th_ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u005f\u006d\u0075\u0073\u0069\u0063',
);
app.setName('com.github.th_ch.pear_music');
// Stops chromium from launching its own MPRIS service
if (await config.plugins.isEnabled('shortcuts')) {
@ -165,9 +167,9 @@ electronDebug({
let icon = 'assets/icon.png';
if (process.platform === 'win32') {
icon = 'assets/generated/icons/win/icon.ico';
icon = 'assets/generated/icon.ico';
} else if (process.platform === 'darwin') {
icon = 'assets/generated/icons/mac/icon.icns';
icon = 'assets/generated/icon.icns';
}
function onClosed() {
@ -661,8 +663,7 @@ app.whenReady().then(async () => {
// Register appID on windows
if (is.windows()) {
const appID =
'com.github.th-ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u002d\u006d\u0075\u0073\u0069\u0063';
const appID = 'com.github.th-ch.pear-music';
app.setAppUserModelId(appID);
const appLocation = process.execPath;
const appData = app.getPath('appData');
@ -677,7 +678,7 @@ app.whenReady().then(async () => {
'Windows',
'Start Menu',
'Programs',
`${APPLICATION_NAME}.lnk`,
'Pear Desktop.lnk',
);
try {
// Check if shortcut is registered and valid
@ -697,7 +698,7 @@ app.whenReady().then(async () => {
{
target: appLocation,
cwd: path.dirname(appLocation),
description: `${APPLICATION_NAME} Desktop App - including custom plugins`,
description: 'Pear Desktop App - including custom plugins',
appUserModelId: appID,
},
);

View File

@ -22,7 +22,7 @@ import { startingPages } from './providers/extracted-data';
import promptOptions from './providers/prompt-options';
import { getAllMenuTemplate, loadAllMenuPlugins } from './loader/menu';
import { APPLICATION_NAME, setLanguage, t } from '@/i18n';
import { setLanguage, t } from '@/i18n';
import packageJson from '../package.json';
@ -235,9 +235,6 @@ export const mainMenuTemplate = async (
type: 'text',
placeholder: t(
'main.menu.options.submenu.visual-tweaks.submenu.custom-window-title.prompt.placeholder',
{
applicationName: APPLICATION_NAME,
},
),
},
width: 500,
@ -285,19 +282,6 @@ export const mainMenuTemplate = async (
config.set('options.likeButtons', 'hide');
},
},
{
label: t(
'main.menu.options.submenu.visual-tweaks.submenu.like-buttons.swap',
),
type: 'checkbox',
checked: config.get('options.swapLikeButtonsOrder'),
click(item: MenuItem) {
config.setMenuOption(
'options.swapLikeButtonsOrder',
item.checked,
);
},
},
],
},
{

View File

@ -1,6 +1,6 @@
import { createPlugin } from '@/utils';
import backend from './backend';
import { APPLICATION_NAME, t } from '@/i18n';
import { t } from '@/i18n';
export interface MusicWidgetConfig {
enabled: boolean;
@ -12,10 +12,7 @@ export const defaultConfig: MusicWidgetConfig = {
export default createPlugin({
name: () => t('plugins.amuse.name'),
description: () =>
t('plugins.amuse.description', {
applicationName: APPLICATION_NAME,
}),
description: () => t('plugins.amuse.description'),
addedVersion: '3.7.X',
restartNeeded: true,
config: defaultConfig,

View File

@ -1,7 +1,3 @@
import { createServer as createHttpServer } from 'node:http';
import { createServer as createHttpsServer } from 'node:https';
import { readFileSync } from 'node:fs';
import { jwt } from 'hono/jwt';
import { OpenAPIHono as Hono } from '@hono/zod-openapi';
import { cors } from 'hono/cors';
@ -15,8 +11,6 @@ import { createBackend } from '@/utils';
import { JWTPayloadSchema } from './scheme';
import { registerAuth, registerControl, registerWebsocket } from './routes';
import { APPLICATION_NAME } from '@/i18n';
import { type APIServerConfig, AuthStrategy } from '../config';
import type { BackendType } from './types';
@ -54,26 +48,22 @@ export const backend = createBackend<BackendType, APIServerConfig>({
(newVolumeState: VolumeState) => (this.volumeState = newVolumeState),
);
this.run(config);
this.run(config.hostname, config.port);
},
stop() {
this.end();
},
onConfigChange(config) {
const old = this.oldConfig;
if (
old?.hostname === config.hostname &&
old?.port === config.port &&
old?.useHttps === config.useHttps &&
old?.certPath === config.certPath &&
old?.keyPath === config.keyPath
this.oldConfig?.hostname === config.hostname &&
this.oldConfig?.port === config.port
) {
this.oldConfig = config;
return;
}
this.end();
this.run(config);
this.run(config.hostname, config.port);
this.oldConfig = config;
},
@ -148,7 +138,7 @@ export const backend = createBackend<BackendType, APIServerConfig>({
openapi: '3.1.0',
info: {
version: '1.0.0',
title: `${APPLICATION_NAME} API Server`,
title: 'Pear Desktop API Server',
description:
'Note: You need to get an access token using the `/auth/{id}` endpoint first to call any API endpoints under `/api`.',
},
@ -163,30 +153,15 @@ export const backend = createBackend<BackendType, APIServerConfig>({
this.injectWebSocket = ws.injectWebSocket.bind(this);
},
run(config) {
run(hostname, port) {
if (!this.app) return;
try {
const serveOptions =
config.useHttps && config.certPath && config.keyPath
? {
fetch: this.app.fetch.bind(this.app),
port: config.port,
hostname: config.hostname,
createServer: createHttpsServer,
serverOptions: {
key: readFileSync(config.keyPath),
cert: readFileSync(config.certPath),
},
}
: {
fetch: this.app.fetch.bind(this.app),
port: config.port,
hostname: config.hostname,
createServer: createHttpServer,
};
this.server = serve(serveOptions);
this.server = serve({
fetch: this.app.fetch.bind(this.app),
port,
hostname,
});
if (this.injectWebSocket && this.server) {
this.injectWebSocket(this.server);

View File

@ -411,26 +411,6 @@ const routes = {
},
},
}),
nextSongInfo: createRoute({
method: 'get',
path: `/api/${API_VERSION}/queue/next`,
summary: 'get next song info',
description:
'Get information about the next song in the queue (relative index +1)',
responses: {
200: {
description: 'Success',
content: {
'application/json': {
schema: SongInfoSchema,
},
},
},
204: {
description: 'No next song in queue',
},
},
}),
queueInfo: createRoute({
method: 'get',
path: `/api/${API_VERSION}/queue`,
@ -768,63 +748,6 @@ export const register = (
app.openapi(routes.oldQueueInfo, queueInfo);
app.openapi(routes.queueInfo, queueInfo);
app.openapi(routes.nextSongInfo, async (ctx) => {
const queueResponsePromise = new Promise<QueueResponse>((resolve) => {
ipcMain.once('peard:get-queue-response', (_, queue: QueueResponse) => {
return resolve(queue);
});
controller.requestQueueInformation();
});
const queue = await queueResponsePromise;
if (!queue?.items || queue.items.length === 0) {
ctx.status(204);
return ctx.body(null);
}
// Find the currently selected song
const currentIndex = queue.items.findIndex((item) => {
const renderer =
item.playlistPanelVideoRenderer ||
item.playlistPanelVideoWrapperRenderer?.primaryRenderer
?.playlistPanelVideoRenderer;
return renderer?.selected === true;
});
// Get the next song (currentIndex + 1)
const nextIndex = currentIndex + 1;
if (nextIndex >= queue.items.length) {
// No next song available
ctx.status(204);
return ctx.body(null);
}
const nextItem = queue.items[nextIndex];
const nextRenderer =
nextItem.playlistPanelVideoRenderer ||
nextItem.playlistPanelVideoWrapperRenderer?.primaryRenderer
?.playlistPanelVideoRenderer;
if (!nextRenderer) {
ctx.status(204);
return ctx.body(null);
}
// Extract relevant information similar to SongInfo format
const nextSongInfo = {
title: nextRenderer.title?.runs?.[0]?.text,
videoId: nextRenderer.videoId,
thumbnail: nextRenderer.thumbnail,
lengthText: nextRenderer.lengthText,
shortBylineText: nextRenderer.shortBylineText,
};
ctx.status(200);
return ctx.json(nextSongInfo);
});
app.openapi(routes.addSongToQueue, (ctx) => {
const { videoId, insertPosition } = ctx.req.valid('json');
controller.addSongToQueue(videoId, insertPosition);

View File

@ -17,6 +17,6 @@ export type BackendType = {
injectWebSocket?: (server: ReturnType<typeof serve>) => void;
init: (ctx: BackendContext<APIServerConfig>) => void;
run: (config: APIServerConfig) => void;
run: (hostname: string, port: number) => void;
end: () => void;
};

View File

@ -11,9 +11,6 @@ export interface APIServerConfig {
secret: string;
authorizedClients: string[];
useHttps: boolean;
certPath: string;
keyPath: string;
}
export const defaultAPIServerConfig: APIServerConfig = {
@ -24,7 +21,4 @@ export const defaultAPIServerConfig: APIServerConfig = {
secret: Date.now().toString(36),
authorizedClients: [],
useHttps: false,
certPath: '',
keyPath: '',
};

View File

@ -1,4 +1,3 @@
import { dialog } from 'electron';
import prompt from 'custom-electron-prompt';
import { t } from '@/i18n';
@ -94,51 +93,5 @@ export const onMenu = async ({
},
],
},
{
label: t('plugins.api-server.menu.https.label'),
type: 'submenu',
submenu: [
{
label: t('plugins.api-server.menu.https.submenu.enable-https.label'),
type: 'checkbox',
checked: config.useHttps,
click(menuItem) {
setConfig({ ...config, useHttps: menuItem.checked });
},
},
{
label: t('plugins.api-server.menu.https.submenu.cert.label'),
type: 'normal',
async click() {
const config = await getConfig();
const result = await dialog.showOpenDialog(window, {
title: t(
'plugins.api-server.menu.https.submenu.cert.dialogTitle',
),
filters: [{ name: 'Certificate', extensions: ['crt', 'pem'] }],
properties: ['openFile'],
});
if (!result.canceled && result.filePaths.length > 0) {
setConfig({ ...config, certPath: result.filePaths[0] });
}
},
},
{
label: t('plugins.api-server.menu.https.submenu.key.label'),
type: 'normal',
async click() {
const config = await getConfig();
const result = await dialog.showOpenDialog(window, {
title: t('plugins.api-server.menu.https.submenu.key.dialogTitle'),
filters: [{ name: 'Private Key', extensions: ['key', 'pem'] }],
properties: ['openFile'],
});
if (!result.canceled && result.filePaths.length > 0) {
setConfig({ ...config, keyPath: result.filePaths[0] });
}
},
},
],
},
];
};

View File

@ -1,5 +1,5 @@
import { createPlugin } from '@/utils';
import { APPLICATION_NAME, t } from '@/i18n';
import { t } from '@/i18n';
import backend from './back';
import renderer, {
@ -22,10 +22,7 @@ export default createPlugin<
CaptionsSelectorConfig
>({
name: () => t('plugins.captions-selector.name'),
description: () =>
t('plugins.captions-selector.description', {
applicationName: APPLICATION_NAME,
}),
description: () => t('plugins.captions-selector.description'),
config: {
enabled: false,
disableCaptions: false,

View File

@ -1,109 +0,0 @@
import { render } from 'solid-js/web';
import { createSignal, onMount } from 'solid-js';
import style from './style.css?inline';
import { createPlugin } from '@/utils';
import { type MenuTemplate } from '@/menu';
import { t } from '@/i18n';
import { type ClockPluginConfig } from './types';
const defaultConfig: ClockPluginConfig = {
enabled: false,
displaySeconds: false,
hour12: false,
};
export default createPlugin({
name: () => t('plugins.clock.name'),
description: () => t('plugins.clock.description'),
restartNeeded: false,
config: defaultConfig,
stylesheets: [style],
menu: async ({ getConfig, setConfig }): Promise<MenuTemplate> => {
const config = await getConfig();
return [
{
label: t('plugins.clock.menu.format.label'),
submenu: [
{
label: t('plugins.clock.menu.format.display-seconds'),
type: 'checkbox',
checked: config.displaySeconds,
click(item) {
setConfig({ displaySeconds: item.checked });
},
},
{
label: t('plugins.clock.menu.format.24-hour-format'),
type: 'checkbox',
checked: !config.hour12,
click(item) {
setConfig({ hour12: !item.checked });
},
},
],
},
];
},
renderer: {
displaySeconds: defaultConfig.displaySeconds,
hour12: defaultConfig.hour12,
interval: null as NodeJS.Timeout | null,
clockContainer: document.createElement('div'),
updateTime: null as unknown as () => void,
async start({ getConfig }) {
const config = await getConfig();
this.displaySeconds = config.displaySeconds;
this.hour12 = config.hour12;
if (!this.clockContainer) {
this.clockContainer = document.createElement('div');
}
const [time, setTime] = createSignal<string>();
const updateTime = () => {
const timeFormat: Intl.DateTimeFormatOptions = {
hour12: this.hour12,
hour: 'numeric',
minute: 'numeric',
second: this.displaySeconds ? 'numeric' : undefined,
};
const now = new Date();
setTime(now.toLocaleTimeString('en', timeFormat));
};
this.updateTime = updateTime;
onMount(() => {
this.interval = setInterval(updateTime, 1000);
});
render(
() => (
<>
<h1 class="clock"> {time()} </h1>
</>
),
this.clockContainer,
);
const menu = document.querySelector('.center-content');
menu?.append(this.clockContainer);
},
onConfigChange(newConfig) {
this.displaySeconds = newConfig.displaySeconds;
this.hour12 = newConfig.hour12;
this.updateTime();
},
stop() {
this.clockContainer.remove();
this.clockContainer.replaceChildren();
if (this.interval) {
clearInterval(this.interval);
}
},
},
});

View File

@ -1,6 +0,0 @@
.clock {
position: absolute;
left: 50%;
transform: translateX(-50%);
align-self: center;
}

View File

@ -1,5 +0,0 @@
export type ClockPluginConfig = {
enabled: boolean;
displaySeconds: boolean;
hour12: boolean;
};

View File

@ -9,7 +9,7 @@ import { TimerManager } from './timer-manager';
import {
buildDiscordButtons,
padHangulFields,
sanitizeActivityText,
truncateString,
isSeek,
} from './utils';
@ -22,7 +22,7 @@ export class DiscordService {
/**
* Discord RPC client instance.
*/
rpc!: DiscordClient;
rpc = new DiscordClient({ clientId });
/**
* Indicates if the service is ready to send activity updates.
*/
@ -62,21 +62,6 @@ export class DiscordService {
this.mainWindow = mainWindow;
this.autoReconnect = config?.autoReconnect ?? true; // Default autoReconnect to true
this.initializeRpc();
}
private initializeRpc() {
if (this.rpc) {
try {
this.rpc.destroy();
} catch {
// ignored
}
this.rpc.removeAllListeners();
}
this.rpc = new DiscordClient({ clientId });
this.rpc.on('connected', () => {
if (dev()) {
console.log(LoggerPrefix, t('plugins.discord.backend.connected'));
@ -114,17 +99,13 @@ export class DiscordService {
const activityInfo: SetActivity = {
type: ActivityType.Listening,
statusDisplayType: config.statusDisplayType,
details: sanitizeActivityText(
songInfo.alternativeTitle ?? songInfo.title
), // Song title
details: truncateString(songInfo.alternativeTitle ?? songInfo.title, 128), // Song title
detailsUrl: songInfo.url ?? undefined,
state: sanitizeActivityText(
songInfo.tags?.at(0) ?? songInfo.artist
), // Artist name
state: truncateString(songInfo.tags?.at(0) ?? songInfo.artist, 128), // Artist name
stateUrl: songInfo.artistUrl,
largeImageKey: songInfo.imageSrc ?? undefined,
largeImageText: songInfo.album
? sanitizeActivityText(songInfo.album)
? truncateString(songInfo.album, 128)
: undefined,
buttons: buildDiscordButtons(config, songInfo),
};
@ -211,7 +192,6 @@ export class DiscordService {
resolve();
})
.catch(() => {
this.initializeRpc();
this.connectRecursive();
});
},
@ -256,9 +236,6 @@ export class DiscordService {
this.resetInfo();
if (this.autoReconnect) {
// For some reason @xhayper/discord-rpc leaves a dangling listener on connection failure
// so we destroy and recreate the RPC client before reconnecting.
this.initializeRpc();
this.connectRecursive();
} else if (showErrorDialog && this.mainWindow) {
// connection failed
@ -273,11 +250,12 @@ export class DiscordService {
this.autoReconnect = false;
this.timerManager.clear(TimerKey.DiscordConnectRetry);
this.timerManager.clear(TimerKey.ClearActivity);
try {
this.rpc.removeAllListeners();
this.rpc.destroy();
} catch {
// ignored
if (this.rpc.isConnected) {
try {
this.rpc.destroy();
} catch {
// ignored
}
}
this.resetInfo(); // Reset internal state
}

View File

@ -6,39 +6,39 @@ import { onMenu } from './menu';
import { t } from '@/i18n';
export type DiscordPluginConfig = {
'enabled': boolean;
enabled: boolean;
/**
* If enabled, will try to reconnect to discord every 5 seconds after disconnecting or failing to connect
*
* @default true
*/
'autoReconnect': boolean;
autoReconnect: boolean;
/**
* If enabled, the discord rich presence gets cleared when music paused after the time specified below
*/
'activityTimeoutEnabled': boolean;
activityTimeoutEnabled: boolean;
/**
* The time in milliseconds after which the discord rich presence gets cleared when music paused
*
* @default 10 * 60 * 1000 (10 minutes)
*/
'activityTimeoutTime': number;
activityTimeoutTime: number;
/**
* Add a "Play on $APPLICATION_NAME" button to rich presence
* Add a "Play on Pear Desktop" button to rich presence
*/
'playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063': boolean;
playOnPearDesktop: boolean;
/**
* Hide the "View App On GitHub" button in the rich presence
*/
'hideGitHubButton': boolean;
hideGitHubButton: boolean;
/**
* Hide the "duration left" in the rich presence
*/
'hideDurationLeft': boolean;
hideDurationLeft: boolean;
/**
* Controls which field is displayed in the Discord status text
*/
'statusDisplayType': (typeof StatusDisplayType)[keyof typeof StatusDisplayType];
statusDisplayType: (typeof StatusDisplayType)[keyof typeof StatusDisplayType];
};
export default createPlugin({
@ -46,14 +46,14 @@ export default createPlugin({
description: () => t('plugins.discord.description'),
restartNeeded: false,
config: {
'enabled': false,
'autoReconnect': true,
'activityTimeoutEnabled': true,
'activityTimeoutTime': 10 * 60 * 1000,
'playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063': true,
'hideGitHubButton': false,
'hideDurationLeft': false,
'statusDisplayType': StatusDisplayType.Details,
enabled: false,
autoReconnect: true,
activityTimeoutEnabled: true,
activityTimeoutTime: 10 * 60 * 1000,
playOnPearDesktop: true,
hideGitHubButton: false,
hideDurationLeft: false,
statusDisplayType: StatusDisplayType.Details,
} as DiscordPluginConfig,
menu: onMenu,
backend,

View File

@ -6,7 +6,7 @@ import { discordService } from './main';
import { singleton } from '@/providers/decorators';
import promptOptions from '@/providers/prompt-options';
import { setMenuOptions } from '@/config/plugins';
import { APPLICATION_NAME, t } from '@/i18n';
import { t } from '@/i18n';
import type { MenuContext } from '@/types/contexts';
import type { DiscordPluginConfig } from './index';
@ -18,7 +18,7 @@ const registerRefreshOnce = singleton((refreshMenu: () => void) => {
const DiscordStatusDisplayTypeLabels: Record<StatusDisplayType, string> = {
[StatusDisplayType.Name]:
'plugins.discord.menu.set-status-display-type.submenu.application',
'plugins.discord.menu.set-status-display-type.submenu.pear-desktop',
[StatusDisplayType.State]:
'plugins.discord.menu.set-status-display-type.submenu.artist',
[StatusDisplayType.Details]:
@ -67,16 +67,12 @@ export const onMenu = async ({
},
},
{
label: t('plugins.discord.menu.play-on-application'),
label: t('plugins.discord.menu.play-on-pear-desktop'),
type: 'checkbox',
checked:
config[
'playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063'
],
checked: config.playOnPearDesktop,
click(item: Electron.MenuItem) {
setConfig({
'playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063':
item.checked,
playOnPearDesktop: item.checked,
});
},
},
@ -115,9 +111,6 @@ export const onMenu = async ({
DiscordStatusDisplayTypeLabels[
statusDisplayType as StatusDisplayType
],
{
applicationName: APPLICATION_NAME,
},
),
type: 'radio',
checked: config.statusDisplayType === statusDisplayType,

View File

@ -1,7 +1,5 @@
import { HANGUL_FILLER } from './constants';
import { APPLICATION_NAME } from '@/i18n';
import type { GatewayActivityButton } from 'discord-api-types/v10';
import type { SongInfo } from '@/providers/song-info';
import type { DiscordPluginConfig } from './index';
@ -19,27 +17,6 @@ export const truncateString = (str: string, length: number): string => {
return str;
};
/**
* Sanitizes a string for Discord Rich Presence activity, ensuring it meets length requirements.
* @param input - The string to sanitize.
* @param fallback - A fallback string to use if the input is empty or whitespace. Defaults to 'undefined'.
* @returns The sanitized string, compliant with Discord's requirements.
*/
export function sanitizeActivityText(input: string | undefined, fallback: string = 'undefined'): string {
const text = (input && input.trim()) ? input.trim() : fallback.trim();
let safeString = truncateString(text, 128);
if (safeString.length === 0) {
return fallback;
}
if (safeString.length < 2) {
safeString = safeString.padEnd(2, ''); // change if necessary
}
return safeString;
}
/**
* Builds the array of buttons for the Discord Rich Presence activity.
* @param config - The plugin configuration.
@ -51,14 +28,9 @@ export const buildDiscordButtons = (
songInfo: SongInfo,
): GatewayActivityButton[] | undefined => {
const buttons: GatewayActivityButton[] = [];
if (
config[
'playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063'
] &&
songInfo.url
) {
if (config.playOnPearDesktop && songInfo.url) {
buttons.push({
label: `Play on ${APPLICATION_NAME}`,
label: 'Play on Pear Desktop',
url: songInfo.url,
});
}

View File

@ -4,8 +4,6 @@ import { render } from 'solid-js/web';
import { TitleBar } from './renderer/TitleBar';
import { defaultInAppMenuConfig, type InAppMenuConfig } from './constants';
import { APPLICATION_NAME } from '@/i18n';
import type { RendererContext } from '@/types/contexts';
const scrollStyle = `
@ -27,7 +25,7 @@ export const onRendererLoad = async ({
}: RendererContext<InAppMenuConfig>) => {
setConfig(await getConfig());
document.title = APPLICATION_NAME;
document.title = 'Pear Desktop';
const stylesheet = new CSSStyleSheet();
stylesheet.replaceSync(scrollStyle);
document.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];

View File

@ -36,7 +36,7 @@ export default createPlugin({
const previousStatePaused = null;
const data: LumiaData = {
origin: '\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u006d\u0075\u0073\u0069\u0063',
origin: 'peardesktop',
eventType: 'switchSong',
};

View File

@ -1,13 +1,17 @@
import { type DataConnection, Peer, type PeerError } from 'peerjs';
import {
type DataConnection,
Peer,
type PeerError,
PeerErrorType,
} from 'peerjs';
import delay from 'delay';
import type { Permission, Profile, VideoData } from './types';
export type ConnectionEventMap = {
CLEAR_QUEUE: null;
ADD_SONGS: { videoList: VideoData[]; index?: number };
REMOVE_SONG: { index: number };
MOVE_SONG: { fromIndex: number; toIndex: number };
SET_INDEX: { index: number };
IDENTIFY: { profile: Profile } | undefined;
SYNC_PROFILE: { profiles: Record<string, Profile> } | undefined;
SYNC_QUEUE: { videoList: VideoData[] } | undefined;
@ -98,14 +102,16 @@ export class Connection {
this.peer.disconnect();
this.peer.destroy();
});
this.peer.on('error', (err) => {
if (err.type === 'network') {
setTimeout(() => {
try {
this.peer.reconnect();
} catch {}
}, 10000);
return;
this.peer.on('error', async (err) => {
if (err.type === PeerErrorType.Network) {
// retrying after 10 seconds
await delay(10000);
try {
this.peer.reconnect();
return;
} catch {
//ignored
}
}
this.waitOpen.reject(err);
@ -165,12 +171,9 @@ export class Connection {
public async broadcast<Event extends keyof ConnectionEventMap>(
type: Event,
payload: ConnectionEventMap[Event],
after?: ConnectionEventUnion[],
) {
await Promise.all(
this.getConnections().map(
(conn) => conn.send({ type, payload, after }) ?? Promise.resolve(),
),
this.getConnections().map((conn) => conn.send({ type, payload })),
);
}

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