Compare commits
No commits in common. "main" and "releasepage" have entirely different histories.
main
...
releasepag
63
.circleci/config.yml
Normal file
|
@ -0,0 +1,63 @@
|
|||
version: 2.1
|
||||
orbs: # adds orbs to your configuration
|
||||
jira: circleci/jira@1.0.5 # invokes the Jira orb, making its commands accessible
|
||||
jobs:
|
||||
build:
|
||||
working_directory: ~/Cider
|
||||
docker:
|
||||
- image: circleci/node:16
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Update Package Managers
|
||||
command: sudo npm update -g npm yarn
|
||||
- restore_cache:
|
||||
name: Restore Yarn Package Cache
|
||||
keys:
|
||||
- yarn-packages-{{ checksum "yarn.lock" }}
|
||||
- run:
|
||||
name: Install Dependencies
|
||||
command: yarn install --frozen-lockfile --cache-folder ~/.cache/yarn
|
||||
- save_cache:
|
||||
name: Save Yarn Package Cache
|
||||
key: yarn-packages-{{ checksum "yarn.lock" }}
|
||||
paths:
|
||||
- ~/.cache/yarn
|
||||
- run:
|
||||
name: Install Playwright
|
||||
command: yarn playwright install --with-deps
|
||||
- run:
|
||||
name: Install system build dependencies
|
||||
command: |
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y dpkg fakeroot wine64
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt-get update -y
|
||||
sudo apt-get install -y wine32
|
||||
- store_test_results:
|
||||
path: test-results
|
||||
- run:
|
||||
name: Generate Builds (Linux)
|
||||
command: yarn dist -l -p never
|
||||
post-steps:
|
||||
- jira/notify
|
||||
- run:
|
||||
name: Generate Builds (Windows)
|
||||
command: yarn dist -w --x64 -p never
|
||||
post-steps:
|
||||
- jira/notify
|
||||
- run:
|
||||
name: Move Build Files
|
||||
command: |
|
||||
mkdir ~/Cider/dist/artifacts/
|
||||
mv ~/Cider/dist/*.exe ~/Cider/dist/artifacts
|
||||
mv ~/Cider/dist/*.deb ~/Cider/dist/artifacts
|
||||
mv ~/Cider/dist/*.AppImage ~/Cider/dist/artifacts
|
||||
mv ~/Cider/dist/*.snap ~/Cider/dist/artifacts
|
||||
mv ~/Cider/dist/*.yml ~/Cider/dist/artifacts
|
||||
- store_artifacts:
|
||||
path: ~/Cider/dist/artifacts
|
||||
post-steps:
|
||||
- jira/notify
|
||||
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
1
.github/FUNDING.yml
vendored
|
@ -1,4 +1,3 @@
|
|||
github: ciderapp
|
||||
ko_fi: cryptofyre
|
||||
open_collective: ciderapp
|
||||
custom: "https://opencollective.com/ciderapp/donate/10/month/Support%20Development?redirect=https://cidercollective.dev/thanks"
|
||||
|
|
86
.github/ISSUE_TEMPLATE/bug_report.yaml
vendored
|
@ -1,74 +1,20 @@
|
|||
name: Bug Report
|
||||
description: If you encounter an issue whilst using our app, please use this template to help improve the app.
|
||||
title: "[Bug]: "
|
||||
labels: ["bug", "needs-triage"]
|
||||
labels: ["bug", "triage"]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Preflight Checklist
|
||||
description: Please ensure you've completed all of the following.
|
||||
options:
|
||||
- label: I have read the [Support Disclaimer](https://docs.cider.sh/support/disclaimer) for this project.
|
||||
required: true
|
||||
- label: I agree to follow the [Code of Conduct](https://github.com/ciderapp/Cider/blob/main/CODE_OF_CONDUCT.md) that this project adheres to.
|
||||
required: true
|
||||
- label: I have searched the [issue tracker](https://www.github.com/ciderapp/Cider/issues) for a bug report that matches the one I want to file, without success.
|
||||
required: true
|
||||
- label: I have read the [troublshooting FAQs](https://cider.gitbook.io/welcome-to-gitbook/support/faqs#why-is-my-discordrpc-status-not-appearing) and none solved my issue.
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: Cider Version
|
||||
description: |
|
||||
What version of Cider are you using?
|
||||
|
||||
Note: Please only report issues for [currently supported versions of Cider](hhttps://cider.gitbook.io/welcome-to-gitbook/support/version-information). You can find your version on the About Page.
|
||||
placeholder: 1.6.0
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: What operating system are you using?
|
||||
options:
|
||||
- Windows
|
||||
- macOS
|
||||
- Ubuntu
|
||||
- Other Linux
|
||||
- Other (specify below)
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: Operating System Version
|
||||
description: What operating system version are you using? On Windows, click Start button > Settings > System > About. On macOS, click the Apple Menu > About This Mac. On Linux, use lsb_release or uname -a.
|
||||
placeholder: "e.g. Windows 10 version 1909, macOS Catalina 10.15.7, or Ubuntu 20.04"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: download
|
||||
attributes:
|
||||
label: Where did you download Cider from?
|
||||
options:
|
||||
- Microsoft Store
|
||||
- GitHub
|
||||
- Winget
|
||||
- Winget (Nightly)
|
||||
- Chocolatey
|
||||
- Flathub
|
||||
- AUR
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe the Bug
|
||||
description: A clear and concise description of the bug you encountered. Tell us what did you expect to happen?
|
||||
description: A clear and concise description of the bug you encountered. Also tell us, what did you expect to happen?
|
||||
placeholder: Tell us what you see!
|
||||
value: "A bug happened!"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
|
@ -76,7 +22,23 @@ body:
|
|||
attributes:
|
||||
label: Steps to Reproduce
|
||||
description: How did you produce this bug, tell us how you did it so we can do it ourselves.
|
||||
placeholder: 1. Clicked on...
|
||||
placeholder: Tell us how you did it
|
||||
value: "1. Clicked on..."
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: Environment Information
|
||||
description: |
|
||||
Examples:
|
||||
- **OS**: Ubuntu 20.04
|
||||
- **App Version**: 1.0.0
|
||||
- **Commit ID**: c9d43be
|
||||
value: |
|
||||
- OS:
|
||||
- App Version:
|
||||
- Commit ID:
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
|
@ -86,3 +48,11 @@ body:
|
|||
Links? References? Anything that will give us more context about the issue you are encountering!
|
||||
|
||||
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
|
||||
- type: checkboxes
|
||||
id: terms
|
||||
attributes:
|
||||
label: Code of Conduct
|
||||
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/ciderapp/Cider/blob/main/CODE_OF_CONDUCT.md)
|
||||
options:
|
||||
- label: I agree to follow this project's Code of Conduct
|
||||
required: true
|
||||
|
|
12
.github/ISSUE_TEMPLATE/config.yml
vendored
|
@ -1,16 +1,10 @@
|
|||
blank_issues_enabled: false
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Support Disclaimer
|
||||
url: https://docs.cider.sh/support/disclaimer
|
||||
about: Please read this before creating any issue.
|
||||
- name: Feature Request
|
||||
url: https://github.com/ciderapp/Cider/discussions/new?category=feature-request
|
||||
about: Have a feature you would like to have in the app? Make a request.
|
||||
- name: Discord Support
|
||||
url: https://discord.com/invite/AppleMusic
|
||||
about: For quick support, make a ticket or ask for community support here.
|
||||
- name: Cider Documentation
|
||||
url: https://docs.cider.sh/support/faqs
|
||||
- name: GitHub Troublshooting
|
||||
url: https://github.com/ciderapp/Cider/wiki/Troubleshooting
|
||||
about: In most cases, these troubleshooting tips can resolve basic issues. Try them out before opening an issue.
|
||||
- name: GitHub Issues
|
||||
url: https://github.com/ciderapp/Cider/issues
|
||||
|
|
34
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
name: Feature Request
|
||||
description: Suggest an idea to improve Cider.
|
||||
title: "[Enhancement]: "
|
||||
labels: ["enhancement", "triage"]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this report!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: The feature you would like
|
||||
description: A clear and concise description of what you would like to be added to the application. State if your request if related to an issue.
|
||||
placeholder: A great addition to this project would be...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: other
|
||||
attributes:
|
||||
label: Alternatives and Other Information
|
||||
description: If you have any alternative solutions to implement your request or other information that could help.
|
||||
placeholder: Anything that can help us?
|
||||
validations:
|
||||
required: false
|
||||
- type: checkboxes
|
||||
id: terms
|
||||
attributes:
|
||||
label: Code of Conduct
|
||||
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/ciderapp/Cider/blob/main/CODE_OF_CONDUCT.md)
|
||||
options:
|
||||
- label: I agree to follow this project's Code of Conduct
|
||||
required: true
|
11
.github/dependabot.yml
vendored
|
@ -1,11 +0,0 @@
|
|||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "npm" # See documentation for possible values
|
||||
directory: "/" # Location of package manifests
|
||||
schedule:
|
||||
interval: "monthly"
|
18
.github/workflows/auto-project.yml
vendored
|
@ -1,18 +0,0 @@
|
|||
name: Add bugs to bugs project
|
||||
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- opened
|
||||
|
||||
jobs:
|
||||
add-to-project:
|
||||
name: Add issue to project
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/add-to-project@main
|
||||
with:
|
||||
project-url: https://github.com/orgs/ciderapp/projects/5
|
||||
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
|
||||
labeled: bug, needs-triage
|
||||
label-operator: OR
|
67
.github/workflows/cider-chores.yml
vendored
|
@ -1,67 +0,0 @@
|
|||
name: Cider Chores
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
compile-and-post:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
container:
|
||||
image: electronuserland/builder:wine
|
||||
|
||||
|
||||
steps:
|
||||
- name: Checkout 🛎
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install Dependencies 📦
|
||||
run: yarn install
|
||||
|
||||
- name: Build 🏗
|
||||
run: yarn dist:all
|
||||
|
||||
- name: Upload Release 🚀
|
||||
uses: softprops/action-gh-release@v2.0.5
|
||||
with:
|
||||
files: |
|
||||
./dist/*.exe
|
||||
./dist/*.deb
|
||||
./dist/*.AppImage
|
||||
./dist/*.rpm
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
prettier:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [18]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# Make sure the actual branch is checked out when running on pull requests
|
||||
ref: ${{ github.head_ref }}
|
||||
|
||||
- name: Prettify code
|
||||
run: npm run format:write
|
||||
|
||||
- name: Commit Prettier Code
|
||||
uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
commit_message: "chore: Prettified Code\n [ci skip]"
|
||||
commit_user_name: "cider-chore[bot]"
|
||||
commit_user_email: "cider-chore[bot]@users.noreply.github.com"
|
33
.github/workflows/dev-chores.yml
vendored
|
@ -1,33 +0,0 @@
|
|||
name: Developer Chores
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
linter-check:
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
node: [18]
|
||||
|
||||
steps:
|
||||
- name: Checkout 🛎
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup node env 🏗
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
check-latest: true
|
||||
|
||||
- name: Install dependencies 👨🏻💻
|
||||
run: npm run bootstrap
|
||||
|
||||
- name: Run linter 👀
|
||||
run: npm run format:write
|
||||
|
||||
- name: Comment Suggestions 🗒️
|
||||
uses: getsentry/action-git-diff-suggestions@main
|
||||
with:
|
||||
message: Prettier Suggestion
|
22
.github/workflows/stale-issues.yml
vendored
|
@ -1,22 +0,0 @@
|
|||
name: 'Close stale issues and PRs'
|
||||
on:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v4
|
||||
with:
|
||||
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days.'
|
||||
days-before-stale: 30
|
||||
days-before-close: 7
|
||||
stale-issue-label: "stale"
|
||||
stale-pr-label: "stale"
|
||||
exempt-all-assignees: true
|
||||
exempt-issue-labels: 'more-info,work-in-progress,accessibility-feature,help-wanted,persist/priority'
|
18
.github/workflows/support-notice.yml
vendored
|
@ -1,18 +0,0 @@
|
|||
name: Support Notice
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
post-notice:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: derekprior/add-autoresponse@master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
respondableId: ${{ github.event.issue.node_id }}
|
||||
response: "Cider 1.x is no longer actively maintained. We highly suggest moving to the newer version versions of the app available at https://cider.sh through official storefronts ex. Itch.io, or the Microsoft Store."
|
||||
author: ${{ github.event.issue.user.login }}
|
16
.gitignore
vendored
|
@ -1,10 +1,6 @@
|
|||
# Building
|
||||
dist
|
||||
build
|
||||
.flatpak*
|
||||
yarn-cache
|
||||
src/renderer/style.css
|
||||
.pnpm-store
|
||||
|
||||
# Misc
|
||||
.idea
|
||||
|
@ -139,6 +135,7 @@ dist
|
|||
.vscode-test
|
||||
|
||||
# yarn v2
|
||||
yarn.lock
|
||||
.pnp.*
|
||||
.yarn/*
|
||||
.yarn/cache
|
||||
|
@ -319,14 +316,3 @@ src/renderer/workbox-962786f2.js.map
|
|||
keys.sh
|
||||
|
||||
package-lock.json
|
||||
resources/b64.txt
|
||||
|
||||
|
||||
savedconfig/cider-config.json
|
||||
savedconfig/config.json
|
||||
savedconfig/session.json
|
||||
savedconfig/window-state.json
|
||||
src/main/base/sample.json
|
||||
|
||||
# yeet circleci ci for now
|
||||
.circleci/
|
||||
|
|
3
.npmrc
|
@ -1,3 +0,0 @@
|
|||
node-linker=hoisted
|
||||
public-hoist-pattern=*
|
||||
shamefully-hoist=true
|
1
.nvmrc
|
@ -1 +0,0 @@
|
|||
20.2.0
|
|
@ -1,6 +0,0 @@
|
|||
src/renderer/*hls*.js
|
||||
build/*
|
||||
dist/*
|
||||
src/renderer/lib/*
|
||||
*.min.*
|
||||
.pnpm-store
|
13
.prettierrc
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"printWidth": 600,
|
||||
"singleAttributePerLine": true,
|
||||
"bracketSameLine": true,
|
||||
"overrides": [
|
||||
{
|
||||
"files": "src/renderer/main/**/*.js",
|
||||
"options": {
|
||||
"singleAttributePerLine": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
compressionLevel: mixed
|
||||
|
||||
enableGlobalCache: false
|
||||
|
||||
nodeLinker: node-modules
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 201 111" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(-1,0,0,1,971.69,-237.578)">
|
||||
<g transform="matrix(7.11542e-17,1.16204,-1.00804,6.1725e-17,1181.95,-435.575)">
|
||||
<path d="M620.408,312.185C621.766,309.468 624.28,307.794 627,307.794C629.72,307.794 632.234,309.468 633.592,312.185C643.701,332.402 662.969,370.939 673.563,392.126C675.098,395.195 675.096,398.975 673.558,402.043C672.021,405.111 669.181,407 666.107,407C645.499,407 608.501,407 587.893,407C584.819,407 581.979,405.111 580.442,402.043C578.904,398.975 578.902,395.195 580.437,392.126C591.031,370.939 610.299,332.402 620.408,312.185Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(7.11542e-17,1.16204,-1.00804,6.1725e-17,1281.96,-435.575)">
|
||||
<path d="M620.408,312.185C621.766,309.468 624.28,307.794 627,307.794C629.72,307.794 632.234,309.468 633.592,312.185C643.701,332.402 662.969,370.939 673.563,392.126C675.098,395.195 675.096,398.975 673.558,402.043C672.021,405.111 669.181,407 666.107,407C645.499,407 608.501,407 587.893,407C584.819,407 581.979,405.111 580.442,402.043C578.904,398.975 578.902,395.195 580.437,392.126C591.031,370.939 610.299,332.402 620.408,312.185Z" style="fill:white;"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.6 KiB |
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 201 111" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(1,0,0,1,-771.681,-237.578)">
|
||||
<g transform="matrix(7.11542e-17,1.16204,-1.00804,6.1725e-17,1181.95,-435.575)">
|
||||
<path d="M620.408,312.185C621.766,309.468 624.28,307.794 627,307.794C629.72,307.794 632.234,309.468 633.592,312.185C643.701,332.402 662.969,370.939 673.563,392.126C675.098,395.195 675.096,398.975 673.558,402.043C672.021,405.111 669.181,407 666.107,407C645.499,407 608.501,407 587.893,407C584.819,407 581.979,405.111 580.442,402.043C578.904,398.975 578.902,395.195 580.437,392.126C591.031,370.939 610.299,332.402 620.408,312.185Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(7.11542e-17,1.16204,-1.00804,6.1725e-17,1281.96,-435.575)">
|
||||
<path d="M620.408,312.185C621.766,309.468 624.28,307.794 627,307.794C629.72,307.794 632.234,309.468 633.592,312.185C643.701,332.402 662.969,370.939 673.563,392.126C675.098,395.195 675.096,398.975 673.558,402.043C672.021,405.111 669.181,407 666.107,407C645.499,407 608.501,407 587.893,407C584.819,407 581.979,405.111 580.442,402.043C578.904,398.975 578.902,395.195 580.437,392.126C591.031,370.939 610.299,332.402 620.408,312.185Z" style="fill:white;"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.6 KiB |
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 104 139" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(1,0,0,1,-339.137,-234.806)">
|
||||
<path d="M381,245.272C381,239.496 376.31,234.806 370.534,234.806L349.603,234.806C343.826,234.806 339.137,239.496 339.137,245.272L339.137,362.84C339.137,368.616 343.826,373.306 349.603,373.306L370.534,373.306C376.31,373.306 381,368.616 381,362.84L381,245.272Z" style="fill:white;"/>
|
||||
<g transform="matrix(1,0,0,1,61.8631,0)">
|
||||
<path d="M381,245.272C381,239.496 376.31,234.806 370.534,234.806L349.603,234.806C343.826,234.806 339.137,239.496 339.137,245.272L339.137,362.84C339.137,368.616 343.826,373.306 349.603,373.306L370.534,373.306C376.31,373.306 381,368.616 381,362.84L381,245.272Z" style="fill:white;"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.1 KiB |
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 113 125" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(7.90918e-17,1.29167,-1.1205,6.86106e-17,456.042,-747.431)">
|
||||
<path d="M621.069,310.862C622.291,308.417 624.553,306.911 627,306.911C629.447,306.911 631.709,308.417 632.931,310.862C643.071,331.141 663.672,372.343 674.309,393.619C675.69,396.38 675.688,399.781 674.305,402.541C672.922,405.3 670.367,407 667.602,407C646.846,407 607.154,407 586.398,407C583.633,407 581.078,405.3 579.695,402.541C578.312,399.781 578.31,396.38 579.691,393.619C590.328,372.343 610.929,331.141 621.069,310.862Z" style="fill:white;"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1,000 B |
|
@ -1,61 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 183 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<path d="M0,6C0,2.686 2.686,0 6,0L177,0C180.314,0 183,2.686 183,6L183,34C183,37.314 180.314,40 177,40L6,40C2.686,40 0,37.314 0,34L0,6Z" style="fill:url(#_Linear1);fill-rule:nonzero;"/>
|
||||
<g transform="matrix(1.42013,0,0,1.42013,-13.8213,-1.00475)">
|
||||
<g transform="matrix(12,0,0,12,41.6776,19.3396)">
|
||||
<rect x="0.063" y="-0.727" width="0.154" height="0.727" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,45.0441,19.3396)">
|
||||
<path d="M0.212,-0.315C0.212,-0.386 0.254,-0.427 0.315,-0.427C0.376,-0.427 0.412,-0.387 0.412,-0.32L0.412,-0L0.563,-0L0.563,-0.347C0.563,-0.474 0.489,-0.553 0.375,-0.553C0.294,-0.553 0.235,-0.513 0.211,-0.449L0.205,-0.449L0.205,-0.545L0.06,-0.545L0.06,-0L0.212,-0L0.212,-0.315Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,52.5058,19.3396)">
|
||||
<path d="M0.514,-0.39C0.501,-0.49 0.42,-0.553 0.282,-0.553C0.142,-0.553 0.05,-0.488 0.051,-0.383C0.05,-0.301 0.102,-0.248 0.208,-0.227L0.303,-0.208C0.35,-0.199 0.372,-0.181 0.373,-0.154C0.372,-0.121 0.337,-0.098 0.284,-0.098C0.23,-0.098 0.194,-0.121 0.185,-0.166L0.036,-0.158C0.05,-0.054 0.139,0.011 0.284,0.011C0.425,0.011 0.526,-0.061 0.527,-0.169C0.526,-0.248 0.475,-0.295 0.369,-0.317L0.27,-0.337C0.219,-0.348 0.201,-0.365 0.201,-0.391C0.201,-0.424 0.238,-0.445 0.284,-0.445C0.337,-0.445 0.368,-0.417 0.376,-0.381L0.514,-0.39Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,59.2472,19.3396)">
|
||||
<path d="M0.35,-0.545L0.248,-0.545L0.248,-0.676L0.097,-0.676L0.097,-0.545L0.022,-0.545L0.022,-0.432L0.097,-0.432L0.097,-0.148C0.096,-0.041 0.169,0.012 0.278,0.007C0.317,0.006 0.345,-0.002 0.36,-0.007L0.337,-0.119C0.329,-0.118 0.313,-0.114 0.299,-0.114C0.269,-0.114 0.248,-0.126 0.248,-0.168L0.248,-0.432L0.35,-0.432L0.35,-0.545Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,63.9092,19.3396)">
|
||||
<path d="M0.216,0.01C0.297,0.01 0.349,-0.025 0.375,-0.076L0.38,-0.076L0.38,-0L0.523,-0L0.523,-0.368C0.523,-0.498 0.413,-0.553 0.292,-0.553C0.161,-0.553 0.075,-0.49 0.054,-0.391L0.194,-0.379C0.204,-0.415 0.237,-0.442 0.291,-0.442C0.342,-0.442 0.372,-0.416 0.372,-0.371L0.372,-0.369C0.372,-0.334 0.335,-0.33 0.24,-0.32C0.132,-0.31 0.035,-0.274 0.035,-0.152C0.035,-0.044 0.112,0.01 0.216,0.01ZM0.259,-0.094C0.213,-0.094 0.179,-0.116 0.179,-0.157C0.179,-0.2 0.214,-0.221 0.268,-0.228C0.301,-0.233 0.355,-0.241 0.373,-0.253L0.373,-0.195C0.373,-0.138 0.326,-0.094 0.259,-0.094Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,70.8722,19.3396)">
|
||||
<rect x="0.06" y="-0.727" width="0.151" height="0.727" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,74.1364,19.3396)">
|
||||
<rect x="0.06" y="-0.727" width="0.151" height="0.727" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,80.1833,19.3396)">
|
||||
<path d="M0.307,0.011C0.472,0.011 0.575,-0.103 0.575,-0.271C0.575,-0.44 0.472,-0.553 0.307,-0.553C0.141,-0.553 0.038,-0.44 0.038,-0.271C0.038,-0.103 0.141,0.011 0.307,0.011ZM0.308,-0.107C0.231,-0.107 0.192,-0.176 0.192,-0.272C0.192,-0.367 0.231,-0.437 0.308,-0.437C0.382,-0.437 0.422,-0.367 0.422,-0.272C0.422,-0.176 0.382,-0.107 0.308,-0.107Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,87.5469,19.3396)">
|
||||
<path d="M0.212,-0.315C0.212,-0.386 0.254,-0.427 0.315,-0.427C0.376,-0.427 0.412,-0.387 0.412,-0.32L0.412,-0L0.563,-0L0.563,-0.347C0.563,-0.474 0.489,-0.553 0.375,-0.553C0.294,-0.553 0.235,-0.513 0.211,-0.449L0.205,-0.449L0.205,-0.545L0.06,-0.545L0.06,-0L0.212,-0L0.212,-0.315Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,97.7913,19.3396)">
|
||||
<path d="M0.705,-0.473C0.685,-0.641 0.558,-0.737 0.389,-0.737C0.197,-0.737 0.05,-0.602 0.05,-0.364C0.05,-0.126 0.195,0.01 0.389,0.01C0.576,0.01 0.688,-0.114 0.705,-0.248L0.549,-0.249C0.535,-0.171 0.474,-0.126 0.392,-0.126C0.281,-0.126 0.206,-0.208 0.206,-0.364C0.206,-0.515 0.28,-0.601 0.393,-0.601C0.477,-0.601 0.538,-0.553 0.549,-0.473L0.705,-0.473Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,106.817,19.3396)">
|
||||
<path d="M0.06,-0L0.212,-0L0.212,-0.545L0.06,-0.545L0.06,-0ZM0.136,-0.616C0.181,-0.616 0.218,-0.65 0.218,-0.692C0.218,-0.734 0.181,-0.769 0.136,-0.769C0.092,-0.769 0.055,-0.734 0.055,-0.692C0.055,-0.65 0.092,-0.616 0.136,-0.616Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,110.081,19.3396)">
|
||||
<path d="M0.261,0.009C0.349,0.009 0.395,-0.042 0.416,-0.087L0.423,-0.087L0.423,-0L0.572,-0L0.572,-0.727L0.421,-0.727L0.421,-0.454L0.416,-0.454C0.396,-0.498 0.352,-0.553 0.261,-0.553C0.141,-0.553 0.04,-0.46 0.04,-0.272C0.04,-0.089 0.137,0.009 0.261,0.009ZM0.309,-0.112C0.235,-0.112 0.195,-0.178 0.195,-0.273C0.195,-0.367 0.234,-0.432 0.309,-0.432C0.383,-0.432 0.424,-0.37 0.424,-0.273C0.424,-0.175 0.382,-0.112 0.309,-0.112Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,117.705,19.3396)">
|
||||
<path d="M0.309,0.011C0.444,0.011 0.535,-0.055 0.556,-0.156L0.416,-0.165C0.401,-0.124 0.362,-0.102 0.311,-0.102C0.236,-0.102 0.188,-0.152 0.188,-0.234L0.188,-0.234L0.559,-0.234L0.559,-0.276C0.559,-0.461 0.447,-0.553 0.303,-0.553C0.142,-0.553 0.038,-0.439 0.038,-0.27C0.038,-0.097 0.141,0.011 0.309,0.011ZM0.188,-0.328C0.191,-0.39 0.238,-0.44 0.305,-0.44C0.371,-0.44 0.417,-0.393 0.417,-0.328L0.188,-0.328Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<g transform="matrix(12,0,0,12,124.876,19.3396)">
|
||||
<path d="M0.06,-0L0.212,-0L0.212,-0.309C0.212,-0.376 0.261,-0.422 0.327,-0.422C0.348,-0.422 0.377,-0.418 0.391,-0.414L0.391,-0.548C0.378,-0.551 0.359,-0.553 0.344,-0.553C0.283,-0.553 0.233,-0.518 0.213,-0.45L0.207,-0.45L0.207,-0.545L0.06,-0.545L0.06,-0Z" style="fill:white;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-10,-9.91057)">
|
||||
<circle cx="34" cy="30" r="10" style="fill:rgb(15,15,15);"/>
|
||||
</g>
|
||||
<g id="Release.svg" transform="matrix(0.0257787,0,0,0.0257787,24.0003,20)">
|
||||
<g transform="matrix(1,0,0,1,-501,-500)">
|
||||
<path d="M501,21C765.367,21 980,235.633 980,500C980,764.367 765.367,979 501,979C236.633,979 22,764.367 22,500C22,235.633 236.633,21 501,21ZM501,169C683.684,169 832,317.316 832,500C832,682.684 683.684,831 501,831C318.316,831 170,682.684 170,500C170,317.316 318.316,169 501,169Z" style="fill:rgb(255,38,84);"/>
|
||||
<path d="M501,224C653.053,224 776.5,347.447 776.5,499.5C776.5,651.553 653.053,775 501,775C348.947,775 225.5,651.553 225.5,499.5C225.5,347.447 348.947,224 501,224ZM589.165,492.207C595.163,495.672 595.163,504.328 589.165,507.793L439.502,594.256C433.502,597.722 426,593.392 426,586.463L426,413.537C426,406.608 433.502,402.278 439.502,405.744L589.165,492.207Z" style="fill:rgb(255,38,84);"/>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-155,37.5,-37.5,-155,181,-9.33524e-07)"><stop offset="0" style="stop-color:rgb(255,38,84);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(64,38,84);stop-opacity:1"/></linearGradient>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 7.8 KiB |
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<rect x="0" y="0" width="1024" height="1024" style="fill:rgb(110,110,110);"/>
|
||||
<g transform="matrix(6.05996,0,0,6.05996,189.003,209)">
|
||||
<path d="M93.161,0.071C59.66,-1.043 32.22,11.314 32.22,11.314L32.2,74.023C28.789,72.669 24.641,72.348 20.428,73.372C11.345,75.579 5.397,83.192 7.143,90.379C8.889,97.566 17.667,101.604 26.749,99.398C35.313,97.317 41.087,90.429 40.256,83.626L40.256,36.771C40.256,36.771 59.66,29.987 84.829,28.286L84.829,63.135C81.455,61.843 77.386,61.55 73.25,62.555C64.167,64.761 58.219,72.374 59.965,79.562C61.71,86.749 70.488,90.786 79.571,88.58C87.502,86.653 93.042,80.603 93.158,74.316L93.161,74.32L93.161,0.071Z" style="fill-opacity:0.16;fill-rule:nonzero;"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.1 KiB |
|
@ -1,9 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 958 958" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(1,0,0,1,-22,-21)">
|
||||
<circle cx="501" cy="500" r="420" style="fill:rgb(15,15,15);"/>
|
||||
<path d="M501,21C765.367,21 980,235.633 980,500C980,764.367 765.367,979 501,979C236.633,979 22,764.367 22,500C22,235.633 236.633,21 501,21ZM501,169C683.684,169 832,317.316 832,500C832,682.684 683.684,831 501,831C318.316,831 170,682.684 170,500C170,317.316 318.316,169 501,169Z" style="fill:rgb(255,43,81);"/>
|
||||
<path d="M501,224C653.053,224 776.5,347.447 776.5,499.5C776.5,651.553 653.053,775 501,775C348.947,775 225.5,651.553 225.5,499.5C225.5,347.447 348.947,224 501,224ZM589.165,492.207C595.163,495.672 595.163,504.328 589.165,507.793L439.502,594.256C433.502,597.722 426,593.392 426,586.463L426,413.537C426,406.608 433.502,402.278 439.502,405.744L589.165,492.207Z" style="fill:rgb(255,43,81);"/>
|
||||
</g>
|
||||
<svg width="100%" height="100%" viewBox="0 0 1002 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<path d="M501,21C765.367,21 980,235.633 980,500C980,764.367 765.367,979 501,979C236.633,979 22,764.367 22,500C22,235.633 236.633,21 501,21ZM501,169C683.684,169 832,317.316 832,500C832,682.684 683.684,831 501,831C318.316,831 170,682.684 170,500C170,317.316 318.316,169 501,169Z" style="fill:rgb(255,38,84);"/>
|
||||
<path d="M501,224C653.053,224 776.5,347.447 776.5,499.5C776.5,651.553 653.053,775 501,775C348.947,775 225.5,651.553 225.5,499.5C225.5,347.447 348.947,224 501,224ZM589.165,492.207C595.163,495.672 595.163,504.328 589.165,507.793L439.502,594.256C433.502,597.722 426,593.392 426,586.463L426,413.537C426,406.608 433.502,402.278 439.502,405.744L589.165,492.207Z" style="fill:rgb(255,38,84);"/>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.1 KiB |
51
README.md
|
@ -1,56 +1,32 @@
|
|||
## ⚠ Cider Classic has approached its End-of-Life status.
|
||||
This application is now no longer being actively maintained.
|
||||
No support will be given on Windows.
|
||||
|
||||
Thanks for your continued support.
|
||||
|
||||
[Get Cider 2 today.](https://cider.sh/download)
|
||||
|
||||
<a href="https://cider.sh/download"><img src="./src/renderer/assets/c1-c2.png" height="64px" alt="Banner"></a>
|
||||
<a href="https://cidercollective.itch.io/cider"><img src="https://cider.sh/assets/itch-badge.svg" height="64px" alt="Banner"></a>
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<a href="https://cider.sh"><img src="./resources/banner.png" width="80%" height="60%" alt="Banner"></a>
|
||||
<br>
|
||||
<b>A new cross-platform Apple Music experience based on Electron and Vue.js written from scratch with performance & visuals in mind. 🚀</b>
|
||||
<br><br>
|
||||
<img src="./resources/banner.png" width="80%" height="60%" alt="Banner"><br><br>
|
||||
<img src="https://img.shields.io/github/release/ciderapp/Cider.svg?style=flat&label=Latest%20Release" alt="GitHub Releases"/>
|
||||
<img src="https://img.shields.io/github/stars/ciderapp/Cider?label=Stars" alt="GitHub Stars"/>
|
||||
<img src="https://img.shields.io/github/forks/ciderapp/Cider?label=Forks" alt="GitHub Forks"/>
|
||||
<a title="Crowdin" target="_blank" href="https://crowdin.com/project/cider-music"><img src="https://badges.crowdin.net/cider-i18n/localized.svg"></a>
|
||||
<img src="https://img.shields.io/github/downloads/ciderapp/Cider/total.svg?color=23B14D&label=Downloads" alt="GitHub Downloads"/>
|
||||
<br>
|
||||
<a target="_blank" href="https://ko-fi.com/cryptofyre"><img src="https://img.shields.io/badge/Buy%20Us%20a%20Coffee-donate-B48C69?logo=Ko-fi&logoColor=FFFFFF" alt="Buy Me A Coffee"/></a>
|
||||
<a target="_blank" href="https://ko-fi.com/cryptofyre"><img src="https://img.shields.io/badge/Buy%20Me%20a%20Coffee-donate-B48C69" alt="Buy Me A Coffee"/></a>
|
||||
<a target="_blank" href="https://opencollective.com/ciderapp"><img src="https://img.shields.io/opencollective/all/ciderapp?color=%237FADF2&label=Backers%20and%20Sponsors&logo=opencollective" alt="Open Collective"/></a>
|
||||
<a target="_blank" href="https://github.com/sponsors/ciderapp"><img src="https://img.shields.io/github/sponsors/ciderapp?color=C96198&label=GitHub%20Sponsors&logo=GitHub" alt="GitHub Sponsor"/></a>
|
||||
<br>
|
||||
<a target="_blank" href="https://jq.qq.com/?_wv=1027&k=2VP4cdyo"><img src="https://img.shields.io/badge/QQ-531185058-red" alt="QQ群"/></a>
|
||||
<a target="_blank" href="https://discord.gg/applemusic"><img src="https://img.shields.io/discord/843954443845238864?label=Discord&color=5865F2&logo=discord&logoColor=white&style=flat" alt="Discord"/></a>
|
||||
<a target="_blank" href="https://twitter.com/UseCider"><img src="https://img.shields.io/twitter/follow/UseCider?label=Twitter&color=%231DA1F2&logo=twitter&style=flat" alt="Twitter"/></a>
|
||||
<a target="_blank" href="https://reddit.com/r/applemusicelectron"><img src="https://custom-icon-badges.herokuapp.com/reddit/subreddit-subscribers/applemusicelectron?label=Reddit&color=FF5700&logo=redditnew" alt="Reddit"/></a>
|
||||
<br><br>
|
||||
<a href="https://dev.azure.com/cidercollective/Cider/_build?definitionId=14"><img src="https://dev.azure.com/cidercollective/Cider/_apis/build/status%2FCider%201.x?branchName=main" alt="Azure Pipelines Status"/></a>
|
||||
<a href="https://circleci.com/gh/ciderapp/Cider/tree/main"><img src="https://circleci.com/gh/ciderapp/Cider/tree/main.svg?style=svg" alt="CircleCI Status"/></a>
|
||||
</p>
|
||||
|
||||
#### Links
|
||||
|
||||
* [Documentation](https://docs.cider.sh)
|
||||
* [Request Feature](https://github.com/ciderapp/Cider/discussions/new?category=feature-request)
|
||||
* [Wiki](https://github.com/ciderapp/Cider/wiki)
|
||||
* [Request Feature](https://github.com/ciderapp/Cider/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=%5BEnhancement%5D)
|
||||
* [Report Bug](https://github.com/ciderapp/Cider/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D+)
|
||||
* [**View The Releases**](https://github.com/ciderapp/cider-releases/releases/latest)
|
||||
* [**View The Releases**](https://github.com/ciderapp/Cider/releases/latest)
|
||||
|
||||
### Install Sources
|
||||
[](https://github.com/ciderapp/cider-releases/releases/latest)
|
||||
[](https://github.com/ciderapp/cider/releases/latest)
|
||||
|
||||
[](https://winstall.app/apps/CiderCollective.Cider)
|
||||
[_-100000?style=for-the-badge&logo=winstall)](https://winstall.app/apps/CiderCollective.Cider.Nightly)
|
||||
[](https://www.microsoft.com/store/apps/9P21XJ9D9G66)
|
||||
|
||||
[](https://community.chocolatey.org/packages/cider)
|
||||
|
||||
<!--
|
||||
[_-100000?style=for-the-badge&logo=winstall)](https://winstall.app/apps/CiderCollective.Cider.Nightly)
|
||||
-->
|
||||
|
||||
[](https://flathub.org/apps/details/sh.cider.Cider)
|
||||
[](https://winstall.app/apps/CiderCollective.Cider.Nightly)
|
||||
|
||||
<!--
|
||||
|
||||
|
@ -60,8 +36,8 @@ Thanks for your continued support.
|
|||
-->
|
||||
[](https://aur.archlinux.org/packages/cider)
|
||||
|
||||
### Insights Snapshot
|
||||
[](https://app.circleci.com/insights/github/ciderapp/Cider/workflows/build_and_release/overview?branch=main&reporting-window=last-30-days&insights-snapshot=true)
|
||||
### Compiling and Configuration
|
||||
For more information surrounding configuration, compiling and other developer documentation, see the [compilation docs](https://cider.sh/compile.html).
|
||||
|
||||
### Credits
|
||||

|
||||
|
@ -78,3 +54,4 @@ for any legal concerns contact me at <a href="mailto:cryptofyre@cryptofyre.org">
|
|||
<img href="https://www.jetbrains.com/" width="120px" height="125px" src="https://logonoid.com/images/jetbrains-logo.png" alt="JetBrains">
|
||||
<img href="https://www.macstadium.com/" width="300px" src="https://user-images.githubusercontent.com/33162551/124784795-df5d4c80-df0b-11eb-99a7-dc2b1cfb81bd.png" alt="MacStadium">
|
||||
</p>
|
||||
|
||||
|
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 107 KiB |
|
@ -1,62 +0,0 @@
|
|||
let i = 1,
|
||||
k = 1;
|
||||
class ExamplePlugin {
|
||||
/**
|
||||
* Private variables for interaction in plugins
|
||||
*/
|
||||
private _win: any;
|
||||
private _app: any;
|
||||
private _store: any;
|
||||
|
||||
/**
|
||||
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
||||
*/
|
||||
public name: string = "examplePlugin";
|
||||
public description: string = "Example plugin";
|
||||
public version: string = "1.0.0";
|
||||
public author: string = "Example author";
|
||||
|
||||
/**
|
||||
* Runs on plugin load (Currently run on application start)
|
||||
*/
|
||||
constructor(app: any, store: any) {
|
||||
this._app = app;
|
||||
this._store = store;
|
||||
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs on app ready
|
||||
*/
|
||||
onReady(win: any): void {
|
||||
this._win = win;
|
||||
console.debug(`[Plugin][${this.name}] Ready.`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs on app stop
|
||||
*/
|
||||
onBeforeQuit(): void {
|
||||
console.debug(`[Plugin][${this.name}] Stopped.`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs on playback State Change
|
||||
* @param attributes Music Attributes (attributes.status = current state)
|
||||
*/
|
||||
onPlaybackStateDidChange(attributes: object): void {
|
||||
console.log("onPlaybackStateDidChange has been called " + i + " times");
|
||||
i++;
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs on song change
|
||||
* @param attributes Music Attributes
|
||||
*/
|
||||
onNowPlayingItemDidChange(attributes: object): void {
|
||||
console.log("onNowPlayingDidChange has been called " + k + " times");
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ExamplePlugin;
|
|
@ -1,39 +0,0 @@
|
|||
class sendSongToTitlebar {
|
||||
/**
|
||||
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
||||
*/
|
||||
public name: string = "sendSongToTitlebar";
|
||||
public description: string = "Sets the app's titlebar to the Song title";
|
||||
public version: string = "0.0.1";
|
||||
public author: string = "Cider Collective (credit to 8times9 via #147)";
|
||||
/**
|
||||
* Runs on plugin load (Currently run on application start)
|
||||
*/
|
||||
private _win: any;
|
||||
private _app: any;
|
||||
constructor() {}
|
||||
/**
|
||||
* Runs on app ready
|
||||
*/
|
||||
onReady(win: any): void {
|
||||
this._win = win;
|
||||
}
|
||||
/**
|
||||
* Runs on app stop
|
||||
*/
|
||||
onBeforeQuit(): void {}
|
||||
/**
|
||||
* Runs on playback State Change
|
||||
* @param attributes Music Attributes (attributes.status = current state)
|
||||
*/
|
||||
onPlaybackStateDidChange(attributes: any): void {
|
||||
this._win.setTitle(`${attributes != null && attributes.name != null && attributes.name.length > 0 ? attributes.name + " - " : ""}Cider`);
|
||||
}
|
||||
/**
|
||||
* Runs on song change
|
||||
* @param attributes Music Attributes
|
||||
*/
|
||||
onNowPlayingItemDidChange(attributes: object): void {}
|
||||
}
|
||||
|
||||
module.exports = sendSongToTitlebar;
|
|
@ -1,7 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
for i in {0..9}; do
|
||||
test -S $XDG_RUNTIME_DIR/discord-ipc-$i || ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
|
||||
done
|
||||
|
||||
cider "$@"
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"only-arches": ["x86_64"],
|
||||
"publish-delay-hours": 2
|
||||
}
|
1839
flatpak/flatpak-node-generator.py
Normal file
7600
flatpak/generated-sources.json
Normal file
|
@ -1,67 +1,84 @@
|
|||
app-id: org.cidercollective.cider
|
||||
branch: main
|
||||
runtime: org.freedesktop.Platform
|
||||
runtime-version: '21.08'
|
||||
sdk: org.freedesktop.Sdk
|
||||
# Use the Electron 2 BaseApp, which adds several common libraries we'll need.
|
||||
base: org.electronjs.Electron2.BaseApp
|
||||
base-version: '21.08'
|
||||
# Add the Node 10 SDK extension.
|
||||
sdk-extensions:
|
||||
- org.freedesktop.Sdk.Extension.node14
|
||||
# Electron doesn't use a traditional locale format so separate-locales is useless.
|
||||
separate-locales: false
|
||||
command: cider
|
||||
rename-desktop-file: cider.desktop
|
||||
rename-icon: cider
|
||||
finish-args:
|
||||
- --device=dri
|
||||
- --filesystem=xdg-music
|
||||
- --own-name=org.mpris.MediaPlayer2.Cider
|
||||
- --share=ipc
|
||||
- --share=network
|
||||
- --socket=pulseaudio
|
||||
# needs electron v11 (chromium v87) or newer with ozone enabled
|
||||
# https://github.com/electron/electron/issues/10915
|
||||
# - --socket=wayland
|
||||
- --socket=x11
|
||||
- --system-talk-name=org.freedesktop.UPower
|
||||
- --talk-name=com.canonical.AppMenu.Registrar
|
||||
- --talk-name=com.canonical.dbusmenu
|
||||
- --talk-name=org.freedesktop.Notifications
|
||||
- --talk-name=org.kde.StatusNotifierWatcher
|
||||
# These two lines add Xorg access for graphics.
|
||||
- '--share=ipc'
|
||||
- '--socket=x11'
|
||||
# Sound access.
|
||||
- '--socket=pulseaudio'
|
||||
# Network access.
|
||||
- '--share=network'
|
||||
# If you need to access the filesystem, also add:
|
||||
# - '--filesystem=home'
|
||||
modules:
|
||||
- name: cider
|
||||
# With electron-webpack and electron-builder we don't install Node to /app/node,
|
||||
# because electron-builder will bundle everything for us in one piece.
|
||||
# Instead we jump straight to the quick start module.
|
||||
|
||||
# However, since this quick start uses yarn, we do have to install that.
|
||||
- name: yarn
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- install -dm755 ${FLATPAK_DEST}/cider
|
||||
- |
|
||||
bsdtar -Oxf cider.deb 'data.tar*' |
|
||||
bsdtar -xf - \
|
||||
-C ${FLATPAK_DEST}/cider \
|
||||
--strip-components=3 \
|
||||
./opt/Cider
|
||||
- |
|
||||
bsdtar -Oxf cider.deb 'data.tar*' |
|
||||
bsdtar -xf - \
|
||||
-C ${FLATPAK_DEST} \
|
||||
--strip-components=2 \
|
||||
--exclude=./usr/share/doc \
|
||||
./usr/share
|
||||
- desktop-file-edit --set-key=Exec --set-value=cider ${FLATPAK_DEST}/share/applications/cider.desktop
|
||||
- install -Dm755 stub_sandbox ${FLATPAK_DEST}/cider/chrome-sandbox
|
||||
- install -Dm755 cider -t ${FLATPAK_DEST}/bin/
|
||||
- 'cp -a * /app'
|
||||
# Only used for building, so clean it up afterwards.
|
||||
cleanup:
|
||||
- '*'
|
||||
sources:
|
||||
- type: file
|
||||
dest-filename: cider.deb
|
||||
url: https://1308-429851205-gh.circle-artifacts.com/0/~/Cider/dist/artifacts/cider_1.3.1308_amd64.deb
|
||||
sha256: 342abde96bac9668e7238860ba435171edd72077ed9f4b385a3546c4d8f96995
|
||||
x-checker-data:
|
||||
type: html
|
||||
url: https://circleci.com/api/v1.1/project/gh/ciderapp/Cider/latest/artifacts?branch=main&filter=successful
|
||||
pattern: (https://.*circle-artifacts.com/.+/cider_([\d\.]+)_amd64.deb)
|
||||
- type: archive
|
||||
url: https://github.com/yarnpkg/yarn/releases/download/v1.22.17/yarn-v1.22.17.tar.gz
|
||||
sha256: 267982c61119a055ba2b23d9cf90b02d3d16c202c03cb0c3a53b9633eae37249
|
||||
|
||||
- name: cider
|
||||
buildsystem: simple
|
||||
build-options:
|
||||
# Add the node bin directory & yarn directory.
|
||||
append-path: '/usr/lib/sdk/node14/bin:/app/yarn/bin'
|
||||
env:
|
||||
# Set the Electron cache directory.
|
||||
# (The directory format is: /run/build/MODULE_NAME/flatpak-node/electron-cache)
|
||||
ELECTRON_CACHE: '/run/build/cider/flatpak-node/electron-cache'
|
||||
# Sets the directory where Node is located so way npm won't download the headers.
|
||||
npm_config_nodedir: '/usr/lib/sdk/node14'
|
||||
build-commands:
|
||||
# Have Yarn use the offline mirror.
|
||||
- 'HOME=$PWD yarn config --offline set yarn-offline-mirror $FLATPAK_BUILDER_BUILDDIR/flatpak-node/yarn-mirror'
|
||||
# Download the packages.
|
||||
- 'yarn install --offline'
|
||||
# If you were using npm with electron-webpack/electron-builder, then the above two commands
|
||||
# would look more like the npm commands in the vanilla-quick-start manifest, just without
|
||||
# the --prefix.
|
||||
|
||||
# Run electron-builder, passing the architecture arguments to it.
|
||||
# Note that the -- is important; without that, the argument will be passed to
|
||||
# yarn instead of electron-builder.
|
||||
- '. flatpak-node/electron-builder-arch-args.sh; yarn run --offline electron-builder build --linux dir -- $ELECTRON_BUILDER_ARCH_ARGS'
|
||||
# Copy the resulting, unpacked directory to /app.
|
||||
# (A glob is used because the directory name may contain the current arch.)
|
||||
- 'cp -r dist/linux*unpacked /app/cider'
|
||||
# If you passed --electron-non-patented-ffmpeg, you could install it like this:
|
||||
# - 'install -Dm 755 flatpak-node/libffmpeg.so -t /app/electron-webpack-quick-start'
|
||||
# Install the wrapper script to start it.
|
||||
- 'install -Dm 755 cider.sh /app/bin/cider'
|
||||
sources:
|
||||
- type: git
|
||||
url: https://github.com/ciderapp/cider
|
||||
branch: main
|
||||
# Add the flatpak-node-generator generated sources.
|
||||
- generated-sources.json
|
||||
# Our runner script.
|
||||
- type: script
|
||||
dest-filename: cider
|
||||
dest-filename: cider.sh
|
||||
commands:
|
||||
# share chromium singleton between multiple session, needed for flatpak<1.11.1
|
||||
- export TMPDIR=$XDG_RUNTIME_DIR/app/$FLATPAK_ID
|
||||
- exec zypak-wrapper /app/cider/cider "$@"
|
||||
- type: script
|
||||
dest-filename: stub_sandbox
|
||||
commands:
|
||||
- |
|
||||
echo Stub sandbox ignoring command: $@
|
||||
exit 1
|
||||
- '/app/cider/cider'
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<content_rating type="oars-1.0"/>
|
||||
<id>sh.cider.Cider</id>
|
||||
|
||||
<name>Cider</name>
|
||||
<summary>An open source and community oriented Apple Music client</summary>
|
||||
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>AGPL-1.0-or-later</project_license>
|
||||
<developer_name>Cider Collective</developer_name>
|
||||
|
||||
<url type="homepage">https://cider.sh/?utm_source=flathub%26utm_medium=link%26utm_campaign=product-page</url>
|
||||
<url type="bugtracker">https://github.com/ciderapp/Cider/issues</url>
|
||||
<url type="donation">https://ko-fi.com/cryptofyre</url>
|
||||
|
||||
<description>
|
||||
<p>
|
||||
Project Cider. A new look into listening and enjoying Apple Music in style and performance with Features such as Discord and Last.fm integration, spatial audio support, equalizers, and remote controllable using companion app
|
||||
</p>
|
||||
</description>
|
||||
|
||||
<launchable type="desktop-id">cider.desktop</launchable>
|
||||
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://github.com/ciderapp/cider.sh/blob/main/assets/img/frontpage-scn.png?raw=true</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
|
||||
<releases>
|
||||
<release version="v1.3.0.1555" date="2022-03-24"/>
|
||||
<release version="v1.3.0.1548" date="2022-03-24"/>
|
||||
<release version="v1.3.0.1541" date="2022-03-23"/>
|
||||
<release version="v1.3.0.1540" date="2022-03-23"/>
|
||||
<release version="v1.3.0.1531" date="2022-03-22"/>
|
||||
</releases>
|
||||
</component>
|
|
@ -1,75 +0,0 @@
|
|||
app-id: sh.cider.Cider
|
||||
runtime: org.freedesktop.Platform
|
||||
runtime-version: '21.08'
|
||||
sdk: org.freedesktop.Sdk
|
||||
base: org.electronjs.Electron2.BaseApp
|
||||
base-version: '21.08'
|
||||
command: cider-wrapper
|
||||
rename-desktop-file: cider.desktop
|
||||
rename-icon: cider
|
||||
finish-args:
|
||||
- --device=dri
|
||||
- --filesystem=xdg-music
|
||||
- --filesystem=xdg-run/app/com.discordapp.Discord:create
|
||||
- --own-name=org.mpris.MediaPlayer2.cider
|
||||
- --share=ipc
|
||||
- --share=network
|
||||
- --socket=pulseaudio
|
||||
# needs electron v11 (chromium v87) or newer with ozone enabled
|
||||
# https://github.com/electron/electron/issues/10915
|
||||
#- --socket=wayland
|
||||
- --socket=x11
|
||||
- --system-talk-name=org.freedesktop.UPower
|
||||
- --talk-name=com.canonical.AppMenu.Registrar
|
||||
- --talk-name=com.canonical.dbusmenu
|
||||
- --talk-name=org.freedesktop.Notifications
|
||||
- --talk-name=org.kde.StatusNotifierWatcher
|
||||
modules:
|
||||
- name: cider
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- install -dm755 ${FLATPAK_DEST}/cider
|
||||
- |
|
||||
bsdtar -Oxf cider.deb 'data.tar*' |
|
||||
bsdtar -xf - \
|
||||
-C ${FLATPAK_DEST}/cider \
|
||||
--strip-components=3 \
|
||||
./opt/Cider
|
||||
- |
|
||||
bsdtar -Oxf cider.deb 'data.tar*' |
|
||||
bsdtar -xf - \
|
||||
-C ${FLATPAK_DEST} \
|
||||
--strip-components=2 \
|
||||
--exclude=./usr/share/doc \
|
||||
./usr/share
|
||||
- install -Dm755 cider-wrapper /app/bin/cider-wrapper
|
||||
- desktop-file-edit --set-key=Exec --set-value=cider-wrapper ${FLATPAK_DEST}/share/applications/cider.desktop
|
||||
- install -Dm755 stub_sandbox ${FLATPAK_DEST}/cider/chrome-sandbox
|
||||
- install -Dm755 cider -t ${FLATPAK_DEST}/bin/
|
||||
- install -Dm644 -t /app/share/metainfo ${FLATPAK_ID}.metainfo.xml
|
||||
sources:
|
||||
- type: file
|
||||
dest-filename: cider.deb
|
||||
url: https://github.com/ciderapp/cider-releases/releases/download/v1.3.0.1555/cider_1.3.0-alpha.1555_amd64.deb
|
||||
sha256: 8a582ca2758d556cc2d5fad73e05ed3e2f27076e13bf377d1d83d9494aaef9c2
|
||||
x-checker-data:
|
||||
type: json
|
||||
url: https://api.github.com/repos/ciderapp/cider-releases/releases/latest
|
||||
version-query: .tag_name
|
||||
url-query: .assets[] | select(.name | match("(amd64.deb)")) | .browser_download_url
|
||||
- type: script
|
||||
dest-filename: cider
|
||||
commands:
|
||||
# share chromium singleton between multiple session, needed for flatpak<1.11.1
|
||||
- export TMPDIR=$XDG_RUNTIME_DIR/app/$FLATPAK_ID
|
||||
- exec zypak-wrapper /app/cider/cider "$@"
|
||||
- type: script
|
||||
dest-filename: stub_sandbox
|
||||
commands:
|
||||
- |
|
||||
echo Stub sandbox ignoring command: $@
|
||||
exit 1
|
||||
- type: file
|
||||
path: cider-wrapper
|
||||
- type: file
|
||||
path: sh.cider.Cider.metainfo.xml
|
|
@ -1,45 +0,0 @@
|
|||
{
|
||||
"electronVersion": "16.2.8",
|
||||
"electronDownload": {
|
||||
"version": "16.2.8+wvcus",
|
||||
"mirror": "https://github.com/castlabs/electron-releases/releases/download/v"
|
||||
},
|
||||
"appId": "cider",
|
||||
"protocols": [
|
||||
{
|
||||
"name": "Cider",
|
||||
"schemes": ["ame", "cider", "itms", "itmss", "musics", "music"]
|
||||
}
|
||||
],
|
||||
"extends": null,
|
||||
"files": ["**/*", "./src/**/*", "./resources/icons/icon.*"],
|
||||
"linux": {
|
||||
"target": ["AppImage", "deb", "snap", "rpm"],
|
||||
"synopsis": "A new look into listening and enjoying music in style and performance. ",
|
||||
"category": "AudioVideo",
|
||||
"icon": "cider",
|
||||
"executableName": "cider"
|
||||
},
|
||||
"appx": {
|
||||
"applicationId": "CiderAlpha",
|
||||
"publisher": "CN=CiderCollective, OID.2.25.311729368913984317654407730594956997722=1",
|
||||
"displayName": "Cider",
|
||||
"identityName": "CiderCollective.CiderAlpha",
|
||||
"backgroundColor": "transparent",
|
||||
"setBuildNumber": true
|
||||
},
|
||||
"win": {
|
||||
"target": ["appx"],
|
||||
"icon": "resources/icons/icon.ico"
|
||||
},
|
||||
"directories": {
|
||||
"buildResources": ".",
|
||||
"output": "dist"
|
||||
},
|
||||
"mac": {
|
||||
"icon": "./resources/icons/icon.icns",
|
||||
"category": "public.app-category.music",
|
||||
"entitlements": "resources/entitlements.mac.plist",
|
||||
"darkModeSupport": true
|
||||
}
|
||||
}
|
187
package.json
|
@ -2,96 +2,75 @@
|
|||
"name": "cider",
|
||||
"applicationId": "Cider",
|
||||
"productName": "Cider",
|
||||
"version": "1.6.3",
|
||||
"description": "A new cross-platform Apple Music experience based on Electron and Vue.js written from scratch with performance in mind.",
|
||||
"version": "1.1.0",
|
||||
"description": "A new look into listening and enjoying music in style and performance.",
|
||||
"license": "AGPL-3.0",
|
||||
"exports": "./build/index.js",
|
||||
"main": "./build/index.js",
|
||||
"author": "Cider Collective <cryptofyre@cider.sh> (https://cider.sh)",
|
||||
"repository": "github:ciderapp/Cider",
|
||||
"type": "module",
|
||||
"repository": "https://github.com/ciderapp/Cider.git",
|
||||
"bugs": {
|
||||
"url": "https://github.com/ciderapp/Cider/issues?q=is%3Aopen+is%3Aissue+label%3Abug"
|
||||
},
|
||||
"homepage": "https://cider.sh/",
|
||||
"buildResources": "resources",
|
||||
"scripts": {
|
||||
"bootstrap": "npx -y check-engine && yarn",
|
||||
"build": "tsc && lessc ./src/renderer/style.less ./src/renderer/style.css",
|
||||
"start": "npm run build && electron ./build/index.js",
|
||||
"dist": "npm run build && electron-builder --publish=never",
|
||||
"dist:win": "npm run build && electron-builder --win --publish=never",
|
||||
"dist:linux": "npm run build && electron-builder --linux --publish=never",
|
||||
"dist:all": "npm run build && electron-builder -wl --publish=never",
|
||||
"dist:universalNotWorking": "npm run build && electron-builder --mac --universal --publish:never",
|
||||
"winget": "npm run build && electron-builder --win -c winget.json",
|
||||
"msft": "npm run build && electron-builder -c msft-package.json",
|
||||
"mstest": "npm run build && electron-builder -c msft-test.json",
|
||||
"steamdeck": "npm run build && electron-builder --linux -c steam-deck.json",
|
||||
"format:check": "npx prettier --check \"src/**/*.{js,json,ts,less}\"",
|
||||
"format:write": "npx prettier --write \"src/**/*.{js,json,ts,less}\""
|
||||
"build": "tsc",
|
||||
"watch": "tsc --watch",
|
||||
"test": "yarn build && playwright test",
|
||||
"start": "run-script-os",
|
||||
"start:win32": "yarn build && set ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
|
||||
"start:linux": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
|
||||
"start:darwin": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
|
||||
"pack": "electron-builder --dir",
|
||||
"dist": "yarn build && electron-builder",
|
||||
"dist:all": "yarn build && electron-builder -mwl",
|
||||
"msft": "yarn build && electron-builder -c msft-package.json",
|
||||
"postinstall": "electron-builder install-app-deps"
|
||||
},
|
||||
"dependencies": {
|
||||
"@achingbrain/ssdp": "^4.0.6",
|
||||
"@crowdin/ota-client": "^1.1.1",
|
||||
"@sentry/electron": "^4.24.0",
|
||||
"@sentry/integrations": "7.114.0",
|
||||
"adm-zip": "^0.5.12",
|
||||
"airtunes2": "ciderapp/node_airtunes2",
|
||||
"castv2-client": "ciderapp/node-castv2-client",
|
||||
"chokidar": "^3.6.0",
|
||||
"discord-auto-rpc": "^1.0.17",
|
||||
"ejs": "^3.1.10",
|
||||
"electron-log": "^5.1.4",
|
||||
"electron-notarize": "^1.2.2",
|
||||
"electron-store": "^9.0.0",
|
||||
"electron-updater": "6.2.1",
|
||||
"@sentry/electron": "^2.5.4",
|
||||
"discord-rpc": "^4.0.1",
|
||||
"ejs": "^3.1.6",
|
||||
"electron-fetch": "^1.7.4",
|
||||
"electron-log": "^4.4.4",
|
||||
"electron-notarize": "^1.1.1",
|
||||
"electron-packager": "^15.4.0",
|
||||
"electron-store": "^8.0.1",
|
||||
"electron-updater": "^4.6.1",
|
||||
"electron-window-state": "^5.0.3",
|
||||
"express": "^4.19.2",
|
||||
"get-port": "7.1.0",
|
||||
"jimp": "^0.22.12",
|
||||
"express": "^4.17.2",
|
||||
"get-port": "^5.1.1",
|
||||
"jsonc": "^2.0.0",
|
||||
"lastfmapi": "^0.1.1",
|
||||
"mdns-js": "ciderapp/node-mdns-js",
|
||||
"mpris-service": "ciderapp/mpris-service",
|
||||
"music-metadata": "7.14.0",
|
||||
"node-fetch": "^3.3.2",
|
||||
"node-ssdp": "^4.0.1",
|
||||
"node-ssdp-js": "^0.9.6",
|
||||
"qrcode": "^1.5.3",
|
||||
"request": "^2.88.2",
|
||||
"simple-ssdp": "^1.0.2",
|
||||
"mdns-js": "git+https://github.com/bitfocus/node-mdns-js.git",
|
||||
"mpris-service": "^2.1.2",
|
||||
"music-metadata": "^7.11.4",
|
||||
"node-gyp": "^8.4.1",
|
||||
"qrcode": "^1.5.0",
|
||||
"qrcode-terminal": "^0.12.0",
|
||||
"react": "^17.0.2",
|
||||
"react-dom": "^17.0.2",
|
||||
"run-script-os": "^1.1.6",
|
||||
"source-map-support": "^0.5.21",
|
||||
"ssdp-js": "^1.0.1",
|
||||
"ts-md5": "1.3.1",
|
||||
"upnp-mediarenderer-client": "vapormusic/node-upnp-mediarenderer-client",
|
||||
"v8-compile-cache": "^2.4.0",
|
||||
"wallpaper": "7.2.1",
|
||||
"ws": "^8.17.0",
|
||||
"xml2js": "^0.6.2",
|
||||
"youtube-search-without-api-key": "^2.0.1"
|
||||
"typescript": "^4.5.5",
|
||||
"v8-compile-cache": "^2.3.0",
|
||||
"ws": "^8.4.2",
|
||||
"xml2js": "^0.4.23",
|
||||
"youtube-search-without-api-key": "^1.0.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/adm-zip": "^0.5.5",
|
||||
"@types/discord-rpc": "4.0.8",
|
||||
"@types/express": "^4.17.21",
|
||||
"@types/musickit": "ciderapp/musickit-types",
|
||||
"@types/node": "^20.12.12",
|
||||
"@types/node-ssdp": "^4.0.4",
|
||||
"@types/qrcode-terminal": "^0.12.2",
|
||||
"@types/request": "^2.48.12",
|
||||
"@types/upnp-mediarenderer-client": "^1.4.3",
|
||||
"@types/ws": "^8.5.10",
|
||||
"@types/xml2js": "^0.4.14",
|
||||
"electron": "github:castlabs/electron-releases#v30.0.4+wvcus",
|
||||
"electron-builder": "^24.13.3",
|
||||
"electron-builder-notarize-pkg": "^1.2.0",
|
||||
"@playwright/test": "^1.18.1",
|
||||
"@types/discord-rpc": "^4.0.0",
|
||||
"@types/express": "^4.17.13",
|
||||
"@types/qrcode-terminal": "^0.12.0",
|
||||
"@types/ws": "^8.2.2",
|
||||
"electron": "git+https://github.com/castlabs/electron-releases.git",
|
||||
"electron-builder": "^22.14.5",
|
||||
"electron-webpack": "^2.8.2",
|
||||
"less": "^4.2.0",
|
||||
"node-gyp": "^10.1.0",
|
||||
"prettier": "3.2.5",
|
||||
"typescript": "^5.4.5",
|
||||
"musickit-typescript": "^1.2.4",
|
||||
"playwright": "^1.18.1",
|
||||
"vue-devtools": "^5.1.4",
|
||||
"webpack": "~5.91.0"
|
||||
"webpack": "~5.65.0"
|
||||
},
|
||||
"fileAssociations": [
|
||||
{
|
||||
|
@ -116,14 +95,14 @@
|
|||
}
|
||||
],
|
||||
"build": {
|
||||
"electronVersion": "30.0.6",
|
||||
"electronVersion": "16.0.7",
|
||||
"electronDownload": {
|
||||
"version": "30.0.6+wvcus",
|
||||
"version": "16.0.7+wvcus",
|
||||
"mirror": "https://github.com/castlabs/electron-releases/releases/download/v"
|
||||
},
|
||||
"appId": "cider",
|
||||
"afterPack": "./resources/afterPack.cjs",
|
||||
"afterSign": "./resources/notarize.cjs",
|
||||
"afterPack": "./resources/afterPack.js",
|
||||
"afterSign": "./resources/notarize.js",
|
||||
"protocols": [
|
||||
{
|
||||
"name": "Cider",
|
||||
|
@ -140,14 +119,14 @@
|
|||
"extends": null,
|
||||
"files": [
|
||||
"./build/**/*",
|
||||
"./src/**/*",
|
||||
"./resources/icons/**/*"
|
||||
"./resources/icons/icon.*",
|
||||
"./src/**/*"
|
||||
],
|
||||
"linux": {
|
||||
"target": [
|
||||
"AppImage",
|
||||
"deb",
|
||||
"rpm"
|
||||
"snap"
|
||||
],
|
||||
"synopsis": "A new look into listening and enjoying music in style and performance. ",
|
||||
"category": "AudioVideo",
|
||||
|
@ -167,39 +146,7 @@
|
|||
"perMachine": false,
|
||||
"allowToChangeInstallationDirectory": true,
|
||||
"license": "LICENSE",
|
||||
"deleteAppDataOnUninstall": true,
|
||||
"artifactName": "${productName}-Setup-${version}.${ext}"
|
||||
},
|
||||
"pkg": {
|
||||
"installLocation": "/Applications",
|
||||
"background": {
|
||||
"file": "./resources/bg.png",
|
||||
"alignment": "bottomleft"
|
||||
},
|
||||
"allowAnywhere": true,
|
||||
"allowCurrentUserHome": true,
|
||||
"allowRootDirectory": true,
|
||||
"license": "./LICENSE",
|
||||
"isVersionChecked": false,
|
||||
"isRelocatable": false,
|
||||
"overwriteAction": "upgrade"
|
||||
},
|
||||
"snap": {
|
||||
"slots": [
|
||||
{
|
||||
"mpris": {
|
||||
"interface": "mpris"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"dmg": {
|
||||
"background": "./resources/bg.tiff",
|
||||
"icon": "resources/icons/icon.ico"
|
||||
},
|
||||
"mas": {
|
||||
"entitlements": "./resources/entitlements.mac.plist",
|
||||
"entitlementsInherit": "./resources/entitlements.mac.plist"
|
||||
"deleteAppDataOnUninstall": true
|
||||
},
|
||||
"win": {
|
||||
"target": [
|
||||
|
@ -221,18 +168,8 @@
|
|||
"darkModeSupport": true,
|
||||
"target": [
|
||||
"dmg"
|
||||
],
|
||||
"extendInfo": {
|
||||
"NSUserNotificationAlertStyle": "alert"
|
||||
}
|
||||
}
|
||||
},
|
||||
"electronWebpack": {
|
||||
"devtool": "source-map"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18",
|
||||
"npm": ">= 6.13.4",
|
||||
"yarn": ">= 1.21.1"
|
||||
]
|
||||
},
|
||||
"artifactName": "${productName}.${ext}"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
exports.default = function (context) {
|
||||
const { execSync } = require("child_process");
|
||||
const fs = require("fs");
|
||||
|
||||
if (process.platform !== "darwin") return;
|
||||
|
||||
if (fs.existsSync("dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig"))
|
||||
fs.unlinkSync("dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig");
|
||||
if (fs.existsSync("dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig"))
|
||||
fs.unlinkSync("dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig");
|
||||
console.log('Castlabs-evs update start')
|
||||
execSync('python3 -m pip install --upgrade castlabs-evs')
|
||||
console.log('Castlabs-evs update complete')
|
||||
|
||||
// xcode 13
|
||||
if (
|
||||
fs.existsSync("dist/mac-universal--x64") &&
|
||||
fs.existsSync("dist/mac-universal--arm64") &&
|
||||
fs.existsSync("dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib")
|
||||
)
|
||||
execSync(
|
||||
"cp 'dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib' 'dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib'",
|
||||
{ stdio: "inherit" }
|
||||
);
|
||||
|
||||
console.log('VMP signing start')
|
||||
if (fs.existsSync('dist/mac-universal'))
|
||||
execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-universal',{stdio: 'inherit'})
|
||||
if (fs.existsSync('dist/mac'))
|
||||
execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac',{stdio: 'inherit'})
|
||||
if (fs.existsSync('dist/mac-arm64'))
|
||||
execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-arm64 -z',{stdio: 'inherit'})
|
||||
|
||||
console.log('VMP signing complete')
|
||||
};
|
18
resources/afterPack.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
exports.default = function(context) {
|
||||
const { execSync } = require('child_process')
|
||||
|
||||
if (process.platform !== 'darwin')
|
||||
return
|
||||
|
||||
console.log('Castlabs-evs update start')
|
||||
execSync('python3 -m pip install --upgrade castlabs-evs')
|
||||
console.log('Castlabs-evs update complete')
|
||||
|
||||
|
||||
|
||||
console.log('VMP signing start')
|
||||
|
||||
execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac',{stdio: 'inherit'})
|
||||
|
||||
console.log('VMP signing complete')
|
||||
}
|
|
@ -1,93 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg316"
|
||||
width="1000"
|
||||
height="1000"
|
||||
viewBox="0 0 1000 1000"
|
||||
sodipodi:docname="atreus.svg"
|
||||
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs320">
|
||||
<inkscape:path-effect
|
||||
effect="bspline"
|
||||
id="path-effect21501"
|
||||
is_visible="true"
|
||||
lpeversion="1"
|
||||
weight="33.333333"
|
||||
steps="2"
|
||||
helper_size="0"
|
||||
apply_no_weight="true"
|
||||
apply_with_weight="true"
|
||||
only_selected="false" />
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect21497"
|
||||
is_visible="true"
|
||||
lpeversion="1" />
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect21277"
|
||||
is_visible="true"
|
||||
lpeversion="1" />
|
||||
<inkscape:path-effect
|
||||
effect="spiro"
|
||||
id="path-effect21273"
|
||||
is_visible="true"
|
||||
lpeversion="1" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview318"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="true"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="471.5"
|
||||
inkscape:cy="396.5"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1044"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g322" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="Image"
|
||||
id="g322">
|
||||
<path
|
||||
style="display:inline;opacity:1;fill:#ff2654;fill-opacity:1;fill-rule:nonzero;stroke-width:0.7;stroke-dasharray:none"
|
||||
d="M 43.442873,500 C 44.729355,381.57807 94.612705,264.40544 179.08104,181.39635 263.54937,98.387264 381.57364,50.553165 500,51.331533 617.43261,52.10337 733.85918,100.6317 817.07592,183.49296 900.29266,266.35423 949.31889,382.57178 950.59458,500 951.88811,619.07066 904.01174,737.93437 820.54876,822.86626 737.08578,907.79814 619.07511,957.74081 500,958.52344 379.93115,959.3126 260.30587,910.07147 175.5853,824.98577 90.86473,739.90007 42.138548,620.06436 43.442873,500 Z"
|
||||
id="path21271"
|
||||
inkscape:path-effect="#path-effect21273"
|
||||
inkscape:original-d="M 43.442873,500 C -108.74384,347.15785 347.81529,200.88869 500,51.331533 652.18471,-98.225623 800.39739,350.44484 950.59458,500 1100.7918,649.55516 650.19919,805.68329 500,958.52344 349.80081,1111.3636 195.62958,652.84215 43.442873,500 Z" />
|
||||
<path
|
||||
style="display:inline;opacity:1;fill:#161616;fill-opacity:1;fill-rule:nonzero;stroke-width:7;stroke-dasharray:none"
|
||||
d="M 810.53125,500 C 809.3521,419.22061 775.44998,339.38827 718.14176,282.4456 660.83353,225.50293 580.78531,192.11226 500,191.45312 418.36315,190.78703 336.94829,223.58389 278.56844,280.65237 220.18858,337.72085 185.55094,418.36913 184.35937,500 183.14556,583.1542 216.70905,666.27439 275.32351,725.26964 333.93798,784.2649 416.83971,818.36602 500,817.6875 582.30875,817.01593 663.82438,782.31258 721.36031,723.45004 778.89624,664.5875 811.73263,582.30273 810.53125,500 Z"
|
||||
id="path21495"
|
||||
inkscape:path-effect="#path-effect21497"
|
||||
inkscape:original-d="M 810.53125,500 C 914.04066,394.10317 603.51142,294.30308 500,191.45312 396.48858,88.603166 289.57392,397.15204 184.35937,500 79.144833,602.84796 394.78746,711.79267 500,817.6875 605.21254,923.58233 707.02183,605.89683 810.53125,500 Z" />
|
||||
<path
|
||||
style="display:inline;opacity:1;fill:#ff2654;fill-opacity:1;fill-rule:nonzero;stroke-width:7;stroke-dasharray:none"
|
||||
d="M 759.34429,500 C 758.19835,432.60151 729.83099,366.05221 681.99531,318.55888 634.15963,271.06554 567.40514,243.17636 500,242.53125 431.75952,241.87814 363.66577,269.1855 314.77936,316.80177 265.89296,364.41804 236.80347,431.76626 235.64333,500 234.45795,569.71803 262.50003,639.47618 311.6155,688.97042 360.73098,738.46466 430.27509,767.04231 500,766.375 568.88957,765.71568 637.07217,736.5466 685.12903,687.18319 733.18589,637.81977 760.51546,568.88277 759.34429,500 Z"
|
||||
id="path21275"
|
||||
inkscape:path-effect="#path-effect21277"
|
||||
inkscape:original-d="M 759.34429,500 C 845.79139,411.20733 586.4491,328.35517 500,242.53125 413.5509,156.70733 323.76322,414.17808 235.64333,500 147.52345,585.82192 411.88211,677.58433 500,766.375 588.11789,855.16566 672.8972,588.79267 759.34429,500 Z" />
|
||||
<path
|
||||
style="display:inline;opacity:1;fill:#161616;fill-opacity:1;fill-rule:nonzero;stroke-width:7;stroke-dasharray:none"
|
||||
d="m 425.88442,448.01182 c -0.0883,28.34345 0.0296,84.32273 0.31267,112.73951 0.2831,28.41677 0.73019,29.26962 1.17791,30.12367 0,0 1.625,2.25 1.625,2.25 0,0 2.0625,1 2.0625,1 0,0 6.1875,0.625 6.1875,0.625 48.08333,-27.91667 96.16698,-55.83352 120.646,-70.22927 24.47902,-14.39575 25.354,-15.27073 25.9164,-16.08294 0.56241,-0.81221 0.8124,-1.56219 0.91669,-2.43698 0.10429,-0.87479 0.0626,-1.87477 -0.16633,-2.89553 -0.22895,-1.02076 -0.64561,-2.0624 -1.16617,-2.87503 -0.52057,-0.81263 -1.14556,-1.39595 -1.66634,-1.83354 -0.52079,-0.43759 -0.93744,-0.72924 -24.80769,-14.62209 -23.87026,-13.89285 -71.19225,-41.38567 -95.50189,-55.36818 -24.30965,-13.98252 -25.60599,-14.45391 -26.90262,-14.51314 -1.29664,-0.0592 -2.59298,0.29431 -3.74228,0.82467 -1.1493,0.53036 -2.15101,1.23745 -2.82884,1.85636 -0.67782,0.61891 -1.03137,1.14923 -1.35549,1.76809 -0.32412,0.61886 -0.61874,1.32595 -0.70702,29.6694 z"
|
||||
id="path21499"
|
||||
inkscape:path-effect="#path-effect21501"
|
||||
inkscape:original-d="m 425.67828,420.37498 c 0.11885,55.98029 0.2367,111.95957 0.35355,167.93786 0.44873,0.85507 1.34317,2.56216 1.34317,2.56216 0,0 1.625,2.25 1.625,2.25 0,0 2.0625,1 2.0625,1 0,0 6.1875,0.625 6.1875,0.625 0,0 96.16767,-55.83233 144.25,-83.75 0.87602,-0.87402 1.751,-1.749 2.625,-2.625 0.251,-0.74902 0.501,-1.499 0.75,-2.25 -0.0407,-0.99902 -0.0823,-1.999 -0.125,-3 -0.41568,-1.04069 -0.83233,-2.08233 -1.25,-3.125 -0.62401,-0.58235 -1.249,-1.16567 -1.875,-1.75 -0.41568,-0.29067 -0.83233,-0.58233 -1.25,-0.875 -47.32288,-27.49292 -94.64487,-54.98573 -141.9688,-82.4801 -1.29539,-0.47041 -2.59172,-0.94181 -3.88908,-1.41421 -1.29539,0.35456 -2.59173,0.70811 -3.88909,1.06066 -1.00076,0.70812 -2.00247,1.41521 -3.00521,2.12132 -0.35256,0.53134 -0.7061,1.06166 -1.06066,1.59099 -0.29363,0.70812 -0.58825,1.41521 -0.88388,2.12132 z" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 6.5 KiB |
BIN
resources/icons/media/dark/next-inactive.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
resources/icons/media/dark/next.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
resources/icons/media/dark/pause-inactive.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/icons/media/dark/pause.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
resources/icons/media/dark/play-inactive.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
resources/icons/media/dark/play.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
resources/icons/media/dark/previous-inactive.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
resources/icons/media/dark/previous.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
resources/icons/media/light/next-inactive.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
resources/icons/media/light/next.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
resources/icons/media/light/pause-inactive.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/icons/media/light/pause.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/icons/media/light/play-inactive.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
resources/icons/media/light/play.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
resources/icons/media/light/previous-inactive.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
resources/icons/media/light/previous.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 6 KiB |
Before Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 5 KiB |
Before Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 7 KiB |
4
resources/lfmApiCredentials.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"key": "f9986d12aab5a0fe66193c559435ede3",
|
||||
"secret": "acba3c29bd5973efa38cc2f0b63cc625"
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"$schema": "https://github.com/argv-minus-one/dmg-license/raw/master/schema.json",
|
||||
"body": [
|
||||
{
|
||||
"file": "license.txt",
|
||||
"lang": ["en-US"]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,661 +0,0 @@
|
|||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
|
@ -1,408 +0,0 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const bluebird_lst_1 = require("bluebird-lst");
|
||||
const builder_util_1 = require("builder-util");
|
||||
const electron_osx_sign_1 = require("electron-osx-sign");
|
||||
const promises_1 = require("fs/promises");
|
||||
const lazy_val_1 = require("lazy-val");
|
||||
const path = require("path");
|
||||
const fs_1 = require("builder-util/out/fs");
|
||||
const promise_1 = require("builder-util/out/promise");
|
||||
const appInfo_1 = require("./appInfo");
|
||||
const macCodeSign_1 = require("./codeSign/macCodeSign");
|
||||
const core_1 = require("./core");
|
||||
const platformPackager_1 = require("./platformPackager");
|
||||
const ArchiveTarget_1 = require("./targets/ArchiveTarget");
|
||||
const pkg_1 = require("./targets/pkg");
|
||||
const targetFactory_1 = require("./targets/targetFactory");
|
||||
const macosVersion_1 = require("./util/macosVersion");
|
||||
const pathManager_1 = require("./util/pathManager");
|
||||
const fs = require("fs/promises");
|
||||
class MacPackager extends platformPackager_1.PlatformPackager {
|
||||
constructor(info) {
|
||||
super(info, core_1.Platform.MAC);
|
||||
this.codeSigningInfo = new lazy_val_1.Lazy(() => {
|
||||
const cscLink = this.getCscLink();
|
||||
if (cscLink == null || process.platform !== "darwin") {
|
||||
return Promise.resolve({
|
||||
keychainFile: process.env.CSC_KEYCHAIN || null,
|
||||
});
|
||||
}
|
||||
return macCodeSign_1
|
||||
.createKeychain({
|
||||
tmpDir: this.info.tempDirManager,
|
||||
cscLink,
|
||||
cscKeyPassword: this.getCscPassword(),
|
||||
cscILink: platformPackager_1.chooseNotNull(this.platformSpecificBuildOptions.cscInstallerLink, process.env.CSC_INSTALLER_LINK),
|
||||
cscIKeyPassword: platformPackager_1.chooseNotNull(this.platformSpecificBuildOptions.cscInstallerKeyPassword, process.env.CSC_INSTALLER_KEY_PASSWORD),
|
||||
currentDir: this.projectDir,
|
||||
})
|
||||
.then((result) => {
|
||||
const keychainFile = result.keychainFile;
|
||||
if (keychainFile != null) {
|
||||
this.info.disposeOnBuildFinish(() => macCodeSign_1.removeKeychain(keychainFile));
|
||||
}
|
||||
return result;
|
||||
});
|
||||
});
|
||||
this._iconPath = new lazy_val_1.Lazy(() => this.getOrConvertIcon("icns"));
|
||||
}
|
||||
get defaultTarget() {
|
||||
return this.info.framework.macOsDefaultTargets;
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
prepareAppInfo(appInfo) {
|
||||
return new appInfo_1.AppInfo(this.info, this.platformSpecificBuildOptions.bundleVersion, this.platformSpecificBuildOptions);
|
||||
}
|
||||
async getIconPath() {
|
||||
return this._iconPath.value;
|
||||
}
|
||||
createTargets(targets, mapper) {
|
||||
for (const name of targets) {
|
||||
switch (name) {
|
||||
case core_1.DIR_TARGET:
|
||||
break;
|
||||
case "dmg": {
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const { DmgTarget } = require("dmg-builder");
|
||||
mapper(name, (outDir) => new DmgTarget(this, outDir));
|
||||
break;
|
||||
}
|
||||
case "zip":
|
||||
// https://github.com/electron-userland/electron-builder/issues/2313
|
||||
mapper(name, (outDir) => new ArchiveTarget_1.ArchiveTarget(name, outDir, this, true));
|
||||
break;
|
||||
case "pkg":
|
||||
mapper(name, (outDir) => new pkg_1.PkgTarget(this, outDir));
|
||||
break;
|
||||
default:
|
||||
mapper(name, (outDir) => (name === "mas" || name === "mas-dev" ? new targetFactory_1.NoOpTarget(name) : targetFactory_1.createCommonTarget(name, outDir, this)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
async doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets) {
|
||||
switch (arch) {
|
||||
default: {
|
||||
return super.doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets);
|
||||
}
|
||||
case builder_util_1.Arch.universal: {
|
||||
const x64Arch = builder_util_1.Arch.x64;
|
||||
const x64AppOutDir = appOutDir + "--" + builder_util_1.Arch[x64Arch];
|
||||
await super.doPack(outDir, x64AppOutDir, platformName, x64Arch, platformSpecificBuildOptions, targets, false, true);
|
||||
const arm64Arch = builder_util_1.Arch.arm64;
|
||||
const arm64AppOutPath = appOutDir + "--" + builder_util_1.Arch[arm64Arch];
|
||||
await super.doPack(outDir, arm64AppOutPath, platformName, arm64Arch, platformSpecificBuildOptions, targets, false, true);
|
||||
const framework = this.info.framework;
|
||||
builder_util_1.log.info(
|
||||
{
|
||||
platform: platformName,
|
||||
arch: builder_util_1.Arch[arch],
|
||||
[`${framework.name}`]: framework.version,
|
||||
appOutDir: builder_util_1.log.filePath(appOutDir),
|
||||
},
|
||||
`packaging`
|
||||
);
|
||||
const appFile = `${this.appInfo.productFilename}.app`;
|
||||
const { makeUniversalApp } = require("@electron/universal");
|
||||
await makeUniversalApp({
|
||||
x64AppPath: path.join(x64AppOutDir, appFile),
|
||||
arm64AppPath: path.join(arm64AppOutPath, appFile),
|
||||
outAppPath: path.join(appOutDir, appFile),
|
||||
force: true,
|
||||
});
|
||||
await fs.rm(x64AppOutDir, { recursive: true, force: true });
|
||||
await fs.rm(arm64AppOutPath, { recursive: true, force: true });
|
||||
const packContext = {
|
||||
appOutDir,
|
||||
outDir,
|
||||
arch,
|
||||
targets,
|
||||
packager: this,
|
||||
electronPlatformName: platformName,
|
||||
};
|
||||
await this.info.afterPack(packContext);
|
||||
if (framework.afterPack != null) {
|
||||
await framework.afterPack(packContext);
|
||||
}
|
||||
await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
async pack(outDir, arch, targets, taskManager) {
|
||||
let nonMasPromise = null;
|
||||
const hasMas = targets.length !== 0 && targets.some((it) => it.name === "mas" || it.name === "mas-dev");
|
||||
const prepackaged = this.packagerOptions.prepackaged;
|
||||
if (!hasMas || targets.length > 1) {
|
||||
const appPath = prepackaged == null ? path.join(this.computeAppOutDir(outDir, arch), `${this.appInfo.productFilename}.app`) : prepackaged;
|
||||
nonMasPromise = (prepackaged ? Promise.resolve() : this.doPack(outDir, path.dirname(appPath), this.platform.nodeName, arch, this.platformSpecificBuildOptions, targets)).then(() =>
|
||||
this.packageInDistributableFormat(appPath, arch, targets, taskManager)
|
||||
);
|
||||
}
|
||||
for (const target of targets) {
|
||||
const targetName = target.name;
|
||||
if (!(targetName === "mas" || targetName === "mas-dev")) {
|
||||
continue;
|
||||
}
|
||||
const masBuildOptions = builder_util_1.deepAssign({}, this.platformSpecificBuildOptions, this.config.mas);
|
||||
if (targetName === "mas-dev") {
|
||||
builder_util_1.deepAssign(masBuildOptions, this.config.masDev, {
|
||||
type: "development",
|
||||
});
|
||||
}
|
||||
const targetOutDir = path.join(outDir, `${targetName}${builder_util_1.getArchSuffix(arch)}`);
|
||||
if (prepackaged == null) {
|
||||
await this.doPack(outDir, targetOutDir, "mas", arch, masBuildOptions, [target]);
|
||||
await this.sign(path.join(targetOutDir, `${this.appInfo.productFilename}.app`), targetOutDir, masBuildOptions, arch);
|
||||
} else {
|
||||
await this.sign(prepackaged, targetOutDir, masBuildOptions, arch);
|
||||
}
|
||||
}
|
||||
if (nonMasPromise != null) {
|
||||
await nonMasPromise;
|
||||
}
|
||||
}
|
||||
async sign(appPath, outDir, masOptions, arch) {
|
||||
if (!macCodeSign_1.isSignAllowed()) {
|
||||
return;
|
||||
}
|
||||
const isMas = masOptions != null;
|
||||
const options = masOptions == null ? this.platformSpecificBuildOptions : masOptions;
|
||||
const qualifier = options.identity;
|
||||
if (!isMas && qualifier === null) {
|
||||
if (this.forceCodeSigning) {
|
||||
throw new builder_util_1.InvalidConfigurationError("identity explicitly is set to null, but forceCodeSigning is set to true");
|
||||
}
|
||||
builder_util_1.log.info({ reason: "identity explicitly is set to null" }, "skipped macOS code signing");
|
||||
return;
|
||||
}
|
||||
const keychainFile = (await this.codeSigningInfo.value).keychainFile;
|
||||
const explicitType = options.type;
|
||||
const type = explicitType || "distribution";
|
||||
const isDevelopment = type === "development";
|
||||
const certificateTypes = getCertificateTypes(isMas, isDevelopment);
|
||||
let identity = null;
|
||||
for (const certificateType of certificateTypes) {
|
||||
identity = await macCodeSign_1.findIdentity(certificateType, qualifier, keychainFile);
|
||||
if (identity != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (identity == null) {
|
||||
if (!isMas && !isDevelopment && explicitType !== "distribution") {
|
||||
identity = await macCodeSign_1.findIdentity("Mac Developer", qualifier, keychainFile);
|
||||
if (identity != null) {
|
||||
builder_util_1.log.warn("Mac Developer is used to sign app — it is only for development and testing, not for production");
|
||||
}
|
||||
}
|
||||
if (identity == null) {
|
||||
await macCodeSign_1.reportError(isMas, certificateTypes, qualifier, keychainFile, this.forceCodeSigning);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!macosVersion_1.isMacOsHighSierra()) {
|
||||
throw new builder_util_1.InvalidConfigurationError("macOS High Sierra 10.13.6 is required to sign");
|
||||
}
|
||||
let filter = options.signIgnore;
|
||||
if (Array.isArray(filter)) {
|
||||
if (filter.length == 0) {
|
||||
filter = null;
|
||||
}
|
||||
} else if (filter != null) {
|
||||
filter = filter.length === 0 ? null : [filter];
|
||||
}
|
||||
const filterRe = filter == null ? null : filter.map((it) => new RegExp(it));
|
||||
let binaries = options.binaries || undefined;
|
||||
if (binaries) {
|
||||
// Accept absolute paths for external binaries, else resolve relative paths from the artifact's app Contents path.
|
||||
const userDefinedBinaries = await Promise.all(
|
||||
binaries.map(async (destination) => {
|
||||
if (await fs_1.statOrNull(destination)) {
|
||||
return destination;
|
||||
}
|
||||
return path.resolve(appPath, destination);
|
||||
})
|
||||
);
|
||||
// Insert at front to prioritize signing. We still sort by depth next
|
||||
binaries = userDefinedBinaries.concat(binaries);
|
||||
builder_util_1.log.info("Signing addtional user-defined binaries: " + JSON.stringify(userDefinedBinaries, null, 1));
|
||||
}
|
||||
const signOptions = {
|
||||
"identity-validation": false,
|
||||
// https://github.com/electron-userland/electron-builder/issues/1699
|
||||
// kext are signed by the chipset manufacturers. You need a special certificate (only available on request) from Apple to be able to sign kext.
|
||||
ignore: (file) => {
|
||||
if (filterRe != null) {
|
||||
for (const regExp of filterRe) {
|
||||
if (regExp.test(file)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return (
|
||||
file.endsWith(".kext") ||
|
||||
file.startsWith("/Contents/PlugIns", appPath.length) ||
|
||||
file.includes("/node_modules/puppeteer/.local-chromium") ||
|
||||
file.includes("/node_modules/playwright-firefox/.local-browsers") ||
|
||||
file.includes("/node_modules/playwright/.local-browsers")
|
||||
);
|
||||
/* Those are browser automating modules, browser (chromium, nightly) cannot be signed
|
||||
https://github.com/electron-userland/electron-builder/issues/2010
|
||||
https://github.com/electron-userland/electron-builder/issues/5383
|
||||
*/
|
||||
},
|
||||
identity: identity,
|
||||
type,
|
||||
platform: isMas ? "mas" : "darwin",
|
||||
version: this.config.electronVersion,
|
||||
app: appPath,
|
||||
keychain: keychainFile || undefined,
|
||||
binaries,
|
||||
timestamp: isMas ? (masOptions === null || masOptions === void 0 ? void 0 : masOptions.timestamp) : options.timestamp,
|
||||
requirements: isMas || this.platformSpecificBuildOptions.requirements == null ? undefined : await this.getResource(this.platformSpecificBuildOptions.requirements),
|
||||
// https://github.com/electron-userland/electron-osx-sign/issues/196
|
||||
// will fail on 10.14.5+ because a signed but unnotarized app is also rejected.
|
||||
"gatekeeper-assess": options.gatekeeperAssess === true,
|
||||
// https://github.com/electron-userland/electron-builder/issues/1480
|
||||
"strict-verify": options.strictVerify,
|
||||
hardenedRuntime: isMas ? masOptions && masOptions.hardenedRuntime === true : options.hardenedRuntime !== false,
|
||||
};
|
||||
await this.adjustSignOptions(signOptions, masOptions);
|
||||
builder_util_1.log.info(
|
||||
{
|
||||
file: builder_util_1.log.filePath(appPath),
|
||||
identityName: identity.name,
|
||||
identityHash: identity.hash,
|
||||
provisioningProfile: signOptions["provisioning-profile"] || "none",
|
||||
},
|
||||
"signing"
|
||||
);
|
||||
await this.doSign(signOptions);
|
||||
// https://github.com/electron-userland/electron-builder/issues/1196#issuecomment-312310209
|
||||
if (masOptions != null && !isDevelopment) {
|
||||
const certType = isDevelopment ? "Mac Developer" : "3rd Party Mac Developer Installer";
|
||||
const masInstallerIdentity = await macCodeSign_1.findIdentity(certType, masOptions.identity, keychainFile);
|
||||
if (masInstallerIdentity == null) {
|
||||
throw new builder_util_1.InvalidConfigurationError(`Cannot find valid "${certType}" identity to sign MAS installer, please see https://electron.build/code-signing`);
|
||||
}
|
||||
// mas uploaded to AppStore, so, use "-" instead of space for name
|
||||
const artifactName = this.expandArtifactNamePattern(masOptions, "pkg", arch);
|
||||
const artifactPath = path.join(outDir, artifactName);
|
||||
await this.doFlat(appPath, artifactPath, masInstallerIdentity, keychainFile);
|
||||
await this.dispatchArtifactCreated(artifactPath, null, builder_util_1.Arch.x64, this.computeSafeArtifactName(artifactName, "pkg", arch, true, this.platformSpecificBuildOptions.defaultArch));
|
||||
}
|
||||
}
|
||||
async adjustSignOptions(signOptions, masOptions) {
|
||||
const resourceList = await this.resourceList;
|
||||
const customSignOptions = masOptions || this.platformSpecificBuildOptions;
|
||||
const entitlementsSuffix = masOptions == null ? "mac" : "mas";
|
||||
let entitlements = customSignOptions.entitlements;
|
||||
if (entitlements == null) {
|
||||
const p = `entitlements.${entitlementsSuffix}.plist`;
|
||||
if (resourceList.includes(p)) {
|
||||
entitlements = path.join(this.info.buildResourcesDir, p);
|
||||
} else {
|
||||
entitlements = pathManager_1.getTemplatePath("entitlements.mac.plist");
|
||||
}
|
||||
}
|
||||
signOptions.entitlements = entitlements;
|
||||
let entitlementsInherit = customSignOptions.entitlementsInherit;
|
||||
if (entitlementsInherit == null) {
|
||||
const p = `entitlements.${entitlementsSuffix}.inherit.plist`;
|
||||
if (resourceList.includes(p)) {
|
||||
entitlementsInherit = path.join(this.info.buildResourcesDir, p);
|
||||
} else {
|
||||
entitlementsInherit = pathManager_1.getTemplatePath("entitlements.mac.plist");
|
||||
}
|
||||
}
|
||||
signOptions["entitlements-inherit"] = entitlementsInherit;
|
||||
if (customSignOptions.provisioningProfile != null) {
|
||||
signOptions["provisioning-profile"] = customSignOptions.provisioningProfile;
|
||||
}
|
||||
signOptions["entitlements-loginhelper"] = customSignOptions.entitlementsLoginHelper;
|
||||
}
|
||||
//noinspection JSMethodCanBeStatic
|
||||
async doSign(opts) {
|
||||
return electron_osx_sign_1.signAsync(opts);
|
||||
}
|
||||
//noinspection JSMethodCanBeStatic
|
||||
async doFlat(appPath, outFile, identity, keychain) {
|
||||
// productbuild doesn't created directory for out file
|
||||
await promises_1.mkdir(path.dirname(outFile), { recursive: true });
|
||||
const args = pkg_1.prepareProductBuildArgs(identity, keychain);
|
||||
args.push("--component", appPath, "/Applications");
|
||||
args.push(outFile);
|
||||
return await builder_util_1.exec("productbuild", args);
|
||||
}
|
||||
getElectronSrcDir(dist) {
|
||||
return path.resolve(this.projectDir, dist, this.info.framework.distMacOsAppName);
|
||||
}
|
||||
getElectronDestinationDir(appOutDir) {
|
||||
return path.join(appOutDir, this.info.framework.distMacOsAppName);
|
||||
}
|
||||
// todo fileAssociations
|
||||
async applyCommonInfo(appPlist, contentsPath) {
|
||||
const appInfo = this.appInfo;
|
||||
const appFilename = appInfo.productFilename;
|
||||
// https://github.com/electron-userland/electron-builder/issues/1278
|
||||
appPlist.CFBundleExecutable = appFilename.endsWith(" Helper") ? appFilename.substring(0, appFilename.length - " Helper".length) : appFilename;
|
||||
const icon = await this.getIconPath();
|
||||
if (icon != null) {
|
||||
const oldIcon = appPlist.CFBundleIconFile;
|
||||
const resourcesPath = path.join(contentsPath, "Resources");
|
||||
if (oldIcon != null) {
|
||||
await fs_1.unlinkIfExists(path.join(resourcesPath, oldIcon));
|
||||
}
|
||||
const iconFileName = "icon.icns";
|
||||
appPlist.CFBundleIconFile = iconFileName;
|
||||
await fs_1.copyFile(icon, path.join(resourcesPath, iconFileName));
|
||||
}
|
||||
appPlist.CFBundleName = appInfo.productName;
|
||||
appPlist.CFBundleDisplayName = appInfo.productName;
|
||||
const minimumSystemVersion = this.platformSpecificBuildOptions.minimumSystemVersion;
|
||||
if (minimumSystemVersion != null) {
|
||||
appPlist.LSMinimumSystemVersion = minimumSystemVersion;
|
||||
}
|
||||
appPlist.CFBundleIdentifier = appInfo.macBundleIdentifier;
|
||||
appPlist.CFBundleShortVersionString = this.platformSpecificBuildOptions.bundleShortVersion || appInfo.version;
|
||||
appPlist.CFBundleVersion = appInfo.buildVersion;
|
||||
builder_util_1.use(this.platformSpecificBuildOptions.category || this.config.category, (it) => (appPlist.LSApplicationCategoryType = it));
|
||||
appPlist.NSHumanReadableCopyright = appInfo.copyright;
|
||||
if (this.platformSpecificBuildOptions.darkModeSupport) {
|
||||
appPlist.NSRequiresAquaSystemAppearance = false;
|
||||
}
|
||||
const extendInfo = this.platformSpecificBuildOptions.extendInfo;
|
||||
if (extendInfo != null) {
|
||||
Object.assign(appPlist, extendInfo);
|
||||
}
|
||||
}
|
||||
async signApp(packContext, isAsar) {
|
||||
const appFileName = `${this.appInfo.productFilename}.app`;
|
||||
await bluebird_lst_1.default.map(promises_1.readdir(packContext.appOutDir), (file) => {
|
||||
if (file === appFileName) {
|
||||
return this.sign(path.join(packContext.appOutDir, file), null, null, null);
|
||||
}
|
||||
return null;
|
||||
});
|
||||
if (!isAsar) {
|
||||
return;
|
||||
}
|
||||
const outResourcesDir = path.join(packContext.appOutDir, "resources", "app.asar.unpacked");
|
||||
await bluebird_lst_1.default.map(promise_1.orIfFileNotExist(promises_1.readdir(outResourcesDir), []), (file) => {
|
||||
if (file.endsWith(".app")) {
|
||||
return this.sign(path.join(outResourcesDir, file), null, null, null);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.default = MacPackager;
|
||||
function getCertificateTypes(isMas, isDevelopment) {
|
||||
if (isDevelopment) {
|
||||
return isMas ? ["Mac Developer", "Apple Development"] : ["Developer ID Application"];
|
||||
}
|
||||
return isMas ? ["Apple Distribution"] : ["Developer ID Application"];
|
||||
}
|
||||
//# sourceMappingURL=macPackager.js.map
|
|
@ -1,18 +0,0 @@
|
|||
require("dotenv").config();
|
||||
const { notarize } = require("electron-notarize");
|
||||
|
||||
exports.default = async function notarizing(context) {
|
||||
const { electronPlatformName, appOutDir } = context;
|
||||
if (electronPlatformName !== "darwin") {
|
||||
return;
|
||||
}
|
||||
|
||||
const appName = context.packager.appInfo.productFilename;
|
||||
|
||||
return await notarize({
|
||||
appBundleId: "com.ciderapp.cider",
|
||||
appPath: `${appOutDir}/${appName}.app`,
|
||||
appleId: process.env.APPLEID,
|
||||
appleIdPassword: process.env.APPLEIDPASS,
|
||||
});
|
||||
};
|
20
resources/notarize.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
|
||||
|
||||
require('dotenv').config();
|
||||
const { notarize } = require('electron-notarize');
|
||||
|
||||
exports.default = async function notarizing(context) {
|
||||
const { electronPlatformName, appOutDir } = context;
|
||||
if (electronPlatformName !== 'darwin') {
|
||||
return;
|
||||
}
|
||||
|
||||
const appName = context.packager.appInfo.productFilename;
|
||||
|
||||
return await notarize({
|
||||
appBundleId: 'com.ciderapp.cider',
|
||||
appPath: `${appOutDir}/${appName}.app`,
|
||||
appleId: process.env.APPLEID,
|
||||
appleIdPassword: process.env.APPLEIDPASS,
|
||||
});
|
||||
};
|
|
@ -1,77 +0,0 @@
|
|||
// Type definitions for verror 1.10
|
||||
// Project: https://github.com/davepacheco/node-verror
|
||||
// Definitions by: Sven Reglitzki <https://github.com/svi3c>, Maxime Toumi-M <https://github.com/max4t>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/*
|
||||
* VError([cause], fmt[, arg...]): Like JavaScript's built-in Error class, but
|
||||
* supports a "cause" argument (another error) and a printf-style message. The
|
||||
* cause argument can be null or omitted entirely.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* CODE MESSAGE
|
||||
* new VError('something bad happened') "something bad happened"
|
||||
* new VError('missing file: "%s"', file) "missing file: "/etc/passwd"
|
||||
* with file = '/etc/passwd'
|
||||
* new VError(err, 'open failed') "open failed: file not found"
|
||||
* with err.message = 'file not found'
|
||||
*/
|
||||
declare class VError extends Error {
|
||||
static VError: typeof VError;
|
||||
|
||||
static cause(err: Error): Error | null;
|
||||
static info(err: Error): VError.Info;
|
||||
static fullStack(err: Error): string;
|
||||
static findCauseByName(err: Error, name: string): Error | null;
|
||||
static hasCauseWithName(err: Error, name: string): boolean;
|
||||
static errorFromList<T extends Error>(errors: T[]): null | T | VError.MultiError;
|
||||
static errorForEach(err: Error, func: (err: Error) => void): void;
|
||||
|
||||
//@ts-ignore
|
||||
cause(): Error | undefined;
|
||||
constructor(options: VError.Options | Error, message: string, ...params: any[]);
|
||||
constructor(message?: string, ...params: any[]);
|
||||
}
|
||||
|
||||
declare namespace VError {
|
||||
interface Info {
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
interface Options {
|
||||
cause?: Error | null | undefined;
|
||||
name?: string | undefined;
|
||||
strict?: boolean | undefined;
|
||||
constructorOpt?(...args: any[]): void;
|
||||
info?: Info | undefined;
|
||||
}
|
||||
|
||||
/*
|
||||
* SError is like VError, but stricter about types. You cannot pass "null" or
|
||||
* "undefined" as string arguments to the formatter. Since SError is only a
|
||||
* different function, not really a different class, we don't set
|
||||
* SError.prototype.name.
|
||||
*/
|
||||
class SError extends VError {}
|
||||
|
||||
/*
|
||||
* Represents a collection of errors for the purpose of consumers that generally
|
||||
* only deal with one error. Callers can extract the individual errors
|
||||
* contained in this object, but may also just treat it as a normal single
|
||||
* error, in which case a summary message will be printed.
|
||||
*/
|
||||
class MultiError extends VError {
|
||||
constructor(errors: Error[]);
|
||||
errors(): Error[];
|
||||
}
|
||||
|
||||
/*
|
||||
* Like JavaScript's built-in Error class, but supports a "cause" argument which
|
||||
* is wrapped, not "folded in" as with VError. Accepts a printf-style message.
|
||||
* The cause argument can be null.
|
||||
*/
|
||||
class WError extends VError {}
|
||||
}
|
||||
|
||||
export = VError;
|
|
@ -1,44 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Setup the variables needed
|
||||
if [[ $GH_REQUEST_TOKEN != "" ]]; then
|
||||
STABLE_SHA=$(curl -H "Authorization: token ${GH_REQUEST_TOKEN}" -s https://api.github.com/repos/ciderapp/Cider/branches/stable | grep '"sha"' | head -1 | cut -d '"' -f 4)
|
||||
elif [[ $GITHUB_TOKEN != "" ]]; then
|
||||
STABLE_SHA=$(curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/ciderapp/Cider/branches/stable | grep '"sha"' | head -1 | cut -d '"' -f 4)
|
||||
else
|
||||
STABLE_SHA=$(curl -s https://api.github.com/repos/ciderapp/Cider/branches/stable | grep '"sha"' | head -1 | cut -d '"' -f 4)
|
||||
fi
|
||||
|
||||
SHA_DATE=$(git show -s --format=%ci $STABLE_SHA)
|
||||
VERSION_POSTFIX=$(git rev-list $STABLE_SHA..HEAD --count --since="$SHA_DATE")
|
||||
CURRENT_VERSION=$(node -p -e "require('./package.json').version" | cut -d '-' -f 1)
|
||||
|
||||
# Set the version number for commits on main branch
|
||||
if [[ ($CIRCLE_BRANCH == "main" || $GITHUB_REF_NAME == "main") && $VERSION_POSTFIX -gt 0 ]]; then
|
||||
NEW_VERSION_NUMBERED="$CURRENT_VERSION-beta.$(printf "%03d\n" $VERSION_POSTFIX)"
|
||||
NEW_VERSION="${CURRENT_VERSION}-beta.${VERSION_POSTFIX}"
|
||||
|
||||
# Update the version in package.json
|
||||
if [[ $NO_WRITE_VER == "" && $(node -p -e "require('./package.json').version" | cut -d '.' -f 4) != $VERSION_POSTFIX ]]; then
|
||||
if [[ $RUNNER_OS == "macOS" ]]; then
|
||||
sed -i "" -e "s/$CURRENT_VERSION/$NEW_VERSION/" package.json
|
||||
else
|
||||
sed -i "0,/$CURRENT_VERSION/s//$NEW_VERSION/" package.json
|
||||
fi
|
||||
fi
|
||||
else
|
||||
NEW_VERSION_NUMBERED=$CURRENT_VERSION
|
||||
NEW_VERSION=$CURRENT_VERSION
|
||||
fi
|
||||
|
||||
echo $NEW_VERSION
|
||||
|
||||
|
||||
# Add the version to the environment for CI usage
|
||||
if [[ $GITHUB_REF_NAME != "" ]] && [[ "$GITHUB_ENV" ]]; then
|
||||
echo "APP_VERSION=$NEW_VERSION" >>$GITHUB_ENV
|
||||
echo "RELEASE_VERSION=$NEW_VERSION_NUMBERED" >>$GITHUB_ENV
|
||||
elif [[ $CIRCLE_BRANCH != "" ]] && [[ "$BASH_ENV" ]]; then
|
||||
echo "export APP_VERSION=$NEW_VERSION" >>$BASH_ENV
|
||||
echo "export RELEASE_VERSION=$NEW_VERSION_NUMBERED" >>$BASH_ENV
|
||||
fi
|
61
src/__tests__/base.test.ts
Normal file
|
@ -0,0 +1,61 @@
|
|||
import { _electron as electron } from "playwright";
|
||||
import { test, expect } from "@playwright/test";
|
||||
import { resolve } from "path";
|
||||
import * as fs from "fs";
|
||||
|
||||
test("Launch electron app", async () => {
|
||||
|
||||
const paths = {
|
||||
"mainBuild": resolve(__dirname, "../../build/"),
|
||||
"main": resolve(__dirname, "../main"),
|
||||
"root": resolve(__dirname, "../../"),
|
||||
"cwd": __dirname,
|
||||
"processcwd": process.cwd()
|
||||
}
|
||||
|
||||
console.log(paths)
|
||||
|
||||
console.log(fs.readdirSync(paths.main))
|
||||
|
||||
const electronApp = await electron.launch({ args: ['build/index.js'], cwd: paths.root });
|
||||
|
||||
const appPath = await electronApp.evaluate(async ({ app }) => {
|
||||
// This runs in the main Electron process, parameter here is always
|
||||
// the result of the require('electron') in the main app script.
|
||||
return app.getAppPath();
|
||||
});
|
||||
console.log(`cwd: ${appPath}`);
|
||||
|
||||
|
||||
|
||||
const windowState: { isVisible: boolean, isDevToolsOpened: boolean, isCrashed: boolean } = await electronApp.evaluate(async ({ BrowserWindow, app }) => {
|
||||
const win = BrowserWindow.getAllWindows()[0];
|
||||
|
||||
console.log(win)
|
||||
|
||||
const getState = (win: Electron.BrowserWindow) => ({
|
||||
isVisible: win.isVisible(),
|
||||
isDevToolsOpened: win.webContents.isDevToolsOpened(),
|
||||
isCrashed: win.webContents.isCrashed()
|
||||
})
|
||||
|
||||
return new Promise((resolve) => {
|
||||
if (win && win.isVisible()) {
|
||||
resolve(getState(win))
|
||||
} else if (win) {
|
||||
win.once("ready-to-show", () => setTimeout(() => resolve(getState(win))));
|
||||
} else {
|
||||
app.once("browser-window-created", (_e: Event, window: Electron.BrowserWindow) => setTimeout(() => resolve(getState(window))));
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
console.log(windowState)
|
||||
|
||||
expect(windowState.isVisible).toBeTruthy();
|
||||
expect(windowState.isDevToolsOpened).toBeFalsy();
|
||||
expect(windowState.isCrashed).toBeFalsy();
|
||||
|
||||
await electronApp.close();
|
||||
});
|
|
@ -1,26 +0,0 @@
|
|||
const CiderKit = {
|
||||
v1: {
|
||||
musickit: {
|
||||
async mkv3(route, body, options) {
|
||||
let opts = {
|
||||
method: "POST",
|
||||
cache: "no-cache",
|
||||
credentials: "same-origin",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
redirect: "follow",
|
||||
referrerPolicy: "no-referrer",
|
||||
body: {},
|
||||
};
|
||||
opts.body = JSON.stringify({
|
||||
route: route,
|
||||
body: body,
|
||||
options: options,
|
||||
});
|
||||
let response = await fetch("./api/musickit/v3", opts);
|
||||
return response.json();
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
19
src/i18n/README.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Cider i18n
|
||||
|
||||
Some notes about Cider's i18n support.
|
||||
|
||||
- Localization files are stored in jsonc format aka "JSON with Comments"
|
||||
- The default language is English.
|
||||
- The default language is used for messages that are not translated.
|
||||
- Try when possible to keep the messages the similar in length to the English ones.
|
||||
- Most of the strings in the content area are provided and translated by Apple themselves, and do not need to be translated.
|
||||
- The language Apple Music uses are dependent on the storefront region.
|
||||
|
||||
|
||||
## Localization Notices
|
||||
|
||||
Several changes have been made to configuration options and will be listed below with the relevant locales that have
|
||||
been modified, the ones not mentioned in the list need modifying.
|
||||
|
||||
* `settings.option.experimental.closeButtonBehaviour`: Changed to `close_button_hide` - Should be "Close Button Should Hide the Application". `.quit`, `.minimizeTaskbar` and `.minimizeTray` have been removed. Translations done for en_US.
|
||||
* `action.update`: Added for `en_US`.
|
312
src/i18n/de_DE.jsonc
Normal file
|
@ -0,0 +1,312 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "Deutsch", // name of language in native language
|
||||
"i18n.languageNameEnglish": "German", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@motz0815 @n0chteil", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${d}.${m}.${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "Abbrechen",
|
||||
"dialog.ok": "OK",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "Aktualisiere Songs...",
|
||||
"notification.updatingLibraryAlbums": "Aktualisiere Alben...",
|
||||
"notification.updatingLibraryArtists": "Aktualisiere Künstler...",
|
||||
// Terms
|
||||
"term.appleInc": "Apple Inc.",
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "Mehr erfahren",
|
||||
"term.accountSettings": "Account-Einstellungen",
|
||||
"term.logout": "Abmelden",
|
||||
"term.login": "Anmelden",
|
||||
"term.about": "Über",
|
||||
"term.privateSession": "Private Sitzung",
|
||||
"term.queue": "Warteschlange",
|
||||
"term.search": "Suche",
|
||||
"term.library": "Mediathek",
|
||||
"term.listenNow": "Jetzt Hören",
|
||||
"term.browse": "Durchsuchen",
|
||||
"term.radio": "Radio",
|
||||
"term.recentlyAdded": "Zuletzt hinzugefügt",
|
||||
"term.songs": "Songs",
|
||||
"term.albums": "Alben",
|
||||
"term.artists": "Künstler",
|
||||
"term.podcasts": "Podcasts",
|
||||
"term.playlists": "Playlists",
|
||||
"term.playlist": "Playlist",
|
||||
"term.newPlaylist": "Neue Playlist",
|
||||
"term.newPlaylistFolder": "Neuer Playlist-Ordner",
|
||||
"term.createNewPlaylist": "Neue Playlist erstellen",
|
||||
"term.createNewPlaylistFolder": "Neuen Playlist-Ordner erstellen",
|
||||
"term.deletePlaylist": "Bist du sicher, dass du diese Playlist löschen willst?",
|
||||
"term.play": "Wiedergabe",
|
||||
"term.pause": "Pause",
|
||||
"term.previous": "Zurück",
|
||||
"term.next": "Weiter",
|
||||
"term.shuffle": "Zufällig",
|
||||
"term.repeat": "Wiederholen",
|
||||
"term.volume": "Lautstärke",
|
||||
"term.mute": "Stummschalten",
|
||||
"term.unmute": "Stummschaltung aufheben",
|
||||
"term.share": "Teilen",
|
||||
"term.settings": "Einstellungen",
|
||||
"term.seeAll": "Alle Sehen",
|
||||
"term.sortBy": "Sortieren nach",
|
||||
"term.sortBy.album": "Album",
|
||||
"term.sortBy.artist": "Künstler",
|
||||
"term.sortBy.name": "Name",
|
||||
"term.sortBy.genre": "Genre",
|
||||
"term.sortBy.releaseDate": "Veröffentlichungsdatum",
|
||||
"term.sortBy.duration": "Länge",
|
||||
"term.sortOrder": "A-Z",
|
||||
"term.sortOrder.ascending": "Aufsteigend",
|
||||
"term.sortOrder.descending": "Absteigend",
|
||||
"term.viewAs": "Ansehen als",
|
||||
"term.viewAs.coverArt": "Cover-Bild",
|
||||
"term.viewAs.list": "Liste",
|
||||
"term.size": "Größe",
|
||||
"term.size.normal": "Normal",
|
||||
"term.size.compact": "Kompakt",
|
||||
"term.enable": "Aktivieren",
|
||||
"term.disable": "Deaktivieren",
|
||||
"term.enabled": "Aktiv",
|
||||
"term.disabled": "Nicht aktiv",
|
||||
"term.connect": "Verbinden",
|
||||
"term.connecting": "Verbindet",
|
||||
"term.disconnect": "Trennen",
|
||||
"term.authed": "Autorisiert",
|
||||
"term.confirm": "Bestätigen?",
|
||||
"term.more": "Mehr",
|
||||
"term.less": "Weniger",
|
||||
"term.showMore": "Mehr anzeigen",
|
||||
"term.showLess": "Weniger anzeigen",
|
||||
"term.topSongs": "Top Songs",
|
||||
"term.latestReleases": "Letzte Veröffentlichungen",
|
||||
"term.time.added": "Hinzugefügt",
|
||||
"term.time.released": "Veröffentlicht",
|
||||
"term.time.updated": "Aktualisiert",
|
||||
"term.time.hours": "Stunden",
|
||||
"term.time.hour": "Stunde",
|
||||
"term.time.minutes": "Minuten",
|
||||
"term.time.minute": "Minute",
|
||||
"term.time.seconds": "Sekunden",
|
||||
"term.time.second": "Sekunde",
|
||||
"term.fullscreenView": "Vollbildansicht",
|
||||
"term.defaultView": "Normale Ansicht",
|
||||
"term.audioSettings": "Audio-Einstellungen",
|
||||
"term.spacializedAudioSetting": "Räumliches Audio",
|
||||
"term.clearAll": "Alle löschen",
|
||||
"term.recentStations": "Letzte Sender",
|
||||
"term.language": "Sprache",
|
||||
"term.funLanguages": "Spaß",
|
||||
"term.noLyrics": "Lädt... / Lyrik nicht gefunden./ Instrumental.",
|
||||
"term.copyright": "Copyright",
|
||||
"term.rightsReserved": "Alle Rechte vorbehalten.",
|
||||
"term.sponsor": "Unterstütze dieses Projekt",
|
||||
"term.ciderTeam": "Cider Team",
|
||||
"term.developer": "Entwickler",
|
||||
"term.socialTeam": "Social Team",
|
||||
"term.socials": "Soziale Medien",
|
||||
"term.contributors": "Mithelfer",
|
||||
"term.equalizer": "Equalizer",
|
||||
"term.reset": "Zurücksetzen",
|
||||
"term.tracks": "Lieder", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "Videos",
|
||||
"term.menu": "Menü",
|
||||
"term.check": "Nach Updates suchen",
|
||||
"term.aboutArtist": "Über {{artistName}}", // e.g. 'About Doja Cat'
|
||||
"term.updateCider": "Cider aktualisieren",
|
||||
|
||||
// Home
|
||||
"home.title": "Home",
|
||||
"home.recentlyPlayed": "Zuletzt gespielt",
|
||||
"home.recentlyAdded": "Zuletzt hinzugefügt",
|
||||
"home.artistsFeed": "Dein Künstler-Feed",
|
||||
"home.artistsFeed.noArtist": "Folge zuerst einigen Künstlern, dann wirst du hier die neusten Lieder sehen.",
|
||||
"home.madeForYou": "Für dich gemacht",
|
||||
"home.friendsListeningTo": "Freunde hören",
|
||||
"home.followedArtists": "Gefolgte Künstler",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Apple Music benötigt ein Abonnement.",
|
||||
"error.connectionError": "Es gab ein Problem beim Verbinden mit Apple Music.",
|
||||
"error.noResults": "Keine Ergebnisse.",
|
||||
"error.noResults.description": "Versuche einen anderen Suchbegriff.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Folge auf Cider",
|
||||
"podcast.followedOnCider": "Gefolgt auf Cider",
|
||||
"podcast.subscribeOnItunes": "Folge auf iTunes",
|
||||
"podcast.subscribedOnItunes": "Gefolgt auf iTunes",
|
||||
"podcast.itunesStore": "iTunes Store",
|
||||
"podcast.episodes": "Episoden",
|
||||
"podcast.playEpisode": "Spiele Episode",
|
||||
"podcast.website": "Podcast Webseite",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "Zur Mediathek hinzufügen",
|
||||
"action.addToLibrary.success": "Zur Mediathek hinzugefügt",
|
||||
"action.addToLibrary.error": "Fehler beim Hinzufügen zur Mediathek",
|
||||
"action.removeFromLibrary": "Aus Mediathek entfernen",
|
||||
"action.removeFromLibrary.success": "Aus Mediathek entfernt",
|
||||
"action.addToQueue": "Zur Warteschlange hinzufügen",
|
||||
"action.addToQueue.success": "Zur Warteschlange hinzugefügt",
|
||||
"action.addToQueue.error": "Fehler beim Hinzufügen zur Warteschlange",
|
||||
"action.removeFromQueue": "Aus Warteschlange entfernen",
|
||||
"action.removeFromQueue.success": "Aus Warteschlange entfernt",
|
||||
"action.removeFromQueue.error": "Fehler beim Entfernen aus der Warteschlange",
|
||||
"action.createPlaylist": "Neue Playlist erstellen",
|
||||
"action.addToPlaylist": "Zur Playlist hinzufügen",
|
||||
"action.removeFromPlaylist": "Aus Playlist entfernen",
|
||||
"action.addToFavorites": "Zu Favoriten hinzufügen",
|
||||
"action.follow": "Folgen",
|
||||
"action.follow.success": "Gefolgt",
|
||||
"action.follow.error": "Fehler beim Folgen",
|
||||
"action.unfollow": "Entfolgen",
|
||||
"action.unfollow.success": "Entfolgt",
|
||||
"action.unfollow.error": "Fehler beim Entfolgen",
|
||||
"action.playNext": "Spiele als Nächstes",
|
||||
"action.playLater": "Spiele später",
|
||||
"action.startRadio": "Starte Radio",
|
||||
"action.goToArtist": "Gehe zu Künstler",
|
||||
"action.goToAlbum": "Gehe zu Album",
|
||||
"action.moveToTop": "Gehe zum Anfang",
|
||||
"action.share": "Teilen",
|
||||
"action.rename": "Umbenennen",
|
||||
"action.love": "Lieben",
|
||||
"action.unlove": "Entlieben",
|
||||
"action.dislike": "Dislike",
|
||||
"action.undoDislike": "Dislike entfernen",
|
||||
"action.showWebRemoteQR": "Zeige Web-Remote QR-Code",
|
||||
"action.playTracksNext": "Spiele ${app.selectedMediaItems.length} Lieder als Nächstes",
|
||||
"action.playTracksLater": "Spiele ${app.selectedMediaItems.length} Lieder später",
|
||||
"action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange",
|
||||
"action.import": "Importieren",
|
||||
"action.export": "Exportieren",
|
||||
"action.showAlbum": "Ganzes Album anzeigen",
|
||||
"action.tray.minimize": "Zu Tray minimieren",
|
||||
"action.tray.quit": "Beenden",
|
||||
"action.tray.show": "{appName} anzeigen",
|
||||
"action.update": "Update",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "Allgemein",
|
||||
"settings.header.general.description": "Passe die allgemeinen Einstellungen für Cider an.",
|
||||
"settings.option.general.language": "Sprache",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "Sprachen",
|
||||
"settings.option.general.language.fun": "Lustige Sprachen",
|
||||
"settings.option.general.language.unsorted": "Unsortiert",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Audio",
|
||||
"settings.header.audio.description": "Passe die Audio-Einstellungen für Cider an.",
|
||||
"settings.option.audio.quality": "Audioqualität", // Dropdown
|
||||
"settings.header.audio.quality.high": "Hoch",
|
||||
"settings.header.audio.quality.low": "Niedrig",
|
||||
"settings.header.audio.quality.auto": "Auto",
|
||||
"settings.option.audio.seamlessTransition": "Nahtloser Audioübergang", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "Akiviere erweiterte Funktionalität", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "Das Aktivieren der erweiterten Funktionalität ermöglicht spezielle Features wie Audio-Normalisierung, Equalizer und Visualizer, jedoch könnte dies auf einigen Systemen zu Aussetzern in der Musik führen.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio-Normalisierung", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalisiert die Lautstärke aller Lieder, um die Hörerfahrung einheitlicher zu machen.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Räumliches Audio", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Macht die Musik räumlicher (3D-Effekt) (Beachte: Dies ist kein Dolby Atmos)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "Visuell",
|
||||
"settings.header.visual.description": "Passe die visuellen Einstellungen für Cider an.",
|
||||
"settings.option.visual.windowBackgroundStyle": "Fensterhintergrund-Stil", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "Keiner",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "Coverbild",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "Bild",
|
||||
"settings.option.visual.animatedArtwork": "Animiertes Coverbild", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "Immer",
|
||||
"settings.header.visual.animatedArtwork.limited": "Beschränkt auf Seiten und Spezialeinträge",
|
||||
"settings.header.visual.animatedArtwork.disable": "Überall deaktivieren",
|
||||
"settings.option.visual.animatedArtworkQuality": "Qualität des Animierten Coverbilds", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "Niedrig",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "Mittel",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "Hoch",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Sehr hoch",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "Extrem",
|
||||
"settings.option.visual.animatedWindowBackground": "Animierter Fensterhintergrund", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "Hardware-Beschleunigung", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "Erfordert Neustart der Anwendung",
|
||||
"settings.header.visual.hardwareAcceleration.default": "Normal",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "Persönliche Daten anzeigen", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "Liedtext",
|
||||
"settings.header.lyrics.description": "Passe die Liedtext-Einstellungen für Cider an.",
|
||||
"settings.option.lyrics.enableMusixmatch": "Aktiviere Musixmatch-Liedtexte", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Aktiviere Karaoke-Modus (nur mit Musixmatch)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Bevorzugte Sprache für Musixmatch-Übersetzung", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "Aktiviere YouTube-Liedtexte für Musikvideos", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "Konnektivität",
|
||||
"settings.header.connectivity.description": "Passe die Konnektivitäts-Einstellungen für Cider an.",
|
||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "Wiedergabe-Benachrichtigungen", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "'Cider' anzeigen",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' anzeigen",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "Leere Discord Rich Presence wenn pausiert", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktiviere LastFM Jetzt spielend",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Entferne Künstler-Featuring von Liedtitel (LastFM)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtere gelooptes Lied (LastFM)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "Experimentell",
|
||||
"settings.header.experimental.description": "Passe die experimentellen Einstellungen für Cider an.",
|
||||
"settings.option.experimental.compactUI": "Kompaktes UI", // Toggle
|
||||
"settings.option.experimental.close_button_hide": "Schließ-Taste soll die App verbergen",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.notTurnedOn": "Die Audio-Spatialisierung ist deaktiviert. Um sie zu verwenden, musst du diese zuerst aktivieren.",
|
||||
"spatial.spatialProperties": "Räumliche Einstellungen",
|
||||
"spatial.width": "Breite",
|
||||
"spatial.height": "Höhe",
|
||||
"spatial.depth": "Tiefe",
|
||||
"spatial.gain": "Gain",
|
||||
"spatial.roomMaterials": "Raummaterialien",
|
||||
"spatial.roomDimensions": "Raumabmessungen",
|
||||
"spatial.roomPositions": "Raumpositionen",
|
||||
"spatial.setDimensions": "Setze Abmessungen",
|
||||
"spatial.setPositions": "Setze Positionen",
|
||||
"spatial.up": "Oben",
|
||||
"spatial.front": "Vorne",
|
||||
"spatial.left": "Links",
|
||||
"spatial.right": "Rechts",
|
||||
"spatial.back": "Hinten",
|
||||
"spatial.down": "Unten",
|
||||
"spatial.listener": "Hörer*in",
|
||||
"spatial.audioSource": "Audioquelle",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "Unvollendet",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider Remote",
|
||||
"remote.web.description": "Scanne den QR-Code um dein Handy mit dieser Cider-Instanz zu verbinden",
|
||||
|
||||
// About
|
||||
"about.thanks": "Vielen lieben Dank an das Cider Collective Team und an alle Mithelfer."
|
||||
}
|
299
src/i18n/el_GR.jsonc
Normal file
|
@ -0,0 +1,299 @@
|
|||
{
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "Ελληνικά",
|
||||
"i18n.languageNameEnglish": "Greek",
|
||||
"i18n.category": "main",
|
||||
"i18n.authors": "@down-bad",
|
||||
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${d} ${m}, ${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "Ακύρωση",
|
||||
"dialog.ok": "ΟΚ",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "Ενημέρωση βιβλιοθήκης τραγουδιών...",
|
||||
"notification.updatingLibraryAlbums": "Ενημέρωση βιβλιοθήκης άλμπουμ...",
|
||||
"notification.updatingLibraryArtists": "Ενημέρωση βιβλιοθήκης καλλιτεχνών...",
|
||||
// Terms
|
||||
"term.appleInc": "Apple Inc.",
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "Μάθετε περισσότερα",
|
||||
"term.accountSettings": "Ρυθμίσεις λογαριασμού",
|
||||
"term.logout": "Αποσύνδεση",
|
||||
"term.login": "Σύνδεση",
|
||||
"term.about": "Σχετικά με",
|
||||
"term.privateSession": "Ιδιωτική περίοδος λειτουργίας",
|
||||
"term.queue": "Ουρά",
|
||||
"term.search": "Εύρεση",
|
||||
"term.library": "Βιβλιοθήκη",
|
||||
"term.listenNow": "Ακρόαση",
|
||||
"term.browse": "Περιήγηση",
|
||||
"term.radio": "Ράδιο",
|
||||
"term.recentlyAdded": "Πρόσφατες προσθήκες",
|
||||
"term.songs": "Τραγούδια",
|
||||
"term.albums": "Άλμπουμ",
|
||||
"term.artists": "Καλλιτέχνες",
|
||||
"term.podcasts": "Podcast",
|
||||
"term.playlists": "Λίστες αναπαραγωγής",
|
||||
"term.playlist": "Λίστα αναπαραγωγής",
|
||||
"term.play": "Αναπαραγωγή",
|
||||
"term.pause": "Παύση",
|
||||
"term.previous": "Προηγούμενο",
|
||||
"term.next": "Επόμενο",
|
||||
"term.shuffle": "Τυχαία σειρά",
|
||||
"term.repeat": "Επανάληψη",
|
||||
"term.volume": "Ένταση",
|
||||
"term.mute": "Σίγαση",
|
||||
"term.unmute": "Κατάργηση σίγασης",
|
||||
"term.share": "Κοινή Χρήση",
|
||||
"term.settings": "Ρυθμίσεις",
|
||||
"term.seeAll": "Προβολή όλων",
|
||||
"term.sortBy": "Ταξινόμηση κατά",
|
||||
"term.sortBy.album": "Άλμπουμ",
|
||||
"term.sortBy.artist": "Καλλιτέχνη",
|
||||
"term.sortBy.name": "Όνομα",
|
||||
"term.sortBy.genre": "Είδος",
|
||||
"term.sortBy.releaseDate": "Ημερομηνία κυκλοφορίας",
|
||||
"term.sortBy.duration": "Διάρκεια",
|
||||
"term.sortOrder": "Α-Ω",
|
||||
"term.sortOrder.ascending": "Αύξουσα",
|
||||
"term.sortOrder.descending": "Φθίνουσα",
|
||||
"term.viewAs": "Προβολή ως",
|
||||
"term.viewAs.coverArt": "Εξώφυλλο",
|
||||
"term.viewAs.list": "Λίστα",
|
||||
"term.size": "Μέγεθος",
|
||||
"term.size.normal": "Κανονικό",
|
||||
"term.size.compact": "Συμπαγή",
|
||||
"term.enable": "Ενεργοποίηση",
|
||||
"term.disable": "Απενεργοποίηση",
|
||||
"term.enabled": "Ενεργοποιημένο",
|
||||
"term.disabled": "Απενεργοποιημένο",
|
||||
"term.connect": "Σύνδεση",
|
||||
"term.connecting": "Γίνεται σύνδεση",
|
||||
"term.disconnect": "Αποσύνδεση",
|
||||
"term.authed": "Επικυρωμένο",
|
||||
"term.confirm": "Σίγουρα;",
|
||||
"term.more": "Περισσότερα",
|
||||
"term.less": "Λιγότερα",
|
||||
"term.showMore": "Εμφάνιση περισσότερων",
|
||||
"term.showLess": "Εμφάνιση λιγότερων",
|
||||
"term.topSongs" : "Κορυφαία τραγούδια",
|
||||
"term.latestReleases": "Τελευταίες κυκλοφορίες",
|
||||
"term.time.added": "Προστέθηκε",
|
||||
"term.time.released": "Κυκλοφόρησε",
|
||||
"term.time.updated": "Ενημερώθηκε",
|
||||
"term.time.hours": "ώρες",
|
||||
"term.time.hour": "ώρα",
|
||||
"term.time.minutes": "λεπτά",
|
||||
"term.time.minute": "λεπτό",
|
||||
"term.time.seconds": "δευτερόλεπτα",
|
||||
"term.time.second": "δευτερόλεπτο",
|
||||
"term.fullscreenView": "Πλήρης οθόνη",
|
||||
"term.defaultView": "Κανονική οθόνη",
|
||||
"term.spacializedAudioSetting": "Χωρική ρύθμιση ήχου",
|
||||
"term.clearAll": "Εκκαθάριση όλων",
|
||||
"term.recentStations": "Πρόσφατοι σταθμοί",
|
||||
"term.language": "Γλώσσα",
|
||||
"term.funLanguages": "Για πλάκα",
|
||||
"term.noLyrics": "Φόρτωση... / Δεν βρέθηκαν στίχοι. / Ορχηστικό.",
|
||||
"term.copyright": "Copyright",
|
||||
"term.rightsReserved": "Όλα τα δικαιώματα διατηρούνται.",
|
||||
"term.sponsor": "Χορήγησε αυτό το έργο",
|
||||
"term.ciderTeam": "Ομάδα Cider",
|
||||
"term.developer": "Προγραμματιστής",
|
||||
"term.socialTeam": "Κοινωνική Ομάδα",
|
||||
"term.contributors": "Συνεισφέροντες",
|
||||
"term.equalizer": "Ισοσταθμιστής",
|
||||
"term.reset": "Επαναφορά",
|
||||
"term.tracks": "τραγούδια", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "Βίντεο",
|
||||
"term.menu": "Μενού",
|
||||
"action.showAlbum": "Εμφάνιση ολόκληρου άλμπουμ",
|
||||
|
||||
// Home
|
||||
"home.title": "Αρχική",
|
||||
"home.recentlyPlayed": "Έπαιξαν πρόσφατα",
|
||||
"home.recentlyAdded": "Πρόσφατες προσθήκες",
|
||||
"home.artistsFeed": "Ροή των καλλιτεχνών σου",
|
||||
"home.artistsFeed.noArtist": "Ακολούθησε μερικούς καλλιτέχνες πρώτα και οι τελευταίες κυκλοφορίες τους θα εμφανίζονται εδώ",
|
||||
"home.madeForYou": "Δημιουργήθηκε για εσάς",
|
||||
"home.friendsListeningTo": "Οι φίλοι σου ακούν",
|
||||
"home.followedArtists": "Καλλιτέχνες που ακολουθείτε",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Το Apple Music απαιτεί μια συνδρομή.",
|
||||
"error.connectionError": "Δεν είναι δυνατή η σύνδεση με το Apple Music.",
|
||||
"error.noResults": "Κανένα αποτέλεσμα.",
|
||||
"error.noResults.description": "Δοκιμάστε μια νέα αναζήτηση.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Ακολούθηση στο Cider",
|
||||
"podcast.followedOnCider": "Ακολουθείτε στο Cider",
|
||||
"podcast.subscribeOnItunes": "Συνδρομή στο iTunes",
|
||||
"podcast.subscribedOnItunes": "Συνδρομητής στο iTunes",
|
||||
"podcast.itunesStore": "iTunes Store",
|
||||
"podcast.episodes": "Επεισόδια",
|
||||
"podcast.playEpisode": "Αναπαραγωγή επεισοδίου",
|
||||
"podcast.website": "Ιστότοπος Podcast",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "Προσθήκη στη βιβλιοθήκη",
|
||||
"action.addToLibrary.success": "Προστέθηκε στη βιβλιοθήκη",
|
||||
"action.addToLibrary.error": "Σφάλμα Προσθήκης στη βιβλιοθήκης",
|
||||
"action.removeFromLibrary": "Αφαίρεση από τη βιβλιοθήκη",
|
||||
"action.removeFromLibrary.success": "Αφαιρέθηκε από τη βιβλιοθήκη",
|
||||
"action.addToQueue": "Προσθήκη στην ουρά",
|
||||
"action.addToQueue.success": "Προστέθηκε στην ουρά",
|
||||
"action.addToQueue.error": "Προστέθηκε στην ουρά",
|
||||
"action.removeFromQueue": "Αφαίρεση από την ουρά",
|
||||
"action.removeFromQueue.success": "Αφαιρέθηκε από την ουρά",
|
||||
"action.removeFromQueue.error": "Σφάλμα Αφαίρεσης από την ουρά",
|
||||
"action.addToPlaylist": "Προσθήκη σε λίστα",
|
||||
"action.removeFromPlaylist": "Αφαίρεση από λίστα",
|
||||
"action.addToFavorites": "Προσθήκη στα αγαπημένα",
|
||||
"action.follow": "Ακολούθηση",
|
||||
"action.follow.success": "Ακολουθήθηκε",
|
||||
"action.follow.error": "Σφάλμα ακολούθησης",
|
||||
"action.unfollow": "Διακοπή ακολούθησης",
|
||||
"action.unfollow.success": "Έγινε διακοπή ακολούθησης",
|
||||
"action.unfollow.error": "Σφάλμα διακοπής ακολούθησης ",
|
||||
"action.playNext": "Αναπαραγωγή ως επόμενου",
|
||||
"action.playLater": "Αναπαραγωγή αργότερα",
|
||||
"action.startRadio": "Έναρξη ραδιοφώνου",
|
||||
"action.goToArtist": "Μετάβαση σε καλλιτέχνη",
|
||||
"action.goToAlbum": "Μετάβαση σε άλμπουμ",
|
||||
"action.moveToTop": "Μετακίνηση στη κορυφή",
|
||||
"action.share": "Κοινή χρήση",
|
||||
"action.rename": "Μετονομασία",
|
||||
"action.love": "Μου αρέσει πολύ",
|
||||
"action.unlove": "Αναίρεση \"Μου αρέσει\"",
|
||||
"action.dislike": "Δεν μου αρέσει",
|
||||
"action.undoDislike": "Αναίρεση \"Δεν μου αρέσει\"",
|
||||
"action.showWebRemoteQR": "Εμφάνιση Web Remote QR",
|
||||
"action.playTracksNext": "Αναπαραγωγή ${app.selectedMediaItems.length} τραγουδιών ως επόμενων",
|
||||
"action.playTracksLater": "Αναπαραγωγή ${app.selectedMediaItems.length} τραγουδιών αργότερα",
|
||||
"action.removeTracks": "Αφαίρεση ${self.selectedItems.length} τραγουδιών από την ουρά",
|
||||
"action.import": "Εισαγωγή",
|
||||
"action.export": "Εξαγωγή",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "Γενικά",
|
||||
"settings.header.general.description": "Προσαρμογή γενικών ρυθμίσεων για το Cider.",
|
||||
"settings.option.general.language": "Γλώσσα",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "Γλώσσες",
|
||||
"settings.option.general.language.fun": "Γλώσσες για πλάκα",
|
||||
"settings.option.general.language.unsorted": "Αταξινόμητες",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Ήχος",
|
||||
"settings.header.audio.description": "Προσαρμογή ρυθμίσεων ήχου για το Cider.",
|
||||
"settings.option.audio.quality": "Ποιότητα Ήχου", // Dropdown
|
||||
"settings.header.audio.quality.high": "Υψηλή",
|
||||
"settings.header.audio.quality.low": "Χαμηλή",
|
||||
"settings.header.audio.quality.auto": "Αυτόματη",
|
||||
"settings.option.audio.seamlessTransition": "Αδιάκοπη Μετάβαση Ήχου", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "Ενεργοποίηση Προηγμένης Λειτουργικότητας", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "Ενεργοποιώντας τη λειτουργικότητα AudioContext θα επιτρέψει σε επεκταμένες δυνατότητες ήχου όπως Κανονικοποίηση Έντασης Ήχου, Ισοσταθμιστές και Οπτικοποιητές, ωστόσο σε κάποια συστήματα μπορεί να προκαλέσει τραύλισμα ήχου.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Κανονικοποίηση Έντασης Ήχου", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Κανονικοποιεί την ένταση για μεμονωμένα κομμάτια για μια πιο ομοιόμορφη εμπειρία ακρόασης.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Χωρικοποίηση Ήχου", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Πιο τρισδιάστατος και χωρικοποιημένος ήχος (σημείωση: Αυτό δεν είναι Dolby Atmos)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "Οπτικά",
|
||||
"settings.header.visual.description": "Προσαρμογή οπτικών ρυθμίσεων για το Cider.",
|
||||
"settings.option.visual.windowBackgroundStyle": "Στυλ Φόντου Παραθύρου", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "Κανένα",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "Εξώφυλλο",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "Εικόνα",
|
||||
"settings.option.visual.animatedArtwork": "Κινούμενο Εξώφυλλο", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "Πάντα",
|
||||
"settings.header.visual.animatedArtwork.limited": "Περιορισμός σε σελίδες και ειδικές καταχωρήσεις",
|
||||
"settings.header.visual.animatedArtwork.disable": "Απενεργοποιημένο παντού",
|
||||
"settings.option.visual.animatedArtworkQuality": "Ποιότητα Κινούμενου Εξωφύλλου", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "Χαμηλή",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "Μέτρια",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "Υψηλή",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Πολύ Υψηλή",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "Ακραία",
|
||||
"settings.option.visual.animatedWindowBackground": "Κινούμενο Φόντο Παραθύρου", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "Επιτάχυνση Υλικού", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "Απαιτεί επανεκκίνηση",
|
||||
"settings.header.visual.hardwareAcceleration.default": "Προεπιλογή",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "Εμφάνιση προσωπικών στοιχείων", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "Στίχοι",
|
||||
"settings.header.lyrics.description": "Προσαρμογή ρυθμίσεων στίχων για το Cider.",
|
||||
"settings.option.lyrics.enableMusixmatch": "Ενεργοποίηση Στίχων Musixmatch", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Ενεργοποίηση Λειτουργίας Καραόκε (Musixmatch μόνο)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Προτιμώμενη Γλώσσα Μετάφρασης Musixmatch", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "Ενεργοποίηση Στίχων Youtube για Μουσικά Βίντεο", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "Σύνδεση",
|
||||
"settings.header.connectivity.description": "Προσαρμογή ρυθμίσεων σύνδεσης για το Cider.",
|
||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "Ειδοποιήσεις Αναπαραγωγής", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "Εμφάνιση ως 'Cider'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "Εμφάνιση ως 'Apple Music'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "Εκκαθάριση του Discord Rich Presence στην Παύση", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "Καθυστέρηση LastFM Scrobble (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Ενεργοποίηση LastFM \"Now Playing\"",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Αφαίρεση καλλιτεχνών feature από τον τίτλο του τραγουδιού (LastFM)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Φιλτράρισμα επανειλημμένου τραγουδιού (LastFM)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "Πειραματικές",
|
||||
"settings.header.experimental.description": "Προσαρμογή πειραματικών ρυθμίσεων για το Cider.",
|
||||
"settings.option.experimental.compactUI": "Συμπαγής Διεπαφή", // Toggle
|
||||
"settings.option.experimental.closeButtonBehaviour": "Συμπεριφορά Κουμπιού Εξόδου",
|
||||
"settings.option.experimental.closeButtonBehaviour.quit": "Έξοδος του Cider",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Ελαχιστοποίηση στη γραμμή εργασιών",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Ελαχιστοποίηση στη γωνία γραμμής εργασιών",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.spatialProperties" : "Χωρικές Ιδιότητες",
|
||||
"spatial.width" : "Πλάτος",
|
||||
"spatial.height" : "Ύψος",
|
||||
"spatial.depth" : "Βάθος",
|
||||
"spatial.gain" : "Απολαβή",
|
||||
"spatial.roomMaterials" : "Υλικά Δωματίου",
|
||||
"spatial.roomDimensions" : "Διαστάσεις Δωματίου",
|
||||
"spatial.roomPositions" : "Θέσεις Δωματίου",
|
||||
"spatial.setDimensions" : "Ορισμός Διαστάσεων",
|
||||
"spatial.setPositions" : "Ορισμός Θέσεων",
|
||||
"spatial.up" : "Πάνω",
|
||||
"spatial.front" : "Πρόσοψη",
|
||||
"spatial.left" : "Αριστερά",
|
||||
"spatial.right" : "Δεξιά",
|
||||
"spatial.back" : "Πίσω Όψη",
|
||||
"spatial.down" : "Κάτω",
|
||||
"spatial.listener" : "Ακροατής",
|
||||
"spatial.audioSource" : "Πηγή Ήχου",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "Ημιτελής",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider Remote",
|
||||
"remote.web.description": "Σαρώστε τον κωδικό QR για σύζευξη του Cider με το κινητό σας",
|
||||
|
||||
//About
|
||||
"about.thanks": "Μεγάλα ευχαριστώ στην Ομάδα Cider Collective και σε όλους τους συνεισφέροντές μας."
|
||||
}
|
16
src/i18n/en_GB.jsonc
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
// i18n Info
|
||||
"i18n.languageName": "English (UK)", // name of language in native language
|
||||
"i18n.languageNameEnglish": "English (UK)", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "Core, inalone", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
"date.format": "${d} ${m}, ${y}",
|
||||
// translations
|
||||
"term.equalizer": "Equaliser",
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalisation , Equalisers and Visualisers, however on some systems this may cause stuttering in audio tracks.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalisation", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalises peak volume for individual tracks to create a more uniform listening experience.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialisation", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialise audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
|
||||
"spatial.notTurnedOn": "Audio Spatialisation is disabled. To use, please enable it first."
|
||||
}
|
312
src/i18n/en_HODOR.jsonc
Normal file
|
@ -0,0 +1,312 @@
|
|||
{ // HODOR
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "HODOR", // name of language in native language
|
||||
"i18n.languageNameEnglish": "HODOR", // name of language in English
|
||||
"i18n.category": "fun", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "HODOR", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "HODER",
|
||||
|
||||
"date.format": "${m} ${d}, ${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "NO HODOR",
|
||||
"dialog.ok": "YES HODOR",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "UPDATING HODOR HODORS...",
|
||||
"notification.updatingLibraryAlbums": "UPDATING HODOR HODORBUMS...",
|
||||
"notification.updatingLibraryArtists": "UPDATING HODOR HODORTISTS...",
|
||||
// Terms
|
||||
"term.appleInc": "HODOR Inc.",
|
||||
"term.appleMusic": "HODOR MUSIC",
|
||||
"term.applePodcasts": "HODOR PODCASTS",
|
||||
"term.itunes": "iHODOR",
|
||||
"term.github": "HODORHUB",
|
||||
"term.discord": "HODORSCORD",
|
||||
"term.learnMore": "LEARN HODOR",
|
||||
"term.accountSettings": "HODOR SETTINGS",
|
||||
"term.logout": "HODOR OUT",
|
||||
"term.login": "HODOR IN",
|
||||
"term.about": "WHAT'S HODOR",
|
||||
"term.privateSession": "HODOR SESSION",
|
||||
"term.queue": "HODORUEUE",
|
||||
"term.search": "HODORCH",
|
||||
"term.library": "HODORRARY",
|
||||
"term.listenNow": "HODOR NOW",
|
||||
"term.browse": "HODOROWSE",
|
||||
"term.radio": "HODORADIO",
|
||||
"term.recentlyAdded": "RECENTLY HODOR",
|
||||
"term.songs": "HODORS",
|
||||
"term.albums": "HODORBUMS",
|
||||
"term.artists": "HODORTISTS",
|
||||
"term.podcasts": "HODORCASTS",
|
||||
"term.playlists": "HODORLISTS",
|
||||
"term.playlist": "HODORLIST",
|
||||
"term.newPlaylist": "NEW HODOR",
|
||||
"term.newPlaylistFolder": "NEW HODOR FOLDER",
|
||||
"term.createNewPlaylist": "CREATE NEW HODOR",
|
||||
"term.createNewPlaylistFolder": "CREATE NEW HODOR FOLDER",
|
||||
"term.deletePlaylist": "ARE YOU HODOR YOU HODOR TO HODOR THIS HODOR?",
|
||||
"term.play": "HODOR",
|
||||
"term.pause": "PAHODOR",
|
||||
"term.previous": "PREHODOR",
|
||||
"term.next": "NEXHODOR",
|
||||
"term.shuffle": "HODORFFLE",
|
||||
"term.repeat": "REPHODOR",
|
||||
"term.volume": "HODORVOL",
|
||||
"term.mute": "HODORMUT",
|
||||
"term.unmute": "HODORUNMUT",
|
||||
"term.share": "SHARE HODOR",
|
||||
"term.settings": " SET HODOR",
|
||||
"term.seeAll": "SEE HODOR",
|
||||
"term.sortBy": "SORT HODOR",
|
||||
"term.sortBy.album": "HODORBUM",
|
||||
"term.sortBy.artist": "HODORTIST",
|
||||
"term.sortBy.name": "HODOR",
|
||||
"term.sortBy.genre": "HODOR TYPE",
|
||||
"term.sortBy.releaseDate": "HODOR DATE",
|
||||
"term.sortBy.duration": "HODOR DURATION",
|
||||
"term.sortOrder": "HODAR-HODZR",
|
||||
"term.sortOrder.ascending": "ASCENDING HODOR",
|
||||
"term.sortOrder.descending": "DESCENDING HODOR",
|
||||
"term.viewAs": "VIEW HODOR",
|
||||
"term.viewAs.coverArt": "COVER HODOR",
|
||||
"term.viewAs.list": "HODORIST",
|
||||
"term.size": "HODOR SIZE",
|
||||
"term.size.normal": "HODOR!!",
|
||||
"term.size.compact": "hodor.",
|
||||
"term.enable": "HODOR IT",
|
||||
"term.disable": "NO HODOR",
|
||||
"term.enabled": "HODORED",
|
||||
"term.disabled": "NOT HODORED",
|
||||
"term.connect": "CONNECT HODOR",
|
||||
"term.connecting": "HODOR WAIT",
|
||||
"term.disconnect": "NO HODOR",
|
||||
"term.authed": "HODORED",
|
||||
"term.confirm": "U HODOR?",
|
||||
"term.more": "HODOR",
|
||||
"term.less": "hodor",
|
||||
"term.showMore": "MORE HODOR",
|
||||
"term.showLess": "LESS HODOR",
|
||||
"term.topSongs" : "TOP HODORS",
|
||||
"term.latestReleases": "LATEST HODORS",
|
||||
"term.time.added": "HODOR ADDED",
|
||||
"term.time.released": "HODOR RELEASED",
|
||||
"term.time.updated": "HODOR UPDATED",
|
||||
"term.fullscreenView": "FULL HODOR",
|
||||
"term.defaultView": "NO HODOR",
|
||||
"term.audioSettings": "HODOR HEARS",
|
||||
"term.clearAll": "CLEAR HODORS",
|
||||
"term.recentStations": "RECENT HODORTATIONS",
|
||||
"term.language": "HODOR SPEAKS",
|
||||
"term.noLyrics": "HODORING... / HODOR NOT HODOR./ HODOR.",
|
||||
"term.copyright": "HODORIGHT",
|
||||
"term.rightsReserved": "ALL HODORS RESERVED.",
|
||||
"term.sponsor": "HODOR THIS HODOR",
|
||||
"term.ciderTeam": "HODOR TEAM",
|
||||
"term.developer": "CODER HODOR",
|
||||
"term.socialTeam": "SOCIAL HODOR",
|
||||
"term.socials": "HODORS",
|
||||
"term.contributors": "OTHER HODORS",
|
||||
"term.equalizer": "HODORIZER",
|
||||
"term.reset": "HODOR IT",
|
||||
"term.tracks": "HODORS",
|
||||
"term.time.hours": "HODOR",
|
||||
"term.time.hour": "HODOR",
|
||||
"term.time.minutes": "HODOR",
|
||||
"term.time.minute": "HODOR",
|
||||
"term.time.seconds": "HODOR",
|
||||
"term.time.second": "HODOR",
|
||||
"term.funLanguages": "HODOR SPEAKS",
|
||||
"term.videos": "HODOR WATCHING",
|
||||
"term.menu": "HODOR MENU",
|
||||
|
||||
// Home
|
||||
"home.title": "HODOR",
|
||||
"home.recentlyPlayed": "RECENTLY HODOR",
|
||||
"home.recentlyAdded": "NEW HODOR",
|
||||
"home.artistsFeed": "HODOR FEED",
|
||||
"home.artistsFeed.noArtist": "FOLLOW SOME HODOR FIRST AND THEIR NEW HODOR WILL BE HODOR",
|
||||
"home.madeForYou": "HODOR FOR YOU",
|
||||
"home.friendsListeningTo": "FRIENDS HODOR HODOR",
|
||||
"home.followedArtists": "FOLLOWED HODOR",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "HODOR MUSIC REQUIRES A HODOR.",
|
||||
"error.connectionError": "CANNOT HODOR TO HODOR.",
|
||||
"error.noResults": "NO HODOR.",
|
||||
"error.noResults.description": "TRY NEW HODOR.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "FOLLOW ON HODOR",
|
||||
"podcast.followedOnCider": "FOLLOWING ON HODOR",
|
||||
"podcast.subscribeOnItunes": "SUBSCRIBE ON iHODOR",
|
||||
"podcast.subscribedOnItunes": "SUBSCRIBED ON İHODOR",
|
||||
"podcast.itunesStore": "HODOR STORE",
|
||||
"podcast.episodes": "HODORS",
|
||||
"podcast.playEpisode": "PLAY HODOR",
|
||||
"podcast.website": "HODORCAST PAGE",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "ADD HODOR",
|
||||
"action.addToLibrary.success": "YES HODOR",
|
||||
"action.addToLibrary.error": "NO HODOR",
|
||||
"action.removeFromLibrary": "DELETE HODOR",
|
||||
"action.removeFromLibrary.success": "HODOR OK",
|
||||
"action.addToQueue": "ADD HODORUEUE",
|
||||
"action.addToQueue.success": "YES HODOR",
|
||||
"action.addToQueue.error": "NO HODOR",
|
||||
"action.removeFromQueue": "DELETE HODOR FROM HODORUEUE",
|
||||
"action.removeFromQueue.success": "YES HODOR",
|
||||
"action.removeFromQueue.error": "NO HODOR",
|
||||
"action.createPlaylist": "CREATE HODOR",
|
||||
"action.addToPlaylist": "ADD HODOR",
|
||||
"action.removeFromPlaylist": "DELETE HODOR",
|
||||
"action.addToFavorites": "LOVE HODOR",
|
||||
"action.follow": "HODOR",
|
||||
"action.follow.success": "YES HODOR",
|
||||
"action.follow.error": "NO HODOR",
|
||||
"action.unfollow": "UNHODOR",
|
||||
"action.unfollow.success": "YES HODOR",
|
||||
"action.unfollow.error": "NO HODOR",
|
||||
"action.playNext": "NEXT HODOR",
|
||||
"action.playLater": "LATER HODOR",
|
||||
"action.startRadio": "HODORADIO",
|
||||
"action.goToArtist": " GO TO HODOR",
|
||||
"action.goToAlbum": "GO TO HODORBUM",
|
||||
"action.moveToTop": "MOVE HODOR TO TOP",
|
||||
"action.share": "HODOR IT",
|
||||
"action.rename": "REHODOR",
|
||||
"action.love": "LOVE HODOR",
|
||||
"action.unlove": "UNLOVE HODOR",
|
||||
"action.dislike": "NO LIKE HODOR",
|
||||
"action.undoDislike": "NO NO LIKE HODOR",
|
||||
"action.showWebRemoteQR": "REMOTE HODOR",
|
||||
"action.playTracksNext": "HODOR ${app.selectedMediaItems.length} HODOR NEXT",
|
||||
"action.playTracksLater": "HODOR ${app.selectedMediaItems.length} HODOR LATER",
|
||||
"action.removeTracks": "HODOR ${self.selectedItems.length} HODOR FROM HODORUEUE",
|
||||
"action.import": "HODOR IN",
|
||||
"action.export": "HODOR OUT",
|
||||
"action.showAlbum": "SHOW HODOR HODOR",
|
||||
// Waiting on Core for moving plugin to app.ts
|
||||
"action.tray.minimize": "HODOR TO TRAY",
|
||||
"action.tray.quit": "HODOR",
|
||||
"action.tray.show": "SEE",
|
||||
|
||||
// Settings - General (Reserved)
|
||||
"settings.header.general": "HODORAL",
|
||||
"settings.header.general.description": "HODOR HODORAL HODOR FOR HODOR.",
|
||||
"settings.option.general.language": "HODOR SPEAKS",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "REAL HODORS",
|
||||
"settings.option.general.language.fun": "HODOR HODORS",
|
||||
"settings.option.general.language.unsorted": "NO HODORS",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "HODOR HEARS",
|
||||
"settings.header.audio.description": "ADJUST HODOR EARS FOR HODOR HODOR.",
|
||||
"settings.option.audio.quality": "HODOR QUALITY", // Dropdown
|
||||
"settings.header.audio.quality.high": "HODOR!!.",
|
||||
"settings.header.audio.quality.low": "hodor.",
|
||||
"settings.header.audio.quality.auto": "HODORMATIC",
|
||||
"settings.option.audio.seamlessTransition": "SEAMLESS HODOR", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "ADVANCED HODOR", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "ENABLING HODOR FUNCTIONALITY WILL HODOR FOR EXTENDED HODOR FEATURES LIKE HODOR NORMALIZATION , HODORIZERS AND HODORS, BUT ON SOME HODOR SYSTEMS THIS HODOR CAUSE HODOR IN HODOR.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "HODOR NORMALIZATION", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NORMALIZES HODOR VOLUME FOR INDIVIDUAL HODORS TO HODOR A MORE HODOR LISTENING HODOR.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "HODOR SPATIALIZATION", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "SPATIALIZE HODOR AND MAKE HODOR MORE 3-HODOR (HODOR: THIS IS NOT HODOR ATMOS)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "HODOR SEES",
|
||||
"settings.header.visual.description": "ADJUST HODOR EYES FOR HODOR.",
|
||||
"settings.option.visual.windowBackgroundStyle": "BACK HODOR STYLE", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "NO HODOR",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "HODORWORK",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "HODOR",
|
||||
"settings.option.visual.animatedArtwork": "MOVING HODORWORK", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "YES HODOR",
|
||||
"settings.header.visual.animatedArtwork.limited": "SOME HODOR",
|
||||
"settings.header.visual.animatedArtwork.disable": "NO HODOR",
|
||||
"settings.option.visual.animatedArtworkQuality": "MOVING HODOR QUALITY", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "hodor..",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "HODOR.",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "HODOR!",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "HODOR HODOR!",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "HODOOOOOOOR!!",
|
||||
"settings.option.visual.animatedWindowBackground": "ANIMATED HODOR BACK", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "HODOR ACCELERATION", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "NEED RE HODOR",
|
||||
"settings.header.visual.hardwareAcceleration.default": "HODOR.",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WEB HODOR!!",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "SHOW HODOR NAME?", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "HODOR READS",
|
||||
"settings.header.lyrics.description": "ADJUST THE HODOR TEXT FOR HODOR.",
|
||||
"settings.option.lyrics.enableMusixmatch": "MUSIXMATCH HODOR", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "HO-DOR SING MODE (MUSIXMATCH HODOR)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "TRANSLATE HODOR TEXT", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "HODOR YOUTUBE HODOR TEXT FOR HODOR VIDEOS", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "HODORTIVITY",
|
||||
"settings.header.connectivity.description": "ADJUST THE HODORTIVITY FOR HODOR.",
|
||||
"settings.option.connectivity.discordRPC": "DISCORD HODOR", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "NOTIFICATION FOR HODOR", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "SEE HODOR AS 'CIDER'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "SEE HODOR AS 'HODOR MUSIC'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "HODOR DISCORD ON PAUSE", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "HODOR.FM SCROBBLING", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "HODOR.FM HODOR DELAY (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "YES HODOR.FM NOW HODORING",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "DELETE HODORING HODORTIST FROM HODOR TITLE (HODOR.FM)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "FILTER MULTI HODOEDR HODOR (HODOR.FM)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "EXPERIMENTAL HODOR",
|
||||
"settings.header.experimental.description": "ADJUST THE EXPERIMENTAL HODOR FOR HODOR.",
|
||||
"settings.option.experimental.compactUI": "smol hodor", // Toggle
|
||||
"settings.option.experimental.closeButtonBehaviour": "CLOSE HODOR BUTTON",
|
||||
"settings.option.experimental.closeButtonBehaviour.quit": "END HODOR",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "MINIMIZE HODOR TO HODORBAR",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "MINIMIZE HODOR TO HODORAY",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.notTurnedOn": "HODOR SPATIALIZATION IS HODOR. TO HODOR, PLEASE HODOR IT HODOR.",
|
||||
"spatial.spatialProperties" : "SPATIAL HODOR",
|
||||
"spatial.width" : "HODOR WIDTH",
|
||||
"spatial.height" : "HODOR HEIGHT",
|
||||
"spatial.depth" : "HODOR DEPTH",
|
||||
"spatial.gain" : "HODOR POWER",
|
||||
"spatial.roomMaterials" : "ROOM HODORS",
|
||||
"spatial.roomDimensions" : "ROOM HODOR SIZE",
|
||||
"spatial.roomPositions" : "ROOM HODOR POSITION",
|
||||
"spatial.setDimensions" : "HODOR SIZE",
|
||||
"spatial.setPositions" : "SET HODOR POSITION",
|
||||
"spatial.up" : "UP HODOR",
|
||||
"spatial.front" : "FRONT HODOR",
|
||||
"spatial.left" : "LEFT HODOR",
|
||||
"spatial.right" : "RIGHT HODOR",
|
||||
"spatial.back" : "BACK HODOR",
|
||||
"spatial.down" : "DOWN HODOR",
|
||||
"spatial.listener" : "HODOR EARS",
|
||||
"spatial.audioSource" : "HODOR PLAYS",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "NOT HODOR YET",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "HODOR REMOTE",
|
||||
"remote.web.description": "HODOR THE HODOR TO HODOR YOUR HODOR UP WITH THIS HODOR INSTANCE",
|
||||
|
||||
//About
|
||||
"about.thanks": "HODOR THANKS TO THE HODOR TEAM AND ALL OF OUR HODORS."
|
||||
|
||||
}
|
312
src/i18n/en_PISS.jsonc
Normal file
|
@ -0,0 +1,312 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "piss", // name of language in native language
|
||||
"i18n.languageNameEnglish": "English (piss)", // name of language in English
|
||||
"i18n.category": "fun", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@SoNothingMC", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "piss",
|
||||
|
||||
"date.format": "${y}-${m}-${d}", // ISO 8601 for the win!
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "no piss",
|
||||
"dialog.ok": "yes piss",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "pisssing all over your songs",
|
||||
"notification.updatingLibraryAlbums": "pissing all over your albums",
|
||||
"notification.updatingLibraryArtists": "pissing all over your idols",
|
||||
// Terms
|
||||
"term.appleInc": "piss Inc.",
|
||||
"term.appleMusic": "piss music",
|
||||
"term.applePodcasts": "piss podcasts",
|
||||
"term.itunes": "iPiss",
|
||||
"term.github": "PissHub",
|
||||
"term.discord": "Pisscord",
|
||||
"term.learnMore": "piss more",
|
||||
"term.accountSettings": "piss music settings",
|
||||
"term.logout": "piss out",
|
||||
"term.login": "piss in",
|
||||
"term.about": "piss info",
|
||||
"term.privateSession": "piss in private",
|
||||
"term.queue": "to be pissed",
|
||||
"term.search": "find piss",
|
||||
"term.library": "obtained piss",
|
||||
"term.listenNow": "piss now",
|
||||
"term.browse": "find piss",
|
||||
"term.radio": "piss everywhere",
|
||||
"term.recentlyAdded": "recently obtained piss",
|
||||
"term.songs": "piss list", // not to be confused with pisslist (playlist)
|
||||
"term.albums": "piss collection",
|
||||
"term.artists": "pissers",
|
||||
"term.podcasts": "pisscasts",
|
||||
"term.playlists": "pisslists",
|
||||
"term.playlist": "pisslist",
|
||||
"term.newPlaylist": "new pisslist",
|
||||
"term.newPlaylistFolder": "new pisslist folder",
|
||||
"term.createNewPlaylist": "create new pisslist",
|
||||
"term.createNewPlaylistFolder": "create new pisslist folder",
|
||||
"term.deletePlaylist": "obliterate pisslist?",
|
||||
"term.play": "piss",
|
||||
"term.pause": "hold your piss",
|
||||
"term.previous": "piss",
|
||||
"term.next": "piss",
|
||||
"term.shuffle": "piss randomly",
|
||||
"term.repeat": "piss at the same place",
|
||||
"term.volume": "piss loudness",
|
||||
"term.mute": "piss without sound",
|
||||
"term.unmute": "piss with sound",
|
||||
"term.share": "piss on your friends",
|
||||
"term.settings": "pissettings",
|
||||
"term.seeAll": "all of the piss",
|
||||
"term.sortBy": "piss by",
|
||||
"term.sortBy.album": "piss collection",
|
||||
"term.sortBy.artist": "pissers",
|
||||
"term.sortBy.name": "piss name",
|
||||
"term.sortBy.genre": "way to piss",
|
||||
"term.sortBy.releaseDate": "pissed date",
|
||||
"term.sortBy.duration": "piss duration",
|
||||
"term.sortOrder": "piss-PISS",
|
||||
"term.sortOrder.ascending": "pissing upwards",
|
||||
"term.sortOrder.descending": "pissing downwards",
|
||||
"term.viewAs": "piss as",
|
||||
"term.viewAs.coverArt": "piss art",
|
||||
"term.viewAs.list": "piss list", // not to be confused with pisslist (playlist)
|
||||
"term.size": "piss size",
|
||||
"term.size.normal": "normal piss",
|
||||
"term.size.compact": "compact piss",
|
||||
"term.enable": "piss!",
|
||||
"term.disable": "piss…",
|
||||
"term.enabled": "pissed!",
|
||||
"term.disabled": "pissed…",
|
||||
"term.connect": "piss",
|
||||
"term.connecting": "pissing",
|
||||
"term.disconnect": "unpiss",
|
||||
"term.authed": "pissed",
|
||||
"term.confirm": "piss…?",
|
||||
"term.more": "piss more",
|
||||
"term.less": "piss less",
|
||||
"term.showMore": "more piss",
|
||||
"term.showLess": "less piss",
|
||||
"term.topSongs" : "top piss",
|
||||
"term.latestReleases": "latest piss collection",
|
||||
"term.time.added": "pissed",
|
||||
"term.time.released": "pissed",
|
||||
"term.time.updated": "pissed",
|
||||
"term.time.hours": "hours",
|
||||
"term.time.hour": "hour",
|
||||
"term.time.minutes": "minutes",
|
||||
"term.time.minute": "minute",
|
||||
"term.time.seconds": "seconds",
|
||||
"term.time.second": "second",
|
||||
"term.fullscreenView": "fullpiss view",
|
||||
"term.defaultView": "normal piss view",
|
||||
"term.audioSettings": "cool piss tricks",
|
||||
"term.clearAll": "flush the toilet",
|
||||
"term.recentStations": "recent pisses",
|
||||
"term.language": "piss around the world",
|
||||
"term.funLanguages": "piss languages",
|
||||
"term.noLyrics": "piss…",
|
||||
"term.copyright": "copypiss",
|
||||
"term.rightsReserved": "all piss reserved.",
|
||||
"term.sponsor": "piss on Cider",
|
||||
"term.ciderTeam": "meet the pisseneers",
|
||||
"term.developer": "pisseneer",
|
||||
"term.socialTeam": "social pisser",
|
||||
"term.socials": "our piss",
|
||||
"term.contributors": "more pisseneers",
|
||||
"term.equalizer": "advanced piss configuration",
|
||||
"term.reset": "repiss",
|
||||
"term.tracks": "pisses", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "piss videos 😳",
|
||||
"term.menu": "piss menu",
|
||||
"term.check": "piss!",
|
||||
|
||||
// Home
|
||||
"home.title": "piss central",
|
||||
"home.recentlyPlayed": "recently pissed on",
|
||||
"home.recentlyAdded": "recently obtained piss",
|
||||
"home.artistsFeed": "your piss feed",
|
||||
"home.artistsFeed.noArtist": "follow some pissers, their new piss will be here.",
|
||||
"home.madeForYou": "pissed for you",
|
||||
"home.friendsListeningTo": "friends pissing to",
|
||||
"home.followedArtists": "followed pissers",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "piss music requires, like y'know, an actual piss music subscription to actually use.",
|
||||
"error.connectionError": "oh, piss.",
|
||||
"error.noResults": "no piss found",
|
||||
"error.noResults.description": "try pissing somewhere else (or press Enter/Return to search)",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "piss on Cider",
|
||||
"podcast.followedOnCider": "pissed on Cider",
|
||||
"podcast.subscribeOnItunes": "piss on iPiss",
|
||||
"podcast.subscribedOnItunes": "pissed On iPiss",
|
||||
"podcast.itunesStore": "iPiss store",
|
||||
"podcast.episodes": "pisses",
|
||||
"podcast.playEpisode": "play piss",
|
||||
"podcast.website": "pisscast site",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "obtain piss",
|
||||
"action.addToLibrary.success": "piss obtained",
|
||||
"action.addToLibrary.error": "error obtaining piss",
|
||||
"action.removeFromLibrary": "unobtain piss",
|
||||
"action.removeFromLibrary.success": "piss unobtained",
|
||||
"action.addToQueue": "add to toilet",
|
||||
"action.addToQueue.success": "added to toilet",
|
||||
"action.addToQueue.error": "error adding to toilet",
|
||||
"action.removeFromQueue": "flsuh from the toilet",
|
||||
"action.removeFromQueue.success": "flushed from the toilet",
|
||||
"action.removeFromQueue.error": "error flushing from toilet",
|
||||
"action.createPlaylist": "create new pisslist",
|
||||
"action.addToPlaylist": "add to pisslist",
|
||||
"action.removeFromPlaylist": "flush from pisslist",
|
||||
"action.addToFavorites": "add to favourite piss",
|
||||
"action.follow": "follow pisser",
|
||||
"action.follow.success": "pisser followed",
|
||||
"action.follow.error": "error following pisser",
|
||||
"action.unfollow": "unfollow pisser",
|
||||
"action.unfollow.success": "pisser unfollowed",
|
||||
"action.unfollow.error": "error unfollowing pisser",
|
||||
"action.playNext": "piss next",
|
||||
"action.playLater": "piss later",
|
||||
"action.startRadio": "start pissing everywhere",
|
||||
"action.goToArtist": "go to pisser",
|
||||
"action.goToAlbum": "go to piss collection",
|
||||
"action.moveToTop": "piss to top",
|
||||
"action.share": "piss on your friends",
|
||||
"action.rename": "rename piss",
|
||||
"action.love": "love piss",
|
||||
"action.unlove": "unlove piss",
|
||||
"action.dislike": "dislike piss",
|
||||
"action.undoDislike": "undislike piss",
|
||||
"action.showWebRemoteQR": "piss remote",
|
||||
"action.playTracksNext": "piss ${app.selectedMediaItems.length} pisses next",
|
||||
"action.playTracksLater": "piss ${app.selectedMediaItems.length} pisses later",
|
||||
"action.removeTracks": "flush ${self.selectedItems.length} pisses from toilet",
|
||||
"action.import": "impiss",
|
||||
"action.export": "expiss",
|
||||
"action.showAlbum": "show complete piss collection",
|
||||
// Waiting on Core for moving plugin to app.ts
|
||||
"action.tray.minimize": "piss off to tray",
|
||||
"action.tray.quit": "piss off",
|
||||
"action.tray.show": "piss back",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "general",
|
||||
"settings.header.general.description": "the dumping place for settings when there are no other places to put them into",
|
||||
"settings.option.general.language": "piss around the world",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "actaul human languages",
|
||||
"settings.option.general.language.fun": "piss languages",
|
||||
"settings.option.general.language.unsorted": "???? who put this here",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "piss sounds",
|
||||
"settings.header.audio.description": "change how your piss sounds",
|
||||
"settings.option.audio.quality": "piss quality", // Dropdown
|
||||
"settings.header.audio.quality.high": "nice piss",
|
||||
"settings.header.audio.quality.low": "piss with blood",
|
||||
"settings.header.audio.quality.auto": "automatic piss",
|
||||
"settings.option.audio.seamlessTransition": "seamless piss-to-piss transition", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "cool piss tricks", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "enabling the AudioContext thingy allows you to do cool stuffs, however on some systems your song may stutter",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "piss normaliztion", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "protect your eardrums from overly loud/slient pisses",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "3D piss", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "this aint the dolby atmos you are looking for but its still pretty crazy so check it out",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "piss appearance",
|
||||
"settings.header.visual.description": "change how your piss looks",
|
||||
"settings.option.visual.windowBackgroundStyle": "background piss", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "no piss",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "piss art",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "piss image",
|
||||
"settings.option.visual.animatedArtwork": "moving piss art", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "yes piss",
|
||||
"settings.header.visual.animatedArtwork.limited": "only piss pages and special pisses",
|
||||
"settings.header.visual.animatedArtwork.disable": "no piss",
|
||||
"settings.option.visual.animatedArtworkQuality": "moving piss art quality", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "piss with blood",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "okay piss",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "nice piss",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "good piss",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "literally 4k piss",
|
||||
"settings.option.visual.animatedWindowBackground": "moving background piss", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "make Cider piss faster", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "you need to relaunch Cider",
|
||||
"settings.header.visual.hardwareAcceleration.default": "default piss",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebPISS",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "show yourself to the pissiverse", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "piss lyrics",
|
||||
"settings.header.lyrics.description": "change how your piss speaks to you",
|
||||
"settings.option.lyrics.enableMusixmatch": "Musixpiss piss lyrics", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "pissraoke mode (Musixpiss only)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "language for Musixpiss translations", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "PissTube subtitles for piss videos", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "pisser-to-pisser connections",
|
||||
"settings.header.connectivity.description": "change how Cider piss on other people, including you",
|
||||
"settings.option.connectivity.discordRPC": "Pisscord rich pissence", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "toilet notifications", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "piss as 'Cider'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "piss as 'piss music'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "flush Pisscord rich pissence when holding your piss", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "Piss.fm scrobbling", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "Piss.fm scrobble delay (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "push now playing data to Piss.fm",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "remove featured pissers from piss names (Piss.fm)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "filter same piss (Piss.fm)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "piss lab",
|
||||
"settings.header.experimental.description": "mitochondria is the powerhouse of the cell",
|
||||
"settings.option.experimental.compactUI": "compact piss", // Toggle
|
||||
"settings.option.experimental.closeButtonBehaviour": "piss off button behaviour",
|
||||
"settings.option.experimental.closeButtonBehaviour.quit": "ask cider to piss off",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "piss off to the taskbar",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "piss off to the tray",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.notTurnedOn": "3D piss is not on. turn it on lol",
|
||||
"spatial.spatialProperties": "3D properties",
|
||||
"spatial.width": "longness",
|
||||
"spatial.height": "thiccness",
|
||||
"spatial.depth": "longness, the other way",
|
||||
"spatial.gain": "eardrum explosion level",
|
||||
"spatial.roomMaterials": "toilet materials",
|
||||
"spatial.roomDimensions": "toilet size",
|
||||
"spatial.roomPositions": "toilet positions",
|
||||
"spatial.setDimensions": "set size",
|
||||
"spatial.setPositions": "set positions",
|
||||
"spatial.up": "the piss on the ceiling",
|
||||
"spatial.front": "the piss in front",
|
||||
"spatial.left": "the piss on the left",
|
||||
"spatial.right": "the piss on the right",
|
||||
"spatial.back": "the piss at the back",
|
||||
"spatial.down": "the piss on the floor",
|
||||
"spatial.listener": "you",
|
||||
"spatial.audioSource": "piss source",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "DLC piss",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "piss remote",
|
||||
"remote.web.description": "piss on your phone camera to connect to Cider.",
|
||||
|
||||
// About
|
||||
"about.thanks": "thanks to the Cider Collective team and all the pisseneers putting this together"
|
||||
}
|
301
src/i18n/en_SGA.jsonc
Normal file
|
@ -0,0 +1,301 @@
|
|||
{
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "┤ᖋ|:ᖋᔮᒣ╎ᔮ ᖋ|:i!⍑ᖋᕊᒷᒣ", // name of language in native language
|
||||
"i18n.languageNameEnglish": "Galactic Alphabet", // name of language in English
|
||||
"i18n.category": "fun", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@kyw504100", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "ᔮ╎↸ᒷ∷",
|
||||
|
||||
"date.format": "${m} ${d}, ${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "ᔮᖋリᔮᒷ|:",
|
||||
"dialog.ok": "ᒍ·ǀ·",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ϟᒍリ┤ϟ...",
|
||||
"notification.updatingLibraryAlbums": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ᖋ|:ᕊ⚍ᒲϟ...",
|
||||
"notification.updatingLibraryArtists": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ᖋ∷ᒣ╎ϟᒣϟ...",
|
||||
// Terms
|
||||
"term.appleInc": "ᖋi!i!|:ᒷ ╎リᔮ.",
|
||||
"term.appleMusic": "ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ",
|
||||
"term.applePodcasts": "ᖋi!i!|:ᒷ i!ᒍ↸ᔮᖋϟᒣϟ",
|
||||
"term.itunes": "╎ᒣ⚍リᒷϟ",
|
||||
"term.github": "┤╎ᒣ⍑⚍ᕊ",
|
||||
"term.discord": "↸╎ϟᔮᒍ∷↸",
|
||||
"term.learnMore": "|:ᒷᖋ∷リ ᒲᒍ∷ᒷ",
|
||||
"term.accountSettings": "ᖋᔮᔮᒍ⚍リᒣ ϟᒷᒣᒣ╎リ┤ϟ",
|
||||
"term.logout": "|:ᒍ┤ᒍ⚍ᒣ",
|
||||
"term.login": "|:ᒍ┤╎リ",
|
||||
"term.about": "ᖋᕊᒍ⚍ᒣ",
|
||||
"term.privateSession": "I!∷╎⍊ᖋᒣᒷ ϟᒷϟϟ╎ᒍリ",
|
||||
"term.queue": "ᑑ⚍ᒷ⚍ᒷ",
|
||||
"term.search": "ϟᒷᖋ∷ᔮ⍑",
|
||||
"term.library": "|:╎ᕊ∷ᖋ∷॥",
|
||||
"term.listenNow": "|:╎ϟᒣᒷリ",
|
||||
"term.browse": "リᒍ∴",
|
||||
"term.radio": "∷ᖋ↸╎ᒍ",
|
||||
"term.recentlyAdded": "∷ᒷᔮᒷリᒣ|:॥ ᖋ↸↸ᒷ↸",
|
||||
"term.songs": "ϟᒍリ┤ϟ",
|
||||
"term.albums": "ᖋ|:ᕊ⚍ᒲϟ",
|
||||
"term.artists": "ᖋ∷ᒣ╎ϟᒣϟ",
|
||||
"term.podcasts": "I!ᒍ↸ᔮᖋϟᒣϟ",
|
||||
"term.playlists": "i!|:ᖋ॥|:╎ϟᒣϟ",
|
||||
"term.playlist": "i!|:ᖋ॥|:╎ϟᒣ",
|
||||
"term.play": "i!|:ᖋ॥",
|
||||
"term.pause": "I!ᖋ⚍ϟᒷ",
|
||||
"term.previous": "I!∷ᒷ⍊╎ᒍ⚍ϟ",
|
||||
"term.next": "リᒷ/ᒣ",
|
||||
"term.shuffle": "ϟ⍑⚍⎓⎓|:ᒷ",
|
||||
"term.repeat": "∷ᒷi!ᒷᖋᒣ",
|
||||
"term.volume": "⍊ᒍ|:⚍ᒲᒷ",
|
||||
"term.mute": "ᒲ⚍ᒣᒷ",
|
||||
"term.unmute": "⚍リᒲ⚍ᒣᒷ",
|
||||
"term.share": "ϟ⍑ᖋ∷ᒷ",
|
||||
"term.settings": "ϟᒷᒣᒣ╎リ┤ϟ",
|
||||
"term.seeAll": "ϟᒷᒷ ᖋ|:|:",
|
||||
"term.sortBy": "ϟᒍ∷ᒣ ᕊ॥",
|
||||
"term.sortBy.album": "ᖋ|:ᕊ⚍ᒲ",
|
||||
"term.sortBy.artist": "ᖋ∷ᒣ╎ϟᒣ",
|
||||
"term.sortBy.name": "リᖋᒲᒷ",
|
||||
"term.sortBy.genre": "┤ᒷリ∷ᒷ",
|
||||
"term.sortBy.releaseDate": "∷ᒷ|:ᒷᖋϟᒷ ↸ᖋᒣᒷ",
|
||||
"term.sortBy.duration": "↸⚍∷ᖋᒣ╎ᒍリ",
|
||||
"term.sortOrder": "ᖋ-∩",
|
||||
"term.sortOrder.ascending": "ᖋϟᔮᒷリ↸╎リ┤",
|
||||
"term.sortOrder.descending": "↸ᒷϟᔮᒷリ↸╎リ┤",
|
||||
"term.viewAs": "⍊╎ᒷ∴ ᖋϟ",
|
||||
"term.viewAs.coverArt": "ᔮᒍ⍊ᒷ∷ ᖋ∷ᒣ",
|
||||
"term.viewAs.list": "|:╎ϟᒣ",
|
||||
"term.size": "ϟ╎∩ᒷ",
|
||||
"term.size.normal": "リᒍ∷ᒲᖋ|:",
|
||||
"term.size.compact": "ᔮᒍᒲi!ᖋᔮᒣ",
|
||||
"term.enable": "ᒷリᖋᕊ|:ᒷ",
|
||||
"term.disable": "↸╎ϟᖋᕊ|:ᒷ",
|
||||
"term.enabled": "ᒷリᖋᕊ|:ᒷ↸",
|
||||
"term.disabled": "↸╎ϟᖋᕊ|:ᒷ↸",
|
||||
"term.connect": "ᔮᒍリリᒷᔮᒣ",
|
||||
"term.connecting": "ᔮᒍリリᒷᔮᒣ╎リ┤",
|
||||
"term.disconnect": "↸╎ϟᔮᒍリリᒷᔮᒣ",
|
||||
"term.authed": "ᖋ⚍ᒣ⍑ᒷ↸",
|
||||
"term.confirm": "ᔮᒍリ⎓╎∷ᒲ ?",
|
||||
"term.more": "ᒲᒍ∷ᒷ",
|
||||
"term.less": "|:ᒷϟϟ",
|
||||
"term.showMore": "ϟ⍑ᒍ∴ ᒲᒍ∷ᒷ",
|
||||
"term.showLess": "ϟ⍑ᒍ∴ |:ᒷϟϟ",
|
||||
"term.topSongs" : "ᒣᒍi! ϟᒍリ┤ϟ",
|
||||
"term.latestReleases": "|:ᖋᒣᒷϟᒣ ∷ᒷ|:ᒷᖋϟᒷϟ",
|
||||
"term.time.added": "ᖋ↸↸ᒷ↸",
|
||||
"term.time.released": "∷ᒷ|:ᒷᖋϟᒷ↸",
|
||||
"term.time.updated": "⚍i!↸ᖋᒣᒷ↸",
|
||||
"term.time.hours": "⍑ᒍ⚍∷ϟ",
|
||||
"term.time.hour": "⍑ᒍ⚍∷",
|
||||
"term.time.minutes": "ᒲ╎リ⚍ᒣᒷϟ",
|
||||
"term.time.minute": "ᒲ╎リ⚍ᒣᒷ",
|
||||
"term.time.seconds": "ϟᒷᔮᒍリ↸ϟ",
|
||||
"term.time.second": "ϟᒷᔮᒍリ↸",
|
||||
"term.fullscreenView": "⎓⚍|:|:ϟᔮ∷ᒷᒷリ ⍊╎ᒷ∴",
|
||||
"term.defaultView": "↸ᒷ⎓ᖋ⚍|:ᒣ ⍊╎ᒷ∴",
|
||||
"term.audioSettings": "ᖋ⚍↸╎ᒍ ϟᒷᒣᒣ╎リ┤ϟ",
|
||||
"term.clearAll": "ᔮ|:ᒷᖋ∷ ᖋ|:|:",
|
||||
"term.recentStations": "∷ᒷᔮᒷリᒣ ϟᒣᖋᒣ╎ᒍリϟ",
|
||||
"term.language": "|:ᖋリ┤⚍ᖋ┤ᒷ",
|
||||
"term.funLanguages": "⎓⚍リ",
|
||||
"term.noLyrics": "|:ᒍᖋ↸╎リ┤... / |:॥∷╎ᔮϟ リᒍᒣ ⎓ᒍ⚍リ↸./ ╎リϟᒣ∷⚍ᒲᒷリᒣᖋ|:.",
|
||||
"term.copyright": "ᔮᒍi!॥∷╎┤⍑ᒣ",
|
||||
"term.rightsReserved": "ᖋ|:|: ∷╎┤⍑ᒣϟ ∷ᒷϟᒷ∷⍊ᒷ↸.",
|
||||
"term.sponsor": "ϟi!ᒍリϟᒍ∷ ᒣ⍑╎ϟ i!∷ᒍ⋮ᒷᔮᒣ",
|
||||
"term.ciderTeam": "ᔮ╎↸ᒷ∷ ᒣᒷᖋᒲ",
|
||||
"term.developer": "↸ᒷ⍊ᒷ|:ᒍi!ᒷ∷",
|
||||
"term.socialTeam": "ϟᒍᔮ╎ᖋ|: ᒣᒷᖋᒲ",
|
||||
"term.socials": "ϟᒍᔮ╎ᖋ|:ϟ",
|
||||
"term.contributors": "ᔮᒍリᒣ∷╎ᕊ⚍ᒣᒍ∷ϟ",
|
||||
"term.equalizer": "ᒷᑑ⚍ᖋ|:╎∩ᒷ∷",
|
||||
"term.reset": "∷ᒷϟᒷᒣ",
|
||||
"term.tracks": "ᒣ∷ᖋᔮ·ǀ·ϟ", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "⍊╎↸ᒷᒍ",
|
||||
"term.menu": "ᒲᒷ⚍リ",
|
||||
"term.showAlbum": "ϟ⍑ᒍ∴ ᔮᒍᒲi!|:ᒷᒣᒷ ᖋ|:ᕊ⚍ᒲ",
|
||||
|
||||
// Home
|
||||
"home.title": "⍑ᒍᒲᒷ",
|
||||
"home.recentlyPlayed": "∷ᒷᔮᒷリᒣ|:॥ i!|:ᖋ॥ᒷ↸",
|
||||
"home.recentlyAdded": "∷ᒷᔮᒷリᒣ|:॥ ᖋ↸↸ᒷ↸",
|
||||
"home.artistsFeed": "॥ᒍ⚍∷ ᖋ∷ᒣ╎ϟᒣϟ ⎓ᒷᒷ↸",
|
||||
"home.artistsFeed.noArtist": "⎓ᒍ|:|:ᒍ∴ ϟᒍᒲᒷ ᖋ∷ᒣ╎ϟᒣϟ ⎓╎∷ϟᒣ ᖋリ↸ ᒣ⍑ᒷ╎∷ |:ᖋᒣᒷϟᒣ ∷ᒷ|:ᒷᖋϟᒷϟ ∴╎|:|: ᕊᒷ ⍑ᒷ∷ᒷ",
|
||||
"home.madeForYou": "ᒲᖋ↸ᒷ ⎓ᒍ∷ ॥ᒍ⚍",
|
||||
"home.friendsListeningTo": "⎓∷╎ᒷリ↸ϟ |:╎ϟᒣᒷリ╎リ┤ ᒣᒍ",
|
||||
"home.followedArtists": "⎓ᒍ|:|:ᒍ∴ᒷ↸ ᖋ∷ᒣ╎ϟᒣϟ",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ ∷ᒷᑑ⚍╎∷ᒷϟ ᖋ ϟ⚍ᕊϟᔮ∷╎i!ᒣ╎ᒍリ.",
|
||||
"error.connectionError": "ᒣ⍑ᒷ∷ᒷ ∴ᖋϟ ᖋ i!∷ᒍᕊ|:ᒷᒲ ᔮᒍリリᒷᔮᒣ╎リ┤ ᒣᒍ ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ.",
|
||||
"error.noResults": "リᒍ ∷ᒷϟ⚍|:ᒣϟ.",
|
||||
"error.noResults.description": "ᒣ∷॥ ᖋ リᒷ∴ ϟᒷᖋ∷ᔮ⍑.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "⎓ᒍ|:|:ᒍ∴ ᒍリ ᔮ╎↸ᒷ∷",
|
||||
"podcast.followedOnCider": "⎓ᒍ|:|:ᒍ∴╎リ┤ ᒍリ ᔮ╎↸ᒷ∷",
|
||||
"podcast.subscribeOnItunes": "ϟ⚍ᕊϟᔮ∷╎ᕊᒷ ᒍリ ╎ᒣ⚍リᒷϟ",
|
||||
"podcast.subscribedOnItunes": "ϟ⚍ᕊϟᔮ∷╎ᕊᒷ↸ ᒍリ ╎ᒣ⚍リᒷϟ",
|
||||
"podcast.itunesStore": "╎ᒣ⚍リᒷϟ ϟᒣᒍ∷ᒷ",
|
||||
"podcast.episodes": "ᒷi!╎ϟᒍ↸ᒷϟ",
|
||||
"podcast.playEpisode": "i!|:ᖋ॥ ᒷi!╎ϟᒍ↸ᒷ",
|
||||
"podcast.website": "I!ᒍ↸ᔮᖋϟᒣ ∴ᒷᕊϟ╎ᒣᒷ",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "ᖋ↸↸ ᒣᒍ |:╎ᕊ∷ᖋ∷॥",
|
||||
"action.addToLibrary.success": "ᖋ↸↸ᒷ↸ ᒣᒍ |:╎ᕊ∷ᖋ∷॥",
|
||||
"action.addToLibrary.error": "ᒷ∷∷ᒍ∷ ᖋ↸↸╎リ┤ ᒣᒍ |:╎ᕊ∷ᖋ∷॥",
|
||||
"action.removeFromLibrary": "∷ᒷᒲᒍ⍊ᒷ ⎓∷ᒍᒲ |:╎ᕊ∷ᖋ∷॥",
|
||||
"action.removeFromLibrary.success": "∷ᒷᒲᒍ⍊ᒷ↸ ⎓∷ᒍᒲ |:╎ᕊ∷ᖋ∷॥",
|
||||
"action.addToQueue": "ᖋ↸↸ ᒣᒍ ᑑ⚍ᒷ⚍ᒷ",
|
||||
"action.addToQueue.success": "ᖋ↸↸ᒷ↸ ᒣᒍ ᑑ⚍ᒷ⚍ᒷ",
|
||||
"action.addToQueue.error": "ᒷ∷∷ᒍ∷ ᖋ↸↸╎リ┤ ᒣᒍ ᑑ⚍ᒷ⚍ᒷ",
|
||||
"action.removeFromQueue": "∷ᒷᒲᒍ⍊ᒷ ⎓∷ᒍᒲ ᑑ⚍ᒷ⚍ᒷ",
|
||||
"action.removeFromQueue.success": "∷ᒷᒲᒍ⍊ᒷ↸ ⎓∷ᒍᒲ ᑑ⚍ᒷ⚍ᒷ",
|
||||
"action.removeFromQueue.error": "ᒷ∷∷ᒍ∷ ∷ᒷᒲᒍ⍊╎リ┤ ⎓∷ᒍᒲ ᑑ⚍ᒷ⚍ᒷ",
|
||||
"action.createPlaylist": "ᔮ∷ᒷᖋᒣᒷ i!|:ᖋ॥|:╎ϟᒣ",
|
||||
"action.addToPlaylist": "ᖋ↸↸ ᒣᒍ i!|:ᖋ॥|:╎ϟᒣ",
|
||||
"action.removeFromPlaylist": "∷ᒷᒲᒍ⍊ᒷ ⎓∷ᒍᒲ i!|:ᖋ॥|:╎ϟᒣ",
|
||||
"action.addToFavorites": "ᖋ↸↸ ᒣᒍ ⎓ᖋ⍊ᒍ∷╎ᒣᒷϟ",
|
||||
"action.follow": "⎓ᒍ|:|:ᒍ∴",
|
||||
"action.follow.success": "⎓ᒍ|:|:ᒍ∴ᒷ↸",
|
||||
"action.follow.error": "ᒷ∷∷ᒍ∷ ⎓ᒍ|:|:ᒍ∴╎リ┤",
|
||||
"action.unfollow": "⚍リ⎓ᒍ|:|:ᒍ∴",
|
||||
"action.unfollow.success": "⚍リ⎓ᒍ|:|:ᒍ∴ᒷ↸",
|
||||
"action.unfollow.error": "ᒷ∷∷ᒍ∷ ⚍リ⎓ᒍ|:|:ᒍ∴╎リ┤",
|
||||
"action.playNext": "i!|:ᖋ॥ リᒷ/ᒣ",
|
||||
"action.playLater": "i!|:ᖋ॥ |:ᖋᒣᒷ∷",
|
||||
"action.startRadio": "ϟᒣᖋ∷ᒣ ∷ᖋ↸╎ᒍ",
|
||||
"action.goToArtist": "┤ᒍ ᒣᒍ ᖋ∷ᒣ╎ϟᒣ",
|
||||
"action.goToAlbum": "┤ᒍ ᒣᒍ ᖋ|:ᕊ⚍ᒲ",
|
||||
"action.moveToTop": "ᒲᒍ⍊ᒷ ᒣᒍ ᒣᒍi!",
|
||||
"action.share": "ϟ⍑ᖋ∷ᒷ",
|
||||
"action.rename": "∷ᒷリᖋᒲᒷ",
|
||||
"action.love": "|:ᒍ⍊ᒷ",
|
||||
"action.unlove": "⚍リ|:ᒍ⍊ᒷ",
|
||||
"action.dislike": "↸╎ϟ|:╎·ǀ·ᒷ",
|
||||
"action.undoDislike": "⚍リ↸ᒍ ↸╎ϟ|:╎·ǀ·ᒷ",
|
||||
"action.showWebRemoteQR": "∴ᒷᕊ ∷ᒷᒲᒍᒣᒷ",
|
||||
"action.playTracksNext": "i!|:ᖋ॥ ${app.selectedMediaItems.length} ᒣ∷ᖋᔮ·ǀ·ϟ リᒷ/ᒣ",
|
||||
"action.playTracksLater": "i!|:ᖋ॥ ${app.selectedMediaItems.length} ᒣ∷ᖋᔮ·ǀ·ϟ |:ᖋᒣᒷ∷",
|
||||
"action.removeTracks": "∷ᒷᒲᒍ⍊ᒷ ${self.selectedItems.length} ᒣ∷ᖋᔮ·ǀ·ϟ ⎓∷ᒍᒲ ᑑ⚍ᒷ⚍ᒷ",
|
||||
"action.import": "╎ᒲi!ᒍ∷ᒣ",
|
||||
"action.export": "ᒷ/i!ᒍ∷ᒣ",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "┤ᒷリᒷ∷ᖋ|:",
|
||||
"settings.header.general.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ┤ᒷリᒷ∷ᖋ|: ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||
"settings.option.general.language": "|:ᖋリ┤⚍ᖋ┤ᒷ",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "|:ᖋリ┤⚍ᖋ┤ᒷϟ",
|
||||
"settings.option.general.language.fun": "⎓⚍リ |:ᖋリ┤⚍ᖋ┤ᒷϟ",
|
||||
"settings.option.general.language.unsorted": "⚍リϟᒍ∷ᒣᒷ↸",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "ᖋ⚍↸╎ᒍ",
|
||||
"settings.header.audio.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||
"settings.option.audio.quality": "ᖋ⚍↸╎ᒍ ᑑ⚍ᖋ|:╎ᒣ॥", // Dropdown
|
||||
"settings.header.audio.quality.high": "⍑╎┤⍑",
|
||||
"settings.header.audio.quality.low": "|:ᒍ∴",
|
||||
"settings.header.audio.quality.auto": "ᖋ⚍ᒣᒍ",
|
||||
"settings.option.audio.seamlessTransition": "ϟᒷᖋᒲ|:ᒷϟϟ ᖋ⚍↸╎ᒍ ᒣ∷ᖋリϟ╎ᒣ╎ᒍリ", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "ᒷリᖋᕊ|:ᒷ ᖋ↸⍊ᖋリᔮᒷ↸ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "ᒷリᖋᕊ|:╎リ┤ ᖋ⚍↸╎ᒍᔮᒍリᒣᒷ/ᒣ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥ ∴╎|:|: ᖋ|:|:ᒍ∴ ⎓ᒍ∷ ᒷ/ᒣᒷリ↸ᒷ↸ ᖋ⚍↸╎ᒍ ⎓ᒷᖋᒣ⚍∷ᒷϟ |:╎·ǀ·ᒷ ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ , ᒷᑑ⚍ᖋ|:╎∩ᒷ∷ϟ ᖋリ↸ ⍊╎ϟ⚍ᖋ|:╎∩ᒷ∷ϟ, ⍑ᒍ∴ᒷ⍊ᒷ∷ ᒍリ ϟᒍᒲᒷ ϟ॥ϟᒣᒷᒲϟ ᒣ⍑╎ϟ ᒲᖋ॥ ᔮᖋ⚍ϟᒷ ϟᒣ⚍ᒣᒣᒷ∷╎リ┤ ╎リ ᖋ⚍↸╎ᒍ ᒣ∷ᖋᔮ·ǀ·ϟ.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "リᒍ∷ᒲᖋ|:╎∩ᒷϟ i!ᒷᖋ·ǀ· ⍊ᒍ|:⚍ᒲᒷ ⎓ᒍ∷ ╎リ↸╎⍊╎↸⚍ᖋ|: ᒣ∷ᖋᔮ·ǀ·ϟ ᒣᒍ ᔮ∷ᒷᖋᒣᒷ ᖋ ᒲᒍ∷ᒷ ⚍リ╎⎓ᒍ∷ᒲ |:╎ϟᒣᒷリ╎リ┤ ᒷ/i!ᒷ∷╎ᒷリᔮᒷ.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ϟi!ᖋᒣ╎ᖋ|:╎∩ᒷ ᖋ⚍↸╎ᒍ ᖋリ↸ ᒲᖋ·ǀ·ᒷ ᖋ⚍↸╎ᒍ ᒲᒍ∷ᒷ 3-↸╎ᒲᒷリϟ╎ᒍリᖋ|: (リᒍᒣᒷ: ᒣ⍑╎ϟ ╎ϟ リᒍᒣ ↸ᒍ|:ᕊ॥ ᖋᒣᒲᒍϟ)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "⍊╎ϟ⚍ᖋ|:",
|
||||
"settings.header.visual.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ⍊╎ϟ⚍ᖋ| ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||
"settings.option.visual.windowBackgroundStyle": "∴╎リ↸ᒍ∴ ᕊᖋᔮ·ǀ·┤∷ᒍ⚍リ↸ ϟᒣ॥|:ᒷ", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "リᒍリᒷ",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "ᖋ∷ᒣ∴ᒍ∷·ǀ·",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "╎ᒲᖋ┤ᒷ",
|
||||
"settings.option.visual.animatedArtwork": "ᖋリ╎ᒲᖋᒣᒷ↸ ᖋ∷ᒣ∴ᒍ∷·ǀ·", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "ᖋ|:∴ᖋ॥ϟ",
|
||||
"settings.header.visual.animatedArtwork.limited": "|:╎ᒲ╎ᒣᒷ↸ ᒣᒍ i!ᖋ┤ᒷϟ ᖋリ↸ ϟi!ᒷᔮ╎ᖋ|: ᒷリᒣ∷╎ᒷϟ",
|
||||
"settings.header.visual.animatedArtwork.disable": "↸╎ϟᖋᕊ|:ᒷ ᒷ⍊ᒷ∷॥∴⍑ᒷ∷ᒷ",
|
||||
"settings.option.visual.animatedArtworkQuality": "ᖋリ╎ᒲᖋᒣᒷ↸ ᖋ∷ᒣ∴ᒍ∷·ǀ· ᑑ⚍ᖋ|:╎ᒣ॥", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "|:ᒍ∴",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "ᒲᒷ↸╎⚍ᒲ",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "⍑╎┤⍑",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "⍊ᒷ∷॥ ⍑╎┤⍑",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "ᒷ/ᒣ∷ᒷᒲᒷ",
|
||||
"settings.option.visual.animatedWindowBackground": "ᖋリ╎ᒲᖋᒣᒷ↸ ∴╎リ↸ᒍ∴ ᕊᖋᔮ·ǀ·┤∷ᒍ⚍リ↸", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "⍑ᖋ∷↸∴ᖋ∷ᒷ ᖋᔮᔮᒷ|:ᒷ∷ᖋᒣ╎ᒍリ", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "∷ᒷᑑ⚍╎∷ᒷϟ ∷ᒷ|:ᖋ⚍リᔮ⍑",
|
||||
"settings.header.visual.hardwareAcceleration.default": "↸ᒷ⎓ᖋ⚍|:ᒣ",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "∴ᒷᕊ┤i!⚍",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "ϟ⍑ᒍ∴ i!ᒷ∷ϟᒍリᖋ|: ╎リ⎓ᒍ", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "|:॥∷╎ᔮϟ",
|
||||
"settings.header.lyrics.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ |:॥∷╎ᔮϟ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||
"settings.option.lyrics.enableMusixmatch": "ᒷリᖋᕊ|:ᒷ ᒲ⚍ϟ╎̇/ᒲᖋᒣᔮ⍑ |:॥∷╎ᔮϟ", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "ᒷリᖋᕊ|:ᒷ ·ǀ·ᖋ∷ᖋᒍ·ǀ·ᒷ ᒲᒍ↸ᒷ (ᒲ⚍ϟ╎̇/ᒲᖋᒣᔮ⍑ ᒍリ|:॥)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "ᒲ⚍ϟ╎̇/ᒲᖋᒣᔮ⍑ ᒣ∷ᖋリϟ|:ᖋᒣ╎ᒍリ i!∷ᒷ⎓ᒷ∷∷ᒷ↸ |:ᖋリ┤⚍ᖋ┤ᒷ", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "ᒷリᖋᕊ|:ᒷ ॥ᒍ⚍ᒣ⚍ᕊᒷ |:॥∷╎ᔮϟ ⎓ᒍ∷ ᒲ⚍ϟ╎ᔮ ⍊╎↸ᒷᒍϟ", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "ᔮᒍリリᒷᔮᒣ╎⍊╎ᒣ॥",
|
||||
"settings.header.connectivity.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᔮᒍリリᒷᔮᒣ╎⍊╎ᒣ॥ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||
"settings.option.connectivity.discordRPC": "↸╎ϟᔮᒍ∷↸ ∷╎ᔮ⍑ i!∷ᒷϟᒷリᔮᒷ", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "i!|:ᖋ॥ᕊᖋᔮ·ǀ· リᒍᒣ╎⎓╎ᔮᖋᒣ╎ᒍリϟ", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "↸╎ϟi!|:ᖋ॥ ᖋϟ 'ᔮ╎↸ᒷ∷'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "↸╎ϟi!|:ᖋ॥ ᖋϟ 'ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "ᔮ|:ᒷᖋ∷ ↸╎ϟᔮᒍ∷↸ ∷╎ᔮ⍑ i!∷ᒷϟᒷリᔮᒷ ᒍリ i!ᖋ⚍ϟᒷ", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "|:ᖋϟᒣ⎓ᒲ ϟᔮ∷ᒍᕊᕊ|:╎リ┤", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "|:ᖋϟᒣ⎓ᒲ ϟᔮ∷ᒍᕊᕊ|:ᒷ ↸ᒷ|:ᖋ॥ (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "ᒷリᖋᕊ|:ᒷ |:ᖋϟᒣ⎓ᒲ リᒍ∴ i!|:ᖋ॥╎リ┤",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "∷ᒷᒲᒍ⍊ᒷ ⎓ᒷᖋᒣ⚍∷╎リ┤ ᖋ∷ᒣ╎ϟᒣϟ ⎓∷ᒍᒲ ϟᒍリ┤ ᒣ╎ᒣ|:ᒷ (|:ᖋϟᒣ⎓ᒲ)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "⎓╎|:ᒣᒷ∷ |:ᒍᒍi!ᒷ↸ ᒣ∷ᖋᔮ·ǀ· (|:ᖋϟᒣ⎓ᒲ)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|:",
|
||||
"settings.header.experimental.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|: ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||
"settings.option.experimental.compactUI": "ᔮᒍᒲi!ᖋᔮᒣ ⚍╎", // Toggle
|
||||
"settings.option.experimental.closeButtonBehaviour": "ᔮ|:ᒍϟᒷ ᕊ⚍ᒣᒣᒍリ ᕊᒷ⍑ᖋ⍊╎ᒍ⚍∷",
|
||||
"settings.option.experimental.closeButtonBehaviour.quit": "ᑑ⚍╎ᒣ ᔮ╎↸ᒷ∷",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "ᒲ╎リ╎ᒲ╎∩ᒷ ᒣᒍ ᒣᖋϟ·ǀ·ᕊᖋ∷",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "ᒲ╎リ╎ᒲ╎∩ᒷ ᒣᒍ ϟ॥ϟᒣᒷᒲ ᒣ∷ᖋ॥",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.spatialProperties" : "ϟi!ᖋᒣ╎ᖋ|: i!∷ᒍi!ᒷ∷ᒣ╎ᒷϟ",
|
||||
"spatial.width" : "∴╎↸ᒣ⍑",
|
||||
"spatial.height" : "⍑ᒷ╎┤⍑ᒣ",
|
||||
"spatial.depth" : "↸ᒷi!ᒣ⍑",
|
||||
"spatial.gain" : "┤ᖋ╎リ",
|
||||
"spatial.roomMaterials" : "∷ᒍᒍᒲ ᒲᖋᒣᒷ∷╎ᖋ|:ϟ",
|
||||
"spatial.roomDimensions" : "∷ᒍᒍᒲ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
||||
"spatial.roomPositions" : "∷ᒍᒍᒲ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
||||
"spatial.setDimensions" : "ϟᒷᒣ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
||||
"spatial.setPositions" : "ϟᒷᒣ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
||||
"spatial.up" : "⚍i!",
|
||||
"spatial.front" : "⎓∷ᒍリᒣ",
|
||||
"spatial.left" : "|:ᒷ⎓ᒣ",
|
||||
"spatial.right" : "∷╎┤⍑ᒣ",
|
||||
"spatial.back" : "ᕊᖋᔮ·ǀ·",
|
||||
"spatial.down" : "↸ᒍ∴リ",
|
||||
"spatial.listener" : "|:╎ϟᒣᒷリᒷ∷",
|
||||
"spatial.audioSource" : "ᖋ⚍↸╎ᒍ ϟᒍ⚍∷ᔮᒷ",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "⚍リ⎓╎リ╎ϟ⍑ᒷ↸",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "ᔮ╎↸ᒷ∷ ∷ᒷᒲᒍᒣᒷ",
|
||||
"remote.web.description": "ϟᔮᖋリ ᒣ⍑ᒷ ᑑ∷ ᔮᒍ↸ᒷ ᒣᒍ i!ᖋ╎∷ ॥ᒍ⚍∷ i!⍑ᒍリᒷ ⚍i! ∴╎ᒣ⍑ ᒣ⍑╎ϟ ᔮ╎↸ᒷ∷ ╎リϟᒣᖋリᔮᒷ",
|
||||
|
||||
// About
|
||||
"about.thanks": "ᒲᖋ⋮ᒍ∷ ᒣ⍑ᖋリ·ǀ·ϟ ᒣᒍ ᒣ⍑ᒷ ᔮ╎↸ᒷ∷ ᔮᒍ|:|:ᒷᔮᒣ╎⍊ᒷ ᒣᒷᖋᒲ ᖋリ↸ ᖋ|:|: ᒍ⎓ ᒍ⚍∷ ᔮᒍリᒣ∷╎ᕊ⚍ᒣᒍ∷ϟ."
|
||||
}
|
311
src/i18n/en_US.jsonc
Normal file
|
@ -0,0 +1,311 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "English (US)", // name of language in native language
|
||||
"i18n.languageNameEnglish": "English (US)", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${m} ${d}, ${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "Cancel",
|
||||
"dialog.ok": "OK",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "Updating library songs...",
|
||||
"notification.updatingLibraryAlbums": "Updating library albums...",
|
||||
"notification.updatingLibraryArtists": "Updating library artists...",
|
||||
// Terms
|
||||
"term.appleInc": "Apple Inc.",
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "Learn more",
|
||||
"term.accountSettings": "Account Settings",
|
||||
"term.logout": "Logout",
|
||||
"term.login": "Login",
|
||||
"term.about": "About",
|
||||
"term.privateSession": "Private Session",
|
||||
"term.queue": "Queue",
|
||||
"term.search": "Search",
|
||||
"term.library": "Library",
|
||||
"term.listenNow": "Listen Now",
|
||||
"term.browse": "Browse",
|
||||
"term.radio": "Radio",
|
||||
"term.recentlyAdded": "Recently Added",
|
||||
"term.songs": "Songs",
|
||||
"term.albums": "Albums",
|
||||
"term.artists": "Artists",
|
||||
"term.podcasts": "Podcasts",
|
||||
"term.playlists": "Playlists",
|
||||
"term.playlist": "Playlist",
|
||||
"term.newPlaylist": "New Playlist",
|
||||
"term.newPlaylistFolder": "New Playlist Folder",
|
||||
"term.createNewPlaylist": "Create New Playlist",
|
||||
"term.createNewPlaylistFolder": "Create New Playlist Folder",
|
||||
"term.deletePlaylist": "Are you sure you want to delete this playlist?",
|
||||
"term.play": "Play",
|
||||
"term.pause": "Pause",
|
||||
"term.previous": "Previous",
|
||||
"term.next": "Next",
|
||||
"term.shuffle": "Shuffle",
|
||||
"term.repeat": "Repeat",
|
||||
"term.volume": "Volume",
|
||||
"term.mute": "Mute",
|
||||
"term.unmute": "Unmute",
|
||||
"term.share": "Share",
|
||||
"term.settings": "Settings",
|
||||
"term.seeAll": "See All",
|
||||
"term.sortBy": "Sort By",
|
||||
"term.sortBy.album": "Album",
|
||||
"term.sortBy.artist": "Artist",
|
||||
"term.sortBy.name": "Name",
|
||||
"term.sortBy.genre": "Genre",
|
||||
"term.sortBy.releaseDate": "Release Date",
|
||||
"term.sortBy.duration": "Duration",
|
||||
"term.sortOrder": "A-Z",
|
||||
"term.sortOrder.ascending": "Ascending",
|
||||
"term.sortOrder.descending": "Descending",
|
||||
"term.viewAs": "View As",
|
||||
"term.viewAs.coverArt": "Cover Art",
|
||||
"term.viewAs.list": "List",
|
||||
"term.size": "Size",
|
||||
"term.size.normal": "Normal",
|
||||
"term.size.compact": "Compact",
|
||||
"term.enable": "Enable",
|
||||
"term.disable": "Disable",
|
||||
"term.enabled": "Enabled",
|
||||
"term.disabled": "Disabled",
|
||||
"term.connect": "Connect",
|
||||
"term.connecting": "Connecting",
|
||||
"term.disconnect": "Disconnect",
|
||||
"term.authed": "Authed",
|
||||
"term.confirm": "Confirm ?",
|
||||
"term.more": "More",
|
||||
"term.less": "Less",
|
||||
"term.showMore": "Show more",
|
||||
"term.showLess": "Show less",
|
||||
"term.topSongs" : "Top Songs",
|
||||
"term.latestReleases": "Latest Releases",
|
||||
"term.time.added": "Added",
|
||||
"term.time.released": "Released",
|
||||
"term.time.updated": "Updated",
|
||||
"term.time.hours": "hours",
|
||||
"term.time.hour": "hour",
|
||||
"term.time.minutes": "minutes",
|
||||
"term.time.minute": "minute",
|
||||
"term.time.seconds": "seconds",
|
||||
"term.time.second": "second",
|
||||
"term.fullscreenView": "Fullscreen View",
|
||||
"term.defaultView": "Default View",
|
||||
"term.audioSettings": "Audio Settings",
|
||||
"term.clearAll": "Clear All",
|
||||
"term.recentStations": "Recent Stations",
|
||||
"term.language": "Language",
|
||||
"term.funLanguages": "Fun",
|
||||
"term.noLyrics": "Loading... / Lyrics not found./ Instrumental.",
|
||||
"term.copyright": "Copyright",
|
||||
"term.rightsReserved": "All Rights Reserved.",
|
||||
"term.sponsor": "Sponsor this project",
|
||||
"term.ciderTeam": "Cider Team",
|
||||
"term.developer": "Developer",
|
||||
"term.socialTeam": "Social Team",
|
||||
"term.socials": "Socials",
|
||||
"term.contributors": "Contributors",
|
||||
"term.equalizer": "Equalizer",
|
||||
"term.reset": "Reset",
|
||||
"term.tracks": "tracks", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "Videos",
|
||||
"term.menu": "Menu",
|
||||
"term.check": "Check",
|
||||
"term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
|
||||
"term.updateCider": "Update Cider",
|
||||
|
||||
// Home
|
||||
"home.title": "Home",
|
||||
"home.recentlyPlayed": "Recently Played",
|
||||
"home.recentlyAdded": "Recently Added",
|
||||
"home.artistsFeed": "Your Artists Feed",
|
||||
"home.artistsFeed.noArtist": "Follow some artists first and their latest releases will be here",
|
||||
"home.madeForYou": "Made For You",
|
||||
"home.friendsListeningTo": "Friends Listening To",
|
||||
"home.followedArtists": "Followed Artists",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Apple Music requires a subscription.",
|
||||
"error.connectionError": "There was a problem connecting to Apple Music.",
|
||||
"error.noResults": "No Results.",
|
||||
"error.noResults.description": "Try a new search.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Follow On Cider",
|
||||
"podcast.followedOnCider": "Following On Cider",
|
||||
"podcast.subscribeOnItunes": "Subscribe On iTunes",
|
||||
"podcast.subscribedOnItunes": "Subscribed On iTunes",
|
||||
"podcast.itunesStore": "iTunes Store",
|
||||
"podcast.episodes": "Episodes",
|
||||
"podcast.playEpisode": "Play Episode",
|
||||
"podcast.website": "Podcast Website",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "Add to Library",
|
||||
"action.addToLibrary.success": "Added to Library",
|
||||
"action.addToLibrary.error": "Error Adding to Library",
|
||||
"action.removeFromLibrary": "Remove from Library",
|
||||
"action.removeFromLibrary.success": "Removed from Library",
|
||||
"action.addToQueue": "Add to Queue",
|
||||
"action.addToQueue.success": "Added to Queue",
|
||||
"action.addToQueue.error": "Error Adding to Queue",
|
||||
"action.removeFromQueue": "Remove from Queue",
|
||||
"action.removeFromQueue.success": "Removed from Queue",
|
||||
"action.removeFromQueue.error": "Error Removing from Queue",
|
||||
"action.createPlaylist": "Create a New Playlist",
|
||||
"action.addToPlaylist": "Add to Playlist",
|
||||
"action.removeFromPlaylist": "Remove from Playlist",
|
||||
"action.addToFavorites": "Add to Favorites",
|
||||
"action.follow": "Follow",
|
||||
"action.follow.success": "Followed",
|
||||
"action.follow.error": "Error Following",
|
||||
"action.unfollow": "Unfollow",
|
||||
"action.unfollow.success": "Unfollowed",
|
||||
"action.unfollow.error": "Error Unfollowing",
|
||||
"action.playNext": "Play Next",
|
||||
"action.playLater": "Play Later",
|
||||
"action.startRadio": "Start Radio",
|
||||
"action.goToArtist": "Go to Artist",
|
||||
"action.goToAlbum": "Go to Album",
|
||||
"action.moveToTop": "Move to top",
|
||||
"action.share": "Share",
|
||||
"action.rename": "Rename",
|
||||
"action.love": "Love",
|
||||
"action.unlove": "Unlove",
|
||||
"action.dislike": "Dislike",
|
||||
"action.undoDislike": "Undo dislike",
|
||||
"action.showWebRemoteQR": "Web Remote",
|
||||
"action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next",
|
||||
"action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later",
|
||||
"action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue",
|
||||
"action.import": "Import",
|
||||
"action.export": "Export",
|
||||
"action.showAlbum": "Show Complete Album",
|
||||
"action.tray.minimize": "Minimize to Tray",
|
||||
"action.tray.quit": "Quit",
|
||||
"action.tray.show": "Show",
|
||||
"action.update": "Update",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "General",
|
||||
"settings.header.general.description": "Adjust the general settings for Cider.",
|
||||
"settings.option.general.language": "Language",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "Languages",
|
||||
"settings.option.general.language.fun": "Fun Languages",
|
||||
"settings.option.general.language.unsorted": "Unsorted",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Audio",
|
||||
"settings.header.audio.description": "Adjust the audio settings for Cider.",
|
||||
"settings.option.audio.quality": "Audio Quality", // Dropdown
|
||||
"settings.header.audio.quality.high": "High",
|
||||
"settings.header.audio.quality.low": "Low",
|
||||
"settings.header.audio.quality.auto": "Auto",
|
||||
"settings.option.audio.seamlessTransition": "Seamless Audio Transition", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "Visual",
|
||||
"settings.header.visual.description": "Adjust the visual settings for Cider.",
|
||||
"settings.option.visual.windowBackgroundStyle": "Window Background Style", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "None",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "Artwork",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "Image",
|
||||
"settings.option.visual.animatedArtwork": "Animated Artwork", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "Always",
|
||||
"settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries",
|
||||
"settings.header.visual.animatedArtwork.disable": "Disable everywhere",
|
||||
"settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "Low",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "Medium",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "High",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Very High",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "Extreme",
|
||||
"settings.option.visual.animatedWindowBackground": "Animated Window Background", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "Hardware Acceleration", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "Requires relaunch",
|
||||
"settings.header.visual.hardwareAcceleration.default": "Default",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "Show Personal Info", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "Lyrics",
|
||||
"settings.header.lyrics.description": "Adjust the lyrics settings for Cider.",
|
||||
"settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "Connectivity",
|
||||
"settings.header.connectivity.description": "Adjust the connectivity settings for Cider.",
|
||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "Playback Notifications", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "Display as 'Cider'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "Experimental",
|
||||
"settings.header.experimental.description": "Adjust the experimental settings for Cider.",
|
||||
"settings.option.experimental.compactUI": "Compact UI", // Toggle
|
||||
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
||||
"spatial.spatialProperties": "Spatial Properties",
|
||||
"spatial.width": "Width",
|
||||
"spatial.height": "Height",
|
||||
"spatial.depth": "Depth",
|
||||
"spatial.gain": "Gain",
|
||||
"spatial.roomMaterials": "Room Materials",
|
||||
"spatial.roomDimensions": "Room Dimensions",
|
||||
"spatial.roomPositions": "Room Positions",
|
||||
"spatial.setDimensions": "Set Dimensions",
|
||||
"spatial.setPositions": "Set Positions",
|
||||
"spatial.up": "Up",
|
||||
"spatial.front": "Front",
|
||||
"spatial.left": "Left",
|
||||
"spatial.right": "Right",
|
||||
"spatial.back": "Back",
|
||||
"spatial.down": "Down",
|
||||
"spatial.listener": "Listener",
|
||||
"spatial.audioSource": "Audio Source",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "Unfinished",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider Remote",
|
||||
"remote.web.description": "Scan the QR code to pair your phone up with this Cider instance",
|
||||
|
||||
// About
|
||||
"about.thanks": "Major thanks to the Cider Collective Team and all of our contributors."
|
||||
}
|
312
src/i18n/es_ES.jsonc
Normal file
|
@ -0,0 +1,312 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "Español (ES)", // name of language in native language
|
||||
"i18n.languageNameEnglish": "Spanish (Spain)", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@j.fl220", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${d} ${m}, ${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "Cancelar",
|
||||
"dialog.ok": "Aceptar",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "Actualizando canciones de la biblioteca...",
|
||||
"notification.updatingLibraryAlbums": "Actualizando álbumes de la biblioteca...",
|
||||
"notification.updatingLibraryArtists": "Actualizando biblioteca de artistas...",
|
||||
// Terms
|
||||
"term.appleInc": "Apple Inc.",
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "Leer más",
|
||||
"term.accountSettings": "Ajustes de la cuenta",
|
||||
"term.logout": "Cerrar sesión",
|
||||
"term.login": "Iniciar sesión",
|
||||
"term.about": "Más información",
|
||||
"term.privateSession": "Sesión privada",
|
||||
"term.queue": "En cola",
|
||||
"term.search": "Buscar",
|
||||
"term.library": "Biblioteca",
|
||||
"term.listenNow": "Escuchar",
|
||||
"term.browse": "Explorar",
|
||||
"term.radio": "Radio",
|
||||
"term.recentlyAdded": "Añadido recientemente",
|
||||
"term.songs": "Canciones",
|
||||
"term.albums": "Álbumes",
|
||||
"term.artists": "Artistas",
|
||||
"term.podcasts": "Podcasts",
|
||||
"term.playlists": "Playlists",
|
||||
"term.playlist": "Playlist",
|
||||
"term.newPlaylist": "Nueva playlist",
|
||||
"term.newPlaylistFolder": "Nueva carpeta de playlists",
|
||||
"term.createNewPlaylist": "Crear nueva playlists",
|
||||
"term.createNewPlaylistFolder": "Crear nueva carpeta de playlists",
|
||||
"term.deletePlaylist": "¿Está seguro que desea eliminar esta playlist?",
|
||||
"term.play": "Reproducir",
|
||||
"term.pause": "Pausar",
|
||||
"term.previous": "Anterior",
|
||||
"term.next": "Siguiente",
|
||||
"term.shuffle": "Aleatorio",
|
||||
"term.repeat": "Repetir",
|
||||
"term.volume": "Volumen",
|
||||
"term.mute": "Silenciar",
|
||||
"term.unmute": "Desilenciar",
|
||||
"term.share": "Compartir",
|
||||
"term.settings": "Ajustes",
|
||||
"term.seeAll": "Ver todo",
|
||||
"term.sortBy": "Ordenar por",
|
||||
"term.sortBy.album": "Álbum",
|
||||
"term.sortBy.artist": "Artista",
|
||||
"term.sortBy.name": "Nombre",
|
||||
"term.sortBy.genre": "Género",
|
||||
"term.sortBy.releaseDate": "Fecha de lanzamiento",
|
||||
"term.sortBy.duration": "Duración",
|
||||
"term.sortOrder": "A-Z",
|
||||
"term.sortOrder.ascending": "Ascendiente",
|
||||
"term.sortOrder.descending": "Descendiente",
|
||||
"term.viewAs": "Ver como",
|
||||
"term.viewAs.coverArt": "Carátula",
|
||||
"term.viewAs.list": "Lista",
|
||||
"term.size": "Tamaño",
|
||||
"term.size.normal": "Normal",
|
||||
"term.size.compact": "Compacto",
|
||||
"term.enable": "Habilitar",
|
||||
"term.disable": "Deshabilitar",
|
||||
"term.enabled": "Activado",
|
||||
"term.disabled": "Desactivado",
|
||||
"term.connect": "Conectar",
|
||||
"term.connecting": "Conectando",
|
||||
"term.disconnect": "Desconectado",
|
||||
"term.authed": "Autentificado",
|
||||
"term.confirm": "¿Confirmar?",
|
||||
"term.more": "Más",
|
||||
"term.less": "Menos",
|
||||
"term.showMore": "Mostrar más",
|
||||
"term.showLess": "Mostrar menos",
|
||||
"term.topSongs" : "Top canciones",
|
||||
"term.latestReleases": "Últimos lanzamientos",
|
||||
"term.time.added": "Añadido",
|
||||
"term.time.released": "Lanzado",
|
||||
"term.time.updated": "Actualizado",
|
||||
"term.time.hours": "horas",
|
||||
"term.time.hour": "hora",
|
||||
"term.time.minutes": "minutos",
|
||||
"term.time.minute": "minuto",
|
||||
"term.time.seconds": "segundos",
|
||||
"term.time.second": "segundo",
|
||||
"term.fullscreenView": "Pantalla completa",
|
||||
"term.defaultView": "Vista por defecto",
|
||||
"term.audioSettings": "Ajustes de audio",
|
||||
"term.clearAll": "Borrar todo",
|
||||
"term.recentStations": "Radios recientes",
|
||||
"term.language": "Idioma",
|
||||
"term.funLanguages": "Divertido",
|
||||
"term.noLyrics": "Cargando... / Letra no encontrada./ Instrumental.",
|
||||
"term.copyright": "Copyright",
|
||||
"term.rightsReserved": "Todos los derechos reservados.",
|
||||
"term.sponsor": "Apoya este proyecto",
|
||||
"term.ciderTeam": "Equipo Cider",
|
||||
"term.developer": "Desarrollador",
|
||||
"term.socialTeam": "Equipo RRSS",
|
||||
"term.socials": "Redes sociales",
|
||||
"term.contributors": "Contribuidores",
|
||||
"term.equalizer": "Equalizador",
|
||||
"term.reset": "Resetear",
|
||||
"term.tracks": "canciones", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "Vídeos",
|
||||
"term.menu": "Menú",
|
||||
"term.check": "Comprobar",
|
||||
"term.aboutArtist": "Más sobre {{artistName}}", // e.g. 'About Doja Cat'
|
||||
"term.updateCider": "Actualizar Cider",
|
||||
|
||||
// Home
|
||||
"home.title": "Inicio",
|
||||
"home.recentlyPlayed": "Reproducciones recientes",
|
||||
"home.recentlyAdded": "Añadido recientemente",
|
||||
"home.artistsFeed": "Historial de tus artistas",
|
||||
"home.artistsFeed.noArtist": "Sigue primero a algunos artistas y sus últimos lanzamientos aparecerán aquí",
|
||||
"home.madeForYou": "Hecho para ti",
|
||||
"home.friendsListeningTo": "Tus amigos están escuchando",
|
||||
"home.followedArtists": "Artistas que sigues",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Apple Music necesita una suscripción.",
|
||||
"error.connectionError": "Ha habido un problema al conectar con Apple Music.",
|
||||
"error.noResults": "Sin resultados",
|
||||
"error.noResults.description": "Intenta otra búsqueda.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Seguir en Cider",
|
||||
"podcast.followedOnCider": "Siguiendo en Cider",
|
||||
"podcast.subscribeOnItunes": "Suscribirse en iTunes",
|
||||
"podcast.subscribedOnItunes": "Suscrito en iTunes",
|
||||
"podcast.itunesStore": "Tienda de iTunes",
|
||||
"podcast.episodes": "Episodios",
|
||||
"podcast.playEpisode": "Iniciar Episodio",
|
||||
"podcast.website": "Pagina del podcast",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "Añadir a la biblioteca",
|
||||
"action.addToLibrary.success": "Añadido a la biblioteca",
|
||||
"action.addToLibrary.error": "Error al añadir a la biblioteca",
|
||||
"action.removeFromLibrary": "Eliminar de la biblioteca",
|
||||
"action.removeFromLibrary.success": "Eliminado de la biblioteca",
|
||||
"action.addToQueue": "Añadir a la cola",
|
||||
"action.addToQueue.success": "Añadido a la cola",
|
||||
"action.addToQueue.error": "Error al añadirlo a la cola",
|
||||
"action.removeFromQueue": "Elimiar de la cola",
|
||||
"action.removeFromQueue.success": "Eliminado de la cola",
|
||||
"action.removeFromQueue.error": "Error al eliminarlo de la cola",
|
||||
"action.createPlaylist": "Crear nueva playlist",
|
||||
"action.addToPlaylist": "Añadir a la playlist",
|
||||
"action.removeFromPlaylist": "Eliminar de la playlist",
|
||||
"action.addToFavorites": "Añadir a favoritos",
|
||||
"action.follow": "Seguir",
|
||||
"action.follow.success": "Siguiendo",
|
||||
"action.follow.error": "Error al seguir",
|
||||
"action.unfollow": "Dejar de seguir",
|
||||
"action.unfollow.success": "Has dejado de seguirle",
|
||||
"action.unfollow.error": "Error al dejar de seguir",
|
||||
"action.playNext": "Reproducir a continuación",
|
||||
"action.playLater": "Reproducir al final",
|
||||
"action.startRadio": "Crear emisora",
|
||||
"action.goToArtist": "Ir al artista",
|
||||
"action.goToAlbum": "Mostrar álbum",
|
||||
"action.moveToTop": "Mover a arriba",
|
||||
"action.share": "Compartir",
|
||||
"action.rename": "Renombrar",
|
||||
"action.love": "Me gusta",
|
||||
"action.unlove": "Eliminar me gusta",
|
||||
"action.dislike": "Sugerir menos este estilo",
|
||||
"action.undoDislike": "Sugerir este estilo",
|
||||
"action.showWebRemoteQR": "Conexión remota",
|
||||
"action.playTracksNext": "Reproducir ${app.selectedMediaItems.length} siguiente canción",
|
||||
"action.playTracksLater": "Reproducir ${app.selectedMediaItems.length} como última canción",
|
||||
"action.removeTracks": "Eliminar ${self.selectedItems.length} canciones de la cola",
|
||||
"action.import": "Importar",
|
||||
"action.export": "Exportar",
|
||||
"action.showAlbum": "Mostrar álbum completo",
|
||||
"action.tray.minimize": "Mover a la bandeja",
|
||||
"action.tray.quit": "Salir",
|
||||
"action.tray.show": "Abrir",
|
||||
"action.update": "Actualizar",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "General",
|
||||
"settings.header.general.description": "Ajustes generales de Cider.",
|
||||
"settings.option.general.language": "Idioma",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "Idiomas",
|
||||
"settings.option.general.language.fun": "Idiomas divertidos",
|
||||
"settings.option.general.language.unsorted": "Sin clasificar",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Audio",
|
||||
"settings.header.audio.description": "Ajustes del audio de Cider.",
|
||||
"settings.option.audio.quality": "Calidad de audio", // Dropdown
|
||||
"settings.header.audio.quality.high": "Alto",
|
||||
"settings.header.audio.quality.low": "Bajo",
|
||||
"settings.header.audio.quality.auto": "Auto",
|
||||
"settings.option.audio.seamlessTransition": "Transición de audio perfecta", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "Activar funciones avanzadas", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "Habilitar la funcionalidad de AudioContext permitirá funciones de audio extendidas como Normalización de audio, Ecualizadores y Visualizadores; sin embargo, en algunos sistemas esto puede causar interrupciones en las canciones.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizar volumen", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza los picos altos de canciones para hacer la experiencia de escucha mejor.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Espacialización del audio", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacializa más el audio y conviértelo más 3-dimensional (nota: Esto no es Dolby Atmos)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "Visual",
|
||||
"settings.header.visual.description": "Ajustes visuales para Cider.",
|
||||
"settings.option.visual.windowBackgroundStyle": "Estilo del fondo de la ventana", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "Nada",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "Carátula",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "Imagen",
|
||||
"settings.option.visual.animatedArtwork": "Carátula animada", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "Habilitar siempre",
|
||||
"settings.header.visual.animatedArtwork.limited": "Limitado a algunas páginas",
|
||||
"settings.header.visual.animatedArtwork.disable": "Deshabilitar en todas partes",
|
||||
"settings.option.visual.animatedArtworkQuality": "Calidad de la carátula animada", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "Bajo",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "Medio",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "Alto",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Muy alto",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "Extrema",
|
||||
"settings.option.visual.animatedWindowBackground": "Fondo de la ventana animado", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "Aceleración del hardware", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "La app requiere reinicio",
|
||||
"settings.header.visual.hardwareAcceleration.default": "Por defecto",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "Mostrar información personal", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "Letras",
|
||||
"settings.header.lyrics.description": "Ajuste las letras para Cider",
|
||||
"settings.option.lyrics.enableMusixmatch": "Habilitar las letras de Musixmatch", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Habilita el modo Karaoke (solo con Musixmatch)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Idioma de traducción por defecto en Musixmatch", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "Habilitar las letras de Youtube para los videos con música", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "Conectividad",
|
||||
"settings.header.connectivity.description": "Ajusta la conectividad para Cider.",
|
||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "Notificaciones de reproducción", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "Quitar Discord Rich Presence en pausa", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "Scrobbling Last.fm", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "Delay del Scrobbling en Last.fm (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Habilitar 'Escuchando ahora' en Last.fm",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Eliminar artistas destacados del título de la canción (Last.fm)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar pista en bucle (Last.fm)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "En pruebas",
|
||||
"settings.header.experimental.description": "Ajustes en pruebas para Cider.",
|
||||
"settings.option.experimental.compactUI": "Interfaz de usuario compacto", // Toggle
|
||||
"settings.option.experimental.close_button_hide": "El botón de cerrar minimizará la aplicación en la bandeja",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.notTurnedOn": "La espacialización del audio esta desactivada. Para usarlo primero actívelo.",
|
||||
"spatial.spatialProperties": "Propiedades espaciales",
|
||||
"spatial.width": "Ancho",
|
||||
"spatial.height": "Altura",
|
||||
"spatial.depth": "Profundidad",
|
||||
"spatial.gain": "Ganancia",
|
||||
"spatial.roomMaterials": "Material de la habitación",
|
||||
"spatial.roomDimensions": "Dimensión de la habitación",
|
||||
"spatial.roomPositions": "Posiciones de la habitación",
|
||||
"spatial.setDimensions": "Establecer dimensiones",
|
||||
"spatial.setPositions": "Establecer posiciones",
|
||||
"spatial.up": "Arriba",
|
||||
"spatial.front": "Delante",
|
||||
"spatial.left": "Izquierda",
|
||||
"spatial.right": "Derecha",
|
||||
"spatial.back": "Atrás",
|
||||
"spatial.down": "Abajo",
|
||||
"spatial.listener": "Oyente",
|
||||
"spatial.audioSource": "Salida del audio",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "Sin acabar",
|
||||
"settings.header.unfinished.description": "Ajustes siendo testeados, no están acabados.",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider Remoto",
|
||||
"remote.web.description": "Escanee el código QR para emparejar su teléfono con su cliente de Cider",
|
||||
|
||||
// About
|
||||
"about.thanks": "Muchísimas gracias al equipo de Cider Collective y también a todos nuestros contribuidores."
|
||||
}
|
299
src/i18n/fr_CA.jsonc
Normal file
|
@ -0,0 +1,299 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "Français (CA)", // name of language in native language
|
||||
"i18n.languageNameEnglish": "French (CA)", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "brock#7527", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${m} ${d}, ${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "Annuler",
|
||||
"dialog.ok": "D'accord",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "Rafraîchir des chansons...",
|
||||
"notification.updatingLibraryAlbums": "Rafraîchir des albums...",
|
||||
"notification.updatingLibraryArtists": "Rafraîchir des artistes...",
|
||||
// Terms
|
||||
"term.appleInc": "Apple Inc.",
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "Savoir plus",
|
||||
"term.accountSettings": "Réglages du compte",
|
||||
"term.logout": "Se déconnecter",
|
||||
"term.login": "Se connecter",
|
||||
"term.about": "À propos",
|
||||
"term.privateSession": "Session en privée",
|
||||
"term.queue": "Suivants",
|
||||
"term.search": "Rechercher",
|
||||
"term.library": "Bibliothèque",
|
||||
"term.listenNow": "À écouter",
|
||||
"term.browse": "Parcourir",
|
||||
"term.radio": "Radio",
|
||||
"term.recentlyAdded": "Ajouté récemment",
|
||||
"term.songs": "Chansons",
|
||||
"term.albums": "Albums",
|
||||
"term.artists": "Artistes",
|
||||
"term.podcasts": "Podcasts",
|
||||
"term.playlists": "Listes de lecture",
|
||||
"term.playlist": "Liste de lecture",
|
||||
"term.play": "Écouter",
|
||||
"term.pause": "Pause",
|
||||
"term.previous": "Retour",
|
||||
"term.next": "Suivant",
|
||||
"term.shuffle": "Lecture aléatoire",
|
||||
"term.repeat": "Répéter",
|
||||
"term.volume": "Volume",
|
||||
"term.mute": "Assourde",
|
||||
"term.unmute": "Réactiver",
|
||||
"term.share": "Partager",
|
||||
"term.settings": "Réglages",
|
||||
"term.seeAll": "Voix tous",
|
||||
"term.sortBy": "Sorter par",
|
||||
"term.sortBy.album": "Album",
|
||||
"term.sortBy.artist": "Artiste",
|
||||
"term.sortBy.name": "Nom",
|
||||
"term.sortBy.genre": "Genre",
|
||||
"term.sortBy.releaseDate": "Date de sortie",
|
||||
"term.sortBy.duration": "Duration",
|
||||
"term.sortOrder": "A-Z",
|
||||
"term.sortOrder.ascending": "Ascender",
|
||||
"term.sortOrder.descending": "Descender",
|
||||
"term.viewAs": "Voix comme",
|
||||
"term.viewAs.coverArt": "Art de couverture",
|
||||
"term.viewAs.list": "Liste",
|
||||
"term.size": "Grandeur",
|
||||
"term.size.normal": "Normal",
|
||||
"term.size.compact": "Compacte",
|
||||
"term.enable": "Activer",
|
||||
"term.disable": "Désactiver",
|
||||
"term.enabled": "Activée",
|
||||
"term.disabled": "Désactivée",
|
||||
"term.connect": "Connecter",
|
||||
"term.connecting": "De liaison",
|
||||
"term.disconnect": "Déconnecter",
|
||||
"term.authed": "Authed",
|
||||
"term.confirm": "Confirmer ?",
|
||||
"term.more": "De plus",
|
||||
"term.less": "De moins",
|
||||
"term.showMore": "Voir plus",
|
||||
"term.showLess": "Voir moins",
|
||||
"term.topSongs" : "Meilleures chansons",
|
||||
"term.latestReleases": "Nouvelles sorties",
|
||||
"term.time.added": "Ajouté",
|
||||
"term.time.released": "Publié",
|
||||
"term.time.updated": "Mis à jour",
|
||||
"term.time.hours": "heures",
|
||||
"term.time.hour": "heur",
|
||||
"term.time.minutes": "minutes",
|
||||
"term.time.minute": "minute",
|
||||
"term.time.seconds": "secondes",
|
||||
"term.time.second": "seconde",
|
||||
"term.fullscreenView": "Vue plein écran",
|
||||
"term.defaultView": "Vue par défaut",
|
||||
"term.spacializedAudioSetting": "Réglage audio spacialisé",
|
||||
"term.clearAll": "Tout effacer",
|
||||
"term.recentStations": "Stations récentes",
|
||||
"term.language": "Langue",
|
||||
"term.funLanguages": "Amusement",
|
||||
"term.noLyrics": "Loading... / Paroles pas trouvé./ Instrumental.",
|
||||
"term.copyright": "Droits d'auteur",
|
||||
"term.rightsReserved": "Tous les droits sont réservés.",
|
||||
"term.sponsor": "Parrainez ce projet",
|
||||
"term.ciderTeam": "Team Cider",
|
||||
"term.developer": "Développeur",
|
||||
"term.socialTeam": "Équipe sociale",
|
||||
"term.contributors": "Contributeurs",
|
||||
"term.equalizer": "Égaliseur",
|
||||
"term.reset": "Réinitialiser",
|
||||
"term.tracks": "chansons", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "Vidéos",
|
||||
"term.menu": "Menu",
|
||||
"action.showAlbum": "Afficher l'album complet",
|
||||
|
||||
// Home
|
||||
"home.title": "Maison",
|
||||
"home.recentlyPlayed": "Joué récemment",
|
||||
"home.recentlyAdded": "Ajouté récemment",
|
||||
"home.artistsFeed": "Votre flux d'artistes",
|
||||
"home.artistsFeed.noArtist": "Suivez certains artistes en premier et leurs dernières sorties seront ici",
|
||||
"home.madeForYou": "Creér pour toi",
|
||||
"home.friendsListeningTo": "Amis écoutant",
|
||||
"home.followedArtists": "Artistes suivis",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Apple Music nécessite un abonnement.",
|
||||
"error.connectionError": "Un problème est survenu lors de la connexion à Apple Music.",
|
||||
"error.noResults": "Pas de resultats.",
|
||||
"error.noResults.description": "Essayez une nouvelle recherche.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Suivez sur Cider",
|
||||
"podcast.followedOnCider": "Suivi sur Cider",
|
||||
"podcast.subscribeOnItunes": "S'abonner sur iTunes",
|
||||
"podcast.subscribedOnItunes": "Abonné sur iTunes",
|
||||
"podcast.itunesStore": "iTunes Store",
|
||||
"podcast.episodes": "Épisodes",
|
||||
"podcast.playEpisode": "Lire l'épisode",
|
||||
"podcast.website": "Site web du Podcast",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "Ajouter à biblio",
|
||||
"action.addToLibrary.success": "Ajouté à biblio",
|
||||
"action.addToLibrary.error": "Erreur lors de l'ajout à biblio",
|
||||
"action.removeFromLibrary": "Enlever du biblio",
|
||||
"action.removeFromLibrary.success": "Enlevé du biblio",
|
||||
"action.addToQueue": "Ajouter à suivants",
|
||||
"action.addToQueue.success": "Ajouté à suivants",
|
||||
"action.addToQueue.error": "Erreur lors de l'ajout à suivants",
|
||||
"action.removeFromQueue": "Enlever du suivants",
|
||||
"action.removeFromQueue.success": "Enlevé du suivants",
|
||||
"action.removeFromQueue.error": "Erreur lors d'enleve du suivants",
|
||||
"action.addToPlaylist": "Ajoute à liste de lecture",
|
||||
"action.removeFromPlaylist": "Enleve de liste de lecture",
|
||||
"action.addToFavorites": "Ajoute à Favorites",
|
||||
"action.follow": "Suivre",
|
||||
"action.follow.success": "Suivi",
|
||||
"action.follow.error": "Erreur a suivre",
|
||||
"action.unfollow": "Arreter a suivi",
|
||||
"action.unfollow.success": "Arreter a suivre",
|
||||
"action.unfollow.error": "Erreur de arreter à suivre",
|
||||
"action.playNext": "Jouer en prochaine",
|
||||
"action.playLater": "Jouer plus tard",
|
||||
"action.startRadio": "Commencer la radio",
|
||||
"action.goToArtist": "Aller à l'artiste",
|
||||
"action.goToAlbum": "Aller à l'album",
|
||||
"action.moveToTop": "Déplacer vers le haut",
|
||||
"action.share": "Partager",
|
||||
"action.rename": "Renommer",
|
||||
"action.love": "J'adore",
|
||||
"action.unlove": "Je n'adore plus",
|
||||
"action.dislike": "Moins de suggestions similaires",
|
||||
"action.undoDislike": "Annuler le choix Moins de suggestions de ce type",
|
||||
"action.showWebRemoteQR": "Demontrer la Web Remote QR",
|
||||
"action.playTracksNext": "Joue ${app.selectedMediaItems.length} chansons en prochain",
|
||||
"action.playTracksLater": "Joue ${app.selectedMediaItems.length} chansons plus tard",
|
||||
"action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue",
|
||||
"action.import": "Importer",
|
||||
"action.export": "Exporter",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "Réglages généraux",
|
||||
"settings.header.general.description": "Réglez les réglages généraux de Cider.",
|
||||
"settings.option.general.language": "Langue",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "Langue",
|
||||
"settings.option.general.language.fun": "Langues amusantes",
|
||||
"settings.option.general.language.unsorted": "Non trié",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Audio",
|
||||
"settings.header.audio.description": "Réglez les réglages audio de Cider.",
|
||||
"settings.option.audio.quality": "Qualité audio", // Dropdown
|
||||
"settings.header.audio.quality.high": "Haut",
|
||||
"settings.header.audio.quality.low": "Bas",
|
||||
"settings.header.audio.quality.auto": "Auto",
|
||||
"settings.option.audio.seamlessTransition": "Transition audio fluide", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "Activer la fonctionnalité avancée", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalité AudioContext permettra des fonctionnalités audio étendues telles que la normalisation audio, les égaliseurs et les visualiseurs, mais sur certains systèmes, cela peut provoquer des saccades dans les chansons audio.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation audio", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour créer une expérience d'écoute plus uniforme.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialisez l'audio et rendez l'audio plus tridimensionnel (remarque: il ne s'agit pas de Dolby Atmos)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "Visuel",
|
||||
"settings.header.visual.description": "Ajustez les réglages visuels de Cider.",
|
||||
"settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la window", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "Rien",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "Ouvrages d'art",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "Image",
|
||||
"settings.option.visual.animatedArtwork": "Oeuvre animée", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "Toujours",
|
||||
"settings.header.visual.animatedArtwork.limited": "Limité aux pages et aux entrées spéciales",
|
||||
"settings.header.visual.animatedArtwork.disable": "Désactiver partout",
|
||||
"settings.option.visual.animatedArtworkQuality": "Qualité des illustrations animées", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "Bas",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "Moyen",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "Haut",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Très haut",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "Extrême",
|
||||
"settings.option.visual.animatedWindowBackground": "Fond de window animé", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "Accélération matérielle", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "Nécessite une relance",
|
||||
"settings.header.visual.hardwareAcceleration.default": "Défaut",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "Afficher les informations personnelles", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "Paroles",
|
||||
"settings.header.lyrics.description": "Ajustez les réglages des paroles de Cider.",
|
||||
"settings.option.lyrics.enableMusixmatch": "Activer les paroles de Musixmatch", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaoké (Musixmatch uniquement)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Traduction Musixmatch langue préférée", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles Youtube pour les clips vidéo", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "Connectivité",
|
||||
"settings.header.connectivity.description": "Ajustez les réglages de connectivité pour Cider.",
|
||||
"settings.option.connectivity.discordRPC": "Discord Riche Présence", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "Notifications de lecture", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "Effacer la Discord Riche Présence en pause", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "Délai de scrobble LastFM (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer LastFM en jouer maitenant",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer la chanson en boucle (LastFM)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "Expérimental",
|
||||
"settings.header.experimental.description": "Ajustez les réglages expérimentaux pour Cider.",
|
||||
"settings.option.experimental.compactUI": "UI Compact", // Toggle
|
||||
"settings.option.experimental.closeButtonBehaviour": "Comportement du bouton de fermeture",
|
||||
"settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Réduire à la barre des tâches",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Réduire dans le bac",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.spatialProperties" : "Propriétés spatiales",
|
||||
"spatial.width" : "Largeur",
|
||||
"spatial.height" : "Hauteur",
|
||||
"spatial.depth" : "Profondeur",
|
||||
"spatial.gain" : "Gagner",
|
||||
"spatial.roomMaterials" : "Matériaux de la chambre",
|
||||
"spatial.roomDimensions" : "Dimensions de la chambre",
|
||||
"spatial.roomPositions" : "Positions de la chambre",
|
||||
"spatial.setDimensions" : "Définir les cotes",
|
||||
"spatial.setPositions" : "Définir les positions",
|
||||
"spatial.up" : "Haut",
|
||||
"spatial.front" : "Avant",
|
||||
"spatial.left" : "Gauche",
|
||||
"spatial.right" : "Droite",
|
||||
"spatial.back" : "Arrière",
|
||||
"spatial.down" : "Bas",
|
||||
"spatial.listener" : "Auditeur",
|
||||
"spatial.audioSource" : "Source audio",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "Inachevée",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider Remote",
|
||||
"remote.web.description": "Scannez le code QR pour coupler votre téléphone avec cette instance Cider",
|
||||
|
||||
// About
|
||||
"about.thanks": "Un grand merci à l'équipe de Cider Collective et à tous nos contributeurs."
|
||||
}
|
300
src/i18n/fr_FR.jsonc
Normal file
|
@ -0,0 +1,300 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "Français", // name of language in native language
|
||||
"i18n.languageNameEnglish": "French", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@ErwanGit", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${d} ${m} ${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "Annuler",
|
||||
"dialog.ok": "OK",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "Mise à jour des chansons de la bibliothèque...",
|
||||
"notification.updatingLibraryAlbums": "Mise à jour des albums de la bibliothèque...",
|
||||
"notification.updatingLibraryArtists": "Mise à jour des artistes de la bibliothèque...",
|
||||
// Terms
|
||||
"term.appleInc": "Apple Inc.",
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "En savoir plus",
|
||||
"term.accountSettings": "Paramètres du compte",
|
||||
"term.logout": "Déconnexion",
|
||||
"term.login": "Connexion",
|
||||
"term.about": "À propos",
|
||||
"term.privateSession": "Session privée",
|
||||
"term.queue": "File d'attente",
|
||||
"term.search": "Recherche",
|
||||
"term.library": "Bibliothèque",
|
||||
"term.listenNow": "Écoutez maintenant",
|
||||
"term.browse": "Explorer",
|
||||
"term.radio": "Radio",
|
||||
"term.recentlyAdded": "Ajouté récemment",
|
||||
"term.songs": "Musiques",
|
||||
"term.albums": "Albums",
|
||||
"term.artists": "Artistes",
|
||||
"term.podcasts": "Podcasts",
|
||||
"term.playlists": "Playlists",
|
||||
"term.playlist": "Playlist",
|
||||
"term.play": "Lecture",
|
||||
"term.pause": "Pause",
|
||||
"term.previous": "Précédent",
|
||||
"term.next": "Suivant",
|
||||
"term.shuffle": "Aléatoire",
|
||||
"term.repeat": "Répéter",
|
||||
"term.volume": "Volume",
|
||||
"term.mute": "Rendre muet",
|
||||
"term.unmute": "Ne plus rendre muet",
|
||||
"term.share": "Partager",
|
||||
"term.settings": "Paramètres",
|
||||
"term.seeAll": "Voir tout",
|
||||
"term.sortBy": "Trier par",
|
||||
"term.sortBy.album": "Album",
|
||||
"term.sortBy.artist": "Artiste",
|
||||
"term.sortBy.name": "Nom",
|
||||
"term.sortBy.genre": "Genre",
|
||||
"term.sortBy.releaseDate": "Date de sortie",
|
||||
"term.sortBy.duration": "Durée",
|
||||
"term.sortOrder": "A-Z",
|
||||
"term.sortOrder.ascending": "Ascendant",
|
||||
"term.sortOrder.descending": "Descendant",
|
||||
"term.viewAs": "Voir comme",
|
||||
"term.viewAs.coverArt": "Pochette d'album",
|
||||
"term.viewAs.list": "Liste",
|
||||
"term.size": "Taille",
|
||||
"term.size.normal": "Normal",
|
||||
"term.size.compact": "Compacte",
|
||||
"term.enable": "Activer",
|
||||
"term.disable": "Désactiver",
|
||||
"term.enabled": "Activé",
|
||||
"term.disabled": "Désactivé",
|
||||
"term.connect": "Connecter",
|
||||
"term.connecting": "Connexion",
|
||||
"term.disconnect": "Déconnexion",
|
||||
"term.authed": "Authentifié",
|
||||
"term.confirm": "Confirmer ?",
|
||||
"term.more": "Plus",
|
||||
"term.less": "Moins",
|
||||
"term.showMore": "Afficher plus",
|
||||
"term.showLess": "Afficher moins",
|
||||
"term.topSongs" : "Meilleurs titres",
|
||||
"term.latestReleases": "Dernières sorties",
|
||||
"term.time.added": "Ajouté",
|
||||
"term.time.released": "Publié",
|
||||
"term.time.updated": "Mis à jour",
|
||||
"term.time.hours": "heures",
|
||||
"term.time.hour": "heure",
|
||||
"term.time.minutes": "minutes",
|
||||
"term.time.minute": "minute",
|
||||
"term.time.seconds": "secondes",
|
||||
"term.time.second": "seconde",
|
||||
"term.fullscreenView": "Vue plein écran",
|
||||
"term.defaultView": "Vue par défaut",
|
||||
"term.spacializedAudioSetting": "Paramètres audio spatialisés",
|
||||
"term.clearAll": "Tout effacer",
|
||||
"term.recentStations": "Stations récentes",
|
||||
"term.language": "Langue",
|
||||
"term.funLanguages": "Amusant",
|
||||
"term.noLyrics": "Chargement... / Paroles non trouvé./ Instrumental.",
|
||||
"term.copyright": "Copyright",
|
||||
"term.rightsReserved": "Tous droits réservés.",
|
||||
"term.sponsor": "Soutenez ce projet",
|
||||
"term.ciderTeam": "Équipe Cider",
|
||||
"term.developer": "Développeur",
|
||||
"term.socialTeam": "Équipe de communication",
|
||||
"term.contributors": "Contributeurs",
|
||||
"term.equalizer": "Égaliseur",
|
||||
"term.reset": "Réinitialiser",
|
||||
"term.tracks": "musiques", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "Vidéos",
|
||||
"term.menu": "Menu",
|
||||
"action.showAlbum": "Afficher l'album complet",
|
||||
|
||||
// Home
|
||||
"home.title": "Accueil",
|
||||
"home.recentlyPlayed": "Joué récemment",
|
||||
"home.recentlyAdded": "Récemment ajouté",
|
||||
"home.artistsFeed": "Votre file d'artistes",
|
||||
"home.artistsFeed.noArtist": "Suivez d'abord certains artistes et leurs dernières sorties seront ici",
|
||||
"home.madeForYou": "Fait pour vous",
|
||||
"home.friendsListeningTo": "Vos amis écoutent",
|
||||
"home.followedArtists": "Artistes suivis",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Apple Music nécessite un abonnement.",
|
||||
"error.connectionError": "Il y a eu un problème de connexion à Apple Music.",
|
||||
"error.noResults": "Aucun résultat.",
|
||||
"error.noResults.description": "Essayez une nouvelle recherche.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Suivre sur Cider",
|
||||
"podcast.followedOnCider": "Suivi sur Cider",
|
||||
"podcast.subscribeOnItunes": "Suivre sur iTunes",
|
||||
"podcast.subscribedOnItunes": "Suivi sur iTunes",
|
||||
"podcast.itunesStore": "iTunes Store",
|
||||
"podcast.episodes": "Épisodes",
|
||||
"podcast.playEpisode": "Lire l'épisode",
|
||||
"podcast.website": "Site du podcast",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "Ajouter à la bibliothèque",
|
||||
"action.addToLibrary.success": "Ajouté à la bibliothèque",
|
||||
"action.addToLibrary.error": "Erreur lors de l'ajout à la bibliothèque",
|
||||
"action.removeFromLibrary": "Retirer de la bibliothèque",
|
||||
"action.removeFromLibrary.success": "Retiré de la bibliothèque",
|
||||
"action.addToQueue": "Ajouter à la file d'attente",
|
||||
"action.addToQueue.success": "Ajouté à la file d'attente",
|
||||
"action.addToQueue.error": "Erreur lors de l'ajout à la file d'attente",
|
||||
"action.removeFromQueue": "Retirer de la file d'attente",
|
||||
"action.removeFromQueue.success": "Retiré de la file d'attente",
|
||||
"action.removeFromQueue.error": "Erreur lors du retrait de la file d'attente",
|
||||
"action.addToPlaylist": "Ajouter à une playlist",
|
||||
"action.removeFromPlaylist": "Retirer de la playlist",
|
||||
"action.addToFavorites": "Ajouter aux favoris",
|
||||
"action.follow": "Suivre",
|
||||
"action.follow.success": "Suivi",
|
||||
"action.follow.error": "Erreur lors de l'abonnement",
|
||||
"action.unfollow": "Se désabonner",
|
||||
"action.unfollow.success": "Désabonné",
|
||||
"action.unfollow.error": "Erreur lors du désabonnement",
|
||||
"action.playNext": "Jouer après",
|
||||
"action.playLater": "Jouer plus tard",
|
||||
"action.startRadio": "Lancer la radio",
|
||||
"action.goToArtist": "Aller à l'artiste",
|
||||
"action.goToAlbum": "Aller à l'album",
|
||||
"action.moveToTop": "Haut de page",
|
||||
"action.share": "Partager",
|
||||
"action.rename": "Renommer",
|
||||
"action.love": "Aimer",
|
||||
"action.unlove": "Ne plus aimer",
|
||||
"action.dislike": "Je n'aime pas",
|
||||
"action.undoDislike": "Je n'aime plus",
|
||||
"action.showWebRemoteQR": "Afficher le QR Code de la télécommande à distance",
|
||||
"action.playTracksNext": "Jouer ${app.selectedMediaItems.length} musiques après",
|
||||
"action.playTracksLater": "Jouer ${app.selectedMediaItems.length} musiques plus tard",
|
||||
"action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente",
|
||||
"action.import": "Importer",
|
||||
"action.export": "Exporter",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "Général",
|
||||
"settings.header.general.description": "Ajuster les paramètres généraux de Cider.",
|
||||
"settings.option.general.language": "Langue",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "Langues",
|
||||
"settings.option.general.language.fun": "Langues amusantes",
|
||||
"settings.option.general.language.unsorted": "Non trié",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Audio",
|
||||
"settings.header.audio.description": "Ajuster les paramètres audio de Cider.",
|
||||
"settings.option.audio.quality": "Qualité Audio", // Dropdown
|
||||
"settings.header.audio.quality.high": "Élevée",
|
||||
"settings.header.audio.quality.low": "Faible",
|
||||
"settings.header.audio.quality.auto": "Automatique",
|
||||
"settings.option.audio.seamlessTransition": "Fondu audio transparent", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancées", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalité AudioContext permet d'utiliser des fonctions audio étendues telles que la normalisation du son, les égaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bégaiements dans les pistes audio.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour créer une expérience d'écoute plus uniforme.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "Visuel",
|
||||
"settings.header.visual.description": "Ajuster les paramètres visuels de Cider.",
|
||||
"settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la fenêtre", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "Aucun",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "Pochette d'album",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "Image",
|
||||
"settings.option.visual.animatedArtwork": "Pochette d'album animée", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "Toujours",
|
||||
"settings.header.visual.animatedArtwork.limited": "Limité aux pages et aux entrées spéciales",
|
||||
"settings.header.visual.animatedArtwork.disable": "Désactiver partout",
|
||||
"settings.option.visual.animatedArtworkQuality": "Qualité de la pochette d'album animée", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "Faible",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "Moyen",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "Élevée",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Très élevée",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "Extrême",
|
||||
"settings.option.visual.animatedWindowBackground": "Arrière-plan de fenêtre animé", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "Accélération matérielle", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "Nécessite un relancement",
|
||||
"settings.header.visual.hardwareAcceleration.default": "Défaut",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "Paroles",
|
||||
"settings.header.lyrics.description": "Ajuster les paramètres des paroles pour Cider.",
|
||||
"settings.option.lyrics.enableMusixmatch": "Activer les paroles Musixmatch", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaoké (Musixmatch seulement)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Langue préférée pour les traductions Musixmatch", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles YouTube pour les vidéos de musique", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "Connectivité",
|
||||
"settings.header.connectivity.description": "Ajuster les paramètres de connectivité de Cider.",
|
||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "Notifications de lecture", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "Désactiver le Discord Rich Presence quand la musique est en pause", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "Scrobble LastFM", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "Délai de Scrobble LastFM (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer la lecture en cours sur LastFM",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer les titres en boucle (LastFM)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "Expérimental",
|
||||
"settings.header.experimental.description": "Ajuster les paramètres expérimentaux de Cider.",
|
||||
"settings.option.experimental.compactUI": "Interface utilisateur compacte", // Toggle
|
||||
"settings.option.experimental.closeButtonBehaviour": "Comportement du bouton de fermeture",
|
||||
"settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Réduire dans la barre des tâches",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Réduire dans la barre d'outils",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.spatialProperties": "Propriétés spatiales",
|
||||
"spatial.width": "Largeur",
|
||||
"spatial.height": "Hauteur",
|
||||
"spatial.depth": "Profondeur",
|
||||
"spatial.gain": "Gain",
|
||||
"spatial.roomMaterials": "Matériaux de la pièce",
|
||||
"spatial.roomDimensions": "Dimensions de la pièce",
|
||||
"spatial.roomPositions": "Positions de la pièce",
|
||||
"spatial.setDimensions": "Définir les dimensions",
|
||||
"spatial.setPositions": "Définir les positions",
|
||||
"spatial.up": "Haut",
|
||||
"spatial.front": "Avant",
|
||||
"spatial.left": "Gauche",
|
||||
"spatial.right": "Droite",
|
||||
"spatial.back": "Retour",
|
||||
"spatial.down": "Bas",
|
||||
"spatial.listener": "Auditeur",
|
||||
"spatial.audioSource": "Source Audio",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "Inachevée",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider Remote",
|
||||
"remote.web.description": "Scanner le QR code pour associer votre téléphone avec cette instance Cider",
|
||||
|
||||
// About
|
||||
"about.thanks": "Un grand merci à l'équipe de la Cider Collective et à tous nos contributeurs."
|
||||
}
|
||||
|
311
src/i18n/hu_HU.jsonc
Normal file
|
@ -0,0 +1,311 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "Magyar", // name of language in native language
|
||||
"i18n.languageNameEnglish": "Hungarian", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@Greenoliv @Rias @BenjaminStonawski", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${m} ${d}, ${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "Mégsem",
|
||||
"dialog.ok": "OK",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "Zenekönyvtár frissítése...",
|
||||
"notification.updatingLibraryAlbums": "Albumok frissítése...",
|
||||
"notification.updatingLibraryArtists": "Előadók frissítése...",
|
||||
// Terms
|
||||
"term.appleInc": "Apple Inc.",
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "Tudj meg többet",
|
||||
"term.accountSettings": "Fiókbeállítások",
|
||||
"term.logout": "Kijelentkezés",
|
||||
"term.login": "Bejelentkezés",
|
||||
"term.about": "Névjegy",
|
||||
"term.privateSession": "Privát hallgatás",
|
||||
"term.queue": "Várólista",
|
||||
"term.search": "Keresés",
|
||||
"term.library": "Könyvtár",
|
||||
"term.listenNow": "Hallgatás most",
|
||||
"term.browse": "Böngészés",
|
||||
"term.radio": "Rádió",
|
||||
"term.recentlyAdded": "Nemrég hozzáadott",
|
||||
"term.songs": "Dalok",
|
||||
"term.albums": "Albumok",
|
||||
"term.artists": "Előadók",
|
||||
"term.podcasts": "Podcastok",
|
||||
"term.playlists": "Lejátszási listák",
|
||||
"term.playlist": "Lejátszási lista",
|
||||
"term.newPlaylist": "Új lejátszási lista",
|
||||
"term.newPlaylistFolder": "Új lejátszási lista mappa",
|
||||
"term.createNewPlaylist": "Új lejátszási lista létrehozása",
|
||||
"term.createNewPlaylistFolder": "Új lejátszási lista mappa létrehozása",
|
||||
"term.deletePlaylist": "Biztosan szeretné törölni a lejátszási listát?",
|
||||
"term.play": "Lejátszás",
|
||||
"term.pause": "Megállítás",
|
||||
"term.previous": "Előző",
|
||||
"term.next": "Következő",
|
||||
"term.shuffle": "Keverés",
|
||||
"term.repeat": "Ismétlés",
|
||||
"term.volume": "Hangerő",
|
||||
"term.mute": "Némítás",
|
||||
"term.unmute": "Némítás feloldása",
|
||||
"term.share": "Megosztás",
|
||||
"term.settings": "Beállítások",
|
||||
"term.seeAll": "Összes",
|
||||
"term.sortBy": "Rendezés",
|
||||
"term.sortBy.album": "Album",
|
||||
"term.sortBy.artist": "Előadó",
|
||||
"term.sortBy.name": "Név",
|
||||
"term.sortBy.genre": "Műfaj",
|
||||
"term.sortBy.releaseDate": "Kiadás dátuma",
|
||||
"term.sortBy.duration": "Időtartam",
|
||||
"term.sortOrder": "A-Z",
|
||||
"term.sortOrder.ascending": "Növekvő",
|
||||
"term.sortOrder.descending": "Csökkenő",
|
||||
"term.viewAs": "Megjelenítés",
|
||||
"term.viewAs.coverArt": "Borító",
|
||||
"term.viewAs.list": "Lista",
|
||||
"term.size": "Méret",
|
||||
"term.size.normal": "Normál",
|
||||
"term.size.compact": "Kompakt",
|
||||
"term.enable": "Be",
|
||||
"term.disable": "Ki",
|
||||
"term.enabled": "Be",
|
||||
"term.disabled": "Ki",
|
||||
"term.connect": "Csatlakoztatás",
|
||||
"term.connecting": "Csatlakozás",
|
||||
"term.disconnect": "Lecsatlakozatás",
|
||||
"term.authed": "Hitelesítve",
|
||||
"term.confirm": "Jóváhagyja?",
|
||||
"term.more": "Több",
|
||||
"term.less": "Kevesebb",
|
||||
"term.showMore": "Mutass többet",
|
||||
"term.showLess": "Mutass kevesebbet",
|
||||
"term.topSongs" : "A legjobb dalok",
|
||||
"term.latestReleases": "Új megjelenések",
|
||||
"term.time.added": "Hozzáadva",
|
||||
"term.time.released": "Kiadva:",
|
||||
"term.time.updated": "Frissítve",
|
||||
"term.time.hours": "óra",
|
||||
"term.time.hour": "óra",
|
||||
"term.time.minutes": "perc",
|
||||
"term.time.minute": "perc",
|
||||
"term.time.seconds": "másodperc",
|
||||
"term.time.second": "másodperc",
|
||||
"term.fullscreenView": "Teljes képernyős mód",
|
||||
"term.defaultView": "Alapértelmezett nézet",
|
||||
"term.spacializedAudioSetting": "Térbeli hangzás",
|
||||
"term.clearAll": "Összes törlése",
|
||||
"term.recentStations": "Nemrég játszott",
|
||||
"term.language": "Nyelv",
|
||||
"term.funLanguages": "Mókás",
|
||||
"term.noLyrics": "Dalszöveg nem található",
|
||||
"term.copyright": "Szerzői jog",
|
||||
"term.rightsReserved": "Minden jog fenntartva.",
|
||||
"term.sponsor": "Támogasd a projektet",
|
||||
"term.ciderTeam": "A Cider csapata",
|
||||
"term.developer": "Fejlesztő",
|
||||
"term.socialTeam": "Szociális csapat",
|
||||
"term.socials": "Szociális",
|
||||
"term.contributors": "Közreműködők",
|
||||
"term.equalizer": "Hangszínszabályzó",
|
||||
"term.reset": "Visszaállítás",
|
||||
"term.tracks": "zeneszám", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "Videók",
|
||||
"term.menu": "Menü",
|
||||
"term.check": "Ellenőrzés",
|
||||
"term.aboutArtist": "További információ {{artistName}} előadóról", // e.g. 'About Doja Cat'
|
||||
"term.updateCider": "Cider frissítése",
|
||||
|
||||
// Home
|
||||
"home.title": "Kezdőlap",
|
||||
"home.recentlyPlayed": "Nemrég játszott",
|
||||
"home.recentlyAdded": "Nemrég hozzáadott",
|
||||
"home.artistsFeed": "Az előadóid feedje",
|
||||
"home.artistsFeed.noArtist": "Kövess néhány előadót, hogy a legújabb zenéi itt megjelenhessenek.",
|
||||
"home.madeForYou": "Személyre szabva",
|
||||
"home.friendsListeningTo": "A barátaid épp ezt hallgatják",
|
||||
"home.followedArtists": "Követett előadók",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Apple Music előfizetés szükséges.",
|
||||
"error.connectionError": "Hiba történt az Apple Music-hoz való csatlakozás közben.",
|
||||
"error.noResults": "Nincs találat",
|
||||
"error.noResults.description": "Próbálkozzon új kereséssel",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Követés a Cideren",
|
||||
"podcast.followedOnCider": "Követve a Cideren",
|
||||
"podcast.subscribeOnItunes": "Feliratkozás az iTunes-ban",
|
||||
"podcast.subscribedOnItunes": "Feliratkozva az iTunes-ban",
|
||||
"podcast.itunesStore": "iTunes Store",
|
||||
"podcast.episodes": "Epizódok",
|
||||
"podcast.playEpisode": "Epizód lejátszása",
|
||||
"podcast.website": "Podcast weboldala",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "Hozzáadás a könyvtárhoz",
|
||||
"action.addToLibrary.success": "Hozzáadva a könyvtárhoz",
|
||||
"action.addToLibrary.error": "Hiba a hozzáadáskor.",
|
||||
"action.removeFromLibrary": "Törlés a Könytárból",
|
||||
"action.removeFromLibrary.success": "Törölve a könyvtárból",
|
||||
"action.addToQueue": "Hozzáadás a várólistához",
|
||||
"action.addToQueue.success": "Hozzáadva a várólistához",
|
||||
"action.addToQueue.error": "Sikertelen hozzáadás a várólistához",
|
||||
"action.removeFromQueue": "Törlés a várólistáról",
|
||||
"action.removeFromQueue.success": "Törölve a várólistáról",
|
||||
"action.removeFromQueue.error": "Sikertelen törlés a várólistáról",
|
||||
"action.createPlaylist": "Új lejátszási lista létrehozása",
|
||||
"action.addToPlaylist": "Lejátszási listához adás",
|
||||
"action.removeFromPlaylist": "Törlés a lejátszási listáról",
|
||||
"action.addToFavorites": "Hozzáadás a kedvencekhez",
|
||||
"action.follow": "Követés",
|
||||
"action.follow.success": "Követve",
|
||||
"action.follow.error": "Sikertelen követés",
|
||||
"action.unfollow": "Követés visszavonása",
|
||||
"action.unfollow.success": "Követés visszavonva",
|
||||
"action.unfollow.error": "Sikertelen visszavonás",
|
||||
"action.playNext": "Lejátszás következőként",
|
||||
"action.playLater": "Lejátszás utolsóként",
|
||||
"action.startRadio": "Állomás létrehozása",
|
||||
"action.goToArtist": "Előadó megjelenítése",
|
||||
"action.goToAlbum": "Album megjelenítése",
|
||||
"action.moveToTop": "Mozgatás legfelülre",
|
||||
"action.share": "Megosztás",
|
||||
"action.rename": "Átnevezés",
|
||||
"action.love": "Kedvelem",
|
||||
"action.unlove": "Kedvelés visszavonása",
|
||||
"action.dislike": "Nem kedvelem",
|
||||
"action.undoDislike": "Nem kedvelés visszavonása",
|
||||
"action.showWebRemoteQR": "Távirányító QR kód megjelenítése",
|
||||
"action.playTracksNext": "${app.selectedMediaItems.length} zenék lejátszása következőnek",
|
||||
"action.playTracksLater": "${app.selectedMediaItems.length} zenék lejátszása később",
|
||||
"action.removeTracks": "${self.selectedItems.length} zenék eltávolítása a várólistáról",
|
||||
"action.import": "Importálás",
|
||||
"action.export": "Exportálás",
|
||||
"action.showAlbum": "Teljes album megjelenítése",
|
||||
// Waiting on Core for moving plugin to app.ts
|
||||
"action.tray.minimize": "Kicsinyítés a tálcára",
|
||||
"action.tray.quit": "Kilépés",
|
||||
"action.tray.show": "A következő megjelenítése:",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "Általános",
|
||||
"settings.header.general.description": "A Cider általános beállításainak módosítása",
|
||||
"settings.option.general.language": "Nyelv",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "Nyelvek",
|
||||
"settings.option.general.language.fun": "Mókás nyelvek",
|
||||
"settings.option.general.language.unsorted": "Nem besorolható",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Hang",
|
||||
"settings.header.audio.description": "A Cider hangbeállításainak módosítása",
|
||||
"settings.option.audio.quality": "Hangminőség", // Dropdown
|
||||
"settings.header.audio.quality.high": "Magas",
|
||||
"settings.header.audio.quality.low": "Alacsony",
|
||||
"settings.header.audio.quality.auto": "Automatikus",
|
||||
"settings.option.audio.seamlessTransition": "Szünetmentes lejátszás", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "Haladó funkcionalitás engedélyezése", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "Az AudioContext funkció engedélyezése lehetővé teszi a fejlettebb hangfunkciókat, például a normalizásást, a hangszínszabályzót és a vizualizáció funkciókat, azonban egyes számítógépeken ez akadozást okozhat a hangsávokban.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizálás", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizálja az egyes zeneszámok hangosabb részeit, hogy egységesebb hallgatási élményt hozzon létre.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Térbeli hangzás", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Térbeli hangzás és a hang háromdimenziósabbá tétele (Ez nem összekeverendő a Dolby Atmos-szal!)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "Vizuális",
|
||||
"settings.header.visual.description": "A Cider vizuális beállításainak módosítása.",
|
||||
"settings.option.visual.windowBackgroundStyle": "Ablak háttér stílusa", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "Egyik sem",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "Borító",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "Kép",
|
||||
"settings.option.visual.animatedArtwork": "Animált borító", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "Mindig",
|
||||
"settings.header.visual.animatedArtwork.limited": "Oldalakra és speciális bejegyzésekre korlátozva",
|
||||
"settings.header.visual.animatedArtwork.disable": "Kikapcsolás mindenhol",
|
||||
"settings.option.visual.animatedArtworkQuality": "Animált borító minősége", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "Alacsony",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "Közepes",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "Magas",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Nagyon magas",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "Extrém",
|
||||
"settings.option.visual.animatedWindowBackground": "Animált ablakháttér", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "Hardveres gyorsítás", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "Újraindítás szükséges",
|
||||
"settings.header.visual.hardwareAcceleration.default": "Alap",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "Személyes adatok mutatása", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "Dalszöveg",
|
||||
"settings.header.lyrics.description": "A Cider dalszöveg beállításainak módosítása.",
|
||||
"settings.option.lyrics.enableMusixmatch": "MusixMatch dalszövegek engedélyezése", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke mód bekapcsolása (Csak MusixMatch esetén)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "MusixMatch fordítás nyelve", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "YouTube dalszövegek engedélyezése a zenei videóknál", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "Csatlakozhatóságok",
|
||||
"settings.header.connectivity.description": "A Cider csatlakozás beállításainak módosítása.",
|
||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "Értesítés új dal lejátszásakor", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "Megjelenítés 'Cider'-ként",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "Megjelenítés 'Apple Music'-ként",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "Discord Rich Presence törlése megállításnál", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Késleltetés (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "LastFM Now Playing engedélyezése",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "A közreműködő előadók eltávolítása a dal címéből (LastFM)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Loopolt zeneszám szűrése (LastFM)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "Kísérleti",
|
||||
"settings.header.experimental.description": "A Cider kísérleti beállításainak módosítása.",
|
||||
"settings.option.experimental.compactUI": "Kompakt UI", // Toggle
|
||||
"settings.option.experimental.close_button_hide": "A bezárás gomb rejtse el az alkalmazást",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.notTurnedOn": "A térbeli hangzás ki van kapcsolva, használatához kapcsolja be.",
|
||||
"spatial.spatialProperties": "Térbeli hangzás",
|
||||
"spatial.width": "Szélesség",
|
||||
"spatial.height": "Magasság",
|
||||
"spatial.depth": "Hosszúság",
|
||||
"spatial.gain": "Gain",
|
||||
"spatial.roomMaterials": "Szoba felépítése",
|
||||
"spatial.roomDimensions": "Szoba méretei",
|
||||
"spatial.roomPositions": "Szoba pozíciói",
|
||||
"spatial.setDimensions": "Méretek beállítása",
|
||||
"spatial.setPositions": "Pozíciók beállítása",
|
||||
"spatial.up": "Fent",
|
||||
"spatial.front": "Elől",
|
||||
"spatial.left": "Balra",
|
||||
"spatial.right": "Jobbra",
|
||||
"spatial.back": "Hátul",
|
||||
"spatial.down": "Lent",
|
||||
"spatial.listener": "Hallgató",
|
||||
"spatial.audioSource": "Hangforrás",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "Befejezetlen",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider Remote",
|
||||
"remote.web.description": "Olvasd be ezt a QR-kódot a telefonoddal, hogy vezérelhesd a lejátszót.",
|
||||
|
||||
// About
|
||||
"about.thanks": "Köszönet a Cider Collective csapatának és minden közreműködőnek."
|
||||
}
|
312
src/i18n/it_IT.jsonc
Normal file
|
@ -0,0 +1,312 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "Italiano", // name of language in native language
|
||||
"i18n.languageNameEnglish": "Italian", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "ConnectedR", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${d} ${m}, ${y}",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "Annulla",
|
||||
"dialog.ok": "OK",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "Aggiornamento raccolta brani...",
|
||||
"notification.updatingLibraryAlbums": "Aggornamento raccolta album...",
|
||||
"notification.updatingLibraryArtists": "Aggiornamento raccolta artisti...",
|
||||
// Terms
|
||||
"term.appleInc": "Apple Inc.",
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "Impara di più",
|
||||
"term.accountSettings": "Impostazioni Account",
|
||||
"term.logout": "Disconnetti",
|
||||
"term.login": "Accedi",
|
||||
"term.about": "Informazioni",
|
||||
"term.privateSession": "Sessione Privata",
|
||||
"term.queue": "Coda",
|
||||
"term.search": "Cerca",
|
||||
"term.library": "Raccolta",
|
||||
"term.listenNow": "Ascolta ora",
|
||||
"term.browse": "Sfoglia",
|
||||
"term.radio": "Radio",
|
||||
"term.recentlyAdded": "Aggiunto di recente",
|
||||
"term.songs": "Brani",
|
||||
"term.albums": "Album",
|
||||
"term.artists": "Artisti",
|
||||
"term.podcasts": "Podcast",
|
||||
"term.playlists": "Playlist",
|
||||
"term.playlist": "Playlist",
|
||||
"term.newPlaylist": "Nuova Playlist",
|
||||
"term.newPlaylistFolder": "Nuova Cartella Playlist",
|
||||
"term.createNewPlaylist": "Crea Nuova Playlist",
|
||||
"term.createNewPlaylistFolder": "Crea Nuova Cartella Playlist",
|
||||
"term.deletePlaylist": "Sei sicuro che vuoi eliminare questa playlist?",
|
||||
"term.play": "Riproduci",
|
||||
"term.pause": "Pausa",
|
||||
"term.previous": "Precedente",
|
||||
"term.next": "Avanti",
|
||||
"term.shuffle": "Shuffle",
|
||||
"term.repeat": "Ripeti",
|
||||
"term.volume": "Volume",
|
||||
"term.mute": "Muta",
|
||||
"term.unmute": "Riattiva",
|
||||
"term.share": "Condividi",
|
||||
"term.settings": "Impostazioni",
|
||||
"term.seeAll": "Vedi tutto",
|
||||
"term.sortBy": "Ordina per",
|
||||
"term.sortBy.album": "Album",
|
||||
"term.sortBy.artist": "Artista",
|
||||
"term.sortBy.name": "Nome",
|
||||
"term.sortBy.genre": "Genere",
|
||||
"term.sortBy.releaseDate": "Data di rilascio",
|
||||
"term.sortBy.duration": "Durata",
|
||||
"term.sortOrder": "A-Z",
|
||||
"term.sortOrder.ascending": "Crescente",
|
||||
"term.sortOrder.descending": "Decrescente",
|
||||
"term.viewAs": "Visualizza come",
|
||||
"term.viewAs.coverArt": "Copertina",
|
||||
"term.viewAs.list": "Lista",
|
||||
"term.size": "Dimensione",
|
||||
"term.size.normal": "Normale",
|
||||
"term.size.compact": "Compatto",
|
||||
"term.enable": "Attive",
|
||||
"term.disable": "Disattiva",
|
||||
"term.enabled": "Attivo",
|
||||
"term.disabled": "Disattivo",
|
||||
"term.connect": "Connetti",
|
||||
"term.connecting": "Connessione",
|
||||
"term.disconnect": "Disconnetti",
|
||||
"term.authed": "Connesso",
|
||||
"term.confirm": "Conferma?",
|
||||
"term.more": "Altro",
|
||||
"term.less": "Meno",
|
||||
"term.showMore": "Mostra altro",
|
||||
"term.showLess": "Mostra menu",
|
||||
"term.topSongs" : "Brani top",
|
||||
"term.latestReleases": "Uscite Recenti",
|
||||
"term.time.added": "Aggiunto",
|
||||
"term.time.released": "Rilasciato",
|
||||
"term.time.updated": "Aggiornato",
|
||||
"term.time.hours": "ore",
|
||||
"term.time.hour": "ora",
|
||||
"term.time.minutes": "minuti",
|
||||
"term.time.minute": "minuto",
|
||||
"term.time.seconds": "secondi",
|
||||
"term.time.second": "secondo",
|
||||
"term.fullscreenView": "Vista schermo pieno",
|
||||
"term.defaultView": "Vista normale",
|
||||
"term.audioSettings": "Impostazioni Audio",
|
||||
"term.clearAll": "Rimuovi Tutto",
|
||||
"term.recentStations": "Stazioni recenti",
|
||||
"term.language": "Lingua",
|
||||
"term.funLanguages": "Scherzo",
|
||||
"term.noLyrics": "Caricamento... / Testo non trovato. / Strumentale.",
|
||||
"term.copyright": "Copyright",
|
||||
"term.rightsReserved": "Tutti i diritti riservati.",
|
||||
"term.sponsor": "Sponsorizza questo progetto",
|
||||
"term.ciderTeam": "Team di Cider",
|
||||
"term.developer": "Sviluppatore",
|
||||
"term.socialTeam": "Team Sociale",
|
||||
"term.socials": "Social",
|
||||
"term.contributors": "Contribuenti",
|
||||
"term.equalizer": "Equalizzatore",
|
||||
"term.reset": "Reset",
|
||||
"term.tracks": "brani", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "Video",
|
||||
"term.menu": "Menu",
|
||||
"term.check": "Controllo",
|
||||
|
||||
// Home
|
||||
"home.title": "Casa",
|
||||
"home.recentlyPlayed": "Ascoltato di recente",
|
||||
"home.recentlyAdded": "Aggiunto di recente",
|
||||
"home.artistsFeed": "Feed di Artisti",
|
||||
"home.artistsFeed.noArtist": "Segui alcuni artisti e le loro uscite recenti appariranno qui",
|
||||
"home.madeForYou": "Per Te",
|
||||
"home.friendsListeningTo": "Ascoltato da Amici",
|
||||
"home.followedArtists": "Artisti Seguiti",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Apple Music ha bisogno di un abbonamento.",
|
||||
"error.connectionError": "C'è stato un problema nella connessione a Apple Music.",
|
||||
"error.noResults": "Nessun risultato.",
|
||||
"error.noResults.description": "Prova un'altra ricerca.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Segui in Cider",
|
||||
"podcast.followedOnCider": "Seguiti in Cider",
|
||||
"podcast.subscribeOnItunes": "Iscriviti in iTunes",
|
||||
"podcast.subscribedOnItunes": "Iscritto in iTunes",
|
||||
"podcast.itunesStore": "iTunes Store",
|
||||
"podcast.episodes": "Episodi",
|
||||
"podcast.playEpisode": "Ascolta Episodio",
|
||||
"podcast.website": "Sito Podcast",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "Aggiungi a Raccolta",
|
||||
"action.addToLibrary.success": "Aggiunto a Raccolta",
|
||||
"action.addToLibrary.error": "Errore ad Aggiungere a Raccolta",
|
||||
"action.removeFromLibrary": "Rimuovi da Raccolta",
|
||||
"action.removeFromLibrary.success": "Rimosso da Raccolta",
|
||||
"action.addToQueue": "Aggiungi a Coda",
|
||||
"action.addToQueue.success": "Aggiunto a Coda",
|
||||
"action.addToQueue.error": "Errore ad Aggiungere a Coda",
|
||||
"action.removeFromQueue": "Rimuovi da Coda",
|
||||
"action.removeFromQueue.success": "Rimosso da Coda",
|
||||
"action.removeFromQueue.error": "Errore a Rimuovere da Coda",
|
||||
"action.createPlaylist": "Crea Nuova Playlist",
|
||||
"action.addToPlaylist": "Aggiungi a Playlist",
|
||||
"action.removeFromPlaylist": "Rimuovi da Playlist",
|
||||
"action.addToFavorites": "Aggiungi a Preferiti",
|
||||
"action.follow": "Segui",
|
||||
"action.follow.success": "Seguito",
|
||||
"action.follow.error": "Errore a Seguire",
|
||||
"action.unfollow": "Non Seguire",
|
||||
"action.unfollow.success": "Rimosso dai Seguiti",
|
||||
"action.unfollow.error": "Errore a Rimuovere dai Seguiti",
|
||||
"action.playNext": "Riproduci Dopo",
|
||||
"action.playLater": "Riprodici in Fine",
|
||||
"action.startRadio": "Inizia Radio",
|
||||
"action.goToArtist": "Vai all'Artista",
|
||||
"action.goToAlbum": "Vai all'Album",
|
||||
"action.moveToTop": "Torna in Alto",
|
||||
"action.share": "Condividi",
|
||||
"action.rename": "Rinomina",
|
||||
"action.love": "Mi Piace",
|
||||
"action.unlove": "Rimuovi Mi Piace",
|
||||
"action.dislike": "Non Mi Piace",
|
||||
"action.undoDislike": "Rimuovi Non Mi Piace",
|
||||
"action.showWebRemoteQR": "Telecomando Web",
|
||||
"action.playTracksNext": "Riproduci ${app.selectedMediaItems.length} brani Dopo",
|
||||
"action.playTracksLater": "Riproduci ${app.selectedMediaItems.length} brani in fine",
|
||||
"action.removeTracks": "Riproduci ${self.selectedItems.length} brani dalla coda",
|
||||
"action.import": "Importa",
|
||||
"action.export": "Esporta",
|
||||
"action.showAlbum": "Mostra Album Intero",
|
||||
// Waiting on Core for moving plugin to app.ts
|
||||
"action.tray.minimize": "Minimizza nel tray",
|
||||
"action.tray.quit": "Chiudi",
|
||||
"action.tray.show": "Mostra",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "Generale",
|
||||
"settings.header.general.description": "Cambia le impostazioni generali di Cider.",
|
||||
"settings.option.general.language": "Lingua",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "Lingue",
|
||||
"settings.option.general.language.fun": "Lingue da Scherzo",
|
||||
"settings.option.general.language.unsorted": "Non ordinato",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Audio",
|
||||
"settings.header.audio.description": "Cambia le impostazioni di audio di Cider.",
|
||||
"settings.option.audio.quality": "Qualità di audio", // Dropdown
|
||||
"settings.header.audio.quality.high": "Alta",
|
||||
"settings.header.audio.quality.low": "Bassa",
|
||||
"settings.header.audio.quality.auto": "Automatica",
|
||||
"settings.option.audio.seamlessTransition": "Transizioni Audio Immediate", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "Attiva funzionalità avanzata", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "Attiva AudioContext per funzionalià audio avanzata Normalizzazione Audio, Equalizzatori and Visualizzatori, però su alcuni sistemi potrebbero causare lag nei brani.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizzazione Audio", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizza il volume massimo nei brani per un'esperienza d'ascolto più uniforme.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spazializzazione Audio", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spazializza l'audio per dare un effetto più tridimensionale (nota: questo non è Dolby Atmos)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "Visuale",
|
||||
"settings.header.visual.description": "Cambia le impostazioni visuali per Cider.",
|
||||
"settings.option.visual.windowBackgroundStyle": "Stile Sfondo Finestra", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "Nessuno",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "Copertina",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "Immagine",
|
||||
"settings.option.visual.animatedArtwork": "Copertina Animata", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "Sempre",
|
||||
"settings.header.visual.animatedArtwork.limited": "Limita ad alcune pagine",
|
||||
"settings.header.visual.animatedArtwork.disable": "Disattiva dappertutto",
|
||||
"settings.option.visual.animatedArtworkQuality": "Qualità Copertina Animata", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "Bassa",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "Media",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "Alta",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Molto Alta",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "Estrema",
|
||||
"settings.option.visual.animatedWindowBackground": "Sfondo Finestra Animato", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "Accelerazione Hardware", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "Richiede riavvio del'app",
|
||||
"settings.header.visual.hardwareAcceleration.default": "Normale",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "Mostra Informazione Personale", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "Testi",
|
||||
"settings.header.lyrics.description": "Aggiusta le impostazioni dei testi per Cider.",
|
||||
"settings.option.lyrics.enableMusixmatch": "Attiva Testi Musixmatch", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Attiva Modalità Karaoke (solo Musixmatch)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Lingua di Traduzione MusixMatch Preferita", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "Attiva Testi da YouTube Per i Video ", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "Connectività",
|
||||
"settings.header.connectivity.description": "Cambia le impostazioni di connettività per Cider.",
|
||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "Notifiche di Riproduzione", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "Mostra come 'Cider'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "Mostra come 'Apple Music'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "Pausare Disattiva la Rich Presence", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "Scrobbling LastFM", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "Ritardo di Scrobbling LastFM (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Attiva Now Playing in LastFM",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Rimouvi Artisti Extra dal Titolo del Brano (LastFM)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtra Brani Ripetuti (LastFM)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "Sperimentale",
|
||||
"settings.header.experimental.description": "Cambia impostazioni sperimentali per Cider.",
|
||||
"settings.option.experimental.compactUI": "Interfaccia Compatta", // Toggle
|
||||
"settings.option.experimental.closeButtonBehaviour": "Comportamento Tasto Chiudi",
|
||||
"settings.option.experimental.closeButtonBehaviour.quit": "Chiudi Cider",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Minimizza",
|
||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Minimizza Nel Tray",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.notTurnedOn": "Spazializzazione Audio è disattivata. Attivala prima.",
|
||||
"spatial.spatialProperties" : "Proprietà Spaziali",
|
||||
"spatial.width" : "Larghezza",
|
||||
"spatial.height" : "Altezza",
|
||||
"spatial.depth" : "Profondità",
|
||||
"spatial.gain" : "Guadagno",
|
||||
"spatial.roomMaterials" : "Materiali Stanza",
|
||||
"spatial.roomDimensions" : "Dimensioni Stanza",
|
||||
"spatial.roomPositions" : "Posizioni Stanza",
|
||||
"spatial.setDimensions" : "Imposta Dimensioni",
|
||||
"spatial.setPositions" : "Imposta Posizioni",
|
||||
"spatial.up" : "Sopra",
|
||||
"spatial.front" : "In fronte",
|
||||
"spatial.left" : "Sinistra",
|
||||
"spatial.right" : "Destra",
|
||||
"spatial.back" : "Dietro",
|
||||
"spatial.down" : "Sotto",
|
||||
"spatial.listener" : "Utente",
|
||||
"spatial.audioSource" : "Fonte Audio",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "Incompleto",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Telecomando Cider",
|
||||
"remote.web.description": "Leggi il codice QR per connettere il tuo telefono con questa istanza di Cider",
|
||||
|
||||
// About
|
||||
"about.thanks": "Grazie mille alla Team di Cider Collective e tutti i nostri contribuenti."
|
||||
}
|
293
src/i18n/ja_JP.jsonc
Normal file
|
@ -0,0 +1,293 @@
|
|||
{
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${y}年${m}月${d}日",
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "日本語", // name of language in native language
|
||||
"i18n.languageNameEnglish": "Japanese", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "キャンセル",
|
||||
"dialog.ok": "OK",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "ライブラリの更新中...",
|
||||
"notification.updatingLibraryAlbums": "ライブラリの更新中...",
|
||||
"notification.updatingLibraryArtists": "ライブラリの更新中...",
|
||||
|
||||
// Terms
|
||||
"term.appleMusic": "Apple Music", // Follows brand term
|
||||
"term.applePodcasts": "Apple Podcasts", // Follows brand term
|
||||
"term.itunes": "iTunes", // Follows brand term
|
||||
"term.github": "GitHub", // Follows brand term
|
||||
"term.discord": "Discord", // Follows brand term
|
||||
"term.learnMore": "詳しい情報",
|
||||
"term.accountSettings": "アカウント設定",
|
||||
"term.logout": "サインアウト",
|
||||
"term.login": "サインイン",
|
||||
"term.about": "Ciderについて",
|
||||
"term.privateSession": "プライベートセッション",
|
||||
"term.queue": "次はこちら",
|
||||
"term.search": "検索",
|
||||
"term.library": "ライブラリ",
|
||||
"term.listenNow": "今すぐ聴く",
|
||||
"term.browse": "見つける",
|
||||
"term.radio": "ラジオ",
|
||||
"term.recentlyAdded": "最近追加した項目",
|
||||
"term.songs": "曲",
|
||||
"term.albums": "アルバム",
|
||||
"term.artists": "アーティスト",
|
||||
"term.podcasts": "Podcast",
|
||||
"term.playlists": "プレイリスト",
|
||||
"term.playlist": "プレイリスト",
|
||||
"term.play": "再生",
|
||||
"term.pause": "停止",
|
||||
"term.previous": "戻る",
|
||||
"term.next": "次へ",
|
||||
"term.shuffle": "シャッフル",
|
||||
"term.repeat": "リピート",
|
||||
"term.volume": "音量",
|
||||
"term.mute": "ミュート",
|
||||
"term.unmute": "ミュート解除",
|
||||
"term.share": "共有",
|
||||
"term.settings": "設定",
|
||||
"term.seeAll": "すべて見る",
|
||||
"term.sortBy": "並べ替え",
|
||||
"term.sortBy.album": "アルバム",
|
||||
"term.sortBy.artist": "アーティスト",
|
||||
"term.sortBy.name": "曲名",
|
||||
"term.sortBy.genre": "ジャンル",
|
||||
"term.sortBy.releaseDate": "配信開始日",
|
||||
"term.sortBy.duration": "時間",
|
||||
"term.sortOrder": "並べ替え",
|
||||
"term.sortOrder.ascending": "昇順",
|
||||
"term.sortOrder.descending": "降順",
|
||||
"term.viewAs": "表示",
|
||||
"term.viewAs.coverArt": "カバーアート",
|
||||
"term.viewAs.list": "リスト",
|
||||
"term.size": "サイズ",
|
||||
"term.size.normal": "普通",
|
||||
"term.size.compact": "コンパクト",
|
||||
"term.enable": "ON",
|
||||
"term.disable": "OFF",
|
||||
"term.enabled": "ON",
|
||||
"term.disabled": "OFF",
|
||||
"term.connect": "接続",
|
||||
"term.connecting": "接続中",
|
||||
"term.disconnect": "切断",
|
||||
"term.authed": "認証済み",
|
||||
"term.confirm": "よろしいでしょうか?",
|
||||
"term.more": "もっと",
|
||||
"term.less": "減らす",
|
||||
"term.showMore": "もっと見る",
|
||||
"term.showLess": "表示数を少なくする",
|
||||
"term.topSongs" : "トップソング",
|
||||
"term.latestReleases": "ニューリリース",
|
||||
"term.time.added": "追加日",
|
||||
"term.time.released": "配信開始日",
|
||||
"term.time.updated": "最終更新日",
|
||||
"term.time.hours": "時間",
|
||||
"term.time.hour": "時間",
|
||||
"term.time.minutes": "分",
|
||||
"term.time.minute": "分",
|
||||
"term.time.seconds": "秒",
|
||||
"term.time.second": "秒",
|
||||
"term.fullscreenView": "全画面表示",
|
||||
"term.defaultView": "ウィンドウ表示",
|
||||
"term.audioSettings": "オーディオ設定",
|
||||
"term.spacializedAudioSetting": "オーディオ空間化設定",
|
||||
"term.clearAll": "消去",
|
||||
"term.recentStations": "最近の再生",
|
||||
"term.language": "言語",
|
||||
"term.noLyrics": "ローディング。。 / 歌詞が見つからない / 器楽曲.",
|
||||
"term.copyright": "著作権",
|
||||
"term.rightsReserved": "All Rights Reserved.", // Translation does not exist in Japanese
|
||||
"term.sponsor": "スポンサーになりましょう",
|
||||
"term.ciderTeam": "Cider チーム",
|
||||
"term.developer": "開発者",
|
||||
"term.socialTeam": "ソーシャル チーム",
|
||||
"term.contributors": "貢献者",
|
||||
"term.equalizer": "イコライザー",
|
||||
"term.reset": "リセット",
|
||||
"term.tracks": "曲", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "ビデオ",
|
||||
"term.menu": "メニュー",
|
||||
"term.check": "確認",
|
||||
"term.aboutArtist": "{{artistName}}について", // e.g. 'About Doja Cat'
|
||||
"term.updateCider": "Cider 更新",
|
||||
|
||||
// Home
|
||||
"home.title": "ホーム",
|
||||
"home.recentlyPlayed": "最近の再生",
|
||||
"home.recentlyAdded": "最近追加した項目",
|
||||
"home.artistsFeed": "アーティストのフィード",
|
||||
"home.artistsFeed.noArtist": "自分の好きなアーティストをフォローしましょう・",
|
||||
"home.madeForYou": "あなたにおすすめ",
|
||||
"home.friendsListeningTo": "友達が聴いている",
|
||||
"home.followedArtists": "フォローしているアーティスト",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Apple Musicのサブスクリプションが必要です。",
|
||||
"error.connectionError": "Apple Musicに接続できません。",
|
||||
"error.noResults": "見つかりませんでした",
|
||||
"error.noResults.description": "もう一度お試しください。",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Ciderでフォロー",
|
||||
"podcast.followedOnCider": "フォロー中",
|
||||
"podcast.subscribeOnItunes": "iTunesで購読",
|
||||
"podcast.subscribedOnItunes": "購読中",
|
||||
"podcast.itunesStore": "iTunes Store",
|
||||
"podcast.episodes": "番組",
|
||||
"podcast.playEpisode": "再生",
|
||||
"podcast.website": "Podcast ウェブ",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "ライブラリに追加",
|
||||
"action.addToLibrary.success": "ライブラリに追加されました",
|
||||
"action.addToLibrary.error": "ライブラリへの追加に失敗しました",
|
||||
"action.removeFromLibrary": "ライブラリから削除",
|
||||
"action.removeFromLibrary.success": "ライブラリから削除されました",
|
||||
"action.addToQueue": "「次はこちら」に項目を追加",
|
||||
"action.addToQueue.success": "「次はこちら」に項目を追加されました",
|
||||
"action.addToQueue.error": "操作を完了できませんでした",
|
||||
"action.addToPlaylist": "プレイリストに追加",
|
||||
"action.removeFromPlaylist": "プレイリストから削除",
|
||||
"action.addToFavorites": "ラブに追加",
|
||||
"action.removeFromQueue": "「次はこちら」から項目を削除",
|
||||
"action.removeFromQueue.success": "「次はこちら」から項目を削除されました",
|
||||
"action.removeFromQueue.error": "操作を完了できませんでした",
|
||||
"action.follow": "フォロー",
|
||||
"action.follow.success": "フォロー中",
|
||||
"action.follow.error": "操作を完了できませんでした",
|
||||
"action.unfollow": "フォロー解除",
|
||||
"action.unfollow.success": "フォローをやめました",
|
||||
"action.unfollow.error": "操作を完了できませんでした",
|
||||
"action.playNext": "次に再生",
|
||||
"action.playLater": "最後に再生",
|
||||
"action.startRadio": "ステーションを作成",
|
||||
"action.goToArtist": "アーティストへ移動",
|
||||
"action.goToAlbum": "アルバムへ移動",
|
||||
"action.moveToTop": "上に戻る",
|
||||
"action.share": "曲を共有",
|
||||
"action.rename": "名前の変更",
|
||||
"action.love": "ラブ",
|
||||
"action.unlove": "ラブを解除",
|
||||
"action.dislike": "これに似たものをすすめない",
|
||||
"action.undoDislike": "「これと似た曲のおすすめを減らす」を取り消す",
|
||||
"action.showWebRemoteQR": "WEBリモコンQRコードを表示",
|
||||
"action.playTracksNext": "${app.selectedMediaItems.length}曲が次に再生",
|
||||
"action.playTracksLater": "${app.selectedMediaItems.length}曲が最後に再生",
|
||||
"action.removeTracks": "${self.selectedItems.length}曲が「次はこちら」から削除",
|
||||
"action.import": "インポート",
|
||||
"action.export": "エクスポート",
|
||||
"action.showAlbum": "すべて見る",
|
||||
"action.tray.minimize": "最小化",
|
||||
"action.tray.quit": "終了",
|
||||
"action.tray.show": "表示",
|
||||
"action.update": "アップデート",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "オーディオ",
|
||||
"settings.header.audio.description": "Ciderのオーディオ設定",
|
||||
"settings.option.audio.quality": "音質", // Dropdown
|
||||
"settings.header.audio.quality.high": "高品質",
|
||||
"settings.header.audio.quality.low": "高効率",
|
||||
"settings.header.audio.quality.auto": "自動",
|
||||
"settings.option.audio.seamlessTransition": "曲間なしで再生", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "先進的な機能", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 機能を有効にすると、オーディオノーマライズ、空間オーディオ、イコライザーなどの機能を使用できますが、音が途切れるかもしれません。", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "オーディオノーマライズ", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "さまざまな曲の音量を均一にし、より整った音を楽しめるようにする機能です。",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "オーディオ空間化", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "オーディオを空間に分散させる機能です。 (ドルビーアトモスではありません)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "ビジュアル",
|
||||
"settings.header.visual.description": "Ciderのビジュアル設定",
|
||||
"settings.option.visual.windowBackgroundStyle": "アプリウインドウの背景スタイル", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "なし",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "アートワーク",
|
||||
"settings.option.visual.animatedArtwork": "アニメーションアートワーク", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "常に表示",
|
||||
"settings.header.visual.animatedArtwork.limited": "アーティストページのみ表示",
|
||||
"settings.header.visual.animatedArtwork.disable": "オフ",
|
||||
"settings.option.visual.animatedArtworkQuality": "アニメーションアートワークの品質", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "低",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "中",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "高",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "超高",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "最高",
|
||||
"settings.option.visual.animatedWindowBackground": "アプリウィンドウの背景をアニメーション化", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "ハードウェア アクセラレーション", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "アプリを再起動する必要があります",
|
||||
"settings.header.visual.hardwareAcceleration.default": "既定",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "プロフィールを表示", // Toggle
|
||||
// Settings - General (Reserved)
|
||||
"settings.header.general": "一般",
|
||||
"settings.header.general.description": "Ciderの一般設定",
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "歌詞",
|
||||
"settings.header.lyrics.description": "歌詞の表示設定",
|
||||
"settings.option.lyrics.enableMusixmatch": "Musixmatchで歌詞を表示する", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "カラオケモードを有効にする (Musixmatchのみ)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "歌詞の優先言語", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "YouTubeの歌詞をミュージックビデオに使用する", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "アプリと連携",
|
||||
"settings.header.connectivity.description": "Ciderの連携設定",
|
||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "'Cider' を表示する",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' を表示する",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "一時停止時にDiscord Rich Presenceをクリアする", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable LastFM Now Playing",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "試験的な機能",
|
||||
"settings.header.experimental.description": "開発中の実験的な機能は不完全で不安定である可能性があります",
|
||||
"settings.option.experimental.compactUI": "コンパクトインターフェース", // Toggle
|
||||
"settings.option.experimental.close_button_hide": "「閉じる」ボタンでアプリを隠します", // Dropdown
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.spatialProperties" : "空間化のプロパティ",
|
||||
"spatial.width" : "幅",
|
||||
"spatial.height" : "高さ",
|
||||
"spatial.depth" : "奥行",
|
||||
"spatial.gain" : "ゲイン",
|
||||
"spatial.roomMaterials" : "部屋のマテリアル",
|
||||
"spatial.roomDimensions" : "部屋の大きさ",
|
||||
"spatial.roomPositions" : "部屋の位置",
|
||||
"spatial.setDimensions" : "大きさを設定",
|
||||
"spatial.setPositions" : "位置を設定",
|
||||
"spatial.up" : "上",
|
||||
"spatial.front" : "前",
|
||||
"spatial.left" : "左",
|
||||
"spatial.right" : "右",
|
||||
"spatial.back" : "後",
|
||||
"spatial.down" : "下",
|
||||
"spatial.listener" : "リスナー",
|
||||
"spatial.audioSource" : "音源",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "未完成",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider リモート",
|
||||
"remote.web.description": "QRコードを使用して、Ciderとスマートフォンをペアリングする",
|
||||
|
||||
//About
|
||||
"about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。"
|
||||
|
||||
}
|
311
src/i18n/ko_KR.jsonc
Normal file
|
@ -0,0 +1,311 @@
|
|||
{ // Base File
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "한국어", // name of language in native language
|
||||
"i18n.languageNameEnglish": "Korean", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "@sj8923", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${y}년 ${m}월 ${d}일",
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "취소",
|
||||
"dialog.ok": "확인",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "라이브러리 곡 업데이트 중...",
|
||||
"notification.updatingLibraryAlbums": "라이브러리 앨범 업데이트 중...",
|
||||
"notification.updatingLibraryArtists": "라이브러리 아티스트 업데이트 중...",
|
||||
// Terms
|
||||
"term.appleInc": "Apple Inc.",
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "더보기",
|
||||
"term.accountSettings": "계정 설정",
|
||||
"term.logout": "로그아웃",
|
||||
"term.login": "로그인",
|
||||
"term.about": "정보",
|
||||
"term.privateSession": "개인 세션",
|
||||
"term.queue": "대기열",
|
||||
"term.search": "검색",
|
||||
"term.library": "라이브러리",
|
||||
"term.listenNow": "지금 듣기",
|
||||
"term.browse": "둘러보기",
|
||||
"term.radio": "라디오",
|
||||
"term.recentlyAdded": "최근 추가된 항목",
|
||||
"term.songs": "노래",
|
||||
"term.albums": "앨범",
|
||||
"term.artists": "아티스트",
|
||||
"term.podcasts": "팟캐스트",
|
||||
"term.playlists": "플레이리스트",
|
||||
"term.playlist": "플레이리스트",
|
||||
"term.newPlaylist": "새 플레이리스트",
|
||||
"term.newPlaylistFolder": "새 플레이리스트 폴더",
|
||||
"term.createNewPlaylist": "새 플레이리스트 만들기",
|
||||
"term.createNewPlaylistFolder": "새 플레이리스트 폴더 만들기",
|
||||
"term.deletePlaylist": "정말 플레이리스트를 삭제하시겠습니까?",
|
||||
"term.play": "재생",
|
||||
"term.pause": "정지",
|
||||
"term.previous": "이전",
|
||||
"term.next": "다음",
|
||||
"term.shuffle": "셔플",
|
||||
"term.repeat": "반복재생",
|
||||
"term.volume": "볼륨",
|
||||
"term.mute": "음소거",
|
||||
"term.unmute": "음소거 해제",
|
||||
"term.share": "공유",
|
||||
"term.settings": "설정",
|
||||
"term.seeAll": "모두 보기",
|
||||
"term.sortBy": "정렬방식",
|
||||
"term.sortBy.album": "앨범",
|
||||
"term.sortBy.artist": "아티스트",
|
||||
"term.sortBy.name": "이름",
|
||||
"term.sortBy.genre": "장르",
|
||||
"term.sortBy.releaseDate": "출시일",
|
||||
"term.sortBy.duration": "재생시간",
|
||||
"term.sortOrder": "ㄱ-ㅎ",
|
||||
"term.sortOrder.ascending": "오름차순",
|
||||
"term.sortOrder.descending": "내림차순",
|
||||
"term.viewAs": "표시방식",
|
||||
"term.viewAs.coverArt": "커버아트",
|
||||
"term.viewAs.list": "리스트",
|
||||
"term.size": "크기",
|
||||
"term.size.normal": "일반",
|
||||
"term.size.compact": "컴팩트",
|
||||
"term.enable": "활성화",
|
||||
"term.disable": "비활성화",
|
||||
"term.enabled": "활성화",
|
||||
"term.disabled": "비활성화",
|
||||
"term.connect": "연결",
|
||||
"term.connecting": "연결 중",
|
||||
"term.disconnect": "연결 끊김",
|
||||
"term.authed": "인증됨",
|
||||
"term.confirm": "확인하시겠습니까 ?",
|
||||
"term.more": "더",
|
||||
"term.less": "적게",
|
||||
"term.showMore": "더 보기",
|
||||
"term.showLess": "적게 보기",
|
||||
"term.topSongs" : "인기곡",
|
||||
"term.latestReleases": "최신곡",
|
||||
"term.time.added": "추가",
|
||||
"term.time.released": "발매일",
|
||||
"term.time.updated": "업데이트일",
|
||||
"term.time.hours": "시간",
|
||||
"term.time.hour": "시간",
|
||||
"term.time.minutes": "분",
|
||||
"term.time.minute": "분",
|
||||
"term.time.seconds": "초",
|
||||
"term.time.second": "초",
|
||||
"term.fullscreenView": "전체화면",
|
||||
"term.defaultView": "기본화면",
|
||||
"term.audioSettings": "오디오 설정",
|
||||
"term.clearAll": "비우기",
|
||||
"term.recentStations": "최근 스테이션",
|
||||
"term.language": "언어",
|
||||
"term.funLanguages": "재미있는",
|
||||
"term.noLyrics": "불러오는 중... / 가사를 찾을 수 없습니다/ 연주곡",
|
||||
"term.copyright": "Copyright", // Used in Korea w/o translation
|
||||
"term.rightsReserved": "All Rights Reserved.",
|
||||
"term.sponsor": "이 프로젝트를 후원하세요",
|
||||
"term.ciderTeam": "Cider 팀",
|
||||
"term.developer": "개발자",
|
||||
"term.socialTeam": "소셜 팀",
|
||||
"term.socials": "소셜",
|
||||
"term.contributors": "기여자",
|
||||
"term.equalizer": "이퀄라이저",
|
||||
"term.reset": "초기화",
|
||||
"term.tracks": "트랙", // Assume x amount of tracks. e.g. 50 tracks
|
||||
"term.videos": "비디오",
|
||||
"term.menu": "메뉴",
|
||||
"term.check": "확인",
|
||||
"term.aboutArtist": "{{artistName}}에 대해", // e.g. 'About Doja Cat'
|
||||
"term.updateCider": "Cider 업데이트",
|
||||
|
||||
// Home
|
||||
"home.title": "홈",
|
||||
"home.recentlyPlayed": "최근 재생된 항목",
|
||||
"home.recentlyAdded": "최근 추가된 항목",
|
||||
"home.artistsFeed": "내 아티스트 피드",
|
||||
"home.artistsFeed.noArtist": "아티스트를 팔로우하면 최근 발매곡이 표시됩니다",
|
||||
"home.madeForYou": "나만을 위한 추천",
|
||||
"home.friendsListeningTo": "친구들이 듣는",
|
||||
"home.followedArtists": "팔로우한 아티스트",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "애플뮤직 구독이 필요합니다.",
|
||||
"error.connectionError": "애플뮤직 연결에 문제가 발생했습니다.",
|
||||
"error.noResults": "결과 없음.",
|
||||
"error.noResults.description": "새로 검색해주세요.",
|
||||
|
||||
//Podcasts
|
||||
"podcast.followOnCider": "Cider 팔로우",
|
||||
"podcast.followedOnCider": "Cider 팔로우됨",
|
||||
"podcast.subscribeOnItunes": "iTunes 구독하기",
|
||||
"podcast.subscribedOnItunes": "iTunes 구독 중",
|
||||
"podcast.itunesStore": "iTunes 스토어",
|
||||
"podcast.episodes": "에피소드",
|
||||
"podcast.playEpisode": "에피소드 재생",
|
||||
"podcast.website": "팟캐스트 웹사이트",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "보관함에 추가",
|
||||
"action.addToLibrary.success": "보관함에 추가됨",
|
||||
"action.addToLibrary.error": "보관함에 추가 실패",
|
||||
"action.removeFromLibrary": "보관함에서 삭제",
|
||||
"action.removeFromLibrary.success": "보관함에서 삭제됨",
|
||||
"action.addToQueue": "대기열에 추가",
|
||||
"action.addToQueue.success": "대기열에 추가됨",
|
||||
"action.addToQueue.error": "대기열에 추가 실패",
|
||||
"action.removeFromQueue": "대기열에서 삭제",
|
||||
"action.removeFromQueue.success": "대기열에서 삭제됨",
|
||||
"action.removeFromQueue.error": "대기열에서 삭제 실패",
|
||||
"action.createPlaylist": "새 플레이리스트",
|
||||
"action.addToPlaylist": "플레이리스트에 추가...",
|
||||
"action.removeFromPlaylist": "플레이리스트에서 삭제",
|
||||
"action.addToFavorites": "선호항목에 추가",
|
||||
"action.follow": "팔로우",
|
||||
"action.follow.success": "팔로우됨",
|
||||
"action.follow.error": "팔로우 실패",
|
||||
"action.unfollow": "언팔로우",
|
||||
"action.unfollow.success": "언팔로우됨",
|
||||
"action.unfollow.error": "언팔로우 실패",
|
||||
"action.playNext": "바로 다음에 재생",
|
||||
"action.playLater": "맨 나중에 재생",
|
||||
"action.startRadio": "스테이션 생성",
|
||||
"action.goToArtist": "아티스트 보기",
|
||||
"action.goToAlbum": "앨범 보기",
|
||||
"action.moveToTop": "맨 위로 이동",
|
||||
"action.share": "공유하기",
|
||||
"action.rename": "이름 편집하기",
|
||||
"action.love": "좋아요",
|
||||
"action.unlove": "좋아요 취소",
|
||||
"action.dislike": "비슷한 항목의 제안 줄이기",
|
||||
"action.undoDislike": "비슷한 항목의 제안 줄이기 실행 취소",
|
||||
"action.showWebRemoteQR": "웹 리모트",
|
||||
"action.playTracksNext": "${app.selectedMediaItems.length} 바로 다음에 재생",
|
||||
"action.playTracksLater": "${app.selectedMediaItems.length} 맨 나중에 재생",
|
||||
"action.removeTracks": "${self.selectedItems.length} 대기열에서 삭제",
|
||||
"action.import": "가져오기",
|
||||
"action.export": "내보내기",
|
||||
"action.showAlbum": "전체 앨범 보기",
|
||||
"action.tray.minimize": "트레이로 최소화",
|
||||
"action.tray.quit": "종료",
|
||||
"action.tray.show": "", // None is Better in Korean
|
||||
"action.update": "업데이트",
|
||||
|
||||
// Settings - General
|
||||
"settings.header.general": "일반 설정",
|
||||
"settings.header.general.description": "Cider를 위한 일반 설정을 조절합니다.",
|
||||
"settings.option.general.language": "언어",
|
||||
|
||||
// Language optgroups
|
||||
"settings.option.general.language.main": "언어",
|
||||
"settings.option.general.language.fun": "실험적인 언어",
|
||||
"settings.option.general.language.unsorted": "정리되지않음",
|
||||
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "오디오",
|
||||
"settings.header.audio.description": "Cider를 위한 오디오 설정을 조절하세요.",
|
||||
"settings.option.audio.quality": "오디오 품질", // Dropdown
|
||||
"settings.header.audio.quality.high": "높음",
|
||||
"settings.header.audio.quality.low": "낮음",
|
||||
"settings.header.audio.quality.auto": "자동",
|
||||
"settings.option.audio.seamlessTransition": "간격 없는 재생", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "실험적인 기능", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "노멀라이즈와 이퀄라이저와 같은 확장기능을 사용할 수 있지만 일부 시스템에서 끊김 현상이 발생할 수 있습니다.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "사운드 자동 조절", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "각각 트랙의 볼륨을 자동 조절합니다.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "공간 음향", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "소리를 공간 음향으로 만들고 3d효과를 줍니다. (주의: 돌비 애트모스가 아님)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "시각 효과",
|
||||
"settings.header.visual.description": "Cider를 위한 시각 효과 설정을 조절하세요.",
|
||||
"settings.option.visual.windowBackgroundStyle": "창 배경 설정", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "없음",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "아트워크",
|
||||
"settings.header.visual.windowBackgroundStyle.image": "이미지",
|
||||
"settings.option.visual.animatedArtwork": "움직이는 아트워크", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "활성화",
|
||||
"settings.header.visual.animatedArtwork.limited": "특정 페이지에 한정",
|
||||
"settings.header.visual.animatedArtwork.disable": "비활성화",
|
||||
"settings.option.visual.animatedArtworkQuality": "움직이는 아트워크 품질", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "낮음",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "중간",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "높음",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "매우 높음",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "최고",
|
||||
"settings.option.visual.animatedWindowBackground": "움직이는 창 배경", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "하드웨어 가속", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "재실행 필요",
|
||||
"settings.header.visual.hardwareAcceleration.default": "기본",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "ID 표시", // Toggle
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "가사",
|
||||
"settings.header.lyrics.description": "Cider를 위한 가사 설정을 조절하세요.",
|
||||
"settings.option.lyrics.enableMusixmatch": "Musixmatch 가사", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "노래방 모드 (Musixmatch만)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch 선호 번역 언어", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "뮤직비디오 재생 시 유튜브에서 가사 가져오기", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "연결",
|
||||
"settings.header.connectivity.description": "Cider를 위한 연결 설정을 조절하세요.",
|
||||
"settings.option.connectivity.discordRPC": "Discord 상태 표시", // Dropdown
|
||||
"settings.option.connectivity.playbackNotifications": "재생 상태 표시", // Toggle
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "'Cider'로 표시",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "'Apple Music'으로 표시",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "일시 정지 상태에서 Discord 상태 표시 끄기", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble 지연 (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm Now Playing 활성",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "곡 이름에서 피쳐링 아티스트 빼기 (Last.fm)",
|
||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "반복 재생 트랙 제거 (Last.fm)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "실험 기능",
|
||||
"settings.header.experimental.description": "Cider를 위한 실험 기능을 조절하세요.",
|
||||
"settings.option.experimental.compactUI": "컴팩트 UI", // Toggle
|
||||
"settings.option.experimental.close_button_hide": "닫기 버튼으로 프로그램 숨기기",
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.notTurnedOn": "먼저 공간 음향 설정을 활성화해주세요.",
|
||||
"spatial.spatialProperties": "공간 속성",
|
||||
"spatial.width": "너비",
|
||||
"spatial.height": "높이",
|
||||
"spatial.depth": "깊이",
|
||||
"spatial.gain": "게인",
|
||||
"spatial.roomMaterials": "방 재질",
|
||||
"spatial.roomDimensions": "방 차원",
|
||||
"spatial.roomPositions": "방 위치",
|
||||
"spatial.setDimensions": "차원 설정",
|
||||
"spatial.setPositions": "위치 설정",
|
||||
"spatial.up": "위",
|
||||
"spatial.front": "앞",
|
||||
"spatial.left": "왼쪽",
|
||||
"spatial.right": "오른쪽",
|
||||
"spatial.back": "뒤",
|
||||
"spatial.down": "아래",
|
||||
"spatial.listener": "청취자",
|
||||
"spatial.audioSource": "오디오 출처",
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "미완성",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider 리모트",
|
||||
"remote.web.description": "Cider 인스턴스와 휴대 전화를 연결하려면 QR 코드를 스캔해주세요",
|
||||
|
||||
// About
|
||||
"about.thanks": "Cider 컬렉티브 팀과 우리의 모든 기여자들께 대단히 감사를 표합니다."
|
||||
}
|
244
src/i18n/pt_BR.jsonc
Normal file
|
@ -0,0 +1,244 @@
|
|||
{ // Base File
|
||||
// App info
|
||||
"app.name": "Cider",
|
||||
|
||||
"date.format": "${d} ${m}, ${y}",
|
||||
|
||||
// i18n Info
|
||||
"i18n.languageName": "Português ( brasileiro )", // name of language in native language
|
||||
"i18n.languageNameEnglish": "Portuguese (Brazil)", // name of language in English
|
||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||
"i18n.authors": "", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||
|
||||
// Dialogs
|
||||
"dialog.cancel": "Cancelar",
|
||||
"dialog.ok": "OK",
|
||||
|
||||
// Notification
|
||||
"notification.updatingLibrarySongs": "Atualizando músicas na biblioteca...",
|
||||
"notification.updatingLibraryAlbums": "Atualizando albuns na biblioteca...",
|
||||
"notification.updatingLibraryArtists": "Atualizando artistas na biblioteca...",
|
||||
"notification.connectionError": "Houve um problema a se conectar no Apple Music",
|
||||
|
||||
// Terms
|
||||
"term.appleMusic": "Apple Music",
|
||||
"term.applePodcasts": "Apple Podcasts",
|
||||
"term.itunes": "iTunes",
|
||||
"term.github": "GitHub",
|
||||
"term.discord": "Discord",
|
||||
"term.learnMore": "Saiba Mais",
|
||||
"term.accountSettings": "Definições da Conta",
|
||||
"term.logout": "Sair",
|
||||
"term.login": "Entrar",
|
||||
"term.about": "Sobre",
|
||||
"term.privateSession": "Sessão Privada",
|
||||
"term.queue": "Fila",
|
||||
"term.search": "Procurar",
|
||||
"term.library": "Biblioteca",
|
||||
"term.listenNow": "Ouça Agora",
|
||||
"term.browse": "Explorar",
|
||||
"term.radio": "Radio",
|
||||
"term.recentlyAdded": "Adicionado Recentemente",
|
||||
"term.songs": "Músicas",
|
||||
"term.albums": "Albuns",
|
||||
"term.artists": "Artistas",
|
||||
"term.podcasts": "Podcasts",
|
||||
"term.playlists": "Listas de Reprodução",
|
||||
"term.playlist": "Lista de Reprodução",
|
||||
"term.play": "Tocar",
|
||||
"term.pause": "Pausar",
|
||||
"term.previous": "Anterior",
|
||||
"term.next": "Próximo",
|
||||
"term.shuffle": "Aleatório",
|
||||
"term.repeat": "Repetir",
|
||||
"term.volume": "Volume",
|
||||
"term.mute": "Mudo",
|
||||
"term.unmute": "Tirar o Mudo",
|
||||
"term.share": "Partilhar",
|
||||
"term.settings": "Definições",
|
||||
"term.seeAll": "Ver Tudo",
|
||||
"term.sortBy": "Organizar Por",
|
||||
"term.sortBy.album": "Album",
|
||||
"term.sortBy.artist": "Artista",
|
||||
"term.sortBy.name": "Nome",
|
||||
"term.sortBy.genre": "Genero",
|
||||
"term.sortBy.releaseDate": "Data de Lançamento",
|
||||
"term.sortBy.duration": "Duração",
|
||||
"term.sortOrder": "A-Z",
|
||||
"term.sortOrder.ascending": "Ascendente",
|
||||
"term.sortOrder.descending": "Descendente",
|
||||
"term.viewAs": "Ver Como",
|
||||
"term.viewAs.coverArt": "Capa",
|
||||
"term.viewAs.list": "Lista",
|
||||
"term.size": "Tamanho",
|
||||
"term.size.normal": "Normal",
|
||||
"term.size.compact": "Compacto",
|
||||
"term.enable": "Ativar",
|
||||
"term.disable": "Desativar",
|
||||
"term.enabled": "Ativado",
|
||||
"term.disabled": "Desativado",
|
||||
"term.connect": "Conectar",
|
||||
"term.disconnect": "Desconectar",
|
||||
"term.connecting": "Conectando",
|
||||
"term.confirm": "Confirmar ?",
|
||||
"term.more": "Mais",
|
||||
"term.less": "Menos",
|
||||
"term.showMore": "Mostrar Mais",
|
||||
"term.showLess": "Mostrar Menos",
|
||||
"term.topSongs" : "Top de Músicas",
|
||||
"term.latestReleases": "Ultimos Lançamentos",
|
||||
"term.time.added": "Adicionado",
|
||||
"term.time.released": "Lançado",
|
||||
"term.time.updated": "Atualizado",
|
||||
"term.fullscreenView": "Visualização em Tela Cheia",
|
||||
"term.defaultView": "Visualização Normal",
|
||||
"term.spacializedAudioSetting": "Definições de Audio Espacial",
|
||||
"term.clearAll": "Limpar Tudo",
|
||||
"term.language": "Idioma",
|
||||
"term.recentStations": "Estações Recentes",
|
||||
|
||||
// Home
|
||||
"home.title": "Inicio",
|
||||
"home.recentlyPlayed": "Tocado Recentemente",
|
||||
"home.recentlyAdded": "Adicionado Recentemente",
|
||||
"home.artistsFeed": "Novidades dos seus Artistas",
|
||||
"home.madeForYou": "Feito para Você",
|
||||
"home.friendsListeningTo": "Amigos Ouvindo",
|
||||
"home.followedArtists": "Artistas Seguidos",
|
||||
// Errors
|
||||
"error.appleMusicSubRequired": "Necessário uma assinatura Apple Music.",
|
||||
|
||||
// Actions
|
||||
"action.addToLibrary": "Adicionar à Biblioteca",
|
||||
"action.addToLibrary.success": "Adicionado à Biblioteca",
|
||||
"action.addToLibrary.error": "Erro ao Adicionar na Biblioteca",
|
||||
"action.removeFromLibrary": "Remover da Biblioteca",
|
||||
"action.removeFromLibrary.success": "Removido da Biblioteca",
|
||||
"action.addToQueue": "Adicionar à Fila",
|
||||
"action.addToQueue.success": "Adicionado à Fila",
|
||||
"action.addToQueue.error": "Erro ao Adicionar à Fila",
|
||||
"action.removeFromQueue": "Remover da Fila",
|
||||
"action.removeFromQueue.success": "Removido da Fila",
|
||||
"action.removeFromQueue.error": "Erro ao Remover da Fila",
|
||||
"action.addToPlaylist": "Adicionar à Lista de Reprodução",
|
||||
"action.removeFromPlaylist": "Remover da Lista de Reprodução",
|
||||
"action.addToFavorites": "Adicionar aos Favoritos",
|
||||
"action.follow": "Seguir",
|
||||
"action.follow.success": "A Seguir",
|
||||
"action.follow.error": "Erro ao Seguir",
|
||||
"action.unfollow": "Deixar de Seguir",
|
||||
"action.unfollow.success": "Deixou de Seguir",
|
||||
"action.unfollow.error": "Erro ao Deixar de Seguir",
|
||||
"action.playNext": "Tocar Proximo",
|
||||
"action.playLater": "Tocar por Ultimo",
|
||||
"action.startRadio": "Começar Radio",
|
||||
"action.goToArtist": "Ir para o Artista",
|
||||
"action.goToAlbum": "Ir para o Album",
|
||||
"action.moveToTop": "Mover para cima",
|
||||
"action.share": "Partilhar",
|
||||
"action.rename": "Mudar o Nome",
|
||||
"action.love": "Gostar",
|
||||
"action.unlove": "Deixar de Gostar",
|
||||
"action.dislike": "Não Gostar",
|
||||
"action.undoDislike": "Deixar de Não Gostar",
|
||||
"action.showWebRemoteQR": "Mostrar o QR para Página Remota",
|
||||
// Settings - Audio
|
||||
"settings.header.audio": "Audio",
|
||||
"settings.header.audio.description": "Ajustar as definições de audio no Cider.",
|
||||
"settings.option.audio.quality": "Qualidade do Audio", // Dropdown
|
||||
"settings.header.audio.quality.high": "Alta",
|
||||
"settings.header.audio.quality.low": "Baixa",
|
||||
"settings.header.audio.quality.auto": "Automatico",
|
||||
"settings.option.audio.seamlessTransition": "Transição de Áudio Perfeita", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality": "Ativar Funcionabilidades Avançadas", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.description": "Habilitar a funcionalidade AudioContext permitirá recursos de áudio estendidos, como Normalização de Áudio , Equalizadores e Visualizadores. No entanto, em alguns sistemas, isso pode causar travamentos nas faixas de áudio.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalização de Audio", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume alto para faixas individuais para criar uma experiência de audição mais uniforme.",
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Espacial", // Toggle
|
||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialize o áudio e torne o áudio mais tridimensional (nota: isto não é Dolby Atmos)",
|
||||
// Settings - Visual
|
||||
"settings.header.visual": "Visual",
|
||||
"settings.header.visual.description": "Ajustar as Definições de Visual do Cider.",
|
||||
"settings.option.visual.windowBackgroundStyle": "Estilo do Fundo da Janela", // Toggle
|
||||
"settings.header.visual.windowBackgroundStyle.none": "Nenhum",
|
||||
"settings.header.visual.windowBackgroundStyle.artwork": "Capa",
|
||||
"settings.option.visual.animatedArtwork": "Capa Animada", // Dropdown
|
||||
"settings.header.visual.animatedArtwork.always": "Sempre",
|
||||
"settings.header.visual.animatedArtwork.limited": "Limitado a páginas e entradas especiais",
|
||||
"settings.header.visual.animatedArtwork.disable": "Desativar em Tudo",
|
||||
"settings.option.visual.animatedArtworkQuality": "Qualidade da Capa Animada", // Dropdown
|
||||
"settings.header.visual.animatedArtworkQuality.low": "Baixa",
|
||||
"settings.header.visual.animatedArtworkQuality.medium": "Media",
|
||||
"settings.header.visual.animatedArtworkQuality.high": "Alta",
|
||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Muito Alta",
|
||||
"settings.header.visual.animatedArtworkQuality.extreme": "Extrema",
|
||||
"settings.option.visual.animatedWindowBackground": "Fundo de Janela Animado", // Toggle
|
||||
"settings.option.visual.hardwareAcceleration": "Acelaração no Hardware", // Dropdown
|
||||
"settings.option.visual.hardwareAcceleration.description": "Necessário reiniciar a aplicação",
|
||||
"settings.header.visual.hardwareAcceleration.default": "Normal",
|
||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||
|
||||
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.option.visual.showPersonalInfo": "Mostrar Informaçoes Pessoais", // Toggle
|
||||
// Settings - General (Reserved)
|
||||
"settings.header.general": "Principal",
|
||||
"settings.header.general.description": "Ajustar as definiçoes principais no Cider.",
|
||||
|
||||
// Settings - Lyrics
|
||||
"settings.header.lyrics": "Letras",
|
||||
"settings.header.lyrics.description": "Ajustar as definições das letras no Cider.",
|
||||
"settings.option.lyrics.enableMusixmatch": "Ativar Letras do Musixmatch", // Toggle
|
||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Ativar Modo Karaoke (só para Musixmatch)", // Toggle
|
||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Idioma Preferido para Tradução Musixmatch", // Dropdown
|
||||
"settings.option.lyrics.enableYoutubeLyrics": "Ativar letras do Youtube para videos musicais", // Toggle
|
||||
|
||||
// Settings - Connectivity
|
||||
"settings.header.connectivity": "Conectividade",
|
||||
"settings.header.connectivity.description": "Ajustar as definições de conectividade no Cider.",
|
||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||
// Refer to term.disabled for the disabled option
|
||||
"settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'",
|
||||
"settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'",
|
||||
"settings.option.connectivity.discordRPC.clearOnPause": "Apagar Discord Rich Presence quando estiver pausado", // Toggle
|
||||
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect
|
||||
"settings.option.connectivity.lastfmScrobble.delay": "Atraso dos Scrobbles do LastFM (%)",
|
||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Ativar LastFM Now Playing",
|
||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remover artistas de colaboração do nome da música (LastFM)",
|
||||
// Refer to term.connect for the connect button
|
||||
|
||||
// Settings - Experimental
|
||||
"settings.header.experimental": "Experimental",
|
||||
"settings.header.experimental.description": "Ajustar as definições experimental no Cider.",
|
||||
"settings.option.experimental.compactUI": "UI Compacto", // Toggle
|
||||
// Refer to term.disabled & term.enabled
|
||||
|
||||
// Spatialization Menu
|
||||
"spatial.spatialProperties" : "Propriedades do Espacial",
|
||||
"spatial.width" : "Largura",
|
||||
"spatial.height" : "Altura",
|
||||
"spatial.depth" : "Profundidade",
|
||||
"spatial.roomMaterials" : "Materiais da Sala",
|
||||
"spatial.roomDimensions" : "Dimensões da Sala",
|
||||
"spatial.roomPositions" : "Posições da Sala",
|
||||
"spatial.setDimensions" : "Definir Dimensões",
|
||||
"spatial.setPositions" : "Definir Posições",
|
||||
"spatial.up" : "Acima",
|
||||
"spatial.front" : "Frente",
|
||||
"spatial.left" : "Esquerda",
|
||||
"spatial.right" : "Direita",
|
||||
"spatial.back" : "Atrás",
|
||||
"spatial.down" : "Abaixo",
|
||||
"spatial.listener" : "Ouvinte",
|
||||
"spatial.audioSource" : "Fonte de Audio",
|
||||
|
||||
|
||||
|
||||
|
||||
// Settings - Unfinished
|
||||
"settings.header.unfinished": "Inacabado",
|
||||
|
||||
// Web Remote
|
||||
"remote.web.title": "Cider Remoto",
|
||||
"remote.web.description": "Digitalize o código QR para emparelhar seu telefone com esta instância Cider"
|
||||
}
|